games/play-1954-alcatraz.sh0000755000000000000000000000366714471751340014375 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Anna Lea # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # 1954 Alcatraz # send your bug reports to bugs@dotslashplay.it ### script_version=20240728.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='1954-alcatraz' GAME_NAME='1954 Alcatraz' ARCHIVE_BASE_0_NAME='setup_1954_alcatraz_1.3.5019_(19812).exe' ARCHIVE_BASE_0_MD5='b18fe30eb3fc67e3f6b12f725b297f95' ## Do not convert file paths to lowercase. ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS=' ' ARCHIVE_BASE_0_SIZE='2000000' ARCHIVE_BASE_0_VERSION='1.3.5019-gog19812' ARCHIVE_BASE_0_URL='https://www.gog.com/game/1954_alcatraz' UNITY3D_NAME='Alcatraz' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Daedalic Entertainment/1954 Alcatraz' ## Work around missing text in options menu. WINE_WINETRICKS_VERBS='arial' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-80-days.sh0000755000000000000000000000327714471751340013356 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # 80 Days # send your bug reports to bugs@dotslashplay.it ### script_version=20240708.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='80-days' GAME_NAME='80 Days' ARCHIVE_BASE_0_NAME='setup_80_days_1.17.8_(44038).exe' ARCHIVE_BASE_0_MD5='bde0aa5f33b99f495be27a515d07fff5' ARCHIVE_BASE_0_SIZE='1200000' ARCHIVE_BASE_0_VERSION='1.17.8-gog44038' ARCHIVE_BASE_0_URL='https://www.gog.com/game/80_days' UNITY3D_NAME='80 days' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Inkle Studios/80 Days' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-a-bird-story.sh0000755000000000000000000000613614471751340014502 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # A Bird Story # send your bug reports to bugs@dotslashplay.it ### script_version=20240905.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='a-bird-story' GAME_NAME='A Bird Story' ARCHIVE_BASE_1_NAME='gog_a_bird_story_2.0.0.3.sh' ARCHIVE_BASE_1_MD5='6f334da4493e8c050a16d4b66987d3ff' ARCHIVE_BASE_1_SIZE='180000' ARCHIVE_BASE_1_VERSION='1.0-gog2.0.0.3' ARCHIVE_BASE_1_URL='https://www.gog.com/game/a_bird_story' ARCHIVE_BASE_0_NAME='gog_a_bird_story_2.0.0.2.sh' ARCHIVE_BASE_0_MD5='8f93d19265394a5fba61aeec23cabb8e' ARCHIVE_BASE_0_SIZE='180000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.2' CONTENT_PATH_DEFAULT='data/noarch/game' ## TODO: Check if some shipped libraries could be dropped CONTENT_LIBS_FILES=' libfreetype.so.6 libjpeg.so.62 libogg.so.0 libopenal.so.1 libphysfs.so.1 libpixman-1.so.0 libpng16.so.16 libruby.so.2.1 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0 libSDL2_ttf-2.0.so.0 libSDL_sound-1.0.so.1 libsigc-2.0.so.0 libvorbisfile.so.3 libvorbis.so.0 libz.so.1' CONTENT_LIBS_BIN64_PATH='data/noarch/game/lib64' CONTENT_LIBS_BIN64_FILES="$CONTENT_LIBS_FILES" CONTENT_LIBS_BIN32_PATH='data/noarch/game/lib' CONTENT_LIBS_BIN32_FILES="$CONTENT_LIBS_FILES" CONTENT_GAME_BIN64_FILES=' ABirdStory.amd64' CONTENT_GAME_BIN32_FILES=' ABirdStory.x86' CONTENT_GAME_DATA_FILES=' preload croptextures mkxp.conf Audio.dat Game.ini icon.png Game.rgssad' CONTENT_DOC_DATA_FILES=' legal LICENSE.txt' APP_MAIN_EXE_BIN64='ABirdStory.amd64' APP_MAIN_EXE_BIN32='ABirdStory.x86' APP_MAIN_ICON='icon.png' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libcrypt.so.1 libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$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-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-morticians-tale.sh0000755000000000000000000000410214471751340015466 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # A Mortician's Tale # send your bug reports to bugs@dotslashplay.it ### script_version=20240905.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='a-morticians-tale' GAME_NAME='A Mortician’s Tale' ARCHIVE_BASE_64BIT_0_NAME="A Mortician's Tale - Windows x64.zip" ARCHIVE_BASE_64BIT_0_MD5='581b86b6e5f20eeb497b07659aaa0991' ARCHIVE_BASE_64BIT_0_SIZE='180000' ARCHIVE_BASE_64BIT_0_VERSION='1.0-itch' ARCHIVE_BASE_64BIT_0_URL='https://laundrybear.itch.io/morticians-tale' ARCHIVE_BASE_32BIT_0_NAME="A Mortician's Tale - Windows x86.zip" ARCHIVE_BASE_32BIT_0_MD5='02a3fbfd4121a88f462b6b3884d6a75e' ARCHIVE_BASE_32BIT_0_SIZE='180000' ARCHIVE_BASE_32BIT_0_VERSION='1.0-itch' ARCHIVE_BASE_32BIT_0_URL='https://laundrybear.itch.io/morticians-tale' UNITY3D_NAME='morticianstale' CONTENT_PATH_DEFAULT='.' ## TODO: Add a diversion to persistent storage for saved games and settings. PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH_64BIT='64' PKG_BIN_ARCH_32BIT='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-a-new-beginning.sh0000755000000000000000000000373014471751340015130 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # A New Beginning # send your bug reports to bugs@dotslashplay.it ### script_version=20240820.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='a-new-beginning' GAME_NAME='A New Beginning' ARCHIVE_BASE_0_NAME='setup_a_new_beginning_final_cut_2.0.4.0395_(27805).exe' ARCHIVE_BASE_0_MD5='f914a4260284285461fa9b3cc06b88ec' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_a_new_beginning_final_cut_2.0.4.0395_(27805)-1.bin' ARCHIVE_BASE_0_PART1_MD5='68520b98ded6409f0c17c0204c342a45' ARCHIVE_BASE_0_SIZE='4200000' ARCHIVE_BASE_0_VERSION='2.0.4.0395-gog27805' ARCHIVE_BASE_0_URL='https://www.gog.com/game/a_new_beginning' VISIONAIRE_NAME='anb' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Local Settings/Application Data/Daedalic Entertainment/A New Beginning - Final Cut' ## Work around audio problems ## TODO: Check if it is still required with current WINE builds WINE_WINETRICKS_VERBS='dsound' PKG_BIN_ARCH='32' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_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-night-at-the-watermill.sh0000755000000000000000000000517314471751340016673 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # A Night at the Watermill # send your bug reports to bugs@dotslashplay.it ### script_version=20241223.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='a-night-at-the-watermill' GAME_NAME='A Night at the Watermill' ARCHIVE_BASE_1_NAME='a_night_at_the_watermill_1_0_799_74242.sh' ARCHIVE_BASE_1_MD5='153c7b4b64b603bf256ea191ac3e959f' ARCHIVE_BASE_1_SIZE='640563' ARCHIVE_BASE_1_VERSION='1.0.799-gog74242' ARCHIVE_BASE_1_URL='https://www.gog.com/game/a_night_at_the_watermill' ARCHIVE_BASE_0_NAME='a_night_at_the_watermill_1_0_794_70569.sh' ARCHIVE_BASE_0_MD5='4e5c4f9b03e2ea0198742a4ca20f2aa1' ARCHIVE_BASE_0_SIZE='624275' ARCHIVE_BASE_0_VERSION='1.0.794-gog70569' CONTENT_PATH_DEFAULT='data/noarch/game/game' CONTENT_GAME_MAIN_FILES=' cache audio.rpa fonts.rpa images.rpa scripts.rpa script_version.txt' USER_PERSISTENT_DIRECTORIES=' saves' APP_MAIN_TYPE='renpy' APP_MAIN_ICON='../../support/icon.png' ## The game tries to write a log file in the current directory, ## so write access to this path is required. APP_MAIN_PREFIX_TYPE='symlinks' ## Ensure easy upgrades from packages generated with pre-20241212.3 game scripts PKG_MAIN_PROVIDES="${PKG_MAIN_PROVIDES:-} a-night-at-the-watermill-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data ## Generate standard size icons from the shipped 125×125 one APP_MAIN_ICON_64="$(dirname "$APP_MAIN_ICON")/icon_64.png" APP_MAIN_ICON_128="$(dirname "$APP_MAIN_ICON")/icon_128.png" APP_MAIN_ICONS_LIST='APP_MAIN_ICON_64 APP_MAIN_ICON_128' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" convert "$APP_MAIN_ICON" -resize 64x64 "$APP_MAIN_ICON_64" convert "$APP_MAIN_ICON" -resize 128x128 "$APP_MAIN_ICON_128" ) 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-a-normal-lost-phone.sh0000755000000000000000000000443014471751340015755 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # A Normal Lost Phone # send your bug reports to bugs@dotslashplay.it ### script_version=20240905.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='a-normal-lost-phone' GAME_NAME='A Normal Lost Phone' ARCHIVE_BASE_0_NAME='anlp1.3_linux_drmfree.zip' ARCHIVE_BASE_0_MD5='145e604b4b4773a4ddf86277f3a68f8e' ARCHIVE_BASE_0_SIZE='160000' ARCHIVE_BASE_0_VERSION='1.3-itch.2018.06.29' ARCHIVE_BASE_0_URL='https://dear-villagers.itch.io/a-normal-lost-phone' UNITY3D_NAME='anlp' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='.' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # 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-a-short-hike.sh0000755000000000000000000000366214471751340014462 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # A Short Hike # send your bug reports to bugs@dotslashplay.it ### script_version=20250307.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='a-short-hike' GAME_NAME='A Short Hike' ARCHIVE_BASE_0_NAME='a-short-hike-linux-latest.zip' ARCHIVE_BASE_0_MD5='a56be18e6c625691edd0b85fa5999439' ARCHIVE_BASE_0_SIZE='350000' ARCHIVE_BASE_0_VERSION='1.9.3-itch.2021.11.22' ARCHIVE_BASE_0_URL='https://adamgryu.itch.io/a-short-hike' UNITY3D_NAME='AShortHike' UNITY3D_PLUGINS=' UnityFbxSdkNative.so' CONTENT_PATH_DEFAULT='.' USER_PERSISTENT_DIRECTORIES=' UserData' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_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 libxml2.so.2 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-a-space-adventure.sh0000755000000000000000000000370514471751340015471 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # A Space Adventure # send your bug reports to bugs@dotslashplay.it ### script_version=20250826.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='a-space-adventure' GAME_NAME='A Space Adventure' ARCHIVE_BASE_0_NAME='asa_remastered_full_drm_free.zip' ARCHIVE_BASE_0_MD5='af67e83c12c3d0a722af35c71a5678bc' ARCHIVE_BASE_0_VERSION='1.0-itch.2018.01.10' ARCHIVE_BASE_0_SIZE='980000' ARCHIVE_BASE_0_URL='https://the-icehouse.itch.io/asa2015' VISIONAIRE_NAME='asa_r_windows' CONTENT_PATH_DEFAULT='.' CONTENT_GAME0_DATA_FILES=" ${VISIONAIRE_NAME}.vis" CONTENT_DOC0_DATA_FILES=' readme.txt' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Local/Simon Says Play/ASA Remastered' PKG_BIN_ARCH='32' ## convmv is used to convert file paths to lower case. REQUIREMENTS_LIST=' convmv' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default ## Convert all file paths to lower case. tolower "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-a-vampyre-story.sh0000755000000000000000000000463214471751340015244 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # A Vampyre Story # send your bug reports to bugs@dotslashplay.it ### script_version=20240820.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='a-vampyre-story' GAME_NAME='A Vampyre Story' ## This DRM-free installer is no longer sold by gog.com ARCHIVE_BASE_0_NAME='setup_a_vampyre_story_1.0_(43163).exe' ARCHIVE_BASE_0_MD5='f2441fb51aac6eaca5e97f6e6a3ea0ab' ## Do not convert file paths to lowercase ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS=' ' ARCHIVE_BASE_0_PART1_NAME='setup_a_vampyre_story_1.0_(43163)-1.bin' ARCHIVE_BASE_0_PART1_MD5='2c652e191d82c70fbbe5af4d259f3ba2' ARCHIVE_BASE_0_SIZE='3200000' ARCHIVE_BASE_0_VERSION='1.0-gog43163' CONTENT_PATH_DEFAULT='game' CONTENT_GAME_BIN_FILES=' main.exe w9xpopen.exe __init__.pyc library.zip *.dll *.pyd *.pyo' CONTENT_GAME_DATA_FILES=' assets etc tcl installer.bmp icon.ico' CONTENT_DOC_DATA_FILES=' license.txt readme.txt' USER_PERSISTENT_DIRECTORIES=' assets/scripts etc' WINE_VIRTUAL_DESKTOP='auto' ## Disable CSMT rendering, as it messes up with movies playback ## cf. https://bugs.winehq.org/show_bug.cgi?id=37659 ## TODO: Check if it is still required with current WINE builds WINE_WINETRICKS_VERBS='csmt=off' APP_MAIN_EXE='main.exe' APP_MAIN_ICON='icon.ico' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-a-year-of-springs.sh0000755000000000000000000000345214471751340015427 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # A Year of Springs # send your bug reports to bugs@dotslashplay.it ### script_version=20240905.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='a-year-of-springs' GAME_NAME='A Year of Springs' ARCHIVE_BASE_0_NAME='a_year_of_springs_1_05_60321.sh' ARCHIVE_BASE_0_MD5='683044c44f06061a84490c2a02b5303b' ARCHIVE_BASE_0_SIZE='248120' ARCHIVE_BASE_0_VERSION='1.05-gog60321' ARCHIVE_BASE_0_URL='https://www.gog.com/game/a_year_of_springs' CONTENT_PATH_DEFAULT='data/noarch/game/ayearofsprings-market/game' CONTENT_GAME_MAIN_FILES=' cache presplash_background.png presplash_foreground.png assets.rpa scripts.rpa script_version.txt' APP_MAIN_TYPE='renpy' APP_MAIN_ICON='../../../support/icon.png' ## Ensure easy upgrades from packages generated with pre-20240905.1 game scripts. PKG_MAIN_PROVIDES="${PKG_MAIN_PROVIDES:-} a-year-of-springs-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-abzu.sh0000755000000000000000000000335314471751340013125 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Abzû # send your bug reports to bugs@dotslashplay.it ### script_version=20240611.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='abzu' GAME_NAME='Abzû' ARCHIVE_BASE_0_NAME='setup_abzu_1.0_(19143).exe' ARCHIVE_BASE_0_MD5='959dbb83bfa8b147a9571a10256cd574' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='4800000' ARCHIVE_BASE_0_VERSION='1.0-gog19143' ARCHIVE_BASE_0_URL='https://www.gog.com/game/abzu' UNREALENGINE4_NAME='abzugame' CONTENT_PATH_DEFAULT='.' APP_MAIN_EXE="${UNREALENGINE4_NAME}/binaries/win64/${UNREALENGINE4_NAME}-win64-shipping.exe" APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=123' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-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-agatha-christie-the-abc-murders.sh0000755000000000000000000000654214471751340020204 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2021 Anna Lea # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Agatha Christie: The ABC Murders # send your bug reports to bugs@dotslashplay.it ### script_version=20240821.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='agatha-christie-the-abc-murders' GAME_NAME='Agatha Christie: The ABC Murders' ARCHIVE_BASE_INTL_0_NAME='gog_agatha_christie_the_abc_murders_2.2.0.4.sh' ARCHIVE_BASE_INTL_0_MD5='271dab525be57f2783622bbbeb30c7c1' ARCHIVE_BASE_INTL_0_SIZE='2700000' ARCHIVE_BASE_INTL_0_VERSION='1.0-gog2.2.0.4' ARCHIVE_BASE_INTL_0_URL='https://www.gog.com/game/agatha_christie_the_abc_murders' ARCHIVE_BASE_PL_0_NAME='gog_agatha_christie_the_abc_murders_polish_2.2.0.4.sh' ARCHIVE_BASE_PL_0_MD5='a9e8e3dcc65e651302e06abbd1446fe6' ARCHIVE_BASE_PL_0_SIZE='2700000' ARCHIVE_BASE_PL_0_VERSION='1.0-gog2.2.0.4' ARCHIVE_BASE_PL_0_URL='https://www.gog.com/game/agatha_christie_the_abc_murders' ARCHIVE_BASE_RU_0_NAME='gog_agatha_christie_the_abc_murders_russian_2.2.0.4.sh' ARCHIVE_BASE_RU_0_MD5='0becf882ba0e8ae4609c3e771236670c' ARCHIVE_BASE_RU_0_SIZE='2700000' ARCHIVE_BASE_RU_0_VERSION='1.0-gog2.2.0.4' ARCHIVE_BASE_RU_0_URL='https://www.gog.com/game/agatha_christie_the_abc_murders' UNITY3D_NAME='The ABC Murders' 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' CONTENT_GAME_L10N_FILES=" ${UNITY3D_NAME}_Data/Managed ${UNITY3D_NAME}_Data/mainData ${UNITY3D_NAME}_Data/resources.assets ${UNITY3D_NAME}_Data/level*" PACKAGES_LIST=' PKG_BIN PKG_L10N PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N_BASE PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_L10N_BASE_ID="${GAME_ID}-l10n" PKG_L10N_ID_INTL="${PKG_L10N_BASE_ID}-intl" PKG_L10N_ID_PL="${PKG_L10N_BASE_ID}-pl" PKG_L10N_ID_RU="${PKG_L10N_BASE_ID}-ru" PKG_L10N_PROVIDES=" $PKG_L10N_BASE_ID" PKG_L10N_DESCRIPTION_INTL='English, French, German, Spanish, Italian and Portuguese localizations' PKG_L10N_DESCRIPTION_PL='Polish localization' PKG_L10N_DESCRIPTION_RU='Russian localization' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-agent-a.sh0000755000000000000000000000361614471751340013502 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Agent A: A puzzle in disguise # send your bug reports to bugs@dotslashplay.it ### script_version=20240820.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='agent-a' GAME_NAME='Agent A: A puzzle in disguise' ARCHIVE_BASE_0_NAME='setup_agent_a_a_puzzle_in_disguise_5.2.6_(64bit)_(41141).exe' ARCHIVE_BASE_0_MD5='61d97b710d5d13c428133420006591d2' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='510000' ARCHIVE_BASE_0_VERSION='5.2.6-gog41141' ARCHIVE_BASE_0_URL='https://www.gog.com/game/agent_a_a_puzzle_in_disguise' UNITY3D_NAME='agenta' CONTENT_PATH_DEFAULT='.' WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\Yak & Co\Agent A' 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-alba-a-wildlife-adventure.sh0000755000000000000000000000342514471751340017071 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Alba: A Wildlife Adventure # send your bug reports to bugs@dotslashplay.it ### script_version=20240820.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='alba-a-wildlife-adventure' GAME_NAME='Alba: A Wildlife Adventure' ARCHIVE_BASE_0_NAME='setup_alba_a_wildlife_adventure_0.90_(43308).exe' ARCHIVE_BASE_0_MD5='709ac0ea04e7e1f6427b9b8eff0a9e30' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='690000' ARCHIVE_BASE_0_VERSION='0.90-gog43308' ARCHIVE_BASE_0_URL='https://www.gog.com/game/alba_a_wildlife_adventure' UNITY3D_NAME='alba' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/ustwo games/Alba' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-amerzone.sh0000755000000000000000000000701214471751340014000 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Amerzone: The Explorer's Legacy # send your bug reports to bugs@dotslashplay.it ### script_version=20240821.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='amerzone' GAME_NAME='Amerzone: The Explorer’s Legacy' ARCHIVE_BASE_EN_0_NAME='setup_amerzone_2.0.0.8.exe' ARCHIVE_BASE_EN_0_MD5='f6be5dbae76289bfdb58eef01913f85e' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_SIZE='2000000' ARCHIVE_BASE_EN_0_VERSION='1.0-gog2.0.0.8' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/amerzone_the_explorer_legacy' ARCHIVE_BASE_FR_0_NAME='setup_amerzone_french_2.1.0.10.exe' ARCHIVE_BASE_FR_0_MD5='00458580b95940b6d7257cfa6ba902b2' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_SIZE='2000000' ARCHIVE_BASE_FR_0_VERSION='1.0-gog2.1.0.10' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/amerzone_the_explorer_legacy' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' *.dll *.exe launch' CONTENT_GAME_L10N_FILES=' splash ??vr_*/*.ifo ??vr_*/acces_base.vr ??vr_*/avion.vr ??vr_*/bark.vr ??vr_*/carnet.vr ??vr_*/changelevel.vr ??vr_*/chapter?.vr ??vr_*/chklist.vr ??vr_*/coordonnees.vr ??vr_*/credits.vr ??vr_*/disk?.vr ??vr_*/glisseur.vr ??vr_*/grappin.vr ??vr_*/helico.vr ??vr_*/interface.vr ??vr_*/inv_*.vr ??vr_*/inventaire*.vr ??vr_*/lettre*.vr ??vr_*/modes.vr ??vr_*/nocarbu*.vr ??vr_*/oeuf*.vr ??vr_*/options.vr ??vr_*/password.vr ??vr_*/quit.vr ??vr_*/ssmarin.vr ??vr_*/testament.vr ??vr_*/voilier.vr 01vr_phare/sc01_a.smk 01vr_phare/scene01.smk 01vr_phare/scene03.smk 02vr_ile/sc14.smk 02vr_ile/sc15.smk 02vr_ile/sc16.smk 03vr_pueblo/scene23.smk 03vr_pueblo/scene26.smk 03vr_pueblo/scene27.smk 05vr_villagemarais/sc41.smk 01vr_phare/warp214.vr 02vr_ile/warp321.vr 03vr_pueblo/warp404.vr 03vr_pueblo/warp410.vr 04vr_fleuve/warp518a.vr 04vr_fleuve/warp519a.vr 05vr_villagemarais/warp734.vr 01vr_phare/museum.wav 05vr_villagemarais/indian8.wav 05vr_villagemarais/indian9.wav 05vr_villagemarais/indian10.wav' CONTENT_GAME_DATA_FILES=' *.dat *.ico *.pak *.smk *.tst *.vr ??vr_*' CONTENT_DOC_L10N_FILES=' *.pdf' USER_PERSISTENT_FILES=' Saved_*.bin' WINE_VIRTUAL_DESKTOP='auto' APP_MAIN_EXE='amerzone.exe' PACKAGES_LIST=' PKG_BIN PKG_L10N PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N_BASE PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='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' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-ankh-1.sh0000755000000000000000000000511214471751340013236 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Ankh 1 # send your bug reports to bugs@dotslashplay.it ### script_version=20241023.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='ankh-1' GAME_NAME='Ankh' ARCHIVE_BASE_0_NAME='setup_ankh_-_anniversary_edition_1.0a_(34062).exe' ARCHIVE_BASE_0_MD5='b1e6094c37d3da40352303c0a1f51f0c' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='910000' ARCHIVE_BASE_0_VERSION='1.0a-gog34062' ARCHIVE_BASE_0_URL='https://www.gog.com/game/ankh_anniversary_edition' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' bin' CONTENT_GAME_DATA_FILES=' media' CONTENT_DOC_DATA_FILES=' readme.txt' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/Ankh' USER_PERSISTENT_FILES=' bin/release/plugins.cfg media/*.cfg media/*.ini' APP_MAIN_EXE='bin/release/ankh.exe' APP_MAIN_ICON='bin/release/ankh.ico' ## The game expects a writable "save" directory, ## despite not using it to store saved games APP_MAIN_PRERUN=' # The game expects a writable "save" directory, # despite not using it to store saved games mkdir --parents save ' ## Enable game logs storage APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' # Enable game logs storage mkdir --parents bin/release/logs ' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Drop log files rm --recursive \ 'bin/release/logs' \ 'bin/release/cegui.log' \ 'bin/release/ogre.log' ) # 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/release $(wine_command) ankh.exe "$@" EOF } launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-annas-quest.sh0000755000000000000000000000354614471751340014427 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Anna's Quest # send your bug reports to bugs@dotslashplay.it ### script_version=20240822.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='annas-quest' GAME_NAME='Anna’s Quest' ARCHIVE_BASE_1_NAME='anna_s_quest_1_1_0214_27877.sh' ARCHIVE_BASE_1_MD5='48fd7d6c2a8a519a227cbf604392109b' ARCHIVE_BASE_1_SIZE='1200000' ARCHIVE_BASE_1_VERSION='1.1.0214-gog27877' ARCHIVE_BASE_1_URL='https://www.gog.com/game/annas_quest' ARCHIVE_BASE_0_NAME='gog_anna_s_quest_2.1.0.3.sh' ARCHIVE_BASE_0_MD5='cb4cf167a13413b6df8238397393298a' ARCHIVE_BASE_0_SIZE='1100000' ARCHIVE_BASE_0_VERSION='1.0.0202-gog2.1.0.3' VISIONAIRE_NAME='anna' CONTENT_PATH_DEFAULT='data/noarch/game' APP_MAIN_ICON='../support/icon.png' PKG_BIN_ARCH='64' ## Ensure smooth upgrades from packages generated by game scripts pre-20231005.1 PKG_DATA_PROVIDES=' annas-quest-videos' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-another-lost-phone.sh0000755000000000000000000000467414471751340015721 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Another Lost Phone: Laura's Story # send your bug reports to bugs@dotslashplay.it ### script_version=20240915.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='another-lost-phone' GAME_NAME='Another Lost Phone: Laura’s Story' ARCHIVE_BASE_0_NAME='another-lost-phone-lauras-story_lin.zip' ARCHIVE_BASE_0_MD5='0302bfe834c12bde582ec2dbf5e0a69f' ## unzip can not be used because "\" is used as the path separator in the archive, instead of "/". ARCHIVE_BASE_0_EXTRACTOR='unar' ARCHIVE_BASE_0_SIZE='150000' ARCHIVE_BASE_0_VERSION='1.0-indiegala' ARCHIVE_BASE_0_URL='https://freebies.indiegala.com/another-lost-phone-laura-s-story' UNITY3D_NAME='alp' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='.' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # 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-apocalipsis.sh0000755000000000000000000000341014471751340014465 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Apocalipsis # send your bug reports to bugs@dotslashplay.it ### script_version=20240707.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='apocalipsis' GAME_NAME='Apocalipsis' ARCHIVE_BASE_0_NAME='setup_apocalipsis_wormwood_edition_2.0.0.2.exe' ARCHIVE_BASE_0_MD5='546af1780657e64f0d2463b2fb5617dd' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='4100000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.2' ARCHIVE_BASE_0_URL='https://www.gog.com/game/apocalipsis_wormwood_edition' UNITY3D_NAME='apocalipsis' CONTENT_PATH_DEFAULT='app' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/Apocalipsis' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-arise-a-simple-story.sh0000755000000000000000000000437314471751340016155 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Arise: A Simple Story # send your bug reports to bugs@dotslashplay.it ### script_version=20241105.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='arise-a-simple-story' GAME_NAME='Arise: A Simple Story' ARCHIVE_BASE_0_NAME='setup_arise_a_simple_story_1.20.3_(64bit)_(53242).exe' ARCHIVE_BASE_0_MD5='7b0ce5207861d990aa4d2c4ba9baefb1' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_arise_a_simple_story_1.20.3_(64bit)_(53242)-1.bin' ARCHIVE_BASE_0_PART1_MD5='a364d73d653de062ff7f2808614bd6ef' ARCHIVE_BASE_0_PART2_NAME='setup_arise_a_simple_story_1.20.3_(64bit)_(53242)-2.bin' ARCHIVE_BASE_0_PART2_MD5='ab2a758bd1885455e45336ba70cbc018' ARCHIVE_BASE_0_SIZE='5800000' ARCHIVE_BASE_0_VERSION='1.20.3-gog53242' ARCHIVE_BASE_0_URL='https://www.gog.com/game/arise_a_simple_story' UNREALENGINE4_NAME='arise' CONTENT_PATH_DEFAULT='.' APP_MAIN_EXE="${UNREALENGINE4_NAME}/binaries/win64/${UNREALENGINE4_NAME}-win64-shipping.exe" ## The --name=101 wrestool option, default for UE4 games, should not be used here APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-armikrog.sh0000755000000000000000000001003114471751340013766 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Anna Lea # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Armikrog # send your bug reports to bugs@dotslashplay.it ### script_version=20250406.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='armikrog' GAME_NAME='Armikrog' ARCHIVE_BASE_LINUX_0_NAME='gog_armikrog_2.5.0.6.sh' ARCHIVE_BASE_LINUX_0_MD5='4ca9ac6d05ac66c18229e41da6fd89dd' ARCHIVE_BASE_LINUX_0_SIZE='2900000' ARCHIVE_BASE_LINUX_0_VERSION='2016.01.11-gog2.5.0.6' ARCHIVE_BASE_LINUX_0_URL='https://www.gog.com/game/armikrog' ## Support for the Windows build is provided to work around a double cursor display bug on the Linux build. ## cf. https://forge.dotslashplay.it/play.it/games-adventure/-/issues/87 ARCHIVE_BASE_WINDOWS_0_NAME='setup_armikrog_1.05_(20650).exe' ARCHIVE_BASE_WINDOWS_0_MD5='9b18bfd56117bcdbd95434203303b941' ARCHIVE_BASE_WINDOWS_0_TYPE='innosetup' ARCHIVE_BASE_WINDOWS_0_SIZE='2900000' ARCHIVE_BASE_WINDOWS_0_VERSION='1.05-gog20650' ARCHIVE_BASE_WINDOWS_0_URL='https://www.gog.com/game/armikrog' UNITY3D_NAME_LINUX='Armikrog' UNITY3D_NAME_WINDOWS='armikrog' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT_LINUX='data/noarch/game' CONTENT_PATH_DEFAULT_WINDOWS='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/PencilTestStudios/Armikrog' # Packages PKG_BIN_ID="$GAME_ID" PKG_BIN_PROVIDES=" $PKG_BIN_ID" PKG_BIN64_PROVIDES="$PKG_BIN_PROVIDES" PKG_BIN32_PROVIDES="$PKG_BIN_PROVIDES" PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_PROVIDES=" $PKG_DATA_ID" PKG_DATA_DESCRIPTION='data' ## Linux build PACKAGES_LIST_LINUX=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ID_LINUX="${PKG_BIN_ID}-linux" PKG_BIN32_ID_LINUX="${PKG_BIN_ID}-linux" PKG_BIN64_ARCH_LINUX='64' PKG_BIN32_ARCH_LINUX='32' PKG_BIN_DEPENDENCIES_LIBRARIES_LINUX=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgthread-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXext.so.6 libXrandr.so.2' PKG_BIN64_DEPENDENCIES_LIBRARIES_LINUX="$PKG_BIN_DEPENDENCIES_LIBRARIES_LINUX" PKG_BIN32_DEPENDENCIES_LIBRARIES_LINUX="$PKG_BIN_DEPENDENCIES_LIBRARIES_LINUX" PKG_DATA_ID_LINUX="${PKG_DATA_ID}-linux" ## Windows build PACKAGES_LIST_WINDOWS=' PKG_BIN PKG_DATA' PKG_BIN_ID_WINDOWS="${PKG_BIN_ID}-windows" PKG_BIN_ARCH_WINDOWS='32' PKG_DATA_ID_WINDOWS="${PKG_DATA_ID}-windows" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # 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 ; } case "$(current_archive)" in ('ARCHIVE_BASE_LINUX_'*) launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' ;; ('ARCHIVE_BASE_WINDOWS_'*) launchers_generation 'PKG_BIN' ;; esac # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-astrologaster.sh0000755000000000000000000000360014471751340015050 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Astrologaster # send your bug reports to bugs@dotslashplay.it ### script_version=20240905.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='astrologaster' GAME_NAME='Astrologaster' ARCHIVE_BASE_0_NAME='AstrologasterWindows.zip' ARCHIVE_BASE_0_MD5='049626f1818a1fdd828c3cdadd2052a9' ARCHIVE_BASE_0_SIZE='710000' ARCHIVE_BASE_0_VERSION='1.6.0-itch1' ARCHIVE_BASE_0_URL='https://nyamyam.itch.io/astrologaster' CONTENT_PATH_DEFAULT='AstrologasterWindows' CONTENT_GAME_BIN_FILES=' glew32.dll SDL2.dll Astrologaster.exe' ## Despite the "Binary" name, this path seems to include only architecture-agnostic data. CONTENT_GAME_DATA_FILES=' Binary' USER_PERSISTENT_DIRECTORIES=' Save' APP_MAIN_EXE='Astrologaster.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-atlantis-1.sh0000755000000000000000000000564114471751340014143 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Atlantis: The Lost Tales # send your bug reports to bugs@dotslashplay.it ### script_version=20250807.2 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='atlantis-1' GAME_NAME='Atlantis: The Lost Tales' ARCHIVE_BASE_EN_0_NAME='setup_atlantis_the_lost_tales_2.0.0.15.exe' ARCHIVE_BASE_EN_0_MD5='287170bea9041b4e29888d97f87eb9fc' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_SIZE='1900000' ARCHIVE_BASE_EN_0_VERSION='1.0-gog2.0.0.15' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/atlantis_the_lost_tales' ARCHIVE_BASE_FR_0_NAME='setup_atlantis_the_lost_tales_french_2.1.0.15.exe' ARCHIVE_BASE_FR_0_MD5='0cb6b037a457d35dacd23e1f22aea57b' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_SIZE='1900000' ARCHIVE_BASE_FR_0_VERSION='1.0-gog2.1.0.15' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/atlantis_the_lost_tales' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' *.exe *.dll' CONTENT_GAME_L10N_FILES=' images/end.tga scenar sprlist wav' CONTENT_GAME_DATA_FILES=' *.big cyclo dialog images puzzles sprite ubb_vue wam' CONTENT_DOC_DATA_FILES=' *.pdf' USER_PERSISTENT_FILES=' players.atl' ## Set game directory in the registry. # shellcheck disable=SC1003 WINE_REGISTRY_INIT=' [HKEY_CURRENT_USER\Software\CRYO\Atlantis\GameDirectory] @="C:\\'"${GAME_ID}"'\\"' APP_MAIN_EXE='atlantis.exe' PACKAGES_LIST=' PKG_BIN PKG_L10N PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_ID="$GAME_ID" PKG_BIN_ID_EN="${PKG_BIN_ID}-en" PKG_BIN_ID_FR="${PKG_BIN_ID}-fr" PKG_BIN_PROVIDES=" $PKG_BIN_ID" PKG_BIN_DESCRIPTION_EN='English version' PKG_BIN_DESCRIPTION_FR='French version' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N PKG_DATA' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_ID_EN="${PKG_L10N_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 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 # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-backbone.sh0000755000000000000000000000361314471751340013727 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Backbone # send your bug reports to bugs@dotslashplay.it ### script_version=20250827.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='backbone' GAME_NAME='Backbone' ## This archive used to be available from itch.io, ## but is no longer sold. ARCHIVE_BASE_0_NAME='backbone_windows.zip' ARCHIVE_BASE_0_MD5='c306e782f7c1f62bd3e247d6eb682182' ARCHIVE_BASE_0_SIZE='2300000' ARCHIVE_BASE_0_VERSION='1.0-itch.2022.03.06' UNREALENGINE4_NAME='detective' CONTENT_PATH_DEFAULT='backbone_windows' APP_MAIN_EXE='detective.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' 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=' convmv' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default ## Convert all file paths to lower case. tolower "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-bad-dream-series.sh0000755000000000000000000000540214471751340015265 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2021 Anna Lea # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Bad Dream series: # - Bad Dream: Coma # - Bad Dream: Fever # send your bug reports to bugs@dotslashplay.it ### script_version=20250519.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID_COMA='bad-dream-coma' GAME_NAME_COMA='Bad Dream: Coma' GAME_ID_FEVER='bad-dream-fever' GAME_NAME_FEVER='Bad Dream: Fever' ARCHIVE_BASE_COMA_0_NAME='setup_bad_dream_coma_1.0_(26985).exe' ARCHIVE_BASE_COMA_0_MD5='e4f0655ee22d99bdf09d0ee7a6980f23' ARCHIVE_BASE_COMA_0_TYPE='innosetup' ARCHIVE_BASE_COMA_0_SIZE='4100000' ARCHIVE_BASE_COMA_0_VERSION='1.0-gog26985' ARCHIVE_BASE_COMA_0_URL='https://www.gog.com/game/bad_dream_coma' ARCHIVE_BASE_FEVER_0_NAME='setup_bad_dream_fever_1.0_(26985).exe' ARCHIVE_BASE_FEVER_0_MD5='19336f3d5f3920873c7f111f9bda3f8b' ARCHIVE_BASE_FEVER_0_TYPE='innosetup' ARCHIVE_BASE_FEVER_0_SIZE='490000' ARCHIVE_BASE_FEVER_0_VERSION='1.0-gog26985' ARCHIVE_BASE_FEVER_0_URL='https://www.gog.com/game/bad_dream_fever' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' d3dx9_43.dll options.ini' CONTENT_GAME0_BIN_FILES_COMA=' bad dream coma.exe' CONTENT_GAME0_BIN_FILES_FEVER=' bad dream fever.exe' CONTENT_GAME_DATA_FILES=' language splash.png data.win *.dat *.ogg' WINE_PERSISTENT_DIRECTORIES_COMA=' users/${USER}/Local Settings/Application Data/Bad_Dream_Coma' WINE_PERSISTENT_DIRECTORIES_FEVER=' users/${USER}/Local Settings/Application Data/Bad_Dream_Fever' APP_MAIN_EXE_COMA='bad dream coma.exe' APP_MAIN_EXE_FEVER='bad dream fever.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID_COMA="${GAME_ID_COMA}-data" PKG_DATA_ID_FEVER="${GAME_ID_FEVER}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 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-bad-end-theater.sh0000755000000000000000000000307214471751340015106 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Bad End Theater # send your bug reports to bugs@dotslashplay.it ### script_version=20240906.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='bad-end-theater' GAME_NAME='Bad End Theater' ARCHIVE_BASE_0_NAME='bad_end_theater_1_6_0_62289.sh' ARCHIVE_BASE_0_MD5='27a1f2aa68d562e2ef55d67c5405d43f' ARCHIVE_BASE_0_SIZE='182527' ARCHIVE_BASE_0_VERSION='1.6.0-gog62289' ARCHIVE_BASE_0_URL='https://www.gog.com/game/bad_end_theater' CONTENT_PATH_DEFAULT='data/noarch/game/game' CONTENT_GAME_MAIN_FILES=' cache tl archive.rpa script_version.txt' APP_MAIN_TYPE='renpy' APP_MAIN_ICON='../../support/icon.png' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-bad-mojo.sh0000755000000000000000000000613114471751340013651 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Bad Mojo # send your bug reports to bugs@dotslashplay.it ### script_version=20250807.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='bad-mojo' GAME_NAME='Bad Mojo' ARCHIVE_BASE_0_NAME='setup_badmojo_2.0.0.3.exe' ARCHIVE_BASE_0_MD5='aedcb9e57bf5c6e692b889d3c21c4d12' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='770000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.3' ARCHIVE_BASE_0_URL='https://www.gog.com/game/bad_mojo_redux' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' badmojo.exe qthook.dll waveout.dll' ## This configuration file is created by the current game script. CONTENT_GAME0_BIN_FILES=' badmojo.ini' CONTENT_GAME1_BIN_PATH='tmp' CONTENT_GAME1_BIN_FILES=' quicktimeinstaller.exe' CONTENT_GAME_DATA_FILES=' backgnd btc cel extras mash movie over palette qtsystem roachd save scribble script sound topo quicktime.qts' USER_PERSISTENT_DIRECTORIES=' save' USER_PERSISTENT_FILES=' badmojo.ini' APP_MAIN_EXE='badmojo.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Create required configuration file. game_id=$(game_id) cat > 'badmojo.ini' <<- EOF [booger] BACKGROUND=C:\\${game_id}\\OVER;C:\\${game_id}\\BACKGND TOPO=C:\\${game_id}\\TOPO BTC=C:\\${game_id}\\BTC PALETTE=C:\\${game_id}\\PALETTE SCRIBBLE=C:\\${game_id}\\OVER;C:\\${game_id}\\SCRIBBLE CEL=C:\\${game_id}\\OVER;C:\\${game_id}\\CEL SCRIPT=C:\\${game_id}\\SCRIPT ROACH=C:\\${game_id}\\ROACHD MOVIE=C:\\${game_id}\\OVER;C:\\${game_id}\\MOVIE MASH=C:\\${game_id}\\OVER;C:\\${game_id}\\MASH SOUND=C:\\${game_id}\\SOUND SAVE=C:\\${game_id}\\SAVE [SoundMix] SoundOn=1 BetweenScreens=1 SmallChunkSize=3 BigChunkSize=26 BigChunkMethod=0 DumbSound=0 [badmojo] Preferences=1111110 EOF ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## Install the shipped QuickTime player. wineprefix_init_custom() { cat <<- 'EOF' ## Install the shipped QuickTime player. wine C:\\bad-mojo\\quicktimeinstaller.exe EOF } launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-beacon-pines.sh0000755000000000000000000000344514471751340014531 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Beacon Pines # send your bug reports to bugs@dotslashplay.it ### script_version=20250406.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='beacon-pines' GAME_NAME='Beacon Pines' ARCHIVE_BASE_0_NAME='setup_beacon_pines_1.1.1_(63135).exe' ARCHIVE_BASE_0_MD5='a19d066a3d9c7df55a1db27e47e7852f' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1943267' ARCHIVE_BASE_0_VERSION='1.1.1-gog63135' ARCHIVE_BASE_0_URL='https://www.gog.com/game/beacon_pines' UNITY3D_NAME='beacon pines' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Hiding Spot/Beacon Pines' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_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-bear-with-me.sh0000755000000000000000000000400414471751340014437 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Bear With Me # send your bug reports to bugs@dotslashplay.it ### script_version=20240807.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='bear-with-me' GAME_NAME='Bear With Me' ARCHIVE_BASE_0_NAME='setup_bear_with_me_the_complete_collection_1.5_(64bit)_(31355).exe' ARCHIVE_BASE_0_MD5='dc976c102553bfc06edab9fc2de4b1c7' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_bear_with_me_the_complete_collection_1.5_(64bit)_(31355)-1.bin' ARCHIVE_BASE_0_PART1_MD5='4e7acd402cd6bfd66c6df053b9a70353' ARCHIVE_BASE_0_SIZE='4500000' ARCHIVE_BASE_0_VERSION='1.5-gog31355' ARCHIVE_BASE_0_URL='https://www.gog.com/game/bear_with_me_the_complete_collection' UNITY3D_NAME='bear with me - the lost robots' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Exordium Games/Bear With Me - The Lost Robots' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-beat-cop.sh0000755000000000000000000000504314471751340013654 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Anna Lea # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Beat Cop # send your bug reports to bugs@dotslashplay.it ### script_version=20241112.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='beat-cop' GAME_NAME='Beat Cop' ARCHIVE_BASE_0_NAME='beat_cop_en_1_1_744_17129.sh' ARCHIVE_BASE_0_MD5='090be367a794f7c8a0043a94bea71bf8' ARCHIVE_BASE_0_SIZE='360000' ARCHIVE_BASE_0_VERSION='1.1.744-gog17129' ARCHIVE_BASE_0_URL='https://www.gog.com/game/beat_cop' UNITY3D_NAME='BeatCop' CONTENT_PATH_DEFAULT='data/noarch/game' ## FIXME: The list of Unity3D plugins to include should be set using UNITY3D_PLUGINS CONTENT_GAME0_BIN64_FILES=" ${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_GAME0_BIN32_FILES=" ${UNITY3D_NAME}_Data/Plugins/x86" ## FIXME: Shipped libraries to include should be listed using CONTENT_xxx_LIBS_{PATH,FILES} CONTENT_GAME1_BIN64_FILES=' lib64' CONTENT_GAME1_BIN32_FILES=' lib32' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" # TODO: The list of dependencies should be completed PKG_BIN_DEPENDENCIES_LIBRARIES=' libstdc++.so.6 libSDL2-2.0.so.0 libgdk-x11-2.0.so.0 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-beautiful-desolation.sh0000755000000000000000000000576214471751340016311 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Beautiful Desolation # send your bug reports to bugs@dotslashplay.it ### script_version=20241209.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='beautiful-desolation' GAME_NAME='Beautiful Desolation' ARCHIVE_BASE_1_NAME='beautiful_desolation_1_0_5_5_44769.sh' ARCHIVE_BASE_1_MD5='0656c2fb0ef2ad2bc0087d16f5d02e46' ARCHIVE_BASE_1_SIZE='16000000' ARCHIVE_BASE_1_VERSION='1.0.5.5-gog44769' ARCHIVE_BASE_1_URL='https://www.gog.com/game/beautiful_desolation' ARCHIVE_BASE_0_NAME='beautiful_desolation_1_0_3_9_38147.sh' ARCHIVE_BASE_0_MD5='18fe66cffc59f033a4d057233b1ebb1f' ARCHIVE_BASE_0_SIZE='14000000' ARCHIVE_BASE_0_VERSION='1.0.3.9-gog38147' UNITY3D_NAME='desolation' UNITY3D_PLUGINS=' ScreenSelector.so' ## The Steam library must be included to avoid the following crash on launch: ## ## System.DllNotFoundException: steam_api ## at (wrapper managed-to-native) Steamworks.NativeMethods:SteamAPI_RestartAppIfNecessary (Steamworks.AppId_t) ## at Steamworks.SteamAPI.RestartAppIfNecessary (AppId_t unOwnAppID) [0x00000] in :0 ## at SteamManager.Awake () [0x00000] in :0 UNITY3D_PLUGINS="${UNITY3D_PLUGINS:-}"' libsteam_api.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_DATA_VIDEO_FILES=" ${UNITY3D_NAME}_Data/StreamingAssets/videoEncoded ${UNITY3D_NAME}_Data/StreamingAssets/videoEncoded_webm ${UNITY3D_NAME}_Data/StreamingAssets/bundles/videoencoded_mp4-media_*" PACKAGES_LIST=' PKG_BIN PKG_DATA_VIDEO 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' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_DATA_VIDEO' PKG_DATA_VIDEO_ID="${PKG_DATA_ID}-video" PKG_DATA_VIDEO_DESCRIPTION="$PKG_DATA_DESCRIPTION - video" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 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-before-your-eyes.sh0000755000000000000000000000356714471751340015374 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Before Your Eyes # send your bug reports to bugs@dotslashplay.it ### script_version=20240906.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='before-your-eyes' GAME_NAME='Before Your Eyes' ARCHIVE_BASE_0_NAME='setup_before_your_eyes_1.2.6.9_(61649).exe' ARCHIVE_BASE_0_MD5='4da11b5113be696a0dc0764e19e06a99' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_before_your_eyes_1.2.6.9_(61649)-1.bin' ARCHIVE_BASE_0_PART1_MD5='c0ecc5986194e1c090662a25c25b8eb7' ARCHIVE_BASE_0_SIZE='5100000' ARCHIVE_BASE_0_VERSION='1.2.6.9-gog61649' ARCHIVE_BASE_0_URL='https://www.gog.com/game/before_your_eyes' UNITY3D_NAME='before your eyes' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Goodbye World/Before Your Eyes' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-behind-the-frame.sh0000755000000000000000000000361014471751340015257 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Behind the Frame: The Finest Scenery # send your bug reports to bugs@dotslashplay.it ### script_version=20240807.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='behind-the-frame' GAME_NAME='Behind the Frame: The Finest Scenery' ARCHIVE_BASE_0_NAME='setup_behind_the_frame_the_finest_scenery_2.0.2_01_(56766).exe' ARCHIVE_BASE_0_MD5='ed9d47bbb283bd8763c2c8f7a351f5d2' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2500000' ARCHIVE_BASE_0_VERSION='2.0.2.01-gog56766' ARCHIVE_BASE_0_URL='https://www.gog.com/en/game/behind_the_frame_the_finest_scenery' UNITY3D_NAME='behind the frame' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Silver Lining Studio/Behind the Frame' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-beyond-zork.sh0000755000000000000000000000370214471751340014425 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2017 Mopi set -o errexit ### # Beyond Zork: The Coconut of Quendor # send your bug reports to bugs@dotslashplay.it ### script_version=20240915.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='beyond-zork' GAME_NAME='Beyond Zork: The Coconut of Quendor' ARCHIVE_BASE_1_NAME='setup_beyond_zork_-_the_coconut_of_quendor_1.0_(28043).exe' ARCHIVE_BASE_1_MD5='01a92eaa89649bac71115c0599f67e89' ARCHIVE_BASE_1_SIZE='17236' ARCHIVE_BASE_1_VERSION='1.0-gog28043' ARCHIVE_BASE_1_URL='https://www.gog.com/game/the_zork_anthology' ARCHIVE_BASE_0_NAME='setup_beyond_zork_2.1.0.17.exe' ARCHIVE_BASE_0_MD5='8a5168d7340af5b1b4df708f467785c0' ARCHIVE_BASE_0_SIZE='21000' ARCHIVE_BASE_0_VERSION='1.0-gog2.1.0.17' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_MAIN_FILES=' data bzork.exe frotz.exe beyondzo.mg1' CONTENT_DOC_MAIN_FILES=' *.pdf' USER_PERSISTENT_FILES=' *.SAV' APP_MAIN_EXE='frotz.exe' APP_MAIN_OPTIONS='data\\beyondzo.dat' APP_MAIN_ICON='goggame-1207661533.ico' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-blade-runner.sh0000755000000000000000000000630514471751340014542 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 macaron # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Blade Runner # send your bug reports to bugs@dotslashplay.it ### script_version=20250814.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='blade-runner' GAME_NAME='Blade Runner' ARCHIVE_BASE_EN_0_NAME='blade_runner_1_0_svm_src_34722.sh' ARCHIVE_BASE_EN_0_MD5='d9dd6f98eb8dc9401d5499a1d48e5d76' ARCHIVE_BASE_EN_0_SIZE='1700000' ARCHIVE_BASE_EN_0_VERSION='1.0-gog34722' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/blade_runner' ARCHIVE_BASE_FR_0_NAME='blade_runner_french_1_0_svm_src_34722.sh' ARCHIVE_BASE_FR_0_MD5='98ee3723ac6114a6b464af0b07f76757' ARCHIVE_BASE_FR_0_SIZE='1700000' ARCHIVE_BASE_FR_0_VERSION='1.0-gog34722' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/blade_runner' ## Optional subtitles ARCHIVE_OPTIONAL_SUBTITLES_NAME='Blade_Runner_Subtitles-v6.zip' ARCHIVE_OPTIONAL_SUBTITLES_MD5='f9b4e5738d3c6092cac3485c41f47cb2' ARCHIVE_OPTIONAL_SUBTITLES_URL='https://www.scummvm.org/games/#bladerunner' CONTENT_PATH_DEFAULT='data/noarch/game/data' CONTENT_GAME_MAIN_FILES=' *.dat *.mix *.tlk' CONTENT_DOC_MAIN_FILES=' *.pdf' CONTENT_DOC0_MAIN_PATH='data/noarch/docs' CONTENT_DOC0_MAIN_FILES=' *.txt' ## Optional subtitles CONTENT_GAME_SUBTITLES_PATH='.' CONTENT_GAME_SUBTITLES_FILES=' subtitles.mix' CONTENT_DOC_SUBTITLES_PATH='.' CONTENT_DOC_SUBTITLES_FILES=' readme.txt' APP_MAIN_SCUMMID='bladerunner:bladerunner' APP_MAIN_ICON='../../support/icon.png' APP_RESTORED_SCUMMID='bladerunner:bladerunner-final' APP_RESTORED_ID="${GAME_ID}-restored" APP_RESTORED_NAME="$GAME_NAME with restored content" APP_RESTORED_ICON='../../support/icon.png' PKG_MAIN_ID="$GAME_ID" PKG_MAIN_ID_EN="${GAME_ID}-en" PKG_MAIN_ID_FR="${GAME_ID}-fr" PKG_MAIN_PROVIDES=" $PKG_MAIN_ID" # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialisation actions. initialization_default "$@" # Check for the presence of the optional subtitle archive. archive_initialize_optional \ 'ARCHIVE_SUBTITLES' \ 'ARCHIVE_OPTIONAL_SUBTITLES' # Extract game data. archive_extraction_default ## Optional subtitles if archive_is_available 'ARCHIVE_SUBTITLES'; then archive_extraction 'ARCHIVE_SUBTITLES' fi # Include game data. content_inclusion_icons ## Optional subtitles if archive_is_available 'ARCHIVE_SUBTITLES'; then content_inclusion 'GAME_SUBTITLES' 'PKG_MAIN' "$(path_game_data)" content_inclusion 'DOC_SUBTITLES' 'PKG_MAIN' "$(path_documentation)/subtitles" fi content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-blind-men.sh0000755000000000000000000000351714471751340014033 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Blind Men # send your bug reports to bugs@dotslashplay.it ### script_version=20250406.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='blind-men' GAME_NAME='Blind Men' ARCHIVE_BASE_0_NAME='Blind_Men-1.3-linux.tar.bz2' ARCHIVE_BASE_0_MD5='7ad9b061db08427caebbef1650f34004' ARCHIVE_BASE_0_SIZE='325205' ARCHIVE_BASE_0_VERSION='1.3-itch.2020.09.25' ARCHIVE_BASE_0_URL='https://maneatergames.itch.io/blind-men' CONTENT_PATH_DEFAULT='Blind_Men-1.3-linux/game' CONTENT_GAME_MAIN_FILES=' cache images music hunter_diamondbranch images.rpa scripts.rpa script_version.txt' APP_MAIN_TYPE='renpy' ## Ensure easy upgrades from packages generated with pre-20250406.1 game scripts PKG_MAIN_PROVIDES="${PKG_MAIN_PROVIDES:-} blind-men-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_default # Write launchers ## Use default Ren'Py icon desktop_field_icon() { printf 'renpy' } launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-botanicula.sh0000755000000000000000000001100114471751340014272 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # Botanicula # send your bug reports to bugs@dotslashplay.it ### script_version=20240822.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='botanicula' GAME_NAME='Botanicula' ARCHIVE_BASE_LINUX_0_NAME='gog_botanicula_2.0.0.2.sh' ARCHIVE_BASE_LINUX_0_MD5='7b92a379f8d2749e2f97c43ecc540c3c' ARCHIVE_BASE_LINUX_0_SIZE='760000' ARCHIVE_BASE_LINUX_0_VERSION='1.0.1-gog2.0.0.2' ARCHIVE_BASE_LINUX_0_URL='https://www.gog.com/game/botanicula' ## Support for the Windows build is provided as a fallback for Wayland users who can not start the Linux build ## cf. https://forge.dotslashplay.it/play.it/games/-/issues/372 ARCHIVE_BASE_WINDOWS_0_NAME='setup_botanicula_1.2.0_(30036).exe' ARCHIVE_BASE_WINDOWS_0_MD5='e35fc9d7577766841943eac4c0f7e84e' ARCHIVE_BASE_WINDOWS_0_TYPE='innosetup' ARCHIVE_BASE_WINDOWS_0_SIZE='856400' ARCHIVE_BASE_WINDOWS_0_VERSION='1.2.0-gog30036' ARCHIVE_BASE_WINDOWS_0_URL='https://www.gog.com/game/botanicula' # Archive content ## Linux build CONTENT_PATH_DEFAULT_LINUX='data/noarch/game' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT_LINUX}/runtimes/air/linux/Adobe AIR/Versions/1.0" CONTENT_LIBS_BIN_FILES=' libCore.so' CONTENT_LIBS0_BIN_PATH="${CONTENT_PATH_DEFAULT_LINUX}/runtimes/air/linux/Adobe AIR/Versions/1.0/Resources" CONTENT_LIBS0_BIN_FILES=' libaddkey.so libadobecertstore.so libadobecp15.so libadobecp.so libcurl.so libeggtray.so libflashplayer.so libpacparser.so libWebKit.so' CONTENT_GAME_BIN_FILES_LINUX=' bin/adl runtimes' CONTENT_GAME_DATA_FILES_LINUX=' bin/*.xml bin/*.swf bin/data' ## Windows build CONTENT_PATH_DEFAULT_WINDOWS='.' CONTENT_GAME_BIN_FILES_WINDOWS=' adobe air botanicula.exe' CONTENT_GAME_DATA_FILES_WINDOWS=' data meta-inf mimetype botaniculal.swf botaniculalaunch.swf' # Launcher ## Linux build APP_MAIN_EXE_LINUX='bin/adl' APP_MAIN_OPTIONS_LINUX='bin/BotaniculaLinux-app.xml -nodebug' APP_MAIN_ICONS_LIST_LINUX='APP_MAIN_ICON_16 APP_MAIN_ICON_32 APP_MAIN_ICON_36 APP_MAIN_ICON_48 APP_MAIN_ICON_57 APP_MAIN_ICON_72 APP_MAIN_ICON_114 APP_MAIN_ICON_128 APP_MAIN_ICON_256 APP_MAIN_ICON_512' APP_MAIN_ICON_16='bin/data/icons/b16.png' APP_MAIN_ICON_32='bin/data/icons/b32.png' APP_MAIN_ICON_36='bin/data/icons/b36.png' APP_MAIN_ICON_48='bin/data/icons/b48.png' APP_MAIN_ICON_57='bin/data/icons/b57.png' APP_MAIN_ICON_72='bin/data/icons/b72.png' APP_MAIN_ICON_114='bin/data/icons/b114.png' APP_MAIN_ICON_128='bin/data/icons/b128.png' APP_MAIN_ICON_256='bin/data/icons/b256.png' APP_MAIN_ICON_512='bin/data/icons/b512.png' ## Windows build WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/BotaniculaSaves' APP_MAIN_EXE_WINDOWS='botanicula.exe' # Packages PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ID="$GAME_ID" PKG_BIN_PROVIDES=" $PKG_BIN_ID" PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_PROVIDES=" $PKG_DATA_ID" PKG_DATA_DESCRIPTION='data' ## Linux build PKG_BIN_ID_LINUX="${PKG_BIN_ID}-linux" PKG_BIN_DEPENDENCIES_LIBRARIES_LINUX=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libglib-2.0.so.0 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgthread-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libnspr4.so libnss3.so libpango-1.0.so.0 libpangocairo-1.0.so.0 libpthread.so.0 librt.so.1 libsmime3.so libssl3.so libstdc++.so.6 libX11.so.6 libXcursor.so.1 libxml2.so.2 libXrender.so.1 libz.so.1' PKG_DATA_ID_LINUX="${PKG_DATA_ID}-linux" ## Windows build PKG_BIN_ID_WINDOWS="${PKG_BIN_ID}-windows" PKG_DATA_ID_WINDOWS="${PKG_DATA_ID}-windows" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-boxville.sh0000755000000000000000000000363014471751340014006 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Boxville # send your bug reports to bugs@dotslashplay.it ### script_version=20250406.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='boxville' GAME_NAME='Boxville' ARCHIVE_BASE_0_NAME='boxville_1_0_61161.sh' ARCHIVE_BASE_0_MD5='4ac9f6f811999e3f6a457767dc0a583c' ARCHIVE_BASE_0_SIZE='2100000' ARCHIVE_BASE_0_VERSION='1.0-gog61161' ARCHIVE_BASE_0_URL='https://www.gog.com/game/boxville' UNITY3D_NAME='Boxville' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Drop useless Unity3D plugins rm --recursive "$(unity3d_name)_Data/Plugins" ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-broken-age.sh0000755000000000000000000000411214471751340014170 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Broken Age # send your bug reports to bugs@dotslashplay.it ### script_version=20240822.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='broken-age' GAME_NAME='Broken Age' ARCHIVE_BASE_0_NAME='gog_broken_age_2.5.0.11.sh' ARCHIVE_BASE_0_MD5='c875f1e09f1d1a26e19266d7a5a6045f' ARCHIVE_BASE_0_SIZE='2240040' ARCHIVE_BASE_0_VERSION='2.4.800398-gog2.5.0.11' ARCHIVE_BASE_0_URL='https://www.gog.com/game/broken_age' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/lib" CONTENT_LIBS_BIN_FILES=' libfmodevent-4.42.16.so libfmodeventnet-4.42.16.so libfmodex-4.42.16.so' CONTENT_GAME_BIN_FILES=' BrokenAge' CONTENT_GAME_DATA_FILES=' *.pck' CONTENT_DOC_DATA_FILES=' *.txt' APP_MAIN_EXE='BrokenAge' 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=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libstdc++.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-broken-minds.sh0000755000000000000000000000500114471751340014544 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Broken Minds # send your bug reports to bugs@dotslashplay.it ### script_version=20250228.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='broken-minds' GAME_NAME='Broken Minds' ARCHIVE_BASE_0_NAME='broken-minds-win-osx-linux.zip' ARCHIVE_BASE_0_MD5='bd76cf6fded5a9712125fdcd73daac28' ARCHIVE_BASE_0_SIZE='1900000' ARCHIVE_BASE_0_VERSION='1.0-itch1' ARCHIVE_BASE_0_URL='https://lockedon.itch.io/broken-minds' CONTENT_PATH_DEFAULT='BROKEN_MINDS-1.0-market/game' CONTENT_FONTS_MAIN_RELATIVE_PATH='fonts' CONTENT_FONTS_MAIN_FILES=' ManicDepressive_new.ttf Menlo.ttc' CONTENT_GAME_MAIN_FILES=' ambi BGS cache chars CTSNES HUD map menus music SCENERIOS sfx side UI Shoko.otf script_version.txt *.png *.rpy *.rpyc' CONTENT_DOC_MAIN_PATH='BROKEN_MINDS-1.0-market' CONTENT_DOC_MAIN_FILES=' README.html' APP_MAIN_TYPE='renpy' APP_MAIN_ICON='icon.png' # Convert the shipped icon to a standard size REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} convert" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Convert the shipped icon to a standard size convert "$APP_MAIN_ICON" -resize 256 "${APP_MAIN_ICON}_resized.png" mv "${APP_MAIN_ICON}_resized.png" "$APP_MAIN_ICON" ) # Include game data content_inclusion_icons content_inclusion_default ## The game engine looks for fonts in a hardcoded path. fonts_destination="$(package_path "$(current_package)")$(path_game_data)/fonts" mkdir --parents "$fonts_destination" ln --symbolic \ "$(path_fonts_ttf)/ManicDepressive_new.ttf" \ "$(path_fonts_ttf)/Menlo.ttc" \ "$fonts_destination" # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-broken-sword-1.sh0000755000000000000000000001012114471751340014725 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Broken Sword: Shadow of the Templars: # - Broken Sword: Shadow of the Templars (original game) # - Broken Sword: Shadow of the Templars - The Director's Cut # send your bug reports to bugs@dotslashplay.it ### script_version=20250216.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID_ORIGINAL='broken-sword-1' GAME_NAME_ORIGINAL='Broken Sword: Shadow of the Templars' GAME_ID_DC='broken-sword-1-directors-cut' GAME_NAME_DC='Broken Sword: Shadow of the Templars - The Director’s Cut' ## Orignal game ARCHIVE_BASE_ORIGINAL_0_NAME='gog_broken_sword_the_shadow_of_the_templars_2.0.0.4.sh' ARCHIVE_BASE_ORIGINAL_0_MD5='d326a04e32610549960b6b0a67779c81' ARCHIVE_BASE_ORIGINAL_0_SIZE='462448' ARCHIVE_BASE_ORIGINAL_0_VERSION='1.0-gog2.0.0.4' ARCHIVE_BASE_ORIGINAL_0_URL='https://www.gog.com/game/broken_sword_directors_cut' ## The Director's cut ARCHIVE_BASE_DC_GOG_0_NAME='gog_broken_sword_director_s_cut_2.0.0.2.sh' ARCHIVE_BASE_DC_GOG_0_MD5='8f7cd1b6742946e111aa83fdfac0bcad' ARCHIVE_BASE_DC_GOG_0_SIZE='1400000' ARCHIVE_BASE_DC_GOG_0_VERSION='1.0.8-gog2.0.0.2' ARCHIVE_BASE_DC_GOG_0_URL='https://www.gog.com/game/broken_sword_directors_cut' ARCHIVE_BASE_DC_HUMBLE_0_NAME='BrokenSword1DirectorsCut_v1.0.800_Linux_1372464772.tar.gz' ARCHIVE_BASE_DC_HUMBLE_0_MD5='f4867d26cda9d8b06b617abcdd8bb1b7' ARCHIVE_BASE_DC_HUMBLE_0_SIZE='1312868' ARCHIVE_BASE_DC_HUMBLE_0_VERSION='1.0.8-humble.2013.07.01' ARCHIVE_BASE_DC_HUMBLE_0_URL='https://www.humblebundle.com/store/broken-sword-shadow-of-the-templars-the-directors-cut' CONTENT_PATH_DEFAULT_ORIGINAL='data/noarch/data' CONTENT_PATH_DEFAULT_DC_HUMBLE='bs1dc_linux_v1.0.800' CONTENT_PATH_DEFAULT_DC_GOG='data/noarch/game' CONTENT_GAME_MAIN_FILES_ORIGINAL=' clusters music speech video' CONTENT_GAME_BIN64_FILES_DC=' x86_64/bs1dc_x86_64' CONTENT_GAME_BIN32_FILES_DC=' i386/bs1dc_i386' CONTENT_GAME_DATA_FILES_DC=' font icon.bmp movies music *.dat' CONTENT_DOC_DATA_FILES_DC=' legal.txt' APP_MAIN_SCUMMID_ORIGINAL='sword1:sword1' APP_MAIN_EXE_BIN64='x86_64/bs1dc_x86_64' APP_MAIN_EXE_BIN32='i386/bs1dc_i386' APP_MAIN_ICON_ORIGINAL='../support/icon.png' APP_MAIN_ICON_DC='icon.bmp' PACKAGES_LIST_DC=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 libSDL-1.2.so.0 libstdc++.so.6' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID_DC}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data case "$(current_archive)" in ('ARCHIVE_BASE_ORIGINAL_'*) content_inclusion_icons ;; ('ARCHIVE_BASE_DC_'*) content_inclusion_icons 'PKG_DATA' ;; esac content_inclusion_default # Write launchers case "$(current_archive)" in ('ARCHIVE_BASE_ORIGINAL_'*) launchers_generation ;; ('ARCHIVE_BASE_DC_'*) launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' ;; esac # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-broken-sword-2.sh0000755000000000000000000001046314471751340014737 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2020 macaron # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Broken Sword 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20251014.2 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='broken-sword-2' GAME_NAME='Broken Sword Ⅱ: The Smoking Mirror' GAME_ID_REMASTERED="${GAME_ID}-remastered" GAME_NAME_REMASTERED="$GAME_NAME - Remastered" ARCHIVE_BASE_ORIGINAL_0_NAME='gog_broken_sword_2_the_smoking_mirror_1.0.0.2.tar.gz' ARCHIVE_BASE_ORIGINAL_0_MD5='003e43babbdb7abc04c64f7482b27329' ARCHIVE_BASE_ORIGINAL_0_SIZE='1200000' ARCHIVE_BASE_ORIGINAL_0_VERSION='1.0-gog1.0.0.2' ARCHIVE_BASE_ORIGINAL_0_URL='https://www.gog.com/game/broken_sword_2__the_smoking_mirror' ARCHIVE_BASE_REMASTERED_1_NAME='broken_sword_2_remastered_3_3_0_59987.sh' ARCHIVE_BASE_REMASTERED_1_MD5='7e9b9959778dfcf4b2e346dbe6657c3f' ARCHIVE_BASE_REMASTERED_1_SIZE='810000' ARCHIVE_BASE_REMASTERED_1_VERSION='3.3.0-gog59987' ARCHIVE_BASE_REMASTERED_1_URL='https://www.gog.com/game/broken_sword_2__the_smoking_mirror' ARCHIVE_BASE_REMASTERED_0_NAME='gog_broken_sword_2_remastered_2.0.0.3.sh' ARCHIVE_BASE_REMASTERED_0_MD5='a67ce1d6a47b74281b6f230365fb296a' ARCHIVE_BASE_REMASTERED_0_SIZE='1400000' ARCHIVE_BASE_REMASTERED_0_VERSION='1.0.800-gog.2.0.0.3' CONTENT_PATH_DEFAULT_ORIGINAL='Broken Sword 2 - The Smoking Mirror/data' CONTENT_GAME_MAIN_FILES_ORIGINAL=' *.clu *.inf *.tab *.bmp' CONTENT_GAME0_MAIN_RELATIVE_PATH_ORIGINAL='Extras' CONTENT_GAME0_MAIN_FILES_ORIGINAL=' *.dxa *.fla' CONTENT_DOC_MAIN_FILES_ORIGINAL=' *.txt' CONTENT_PATH_DEFAULT_REMASTERED='data/noarch/game' CONTENT_GAME_BIN64_FILES_REMASTERED=' BrokenSword2_x86_64' CONTENT_GAME_BIN32_FILES_REMASTERED=' BrokenSword2_i386' CONTENT_GAME_BIN32_FILES_REMASTERED_0=' BS2Remastered_i386' CONTENT_GAME_DATA_FILES_REMASTERED=' Audio Comic Game Movies Text Data.dat Legal.txt' CONTENT_GAME_DATA_FILES_0_REMASTERED=' Fonts PC Text icon.bmp bs2.ico *.BUK *.clu *.dat *.DAT *.DIC' APP_MAIN_SCUMMID_ORIGINAL='sword2' APP_MAIN_ICON_ORIGINAL='../support/gog-broken-sword-2-the-smoking-mirror.png' APP_MAIN_EXE_BIN32_REMASTERED='BrokenSword2_i386' APP_MAIN_EXE_BIN32_REMASTERED_0='BS2Remastered_i386' APP_MAIN_EXE_BIN64_REMASTERED='BrokenSword2_x86_64' APP_MAIN_ICON_REMASTERED='../support/icon.png' APP_MAIN_ICON_REMASTERED_0='icon.bmp' PACKAGES_LIST_REMASTERED=' PKG_BIN64 PKG_BIN32 PKG_DATA' PACKAGES_LIST_REMASTERED_0=' PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libstdc++.so.6' PKG_BIN_DEPENDENCIES_LIBRARIES_REMASTERED_0=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libSDL-1.2.so.0 libstdc++.so.6' PKG_DATA_ID="${GAME_ID_REMASTERED}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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. case "$(current_archive)" in ('ARCHIVE_BASE_REMASTERED_'*) content_inclusion_icons 'PKG_DATA' ;; (*) content_inclusion_icons ;; esac content_inclusion_default # Write launchers. APP_MAIN_EXE_BIN64=$(context_value 'APP_MAIN_EXE_BIN64') APP_MAIN_EXE_BIN32=$(context_value 'APP_MAIN_EXE_BIN32') case "$(current_archive)" in ('ARCHIVE_BASE_REMASTERED_0') launchers_generation 'PKG_BIN32' ;; ('ARCHIVE_BASE_REMASTERED_'*) launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' ;; (*) launchers_generation ;; esac # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-broken-sword-3.sh0000755000000000000000000000407314471751340014740 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Broken Sword 3 # send your bug reports to bugs@dotslashplay.it ### script_version=20240822.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='broken-sword-3' GAME_NAME='Broken Sword 3: The Sleeping Dragon' ARCHIVE_BASE_0_NAME='setup_broken_sword_3_-_the_sleeping_dragon_1.0_(19115).exe' ARCHIVE_BASE_0_MD5='e53f974fa1042cb65a8f5fd9d2ee3b58' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_broken_sword_3_-_the_sleeping_dragon_1.0_(19115)-1.bin' ARCHIVE_BASE_0_PART1_MD5='3901d740c9071b43eae5b5e3566ef4c6' ARCHIVE_BASE_0_SIZE='1900000' ARCHIVE_BASE_0_VERSION='1.0-gog19115' ARCHIVE_BASE_0_URL='https://www.gog.com/game/broken_sword_3__the_sleeping_dragon' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' binkw32.dll bstsd.exe' CONTENT_GAME_DATA_FILES=' data data.pak' CONTENT_DOC_DATA_FILES=' manual.pdf readme.txt' USER_PERSISTENT_DIRECTORIES=' saves' APP_MAIN_EXE='bstsd.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-broken-sword-4.sh0000755000000000000000000000736214471751340014745 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Broken Sword 4 # send your bug reports to bugs@dotslashplay.it ### script_version=20240822.2 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='broken-sword-4' GAME_NAME='Broken Sword Ⅳ: The Angel of Death' ARCHIVE_BASE_FR_1_NAME='setup_broken_sword_4_the_angel_of_death_1.1a_(french)_(24519).exe' ARCHIVE_BASE_FR_1_MD5='75736ac9d99d3a9c8fcc509bf425eaa3' ARCHIVE_BASE_FR_1_TYPE='innosetup' ARCHIVE_BASE_FR_1_PART1_NAME='setup_broken_sword_4_the_angel_of_death_1.1a_(french)_(24519)-1.bin' ARCHIVE_BASE_FR_1_PART1_MD5='3600609e744183605ca94f5ab5e36325' ARCHIVE_BASE_FR_1_SIZE='2800000' ARCHIVE_BASE_FR_1_VERSION='1.1a-gog24519' ARCHIVE_BASE_FR_1_URL='https://www.gog.com/game/broken_sword_4' ARCHIVE_BASE_EN_1_NAME='setup_broken_sword_4_the_angel_of_death_1.1a_(24519).exe' ARCHIVE_BASE_EN_1_MD5='25ed1fcd2a322bc6f722b84e899cdeb0' ARCHIVE_BASE_EN_1_TYPE='innosetup' ARCHIVE_BASE_EN_1_PART1_NAME='setup_broken_sword_4_the_angel_of_death_1.1a_(24519)-1.bin' ARCHIVE_BASE_EN_1_PART1_MD5='75e4b7cc0c7d96f56c070a71442c49c0' ARCHIVE_BASE_EN_1_SIZE='2800000' ARCHIVE_BASE_EN_1_VERSION='1.1a-gog24519' ARCHIVE_BASE_EN_1_URL='https://www.gog.com/game/broken_sword_4' ARCHIVE_BASE_EN_0_NAME='setup_broken_sword_4_1.1_(15751).exe' ARCHIVE_BASE_EN_0_MD5='b53297cce551b12e8bef23dade1eda68' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_PART1_NAME='setup_broken_sword_4_1.1_(15751)-1.bin' ARCHIVE_BASE_EN_0_PART1_MD5='4518a353cc41a95745095ddfb220c750' ARCHIVE_BASE_EN_0_SIZE='2900000' ARCHIVE_BASE_EN_0_VERSION='1.1-gog15751' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_EN_0='app' CONTENT_GAME_BIN_FILES=' system bs4pc.exe *.dll' CONTENT_GAME_L10N_FILES=' english.pak french.pak' CONTENT_GAME_DATA_FILES=' data audio.pak bs4.pak' CONTENT_GAME0_DATA_PATH="${CONTENT_PATH_DEFAULT}/app" CONTENT_GAME0_DATA_FILES=' data' CONTENT_DOC_DATA_FILES=' manual.pdf' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/Broken Sword - The Angel of Death' ## TODO: Check if the virtual desktop is still required with current WINE builds WINE_VIRTUAL_DESKTOP='auto' ## Using the built-in Direct3D shaders compiler, the game is not displayed correctly ## Multiple errors related to shader compilation are spammed in WINE debug output ## TODO: Check if it is still a problem with current WINE builds WINE_WINETRICKS_VERBS='d3dcompiler_47' APP_MAIN_EXE='bs4pc.exe' PACKAGES_LIST=' PKG_BIN PKG_L10N PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N_BASE PKG_DATA' PKG_L10N_BASE_ID="${GAME_ID}-l10n" PKG_L10N_ID_EN="${PKG_L10N_BASE_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_BASE_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_BASE_ID" PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-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-calico.sh0000755000000000000000000000410214471751340013407 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Calico # send your bug reports to bugs@dotslashplay.it ### script_version=20250406.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' ## The command `calico` is already provided by an IRC bouncer: ## https://git.causal.agency/pounce/about/calico.1 GAME_ID='calico-game' GAME_NAME='Calico' ARCHIVE_BASE_0_NAME='setup_calico_1.0.5_(45142).exe' ARCHIVE_BASE_0_MD5='f2b7aa8e3944f26a02d1ea19afa8e4f0' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='930000' ARCHIVE_BASE_0_VERSION='1.0.5-gog45142' ARCHIVE_BASE_0_URL='https://www.gog.com/game/calico' UNITY3D_NAME='calico' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Peachy Keen Games/Calico' ## The wined3d renderer fails to apply some transformation operations, ## that are used to customize the player character appearance. WINE_DIRECT3D_RENDERER='dxvk' 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-call-of-cthulhu-prisoner-of-ice.sh0000755000000000000000000000526214471751340020153 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 macaron # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Call of Cthulhu: Prisoner of Ice # send your bug reports to bugs@dotslashplay.it ### script_version=20240505.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='call-of-cthulhu-prisoner-of-ice' GAME_NAME='Call of Cthulhu: Prisoner of Ice' ARCHIVE_BASE_EN_0_NAME='call_of_cthulhu_prisoner_of_ice_en_gog_5_17654.sh' ARCHIVE_BASE_EN_0_MD5='c3f64c02981cfacefd3b3f8d0d504ac3' ARCHIVE_BASE_EN_0_SIZE='310000' ARCHIVE_BASE_EN_0_VERSION='1.0-gog17654' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/call_of_cthulhu_prisoner_of_ice' ARCHIVE_BASE_FR_0_NAME='call_of_cthulhu_prisoner_of_ice_fr_gog_5_17654.sh' ARCHIVE_BASE_FR_0_MD5='da1f4dad3ee3817a026390fa28320284' ARCHIVE_BASE_FR_0_SIZE='350000' ARCHIVE_BASE_FR_0_VERSION='1.0-gog17654' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/call_of_cthulhu_prisoner_of_ice' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' ice cd' CONTENT_DOC_MAIN_FILES=' *.txt' CONTENT_DOC0_MAIN_PATH='data/noarch/docs' CONTENT_DOC0_MAIN_FILES=' *.pdf *.txt' CONTENT_DOC1_MAIN_PATH_EN='data/noarch/docs/english' CONTENT_DOC1_MAIN_PATH_FR='data/noarch/docs/french' CONTENT_DOC1_MAIN_FILES=' *.pdf *.txt' GAME_IMAGE='cd' GAME_IMAGE_TYPE='cdrom' APP_MAIN_EXE='ice640.exe' APP_MAIN_DOSBOX_PRERUN='d:' APP_MAIN_ICON='../support/icon.png' ## The type can not be omitted, because the binary is actually on the CD-ROM image. APP_MAIN_TYPE='dosbox' USER_PERSISTENT_FILES=' ice/*.cfg ice/*.ice ice/*.pck' PKG_MAIN_ID="$GAME_ID" PKG_MAIN_ID_EN="${PKG_MAIN_ID}-en" PKG_MAIN_ID_FR="${PKG_MAIN_ID}-fr" PKG_MAIN_PROVIDES=" $PKG_MAIN_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers ## Work around the binary presence check, ## it is actually included in the CD-ROM image. launcher_target_presence_check() { return 0; } launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-call-of-cthulhu-shadow-of-the-comet.sh0000755000000000000000000000544014471751340020722 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 macaron # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Call of Cthulhu: Shadow of the Comet # send your bug reports to bugs@dotslashplay.it ### script_version=20240505.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='call-of-cthulhu-shadow-of-the-comet' GAME_NAME='Call of Cthulhu: Shadow of the Comet' ARCHIVE_BASE_0_NAME='gog_call_of_cthulhu_shadow_of_the_comet_2.0.0.4.sh' ARCHIVE_BASE_0_MD5='18c4f78b766e8e1d638e4ac32df0be60' ARCHIVE_BASE_0_SIZE='150000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.4' ARCHIVE_BASE_0_URL='https://www.gog.com/game/call_of_cthulhu_shadow_of_the_comet' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' infogram cd' CONTENT_DOC_MAIN_PATH='data/noarch/docs' CONTENT_DOC_MAIN_FILES=' *.pdf *.txt' GAME_IMAGE='cd' GAME_IMAGE_TYPE='cdrom' APP_MAIN_EXE='shadow.exe' APP_MAIN_DOSBOX_PRERUN='d: config -set cpu cycles=fixed 13000' APP_MAIN_ICON='../support/icon.png' ## The type can not be omitted, because the binary is actually on the CD-ROM image. APP_MAIN_TYPE='dosbox' APP_MUSEUM_ID="${GAME_ID}-museum" APP_MUSEUM_NAME="$GAME_NAME - Lovecraft Museum" APP_MUSEUM_EXE='museum.exe' APP_MUSEUM_DOSBOX_PRERUN='d: config -set cpu cycles=fixed 13000' APP_MUSEUM_ICON='../support/icon.png' ## The type can not be omitted, because the binary is actually on the CD-ROM image. APP_MUSEUM_TYPE='dosbox' APP_SETUP_ID="${GAME_ID}-setup" APP_SETUP_NAME="$GAME_NAME - Setup" APP_SETUP_CAT='Settings' APP_SETUP_EXE='install.exe' APP_SETUP_DOSBOX_PRERUN='d:' APP_SETUP_ICON="$APP_MAIN_ICON" ## The type can not be omitted, because the binary is actually on the CD-ROM image. APP_SETUP_TYPE='dosbox' USER_PERSISTENT_FILES=' infogram/shadow.cd/*.cfg infogram/shadow.cd/*.opt infogram/shadow.cd/*.sav' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers ## Work around the binary presence check, ## it is actually included in the CD-ROM image. launcher_target_presence_check() { return 0; } launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-call-of-the-sea.sh0000755000000000000000000000475114471751340015030 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Call of the Sea # send your bug reports to bugs@dotslashplay.it ### script_version=20241105.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='call-of-the-sea' GAME_NAME='Call of the Sea' ARCHIVE_BASE_0_NAME='setup_call_of_the_sea_1.5.15.0_(64bit)_(48714).exe' ARCHIVE_BASE_0_MD5='130e503109c0da8323eabbf07f939b40' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_call_of_the_sea_1.5.15.0_(64bit)_(48714)-1.bin' ARCHIVE_BASE_0_PART1_MD5='eefc9fe7a9e45a0b9f84cc9f9f9ea1ab' ARCHIVE_BASE_0_PART2_NAME='setup_call_of_the_sea_1.5.15.0_(64bit)_(48714)-2.bin' ARCHIVE_BASE_0_PART2_MD5='c2d114836a23671a0483ad1ad97c2912' ARCHIVE_BASE_0_PART3_NAME='setup_call_of_the_sea_1.5.15.0_(64bit)_(48714)-3.bin' ARCHIVE_BASE_0_PART3_MD5='1b4c240b663134295b223c8c62d3cbf0' ARCHIVE_BASE_0_SIZE='40000000' ARCHIVE_BASE_0_VERSION='1.5.15.0-gog48714' ARCHIVE_BASE_0_URL='https://www.gog.com/en/game/call_of_the_sea' UNREALENGINE4_NAME='cots' CONTENT_PATH_DEFAULT='.' HUGE_FILES_DATA=" ${UNREALENGINE4_NAME}/content/paks/${UNREALENGINE4_NAME}-windowsnoeditor.pak" APP_MAIN_EXE="${UNREALENGINE4_NAME}/binaries/win64/bluecode-win64-shipping.exe" ## The --name=101 wrestool option, default for UE4 games, should not be used here APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-carto.sh0000755000000000000000000000431514471751340013273 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Carto # send your bug reports to bugs@dotslashplay.it ### script_version=20250406.2 GAME_ID='carto' GAME_NAME='Carto' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" ARCHIVE_BASE_0_NAME='setup_carto_1.0.7.6_(64bit)_(51528).exe' ARCHIVE_BASE_0_MD5='0c8dbc7a106673b8a8825c4f2e3ee6df' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2100000' ARCHIVE_BASE_0_VERSION='1.0.7.6-gog51528' ARCHIVE_BASE_0_URL='https://www.gog.com/game/carto' ARCHIVE_BASE_DEMO_0_NAME='setup_carto_demo_1.0.7_(64bit)_(45496).exe' ARCHIVE_BASE_DEMO_0_MD5='b86ddbfde260933365c595f750cdc45b' ARCHIVE_BASE_DEMO_0_TYPE='innosetup' ARCHIVE_BASE_DEMO_0_SIZE='1300000' ARCHIVE_BASE_DEMO_0_VERSION='1.0.7-gog45496' ARCHIVE_BASE_DEMO_0_URL='https://www.gog.com/game/carto_demo' UNITY3D_NAME='carto' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/SunheadGames/Carto' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # 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-catie-in-meowmeowland.sh0000755000000000000000000000400514471751340016344 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Catie in MeowmeowLand # send your bug reports to bugs@dotslashplay.it ### script_version=20240822.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='catie-in-meowmeowland' GAME_NAME='Catie in MeowMeowLand' ARCHIVE_BASE_0_NAME='catie_in_meowmeowland_0_1_0_3_1e54c009_55446.sh' ARCHIVE_BASE_0_MD5='d897acf6e88697b317c561c41582f41d' ARCHIVE_BASE_0_SIZE='1800000' ARCHIVE_BASE_0_VERSION='0.1.0.3-gog55446' ARCHIVE_BASE_0_URL='https://www.gog.com/game/catie_in_meowmeowland' UNITY3D_NAME='CatieinMeowmeowLand' CONTENT_PATH_DEFAULT='data/noarch/game/CatieinMeowmeowLand_v0.1.0.3_1e54c009' ## TODO: The plugins to include should be listed using UNITY3D_PLUGINS CONTENT_GAME0_BIN_FILES=" ${UNITY3D_NAME}_Data/Plugins" CONTENT_GAME0_DATA_FILES=" CatieinMeowmeowLand/bfsBuildData.json" 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" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-cayne.sh0000755000000000000000000000417214471751340013263 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Erwann Duclos # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Cayne # send your bug reports to bugs@dotslashplay.it ### script_version=20240603.2 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='cayne' GAME_NAME='Cayne' ARCHIVE_BASE_0_NAME='gog_cayne_2.0.0.1.sh' ARCHIVE_BASE_0_MD5='e1f78fd010c6185b828378aa7af3d7a8' ARCHIVE_BASE_0_SIZE='4063719' ARCHIVE_BASE_0_VERSION='1.26-gog2.0.0.1' ARCHIVE_BASE_0_URL='https://www.gog.com/game/cayne' UNITY3D_NAME='cayne' UNITY3D_PLUGINS=' libMouseLib64.so libMouseLib.so ScreenSelector.so' ## TODO: Check if the Steam libraries are required. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='data/noarch/game' FAKE_HOME_PERSISTENT_DIRECTORIES=' Library/Application Support/The Brotherhood' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-chicken-police.sh0000755000000000000000000000376314471751340015046 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Chicken Police # send your bug reports to bugs@dotslashplay.it ### script_version=20241119.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='chicken-police' GAME_NAME='Chicken Police' ARCHIVE_BASE_0_NAME='setup_chicken_police_438_(49498).exe' ARCHIVE_BASE_0_MD5='c3597f50f5bc326a5cdb89d722e8ba71' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_chicken_police_438_(49498)-1.bin' ARCHIVE_BASE_0_PART1_MD5='c3ccbf9fe142d7353cdb782d0a328ed7' ARCHIVE_BASE_0_SIZE='4863640' ARCHIVE_BASE_0_VERSION='438-gog49498' ARCHIVE_BASE_0_URL='https://www.gog.com/game/chicken_police' UNITY3D_NAME='chicken_police' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/My Games/Chicken Police' 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-chook-and-sosig-walk-the-plank.sh0000755000000000000000000000674014471751340017771 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Chook & Sosig: Walk the Plank # send your bug reports to bugs@dotslashplay.it ### script_version=20250826.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='chook-and-sosig-walk-the-plank' GAME_NAME='Chook & Sosig: Walk the Plank' ARCHIVE_BASE_ITCH_0_NAME='Windows.zip' ARCHIVE_BASE_ITCH_0_MD5='176ccce8f5af056a8247f0cfef1f2d1e' ARCHIVE_BASE_ITCH_0_SIZE='5154279' ARCHIVE_BASE_ITCH_0_VERSION='2.03b-itch1' ARCHIVE_BASE_ITCH_0_URL='https://tookipalooki.itch.io/chook-sosig-walk-the-plank' ARCHIVE_BASE_GOG_0_NAME='setup_chook__sosig_walk_the_plank_v2.03b_(30724).exe' ARCHIVE_BASE_GOG_0_MD5='e66cdecc51060a98325297d7f9039307' ARCHIVE_BASE_GOG_0_TYPE='innosetup' ARCHIVE_BASE_GOG_0_SIZE='5200000' ARCHIVE_BASE_GOG_0_VERSION='2.03b-gog30724' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/chook_sosig_walk_the_plank' UNITY3D_NAME='walktheplank' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/TookiPalooki/WalkthePlank' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' ## Easier upgrades from pre-20241211.1 packages PKG_BIN_PROVIDES="${PKG_BIN_PROVIDES:-} chook-and-sosig" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' ## Easier upgrades from pre-20241211.1 packages PKG_DATA_PROVIDES="${PKG_DATA_PROVIDES:-} chook-and-sosig-data" ## 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. ## itch.io build - Ignore some errors during extraction from the archive ## warning: stripped absolute path spec from / ## mapname: conversion of failed case "$(current_archive)" in ('ARCHIVE_BASE_ITCH_'*) archive_extraction_default 2>/dev/null || true ;; (*) archive_extraction_default ;; esac ## itch.io build - Convert all file paths to lower case. case "$(current_archive)" in ('ARCHIVE_BASE_ITCH_'*) rmdir \ "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/Mono/etc" \ "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/Mono/EmbedRuntime" \ "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/Mono" cp --link --recursive \ "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/WalkthePlank_Data"/* \ "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/walktheplank_data" rm --recursive \ "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/WalkthePlank_Data" 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-chuchel.sh0000755000000000000000000000367014471751340013601 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Chuchel # send your bug reports to bugs@dotslashplay.it ### script_version=20250408.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='chuchel' GAME_NAME='Chuchel' ARCHIVE_BASE_0_NAME='setup_chuchel_2.0.0_(26120).exe' ARCHIVE_BASE_0_MD5='d9af6a71485c90b8907bc2326e4b704a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='750000' ARCHIVE_BASE_0_VERSION='2.0.0-gog26120' ARCHIVE_BASE_0_URL='https://www.gog.com/game/chuchel' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' adobe air chuchel.exe' CONTENT_GAME_DATA_FILES=' chuchel_graphics_o chuchel_sound_data ico meta-inf chuchel.swf' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/Amanita-Design.CHUCHEL' APP_MAIN_EXE='chuchel.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-cinders.sh0000755000000000000000000000525614471751340013617 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Cinders # send your bug reports to bugs@dotslashplay.it ### script_version=20241106.3 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='cinders' GAME_NAME='Cinders' ARCHIVE_BASE_HUMBLE_0_NAME='Cinders_windows_1403727643.exe' ARCHIVE_BASE_HUMBLE_0_MD5='4014b54d5db0e2622b2eccc55abb829d' ARCHIVE_BASE_HUMBLE_0_TYPE='innosetup' ARCHIVE_BASE_HUMBLE_0_SIZE='105905' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0-humble.1403727643' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/cinders' ARCHIVE_BASE_GOG_0_NAME='setup_cinders_1.2.7_(27636).exe' ARCHIVE_BASE_GOG_0_MD5='511b82f5b2b9ca06636fe424980ff1bf' ARCHIVE_BASE_GOG_0_TYPE='innosetup' ARCHIVE_BASE_GOG_0_SIZE='280000' ARCHIVE_BASE_GOG_0_VERSION='1.2.7-gog27636' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/cinders' CONTENT_PATH_DEFAULT_HUMBLE='app' CONTENT_PATH_DEFAULT_GOG='.' CONTENT_GAME_BIN_FILES=' cinders.exe' ## TODO: Check if the Steam libraries are required CONTENT_GAME0_BIN_FILES_HUMBLE=' msvcr100.dll msvcr120.dll ogg.dll openal32.dll steam_api.dll steamcaster.dll vorbis.dll vorbisfile.dll wrap_oal.dll' CONTENT_GAME_DATA_FILES_HUMBLE=' images music sound' CONTENT_GAME_DATA_FILES_GOG=' data.win *.ogg' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/Cinders' ## TODO: Check if it is required with current WINE WINE_VIRTUAL_DESKTOP='auto' ## Work around audio issues ## TODO: Check if it is required with current WINE WINE_WINETRICKS_VERBS='dsound' APP_MAIN_EXE='cinders.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-cineris-somnia.sh0000755000000000000000000000356214471751340015106 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Cineris Somnia # send your bug reports to bugs@dotslashplay.it ### script_version=20240705.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='cineris-somnia' GAME_NAME='Cineris Somnia' ## This game installer is no longer available from playism.com, ## as they closed their store down in favour of Steam. ARCHIVE_BASE_0_NAME='CINERIS_SOMNIA_PLAYISM_20181109.zip' ARCHIVE_BASE_0_MD5='c25ea529ffb12b0e055d05117c5bc24d' ARCHIVE_BASE_0_SIZE='3200000' ARCHIVE_BASE_0_VERSION='1.01-playism20181109' UNITY3D_NAME='Cineris Somnia' CONTENT_PATH_DEFAULT='20181109_101' CONTENT_DOC_DATA_FILES=' *.txt' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Nayuta Studio/Cineris Somnia' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-citizen-sleeper.sh0000755000000000000000000000426514471751340015271 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Citizen Sleeper # send your bug reports to bugs@dotslashplay.it ### script_version=20240720.2 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='citizen-sleeper' GAME_NAME='Citizen Sleeper' ARCHIVE_BASE_2_NAME='setup_citizen_sleeper_1.4.9_(75233).exe' ARCHIVE_BASE_2_MD5='87a23767b623863d85a640892bff03f7' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_SIZE='1202756' ARCHIVE_BASE_2_VERSION='1.4.9-gog75233' ARCHIVE_BASE_2_URL='https://www.gog.com/game/citizen_sleeper' ARCHIVE_BASE_1_NAME='setup_citizen_sleeper_1.4.6_(69854).exe' ARCHIVE_BASE_1_MD5='ac9b59f393ca34a89a42ba510bbba4ab' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='1170957' ARCHIVE_BASE_1_VERSION='1.4.6-gog69854' ARCHIVE_BASE_0_NAME='setup_citizen_sleeper_1.3.9_(65533).exe' ARCHIVE_BASE_0_MD5='50b240a6cd4fb79096d6d5252daac6b7' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='973177' ARCHIVE_BASE_0_VERSION='1.3.9-gog65533' UNITY3D_NAME='citizen sleeper' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Jump Over the Age/Citizen Sleeper' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-cleo-a-pirates-tale.sh0000755000000000000000000000342214471751340015711 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Cleo - A Pirate's Tale # send your bug reports to bugs@dotslashplay.it ### script_version=20240705.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='cleo-a-pirates-tale' GAME_NAME='Cleo - A Pirate’s Tale' ARCHIVE_BASE_0_NAME='setup_cleo_-_a_pirates_tale_1.1.5_(52212).exe' ARCHIVE_BASE_0_MD5='3b5dea47b0517c5801275eac47d71b01' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1800000' ARCHIVE_BASE_0_VERSION='1.1.5-gog52212' ARCHIVE_BASE_0_URL='https://www.gog.com/game/cleo_a_pirates_tale' UNITY3D_NAME='cleoapiratestale' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Christoph Schultz/CleoAPiratesTale' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-coffee-talk.sh0000755000000000000000000000603614471751340014345 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Coffee Talk # send your bug reports to bugs@dotslashplay.it ### script_version=20240228.2 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='coffee-talk' GAME_NAME='Coffee Talk' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" # Archives ## Full game ARCHIVE_BASE_2_NAME='setup_coffee_talk_1.48_(56192).exe' ARCHIVE_BASE_2_MD5='480480ca243cb1371aa8160ae04f035d' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_SIZE='774504' ARCHIVE_BASE_2_VERSION='1.48-gog56192' ARCHIVE_BASE_2_URL='https://www.gog.com/game/coffee_talk' ARCHIVE_BASE_1_NAME='setup_coffee_talk_1.45_(48679).exe' ARCHIVE_BASE_1_MD5='d10f2ec8ced1716f90dbc4d940cf232f' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='780000' ARCHIVE_BASE_1_VERSION='1.45-gog48679' ARCHIVE_BASE_0_NAME='setup_coffee_talk_1.0.39_(41435).exe' ARCHIVE_BASE_0_MD5='fd9a907261fce1069e1ffc37938e42d5' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='910000' ARCHIVE_BASE_0_VERSION='1.0.39-gog41435' ## Demo ARCHIVE_BASE_DEMO_1_NAME='setup_coffee_talk_demo_1.0.40_(46157).exe' ARCHIVE_BASE_DEMO_1_MD5='c7d07aa9a162e1ad8d6cf527e8193bbe' ARCHIVE_BASE_DEMO_1_TYPE='innosetup' ARCHIVE_BASE_DEMO_1_SIZE='820000' ARCHIVE_BASE_DEMO_1_VERSION='1.0.40-gog46157' ARCHIVE_BASE_DEMO_1_URL='https://www.gog.com/game/coffee_talk_demo' ARCHIVE_BASE_DEMO_0_NAME='setup_coffee_talk_demo_0.92.59_(32093).exe' ARCHIVE_BASE_DEMO_0_MD5='107cb1767fb8033ad06b5baaeb54e159' ARCHIVE_BASE_DEMO_0_TYPE='innosetup' ARCHIVE_BASE_DEMO_0_SIZE='650000' ARCHIVE_BASE_DEMO_0_VERSION='0.92.59-gog32093' UNITY3D_NAME='coffeetalk' CONTENT_PATH_DEFAULT='.' CONTENT_GAME0_DATA_FILES=' cticon.png' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Toge Productions/CoffeeTalk' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ID="$GAME_ID" PKG_BIN_ID_DEMO="$GAME_ID_DEMO" PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-contract-demon.sh0000755000000000000000000000437714471751340015110 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Contract Demon # send your bug reports to bugs@dotslashplay.it ### script_version=20241216.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='contract-demon' GAME_NAME='Contract Demon' ARCHIVE_BASE_2_NAME='contractdemon-2.2.7-pc.zip' ARCHIVE_BASE_2_MD5='14639ade236d9b8661c7491aa8947e44' ARCHIVE_BASE_2_SIZE='154330' ARCHIVE_BASE_2_VERSION='2.2.7-itch.2024.02.27' ARCHIVE_BASE_2_URL='https://nomnomnami.itch.io/contract-demon' ARCHIVE_BASE_1_NAME='contractdemon-1.8.0-pc.zip' ARCHIVE_BASE_1_MD5='269db9bdbf6f40c7362814de7c8f46da' ARCHIVE_BASE_1_SIZE='200000' ARCHIVE_BASE_1_VERSION='1.8.0-itch.2021.05.08' ARCHIVE_BASE_0_NAME='contractdemon-1.7.1-pc.zip' ARCHIVE_BASE_0_MD5='81de84b69550eae7ae13e019a4aec3bf' ARCHIVE_BASE_0_SIZE='150000' ARCHIVE_BASE_0_VERSION='1.7.1-itch' CONTENT_PATH_DEFAULT='contractdemon-2.2.7-pc/game' CONTENT_PATH_DEFAULT_1='contractdemon-1.8.0-pc/game' CONTENT_PATH_DEFAULT_0='contractdemon-1.7.1-pc/game' CONTENT_GAME_MAIN_FILES=' cache tl archive.rpa script_version.txt' APP_MAIN_TYPE='renpy' APP_MAIN_ICON='../contractdemon.exe' ## Ensure easy upgrades from packages generated with pre-20240428.1 game scripts. PKG_MAIN_PROVIDES="${PKG_MAIN_PROVIDES:-} contract-demon-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-creaks.sh0000755000000000000000000000346714471751340013442 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Creaks # send your bug reports to bugs@dotslashplay.it ### script_version=20240820.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='creaks' GAME_NAME='Creaks' ARCHIVE_BASE_0_NAME='setup_creaks_1.0.9_(46052).exe' ARCHIVE_BASE_0_MD5='53c45d5337970ae4f3cd33ac846a4b34' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_creaks_1.0.9_(46052)-1.bin' ARCHIVE_BASE_0_PART1_MD5='a6dd1d513945b49753918f7031936a1d' ARCHIVE_BASE_0_SIZE='4300000' ARCHIVE_BASE_0_VERSION='1.0.9-gog46052' ARCHIVE_BASE_0_URL='https://www.gog.com/game/creaks' UNITY3D_NAME='creaks' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Amanita Design/Creaks' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-creepy-tale-series.sh0000755000000000000000000000615514471751340015671 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Creepy Tale series: # - Creepy Tale # - Creepy Tale 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20250407.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID_EPISODE1='creepy-tale-1' GAME_NAME_EPISODE1='Creepy Tale' GAME_ID_EPISODE2='creepy-tale-2' GAME_NAME_EPISODE2='Creepy Tale 2' ARCHIVE_BASE_EPISODE1_0_NAME='creepy_tale_english_1_0_2c_42446.sh' ARCHIVE_BASE_EPISODE1_0_MD5='727b15afedd0ef2e58565b40419e76de' ARCHIVE_BASE_EPISODE1_0_SIZE='180064' ARCHIVE_BASE_EPISODE1_0_VERSION='1.0.2c-gog42446' ARCHIVE_BASE_EPISODE1_0_URL='https://www.gog.com/game/creepy_tale' ARCHIVE_BASE_EPISODE2_0_NAME='creepy_tale_2_1_0_0a_53727.sh' ARCHIVE_BASE_EPISODE2_0_MD5='e2626eaebe690d4b8cbf7506ff78fff9' ARCHIVE_BASE_EPISODE2_0_SIZE='560000' ARCHIVE_BASE_EPISODE2_0_VERSION='2.1.0.0a-gog53727' ARCHIVE_BASE_EPISODE2_0_URL='https://www.gog.com/game/creepy_tale_2' UNITY3D_NAME_EPISODE1='creepy_tale' UNITY3D_NAME_EPISODE2='CreepyTale2' ## TODO: Check if the Steam library is required. UNITY3D_PLUGINS_EPISODE1=' libsteam_api.so' UNITY3D_PLUGINS_EPISODE2=' libfmodstudio.so libresonanceaudio.so' ## TODO: Check if the Steam library is required. UNITY3D_PLUGINS_EPISODE2="$UNITY3D_PLUGINS_EPISODE2 libsteam_api.so" CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES_EPISODE1=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' PKG_BIN_DEPENDENCIES_LIBRARIES_EPISODE2=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' ## Ensure easy upgrade from packages generated with pre-20230414.1 game scripts. PKG_BIN_PROVIDES_EPISODE1="${PKG_BIN_PROVIDES_EPISODE1:-} creepy-tale" PKG_DATA_ID_EPISODE1="${GAME_ID_EPISODE1}-data" PKG_DATA_ID_EPISODE2="${GAME_ID_EPISODE2}-data" PKG_DATA_DESCRIPTION='data' ## Ensure easy upgrade from packages generated with pre-20230414.1 game scripts. PKG_DATA_PROVIDES_EPISODE1="${PKG_DATA_PROVIDES_EPISODE1:-} creepy-tale-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 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-criminal-expert.sh0000755000000000000000000000430014471751340015260 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Criminal Expert # send your bug reports to bugs@dotslashplay.it ### script_version=20241105.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='criminal-expert' GAME_NAME='Criminal Expert' ARCHIVE_BASE_0_NAME='setup_criminal_expert_1.4_(61646).exe' ARCHIVE_BASE_0_MD5='b5b13afbd5abeedb00720d641fc0ea06' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_criminal_expert_1.4_(61646)-1.bin' ARCHIVE_BASE_0_PART1_MD5='008e6369c386939f499565c0c3e8a40c' ARCHIVE_BASE_0_PART2_NAME='setup_criminal_expert_1.4_(61646)-2.bin' ARCHIVE_BASE_0_PART2_MD5='2e340cb1cf05726420b686561d4a305f' ARCHIVE_BASE_0_SIZE='5400000' ARCHIVE_BASE_0_VERSION='1.4-gog61646' ARCHIVE_BASE_0_URL='https://www.gog.com/en/game/criminal_expert' UNITY3D_NAME='criminalexpert' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Forever Entertainment S_ A_/CriminalExpert' ## TODO: Check if all these fonts are required WINE_WINETRICKS_VERBS='corefonts' 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-d-the-game.sh0000755000000000000000000000322114471751340014066 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # D: The Game # send your bug reports to bugs@dotslashplay.it ### script_version=20240621.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='d-the-game' GAME_NAME='D: The Game' ARCHIVE_BASE_0_NAME='gog_d_the_game_2.0.0.2.sh' ARCHIVE_BASE_0_MD5='4a9f18efc065a80723130b73c5327095' ARCHIVE_BASE_0_SIZE='930000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.2' ARCHIVE_BASE_0_URL='https://www.gog.com/game/d_the_game' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' AVI BMP DRV EFC VESA.AVI SOUND.BAT DS.DAT LAURA.PIF *.EXE' GAME_IMAGE='DS.DAT' USER_PERSISTENT_DIRECTORIES=' data' APP_MAIN_EXE='LAURA.EXE' APP_MAIN_ICON='../support/icon.png' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-dagon.sh0000755000000000000000000000352214471751340013252 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Dagon: by H. P. Lovecraft # send your bug reports to bugs@dotslashplay.it ### script_version=20240907.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='dagon' GAME_NAME='Dagon: by H. P. Lovecraft' ARCHIVE_BASE_0_NAME='setup_dagon_by_h._p._lovecraft_dagon_2021-10-28_(64bit)_(51058).exe' ARCHIVE_BASE_0_MD5='22378497f9f73c2eeb1dc7a3fbe8ce29' ARCHIVE_BASE_0_SIZE='2500000' ARCHIVE_BASE_0_VERSION='2021.10.27.031-gog51058' ARCHIVE_BASE_0_URL='https://www.gog.com/game/dagon_by_h_p_lovecraft' UNITY3D_NAME='dagon' CONTENT_PATH_DEFAULT='.' CONTENT_DOC_DATA_FILES=' cinzel font license.txt' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/BitGolem/Dagon' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-dead-synchronicity.sh0000755000000000000000000000610014471751340015755 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Dead Synchronicity: Tomorrow Comes Today # send your bug reports to bugs@dotslashplay.it ### script_version=20240822.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='dead-synchronicity' GAME_NAME='Dead Synchronicity: Tomorrow Comes Today' ARCHIVE_BASE_ZOOM_0_NAME='Dead-Synchronicity-1.1.tar.xz' ARCHIVE_BASE_ZOOM_0_MD5='625ab4fc87c1b8744de35a5c9b86bdf4' ARCHIVE_BASE_ZOOM_0_SIZE='3200000' ARCHIVE_BASE_ZOOM_0_VERSION='1.0.7-zoom1.1' ARCHIVE_BASE_ZOOM_0_URL='https://www.zoom-platform.com/product/dead-synchronicity' ARCHIVE_BASE_HUMBLE_0_NAME='Dead_Synchronicity_1.0.7_Linux_Full_EN_FR_IT_DE_ES_KO_JA_Daedalic_noDRM.tar.gz' ARCHIVE_BASE_HUMBLE_0_MD5='0aee9cc5d5c256f47ce61b313115a601' ARCHIVE_BASE_HUMBLE_0_SIZE='3200000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0.7-humble1' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/dead-synchronicity-tomorrow-comes-today' UNITY3D_NAME='Dead Synchronicity' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam libraries are required. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='Dead Synchronicity' 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" # 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-dear-esther.sh0000755000000000000000000000644714471751340014376 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Dear Esther # send your bug reports to bugs@dotslashplay.it ### script_version=20250427.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='dear-esther' GAME_NAME='Dear Esther' ## This DRM-free Linux installer used to be sold by Humble Bundle, ## but they dropped it in favour of Steam keys. ARCHIVE_BASE_0_NAME='dearesther-linux-06082013-bin' ARCHIVE_BASE_0_MD5='951127a283c3caf2c76031c7611d431d' ## This is a MojoSetup installer, not relying on Makeself. ARCHIVE_BASE_0_EXTRACTOR='bsdtar' ARCHIVE_BASE_0_SIZE='1500000' ARCHIVE_BASE_0_VERSION='1.6-humble1' CONTENT_PATH_DEFAULT='data' CONTENT_LIBS_BIN_RELATIVE_PATH='bin' CONTENT_LIBS_BIN_FILES=' datacache.so engine.so filesystem_stdio.so inputsystem.so launcher.so libMiles.so libtier0.so libtogl.so libvstdlib.so localize.so materialsystem.so scenefilecache.so shaderapidx9.so soundemittersystem.so stdshader_dx9.so studiorender.so valve_avi.so vaudio_miles.so vgui2.so vguimatsurface.so vphysics.so vscript.so' CONTENT_GAME_BIN_FILES=' bin/linux32 bin/vconfig bin/*.addin bin/*.bin bin/*.cfg bin/*.csv bin/*.fgd dearesther_linux' CONTENT_GAME_DATA_FILES=' dearesther dearesther.png platform' CONTENT_DOC_DATA_FILES=' README-linux.txt' USER_PERSISTENT_DIRECTORIES=' dearesther/cfg dearesther/save' APP_MAIN_EXE='dearesther_linux' APP_MAIN_OPTIONS='-game dearesther' APP_MAIN_ICON='dearesther.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libEGL.so.1 libfontconfig.so.1 libfreetype.so.6 libm.so.6 libopenal.so.1 libpthread.so.0 libSDL2-2.0.so.0 libstdc++.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 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 ## The game engine looks for some libraries in a hardcoded path libraries_source=$(path_libraries) libraries_destination="$(package_path 'PKG_BIN')$(path_game_data)/bin" mkdir --parents "$libraries_destination" ln --symbolic "${libraries_source}/filesystem_stdio.so" "$libraries_destination" ln --symbolic "${libraries_source}/launcher.so" "$libraries_destination" # Write launchers ## This game expects an executable stack through dynamically loaded libraries game_exec_line() { cat <<- 'EOF' GLIBC_TUNABLES=glibc.rtld.execstack=2 ./dearesther_linux -game dearesther "$@" EOF } launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-delores-a-thimbleweed-park-miniadventure.sh0000755000000000000000000000475614471751340022141 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Delores: A Thimbleweed Park Mini-Adventure # send your bug reports to bugs@dotslashplay.it ### script_version=20250408.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='delores-a-thimbleweed-park-mini-adventure' GAME_NAME='Delores: A Thimbleweed Park Mini-Adventure' ARCHIVE_BASE_0_NAME='setup_delores_a_thimbleweed_park_mini-adventure_1.1.191_(64bit)_(38487).exe' ARCHIVE_BASE_0_MD5='30b609714d47171a84c8d41c1a1c038a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='77000' ARCHIVE_BASE_0_VERSION='1.1.1.191-gog38487' ARCHIVE_BASE_0_URL='https://www.gog.com/game/delores_a_thimbleweed_park_miniadventure' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' *.dll delores.exe' CONTENT_GAME_DATA_FILES=' delores.ggpack1 delores.ico delores.rc' ## The game expects to be running on top of Windows ≥ 10. WINE_WINETRICKS_VERBS="${WINE_WINETRICKS_VERBS:-} win10" ## A Windows native build of d3dcompiler is required. WINE_WINETRICKS_VERBS="${WINE_WINETRICKS_VERBS:-} d3dcompiler_47" APP_MAIN_EXE='delores.exe' APP_MAIN_ICON='delores.ico' ## Prevent a game crash when using the Wayland video backend of SDL APP_MAIN_PRERUN=' # Prevent a game crash when using the Wayland video backend of SDL if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 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-demetrios.sh0000755000000000000000000000412114471751340014151 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Demetrios # send your bug reports to bugs@dotslashplay.it ### script_version=20240822.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='demetrios' GAME_NAME='Demetrios - The Big Cynical Adventure' ARCHIVE_BASE_0_NAME='Demetrios-Release-LINUX-DRMFREE-1.2.1.zip' ARCHIVE_BASE_0_MD5='0ab0c66ab9e52e0d0eff9071e62252fb' ARCHIVE_BASE_0_SIZE='560000' ARCHIVE_BASE_0_VERSION='1.2.1-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/demetrios-the-big-cynical-adventure' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' Demetrios' CONTENT_GAME_DATA_FILES=' assets' USER_PERSISTENT_FILES=' assets/options.ini' APP_MAIN_EXE='Demetrios' APP_MAIN_ICON='assets/icon.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libcurl-gnutls.so.4 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libpthread.so.0 librt.so.1 libssl.so.1.0.0 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-deponia.sh0000755000000000000000000001247714471751340013612 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2017 Mopi set -o errexit ### # Deponia series: # - Deponia 1 # - Deponia 2 # - Deponia 3 # send your bug reports to bugs@dotslashplay.it ### script_version=20240822.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID_DEPONIA1='deponia-1' GAME_NAME_DEPONIA1='Deponia' GAME_ID_DEPONIA2='deponia-2' GAME_NAME_DEPONIA2='Deponia 2: Chaos on Deponia' GAME_ID_DEPONIA3='deponia-3' GAME_NAME_DEPONIA3='Deponia 3: Goodbye Deponia' # Archives ## Deponia 1 ARCHIVE_BASE_DEPONIA1_GOG_0_NAME='gog_deponia_2.1.0.3.sh' ARCHIVE_BASE_DEPONIA1_GOG_0_MD5='a3a21ba1c1ee68c9be2c755bd79e1b30' ARCHIVE_BASE_DEPONIA1_GOG_0_SIZE='1800000' ARCHIVE_BASE_DEPONIA1_GOG_0_VERSION='3.3.1357-gog2.1.0.3' ARCHIVE_BASE_DEPONIA1_GOG_0_URL='https://www.gog.com/game/deponia' ## This DRM-free native Linux build is no longer available for sale from the Humble Store, ## they now only sell Steam keys for the Deponia games. ARCHIVE_BASE_DEPONIA1_HUMBLE_0_NAME='Deponia_3.3.1358_Full_DEB_Multi_Daedalic_ESD.tar.gz' ARCHIVE_BASE_DEPONIA1_HUMBLE_0_MD5='8ff4e21bbb4abcdc4059845acf7c7f04' ARCHIVE_BASE_DEPONIA1_HUMBLE_0_VERSION='3.3.1358-humble160511' ARCHIVE_BASE_DEPONIA1_HUMBLE_0_SIZE='1700000' ## Deponia 2 ARCHIVE_BASE_DEPONIA2_GOG_0_NAME='gog_deponia_2_chaos_on_deponia_2.1.0.3.sh' ARCHIVE_BASE_DEPONIA2_GOG_0_MD5='7aa1251741a532e4b9f908a3af0d8f2a' ARCHIVE_BASE_DEPONIA2_GOG_0_SIZE='3200000' ARCHIVE_BASE_DEPONIA2_GOG_0_VERSION='3.3.2351-gog2.1.0.3' ARCHIVE_BASE_DEPONIA2_GOG_0_URL='https://www.gog.com/game/deponia_2_chaos_on_deponia' ## This DRM-free native Linux build is no longer available for sale from the Humble Store, ## they now only sell Steam keys for the Deponia games. ARCHIVE_BASE_DEPONIA2_HUMBLE_0_NAME='Deponia2_DEB_Full_3.2.2342_Multi_Daedalic_ESD.tar.gz' ARCHIVE_BASE_DEPONIA2_HUMBLE_0_MD5='e7a71d5b8a83b2c2393095256b03553b' ARCHIVE_BASE_DEPONIA2_HUMBLE_0_SIZE='3100000' ARCHIVE_BASE_DEPONIA2_HUMBLE_0_VERSION='3.2.2342-humble' ## Optional icons pack ARCHIVE_OPTIONAL_ICONS_0_NAME_DEPONIA2='deponia-2_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_0_MD5_DEPONIA2='4469f0e85881f0db2c266dcb6222717c' ARCHIVE_OPTIONAL_ICONS_0_URL_DEPONIA2='https://downloads.dotslashplay.it/resources/deponia-2' CONTENT_ICONS_PATH_DEPONIA2='.' CONTENT_ICONS_FILES_DEPONIA2=' 16x16 32x32 48x48 256x256' ## Deponia 3 ARCHIVE_BASE_DEPONIA3_GOG_0_NAME='gog_deponia_3_goodbye_deponia_2.1.0.4.sh' ARCHIVE_BASE_DEPONIA3_GOG_0_MD5='9af5c29790e629635d27bc9368299516' ARCHIVE_BASE_DEPONIA3_GOG_0_SIZE='3900000' ARCHIVE_BASE_DEPONIA3_GOG_0_VERSION='3.3.3335-gog2.1.0.4' ARCHIVE_BASE_DEPONIA3_GOG_0_URL='https://www.gog.com/game/goodbye_deponia' ## This DRM-free native Linux build is no longer available for sale from the Humble Store, ## they now only sell Steam keys for the Deponia games. ARCHIVE_BASE_DEPONIA3_HUMBLE_0_NAME='Deponia3_DEB_Full_3.2.3.3320_Multi_Daedalic_ESD.tar.gz' ARCHIVE_BASE_DEPONIA3_HUMBLE_0_MD5='1fe92f0faf379541440895de68a1a14e' ARCHIVE_BASE_DEPONIA3_HUMBLE_0_SIZE='3700000' ARCHIVE_BASE_DEPONIA3_HUMBLE_0_VERSION='3.2.0.3320-humble' ## Optional icons pack ARCHIVE_OPTIONAL_ICONS_0_NAME_DEPONIA3='deponia-3_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_0_MD5_DEPONIA3='d57dfcd4b23ff2c7f4163b9db20329f2' ARCHIVE_OPTIONAL_ICONS_0_URL_DEPONIA3='https://downloads.dotslashplay.it/resources/deponia-3' CONTENT_ICONS_PATH_DEPONIA3='.' CONTENT_ICONS_FILES_DEPONIA3=' 16x16 32x32 48x48 256x256' VISIONAIRE_NAME_DEPONIA1='Deponia' VISIONAIRE_NAME_DEPONIA2='Deponia2' VISIONAIRE_NAME_DEPONIA3='Deponia3' CONTENT_PATH_DEFAULT_DEPONIA1_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_DEPONIA1_HUMBLE='Deponia' CONTENT_PATH_DEFAULT_DEPONIA2_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_DEPONIA2_HUMBLE='Chaos on Deponia' CONTENT_PATH_DEFAULT_DEPONIA3_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_DEPONIA3_HUMBLE='Goodbye Deponia' APP_MAIN_ICON_DEPONIA1_GOG='../support/icon.png' APP_MAIN_ICON_DEPONIA2_GOG='../support/icon.png' APP_MAIN_ICON_DEPONIA3_GOG='../support/icon.png' PKG_BIN_ARCH='64' ## Deponia 1 - Ensure smooth upgrades from packages generated with 20231005.1 scripts PKG_BIN_PROVIDES_DEPONIA1=' deponia' PKG_DATA_PROVIDES_DEPONIA1=' deponia-1-videos deponia-videos deponia-data' ## Deponia 2 - Ensure smooth upgrades from packages generated with 20231005.1 scripts PKG_DATA_PROVIDES_DEPONIA2=' deponia-2-videos' ## Deponia 3 - Ensure smooth upgrades from packages generated with 20231005.1 scripts PKG_DATA_PROVIDES_DEPONIA3=' deponia-3-videos' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-detective-gallo.sh0000755000000000000000000000357414471751340015241 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Detective Gallo # send your bug reports to bugs@dotslashplay.it ### script_version=20240823.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='detective-gallo' GAME_NAME='Detective Gallo' ARCHIVE_BASE_0_NAME='setup_detective_gallo_1.21_(29213).exe' ARCHIVE_BASE_0_MD5='8e11f1d9d90468d1835cc68da7acb604' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_detective_gallo_1.21_(29213)-1.bin' ARCHIVE_BASE_0_PART1_MD5='93b24aafa234dd6e6dd053df5f3f594a' ARCHIVE_BASE_0_SIZE='4500000' ARCHIVE_BASE_0_VERSION='1.21-gog29213' ARCHIVE_BASE_0_URL='https://www.gog.com/game/detective_gallo' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES=' acsetup.cfg *.0?? *.exe *.tra *.vox' ## TODO: Check if the shipped library is required CONTENT_GAME0_MAIN_FILES=' agsd3dvsync.dll' CONTENT_DOC_MAIN_FILES=' docs' APP_MAIN_SCUMMID='ags:detectivegallo' APP_MAIN_ICON='detective gallo.exe' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-detective-grimoire.sh0000755000000000000000000000555414471751340015760 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Detective Grimoire # send your bug reports to bugs@dotslashplay.it ### script_version=20241123.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='detective-grimoire' GAME_NAME='Detective Grimoire' ARCHIVE_BASE_0_NAME='DetectiveGrimoire1423507440.tar.gz' ARCHIVE_BASE_0_MD5='729f52439a86c52ef9fe9e2d3dceeb4a' ARCHIVE_BASE_0_SIZE='170000' ARCHIVE_BASE_0_VERSION='1.2.0-humble150209' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/detective-grimoire' CONTENT_PATH_DEFAULT='.' CONTENT_LIBS_BIN_FILES=' preload.c libpreload.so' CONTENT_GAME_BIN_FILES=' bin runtimes' CONTENT_GAME_DATA_FILES=' .appdata share' CONTENT_DOC_DATA_FILES=' *.txt' FAKE_HOME_PERSISTENT_DIRECTORIES=' .adobe .macromedia' USER_PERSISTENT_DIRECTORIES=' .appdata' APP_MAIN_EXE='bin/DetectiveGrimoire' for res in 16 29 32 36 40 48 50 57 58 72 76 80 96 100 114 120 128 144 152 512 1024; do APP_MAIN_ICONS_LIST="$APP_MAIN_ICONS_LIST APP_MAIN_ICON_${res}" export "APP_MAIN_ICON_${res}"="share/icons/icon${res}.png" done PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libglib-2.0.so.0 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgthread-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libnspr4.so libnss3.so libpango-1.0.so.0 libpangocairo-1.0.so.0 libpthread.so.0 librt.so.1 libsmime3.so libssl3.so libstdc++.so.6 libX11.so.6 libXcursor.so.1 libxml2.so.2 libXrender.so.1 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## Load the shipped preload shim ## TODO: Check what this shim is about, and if it is actually required APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN') # Load shipped preload shim export LD_PRELOAD='$(path_libraries)/libpreload.so' " launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-detention.sh0000755000000000000000000000426114471751340014154 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Anna Lea # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Detention # send your bug reports to bugs@dotslashplay.it ### script_version=20241112.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='detention' GAME_NAME='Detention' ARCHIVE_BASE_0_NAME='Detention-linux(7821293f).zip' ARCHIVE_BASE_0_MD5='44f4a6847260f6ef460b4e44239e1859' ARCHIVE_BASE_0_SIZE='2200000' ARCHIVE_BASE_0_VERSION='7821293f-1' ARCHIVE_BASE_0_URL='https://shop.redcandlegames.com/games/detention' UNITY3D_NAME='Detention' CONTENT_PATH_DEFAULT='Detention' ## The game binary uses a non-standard name CONTENT_GAME0_BIN_FILES=" ${UNITY3D_NAME}.x64" ## FIXME: The list of Unity3D plugins to include should be set using UNITY3D_PLUGINS CONTENT_GAME1_BIN_FILES=" ${UNITY3D_NAME}_Data/Plugins/x86_64" APP_MAIN_EXE="${UNITY3D_NAME}.x64" PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' ## TODO: The list of dependencies should be completed PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgdk-x11-2.0.so.0 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libstdc++.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-devils-kiss.sh0000755000000000000000000000516114471751340014420 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2025 Antoine Le Gonidec set -o errexit ### # Devil's Kiss # send your bug reports to bugs@dotslashplay.it ### script_version=20250115.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='devils-kiss' GAME_NAME='Devil’s Kiss' ARCHIVE_BASE_0_NAME='devil_s_kiss_1_012_36900.sh' ARCHIVE_BASE_0_MD5='c25b0a28b771d5acc32dfeead049bccd' ARCHIVE_BASE_0_SIZE='472138' ARCHIVE_BASE_0_VERSION='1.012-gog36900' ARCHIVE_BASE_0_URL='https://www.gog.com/game/devils_kiss' UNITY3D_NAME='DevilsKiss' UNITY3D_PLUGINS=' libfmod.so libfmodL.so libfmodstudio.so libfmodstudioL.so libgvraudio.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' ## Work around a failure to detect the screen resolution on first launch APP_MAIN_PRERUN=' # Work around a failure to detect the screen resolution on first launch unity3d_prefs="${HOME}/.config/unity3d/Size Five Games/DevilsKiss/prefs" if [ ! -e "$unity3d_prefs" ]; then mkdir --parents "$(dirname "$unity3d_prefs")" cat > "$unity3d_prefs" <<- EOF 0 1024 768 EOF fi ' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 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-doctor-who-and-the-lonely-assassins.sh0000755000000000000000000000444714471751340021101 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Doctor Who: The Lonely Assassins # send your bug reports to bugs@dotslashplay.it ### script_version=20250408.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='doctor-who-the-lonely-assassins' GAME_NAME='Doctor Who: The Lonely Assassins' ARCHIVE_BASE_0_NAME='setup_doctor_who_the_lonely_assassins_1.840.127_(47861).exe' ARCHIVE_BASE_0_MD5='102ae49769312005075e26141250b5cc' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1500000' ARCHIVE_BASE_0_VERSION='1.840.127-gog47861' ARCHIVE_BASE_0_URL='https://www.gog.com/game/doctor_who_the_lonely_assasins' UNITY3D_NAME='doctor who the lonely assassins' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Kaigan Games/Doctor Who_ The Lonely Assassins' ## Without .NET support, the game fails to load anything after the initial splash screen. ## It seems that Mono is not enough, the .NET Framework 4.5 is required. WINE_DLLOVERRIDES_DEFAULT='winemenubuilder.exe,mshtml=' WINE_WINETRICKS_VERBS='dotnet45' 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-dracula-1-the-resurrection.sh0000755000000000000000000001055514471751340017237 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Dracula: The Resurrection # send your bug reports to bugs@dotslashplay.it ### script_version=20250826.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='dracula-1-the-resurrection' GAME_NAME='Dracula: The Resurrection' ARCHIVE_BASE_EN_0_NAME='setup_dracula_the_resurrection_2.1.0.5.exe' ARCHIVE_BASE_EN_0_MD5='4f3ac9ea7b645ec3bc0ec2c9de24be79' ARCHIVE_BASE_EN_0_EXTRACTOR='innoextract' ARCHIVE_BASE_EN_0_EXTRACTOR_OPTIONS='--gog' ARCHIVE_BASE_EN_0_PART1_NAME='setup_dracula_the_resurrection_2.1.0.5.bin' ARCHIVE_BASE_EN_0_PART1_MD5='284f93ed3799267604cc1f25a2329699' ARCHIVE_BASE_EN_0_PART1_TYPE='rar' ARCHIVE_BASE_EN_0_SIZE='1336964' ARCHIVE_BASE_EN_0_VERSION='1.0-gog2.1.0.5' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/dracula_trilogy' ARCHIVE_BASE_FR_0_NAME='setup_dracula_the_resurrection_french_2.1.0.5.exe' ARCHIVE_BASE_FR_0_MD5='4665678362c34ccf2f19252d7f66d6d7' ARCHIVE_BASE_FR_0_EXTRACTOR='innoextract' ARCHIVE_BASE_FR_0_EXTRACTOR_OPTIONS='--gog' ARCHIVE_BASE_FR_0_PART1_NAME='setup_dracula_the_resurrection_french_2.1.0.5-1.bin' ARCHIVE_BASE_FR_0_PART1_MD5='6021c178c8bb2aa291ec4fc839263d19' ARCHIVE_BASE_FR_0_PART1_TYPE='rar' ARCHIVE_BASE_FR_0_SIZE='1480558' ARCHIVE_BASE_FR_0_VERSION='1.0-gog2.1.0.5' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/dracula_trilogy' CONTENT_PATH_DEFAULT='game' CONTENT_GAME_BIN_FILES=' dct.dll dhook.dll dra32lib.dll fnx_vr.dll smackw32.dll dracula.exe' CONTENT_GAME_L10N_FILES=' a08aanim01.4xm a08aanim02.4xm a08aanim03.4xm a08aanim04.4xm a08aanim05.4xm b04anim.4xm b10banim.4xm e02banim02.4xm e02banim03.4xm m1barinadiag01.4xm m1barinadiag02.4xm m1barinadiag03.4xm m1barinadiag04.4xm m1barinadiag05.4xm m1barinadiag06.4xm m1barinadiag07.4xm m1barinadiag08.4xm m1michadiag02.4xm m1michadiag04.4xm m1michadiag05.4xm m1michadiag06.4xm m1michadiag08.4xm m2dorkodiag01.4xm m2dorkodiag02.4xm m2dorkodiag03.4xm m2dorkodiag04.4xm m2dorkodiag05.4xm m2dorkodiag06.4xm m2dorkodiag07.4xm m2e02aanim.4xm m2h03pfaanim.4xm m2i06anim.4xm prologue1.4xm prologue2.4xm prologue3.4xm trans02.4xm barinapf.tst michapf.tst interface.tst dorkopf.tst h01afv.tst h42apfa.tst h42apfb.tst h42bpfa.tst h42bpfb.tst insertcd2.tst quitte.vr logo.vr interface.vr debut.vr michapf.vr dorkopf.vr barinapf.vr credit.vr nouvellepartie.vr a09a.vr insertcd.vr i03a.vr m2b09a.vr m2g05pfc.vr m2lutrinpf.vr dorko.wav' CONTENT_GAME_DATA_FILES=' a18tst compiler.dat cursor1.gif cursor2.gif retour.gif signal.gif dracula.ico *.4xm *.lst *.pcx *.tst *.vr *.wav' CONTENT_DOC_DATA_FILES=' *.pdf' USER_PERSISTENT_FILES=' Saved_?.bin' WINE_VIRTUAL_DESKTOP='auto' ## Set Windows version to Windows 98, otherwise the menu can not be opened in-game WINE_WINETRICKS_VERBS='win98' APP_MAIN_EXE='dracula.exe' APP_MAIN_ICON='dracula.ico' PACKAGES_LIST=' PKG_BIN PKG_L10N PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N_BASE PKG_DATA' PKG_L10N_BASE_ID="${GAME_ID}-l10n" PKG_L10N_ID_EN="${PKG_L10N_BASE_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_BASE_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_BASE_ID" PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' ## convmv is used to convert file paths to lower case. REQUIREMENTS_LIST=' convmv' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default ## Convert all file paths to lower case. tolower "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-dragonsphere.sh0000755000000000000000000000424514471751340014646 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 mortalius # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2017 Mopi set -o errexit ### # Dragonsphere # send your bug reports to bugs@dotslashplay.it ### script_version=20250826.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='dragonsphere' GAME_NAME='Dragonsphere' ARCHIVE_BASE_0_NAME='gog_dragonsphere_2.0.0.3.sh' ARCHIVE_BASE_0_MD5='9dd42821c144aa87fd01b595607471c9' ARCHIVE_BASE_0_SIZE='90022' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.3' ARCHIVE_BASE_0_URL='https://www.gog.com/game/dragonsphere' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' GAME.GOG GAME.INS' CONTENT_GAME0_MAIN_RELATIVE_PATH='DRAGON' CONTENT_GAME0_MAIN_FILES=' DIGITAL.AGA DRAGON.BAT CONFIG.DRA DRAGON.RES CD.ROM DRAGON.SPH UNRIP.WAV ?SOUND.DR? *.EXE *.IDX' CONTENT_DOC_MAIN_RELATIVE_PATH='DRAGON' CONTENT_DOC_MAIN_FILES=' README.TXT' USER_PERSISTENT_FILES=' SAVES.DIR CONFIG.DRA DRAG*.SAV' GAME_IMAGE='GAME.INS' APP_MAIN_EXE='MAINMENU.EXE' APP_MAIN_ICON='../support/icon.png' ## convmv is used to convert file paths to upper 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 upper case. toupper "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Include game data. content_inclusion_icons content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-draugen.sh0000755000000000000000000000470014471751340013606 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Draugen # send your bug reports to bugs@dotslashplay.it ### script_version=20241106.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='draugen' GAME_NAME='Draugen' ARCHIVE_BASE_0_NAME='setup_draugen_1.1.0.10_(64bit)_(30252).exe' ARCHIVE_BASE_0_MD5='5ac0dd08f8d794d61158ef9ffeeebef3' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_draugen_1.1.0.10_(64bit)_(30252)-1.bin' ARCHIVE_BASE_0_PART1_MD5='aa703a920b67b4201aed1711dd7a14ad' ARCHIVE_BASE_0_PART2_NAME='setup_draugen_1.1.0.10_(64bit)_(30252)-2.bin' ARCHIVE_BASE_0_PART2_MD5='21e3d5b7c2fd029256762ff8ddf424a9' ARCHIVE_BASE_0_SIZE='12000000' ARCHIVE_BASE_0_VERSION='1.1.0.10-gog30252' ARCHIVE_BASE_0_URL='https://www.gog.com/game/draugen' UNREALENGINE4_NAME='draugen' CONTENT_PATH_DEFAULT='.' HUGE_FILES_DATA=" ${UNREALENGINE4_NAME}/content/paks/${UNREALENGINE4_NAME}-windowsnoeditor.pak" ## The game will crash before loading the menu if PhysX is unavailable. WINE_WINETRICKS_VERBS='physx' APP_MAIN_EXE="${UNREALENGINE4_NAME}/binaries/win64/${UNREALENGINE4_NAME}-win64-shipping.exe" ## The --name=101 wrestool option, default for UE4 games, should not be used here APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-dream-daddy.sh0000755000000000000000000000550314471751340014336 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Dream Daddy # send your bug reports to bugs@dotslashplay.it ### script_version=20250228.3 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='dream-daddy' GAME_NAME='Dream Daddy' ## This DRM-free installer is no longer available for sale from humblebundle.com. ARCHIVE_BASE_0_NAME='dreamdaddy_adaddatingsimulator_linux.zip' ARCHIVE_BASE_0_MD5='a191cb84040c25919aa1bd029180cf11' ARCHIVE_BASE_0_SIZE='500000' ARCHIVE_BASE_0_VERSION='0.11-humble1' UNITY3D_NAME='DDaDDs' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data' CONTENT_DOC_DATA_FILES=' Linux.README' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # An inner archive is relying on bsdtar for files extraction REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} bsdtar" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ARCHIVE_INNER_PATH="${PLAYIT_WORKDIR}/gamedata/Dream Daddy Linux/dreamdaddy-02142019-bin" ## The inner archive is a MojoSetup installer that is not relying on a Makeself wrapper ARCHIVE_INNER_EXTRACTOR='bsdtar' archive_extraction 'ARCHIVE_INNER' rm "$ARCHIVE_INNER_PATH" ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Exclude the unused launcher script rm 'DDaDDs' ) # 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-dream.sh0000755000000000000000000000402114471751340013245 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Dream # send your bug reports to bugs@dotslashplay.it ### script_version=20240501.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='dream' GAME_NAME='Dream' ARCHIVE_BASE_0_NAME='setup_dream_1.12_(20822).exe' ARCHIVE_BASE_0_MD5='a4e75ba9d21e146fff1a9cfca2674657' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_dream_1.12_(20822)-1.bin' ARCHIVE_BASE_0_PART1_MD5='944eee69b9e0a90a0d03dd2e83c2644e' ARCHIVE_BASE_0_SIZE='3100000' ARCHIVE_BASE_0_VERSION='1.12-gog20822' ARCHIVE_BASE_0_URL='https://www.gog.com/game/dream' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' binaries engine' CONTENT_GAME_DATA_FILES=' udkgame' USER_PERSISTENT_DIRECTORIES=' udkgame/config Saves' WINE_WINEPREFIX_TWEAKS='mono' APP_MAIN_EXE='binaries/win32/dream.exe' ## The type must be set explicitly, or it will be wrongly identified as a Mono application. APP_MAIN_TYPE='wine' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-dreamfall-chapters.sh0000755000000000000000000000517214471751340015723 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2020 HS-157 set -o errexit ### # Dreamfall Chapters # send your bug reports to bugs@dotslashplay.it ### script_version=20241201.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='dreamfall-chapters' GAME_NAME='Dreamfall Chapters' ARCHIVE_BASE_GOG_1_NAME='dreamfall_chapters_the_final_cut_5_7_8_26845.sh' ARCHIVE_BASE_GOG_1_MD5='4971fdb8148d661b4a23119ed289b14e' ARCHIVE_BASE_GOG_1_VERSION='5.7.8-gog26845' ARCHIVE_BASE_GOG_1_SIZE='21000000' ARCHIVE_BASE_GOG_1_URL='https://www.gog.com/game/dreamfall_chapters_season_pass' ARCHIVE_BASE_GOG_0_NAME='gog_dreamfall_chapters_2.19.0.23.sh' ARCHIVE_BASE_GOG_0_MD5='3f05c530a0e07b7227e3fb7b6601e19a' ARCHIVE_BASE_GOG_0_VERSION='5.3.0-gog2.19.0.23' ARCHIVE_BASE_GOG_0_SIZE='21000000' ARCHIVE_BASE_HUMBLE_0_NAME='Dreamfall_Chapters_Linux_2017_08_25.zip' ARCHIVE_BASE_HUMBLE_0_MD5='22bee7bee25920e5cf7febc4b3c12e21' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0-humble1' ARCHIVE_BASE_HUMBLE_0_SIZE='21000000' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/dreamfall-chapters' UNITY3D_NAME='Dreamfall Chapters' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='.' ## TODO: An explicit list of plugins to include should be set using UNITY3D_PLUGINS CONTENT_GAME0_BIN_FILES=" ${UNITY3D_NAME}_Data/Plugins" PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' ## TODO: Update the list of required native libraries. PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libstdc++.so.6 libGL.so.1 libXcursor.so.1 libXrandr.so.2 libX11.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run 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-dropsy.sh0000755000000000000000000000627714471751340013514 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Dropsy # send your bug reports to bugs@dotslashplay.it ### script_version=20241224.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='dropsy' GAME_NAME='Dropsy' ARCHIVE_BASE_0_NAME='dropsy_1_5_linux_76112.sh' ARCHIVE_BASE_0_MD5='b7003615929f2cf7261c54f3b145623c' ARCHIVE_BASE_0_SIZE='1071861' ARCHIVE_BASE_0_VERSION='1.5-gog76112' ARCHIVE_BASE_0_URL='https://www.gog.com/game/dropsy' ARCHIVE_BASE_MULTIARCH_0_NAME='gog_dropsy_2.5.0.6.sh' ARCHIVE_BASE_MULTIARCH_0_MD5='6739e9f516043ee90b033b55c3e3f35c' ARCHIVE_BASE_MULTIARCH_0_SIZE='910000' ARCHIVE_BASE_MULTIARCH_0_VERSION='1.4-gog2.5.0.6' UNITY3D_NAME='Dropsy' UNITY3D_PLUGINS_MULTIARCH=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' USER_PERSISTENT_DIRECTORIES=' Save' PACKAGES_LIST=' PKG_BIN PKG_DATA' PACKAGES_LIST_MULTIARCH=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' PKG_BIN_DEPENDENCIES_LIBRARIES_MULTIARCH=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 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_MULTIARCH="$PKG_BIN_DEPENDENCIES_LIBRARIES_MULTIARCH" PKG_BIN32_DEPENDENCIES_LIBRARIES_MULTIARCH="$PKG_BIN_DEPENDENCIES_LIBRARIES_MULTIARCH" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Prevent the inclusion of Steam libraries case "$(current_archive)" in ('ARCHIVE_BASE_MULTIARCH_'*) # The multiarch archives rely on UNITY3D_PLUGINS to exclude unwanted libraries. ;; (*) rm --recursive "$(unity3d_name)_Data/Plugins" ;; esac ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers case "$(current_archive)" in ('ARCHIVE_BASE_MULTIARCH_'*) launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' ;; (*) launchers_generation 'PKG_BIN' ;; esac # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-dungeons-and-lesbians.sh0000755000000000000000000000404214471751340016340 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Dungeons & Lesbians # send your bug reports to bugs@dotslashplay.it ### script_version=20250408.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='dungeons-and-lesbians' GAME_NAME='Dungeons & Lesbians' ARCHIVE_BASE_0_NAME='DungeonsAndLesbians-1.2-linux.tar.bz2' ARCHIVE_BASE_0_MD5='31015bbbc250043dca3e77c96941655b' ARCHIVE_BASE_0_SIZE='200000' ARCHIVE_BASE_0_VERSION='1.2-itch1' ARCHIVE_BASE_0_URL='https://noeybodys.itch.io/dungeonsandlesbians' CONTENT_PATH_DEFAULT='DungeonsAndLesbians-1.2-linux/game' CONTENT_FONTS_MAIN_FILES=' Hannotate.ttc Neucha-Regular.ttf ReenieBeanie-Regular.ttf' CONTENT_GAME_MAIN_FILES=' cache gui tli script_version.txt *.jpg *.mp3 *.ogg *.png *.rpy *.rpyc *.wav' APP_MAIN_TYPE='renpy' APP_MAIN_ICONS_LIST='APP_MAIN_ICON_ICO APP_MAIN_ICON_PNG' APP_MAIN_ICON_PNG='icon.png' APP_MAIN_ICON_ICO='icon.ico' ## Ensure easy upgrades from packages generated with pre-20250408.1 game scripts PKG_MAIN_PROVIDES="${PKG_MAIN_PROVIDES:-} dungeons-and-lesbians-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-edible-place.sh0000755000000000000000000000401414471751340014465 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # The Indifferent Wonder of an Edible Place # send your bug reports to bugs@dotslashplay.it ### script_version=20240618.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='edible-places' GAME_NAME='The Indifferent Wonder of an Edible Place' ARCHIVE_BASE_0_NAME='Edible Places 01.6 (Linux).zip' ARCHIVE_BASE_0_MD5='88359c14fec2b94dd06ed4306ef1b681' ARCHIVE_BASE_0_SIZE='1265238' ARCHIVE_BASE_0_VERSION='01.6-itch' ARCHIVE_BASE_0_URL='https://studio-oleomingus.itch.io/the-indifferent-wonder-of-an-edible-place' UNITY3D_NAME='Edible' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='Edible Places 01.6 (Linux)' CONTENT_DOC_DATA_FILES=' Readme.txt' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-edna-and-harvey-harveys-new-eyes.sh0000755000000000000000000000322714471751340020340 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Edna & Harvey: Harvey's New Eyes # send your bug reports to bugs@dotslashplay.it ### script_version=20240823.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='edna-and-harvey-harveys-new-eyes' GAME_NAME='Edna & Harvey: Harvey’s New Eyes' ARCHIVE_BASE_0_NAME='gog_edna_harvey_harvey_s_new_eyes_2.0.0.1.sh' ARCHIVE_BASE_0_MD5='fa6f7fd271fe63bbe71e3190e0596546' ARCHIVE_BASE_0_SIZE='990000' ARCHIVE_BASE_0_VERSION='3.0.0442-gog2.0.0.1' ARCHIVE_BASE_0_URL='https://www.gog.com/game/edna_harvey_harveys_new_eyes' VISIONAIRE_NAME='harvey' CONTENT_PATH_DEFAULT='data/noarch/game' APP_MAIN_ICON='../support/icon.png' PKG_BIN_ARCH='64' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-edna-and-harvey-the-breakout.sh0000755000000000000000000000456014471751340017520 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Edna and Harvey: The Breakout # send your bug reports to bugs@dotslashplay.it ### script_version=20240823.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='edna-and-harvey-the-breakout' GAME_NAME='Edna & Harvey: The Breakout' ARCHIVE_BASE_0_NAME='edna_harvey_the_breakout_anniversary_edition_0_19120503_35770.sh' ARCHIVE_BASE_0_MD5='bb6ed80ee6fdbd21c059351c48e5156e' ARCHIVE_BASE_0_SIZE='3696656' ARCHIVE_BASE_0_VERSION='0.19120503-gog35770' ARCHIVE_BASE_0_URL='https://www.gog.com/game/edna_harvey_the_breakout_anniversary_edition' UNITY3D_NAME='edna' ## TODO: Check if the Steam libraries can be dropped. UNITY3D_PLUGINS=' libsteam_api.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # 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-encodya.sh0000755000000000000000000000464214471751340013610 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Encodya # send your bug reports to bugs@dotslashplay.it ### script_version=20250409.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='encodya' GAME_NAME='Encodya' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" ARCHIVE_BASE_0_NAME='encodya_1_1_46120.sh' ARCHIVE_BASE_0_MD5='6fdadc42c828896389de2a9fd3a355fb' ARCHIVE_BASE_0_SIZE='3300000' ARCHIVE_BASE_0_VERSION='1.1-gog46120' ARCHIVE_BASE_0_URL='https://www.gog.com/game/encodya' ## This free demo has been removed from itch.io since the release of the full game. ARCHIVE_BASE_DEMO_0_NAME='ENCODYA_DemoV1linux.zip' ARCHIVE_BASE_DEMO_0_MD5='4b3dfbbd37585615791acf13b4bb7ecd' ARCHIVE_BASE_DEMO_0_SIZE='1100000' ARCHIVE_BASE_DEMO_0_VERSION='1-itch' UNITY3D_NAME='ENCODYA' UNITY3D_NAME_DEMO='ENCODYA_DemoV1' UNITY3D_PLUGINS=' abci.so UnityFbxSdkNative.so' ## TODO: Check if the Steam library can be dropped UNITY3D_PLUGINS="$UNITY3D_PLUGINS libsteam_api.so" CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_PATH_DEFAULT_DEMO='ENCODYA_DemoV1' 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 libxml2.so.2 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-equaboreal-1221.sh0000755000000000000000000000405514471751340014667 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Equaboreal 12.21 # send your bug reports to bugs@dotslashplay.it ### script_version=20240617.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='equaboreal-1221' GAME_NAME='Equaboreal 12.21' ARCHIVE_BASE_0_NAME='Equaboreal_LINUX_1.02.zip' ARCHIVE_BASE_0_MD5='4ca58bf305ef445e3e0b8b5eb64fb319' ARCHIVE_BASE_0_SIZE='695633' ARCHIVE_BASE_0_VERSION='1.02-itch' ARCHIVE_BASE_0_URL='https://girldebord.itch.io/1221' UNITY3D_NAME='Equaboreal_1.02' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='Equaboreal_LINUX_1.02' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-ether-one.sh0000755000000000000000000000345714471751340014057 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Ether One # send your bug reports to bugs@dotslashplay.it ### script_version=20240611.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='ether-one' GAME_NAME='Ether One' ARCHIVE_BASE_0_NAME='setup_ether_one_redux_v01.06_(64bit)_(38324).exe' ARCHIVE_BASE_0_MD5='13f269e4f088c6a747f6848b678cdf46' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='3200000' ARCHIVE_BASE_0_VERSION='1.06-gog38324' ARCHIVE_BASE_0_URL='https://www.gog.com/game/ether_one' UNREALENGINE4_NAME='etherone' CONTENT_PATH_DEFAULT='.' APP_MAIN_EXE="${UNREALENGINE4_NAME}/binaries/win64/${UNREALENGINE4_NAME}-win64-shipping.exe" APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=IDICON_UE4GAME --language=1033' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-everything.sh0000755000000000000000000000411114471751340014341 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Everything # send your bug reports to bugs@dotslashplay.it ### script_version=20251014.2 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='everything' GAME_NAME='Everything' ARCHIVE_BASE_0_NAME='Everything_DRMfree_Linux_106.zip' ARCHIVE_BASE_0_MD5='f5e05e94702e74c23524227e6d148159' ARCHIVE_BASE_0_SIZE='1700000' ARCHIVE_BASE_0_VERSION='1.06-humble170503' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/everything' UNITY3D_NAME='Everything' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='.' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run 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-fall-of-porcupine.sh0000755000000000000000000000451714471751340015511 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Fall of Porcupine # send your bug reports to bugs@dotslashplay.it ### script_version=20250409.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='fall-of-porcupine' GAME_NAME='Fall of Porcupine' ARCHIVE_BASE_0_NAME='setup_fall_of_porcupine_1.1.12_(65935).exe' ARCHIVE_BASE_0_MD5='6b3cb17a1f869630d16ca633dc176382' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_fall_of_porcupine_1.1.12_(65935)-1.bin' ARCHIVE_BASE_0_PART1_MD5='8a32270570176b36192ac3ff8bcf7715' ARCHIVE_BASE_0_SIZE='4168652' ARCHIVE_BASE_0_VERSION='1.1.12-gog65935' ARCHIVE_BASE_0_URL='https://www.gog.com/game/fall_of_porcupine' UNITY3D_NAME='fallofporcupine' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Buntspecht Film und Digitales GmbH/FallOfPorcupine' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_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 ## TODO: Investigate a hashsum mismatch during data extraction: ## Warning: Output checksum mismatch for fallofporcupine_data/sharedassets11.assets.ress: ## ├─ actual: MD5 6f4cb6264ae05e5a039650fb7fd2d078 ## └─ expected: MD5 2212bc181be9503f339e23573e1c0256 archive_extraction_default # Include game data 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-far-from-noise.sh0000755000000000000000000000332414471751340015006 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Far From Noise # send your bug reports to bugs@dotslashplay.it ### script_version=20240619.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='far-from-noise' GAME_NAME='Far From Noise' ARCHIVE_BASE_0_NAME='Windows.zip' ARCHIVE_BASE_0_MD5='7861db608070316a1a329fb140d90b8f' ARCHIVE_BASE_0_SIZE='300000' ARCHIVE_BASE_0_VERSION='1.0-itch1' ARCHIVE_BASE_0_URL='https://georgebatch.itch.io/far-from-noise' UNITY3D_NAME='FarFromNoise' CONTENT_PATH_DEFAULT='Windows' WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\George Batchelor\Far from Noise' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-far-lone-sails.sh0000755000000000000000000000335314471751340015000 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Far: Lone Sails # send your bug reports to bugs@dotslashplay.it ### script_version=20240820.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='far-lone-sails' GAME_NAME='FAR: Lone Sails' ARCHIVE_BASE_0_NAME='setup_far_lone_sails_1.3_(56748).exe' ARCHIVE_BASE_0_MD5='f18af4cc8e730c58db71460b0dff9cae' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2700000' ARCHIVE_BASE_0_VERSION='1.3-gog56748' ARCHIVE_BASE_0_URL='https://www.gog.com/game/far_lone_sails' UNITY3D_NAME='farlonesails' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Okomotive/FarLoneSails' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-finding-paradise.sh0000755000000000000000000000621114471751340015364 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2021 Anna Lea set -o errexit ### # Finding Paradise # send your bug reports to bugs@dotslashplay.it ### script_version=20240909.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='finding-paradise' GAME_NAME='Finding Paradise' ARCHIVE_BASE_1_NAME='finding_paradise_gog_3_lang_26461.sh' ARCHIVE_BASE_1_MD5='d5f8adf528d95845893b0d23dac449d6' ARCHIVE_BASE_1_SIZE='320000' ARCHIVE_BASE_1_VERSION='3-gog26461' ARCHIVE_BASE_1_URL='https://www.gog.com/game/finding_paradise' ARCHIVE_BASE_0_NAME='finding_paradise_gog_3_lang_25982.sh' ARCHIVE_BASE_0_MD5='dbfe49910afb07109803ee24c796c868' ARCHIVE_BASE_0_SIZE='310000' ARCHIVE_BASE_0_VERSION='3-gog25982' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_FILES=' libruby.so.2.1' CONTENT_LIBS_BIN64_PATH="${CONTENT_PATH_DEFAULT}/lib64" CONTENT_LIBS_BIN64_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_LIBS_BIN32_PATH="${CONTENT_PATH_DEFAULT}/lib" CONTENT_LIBS_BIN32_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_GAME_BIN64_FILES=' FindingParadise.amd64' CONTENT_GAME_BIN32_FILES=' FindingParadise.x86' CONTENT_FONT_DATA_PATH="${CONTENT_PATH_DEFAULT}/Fonts" CONTENT_FONT_DATA_FILES=' OpenSans.ttf' CONTENT_GAME_DATA_FILES=' mkxp mkxp.conf Audio.dat Finding Paradise.ini icon.png Finding Paradise.rgssad' APP_MAIN_EXE_BIN64='FindingParadise.amd64' APP_MAIN_EXE_BIN32='FindingParadise.x86' APP_MAIN_ICON='icon.png' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libcrypt.so.1 libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libopenal.so.1 libphysfs.so.1 libpixman-1.so.0 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0 libSDL2_ttf-2.0.so.0 libSDL_sound-1.0.so.1 libsigc-2.0.so.0 libstdc++.so.6 libvorbisfile.so.3 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-fire.sh0000755000000000000000000000547014471751340013113 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Fire # send your bug reports to bugs@dotslashplay.it ### script_version=20240823.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='fire' GAME_NAME='Fire!' ARCHIVE_BASE_ZOOM_0_NAME='Puzzleventure-FIRE-1.1.tar.xz' ARCHIVE_BASE_ZOOM_0_MD5='3a51cae77402316fff25fae65aebf865' ARCHIVE_BASE_ZOOM_0_SIZE='4200000' ARCHIVE_BASE_ZOOM_0_VERSION='1.0.6756-zoom1.1' ARCHIVE_BASE_ZOOM_0_URL='https://www.zoom-platform.com/product/puzzleventure-fire' ARCHIVE_BASE_HUMBLE_0_NAME='LIN_ESD_1.0.6756_REL.zip' ARCHIVE_BASE_HUMBLE_0_MD5='eb990e8465afbca210009b1fca76adcb' ARCHIVE_BASE_HUMBLE_0_SIZE='4200000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0.6756-humble1' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/fire' UNITY3D_NAME='Fire' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT_ZOOM='Puzzleventure - FIRE' 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=' 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" # 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-firewatch.sh0000755000000000000000000000417514471751340014143 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2025 Bernd Schumacher set -o errexit ### # Firewatch # send your bug reports to bugs@dotslashplay.it ### script_version=20250916.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='firewatch' GAME_NAME='Firewatch' ARCHIVE_BASE_1_NAME='firewatch_1_12_55089.sh' ARCHIVE_BASE_1_MD5='7486e4a03f97b134af79de0a99ca0897' ARCHIVE_BASE_1_SIZE='4200000' ARCHIVE_BASE_1_VERSION='1.12-gog55089' ARCHIVE_BASE_1_URL='https://www.gog.com/game/firewatch' ARCHIVE_BASE_0_NAME='firewatch_en_1_09_20938.sh' ARCHIVE_BASE_0_MD5='804f663f99afef437e120fdded8b86b1' ARCHIVE_BASE_0_SIZE='4200000' ARCHIVE_BASE_0_VERSION='1.09-gog20938' UNITY3D_NAME='fw' UNITY3D_PLUGINS=' libAkSoundEngine.so 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 libSDL2-2.0.so.0 libstdc++.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-fixfox.sh0000755000000000000000000000327414471751340013471 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # FixFox # send your bug reports to bugs@dotslashplay.it ### script_version=20240820.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='fixfox' GAME_NAME='FixFox' ARCHIVE_BASE_0_NAME='setup_fixfox_402_c39e385a_(61432).exe' ARCHIVE_BASE_0_MD5='4a2095116059e12d6c8fa7363cd30fdc' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='660000' ARCHIVE_BASE_0_VERSION='402-gog61432' ARCHIVE_BASE_0_URL='https://www.gog.com/game/fixfox' UNITY3D_NAME='fixfox' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Rendlike/FixFox' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-florence.sh0000755000000000000000000000347714471751340013770 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Florence # send your bug reports to bugs@dotslashplay.it ### script_version=20250409.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='florence' GAME_NAME='Florence' ARCHIVE_BASE_0_NAME='setup_florence_1.0.1.4373_(64bit)_(35616).exe' ARCHIVE_BASE_0_MD5='d9b406a2e56b740ce8c0ffd10990c15a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='1.0.1.4373-gog35616' ARCHIVE_BASE_0_SIZE='670000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/florence' UNITY3D_NAME='florence' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Mountains/Florence' 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-flower.sh0000755000000000000000000000361314471751340013461 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Flower # send your bug reports to bugs@dotslashplay.it ### script_version=20240820.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='flower' GAME_NAME='Flower' ARCHIVE_BASE_0_NAME='setup_flower_1.45_(64bit)_(35425).exe' ARCHIVE_BASE_0_MD5='65076f1fc214fdadd4a0758235a0da20' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2300000' ARCHIVE_BASE_0_VERSION='1.45-gog35425' ARCHIVE_BASE_0_URL='https://www.gog.com/game/flower' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' fmod64.dll galaxy64.dll libscepad.dll winpixeventruntime.dll flower.exe' CONTENT_GAME_DATA_FILES=' data font2.fnt flower.xme menusystem.xme strings.xme' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/Flower' APP_MAIN_EXE='flower.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-fran-bow.sh0000755000000000000000000000625114471751340013677 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Fran Bow # send your bug reports to bugs@dotslashplay.it ### script_version=20250803.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='fran-bow' GAME_NAME='Fran Bow' ARCHIVE_BASE_UNITY3D_0_NAME='fran_bow_1_0_1_unity_linux_64165.sh' ARCHIVE_BASE_UNITY3D_0_MD5='91ff10a42e12a21a6e88794d61242d50' ARCHIVE_BASE_UNITY3D_0_SIZE='3217937' ARCHIVE_BASE_UNITY3D_0_VERSION='1.0.1-gog64165' ARCHIVE_BASE_UNITY3D_0_URL='https://www.gog.com/game/fran_bow' ARCHIVE_BASE_GAMEMAKER_0_NAME='gog_fran_bow_2.3.0.5.sh' ARCHIVE_BASE_GAMEMAKER_0_MD5='6e3013e9c8be4d25e1815f00bc177941' ARCHIVE_BASE_GAMEMAKER_0_SIZE='530000' ARCHIVE_BASE_GAMEMAKER_0_VERSION='160315-gog2.3.0.5' UNITY3D_NAME_UNITY3D='Fran Bow' ## Without the Steam library, the game crashes on launch: ## ## [Steamworks.NET] Could not load [lib]steam_api.dll/so/dylib. It's likely not in the correct location. Refer to the README for more details. ## System.DllNotFoundException: steam_api assembly: type: member:(null) ## at (wrapper managed-to-native) Steamworks.NativeMethods.SteamAPI_RestartAppIfNecessary(Steamworks.AppId_t) ## at Steamworks.SteamAPI.RestartAppIfNecessary (Steamworks.AppId_t unOwnAppID) [0x00005] in :0 ## at SteamManager.Awake () [0x00061] in :0 UNITY3D_PLUGINS_UNITY3D=' libsteam_api.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES_GAMEMAKER=' runner' CONTENT_GAME_DATA_FILES_GAMEMAKER=' assets' APP_MAIN_EXE_GAMEMAKER='runner' APP_MAIN_ICON_GAMEMAKER='assets/icon.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH_UNITY3D='64' PKG_BIN_ARCH_GAMEMAKER='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES_UNITY3D=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' PKG_BIN_DEPENDENCIES_LIBRARIES_GAMEMAKER=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libssl.so.1.0.0 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 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 # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-fruits-of-a-feather.sh0000755000000000000000000000403314471751340015730 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # Fruits of a Feather # send your bug reports to bugs@dotslashplay.it ### script_version=20250410.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='fruits-of-a-feather' GAME_NAME='Fruits of a Feather' ARCHIVE_BASE_0_NAME='FruitsOfAFeather2.0_LINUX.zip' ARCHIVE_BASE_0_MD5='4eabeef1cfd27136a62730d5e5cf4d6f' ARCHIVE_BASE_0_SIZE='170000' ARCHIVE_BASE_0_VERSION='2.0-itch.2016.11.18' ARCHIVE_BASE_0_URL='https://samuraipunk.itch.io/feather' UNITY3D_NAME='FruitsofaFeather' UNITY3D_PLUGINS=' ScreenSelector.so sqlite3.so' CONTENT_PATH_DEFAULT='linux' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # 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-full-throttle-remastered.sh0000755000000000000000000000505214471751340017120 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 macaron # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Full Throttle Remastered # send your bug reports to bugs@dotslashplay.it ### script_version=20250427.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='full-throttle-remastered' GAME_NAME='Full Throttle Remastered' ARCHIVE_BASE_0_NAME='full_throttle_remastered_en_gog_3_20993.sh' ARCHIVE_BASE_0_MD5='2f4bf151e225e7dfa9bec31ed49b721c' ARCHIVE_BASE_0_SIZE='5400000' ARCHIVE_BASE_0_VERSION='1.0-gog20993' ARCHIVE_BASE_0_URL='https://www.gog.com/game/full_throttle_remastered' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_RELATIVE_PATH='lib' CONTENT_LIBS_BIN_FILES=' libfmod.so.8' CONTENT_GAME_BIN_FILES=' Throttle gamecontrollerdb.txt' CONTENT_GAME_DATA_FILES=' full.data' CONTENT_DOC_DATA_FILES=' readme.txt' APP_MAIN_EXE='Throttle' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not 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)" # Restore the full data file from its parts mv 'full.data.split00' 'full.data' cat 'full.data.split01' >> 'full.data' rm 'full.data.split01' ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## Force the use of system-provided SDL APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN') $(launcher_tweak_sdl_override)" PKG_BIN_DEPENDENCIES_LIBRARIES="$(dependencies_list_native_libraries 'PKG_BIN') libSDL2-2.0.so.0" launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-gabriel-knight-1.sh0000755000000000000000000000402114471751340015202 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Gabriel Knight: Sins of the Fathers # send your bug reports to bugs@dotslashplay.it ### script_version=20240430.2 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='gabriel-knight-1' GAME_NAME='Gabriel Knight: Sins of the Fathers' ARCHIVE_BASE_0_NAME='setup_gabriel_knight_-_sins_of_the_fathers_20th_anniversary_edition_2.02_(16216).exe' ARCHIVE_BASE_0_MD5='ac1879d3217f7ce12403e51ccb463792' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_gabriel_knight_-_sins_of_the_fathers_20th_anniversary_edition_2.02_(16216)-1.bin' ARCHIVE_BASE_0_PART1_MD5='7d97631d1b1d636faa4eefd7ae49c16c' ARCHIVE_BASE_0_SIZE='3016016' ARCHIVE_BASE_0_VERSION='2.02-gog16216' ARCHIVE_BASE_0_URL='https://www.gog.com/game/gabriel_knight_sins_of_the_fathers_20th_anniversary_edition' UNITY3D_NAME='gk1' CONTENT_PATH_DEFAULT='app' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Phoenix Online Studios/GK1' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-gathering-sky.sh0000755000000000000000000000540314471751340014736 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # Gathering Sky # send your bug reports to bugs@dotslashplay.it ### script_version=20251013.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='gathering-sky' GAME_NAME='Gathering Sky' ARCHIVE_BASE_0_NAME='GatheringSky_Linux_64bit.zip' ARCHIVE_BASE_0_MD5='c590edce835070a1ac2ae47ac620dc48' ARCHIVE_BASE_0_SIZE='1200000' ARCHIVE_BASE_0_VERSION='1.0-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/gathering-sky' CONTENT_PATH_DEFAULT='packr/linux/GatheringSky' CONTENT_GAME_MAIN_FILES=' desktop-0.1.jar' APP_MAIN_TYPE='java' APP_MAIN_JAVA_OPTIONS='-Xmx1G' APP_MAIN_EXE='desktop-0.1.jar' APP_MAIN_ICONS_LIST='APP_MAIN_ICON_16 APP_MAIN_ICON_32 APP_MAIN_ICON_128' APP_MAIN_ICON_16='../../../images/Icon_16.png' APP_MAIN_ICON_32='../../../images/Icon_32.png' APP_MAIN_ICON_128='../../../images/Icon_128.png' ## Ensure settings can be stored APP_MAIN_PRERUN=' # Ensure settings can be stored. mkdir --parents "${HOME}/.prefs" ' ## Easier upgrade from pre-20251013.1 packages PKG_MAIN_PROVIDES=' gathering-sky gathering-sky-data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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. ## The archive includes the following entry, triggering an error during decompression: ## ?rwxr--r-- 2.0 unx 0 bl defN 14-May-31 03:43 / archive_extraction_default 2>/dev/null || true ARCHIVE_INNER_PATH="${PLAYIT_WORKDIR}/gamedata/GatheringSky.tar.gz" archive_extraction 'ARCHIVE_INNER' rm "$ARCHIVE_INNER_PATH" ## The icons are extracted from desktop-0.1.jar. ARCHIVE_JAR_PATH="${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/desktop-0.1.jar" ARCHIVE_JAR_TYPE='zip' archive_extraction 'ARCHIVE_JAR' # Include game data. content_inclusion_icons content_inclusion_default # Write launchers. ## This game expects an executable stack through dynamically loaded libraries. game_exec_line() { cat <<- 'EOF' GLIBC_TUNABLES=glibc.rtld.execstack=2 java -Xmx1G -jar desktop-0.1.jar "$@" EOF } launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-gemini-rue.sh0000755000000000000000000000547014471751340014227 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Gemini Rue # send your bug reports to bugs@dotslashplay.it ### script_version=20250520.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='gemini-rue' GAME_NAME='Gemini Rue' ARCHIVE_BASE_5_NAME='gemini_rue_3_5_78970.sh' ARCHIVE_BASE_5_MD5='6cf61489438b0155fc1a4a74261b2fde' ARCHIVE_BASE_5_SIZE='342040' ARCHIVE_BASE_5_VERSION='3.5-gog78970' ARCHIVE_BASE_5_URL='https://www.gog.com/game/gemini_rue' ARCHIVE_BASE_4_NAME='gemini_rue_3_2_76543.sh' ARCHIVE_BASE_4_MD5='c7a2ad8123a234c168971d76232cf472' ARCHIVE_BASE_4_SIZE='342040' ARCHIVE_BASE_4_VERSION='3.2-gog76543' ARCHIVE_BASE_3_NAME='gemini_rue_3_0_1_66504.sh' ARCHIVE_BASE_3_MD5='e117463c6b002dbfc57b2adf4d26161b' ARCHIVE_BASE_3_SIZE='350000' ARCHIVE_BASE_3_VERSION='3.0.1-gog66504' ARCHIVE_BASE_2_NAME='gemini_rue_3_0_66190.sh' ARCHIVE_BASE_2_MD5='3ad7b458713f1ba1d187d90b0dee8eaa' ARCHIVE_BASE_2_SIZE='350000' ARCHIVE_BASE_2_VERSION='3.0-gog66190' ARCHIVE_BASE_1_NAME='gemini_rue_2_3_56797.sh' ARCHIVE_BASE_1_MD5='f7883371b14f945163ffa040ee47806e' ARCHIVE_BASE_1_SIZE='340000' ARCHIVE_BASE_1_VERSION='2.3-gog56797' ARCHIVE_BASE_0_NAME='gemini_rue_2_0a_53346.sh' ARCHIVE_BASE_0_MD5='9626ba73b964458b26e25ed9e1ec737d' ARCHIVE_BASE_0_SIZE='340000' ARCHIVE_BASE_0_VERSION='2.0a-gog53346' ## Optional icons pack ARCHIVE_OPTIONAL_ICONS_NAME='gemini-rue_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5='b236abc6e12f89d149c60249dfeb3725' ARCHIVE_OPTIONAL_ICONS_URL='https://downloads.dotslashplay.it/games/gemini-rue/' CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 256x256' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' ENGV.tmp Music Sounds *.ags *.cfg *.exe *.ogv *.tra *.vox' CONTENT_DOC_MAIN_FILES=' licenses' APP_MAIN_SCUMMID='ags:geminirue' APP_MAIN_ICON='../support/icon.png' APP_MAIN_ICON_1='Gemini Rue.exe' APP_MAIN_ICON_0='Gemini Rue.exe' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-goetia.sh0000755000000000000000000000435014471751340013432 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Goetia # send your bug reports to bugs@dotslashplay.it ### script_version=20240823.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='goetia' GAME_NAME='Goetia' ARCHIVE_BASE_0_NAME='goetia_en_gog_1_18328.sh' ARCHIVE_BASE_0_MD5='13d620c4b7426cb755cba43d68cbbb1e' ARCHIVE_BASE_0_SIZE='6956940' ARCHIVE_BASE_0_VERSION='1.0-gog18328' ARCHIVE_BASE_0_URL='https://www.gog.com/game/goetia' UNITY3D_NAME='Goetia' 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 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-golden-treasure.sh0000755000000000000000000000344714471751340015270 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Golden Treasure: The Great Green # send your bug reports to bugs@dotslashplay.it ### script_version=20240806.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='golden-treasure' GAME_NAME='Golden Treasure' ARCHIVE_BASE_0_NAME='gt1-pc-release.zip' ARCHIVE_BASE_0_MD5='97006803c1293df85b9ffe553b5785ff' ARCHIVE_BASE_0_SIZE='2400000' ARCHIVE_BASE_0_VERSION='1.1.3.190711-itch' ARCHIVE_BASE_0_URL='https://dreaming-door.itch.io/gt1' UNITY3D_NAME='Golden Treasure - The Great Green' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Dreaming Door Studios/Golden Treasure - The Great Green' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-gomo.sh0000755000000000000000000000410414471751340013120 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2021 Anna Lea # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Gomo # send your bug reports to bugs@dotslashplay.it ### script_version=20240823.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='gomo' GAME_NAME='Gomo' ARCHIVE_BASE_1_NAME='setup_gomo_1.0_(20774).exe' ARCHIVE_BASE_1_MD5='7679c55aaafe8308518aa4940929fbb0' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='290000' ARCHIVE_BASE_1_VERSION='1.0-gog20774' ARCHIVE_BASE_1_URL='https://www.gog.com/game/gomo' ARCHIVE_BASE_0_NAME='setup_gomo_2.1.0.4.exe' ARCHIVE_BASE_0_MD5='5ee422dff6f00976e170296103dd29e6' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='560000' ARCHIVE_BASE_0_VERSION='1.0-gog2.1.0.4' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_BIN_FILES=' adobe air gomo.exe' CONTENT_GAME_DATA_FILES=' meta-inf movies music world gomo.swf' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/Gomo' APP_MAIN_EXE='gomo.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-gone-home.sh0000755000000000000000000000500314471751340014034 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Gone Home # send your bug reports to bugs@dotslashplay.it ### script_version=20240909.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='gone-home' GAME_NAME='Gone Home' ARCHIVE_BASE_1_NAME='gonehome-2020-01-28-linux.zip' ARCHIVE_BASE_1_MD5='2255a474e5e90f9b8c741b7abf48c779' ARCHIVE_BASE_1_SIZE='3200000' ARCHIVE_BASE_1_VERSION='2020.01.23-humble1' ARCHIVE_BASE_1_URL='https://www.humblebundle.com/store/gone-home' ARCHIVE_BASE_0_NAME='gonehome-linux.zip' ARCHIVE_BASE_0_MD5='7653deccab3af7843605cf605fe96041' ARCHIVE_BASE_0_SIZE='3200000' ARCHIVE_BASE_0_VERSION='1.0-humble180430' UNITY3D_NAME='GoneHome' UNITY3D_NAME_0='GoneHome_linux' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='gonehome-2020-01-28-linux' CONTENT_PATH_DEFAULT_0='.' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' 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 target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 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-grim-fandango.sh0000755000000000000000000000567314471751340014704 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Grim Fandango # send your bug reports to bugs@dotslashplay.it ### script_version=20240823.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='grim-fandango' GAME_NAME='Grim Fandango' ARCHIVE_BASE_0_NAME='gog_grim_fandango_remastered_2.3.0.7.sh' ARCHIVE_BASE_0_MD5='9c5d124c89521d254b0dc259635b2abe' ARCHIVE_BASE_0_SIZE='6100000' ARCHIVE_BASE_0_VERSION='1.4-gog2.3.0.7' ARCHIVE_BASE_0_URL='https://www.gog.com/game/grim_fandango_remastered' CONTENT_PATH_DEFAULT='data/noarch/game/bin' CONTENT_LIBS_BIN_FILES=' libchore.so libLua.so' CONTENT_GAME_BIN_FILES=' GrimFandango x86' CONTENT_GAME_MOVIES_FILES=' MoviesHD' CONTENT_GAME_DATA_FILES=' FontsHD patch_v2_or_v3_to_v4.bin patch_v4_to_v5.bin en_gagl088.lip icon.png controllerdef.txt *.lab *.LAB *.tab' CONTENT_DOC_DATA_FILES=' common-licenses *License.txt' USER_PERSISTENT_DIRECTORIES=' Saves' APP_MAIN_EXE='GrimFandango' APP_MAIN_ICON='icon.png' ## Work around a game crash on launch if the game exited without cleaning up its temporary files APP_MAIN_PRERUN=' # Work around a game crash on launch if the game exited without cleaning up its temporary files rm --force '\''c:\\temp\sector.txt'\'' ' PACKAGES_LIST=' PKG_BIN PKG_MOVIES PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_MOVIES PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libpthread.so.0 libSDL2-2.0.so.0 libstdc++.so.6 libX11.so.6' PKG_MOVIES_ID="${GAME_ID}-movies" PKG_MOVIES_DESCRIPTION='movies' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## The game binary looks for libSDL2-2.0.so.1 instead of libSDL2-2.0.so.0 path_libraries_system=$( set_current_package 'PKG_BIN' path_libraries_system ) library_source="${path_libraries_system}/libSDL2-2.0.so.0" library_destination="$(package_path 'PKG_BIN')$(path_libraries)/libSDL2-2.0.so.1" mkdir --parents "$(dirname "$library_destination")" ln --symbolic "$library_source" "$library_destination" launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-growbot.sh0000755000000000000000000000354414471751340013651 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Growbot # send your bug reports to bugs@dotslashplay.it ### script_version=20250905.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='growbot' GAME_NAME='Growbot' ARCHIVE_BASE_0_NAME='growbot_1_6_55954.sh' ARCHIVE_BASE_0_MD5='f162fbd159809c37dd1aa9307d88eebd' ARCHIVE_BASE_0_SIZE='848320' ARCHIVE_BASE_0_VERSION='1.6-gog55954' ARCHIVE_BASE_0_URL='https://www.gog.com/game/growbot' UNITY3D_NAME='Growbot' ## The game crashes on launch if the Steam library is not included. UNITY3D_PLUGINS=' libsteam_api.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-hamilton-the-dating-sim.sh0000755000000000000000000000355014471751340016606 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Hamilton: The Dating Sim # send your bug reports to bugs@dotslashplay.it ### script_version=20240912.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='hamilton-the-dating-sim' GAME_NAME='Hamilton: The Dating Sim' ARCHIVE_BASE_0_NAME='HamiltonTheDatingSim-2.1.1-linux.tar.bz2' ARCHIVE_BASE_0_MD5='764b130ee2b0a940c4977295eff994cb' ARCHIVE_BASE_0_SIZE='73000' ARCHIVE_BASE_0_VERSION='2.1.1-itch.2019.08.23' ARCHIVE_BASE_0_URL='https://timidsquid.itch.io/hamilton-the-dating-sim' CONTENT_PATH_DEFAULT='HamiltonTheDatingSim-2.1.1-linux/game' CONTENT_GAME_MAIN_FILES=' cache gui images tl Aaronclocktick.mp3 script_version.txt *.rpy *.rpyc' APP_MAIN_TYPE='renpy' ## Ensure easy upgrades from packages generated with pre-20240912.1 game scripts PKG_MAIN_PROVIDES="${PKG_MAIN_PROVIDES:-} hamilton-the-dating-sim-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_default # Write launchers ## Use the default Ren'Py icon desktop_field_icon() { printf 'renpy' } launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-harry-potter-and-the-mysterious-thief-part-1.sh0000755000000000000000000000371014471751340022557 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Harry Potter and the Mysterious Thief - Part 1 # send your bug reports to bugs@dotslashplay.it ### script_version=20240912.2 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='harry-potter-and-the-mysterious-thief-part-1' GAME_NAME='Harry Potter and the Mysterious Thief - Part 1' ARCHIVE_BASE_0_NAME='eng_nc17_HarryPotterAndTheMysteriousThiefpartI-linux.tar.bz2' ARCHIVE_BASE_0_MD5='0735c70f1836158cd5310c3b5e04b10f' ARCHIVE_BASE_0_SIZE='170000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://rivarsstudio.itch.io/hpatmt' CONTENT_PATH_DEFAULT='HarryPotterAndTheMysteriousThiefpartI-linux/game' CONTENT_GAME_MAIN_FILES=' cache archive.rpa' CONTENT_DOC_MAIN_PATH="${CONTENT_PATH_DEFAULT}/.." CONTENT_DOC_MAIN_FILES=' README.html' APP_MAIN_TYPE='renpy' ## Ensure easy upgrades from packages generated with pre-20240912.2 game scripts PKG_MAIN_PROVIDES="${PKG_MAIN_PROVIDES:-} harry-potter-and-the-mysterious-thief-part1 harry-potter-and-the-mysterious-thief-part1-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-harry-potter-and-the-mysterious-thief-part-2.sh0000755000000000000000000000371514471751340022565 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Harry Potter and the Mysterious Thief - Part 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20240912.2 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='harry-potter-and-the-mysterious-thief-part-2' GAME_NAME='Harry Potter and the Mysterious Thief - Part 2' ARCHIVE_BASE_0_NAME='HPatMTp2-linux.tar.bz2' ARCHIVE_BASE_0_MD5='e3505e2a2ba06f645092c6e53c344ca2' ARCHIVE_BASE_0_SIZE='120000' ARCHIVE_BASE_0_VERSION='1.0-itch.2020.12.01' ARCHIVE_BASE_0_URL='https://rivarsstudio.itch.io/harry-potter-and-the-mysterious-thief-part-ii' CONTENT_PATH_DEFAULT='HPatMTp2-linux/game' CONTENT_GAME_MAIN_FILES=' cache archive.rpa script_version.txt' APP_MAIN_TYPE='renpy' ## Ensure easy upgrades from packages generated with pre-20240912.2 game scripts PKG_MAIN_PROVIDES="${PKG_MAIN_PROVIDES:-} harry-potter-and-the-mysterious-thief-part2 harry-potter-and-the-mysterious-thief-part2-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_default # Write launchers ## Use the default Ren'Py icon if it is available desktop_field_icon() { printf 'renpy' } launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-harry-potter-and-the-transformency-spell.sh0000755000000000000000000000367714471751340022160 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Harry Potter and the Transformency Spell # send your bug reports to bugs@dotslashplay.it ### script_version=20240912.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='harry-potter-and-the-transformency-spell' GAME_NAME='Harry Potter and the Transformency Spell' ARCHIVE_BASE_0_NAME='eng_WizardLove_Exchange-linux.tar.bz2' ARCHIVE_BASE_0_MD5='bde8b88d4de6ba7f5b35648a38f5b5c9' ARCHIVE_BASE_0_SIZE='88000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://rivarsstudio.itch.io/hpatts' CONTENT_PATH_DEFAULT='WizardLove_Exchange-linux/game' CONTENT_GAME_MAIN_FILES=' cache images music sounds script_version.txt *.rpy *.rpyc' CONTENT_DOC_MAIN_PATH="${CONTENT_PATH_DEFAULT}/.." CONTENT_DOC_MAIN_FILES=' README.html' APP_MAIN_TYPE='renpy' APP_MAIN_ICON='images/icon.png' ## Ensure easy upgrades from packages generated with pre-20240912.1 game scripts PKG_MAIN_PROVIDES="${PKG_MAIN_PROVIDES:-} harry-potter-and-the-transformency-spell-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-hatoful-boyfriend.sh0000755000000000000000000000530114471751340015600 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Hatoful Boyfriend # send your bug reports to bugs@dotslashplay.it ### script_version=20240915.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='hatoful-boyfriend' GAME_NAME='Hatoful Boyfriend' ARCHIVE_BASE_0_NAME='gog_hatoful_boyfriend_2.0.0.2.sh' ARCHIVE_BASE_0_MD5='8c0a236206aadabf7b4bfd785edce954' ARCHIVE_BASE_0_SIZE='2121845' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.2' ARCHIVE_BASE_0_URL='https://www.gog.com/game/hatoful_boyfriend' UNITY3D_NAME='hatoful' 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=' 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" ## TODO: A dependency on the wqy-microhei.ttc font should be added. PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$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-hauma-a-detective-noir-story.sh0000755000000000000000000000643514471751340017576 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Hauma - A Detective Noir Story # send your bug reports to bugs@dotslashplay.it ### script_version=20241211.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='hauma-a-detective-noir-story' GAME_NAME='Hauma - A Detective Noir Story' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" ARCHIVE_BASE_1_NAME='setup_hauma_-_a_detective_noir_story_1.05_(74220).exe' ARCHIVE_BASE_1_MD5='6780baacc12416f1c53e070195c53def' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_hauma_-_a_detective_noir_story_1.05_(74220)-1.bin' ARCHIVE_BASE_1_PART1_MD5='abe2aeeb9b4f38ee18d47fbec2795bf1' ARCHIVE_BASE_1_SIZE='2119600' ARCHIVE_BASE_1_VERSION='1.05-gog74220' ARCHIVE_BASE_1_URL='https://www.gog.com/game/hauma_a_detective_noir_story' ARCHIVE_BASE_0_NAME='setup_hauma_-_a_detective_noir_story_1.04_(69325).exe' ARCHIVE_BASE_0_MD5='e6fc035ebe25667b38c3a2d7e4b37bb7' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_hauma_-_a_detective_noir_story_1.04_(69325)-1.bin' ARCHIVE_BASE_0_PART1_MD5='45212abd3511d32f07b5cd03a09ef370' ARCHIVE_BASE_0_SIZE='2118754' ARCHIVE_BASE_0_VERSION='1.04-gog69325' ARCHIVE_BASE_DEMO_0_NAME='setup_hauma_-_a_detective_noir_story_demo_1.00_(67500).exe' ARCHIVE_BASE_DEMO_0_MD5='1c227ca038d28e96d78d81f616536b62' ARCHIVE_BASE_DEMO_0_TYPE='innosetup' ARCHIVE_BASE_DEMO_0_PART1_NAME='setup_hauma_-_a_detective_noir_story_demo_1.00_(67500)-1.bin' ARCHIVE_BASE_DEMO_0_PART1_MD5='a6a708237c1df4de6008862d9c92fc30' ARCHIVE_BASE_DEMO_0_SIZE='2118728' ARCHIVE_BASE_DEMO_0_VERSION='1.00-gog67500' ARCHIVE_BASE_DEMO_0_URL='https://www.gog.com/game/hauma_a_detective_noir_story_demo' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' settings.cfg fmod.dll fmodstudio.dll libgodotfmod.windows.release.64.dll hauma.exe' CONTENT_GAME_DATA_FILES=' hauma.pck' ## The game crashes on launch if the Steam libraries are not available. CONTENT_GAME0_BIN_FILES=' godotsteam.dll steam_api64.dll' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/Godot/app_userdata/Hauma' USER_PERSISTENT_FILES=' settings.cfg' APP_MAIN_EXE='hauma.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_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-haven-moon.sh0000755000000000000000000000376614471751340014243 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Haven Moon # send your bug reports to bugs@dotslashplay.it ### script_version=20241130.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='haven-moon' GAME_NAME='Haven Moon' ## This game is no longer available for sale from humblebundle.com ARCHIVE_BASE_0_NAME='HavenMoon_LINUX.zip' ARCHIVE_BASE_0_MD5='2698639eaad59d4d01c10694bf63188e' ARCHIVE_BASE_0_SIZE='1177349' ARCHIVE_BASE_0_VERSION='1.0-humble161213' UNITY3D_NAME='HavenMoon' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='HavenMoon_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 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # 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-haven-park.sh0000755000000000000000000000435714471751340014225 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Haven Park # send your bug reports to bugs@dotslashplay.it ### script_version=20241109.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='haven-park' GAME_NAME='Haven Park' ARCHIVE_BASE_2_NAME='haven_park_1_2_1_2_53266.sh' ARCHIVE_BASE_2_MD5='d323146b73761aa946e599f060f4888b' ARCHIVE_BASE_2_VERSION='1.2.1.2-gog53266' ARCHIVE_BASE_2_SIZE='391856' ARCHIVE_BASE_2_URL='https://www.gog.com/game/haven_park' ARCHIVE_BASE_1_NAME='haven_park_1_0_8_49380.sh' ARCHIVE_BASE_1_MD5='9fe66fd96d55f019e7d8767b9dea8544' ARCHIVE_BASE_1_VERSION='1.0.8-gog49380' ARCHIVE_BASE_1_SIZE='402142' ARCHIVE_BASE_0_NAME='haven_park_1_0_5_49052.sh' ARCHIVE_BASE_0_MD5='0c4fc4383682e8fc06eb0355b5e391b6' ARCHIVE_BASE_0_VERSION='1.0.5-gog49052' ARCHIVE_BASE_0_SIZE='400000' UNITY3D_NAME='HavenPark' ## TODO: Check if the Steam library is required UNITY3D_PLUGINS=' libsteam_api.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-headspun.sh0000755000000000000000000000354614471751340013777 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Headspun # send your bug reports to bugs@dotslashplay.it ### script_version=20240611.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='headspun' GAME_NAME='Headspun' ARCHIVE_BASE_0_NAME='headspun-dazed-edition-win.zip' ARCHIVE_BASE_0_MD5='0e0621486930ba3a0dda64727423c603' ARCHIVE_BASE_0_SIZE='4600000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://svperstring.itch.io/headspun-dazed-edition' UNITY3D_NAME='Headspun' CONTENT_PATH_DEFAULT='Headspun/Headspun' CONTENT_GAME0_DATA_FILES=' Subtitles Videos' USER_PERSISTENT_FILES=" ${UNITY3D_NAME}_Data/OptionsData.txt ${UNITY3D_NAME}_Data/PlayerData.txt" PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-heal.sh0000755000000000000000000000316514471751340013076 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Heal # send your bug reports to bugs@dotslashplay.it ### script_version=20250905.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='heal' GAME_NAME='Heal' ARCHIVE_BASE_0_NAME='setup_heal_1.0_(66845).exe' ARCHIVE_BASE_0_MD5='7b30197a77652ff9fbbff9fe03bdbafa' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='241396' ARCHIVE_BASE_0_VERSION='1.0-gog66845' ARCHIVE_BASE_0_URL='https://www.gog.com/game/heal' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES=' heal_gog.exe' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/healgog' APP_MAIN_EXE='heal_gog.exe' PKG_MAIN_ARCH='32' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-heavens-vault.sh0000755000000000000000000000422414471751340014744 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Heaven's Vault # send your bug reports to bugs@dotslashplay.it ### script_version=20240807.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='heavens-vault' GAME_NAME='Heavenʼs Vault' ARCHIVE_BASE_0_NAME='setup_heavens_vault_1.11_(64bit)_(31262).exe' ARCHIVE_BASE_0_MD5='73476bbfccb0a97ec68fd403d23c85f0' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_heavens_vault_1.11_(64bit)_(31262)-1.bin' ARCHIVE_BASE_0_PART1_MD5='2f1dc13ab09f8fc592e1b8482ea5b0f4' ARCHIVE_BASE_0_SIZE='4300000' ARCHIVE_BASE_0_VERSION='1.11-gog31262' ARCHIVE_BASE_0_URL='https://www.gog.com/game/heavens_vault' UNITY3D_NAME='heavensvault' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=" users/\${USER}/AppData/LocalLow/Inkle Ltd/Heaven's Vault" PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Use a Unity3D name not including tricky characters unity3d_name=$(unity3d_name) mv "heaven's vault.exe" "${unity3d_name}.exe" mv "heaven's vault_data" "${unity3d_name}_data" ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-her-majestys-spiffing.sh0000755000000000000000000000446614471751340016410 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Her Majesty's Spiffing # send your bug reports to bugs@dotslashplay.it ### script_version=20250513.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='her-majestys-spiffing' GAME_NAME='Her Majesty’s Spiffing' ARCHIVE_BASE_0_NAME='HMS_Linux.zip' ARCHIVE_BASE_0_MD5='ca535505f238dad9bb90cedf19b06802' ARCHIVE_BASE_0_SIZE='3200000' ARCHIVE_BASE_0_VERSION='1.0-humble161207' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/her-majestys-spiffing' UNITY3D_NAME='hms' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='Linux' 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-higurashi-when-they-cry-hou.sh0000755000000000000000000000513714471751340017443 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Emmanuel Gil Peyrot # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Higurashi When They Cry Hou series: # - Ch.1 Onikakushi # send your bug reports to bugs@dotslashplay.it ### script_version=20240915.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='higurashi-when-they-cry-hou' GAME_NAME='Higurashi When They Cry Hou' GAME_ID_CHAPTER1="${GAME_ID}-1" GAME_NAME_CHAPTER1="$GAME_NAME - Ch.1 Onikakushi" ARCHIVE_BASE_CHAPTER1_0_NAME='higurashi_when_they_cry_hou_ch_1_onikakushi_1_0_bgm_sfx_update_28641.sh' ARCHIVE_BASE_CHAPTER1_0_MD5='501e514ef5accc565eac6e98c384e4aa' ARCHIVE_BASE_CHAPTER1_0_SIZE='431119' ARCHIVE_BASE_CHAPTER1_0_VERSION='1.0-gog28641' ARCHIVE_BASE_CHAPTER1_0_URL='https://www.gog.com/game/higurashi_when_they_cry_hou_ch1_onikakushi' UNITY3D_NAME_CHAPTER1='HigurashiEp01' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID_CHAPTER1="${GAME_ID_CHAPTER1}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$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-hiveswap-act-1.sh0000755000000000000000000000450314471751340014713 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Hiveswap: Act 1 # send your bug reports to bugs@dotslashplay.it ### script_version=20250513.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='hiveswap-act-1' GAME_NAME='Hiveswap: Act 1' ARCHIVE_BASE_0_NAME='hiveswap_act_1_en_gog_1_20238.sh' ARCHIVE_BASE_0_MD5='9ca40a38ee3de182cec967e3f6749be4' ARCHIVE_BASE_0_SIZE='4300000' ARCHIVE_BASE_0_VERSION='1.0-gog20238' ARCHIVE_BASE_0_URL='https://www.gog.com/game/hiveswap' UNITY3D_NAME='Hiveswap-Act1' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-hot-tin-roof.sh0000755000000000000000000000476314471751340014517 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Hot Tin Roof # send your bug reports to 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-hugo-1.sh0000755000000000000000000000371514471751340013266 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Anna Lea # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Hugo's House of Horrors # send your bug reports to bugs@dotslashplay.it ### script_version=20250828.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='hugo-1' GAME_NAME='Hugo I: Hugo’s House of Horrors' ARCHIVE_BASE_0_NAME='the_hugo_trilogy_en_gog_2_19789.sh' ARCHIVE_BASE_0_MD5='48a853bb5936e29bf22cb1d4ae8fcfdb' ARCHIVE_BASE_0_SIZE='100000' ARCHIVE_BASE_0_VERSION='2-gog19789' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_hugo_trilogy' CONTENT_PATH_DEFAULT='data/noarch/data/hwin_1' CONTENT_GAME_MAIN_FILES=' *.bsf *.dat' CONTENT_DOC_MAIN_FILES=' *.txt' CONTENT_DOC0_MAIN_PATH='data/noarch/docs' CONTENT_DOC0_MAIN_FILES=' *.txt' APP_MAIN_SCUMMID='hugo:hugo1' APP_MAIN_ICON='../../support/icon.png' ## convmv is used to convert file paths to lower case. REQUIREMENTS_LIST=' convmv' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default ## Convert all file paths to lower case. tolower "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Include game data. content_inclusion_icons content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-i-have-no-mouth-and-i-must-scream.sh0000755000000000000000000000762414471751340020332 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # I Have No Mouth And I Must Scream # send your bug reports to bugs@dotslashplay.it ### script_version=20250826.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='i-have-no-mouth-and-i-must-scream' GAME_NAME='I Have No Mouth And I Must Scream' ARCHIVE_BASE_EN_0_NAME='i_have_no_mouth_and_i_must_scream_en_1_0_17913.sh' ARCHIVE_BASE_EN_0_MD5='93640c6a4dc73f4ed2d40b210b95ba4c' ARCHIVE_BASE_EN_0_SIZE='750000' ARCHIVE_BASE_EN_0_VERSION='1.0-gog17913' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/i_have_no_mouth_and_i_must_scream' ARCHIVE_BASE_FR_0_NAME='i_have_no_mouth_and_i_must_scream_fr_1_0_17913.sh' ARCHIVE_BASE_FR_0_MD5='9124d7ccef36d4bb01dfae4d97cfbdea' ARCHIVE_BASE_FR_0_SIZE='570000' ARCHIVE_BASE_FR_0_VERSION='1.0-gog17913' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/i_have_no_mouth_and_i_must_scream' ARCHIVE_BASE_INNERARCHIVE_EN_0_NAME='gog_i_have_no_mouth_and_i_must_scream_2.0.0.4.sh' ARCHIVE_BASE_INNERARCHIVE_EN_0_MD5='be690cfa08a87b350c26cbfdde5de401' ARCHIVE_BASE_INNERARCHIVE_EN_0_SIZE='780000' ARCHIVE_BASE_INNERARCHIVE_EN_0_VERSION='1.0-gog2.0.0.4' ARCHIVE_BASE_INNERARCHIVE_FR_0_NAME='gog_i_have_no_mouth_and_i_must_scream_french_2.0.0.4.sh' ARCHIVE_BASE_INNERARCHIVE_FR_0_MD5='e59029d2736ffa2859d73d56899055ee' ARCHIVE_BASE_INNERARCHIVE_FR_0_SIZE='500000' ARCHIVE_BASE_INNERARCHIVE_FR_0_VERSION='1.0-gog2.0.0.4' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_L10N_FILES=' scream.res scripts.res voices?.res' CONTENT_GAME_MAIN_FILES=' musicfm.res musicgm.res sfx.res patch.re_' CONTENT_DOC_MAIN_PATH='data/noarch/docs' CONTENT_DOC_MAIN_FILES=' *.pdf' APP_MAIN_SCUMMID='saga:ihnm' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST=' PKG_MAIN PKG_L10N' PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_L10N_BASE' 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_ID_INNERARCHIVE_EN="$PKG_L10N_ID_EN" PKG_L10N_ID_INNERARCHIVE_FR="$PKG_L10N_ID_FR" PKG_L10N_PROVIDES=" $PKG_L10N_BASE_ID" PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' PKG_L10N_DESCRIPTION_INNERARCHIVE_EN="$PKG_L10N_DESCRIPTION_EN" PKG_L10N_DESCRIPTION_INNERARCHIVE_FR="$PKG_L10N_DESCRIPTION_FR" ## convmv is used to convert file paths to lower case. REQUIREMENTS_LIST=' convmv' ## Older gog.com archives require to get files from an inner archive. REQUIREMENTS_LIST_INNERARCHIVE="${REQUIREMENTS_LIST:-} unar" # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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 ## Older gog.com archives require to get files from an inner archive. case "$(current_archive)" in ('ARCHIVE_BASE_INNERARCHIVE_'*) ARCHIVE_INNER_PATH="${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/NoMouth.dat" ARCHIVE_INNER_EXTRACTOR='unar' archive_extraction 'ARCHIVE_INNER' rm "$ARCHIVE_INNER_PATH" CONTENT_PATH_DEFAULT_INNERARCHIVE='.' ;; esac ## Convert all file paths to lower case. tolower "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Include game data. content_inclusion_icons content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-if-not-us.sh0000755000000000000000000000603014471751340014000 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # If Not Us # send your bug reports to bugs@dotslashplay.it ### script_version=20241224.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='if-not-us' GAME_NAME='If Not Us' ARCHIVE_BASE_64BIT_0_NAME='if not us - Linux64.zip' ARCHIVE_BASE_64BIT_0_MD5='216690ba3a752f8a5548e38b933f7bc4' ARCHIVE_BASE_64BIT_0_SIZE='240000' ARCHIVE_BASE_64BIT_0_VERSION='1.0-itch' ARCHIVE_BASE_64BIT_0_URL='https://ub4q.itch.io/ifnotus' ARCHIVE_BASE_32BIT_0_NAME='if not us - Linux32.zip' ARCHIVE_BASE_32BIT_0_MD5='e18811fde9e2a096cca93ac990764255' ARCHIVE_BASE_32BIT_0_SIZE='240000' ARCHIVE_BASE_32BIT_0_VERSION='1.0-itch' ARCHIVE_BASE_32BIT_0_URL='https://ub4q.itch.io/ifnotus' CONTENT_PATH_DEFAULT='.' CONTENT_LIBS_BIN_RELATIVE_PATH='lib' CONTENT_LIBS_BIN_FILES=' libffmpeg.so libnode.so libnw.so' CONTENT_GAME_BIN_FILES=' chromedriver if not us minidump_stackwalk nacl_helper nacl_helper_bootstrap nacl_irt_x86_64.nexe nwjc payload pnacl snapshot_blob.bin' CONTENT_GAME_DATA_FILES=' Gallery locales icudtl.dat natives_blob.bin nw_100_percent.pak nw_200_percent.pak nw_material_100_percent.pak nw_material_200_percent.pak resources.pak' CONTENT_DOC_DATA_FILES=' credits.html' APP_MAIN_EXE='if not us' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH_32BIT='32' PKG_BIN_ARCH_64BIT='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libasound.so.2 libatk-1.0.so.0 libcairo.so.2 libc.so.6 libcups.so.2 libdbus-1.so.3 libdl.so.2 libexpat.so.1 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgconf-2.so.4 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libnspr4.so libnss3.so libnssutil3.so libpango-1.0.so.0 libpangocairo-1.0.so.0 libpthread.so.0 librt.so.1 libsmime3.so libstdc++.so.6 libX11.so.6 libXcomposite.so.1 libXcursor.so.1 libXdamage.so.1 libXext.so.6 libXfixes.so.3 libXi.so.6 libXrandr.so.2 libXrender.so.1 libXss.so.1 libXtst.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-indiana-jones-and-the-fate-of-atlantis.sh0000755000000000000000000000567314471751340021364 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2020 macaron set -o errexit ### # Indiana Jones and the Fate of Atlantis # send your bug reports to bugs@dotslashplay.it ### script_version=20250826.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='indiana-jones-and-the-fate-of-atlantis' GAME_NAME='Indiana Jones and the Fate of Atlantis' ARCHIVE_BASE_EN_1_NAME='indiana_jones_and_the_fate_of_atlantis_en_gog_2_20145.sh' ARCHIVE_BASE_EN_1_MD5='f7c093e148b001520809032095d7e8d7' ARCHIVE_BASE_EN_1_SIZE='390000' ARCHIVE_BASE_EN_1_VERSION='1.0-gog20145' ARCHIVE_BASE_EN_1_URL='https://www.gog.com/game/indiana_jones_and_the_fate_of_atlantis' ARCHIVE_BASE_FR_1_NAME='indiana_jones_and_the_fate_of_atlantis_fr_gog_2_20145.sh' ARCHIVE_BASE_FR_1_MD5='edbfebcf9daa23e329e41ccf9c89286c' ARCHIVE_BASE_FR_1_SIZE='240000' ARCHIVE_BASE_FR_1_VERSION='1.0-gog20145' ARCHIVE_BASE_FR_1_URL='https://www.gog.com/game/indiana_jones_and_the_fate_of_atlantis' ARCHIVE_BASE_EN_0_NAME='gog_indiana_jones_and_the_fate_of_atlantis_2.2.0.27.sh' ARCHIVE_BASE_EN_0_MD5='d56a5850b9d1d4f82eebc282ef7fb52b' ARCHIVE_BASE_EN_0_SIZE='250000' ARCHIVE_BASE_EN_0_VERSION='1.0-gog2.2.0.27' ARCHIVE_BASE_FR_0_NAME='gog_indiana_jones_and_the_fate_of_atlantis_french_2.2.0.27.sh' ARCHIVE_BASE_FR_0_MD5='0da3a8b3d0505c86a9f863c27debbca7' ARCHIVE_BASE_FR_0_SIZE='99000' ARCHIVE_BASE_FR_0_VERSION='1.0-gog2.2.0.27' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' atlantis.000 atlantis.001 monster.sou' CONTENT_DOC_MAIN_PATH='data/noarch/docs' CONTENT_DOC_MAIN_FILES=' *.pdf *.txt' APP_MAIN_SCUMMID='scumm:atlantis' APP_MAIN_ICON='../support/icon.png' PKG_MAIN_ID="$GAME_ID" PKG_MAIN_ID_EN="${PKG_MAIN_ID}-en" PKG_MAIN_ID_FR="${PKG_MAIN_ID}-fr" PKG_MAIN_PROVIDES=" $PKG_MAIN_ID" ## convmv is used to convert file paths to lower case. REQUIREMENTS_LIST=' convmv' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default ## Convert all file paths to lower case. tolower "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Include game data. content_inclusion_icons content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-indiana-jones-and-the-last-crusade.sh0000755000000000000000000000337214471751340020607 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 macaron # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Indiana Jones and the Last Crusade # send your bug reports to bugs@dotslashplay.it ### script_version=20240824.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='indiana-jones-and-the-last-crusade' GAME_NAME='Indiana Jones and the Last Crusade' ARCHIVE_BASE_0_NAME='indiana_jones_and_the_last_crusade_en_gog_2_20145.sh' ARCHIVE_BASE_0_MD5='b00d2c5498376718caad19db54265b29' ARCHIVE_BASE_0_SIZE='90000' ARCHIVE_BASE_0_VERSION='1.0-gog20145' ARCHIVE_BASE_0_URL='https://www.gog.com/game/indiana_jones_and_the_last_crusade' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' *.lfl' CONTENT_DOC_MAIN_PATH="${CONTENT_PATH_DEFAULT}/../docs" CONTENT_DOC_MAIN_FILES=' *.txt' APP_MAIN_SCUMMID='scumm:indy3' APP_MAIN_ICON='../support/icon.png' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-inner-space.sh0000755000000000000000000000400714471751340014365 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Inner Space # send your bug reports to bugs@dotslashplay.it ### script_version=20250513.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='inner-space' GAME_NAME='Inner Space' ## This game is no longer available as a DRM-free build from Humble Store, ## they now only sell Steam keys. ARCHIVE_BASE_0_NAME='InnerSpace_v1.2_Linux.zip' ARCHIVE_BASE_0_MD5='10f0c5247a1404f9f40ee8cd01ab9b66' ARCHIVE_BASE_0_SIZE='2000000' ARCHIVE_BASE_0_VERSION='1.2-humble180610' UNITY3D_NAME='InnerSpace' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='IS_180416_01_LIN_DRMFREE' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-inspector-waffles.sh0000755000000000000000000000353514471751340015621 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Inspector Waffles # send your bug reports to bugs@dotslashplay.it ### script_version=20240824.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='inspector-waffles' GAME_NAME='Inspector Waffles' ARCHIVE_BASE_0_NAME='setup_inspector_waffles_1.0.2.11_(50460).exe' ARCHIVE_BASE_0_MD5='ecdc6df3bc37b28c05f1bf7b24c3192f' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='740000' ARCHIVE_BASE_0_VERSION='1.0.2.11-gog50460' ARCHIVE_BASE_0_URL='https://www.gog.com/game/inspector_waffles' UNITY3D_NAME='inspector waffles' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Goloso Games/Inspector Waffles' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-irony-curtain.sh0000755000000000000000000000474414471751340014774 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Irony Curtain # send your bug reports to bugs@dotslashplay.it ### script_version=20240824.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='irony-curtain' GAME_NAME='Irony Curtain: From Matryoshka with Love' ARCHIVE_BASE_0_NAME='irony_curtain_from_matryoshka_with_love_1_0_5_30562.sh' ARCHIVE_BASE_0_MD5='ad996313d86b3f0dff3a8b8e0e8d0357' ARCHIVE_BASE_0_SIZE='2400000' ARCHIVE_BASE_0_VERSION='1.0.5-gog30562' ARCHIVE_BASE_0_URL='https://www.gog.com/game/irony_curtain_from_matryoshka_with_love' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN64_FILES=' IronyCurtain_amd64' CONTENT_GAME_BIN32_FILES=' IronyCurtain_i386' CONTENT_GAME_DATA_FILES=' linux game.json game.sparkconfig Icon.ico' APP_MAIN_EXE_BIN32='IronyCurtain_i386' APP_MAIN_EXE_BIN64='IronyCurtain_amd64' APP_MAIN_ICON='Icon.ico' PACKAGES_LIST=' PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libidn.so.11 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXext.so.6 libXinerama.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-jazzpunk.sh0000755000000000000000000000554214471751340014042 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Jazzpunk # send your bug reports to bugs@dotslashplay.it ### script_version=20250906.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='jazzpunk' GAME_NAME='Jazzpunk' ## This DRM-free build is no longer available for sale from Humble Bundle. ARCHIVE_BASE_0_NAME='Jazzpunk-Oct-30-2017-Linux.zip' ARCHIVE_BASE_0_MD5='e8ecf692ded05cea80701d417fa565c1' ARCHIVE_BASE_0_SIZE='2800000' ARCHIVE_BASE_0_VERSION='2017.10.30-humble1' ARCHIVE_BASE_MULTIARCH_0_NAME='Jazzpunk-July6-2014-Linux.zip' ARCHIVE_BASE_MULTIARCH_0_MD5='50ad5722cafe16dc384e83a4a4e19480' ARCHIVE_BASE_MULTIARCH_0_SIZE='1600000' ARCHIVE_BASE_MULTIARCH_0_VERSION='2014.07.06-humble1' ## Optional icons pack ARCHIVE_OPTIONAL_ICONS_NAME='jazzpunk_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5='d1fe700322ad08f9ac3dec1c29512f94' ARCHIVE_OPTIONAL_ICONS_URL='https://downloads.dotslashplay.it/games/jazzpunk' CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 16x16 32x32 48x48 128x128 256x256' UNITY3D_NAME='Jazzpunk' UNITY3D_PLUGINS=' ScreenSelector.so' ## The game does not start if the CSteamworks library is not provided. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='.' PACKAGES_LIST=' PKG_BIN32 PKG_DATA' PACKAGES_LIST_MULTIARCH=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_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 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" # 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. case "$(current_archive)" in ('ARCHIVE_BASE_MULTIARCH_'*) launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' ;; (*) launchers_generation ;; esac # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-jenny-leclue-detectivu.sh0000755000000000000000000000516614471751340016554 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Jenny LeClue - Detectivú # send your bug reports to bugs@dotslashplay.it ### script_version=20240825.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='jenny-leclue-detectivu' GAME_NAME='Jenny LeClue - Detectivú' ARCHIVE_BASE_1_NAME='jenny_leclue_detectivu_2_2_1_47129.sh' ARCHIVE_BASE_1_MD5='bb03cb3d7c6abf4be7060ed4cf126b2e' ARCHIVE_BASE_1_SIZE='2100000' ARCHIVE_BASE_1_VERSION='2.2.1-gog47129' ARCHIVE_BASE_1_URL='https://www.gog.com/game/jenny_leclue_detectivu' ARCHIVE_BASE_0_NAME='jenny_leclue_detectivu_2_1_1_42681.sh' ARCHIVE_BASE_0_MD5='21c681f13664bbb1259f4807cc388742' ARCHIVE_BASE_0_SIZE='1900000' ARCHIVE_BASE_0_VERSION='2.1.1-gog42681' UNITY3D_NAME='Jenny LeClue - Detectivu' CONTENT_PATH_DEFAULT='data/noarch/game' ## TODO: The shipped plugins to include should be listed using UNITY3D_PLUGINS CONTENT_GAME0_BIN64_FILES=" ${UNITY3D_NAME}/Plugins/x86_64" CONTENT_GAME0_BIN32_FILES=" ${UNITY3D_NAME}/Plugins/x86" PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" ## TODO: This dependencies list is probably not complete PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgdk_pixbuf-2.0.so.0 libgtk-x11-2.0.so.0 libgobject-2.0.so.0 libglib-2.0.so.0 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # 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-journey-of-a-roach.sh0000755000000000000000000000450514471751340015571 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Journey of a Roach # send your bug reports to bugs@dotslashplay.it ### script_version=20250520.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='journey-of-a-roach' GAME_NAME='Journey of a Roach' ARCHIVE_BASE_GOG_0_NAME='setup_journey_of_a_roach_2.1.0.5.exe' ARCHIVE_BASE_GOG_0_MD5='98b4f1c3efc2a789530ffc1f8f1c2b92' ARCHIVE_BASE_GOG_0_TYPE='innosetup' ARCHIVE_BASE_GOG_0_SIZE='1600000' ARCHIVE_BASE_GOG_0_VERSION='1.30.011-gog2.1.0.5' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/journey_of_a_roach' ARCHIVE_BASE_HUMBLE_0_NAME='JoaR_1.3_PC_Full_Multi_Daedalic_ESD.exe' ARCHIVE_BASE_HUMBLE_0_MD5='e349a84f7b8ac095b06edea521cade8f' ARCHIVE_BASE_HUMBLE_0_TYPE='innosetup' ARCHIVE_BASE_HUMBLE_0_SIZE='1600000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.30.011-humble160915' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/journey-of-a-roach' UNITY3D_NAME='joar' CONTENT_PATH_DEFAULT='app' CONTENT_DOC_DATA_RELATIVE_PATH='documents' CONTENT_DOC_DATA_FILES=' readme_??.txt' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Local Settings/Application Data/Daedalic Entertainment/Journey of a Roach' 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-julia-among-the-stars.sh0000755000000000000000000000662014471751340016277 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # J.U.L.I.A Among the Stars # send your bug reports to bugs@dotslashplay.it ### script_version=20240825.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='julia-among-the-stars' GAME_NAME='J.U.L.I.A Among the Stars' ARCHIVE_BASE_0_NAME='gog_j_u_l_i_a_among_the_stars_2.0.0.1.sh' ARCHIVE_BASE_0_MD5='58becebfaf5a3705fe3f34d5531298d3' ARCHIVE_BASE_0_SIZE='3100000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.1' ARCHIVE_BASE_0_URL='https://www.gog.com/game/julia_among_the_stars' ## Optional icons pack ARCHIVE_OPTIONAL_ICONS_NAME='julia-among-the-stars_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5='8e9e8ec585123eb3b6e5d31723b7909c' ARCHIVE_OPTIONAL_ICONS_URL='https://downloads.dotslashplay.it/resources/julia-among-the-stars/' CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 16x16 32x32 48x48 64x64 128x128' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_FILES=' libbass_fx.so libbass.so libHalf.so.6 libIex.so.6 libIlmImf.so.6 libIlmThread.so.6 libjasper.so.1 libjpeg.so.8 liblcms.so.1 libopenjpeg.so.2 libpng12.so.0 libQtCore.so.4 libQtGui.so.4 libraw.so libraw.so.9 libtheoraplayer.so.1' CONTENT_LIBS_BIN64_PATH="${CONTENT_PATH_DEFAULT}/lib64" CONTENT_LIBS_BIN64_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_LIBS_BIN32_PATH="${CONTENT_PATH_DEFAULT}/lib" CONTENT_LIBS_BIN32_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_GAME_BIN64_FILES=' julia64' CONTENT_GAME_BIN32_FILES=' julia' CONTENT_GAME_DATA_FILES=' DLC *.dcp' APP_MAIN_EXE_BIN64='julia64' APP_MAIN_EXE_BIN32='julia' APP_MAIN_OPTIONS='-ignore _sd' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libaudio.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreeimage.so.3 libfreetype.so.6 libgcc_s.so.1 libglib-2.0.so.0 libgobject-2.0.so.0 libgomp.so.1 libICE.so.6 liblcms2.so.2 libm.so.6 libogg.so.0 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libSM.so.6 libstdc++.so.6 libtheoradec.so.1 libvorbis.so.0 libX11.so.6 libXext.so.6 libXi.so.6 libXrender.so.1 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-kentucky-route-zero.sh0000755000000000000000000000610514471751340016130 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Kentucky Route Zero # send your bug reports to bugs@dotslashplay.it ### script_version=20241224.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='kentucky-route-zero' GAME_NAME='Kentucky Route Zero' ARCHIVE_BASE_0_NAME='KentuckyRouteZero_Linux_v27.zip' ARCHIVE_BASE_0_MD5='19cb27f6aa0cd98f9122ae4240cdd2a1' ARCHIVE_BASE_0_SIZE='1786819' ARCHIVE_BASE_0_VERSION='27-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/kentucky-route-zero' ARCHIVE_BASE_MULTIARCH_0_NAME='KentuckyRouteZero_Linux_v17.zip' ARCHIVE_BASE_MULTIARCH_0_MD5='36c7b89c223d5c77d4d44b7ccf72f241' ARCHIVE_BASE_MULTIARCH_0_SIZE='690000' ARCHIVE_BASE_MULTIARCH_0_VERSION='17-humble1' UNITY3D_NAME='KentuckyRouteZero' UNITY3D_PLUGINS_MULTIARCH=' ScreenSelector.so' CONTENT_PATH_DEFAULT='KentuckyRouteZero' CONTENT_PATH_DEFAULT_MULTIARCH='.' CONTENT_DOC_DATA_FILES=' README.txt RELEASE_NOTES.txt' FAKE_HOME_PERSISTENT_DIRECTORIES_MULTIARCH=' Documents/KentuckyRouteZero' PACKAGES_LIST=' PKG_BIN PKG_DATA' PACKAGES_LIST_MULTIARCH=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1' PKG_BIN_DEPENDENCIES_LIBRARIES_MULTIARCH=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 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_MULTIARCH="$PKG_BIN_DEPENDENCIES_LIBRARIES_MULTIARCH" PKG_BIN32_DEPENDENCIES_LIBRARIES_MULTIARCH="$PKG_BIN_DEPENDENCIES_LIBRARIES_MULTIARCH" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers case "$(current_archive)" in ('ARCHIVE_BASE_MULTIARCH_'*) launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' ;; (*) launchers_generation 'PKG_BIN' ;; esac # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-kona.sh0000755000000000000000000000503014471751340013106 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Kona # send your bug reports to bugs@dotslashplay.it ### script_version=20240509.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='kona' GAME_NAME='Kona' ARCHIVE_BASE_0_NAME='gog_kona_2.8.0.9.sh' ARCHIVE_BASE_0_MD5='62e924fb4b9cafcb34c58b2fb66bc9f7' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='4400000' ARCHIVE_BASE_0_VERSION='2017.07.07-gog2.8.0.9' ARCHIVE_BASE_0_URL='https://www.gog.com/game/kona_day_one' UNITY3D_NAME='Kona' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' ## Force the game to run in a window on first launch, to prevent display problems. ## TODO: We might have to force windowed mode on every launch, not only the first one. APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' # Force the game to run in a window on first launch, to prevent display problems config_file="$HOME/.config/unity3d/Parabole/Kona/prefs" if [ ! -e "$config_file" ]; then mkdir --parents "$(dirname "$config_file")" cat > "$config_file" <<- EOF 0 0 EOF fi' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-kraken-academy.sh0000755000000000000000000000367214471751340015044 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Kraken Academy # send your bug reports to bugs@dotslashplay.it ### script_version=20250906.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='kraken-academy' GAME_NAME='Kraken Academy' ARCHIVE_BASE_0_NAME='kraken_academy_1_0_12_1_51227.sh' ARCHIVE_BASE_0_MD5='8f5a82e43e81913a0181029d968e13f5' ARCHIVE_BASE_0_SIZE='330000' ARCHIVE_BASE_0_VERSION='1.0.12.1-gog51227' ARCHIVE_BASE_0_URL='https://www.gog.com/game/kraken_academy' UNITY3D_NAME='Kraken Academy' UNITY3D_PLUGINS=' libfmodstudio.so libresonanceaudio.so' CONTENT_PATH_DEFAULT='data/noarch/game' USER_PERSISTENT_DIRECTORIES=" ${UNITY3D_NAME}_Data/StreamingAssets/Saves" PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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-lacuna-a-scifi-noir-adventure.sh0000755000000000000000000000361014471751340017674 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Lacuna – A Sci-Fi Noir Adventure # send your bug reports to bugs@dotslashplay.it ### script_version=20241201.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='lacuna-a-scifi-noir-adventure' GAME_NAME='Lacuna – A Sci-Fi Noir Adventure' ARCHIVE_BASE_0_NAME='setup_lacuna__a_sci-fi_noir_adventure_1.3.1.1_(56313).exe' ARCHIVE_BASE_0_MD5='7607b7e96cc2db16eb3a35cb4d6bdb91' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2000000' ARCHIVE_BASE_0_VERSION='1.3.1.1-gog56313' ARCHIVE_BASE_0_URL='https://www.gog.com/game/lacuna_a_scifi_noir_adventure' UNITY3D_NAME='lacuna' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/DigiTales Interactive/Lacuna' 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-lamplight-city.sh0000755000000000000000000000313314471751340015107 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Lamplight City # send your bug reports to bugs@dotslashplay.it ### script_version=20240825.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='lamplight-city' GAME_NAME='Lamplight City' ARCHIVE_BASE_0_NAME='lamplight_city_1_10_51705.sh' ARCHIVE_BASE_0_MD5='f9fc7cf3f123e79628a570222e08a054' ARCHIVE_BASE_0_SIZE='2100000' ARCHIVE_BASE_0_VERSION='1.10-gog51705' ARCHIVE_BASE_0_URL='https://www.gog.com/game/lamplight_city' CONTENT_PATH_DEFAULT='data/noarch/game/data' CONTENT_GAME_MAIN_FILES=' sync *.ags *.cfg *.tra *.vox' CONTENT_DOC_MAIN_FILES=' licenses' APP_MAIN_SCUMMID='ags:lamplightcity' APP_MAIN_ICON='../../support/icon.png' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-last-day-of-june.sh0000755000000000000000000000367614471751340015253 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Last Day of June # send your bug reports to bugs@dotslashplay.it ### script_version=20250513.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='last-day-of-june' GAME_NAME='Last Day of June' ARCHIVE_BASE_0_NAME='setup_last_day_of_june_gog-1_(19137).exe' ARCHIVE_BASE_0_MD5='0f86fdc764cea5ccdd6087226d225e43' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='3100000' ARCHIVE_BASE_0_VERSION='1.0-gog19137' ARCHIVE_BASE_0_URL='https://www.gog.com/game/last_day_of_june' UNITY3D_NAME='car_20170817_23824_fullgame' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Ovosonico/Last Day of June' 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-later-daters.sh0000755000000000000000000000341214471751340014547 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Later Daters # send your bug reports to bugs@dotslashplay.it ### script_version=20240911.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='later-daters' GAME_NAME='Later Daters' ARCHIVE_BASE_0_NAME='setup_later_daters_1.2_(49074).exe' ARCHIVE_BASE_0_MD5='7aa7575aa636cbe4bd5c8687eb999e78' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1000000' ARCHIVE_BASE_0_VERSION='1.2-gog49074' ARCHIVE_BASE_0_URL='https://www.gog.com/game/later_daters' UNITY3D_NAME='later daters' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Bloom Digital/Later Daters' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-layers-of-fear.sh0000755000000000000000000000431414471751340014776 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Layers of Fear # send your bug reports to bugs@dotslashplay.it ### script_version=20250513.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='layers-of-fear' GAME_NAME='Layers of Fear' ARCHIVE_BASE_1_NAME='gog_layers_of_fear_2.3.0.5.sh' ARCHIVE_BASE_1_MD5='faf72f04f53be0523053eb7ba0f2bb05' ARCHIVE_BASE_1_SIZE='4000000' ARCHIVE_BASE_1_VERSION='1.1.0-gog2.3.0.5' ARCHIVE_BASE_1_URL='https://www.gog.com/game/layers_of_fear' ARCHIVE_BASE_0_NAME='gog_layers_of_fear_2.3.0.4.sh' ARCHIVE_BASE_0_MD5='4bc354869662ee68938c8955f08dd276' ARCHIVE_BASE_0_SIZE='4000000' ARCHIVE_BASE_0_VERSION='1.1.0-gog2.3.0.4' UNITY3D_NAME='LOF' UNITY3D_PLUGINS=' libMouseCursorPlugin.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_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 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # 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-leisure-suit-larry.sh0000755000000000000000000001511514471751340015744 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2021 Anna Lea set -o errexit ### # Leisure Suit Larry series: # - Leisure Suit Larry 1 # - Leisure Suit Larry 2 # - Leisure Suit Larry 3 # - Leisure Suit Larry 5 # - Leisure Suit Larry 6 # - Leisure Suit Larry 7 # send your bug reports to bugs@dotslashplay.it ### script_version=20250826.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID_LSL1='leisure-suit-larry-1' GAME_NAME_LSL1='Leisure Suit Larry 1: In the Land of the Lounge Lizards' GAME_ID_LSL2='leisure-suit-larry-2' GAME_NAME_LSL2='Leisure Suit Larry 2: Looking For Love (In Several Wrong Places)' GAME_ID_LSL3='leisure-suit-larry-3' GAME_NAME_LSL3='Leisure Suit Larry 3: Passionate Patti in Pursuit of the Pulsating Pectorals!' GAME_ID_LSL5='leisure-suit-larry-5' GAME_NAME_LSL5='Leisure Suit Larry 5: Passionate Patti Does a Little Undercover Work!' GAME_ID_LSL6='leisure-suit-larry-6' GAME_NAME_LSL6='Leisure Suit Larry 6: Shape Up Or Slip Out' GAME_ID_LSL7='leisure-suit-larry-7' GAME_NAME_LSL7='Leisure Suit Larry 7: Love for Sail!' ARCHIVE_BASE_LSL1_AGI_0_NAME='leisure_suit_larry_en_gog_2_20270.sh' ARCHIVE_BASE_LSL1_AGI_0_MD5='bfd706b6e10333f538e30df3ccc572a4' ARCHIVE_BASE_LSL1_AGI_0_SIZE='94000' ARCHIVE_BASE_LSL1_AGI_0_VERSION='2-gog20270' ARCHIVE_BASE_LSL1_AGI_0_URL='https://www.gog.com/game/leisure_suit_larry' ARCHIVE_BASE_LSL1_SCI_0_NAME='leisure_suit_larry_vga_en_gog_2_20240.sh' ARCHIVE_BASE_LSL1_SCI_0_MD5='40b241062ea3945e20e2d3c8fc811e0c' ARCHIVE_BASE_LSL1_SCI_0_SIZE='97000' ARCHIVE_BASE_LSL1_SCI_0_VERSION='2-gog20240' ARCHIVE_BASE_LSL1_SCI_0_URL='https://www.gog.com/game/leisure_suit_larry' ARCHIVE_BASE_LSL2_0_NAME='leisure_suit_larry_2_en_gog_2_20240.sh' ARCHIVE_BASE_LSL2_0_MD5='087013fa8383ffa303dda015c5ea6249' ARCHIVE_BASE_LSL2_0_SIZE='96000' ARCHIVE_BASE_LSL2_0_VERSION='2-gog20240' ARCHIVE_BASE_LSL2_0_URL='https://www.gog.com/game/leisure_suit_larry' ARCHIVE_BASE_LSL3_0_NAME='leisure_suit_larry_3_en_gog_2_20240.sh' ARCHIVE_BASE_LSL3_0_MD5='a0c5e4997f682e3a6c91a19a41a5bdac' ARCHIVE_BASE_LSL3_0_SIZE='99000' ARCHIVE_BASE_LSL3_0_VERSION='1.021-gog20240' ARCHIVE_BASE_LSL3_0_URL='https://www.gog.com/game/leisure_suit_larry' ARCHIVE_BASE_LSL5_0_NAME='leisure_suit_larry_5_en_gog_2_20240.sh' ARCHIVE_BASE_LSL5_0_MD5='534a263fffc8cd919e38ae92e131ec22' ARCHIVE_BASE_LSL5_0_SIZE='110000' ARCHIVE_BASE_LSL5_0_VERSION='1.000-gog20240' ARCHIVE_BASE_LSL5_0_URL='https://www.gog.com/game/leisure_suit_larry' ARCHIVE_BASE_LSL6_SVGA_0_NAME='gog_leisure_suit_larry_6_2.0.0.1.sh' ARCHIVE_BASE_LSL6_SVGA_0_MD5='09f667d1230974bd6321bde648de687b' ARCHIVE_BASE_LSL6_SVGA_0_SIZE='550000' ARCHIVE_BASE_LSL6_SVGA_0_VERSION='1.000.000-gog2.0.0.1' ARCHIVE_BASE_LSL6_SVGA_0_URL='https://www.gog.com/game/leisure_suit_larry' ARCHIVE_BASE_LSL6_VGA_0_NAME='leisure_suit_larry_6_vga_en_gog_2_20240.sh' ARCHIVE_BASE_LSL6_VGA_0_MD5='d5e1973d126bc7750550729cbec4379f' ARCHIVE_BASE_LSL6_VGA_0_SIZE='610000' ARCHIVE_BASE_LSL6_VGA_0_VERSION='1.000.000-gog20240' ARCHIVE_BASE_LSL6_VGA_0_URL='https://www.gog.com/game/leisure_suit_larry' ARCHIVE_BASE_LSL7_EN_0_NAME='leisure_suit_larry_love_for_sail_en_gog_1_20744.sh' ARCHIVE_BASE_LSL7_EN_0_MD5='38862663d3dd9298acdf3fcc5f4bd88d' ARCHIVE_BASE_LSL7_EN_0_SIZE='680000' ARCHIVE_BASE_LSL7_EN_0_VERSION='1.0-gog20744' ARCHIVE_BASE_LSL7_EN_0_URL='https://www.gog.com/game/leisure_suit_larry_love_for_sail' ARCHIVE_BASE_LSL7_FR_0_NAME='leisure_suit_larry_love_for_sail_fr_gog_1_20744.sh' ARCHIVE_BASE_LSL7_FR_0_MD5='1386fa634b48ecb5af83fdab12e99c2d' ARCHIVE_BASE_LSL7_FR_0_SIZE='630000' ARCHIVE_BASE_LSL7_FR_0_VERSION='1.0-gog20744' ARCHIVE_BASE_LSL7_FR_0_URL='https://www.gog.com/game/leisure_suit_larry_love_for_sail' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES_LSL1_AGI=' object words.tok vol.* *dir' CONTENT_GAME_MAIN_FILES_LSL1_SCI=' version resource.* *.bat *.drv *.exe *.hlp *.txt' CONTENT_GAME_MAIN_FILES_LSL2=' lsl2.qa resource.* *.drv *.exe' CONTENT_GAME_MAIN_FILES_LSL3=' install.txt readme.txt lsl3sg.* resource.* *.com *.drv *.exe *.hlp *.inf *.pif *.scr' CONTENT_GAME_MAIN_FILES_LSL5=' lsl5sg.000 lsl5sg.dir scidhuv.exe 467.snd interp.txt version resource.* *.drv *.scr *.ing *.tex' CONTENT_GAME_MAIN_FILES_LSL6=' aud patches sfx readme version resource.* *.com *.drv *.err *.exe *.hlp *.scr *.txt' CONTENT_GAME_MAIN_FILES_LSL7=' drivers movie music patches version resource.??? *.000 *.bmp *.csc *.dll *.err *.exe *.inf' CONTENT_DOC_MAIN_PATH='data/noarch/docs' CONTENT_DOC_MAIN_FILES=' *.pdf' CONTENT_DOC_MAIN_FILES_LSL1=' lsl1 answers.txt lsl1 vga answers.txt *.pdf' CONTENT_DOC0_MAIN_FILES_LSL3=' lsl3 answers.txt' CONTENT_DOC0_MAIN_FILES_LSL7=' manual.pdf' APP_MAIN_SCUMMID_LSL1_AGI='agi:lsl1' APP_MAIN_SCUMMID_LSL1_SCI='sci:lsl1sci' APP_MAIN_SCUMMID_LSL2='sci:lsl2' APP_MAIN_SCUMMID_LSL3='sci:lsl3' APP_MAIN_SCUMMID_LSL5='sci:lsl5' APP_MAIN_SCUMMID_LSL6_SVGA='sci:lsl6hires' APP_MAIN_SCUMMID_LSL6_VGA='sci:lsl6' APP_MAIN_SCUMMID_LSL7='sci:lsl7' APP_MAIN_ICON='../support/icon.png' APP_MAIN_ICON_LSL7='lsl7.ico' PKG_MAIN_ID_LSL1="$GAME_ID_LSL1" PKG_MAIN_ID_LSL6="$GAME_ID_LSL6" PKG_MAIN_ID_LSL7="$GAME_ID_LSL7" PKG_MAIN_PROVIDES_LSL1=" $PKG_MAIN_ID_LSL1" PKG_MAIN_PROVIDES_LSL6=" $PKG_MAIN_ID_LSL6" PKG_MAIN_PROVIDES_LSL7=" $PKG_MAIN_ID_LSL7" PKG_MAIN_ID_LSL1_AGI="${PKG_MAIN_ID_LSL1}-agi" PKG_MAIN_ID_LSL1_SCI="${PKG_MAIN_ID_LSL1}-sci" PKG_MAIN_ID_LSL6_SVGA="${PKG_MAIN_ID_LSL6}-svga" PKG_MAIN_ID_LSL6_VGA="${PKG_MAIN_ID_LSL6}-vga" PKG_MAIN_ID_LSL7_EN="${PKG_MAIN_ID_LSL7}-en" PKG_MAIN_ID_LSL7_FR="${PKG_MAIN_ID_LSL7}-fr" ## convmv is used to convert file paths to lower case. REQUIREMENTS_LIST=' convmv' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default ## Convert all file paths to lower case. tolower "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Include game data. content_inclusion_icons content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-letters-a-written-adventure.sh0000755000000000000000000000344414471751340017552 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Letters - a written adventure # send your bug reports to bugs@dotslashplay.it ### script_version=20240812.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='letters-a-written-adventure' GAME_NAME='Letters - a written adventure' ARCHIVE_BASE_0_NAME='setup_letters_-_a_written_adventure_1.0_(53554).exe' ARCHIVE_BASE_0_MD5='5dd5309027bee8e6721d0553e17579da' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='690000' ARCHIVE_BASE_0_VERSION='1.0-gog53554' ARCHIVE_BASE_0_URL='https://www.gog.com/game/letters_a_written_adventure' UNITY3D_NAME='letters' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/5amGames/Letters' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-liar-liar.sh0000755000000000000000000000501314471751340014033 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Liar Liar series: # - Liar Liar 1 # - Liar Liar 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20240428.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID_EPISODE1='liar-liar-1' GAME_NAME_EPISODE1='Liar Liar' GAME_ID_EPISODE2='liar-liar-2' GAME_NAME_EPISODE2='Liar Liar 2: Pants on Fire' # Archives ## Liar Liar (episode 1) ARCHIVE_BASE_EPISODE1_0_NAME='liarliar1.0-all.zip' ARCHIVE_BASE_EPISODE1_0_MD5='192d7cef446bb6d9ce01e3678889bbbd' ARCHIVE_BASE_EPISODE1_0_SIZE='96000' ARCHIVE_BASE_EPISODE1_0_VERSION='1.0-itch' ARCHIVE_BASE_EPISODE1_0_URL='https://tokimekiwaku.itch.io/liar-liar' ## Liar Liar 2 ARCHIVE_BASE_EPISODE2_0_NAME='liarliar2-all.zip' ARCHIVE_BASE_EPISODE2_0_MD5='6450f265d59ece46331070a2e0a14121' ARCHIVE_BASE_EPISODE2_0_SIZE='110000' ARCHIVE_BASE_EPISODE2_0_VERSION='1.0-itch' ARCHIVE_BASE_EPISODE2_0_URL='https://tokimekiwaku.itch.io/liar-liar-2' CONTENT_PATH_DEFAULT_EPISODE1='liarliar1.0-all/game' CONTENT_PATH_DEFAULT_EPISODE2='liarliar2-all/game' CONTENT_GAME_MAIN_FILES=' scenes *.mp3 *.png *.rpy *.rpyb *.rpyc *.sai *.wav' CONTENT_DOC_MAIN_PATH_EPISODE2="${CONTENT_PATH_DEFAULT_EPISODE2}/.." CONTENT_DOC_MAIN_FILES=' README.html' APP_MAIN_TYPE='renpy' APP_MAIN_ICON_EPISODE1='../liar liar.exe' APP_MAIN_ICON_EPISODE2='../liar liar 2.exe' ## Ensure easy upgrades from packages generated with pre-20240428.1 game scripts. PKG_MAIN_PROVIDES_EPISODE1="${PKG_MAIN_PROVIDES_EPISODE1:-} liar-liar liar-liar-data" PKG_MAIN_PROVIDES_EPISODE2="${PKG_MAIN_PROVIDES_EPISODE2:-} liar-liar-2-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-lieve-oma.sh0000755000000000000000000000433514471751340014043 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Lieve Oma # send your bug reports to bugs@dotslashplay.it ### script_version=20250906.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='lieve-oma' GAME_NAME='Lieve Oma' ARCHIVE_BASE_0_NAME='Lieve Oma Linux Universal.zip' ARCHIVE_BASE_0_MD5='b33c1f38503a221ce82139a5435c3577' ARCHIVE_BASE_0_SIZE='770000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://vltmn.itch.io/lieve-oma' UNITY3D_NAME='Lieve Oma' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam libraries can be dropped. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='Lieve Oma Linux Universal' ## Yes, .png, not a typo. Don’t ask. CONTENT_DOC_DATA_FILES=' README.png' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2 libz.so.1' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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-life-is-strange.sh0000755000000000000000000001032714471751340015154 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 BetaRays # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Life is Strange # send your bug reports to bugs@dotslashplay.it ### script_version=20240911.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='life-is-strange' GAME_NAME='Life is Strange' ARCHIVE_BASE_0_NAME='setup_life_is_strange_complete_season_1.0.0.397609_(38128).exe' ARCHIVE_BASE_0_MD5='11f65230b6545f95707824b6405da34f' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_life_is_strange_complete_season_1.0.0.397609_(38128)-1.bin' ARCHIVE_BASE_0_PART1_MD5='1ab68855e24ceebc9c138ad73ccccb6e' ARCHIVE_BASE_0_PART2_NAME='setup_life_is_strange_complete_season_1.0.0.397609_(38128)-2.bin' ARCHIVE_BASE_0_PART2_MD5='e385f4858df5bcb30716ec1a8727480e' ARCHIVE_BASE_0_PART3_NAME='setup_life_is_strange_complete_season_1.0.0.397609_(38128)-3.bin' ARCHIVE_BASE_0_PART3_MD5='c8613d8029c6a3b65d796fc09a9a5974' ARCHIVE_BASE_0_PART4_NAME='setup_life_is_strange_complete_season_1.0.0.397609_(38128)-4.bin' ARCHIVE_BASE_0_PART4_MD5='f7c905b4f21dc34e58ab8b68a8e96f48' ARCHIVE_BASE_0_SIZE='15000000' ARCHIVE_BASE_0_VERSION='1.0.0.397609-gog38128' ARCHIVE_BASE_0_URL='https://www.gog.com/game/life_is_strange_complete_season' ## Patched library, working around a crash on launch ## cf. https://www.gog.com/forum/life_is_strange_series/wont_launch_possible_fix/post32 ARCHIVE_REQUIRED_FIXED_DLL_NAME='common.dll' ARCHIVE_REQUIRED_FIXED_DLL_MD5='4aea8c8d98053a925d9b41e604567889' ARCHIVE_REQUIRED_FIXED_DLL_URL='https://downloads.dotslashplay.it/games/life-is-strange/' UNREALENGINE4_NAME='lifeisstrangegame' CONTENT_PATH_DEFAULT='.' CONTENT_GAME0_BIN_PATH='app' CONTENT_GAME0_BIN_PATH=' engine' CONTENT_GAME_EPISODE2_FILES=' lifeisstrangegame/build/pcconsole/dlc/episode02' CONTENT_GAME_EPISODE3_FILES=' lifeisstrangegame/build/pcconsole/dlc/episode03' CONTENT_GAME_EPISODE4_FILES=' lifeisstrangegame/build/pcconsole/dlc/episode04' CONTENT_GAME_EPISODE5_FILES=' lifeisstrangegame/build/pcconsole/dlc/episode05' CONTENT_GAME_EXTRA_FILES=' lifeisstrangegame/build/pcconsole/dlc/extra01' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/My Games/Life is Strange' APP_MAIN_EXE='binaries/win32/lifeisstrange.exe' PACKAGES_LIST=' PKG_BIN PKG_EPISODE2 PKG_EPISODE3 PKG_EPISODE4 PKG_EPISODE5 PKG_EXTRA PKG_DATA' PKG_BIN_ID="$GAME_ID" PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_EPISODE2_ID="${GAME_ID}-episode-2" PKG_EPISODE2_DESCRIPTION='Episode 2' PKG_EPISODE2_DEPENDENCIES_SIBLINGS=' PKG_BIN' PKG_EPISODE3_ID="${GAME_ID}-episode-3" PKG_EPISODE3_DESCRIPTION='Episode 3' PKG_EPISODE3_DEPENDENCIES_SIBLINGS=' PKG_BIN' PKG_EPISODE4_ID="${GAME_ID}-episode-4" PKG_EPISODE4_DESCRIPTION='Episode 4' PKG_EPISODE4_DEPENDENCIES_SIBLINGS=' PKG_BIN' PKG_EPISODE5_ID="${GAME_ID}-episode-5" PKG_EPISODE5_DESCRIPTION='Episode 5' PKG_EPISODE5_DEPENDENCIES_SIBLINGS=' PKG_BIN' PKG_EXTRA_ID="${GAME_ID}-extra" PKG_EXTRA_DESCRIPTION='Extra' PKG_EXTRA_DEPENDENCIES_SIBLINGS=' PKG_BIN' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Check for the presence of extra required archives archive_initialize_required \ 'ARCHIVE_FIXED_DLL' \ 'ARCHIVE_REQUIRED_FIXED_DLL' # Extract game data archive_extraction_default # Include game icons content_inclusion_icons 'PKG_DATA' content_inclusion_default install -D --mode=644 \ "$(archive_path 'ARCHIVE_FIXED_DLL')" \ "$(package_path 'PKG_BIN')$(path_game_data)/binaries/win32/common.dll" # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-lilly-looking-through.sh0000755000000000000000000000477014471751340016433 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Lilly Looking Through # send your bug reports to bugs@dotslashplay.it ### script_version=20250228.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='lilly-looking-through' GAME_NAME='Lilly Looking Through' ARCHIVE_BASE_0_NAME='setup_lilly_looking_through_1.1.50_(21178).exe' ARCHIVE_BASE_0_MD5='a3318d6a5a5abfe946293c9e745f1fd9' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='400000' ARCHIVE_BASE_0_VERSION='1.1.50-gog21178' ARCHIVE_BASE_0_URL='https://www.gog.com/game/lilly_looking_through' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' adobe air lillylookingthrough.exe lilly.swf' CONTENT_GAME_DATA_FILES=' meta-inf mimetype pkmedia' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/com.geetagames.LillyLookingThrough' APP_MAIN_EXE='lillylookingthrough.exe' APP_MAIN_ICON='app/goggame-1207659903.ico' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # icotool is used for icon .ico → .png conversion REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} icotool" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data ## Work around "insufficient image data" error with convert from imagemagick ## TODO: Check if it is still required with current builds of imagemagick icon_extract_png_from_ico() { local icon destination icon="$1" destination="$2" local icon_file icon_file=$(icon_full_path "$icon") icotool --extract --output="$destination" "$icon_file" } content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up 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-little-misfortune.sh0000755000000000000000000000402014471751340015642 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Little Misfortune # send your bug reports to bugs@dotslashplay.it ### script_version=20240825.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='little-misfortune' GAME_NAME='Little Misfortune' ARCHIVE_BASE_0_NAME='little_misfortune_1_0_32530.sh' ARCHIVE_BASE_0_MD5='30f94ffdab5d210d3782c9e348f6f36b' ARCHIVE_BASE_0_SIZE='6330029' ARCHIVE_BASE_0_VERSION='1.0-gog32530' ARCHIVE_BASE_0_URL='https://www.gog.com/game/little_misfortune' UNITY3D_NAME='Little Misfortune' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam library is required. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libsteam_api.so" CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-location-withheld.sh0000755000000000000000000000352114471751340015577 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Location Withheld # send your bug reports to bugs@dotslashplay.it ### script_version=20250906.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='location-withheld' GAME_NAME='Location Withheld' ARCHIVE_BASE_0_NAME='Location Withheld.rar' ARCHIVE_BASE_0_MD5='c3e0eb2553b736cdf29aa9a9455b3f43' ARCHIVE_BASE_0_SIZE='2100000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://bryce-bucher.itch.io/location-withheld' UNITY3D_NAME='Location Withheld' CONTENT_PATH_DEFAULT='.' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Bryce Bucher/Location Withheld' 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-lonesome-village.sh0000755000000000000000000000347114471751340015427 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Lonesome Village # send your bug reports to bugs@dotslashplay.it ### script_version=20250906.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='lonesome-village' GAME_NAME='Lonesome Village' ARCHIVE_BASE_0_NAME='setup_lonesome_village_1.0_(59798).exe' ARCHIVE_BASE_0_MD5='85470a092929916f3ed0917b5eca2f41' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='4469668' ARCHIVE_BASE_0_VERSION='1.0.1.6-gog59798' ARCHIVE_BASE_0_URL='https://www.gog.com/game/lonesome_village' UNITY3D_NAME='lonesome village' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Ogre Pixel/Lonesome Village' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_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-long-live-the-queen.sh0000755000000000000000000001163014471751340015746 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Long Live the Queen # send your bug reports to bugs@dotslashplay.it ### script_version=20250521.3 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='long-live-the-queen' GAME_NAME='Long Live the Queen' ARCHIVE_BASE_0_NAME='gog_long_live_the_queen_2.4.0.11.sh' ARCHIVE_BASE_0_MD5='654ccbbdde2071c4f13b5f80378582c2' ARCHIVE_BASE_0_SIZE='63000' ARCHIVE_BASE_0_VERSION='1.3.23.4-gog2.4.0.11' ARCHIVE_BASE_0_URL='https://www.gog.com/game/long_live_the_queen' CONTENT_PATH_DEFAULT='data/noarch/game' ## TODO: Check if all these libraries are actually used. CONTENT_LIBS_BIN_SHIPPED_RELATIVE_PATH='lib/linux-x86/lib' CONTENT_LIBS_BIN_SHIPPED_FILES=' libavcodec.so.52 libavformat.so.52 libavutil.so.50 libGLEW.so.1.5 libpython2.6.so.1.0 libswscale.so.0' ## TODO: The system-provided font should be used instead. CONTENT_FONTS_MAIN_RELATIVE_PATH='game' CONTENT_FONTS_MAIN_FILES=' DejaVuSans-Oblique.ttf' CONTENT_GAME_MAIN_FILES=' game/achievements game/bonus game/Crypto game/endings game/heads game/map game/music game/princess game/sidebar game/stars game/tutorial game/ui game/game_version game/llq.rpa game/bytecode.rpyb game/*.png game/*.py game/*.rpyc' CONTENT_GAME_BIN_SHIPPED_FILES=' common renpy LongLiveTheQueen.py lib/linux-x86/lib/python2.6 lib/linux-x86/python.real' CONTENT_DOC_MAIN_FILES=' LICENSE.txt' APP_MAIN_TYPE_BIN_RENPY='renpy' ## Support for the shipped builds of Ren'Py and Python 2.6 is included, ## because current day Ren'Py fails to run the game, with the following error: ## Full traceback: ## File "/usr/share/games/renpy/renpy/bootstrap.py", line 359, in bootstrap ## renpy.main.main() ## File "/usr/share/games/renpy/renpy/main.py", line 474, in main ## renpy.game.script.load_script() # sets renpy.game.script. ## File "/usr/share/games/renpy/renpy/script.py", line 359, in load_script ## self.load_appropriate_file(".rpyc", [ "_ren.py", ".rpy" ], dir, fn, initcode) ## File "/usr/share/games/renpy/renpy/script.py", line 934, in load_appropriate_file ## raise Exception("Could not load file %s." % lastfn) # type: ignore ## Exception: Could not load file /usr/share/games/long-live-the-queen/dossiers.rpyc. APP_MAIN_EXE_BIN_SHIPPED='lib/linux-x86/python.real' APP_MAIN_OPTIONS_BIN_SHIPPED='-OO LongLiveTheQueen.py' APP_MAIN_ICON='game/achievements/coronation_64x64.png' PACKAGES_LIST=' PKG_MAIN PKG_BIN_RENPY PKG_BIN_SHIPPED' PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_BIN' ## Ensure easy upgrades from pre-20250513.1 packages. PKG_MAIN_PROVIDES="${PKG_MAIN_PROVIDES:-} long-live-the-queen-data" PKG_BIN_ID="${GAME_ID}-bin" PKG_BIN_PROVIDES=" $PKG_BIN_ID" PKG_BIN_RENPY_ID="${PKG_BIN_ID}-renpy" PKG_BIN_RENPY_PROVIDES="$PKG_BIN_PROVIDES" PKG_BIN_RENPY_DESCRIPTION="System-provided Ren'Py" PKG_BIN_SHIPPED_ID="${PKG_BIN_ID}-shipped" PKG_BIN_SHIPPED_PROVIDES="$PKG_BIN_PROVIDES" PKG_BIN_SHIPPED_ARCH='32' PKG_BIN_SHIPPED_DESCRIPTION="Shipped Ren'Py and Python 2.6" PKG_BIN_SHIPPED_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libfreetype.so.6 libfribidi.so.0 libm.so.6 libpthread.so.0 libSDL-1.2.so.0 libSDL_ttf-2.0.so.0 libutil.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default ## Link fonts to the game directory, or the engine fails to find them. fonts_source=$(path_fonts_ttf) fonts_destination="$(package_path 'PKG_MAIN')$(path_game_data)/game" ln --symbolic "${fonts_source}/DejaVuSans-Oblique.ttf" "$fonts_destination" # Write launchers ## The game data is installed in an unusual path. renpy_exec_line() { cat <<- 'EOF' renpy game EOF } launchers_generation 'PKG_BIN_RENPY' launchers_generation 'PKG_BIN_SHIPPED' # Build packages packages_generation case "$(messages_language)" in ('fr') message='Utilisation des binaires fournis par %s :' bin_system='le système' bin_shipped='les développeurs' ;; ('en'|*) message='Using binaries provided by %s:' bin_system='the system' bin_shipped='the developers' ;; esac printf '\n' printf "$message" "$bin_system" print_instructions 'PKG_MAIN' 'PKG_BIN_RENPY' printf "$message" "$bin_shipped" print_instructions 'PKG_MAIN' 'PKG_BIN_SHIPPED' # Clean up working_directory_cleanup exit 0 games/play-loom.sh0000755000000000000000000000366114471751340013134 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2020 macaron # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Loom # send your bug reports to bugs@dotslashplay.it ### script_version=20250826.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='loom' GAME_NAME='Loom' ARCHIVE_BASE_0_NAME='loom_en_gog_2_20099.sh' ARCHIVE_BASE_0_MD5='225706d082ebf907170ca899fe1dbe1c' ARCHIVE_BASE_0_SIZE='390000' ARCHIVE_BASE_0_VERSION='1.0-gog20099' ARCHIVE_BASE_0_URL='https://www.gog.com/game/loom' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' disk01.lec cdda.sou *.lfl' CONTENT_DOC_MAIN_PATH='data/noarch/docs' CONTENT_DOC_MAIN_FILES=' Loom_Book_of_Patterns.pdf Loom_Manual.pdf' APP_MAIN_SCUMMID='scumm:loom' APP_MAIN_ICON='../support/icon.png' ## convmv is used to convert file paths to lower case. REQUIREMENTS_LIST=' convmv' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default ## Convert all file paths to lower case. tolower "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Include game data. content_inclusion_icons content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-lorelai.sh0000755000000000000000000000432014471751340013606 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Lorelai # send your bug reports to bugs@dotslashplay.it ### script_version=20250814.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='lorelai' GAME_NAME='Lorelai' ARCHIVE_BASE_0_NAME='setup_lorelai_1.1.0a_(40070).exe' ARCHIVE_BASE_0_MD5='41931b22bd91c8a61835f1ab5b317b38' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_lorelai_1.1.0a_(40070)-1.bin' ARCHIVE_BASE_0_PART1_MD5='3c93e5c60612965bd44ddc2480c57987' ARCHIVE_BASE_0_SIZE='11000000' ARCHIVE_BASE_0_VERSION='1.1.0a-gog40070' ARCHIVE_BASE_0_URL='https://www.gog.com/game/lorelai' UNITY3D_NAME='lorelai' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_DATA_ASSETS_FILES=" ${UNITY3D_NAME}_data/sharedassets*.assets*" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Harvester Games/Lorelai' APP_MAIN_ICON='lorelai_icon2.ico' PACKAGES_LIST=' PKG_BIN PKG_DATA_ASSETS PKG_DATA' PKG_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_ASSETS' PKG_DATA_ASSETS_ID="${PKG_DATA_ID}-sharedassets" PKG_DATA_ASSETS_DESCRIPTION="$PKG_DATA_DESCRIPTION - shared assets" # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default 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-lumini.sh0000755000000000000000000000614214471751340013460 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Lumini # send your bug reports to bugs@dotslashplay.it ### script_version=20250911.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='lumini' GAME_NAME='Lumini' ## This game is no longer available for sale from humblebundle.com. ARCHIVE_BASE_0_NAME='Lumini_DRMfree_Linux.zip' ARCHIVE_BASE_0_MD5='7d70f1824be9ab701cf9d52fb12a039a' ARCHIVE_BASE_0_SIZE='4700000' ARCHIVE_BASE_0_VERSION='1.0-humble1' UNITY3D_NAME='lumini' UNITY3D_PLUGINS=' libfmod.so libfmodstudio.so ScreenSelector.so' CONTENT_PATH_DEFAULT='.' CONTENT_GAME0_DATA_FILES=' SavesDir' USER_PERSISTENT_DIRECTORIES=' SavesDir' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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 ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Merge assets directories for the 32-bit and 64-bit builds. mkdir "$(unity3d_name)_Data" cp --link --recursive --update 'lumini_Linux64_Data/'* "$(unity3d_name)_Data" cp --link --recursive --update 'lumini_Linux32_Data/'* "$(unity3d_name)_Data" rm --recursive 'lumini_Linux64_Data' 'lumini_Linux32_Data' # Rename the binaries. mv 'lumini_Linux64.x86_64' "$(unity3d_name).x86_64" mv 'lumini_Linux32.x86' "$(unity3d_name).x86" # Delete files that are not used by the Linux build. rm \ "$(unity3d_name)_Data/Mono/"*/*.dll \ "$(unity3d_name)_Data/Mono/"*/*.dll.meta # Delete duplicated libraries. rm \ "$(unity3d_name)_Data/Mono/"*/libfmod.so \ "$(unity3d_name)_Data/Mono/"*/libfmodstudio.so \ "$(unity3d_name)_Data/Mono/"*/ScreenSelector.so # These directories must be deleted to prevent an error during the inclusion of Unity3D plugins. rm --recursive "$(unity3d_name)_Data/Plugins/"*.bundle/ ) # Include game data. 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-luna-the-shadow-dust.sh0000755000000000000000000000541314471751340016140 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Luna The Shadow Dust # send your bug reports to bugs@dotslashplay.it ### script_version=20250513.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='luna-the-shadow-dust' GAME_NAME='LUNA The Shadow Dust' ARCHIVE_BASE_0_NAME='luna_the_shadow_dust_1_0_2_36448.sh' ARCHIVE_BASE_0_MD5='394463d5b600dbf8fe0619d5ffe944f1' ARCHIVE_BASE_0_SIZE='789052' ARCHIVE_BASE_0_VERSION='1.0.2-gog36448' ARCHIVE_BASE_0_URL='https://www.gog.com/game/luna_the_shadow_dust' UNITY3D_NAME='Luna' UNITY3D_PLUGINS=' libfmodL.so libfmod.so libfmodstudioL.so libfmodstudio.so libgvraudio.so libresonanceaudio.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' ## The game crashes on launch when the Wayland backend of SDL is used, ## even when forcing the use of system SDL. APP_MAIN_PRERUN='# The game crashes on launch when the Wayland backend of SDL is used if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' ## PKG_BIN64 must be listed before PKG_BIN32, ## because some 64-bit plugins are included at the root of the Plugins directory. PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-machinarium.sh0000755000000000000000000000726014471751340014462 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Machinarium # send your bug reports to bugs@dotslashplay.it ### script_version=20241211.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='machinarium' GAME_NAME='Machinarium' ## GOG native Linux build, ## that is still sold but no longer officially supported. ARCHIVE_BASE_GOG_0_NAME='gog_machinarium_2.0.0.2.sh' ARCHIVE_BASE_GOG_0_MD5='4a66896935fbf29f4816e615748bb679' ARCHIVE_BASE_GOG_0_SIZE='370000' ARCHIVE_BASE_GOG_0_VERSION='1.0-gog2.0.0.2' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/machinarium_collectors_edition' ## Humble Bundle native Linux build, that is no longer available for sale. ARCHIVE_BASE_HUMBLE_TGZ_0_NAME='Machinarium_full_en.tar.gz' ARCHIVE_BASE_HUMBLE_TGZ_0_MD5='87c4f4aecfbb69c1aecbb7d92e60542d' ARCHIVE_BASE_HUMBLE_TGZ_0_SIZE='358621' ARCHIVE_BASE_HUMBLE_TGZ_0_VERSION='1.0-humble1' ## Humble Bundle native Linux build, that is no longer available for sale. ARCHIVE_BASE_HUMBLE_DEB_0_NAME='machinarium_20121106-ubuntu_i386.deb' ARCHIVE_BASE_HUMBLE_DEB_0_MD5='4f0ab314a75aad77a9c6dd92110f8a48' ARCHIVE_BASE_HUMBLE_DEB_0_SIZE='360000' ARCHIVE_BASE_HUMBLE_DEB_0_VERSION='1.0-humble1' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE_TGZ='Machinarium' CONTENT_PATH_DEFAULT_HUMBLE_DEB='opt/machinarium' CONTENT_GAME_BIN_FILES=' Machinarium' CONTENT_GAME_DATA_FILES=' 00 01 10 11' APP_MAIN_EXE='Machinarium' APP_MAIN_ICONS_LIST_GOG='APP_MAIN_ICON_GOG' APP_MAIN_ICON_GOG='../support/icon.png' APP_MAIN_ICONS_LIST_HUMBLE_DEB='APP_MAIN_ICON_HUMBLE_DEB_16 APP_MAIN_ICON_HUMBLE_DEB_32 APP_MAIN_ICON_HUMBLE_DEB_64' APP_MAIN_ICON_HUMBLE_DEB_16='../../usr/share/icons/hicolor/16x16/apps/machinarium.png' APP_MAIN_ICON_HUMBLE_DEB_32='../../usr/share/icons/hicolor/32x32/apps/machinarium.png' APP_MAIN_ICON_HUMBLE_DEB_64='../../usr/share/icons/hicolor/64x64/apps/machinarium.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libglib-2.0.so.0 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libnspr4.so libnss3.so libpango-1.0.so.0 libpangocairo-1.0.so.0 libplc4.so libplds4.so libpthread.so.0 libsmime3.so libssl3.so libstdc++.so.6 libX11.so.6 libXext.so.6 libXrender.so.1 libXt.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 ## TODO: An optional icons archive should be provided case "$(current_archive)" in ('ARCHIVE_BASE_HUMBLE_TGZ_'*) ## The .tar.gz Humble Bundle archive does not include a game icon. ;; (*) content_inclusion_icons 'PKG_DATA' ;; esac content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-maniac-mansion.sh0000755000000000000000000000361314471751340015055 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 macaron # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Maniac Mansion # send your bug reports to bugs@dotslashplay.it ### script_version=20250826.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='maniac-mansion' GAME_NAME='Maniac Mansion' ARCHIVE_BASE_0_NAME='maniac_mansion_en_gog_3_17899.sh' ARCHIVE_BASE_0_MD5='508b5f4e9b399ded9140dddfc3679a7e' ARCHIVE_BASE_0_SIZE='89000' ARCHIVE_BASE_0_VERSION='1.0-gog17899' ARCHIVE_BASE_0_URL='https://www.gog.com/game/maniac_mansion' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' *.lfl' CONTENT_DOC_MAIN_PATH='data/noarch/docs' CONTENT_DOC_MAIN_FILES=' *.pdf *.txt' APP_MAIN_SCUMMID='scumm:maniac' APP_MAIN_ICON='../support/icon.png' ## convmv is used to convert file paths to lower case. REQUIREMENTS_LIST=' convmv' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default ## Convert all file paths to lower case. tolower "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Include game data. content_inclusion_icons content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-maries-room.sh0000755000000000000000000000370514471751340014417 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Marie's Room # send your bug reports to bugs@dotslashplay.it ### script_version=20241107.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='maries-room' GAME_NAME='Marie’s Room' ARCHIVE_BASE_0_NAME='MariesRoom.zip' ARCHIVE_BASE_0_MD5='4c7375a2fcf5bdd49405f4ddd9ce5770' ARCHIVE_BASE_0_SIZE='1000000' ARCHIVE_BASE_0_VERSION='1.0-itch.2018.05.17' ARCHIVE_BASE_0_URL='https://kennyguillaume.itch.io/maries-room' UNREALENGINE4_NAME='MariesRoom' CONTENT_PATH_DEFAULT='MariesRoom/MariesRoom_Game_x64' APP_MAIN_EXE="${UNREALENGINE4_NAME}/Binaries/Win64/${UNREALENGINE4_NAME}-Win64-Shipping.exe" ## The --name=101 wrestool option, default for UE4 games, should not be used here APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-mechanika.sh0000755000000000000000000001017114471751340014100 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # MechaNika # send your bug reports to bugs@dotslashplay.it ### script_version=20240825.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='mechanika' GAME_NAME='MechaNika' ARCHIVE_BASE_32BIT_0_NAME='MechaNika_linux32_1.1.10.zip' ARCHIVE_BASE_32BIT_0_MD5='177e488fd1fde7efd89b7bb5a86fe49e' ARCHIVE_BASE_32BIT_0_SIZE='220000' ARCHIVE_BASE_32BIT_0_VERSION='1.1.10-humble160417' ARCHIVE_BASE_32BIT_0_URL='https://www.humblebundle.com/store/mechanika' ARCHIVE_BASE_64BIT_0_NAME='MechaNika_linux64_1.1.10.zip' ARCHIVE_BASE_64BIT_0_MD5='20fecb0fb6e7324c7c8d4b40040ed434' ARCHIVE_BASE_64BIT_0_SIZE='220000' ARCHIVE_BASE_64BIT_0_VERSION='1.1.10-humble160417' ARCHIVE_BASE_64BIT_0_URL='https://www.humblebundle.com/store/mechanika' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_SHIPPED_FILES=' jre MechaNika config.json' CONTENT_GAME_DATA_FILES=' MechaNika.jar' APP_MAIN_EXE='MechaNika' APP_MAIN_ICONS_LIST='APP_MAIN_ICON_32 APP_MAIN_ICON_128' APP_MAIN_ICON_32='graphics/icons/mechanika_icon_32.png' APP_MAIN_ICON_128='graphics/icons/mechanika_icon_128.png' # Launchers APPLICATIONS_LIST='APP_MAIN' APP_MAIN_ICONS_LIST='APP_MAIN_ICON_32 APP_MAIN_ICON_128' APP_MAIN_ICON_32='graphics/icons/mechanika_icon_32.png' APP_MAIN_ICON_128='graphics/icons/mechanika_icon_128.png' ## Using system-provided Java APP_MAIN_TYPE_BIN_SYSTEM='java' APP_MAIN_EXE_BIN_SYSTEM='MechaNika.jar' ## Using shipped binaries APP_MAIN_EXE_BIN_SHIPPED='MechaNika' # Packages ## Common PACKAGES_LIST=' PKG_BIN_SYSTEM PKG_BIN_SHIPPED PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ID="${GAME_ID}-bin" PKG_BIN_PROVIDES=" $PKG_BIN_ID" PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' ## Ensure easy upgrades from packages generated with pre-20240825.1 scripts PKG_BIN_PROVIDES="${PKG_BIN_PROVIDES:-} mechanika" ## Using system-provided Java PKG_BIN_SYSTEM_ID="${PKG_BIN_ID}-system" PKG_BIN_SYSTEM_DESCRIPTION='Using system-provided Java' PKG_BIN_SYSTEM_PROVIDES="$PKG_BIN_PROVIDES" PKG_BIN_SYSTEM_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" ## Using shipped binaries PKG_BIN_SHIPPED_ID="${PKG_BIN_ID}-shipped" PKG_BIN_SHIPPED_DESCRIPTION='Using shipped binaries' PKG_BIN_SHIPPED_ARCH_32BIT='32' PKG_BIN_SHIPPED_ARCH_64BIT='64' PKG_BIN_SHIPPED_PROVIDES="$PKG_BIN_PROVIDES" PKG_BIN_SHIPPED_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_SHIPPED_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 libstdc++.so.6 libthread_db.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ## The game icon is extracted from the Java archive ARCHIVE_JAVA_PATH="${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/MechaNika.jar" ARCHIVE_JAVA_TYPE='zip' archive_extraction 'ARCHIVE_JAVA' # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN_SYSTEM' launchers_generation 'PKG_BIN_SHIPPED' # Build packages packages_generation case "$(messages_language)" in ('fr') message='Utilisation des binaires fournis par %s :' bin_system='le système' bin_shipped='les développeurs' ;; ('en'|*) message='Using binaries provided by %s:' bin_system='the system' bin_shipped='the developers' ;; esac printf '\n' printf "$message" "$bin_system" print_instructions 'PKG_BIN_SYSTEM' 'PKG_DATA' printf "$message" "$bin_shipped" print_instructions 'PKG_BIN_SHIPPED' 'PKG_DATA' # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-memoranda.sh0000755000000000000000000000524714471751340014133 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Memoranda # send your bug reports to bugs@dotslashplay.it ### script_version=20250228.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='memoranda' GAME_NAME='Memoranda' ARCHIVE_BASE_0_NAME='gog_memoranda_2.2.0.3.sh' ARCHIVE_BASE_0_MD5='9671ebb592d4b4a028fd80f76e96c1a1' ARCHIVE_BASE_0_SIZE='800000' ARCHIVE_BASE_0_VERSION='1.0-gog2.2.0.3' ARCHIVE_BASE_0_URL='https://www.gog.com/game/memoranda' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' runner' CONTENT_GAME_DATA_FILES=' assets' APP_MAIN_EXE='runner' APP_MAIN_ICON='assets/icon.png' ## Work around a Mesa-related startup crash ## cf. https://gitlab.freedesktop.org/mesa/mesa/issues/1310 APP_MAIN_PRERUN=' # Work around a 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 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' # Build a 512×512 icon from the 1024×1024 provided one REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} convert" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data ## Build a 512×512 icon from the 1024×1024 provided one APP_MAIN_ICONS_LIST="$(application_icons_list 'APP_MAIN') APP_MAIN_ICON_512" APP_MAIN_ICON_512='assets/icon_512.png' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" convert "$APP_MAIN_ICON" -resize 512 "$APP_MAIN_ICON_512" ) content_inclusion_icons content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-mhakna-gramura-and-fairy-bell.sh0000755000000000000000000001056614471751340017647 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Mhakna Gramura and Fairy Bell # send your bug reports to bugs@dotslashplay.it ### script_version=20250814.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='mhakna-gramura-and-fairy-bell' GAME_NAME='Mhakna Gramura and Fairy Bell' ARCHIVE_BASE_0_NAME='mhakna_gramura_and_fairy_bell_gog_1_26679.sh' ARCHIVE_BASE_0_MD5='f54f86a4496b682ef7e7fb251d50c350' ARCHIVE_BASE_0_SIZE='2000000' ARCHIVE_BASE_0_VERSION='1.0-gog.26679' ARCHIVE_BASE_0_URL='https://www.gog.com/game/mhakna_gramura_and_fairy_bell' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_FILES=' libavcodec.so.57 libavformat.so.57 libavresample.so.3 libavutil.so.55 libGLEW.so.1.7 libpng12.so.0 libpython2.7.so.1.0 libswresample.so.2 libswscale.so.4' CONTENT_LIBS_BIN64_RELATIVE_PATH='lib/linux-x86_64' CONTENT_LIBS_BIN64_FILES="$CONTENT_LIBS_FILES" CONTENT_LIBS_BIN32_RELATIVE_PATH='lib/linux-i686' CONTENT_LIBS_BIN32_FILES="$CONTENT_LIBS_FILES" CONTENT_GAME_BIN64_FILES=' lib/linux-x86_64/eggs lib/linux-x86_64/lib lib/linux-x86_64/fairybell lib/linux-x86_64/python lib/linux-x86_64/pythonw lib/linux-x86_64/zsync lib/linux-x86_64/zsyncmake' CONTENT_GAME_BIN32_FILES=' lib/linux-i686/eggs lib/linux-i686/lib lib/linux-i686/fairybell lib/linux-i686/python lib/linux-i686/pythonw lib/linux-i686/zsync lib/linux-i686/zsyncmake' CONTENT_GAME_DATA_FILES=' game renpy lib/pythonlib2.7 fairybell.py' ## System-provided Ren'Py can not be used with this game, as it causes a crash on launch: ## ## Full traceback: ## File "/usr/share/games/renpy/renpy/bootstrap.py", line 359, in bootstrap ## renpy.main.main() ## File "/usr/share/games/renpy/renpy/main.py", line 459, in main ## renpy.game.script.load_script() # sets renpy.game.script. ## File "/usr/share/games/renpy/renpy/script.py", line 359, in load_script ## self.load_appropriate_file(".rpyc", [ "_ren.py", ".rpy" ], dir, fn, initcode) ## File "/usr/share/games/renpy/renpy/script.py", line 942, in load_appropriate_file ## self.finish_load(stmts, initcode, filename=lastfn) # type: ignore ## File "/usr/share/games/renpy/renpy/script.py", line 602, in finish_load ## node.early_execute() ## File "/usr/share/games/renpy/renpy/ast.py", line 880, in early_execute ## renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store) ## File "/usr/share/games/renpy/renpy/python.py", line 1178, in py_exec_bytecode ## exec(bytecode, globals, locals) ## File "game/9i/investigation.rpy", line 2978, in ## File "/usr/share/games/renpy/renpy/statements.py", line 259, in register ## raise Exception("Unknown \"block\" argument value: {}".format(block)) ## Exception: Unknown "block" argument value: auto APP_MAIN_EXE_BIN64='lib/linux-x86_64/fairybell' APP_MAIN_EXE_BIN32='lib/linux-i686/fairybell' APP_MAIN_OPTIONS='-EO fairybell.py' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libfreetype.so.6 libGL.so.1 libGLU.so.1 libjpeg.so.62 libm.so.6 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0 libSDL2_ttf-2.0.so.0 libutil.so.1 libX11.so.6 libXext.so.6 libXi.so.6 libXmu.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the 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-midnight-scenes.sh0000755000000000000000000000347414471751340015251 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Midnight Scenes: The Highway # send your bug reports to bugs@dotslashplay.it ### script_version=20241219.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='midnight-scenes' GAME_NAME='Midnight Scenes: The Highway' ARCHIVE_BASE_0_NAME='setup_midnight_scenes_the_highway_(special_edition)_1.27_(62602).exe' ARCHIVE_BASE_0_MD5='947c0d1e2161204393635a6a9af96394' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='168842' ARCHIVE_BASE_0_VERSION='1.27-gog62602' ARCHIVE_BASE_0_URL='https://www.gog.com/game/midnight_scenes_the_highway_special_edition' UNITY3D_NAME='midnight scenes the highway' CONTENT_PATH_DEFAULT='.' 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-mimo.sh0000755000000000000000000000377514471751340013135 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Mimo # send your bug reports to bugs@dotslashplay.it ### script_version=20240617.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='mimo' GAME_NAME='Mimo' ARCHIVE_BASE_0_NAME='MIMO_Linux.zip' ARCHIVE_BASE_0_MD5='41fb3512abe6df5eae803faa0d1484c8' ARCHIVE_BASE_0_SIZE='292968' ARCHIVE_BASE_0_VERSION='1.01-itch1' ARCHIVE_BASE_0_URL='https://bebadboi.itch.io/mimo' UNITY3D_NAME='MIMO' UNITY3D_PLUGINS=' ScreenSelector.so UnityFbxSdkNative.so' CONTENT_PATH_DEFAULT='MIMO_Linux' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-mon-cuties-for-all.sh0000755000000000000000000000350414471751340015577 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Mon-cuties for All # send your bug reports to bugs@dotslashplay.it ### script_version=20240428.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='mon-cuties-for-all' GAME_NAME='Mon-cuties for All' ARCHIVE_BASE_0_NAME='Mon-cuties-0.5-pc.zip' ARCHIVE_BASE_0_MD5='5100ee55608ea481ee820e12f6bda4c9' ARCHIVE_BASE_0_SIZE='440000' ARCHIVE_BASE_0_VERSION='0.5-itch1' ARCHIVE_BASE_0_URL='https://reineworks.itch.io/moncuties-for-all' CONTENT_PATH_DEFAULT='Mon-cuties-0.5-pc/game' CONTENT_GAME_MAIN_FILES=' cache gui main sound archive.rpa' CONTENT_DOC_MAIN_PATH="${CONTENT_PATH_DEFAULT}/.." CONTENT_DOC_MAIN_FILES=' README.html' APP_MAIN_TYPE='renpy' APP_MAIN_ICON='../Mon-cuties.exe' ## Ensure easy upgrades from packages generated with pre-20240428.1 game scripts. PKG_MAIN_PROVIDES="${PKG_MAIN_PROVIDES:-} mon-cuties-for-all-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-monster-prom-expansions.sh0000755000000000000000000000330614471751340017011 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Monster Prom expansions: # - Second Term # send your bug reports to bugs@dotslashplay.it ### script_version=20241210.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='monster-prom' GAME_NAME='Monster Prom' EXPANSION_ID_SECOND='second-term' EXPANSION_NAME_SECOND='Second Term' ARCHIVE_BASE_SECOND_0_NAME='monster_prom_second_term_v6_8b_71317.sh' ARCHIVE_BASE_SECOND_0_MD5='a27aaf8e07389026802946206a9bcd6c' ARCHIVE_BASE_SECOND_0_SIZE='1078' ARCHIVE_BASE_SECOND_0_VERSION='6.8b-gog71317' ARCHIVE_BASE_SECOND_0_URL='https://www.gog.com/game/monster_prom_second_term' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' MonsterProm_Data/globalgamemanagerd' PKG_PARENT_ID="$GAME_ID" PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_PARENT' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_default # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-monster-prom.sh0000755000000000000000000001104214471751340014620 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # Monster Prom # send your bug reports to bugs@dotslashplay.it ### script_version=20241210.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='monster-prom' GAME_NAME='Monster Prom' ARCHIVE_BASE_12_NAME='monster_prom_v6_8b_71317.sh' ARCHIVE_BASE_12_MD5='cff6c702d4b3f331f42f34f574fbb25a' ARCHIVE_BASE_12_SIZE='3005768' ARCHIVE_BASE_12_VERSION='6.8b-gog71317' ARCHIVE_BASE_12_URL='https://www.gog.com/game/monster_prom' ARCHIVE_BASE_11_NAME='monster_prom_6_4b_53339.sh' ARCHIVE_BASE_11_MD5='27e03a4921ee67aa1284e9de2c5d2160' ARCHIVE_BASE_11_SIZE='3100000' ARCHIVE_BASE_11_VERSION='6.4b-gog53339' ARCHIVE_BASE_10_NAME='monster_prom_5_16_45016.sh' ARCHIVE_BASE_10_MD5='58e9029453111916107341867d2c8327' ARCHIVE_BASE_10_SIZE='3000000' ARCHIVE_BASE_10_VERSION='5.16-gog45016' ARCHIVE_BASE_9_NAME='monster_prom_5_7_42255.sh' ARCHIVE_BASE_9_MD5='59a60a6941773d48cca441501507209d' ARCHIVE_BASE_9_SIZE='2500000' ARCHIVE_BASE_9_VERSION='5.7-gog42255' ARCHIVE_BASE_8_NAME='monster_prom_4_80_36450.sh' ARCHIVE_BASE_8_MD5='5847214b0bcf816d03e165a16d0c19c4' ARCHIVE_BASE_8_SIZE='2400000' ARCHIVE_BASE_8_VERSION='4.80-gog36450' ARCHIVE_BASE_7_NAME='monster_prom_4_79_36279.sh' ARCHIVE_BASE_7_MD5='c1d893075a21af380031c953e856bd7c' ARCHIVE_BASE_7_SIZE='2400000' ARCHIVE_BASE_7_VERSION='4.79-gog36279' ARCHIVE_BASE_6_NAME='monster_prom_4_77_36137.sh' ARCHIVE_BASE_6_MD5='87a05cfec3a314c4a6ea1047154958cf' ARCHIVE_BASE_6_SIZE='2400000' ARCHIVE_BASE_6_VERSION='4.77-gog36137' ARCHIVE_BASE_5_NAME='monster_prom_4_68_35225.sh' ARCHIVE_BASE_5_MD5='c48257dadd81ac089b10567733beea48' ARCHIVE_BASE_5_SIZE='2200000' ARCHIVE_BASE_5_VERSION='4.68-gog35225' ARCHIVE_BASE_4_NAME='monster_prom_4_61_33782.sh' ARCHIVE_BASE_4_MD5='0ed680d8cf93810c80f2c2f02ce16ae6' ARCHIVE_BASE_4_SIZE='2200000' ARCHIVE_BASE_4_VERSION='4.61-gog33782' ARCHIVE_BASE_3_NAME='monster_prom_4_57_33526.sh' ARCHIVE_BASE_3_MD5='62a6e7d2bf6dc9ede39ec014cd73aaf4' ARCHIVE_BASE_3_SIZE='2200000' ARCHIVE_BASE_3_VERSION='4.57-gog33526' ARCHIVE_BASE_2_NAME='monster_prom_4_44_30880.sh' ARCHIVE_BASE_2_MD5='feea2789e951c992e714a0d01afb7348' ARCHIVE_BASE_2_SIZE='2000000' ARCHIVE_BASE_2_VERSION='4.44-gog30880' ARCHIVE_BASE_1_NAME='monster_prom_4_38b_30736.sh' ARCHIVE_BASE_1_MD5='4dc9b48a90220ecc0fcd91e44f640320' ARCHIVE_BASE_1_SIZE='2000000' ARCHIVE_BASE_1_VERSION='4.38b-gog30736' ARCHIVE_BASE_0_NAME='monster_prom_2_44_26055.sh' ARCHIVE_BASE_0_MD5='c558e2ba0540ba6651a35a3a5e2a146b' ARCHIVE_BASE_0_SIZE='1400000' ARCHIVE_BASE_0_VERSION='2.44-gog26055' UNITY3D_NAME='MonsterProm' UNITY3D_PLUGINS=' libStandaloneFileBrowser.so ScreenSelector.so' ## TODO: Check if the Steam library is required. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libsteam_api.so" CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME0_DATA_FILES=' UserData' USER_PERSISTENT_DIRECTORIES=' UserData' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-3.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-monstrata-fracture.sh0000755000000000000000000000520514471751340016003 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Monstrata Fracture # send your bug reports to bugs@dotslashplay.it ### script_version=20250521.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='monstrata-fracture' GAME_NAME='Monstrata Fracture' ARCHIVE_BASE_3_NAME='monstrata-fracture-win-linux.zip' ARCHIVE_BASE_3_MD5='b20a1bcf571f96a24681af86eecb21ed' ARCHIVE_BASE_3_SIZE='734454' ARCHIVE_BASE_3_VERSION='1.2.23-itch.2023.12.08' ARCHIVE_BASE_3_URL='https://astralore.itch.io/monstrata-fracture' ARCHIVE_BASE_2_NAME='monstrata-fracture-win-osx-linux.zip' ARCHIVE_BASE_2_MD5='77587f9906e97a79163849d74fc77c3b' ARCHIVE_BASE_2_SIZE='797917' ARCHIVE_BASE_2_VERSION='1.2.23-itch.2023.12.08' ARCHIVE_BASE_2_URL='https://astralore.itch.io/monstrata-fracture' ARCHIVE_BASE_1_NAME='monstrata-fracture-win-linux.zip' ARCHIVE_BASE_1_MD5='9839d978298251f296febd5bc9a9b550' ARCHIVE_BASE_1_SIZE='240017' ARCHIVE_BASE_1_VERSION='1.2.11-itch1' ARCHIVE_BASE_0_NAME='monstrata-fracture-win-osx-linux.zip' ARCHIVE_BASE_0_MD5='7fa34744e2ff3ad7b745909ebfea51fc' ARCHIVE_BASE_0_SIZE='270000' ARCHIVE_BASE_0_VERSION='1.2.11-itch1' CONTENT_PATH_DEFAULT_3='Monstrata-1.2.23-pc/game' CONTENT_PATH_DEFAULT_2='game' CONTENT_PATH_DEFAULT_1='Monstrata-1.2.11-pc/game' CONTENT_PATH_DEFAULT_0='Monstrata-1.2.11-market/game' CONTENT_GAME_MAIN_FILES=' audio cache shaders sounds script_version.txt *.rpa' CONTENT_DOC_DATA_RELATIVE_PATH='..' CONTENT_DOC_DATA_FILES=' credits.txt' APP_MAIN_TYPE='renpy' ## Ensure easy upgrades from pre-20250514.1 packages. PKG_MAIN_PROVIDES="${PKG_MAIN_PROVIDES:-} monstrata-fracture-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_default # Write launchers ## Use the default Ren'Py icon. desktop_field_icon() { printf 'renpy'; } launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-mutazione.sh0000755000000000000000000000362414471751340014200 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Mutazione # send your bug reports to bugs@dotslashplay.it ### script_version=20251014.2 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='mutazione' GAME_NAME='Mutazione' ARCHIVE_BASE_1_NAME='mutazione_1_84_2_58889.sh' ARCHIVE_BASE_1_MD5='62907ada1a1e09f64f93cafa3db87aaa' ARCHIVE_BASE_1_SIZE='2600000' ARCHIVE_BASE_1_VERSION='1.84.2-gog58889' ARCHIVE_BASE_1_URL='https://www.gog.com/game/mutazione' UNITY3D_NAME='mutazione' 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-my-lovely-family-series.sh0000755000000000000000000000544414471751340016673 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # My Lovely Family series: # - My Lovely Daughter # - My Lovely Wife # send your bug reports to bugs@dotslashplay.it ### script_version=20241224.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID_DAUGHTER='my-lovely-daughter' GAME_NAME_DAUGHTER='My Lovely Daughter' GAME_ID_WIFE='my-lovely-wife' GAME_NAME_WIFE='My Lovely Wife' ARCHIVE_BASE_DAUGHTER_0_NAME='setup_my_lovely_daughter_1.27f6_gog_linkfix_(70980).exe' ARCHIVE_BASE_DAUGHTER_0_MD5='66af1010c276944acc0c66ebef72cc0e' ARCHIVE_BASE_DAUGHTER_0_TYPE='innosetup' ARCHIVE_BASE_DAUGHTER_0_SIZE='337658' ARCHIVE_BASE_DAUGHTER_0_VERSION='1.27f6-gog70980' ARCHIVE_BASE_DAUGHTER_0_URL='https://www.gog.com/game/my_lovely_daughter' ARCHIVE_BASE_WIFE_1_NAME='setup_my_lovely_wife_1.1.14f2_gog_(74768).exe' ARCHIVE_BASE_WIFE_1_MD5='f6b68450cf40e9c596327dfc189bd8ff' ARCHIVE_BASE_WIFE_1_TYPE='innosetup' ARCHIVE_BASE_WIFE_1_SIZE='651887' ARCHIVE_BASE_WIFE_1_VERSION='1.1.14f2-gog74768' ARCHIVE_BASE_WIFE_1_URL='https://www.gog.com/game/my_lovely_wife' ARCHIVE_BASE_WIFE_0_NAME='setup_my_lovely_wife_1.1.11_gog_(70816).exe' ARCHIVE_BASE_WIFE_0_MD5='52472f09b7516676b29a43e3a40cd121' ARCHIVE_BASE_WIFE_0_TYPE='innosetup' ARCHIVE_BASE_WIFE_0_SIZE='691604' ARCHIVE_BASE_WIFE_0_VERSION='1.1.11-gog70816' UNITY3D_NAME_DAUGHTER='my lovely daughter' UNITY3D_NAME_WIFE='my lovely wife' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES_DAUGHTER=' users/${USER}/AppData/LocalLow/GameChanger Studio/My Lovely Daughter' WINE_PERSISTENT_DIRECTORIES_WIFE=' users/${USER}/AppData/LocalLow/GameChanger Studio/My Lovely Wife' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID_DAUGHTER="${GAME_ID_DAUGHTER}-data" PKG_DATA_ID_WIFE="${GAME_ID_WIFE}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 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-neon-code.sh0000755000000000000000000000416714471751340014037 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Neon Code # send your bug reports to bugs@dotslashplay.it ### script_version=20240617.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='neon-code' GAME_NAME='Neon Code' ARCHIVE_BASE_0_NAME='NeonCode_0_89_Linux.zip' ARCHIVE_BASE_0_MD5='dbcf301048b76c443bb746c0b337692b' ARCHIVE_BASE_0_SIZE='4249065' ARCHIVE_BASE_0_VERSION='0.89-itch' ARCHIVE_BASE_0_URL='https://fubenalvo.itch.io/neoncode' UNITY3D_NAME='NeonCode' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='NeonCode_0_89_Linux' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-night-in-the-woods.sh0000755000000000000000000000422314471751340015605 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Night in the Woods # send your bug reports to bugs@dotslashplay.it ### script_version=20250815.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='night-in-the-woods' GAME_NAME='Night in the Woods' ARCHIVE_BASE_0_NAME='night-in-the-woods-linux.zip' ARCHIVE_BASE_0_MD5='d51538671aa56a49964984f17a27a69c' ARCHIVE_BASE_0_SIZE='6030365' ARCHIVE_BASE_0_VERSION='406-itch' ARCHIVE_BASE_0_URL='https://finji.itch.io/night-in-the-woods' UNITY3D_NAME='Night in the Woods' UNITY3D_PLUGINS=' libfmodL.so libfmod.so libfmodstudioL.so libfmodstudio.so libgvraudio.so ScreenSelector.so' CONTENT_PATH_DEFAULT='.' CONTENT_DOC_DATA_FILES=' README.png' 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 the 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-nine-noir-lives.sh0000755000000000000000000000545414471751340015206 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Nine Noir Lives # send your bug reports to bugs@dotslashplay.it ### script_version=20240915.2 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='nine-noir-lives' GAME_NAME='Nine Noir Lives' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" ARCHIVE_BASE_0_NAME='nine_noir_lives_1_0_12_59002.sh' ARCHIVE_BASE_0_MD5='e93b7279c787fbbc508f91e762e46d6e' ARCHIVE_BASE_0_SIZE='4837192' ARCHIVE_BASE_0_VERSION='1.0.12-gog59002' ARCHIVE_BASE_0_URL='https://www.gog.com/game/nine_noir_lives' ARCHIVE_BASE_DEMO_0_NAME='setup_nine_noir_lives_demo_1.02_(46357).exe' ARCHIVE_BASE_DEMO_0_MD5='f22c232ad0d7c1512b0aa90611f67340' ARCHIVE_BASE_DEMO_0_TYPE='innosetup' ARCHIVE_BASE_DEMO_0_SIZE='550000' ARCHIVE_BASE_DEMO_0_VERSION='1.02-gog46357' ARCHIVE_BASE_DEMO_0_URL='https://www.gog.com/game/nine_noir_lives_demo' VISIONAIRE_NAME='visplayer' VISIONAIRE_NAME_DEMO='nnl' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_PATH_DEFAULT_DEMO='.' ## The shipped build of OpenAL must be used, to avoid a missing symbol error: ## symbol lookup error: ./visplayer: undefined symbol: SelectResampler CONTENT_LIBS0_BIN_PATH="${CONTENT_PATH_DEFAULT}/libs64" CONTENT_LIBS0_BIN_FILES=' libopenal.so' CONTENT_GAME0_DATA_FILES=' *.vc *.vi *.vis *.vs *.vt *.vv' CONTENT_DOC0_DATA_FILES=' BSD_3_Clause.txt LGPL2_1.txt libpng-LICENSE.txt MIT.txt symbols.txt webm.txt ZLIB.txt' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Local/Silvernode Studios/NNL Demo' ## TODO: An icons pack should be provided for the full game. PKG_BIN_ARCH='64' PKG_BIN_ARCH_DEMO='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 case "$(current_archive)" in ('ARCHIVE_BASE_DEMO_'*) content_inclusion_icons 'PKG_DATA' ## Demo - Delete the broken 256×256 icon. broken_icon="$(package_path 'PKG_DATA')$(path_icons)/256x256/apps/$(game_id).png" rm --force "$broken_icon" rmdir --ignore-fail-on-non-empty --parents "$(dirname "$broken_icon")" ;; esac content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-noctropolis.sh0000755000000000000000000000420214471751340014531 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Noctropolis # send your bug reports to bugs@dotslashplay.it ### script_version=20250914.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='noctropolis' GAME_NAME='Noctropolis' ARCHIVE_BASE_0_NAME='noctropolis_en_1_0_16066.sh' ARCHIVE_BASE_0_MD5='08bc9c0135daa87ffa4059706442687b' ARCHIVE_BASE_0_SIZE='640000' ARCHIVE_BASE_0_VERSION='1.0-gog16066' ARCHIVE_BASE_0_URL='https://www.gog.com/game/noctropolis' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' noctropolis' ## TODO: Check if localisation packages could be provided. CONTENT_GAME_DATA_FILES=' DARK DE ES FR' CONTENT_DOC_DATA_FILES=' LICENSE.ogg-vorbis.txt README.txt README-SDL.txt' ## TODO: Extract an icon from another build of the game, ## to provide as an optional archive. APP_MAIN_EXE='noctropolis' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 libSDL2-2.0.so.0 libSDL2_mixer-2.0.so.0 libstdc++.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-nonsense-at-nightfall.sh0000755000000000000000000000341014471751340016356 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Nonsense at Nightfall # send your bug reports to bugs@dotslashplay.it ### script_version=20240618.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='nonsense-at-nightfall' GAME_NAME='Nonsense at Nightfall' ARCHIVE_BASE_0_NAME='Nonsense at Nightfall.zip' ARCHIVE_BASE_0_MD5='0fc2ea596776428f659a15acfb20dba6' ARCHIVE_BASE_0_SIZE='41000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://siegfriedcroes.itch.io/nonsense-at-nightfall' UNITY3D_NAME='Nonsense at Nightfall' CONTENT_PATH_DEFAULT='.' WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\Siegfried Croes\Nonsense at Nightfall' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-norco.sh0000755000000000000000000000374514471751340013311 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Norco # send your bug reports to bugs@dotslashplay.it ### script_version=20241106.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='norco' GAME_NAME='Norco' ARCHIVE_BASE_0_NAME='setup_norco_v1.4.4_(64bit)_(60635).exe' ARCHIVE_BASE_0_MD5='5bfcef9964c93e24752a8e85af5df3fd' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='3400000' ARCHIVE_BASE_0_VERSION='1.4.4-gog60635' ARCHIVE_BASE_0_URL='https://www.gog.com/en/game/norco' UNITY3D_NAME='norco' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/GeographyOfRobots/norco' ## This seems to prevent focus issues leading to the inability to interact with some in-game menus ## TODO: Check if it is still required with current WINE WINE_VIRTUAL_DESKTOP='auto' 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-obduction.sh0000755000000000000000000000427314471751340014154 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Obduction # Send your bug reports to bugs@dotslashplay.it ### script_version=20250911.2 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='obduction' GAME_NAME='Obduction' ARCHIVE_BASE_0_NAME='setup_obduction_1.8.4.1-ssl_(51210).exe' ARCHIVE_BASE_0_MD5='02477c05bece9e1655adc31bbc5a89fa' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_obduction_1.8.4.1-ssl_(51210)-1.bin' ARCHIVE_BASE_0_PART1_MD5='834211d7c8218965106369575f72c3ac' ARCHIVE_BASE_0_PART2_NAME='setup_obduction_1.8.4.1-ssl_(51210)-2.bin' ARCHIVE_BASE_0_PART2_MD5='73e5a3a0b413f24ea0e7348e86301b11' ARCHIVE_BASE_0_SIZE='9300000' ARCHIVE_BASE_0_VERSION='1.8.4.1-gog51210' ARCHIVE_BASE_0_URL='https://www.gog.com/game/obduction' UNREALENGINE4_NAME='obduction' CONTENT_PATH_DEFAULT='.' CONTENT_DOC_DATA_FILES=' obduction_user_manual.pdf' APP_MAIN_EXE="${UNREALENGINE4_NAME}.exe" PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_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. ## Do not install the Visual C++ Runtime, as it actually prevents the game from starting. unrealengine4_wine_winetricks_verbs_default() { return 0; } launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-old-mans-journey.sh0000755000000000000000000000337414471751340015372 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Old Man's Journey # send your bug reports to bugs@dotslashplay.it ### script_version=20240915.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='old-mans-journey' GAME_NAME='Old Man’s Journey' ARCHIVE_BASE_0_NAME='OldMansJourney-Win-20180525.zip' ARCHIVE_BASE_0_MD5='841fb588cd62511fcc32291adc3a7f68' ARCHIVE_BASE_0_SIZE='580000' ARCHIVE_BASE_0_VERSION='20180525-itch' ARCHIVE_BASE_0_URL='https://brokenrules.itch.io/old-mans-journey' UNITY3D_NAME='Old Mans Journey' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Broken Rules/Old Man' 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-one-eyed-lee.sh0000755000000000000000000000515314471751340014434 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # One-Eyed Lee series: # - One-Eyed Lee: Prologue # - One-Eyed Lee and the Dinner Party # send your bug reports to bugs@dotslashplay.it ### script_version=20240428.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID_PROLOGUE='one-eyed-lee-prologue' GAME_NAME_PROLOGUE='One-Eyed Lee: Prologue' GAME_ID_DINNER='one-eyed-lee-and-the-dinner-party' GAME_NAME_DINNER='One-Eyed Lee and the Dinner Party' # Archives ## One-Eyed Lee: Prologue ARCHIVE_BASE_PROLOGUE_0_NAME='One-Eyed Lee Prologue PC.zip' ARCHIVE_BASE_PROLOGUE_0_MD5='d3c2ca1ef052cd59dd3619ea2c1cde96' ARCHIVE_BASE_PROLOGUE_0_SIZE='350000' ARCHIVE_BASE_PROLOGUE_0_VERSION='1.0-itch1' ARCHIVE_BASE_PROLOGUE_0_URL='https://darkchibishadow.itch.io/one-eyed-lee-prologue' ## One-Eyed Lee and the Dinner Party ARCHIVE_BASE_DINNER_0_NAME='One-EyedLeeandtheDinnerParty LINUX.bz2' ARCHIVE_BASE_DINNER_0_MD5='786e5ab1fec14f0319c9c3dd3a746cac' ARCHIVE_BASE_DINNER_0_TYPE='tar.bz2' ARCHIVE_BASE_DINNER_0_SIZE='520000' ARCHIVE_BASE_DINNER_0_VERSION='1.0-itch1' ARCHIVE_BASE_DINNER_0_URL='https://darkchibishadow.itch.io/one-eyed-lee-and-the-dinner-party' CONTENT_PATH_DEFAULT_PROLOGUE='oneeyedleeprologue-1.0-pc/game' CONTENT_PATH_DEFAULT_DINNER='One-EyedLeeandtheDinnerParty-1.0-linux/game' CONTENT_GAME_MAIN_FILES=' cache tl archive.rpa icon.ico script_version.txt *.ttf' APP_MAIN_TYPE='renpy' APP_MAIN_ICON='icon.ico' ## Ensure easy upgrades from packages generated with pre-20240428.1 game scripts. PKG_MAIN_PROVIDES_PROLOGUE="${PKG_MAIN_PROVIDES_PROLOGUE:-} one-eyed-lee-prologue-data" PKG_MAIN_PROVIDES_DINNER="${PKG_MAIN_PROVIDES_DINNER:-} one-eyed-lee-and-the-dinner-party-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-order-of-the-thorne.sh0000755000000000000000000000503314471751340015751 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Order of the Thorne # send your bug reports to bugs@dotslashplay.it ### script_version=20250520.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='order-of-the-thorne' GAME_NAME='Order of the Thorne: The Kingʼs Challenge' ARCHIVE_BASE_LINUX_0_NAME='gog_order_of_the_thorne_the_king_s_challenge_2.0.0.1.sh' ARCHIVE_BASE_LINUX_0_MD5='16dde031dcfb730be1d94bde77306b0d' ARCHIVE_BASE_LINUX_0_SIZE='781609' ARCHIVE_BASE_LINUX_0_VERSION='1.0-gog2.0.0.1' ARCHIVE_BASE_LINUX_0_URL='https://www.gog.com/game/order_of_the_thorne_the_kings_challenge' ARCHIVE_BASE_WINDOWS_0_NAME='setup_order_of_the_thorne_2.1.0.4.exe' ARCHIVE_BASE_WINDOWS_0_MD5='f5dfd92a72167c9d033e0ca2c0262c79' ARCHIVE_BASE_WINDOWS_0_SIZE='825998' ARCHIVE_BASE_WINDOWS_0_VERSION='1.0-gog2.1.0.4' ARCHIVE_BASE_WINDOWS_0_URL='https://www.gog.com/game/order_of_the_thorne_the_kings_challenge' CONTENT_PATH_DEFAULT_LINUX='data/noarch/game' CONTENT_PATH_DEFAULT_WINDOWS='app' CONTENT_GAME_MAIN_FILES=' acsetup.cfg *.vox' CONTENT_GAME0_MAIN_FILES_LINUX=' agsgame.dat modules.lst' CONTENT_GAME0_MAIN_FILES_WINDOWS=' oott-tkc.exe' CONTENT_DOC_MAIN_FILES_LINUX=' licenses' APP_MAIN_SCUMMID='ags:oott' APP_MAIN_ICON_LINUX='oott-tkc.png' APP_MAIN_ICON_WINDOWS='oott-tkc.exe' PKG_MAIN_ID="$GAME_ID" PKG_MAIN_ID_LINUX="${PKG_MAIN_ID}-linux" PKG_MAIN_ID_WINDOWS="${PKG_MAIN_ID}-windows" PKG_MAIN_PROVIDES=" $PKG_MAIN_ID" ## Ensure easy upgrades from pre-20250520.2 packages PKG_MAIN_PROVIDES="${PKG_MAIN_PROVIDES:-} order-of-the-thorne-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-orwells-animal-farm.sh0000755000000000000000000000350114471751340016030 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2025 Antoine Le Gonidec set -o errexit ### # Orwell's Animal Farm # send your bug reports to bugs@dotslashplay.it ### script_version=20251001.2 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='orwells-animal-farm' GAME_NAME='Orwell’s Animal Farm' ARCHIVE_BASE_0_NAME='setup_orwells_animal_farm_1.0_(64bit)_(44624).exe' ARCHIVE_BASE_0_MD5='2b170314f5fccd05f24db81f0da3a448' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='756251' ARCHIVE_BASE_0_VERSION='1.0-gog44624' ARCHIVE_BASE_0_URL='https://www.gog.com/game/orwells_animal_farm' UNITY3D_NAME='animal farm' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Nerial/Animal Farm' 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-our-life-beginning-and-always.sh0000755000000000000000000000347314471751340017705 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Our Life: Beginnings & Always # send your bug reports to bugs@dotslashplay.it ### script_version=20250514.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='our-life-beginning-and-always' GAME_NAME='Our Life: Beginnings & Always' ARCHIVE_BASE_0_NAME='our_life_beginnings_always_1_6_2_59318.sh' ARCHIVE_BASE_0_MD5='543ec491817a024342902bd379d56fe6' ARCHIVE_BASE_0_SIZE='853527' ARCHIVE_BASE_0_VERSION='1.6.2-gog59318' ARCHIVE_BASE_0_URL='https://www.gog.com/game/our_life_beginnings_always' CONTENT_PATH_DEFAULT='data/noarch/game/game' CONTENT_GAME_MAIN_FILES=' icon.icns icon.ico archive.rpa script_version.txt' APP_MAIN_TYPE='renpy' APP_MAIN_ICON='icon.ico' ## Ensure easy upgrades from pre-20250514.1 packages. PKG_MAIN_PROVIDES="${PKG_MAIN_PROVIDES:-} our-life-beginning-and-always-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-out-there.sh0000755000000000000000000000710514471751340014077 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Out There # send your bug reports to bugs@dotslashplay.it ### script_version=20240623.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='out-there' GAME_NAME='Out There: Ω Edition' ARCHIVE_BASE_LINUX_0_NAME='OutThere2-4-2Linux.zip' ARCHIVE_BASE_LINUX_0_MD5='8ea51a42c9ad221e3d258e404c7106b0' ARCHIVE_BASE_LINUX_0_SIZE='340000' ARCHIVE_BASE_LINUX_0_VERSION='2.4.2-humble170213' ARCHIVE_BASE_LINUX_0_URL='https://www.humblebundle.com/store/out-there-edition' ## Support for the Windows version is included because of poor mouse support in the Linux build. ARCHIVE_BASE_WINDOWS_0_NAME='OutThere2-4-2.zip' ARCHIVE_BASE_WINDOWS_0_MD5='8b23dde3778ade4db73a3ed76c4134cd' ARCHIVE_BASE_WINDOWS_0_SIZE='300000' ARCHIVE_BASE_WINDOWS_0_VERSION='2.4.2-humble170213' ARCHIVE_BASE_WINDOWS_0_URL='https://www.humblebundle.com/store/out-there-edition' UNITY3D_NAME_LINUX='OutThereOmega' UNITY3D_NAME_WINDOWS='outthereomega' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Local Settings/Application Data/MiClos Studio/OutThereOmegaEdition' PACKAGES_LIST_LINUX=' PKG_BIN64 PKG_BIN32 PKG_DATA' PACKAGES_LIST_WINDOWS=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_LINUX="${PKG_DATA_ID}-linux" PKG_DATA_ID_WINDOWS="${PKG_DATA_ID}-windows" PKG_DATA_PROVIDES=" $PKG_DATA_ID" PKG_DATA_DESCRIPTION='data' PKG_BIN_ID="$GAME_ID" PKG_BIN_PROVIDES=" $PKG_BIN_ID" PKG_BIN64_PROVIDES="$PKG_BIN_PROVIDES" PKG_BIN32_PROVIDES="$PKG_BIN_PROVIDES" PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_ID_LINUX="${GAME_ID}-linux" PKG_BIN64_ID_LINUX="$PKG_BIN_ID_LINUX" PKG_BIN32_ID_LINUX="$PKG_BIN_ID_LINUX" PKG_BIN_DEPS_LINUX="$PKG_DATA_ID_LINUX" PKG_BIN64_DEPS_LINUX="$PKG_BIN_DEPS_LINUX" PKG_BIN32_DEPS_LINUX="$PKG_BIN_DEPS_LINUX" PKG_BIN_DEPENDENCIES_LIBRARIES_LINUX=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN64_DEPENDENCIES_LIBRARIES_LINUX="$PKG_BIN_DEPENDENCIES_LIBRARIES_LINUX" PKG_BIN32_DEPENDENCIES_LIBRARIES_LINUX="$PKG_BIN_DEPENDENCIES_LIBRARIES_LINUX" PKG_BIN_ID_WINDOWS="${PKG_BIN_ID}-windows" PKG_BIN_ARCH_WINDOWS='32' PKG_BIN_DEPS_WINDOWS="$PKG_DATA_ID_WINDOWS" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Delete Apple archives junk. find . -name '*.rsrc' -delete ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers case "$(current_archive)" in ('ARCHIVE_BASE_LINUX_'*) launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' ;; ('ARCHIVE_BASE_WINDOWS_'*) launchers_generation 'PKG_BIN' ;; esac # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-overboard.sh0000755000000000000000000000334114471751340014144 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Overboard # send your bug reports to bugs@dotslashplay.it ### script_version=20240820.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='overboard' GAME_NAME='Overboard!' ARCHIVE_BASE_0_NAME='setup_overboard_1.3.1_(64bit)_(48184).exe' ARCHIVE_BASE_0_MD5='7b8ad8c5b7325f9d7904880c1b72d064' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='210000' ARCHIVE_BASE_0_VERSION='1.3.1-gog48184' ARCHIVE_BASE_0_URL='https://www.gog.com/game/overboard' UNITY3D_NAME='overboard!' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' userdata:users/${USER}/AppData/LocalLow/Inkle Ltd/Overboard!' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-oxenfree.sh0000755000000000000000000000602114471751340013772 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2020 Hoël Bézier # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Oxenfree # send your bug reports to bugs@dotslashplay.it ### script_version=20240915.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='oxenfree' GAME_NAME='Oxenfree' ARCHIVE_BASE_GOG_1_NAME='oxenfree_2_7_1_27542.sh' ARCHIVE_BASE_GOG_1_MD5='d1571d0af998fafcf26d628b3be13537' ARCHIVE_BASE_GOG_1_SIZE='3000000' ARCHIVE_BASE_GOG_1_VERSION='2.7.1f8-gog27542' ARCHIVE_BASE_GOG_1_URL='https://www.gog.com/game/oxenfree' ARCHIVE_BASE_GOG_0_NAME='oxenfree_en_2_6_0_15278.sh' ARCHIVE_BASE_GOG_0_MD5='9f9e9c4a3f4b73fa85a8d29714f5959e' ARCHIVE_BASE_GOG_0_SIZE='3000000' ARCHIVE_BASE_GOG_0_VERSION='2.6.0f30-gog15278' ## Oxenfree is no longer available for sale from itch.io ## cf. https://www.gamingonlinux.com/2024/09/oxenfree-is-being-completely-removed-from-itchio-in-october/ ARCHIVE_BASE_ITCH_0_NAME='oxenfree-release-linux.zip' ARCHIVE_BASE_ITCH_0_MD5='54469a9bf98bc08125e69fc4612f390b' ARCHIVE_BASE_ITCH_0_SIZE='3000000' ARCHIVE_BASE_ITCH_0_VERSION='2.7.1f8-itch.2020.06.05' UNITY3D_NAME='Oxenfree' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_ITCH='Oxenfree_2.7.1_Linux-Uni-NoSteam_20190208_008' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-papetura.sh0000755000000000000000000000333314471751340014003 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Papetura # send your bug reports to bugs@dotslashplay.it ### script_version=20240707.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='papetura' GAME_NAME='Papetura' ARCHIVE_BASE_0_NAME='setup_papetura_1.1a_(49052).exe' ARCHIVE_BASE_0_MD5='d87f9c1f11d2c86b47d0df52feda06ef' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2200000' ARCHIVE_BASE_0_VERSION='1.1a-gog49052' ARCHIVE_BASE_0_URL='https://www.gog.com/game/papetura' UNITY3D_NAME='papetura' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Petums/Papetura' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-paradise-killer.sh0000755000000000000000000000350414471751340015232 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Paradise Killer # send your bug reports to bugs@dotslashplay.it ### script_version=20240611.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='paradise-killer' GAME_NAME='Paradise Killer' ARCHIVE_BASE_0_NAME='setup_paradise_killer_1.2.04.0_(53942).exe' ARCHIVE_BASE_0_MD5='1d7daf90ae9ddb2516af904154fcec13' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_paradise_killer_1.2.04.0_(53942)-1.bin' ARCHIVE_BASE_0_PART1_MD5='c52a3990f84a9daf47e5e27f2fc68d24' ARCHIVE_BASE_0_SIZE='2200000' ARCHIVE_BASE_0_VERSION='1.2.04.0-gog53942' ARCHIVE_BASE_0_URL='https://www.gog.com/game/paradise_killer' UNREALENGINE4_NAME='paradisekiller' CONTENT_PATH_DEFAULT='.' APP_MAIN_EXE='paradisekiller.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-paramedium-1.sh0000755000000000000000000000327114471751340014445 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Paramedium: A Noise in the Attic # send your bug reports to bugs@dotslashplay.it ### script_version=20240516.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='paramedium-1' GAME_NAME='Paramedium: A Noise in the Attic' ARCHIVE_BASE_0_NAME='Paramedium1.rar' ARCHIVE_BASE_0_MD5='7ce9c2a4779fde265a90975ab461b605' ARCHIVE_BASE_0_SIZE='540000' ARCHIVE_BASE_0_VERSION='1.3-itch' ARCHIVE_BASE_0_URL='https://dinmoney.itch.io/paramedium' UNITY3D_NAME='Paramedium' CONTENT_PATH_DEFAULT='Paramedium1.3' WINE_WINETRICKS_VERBS='arial' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-pendula-swing.sh0000755000000000000000000000367514471751340014750 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Pendula Swing # send your bug reports to bugs@dotslashplay.it ### script_version=20250921.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='pendula-swing' GAME_NAME='Pendula Swing: The Complete Journey' ARCHIVE_BASE_0_NAME='PendulaSwingTheCompleJourney.zip' ARCHIVE_BASE_0_MD5='afbec54341d36c29baa08feb538b9613' ARCHIVE_BASE_0_SIZE='3500000' ARCHIVE_BASE_0_VERSION='3.1.4-itch.2020.06.08' ARCHIVE_BASE_0_URL='https://valiant-game-studio.itch.io/pendula-swing-the-complete-journey' UNITY3D_NAME='PendulaSwing' CONTENT_PATH_DEFAULT='Build' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Valiant Game Studio/PendulaSwing' 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 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-pilgrims.sh0000755000000000000000000000443114471751340014010 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Hoël Bézier # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Pilgrims # send your bug reports to bugs@dotslashplay.it ### script_version=20250927.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='pilgrims' GAME_NAME='Pilgrims' ARCHIVE_BASE_0_NAME='pilgrims_1_0_8_274_43259.sh' ARCHIVE_BASE_0_MD5='9ca019527382dd91d565ae90c2f4c59e' ARCHIVE_BASE_0_SIZE='548596' ARCHIVE_BASE_0_VERSION='1.0.8.274-gog43259' ARCHIVE_BASE_0_URL='https://www.gog.com/game/pilgrims' UNITY3D_NAME='Pilgrims' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME0_BIN_FILES=" ${UNITY3D_NAME}.x86" ## Despite what is implied by the file name, this is a 64-bit binary. APP_MAIN_EXE="${UNITY3D_NAME}.x86" PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_LIBRARIES=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run 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-prim.sh0000755000000000000000000000405714471751340013135 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2025 Antoine Le Gonidec set -o errexit ### # Prim # send your bug reports to bugs@dotslashplay.it ### script_version=20250927.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='prim' GAME_NAME='PRIM' ARCHIVE_BASE_1_NAME='prim_1_4_32_85305.sh' ARCHIVE_BASE_1_MD5='8ef4c6324e694cd73b7183c0bb3c5d3b' ARCHIVE_BASE_1_SIZE='1097978' ARCHIVE_BASE_1_VERSION='1.4.32-gog85305' ARCHIVE_BASE_1_URL='https://www.gog.com/game/prim' ARCHIVE_BASE_0_NAME='prim_1_1_18_78616.sh' ARCHIVE_BASE_0_MD5='c8e37c77a417e00583cc5d5142ebb03c' ARCHIVE_BASE_0_SIZE='1083289' ARCHIVE_BASE_0_VERSION='1.1.18-gog78616' UNITY3D_NAME='PRIM' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialization actions. initialization_default "$@" # Extract game data. archive_extraction_default ## Prevent inclusion of Steam libraries. 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 'PKG_BIN' # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-proteus.sh0000755000000000000000000000435214471751340013665 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2018 BetaRays set -o errexit ### # Proteus # send your bug reports to bugs@dotslashplay.it ### script_version=20240830.2 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='proteus' GAME_NAME='Proteus' ARCHIVE_BASE_0_NAME='proteus-05162014-bin' ARCHIVE_BASE_0_MD5='8a5911751382bcfb91483f52f781e283' ## This MojoSetup installer is not relying on a Makeself wrapper ARCHIVE_BASE_0_EXTRACTOR='bsdtar' ARCHIVE_BASE_0_VERSION='1.0-humble140516' ARCHIVE_BASE_0_SIZE='130000' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/proteus' CONTENT_PATH_DEFAULT='data' CONTENT_GAME_MAIN_FILES=' resources Proteus.exe Proteus.png KopiLua.dll KopiLuaDll.dll KopiLuaInterface.dll SDL2-CS.dll SDL2-CS.dll.config Tao.OpenGl.dll Tao.OpenGl.dll.config Tianxia.dll Wuwei.dll' CONTENT_DOC_MAIN_FILES=' Linux.README' APP_MAIN_EXE='Proteus.exe' APP_MAIN_ICON='Proteus.png' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0 libSDL2_mixer-2.0.so.0 libstdc++.so.6 libz.so.1' PKG_MAIN_DEPENDENCIES_MONO_LIBRARIES=' mscorlib.dll Mono.Posix.dll Mono.Security.dll System.dll System.Configuration.dll System.Core.dll System.Data.dll System.Drawing.dll System.Security.dll System.Xml.dll' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-quern.sh0000755000000000000000000000445714471751340013324 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 edgar.vincent # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Quern: Undying Thoughts # Send your bug reports to bugs@dotslashplay.it ### script_version=20240607.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='quern' GAME_NAME='Quern - Undying Thoughts' ARCHIVE_BASE_0_NAME='quern_undying_thoughts_en_1_2_0_19570.sh' ARCHIVE_BASE_0_MD5='b26bcebf9d441b900b1c165b62951016' ARCHIVE_BASE_0_SIZE='8656437' ARCHIVE_BASE_0_VERSION='1.2.0-gog19570' ARCHIVE_BASE_0_URL='https://www.gog.com/game/quern_undying_thoughts' UNITY3D_NAME='Quern' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam libraries are required. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-rakuen.sh0000755000000000000000000000606414471751340013453 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Rakuen # send your bug reports to bugs@dotslashplay.it ### script_version=20251013.2 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='rakuen' GAME_NAME='Rakuen' ARCHIVE_BASE_0_NAME='rakuen_linux.tgz' ARCHIVE_BASE_0_MD5='cae92b2e92cd4e15796a7faa765d2e64' ARCHIVE_BASE_0_SIZE='200000' ARCHIVE_BASE_0_VERSION='1.0-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/rakuen' CONTENT_PATH_DEFAULT='Rakuen' CONTENT_LIBS_BIN_FILES=' libruby.so.2.1' ## Some sound effects to not play with system-provided libSDL_sound-1.0.so.1. CONTENT_LIBS_BIN_FILES="$CONTENT_LIBS_BIN_FILES libSDL_sound-1.0.so.1" ## The shipped build of libphysfs.so.1 must be used, or the game will fail to find some required data files. CONTENT_LIBS_BIN_FILES="$CONTENT_LIBS_BIN_FILES libphysfs.so.1" 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=' Rakuen.amd64' CONTENT_GAME_BIN32_FILES=' Rakuen.x86' CONTENT_GAME_DATA_FILES=' Audio Engine.ini Engine.rgssad Fonts icon.png mkxp mkxp.conf' CONTENT_DOC_DATA_FILES=' *.pdf' APP_MAIN_EXE_BIN64='Rakuen.amd64' APP_MAIN_EXE_BIN32='Rakuen.x86' APP_MAIN_ICON='icon.png' ## The game engine fails to find required game data when using a symlinks farm prefix. APP_MAIN_PREFIX_TYPE='none' 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=' libcrypt.so.1 libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libopenal.so.1 libpixman-1.so.0 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0 libSDL2_ttf-2.0.so.0 libsigc-2.0.so.0 libstdc++.so.6 libvorbisfile.so.3 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 ## Prevent the inclusion of MacOS archive junk files. find "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" -type f -name '._*' -delete # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-resonance.sh0000755000000000000000000000410214471751340014132 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Resonance # send your bug reports to bugs@dotslashplay.it ### script_version=20240915.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='resonance' GAME_NAME='Resonance' ARCHIVE_BASE_1_NAME='resonance_3_0_66305.sh' ARCHIVE_BASE_1_MD5='87786f1035c3dbe8ebc35d1fb54f6d1a' ARCHIVE_BASE_1_SIZE='1100000' ARCHIVE_BASE_1_VERSION='3.0-gog66305' ARCHIVE_BASE_1_URL='https://www.gog.com/game/resonance' ARCHIVE_BASE_0_NAME='resonance_2_2_53439.sh' ARCHIVE_BASE_0_MD5='5c86f3f82974b65ad3d2852c6a9338ed' ARCHIVE_BASE_0_SIZE='1200000' ARCHIVE_BASE_0_VERSION='2.2-gog53439' ## Optional icons pack ARCHIVE_OPTIONAL_ICONS_NAME='resonance_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5='0a24712adffd9f5f2998bf355fc161b7' ARCHIVE_OPTIONAL_ICONS_URL='https://downloads.dotslashplay.it/games/resonance/' CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 16x16 24x24 32x32 48x48 256x256' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' ENGV.tmp Music Sounds *.ags *.cfg *.exe *.ogv *.tra *.vox' CONTENT_DOC_MAIN_FILES=' licenses' APP_MAIN_SCUMMID='ags:resonance' APP_MAIN_ICON='../support/icon.png' APP_MAIN_ICON_0='Resonance.exe' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-return-to-mysterious-island-1.sh0000755000000000000000000001734114471751340017754 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Return to Mysterious Island # send your bug reports to bugs@dotslashplay.it ### script_version=20250803.4 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='return-to-mysterious-island-1' GAME_NAME='Return to Mysterious Island' ARCHIVE_BASE_FR_0_NAME='setup_return_to_mysterious_island_1.03_lang_fix_(french)_(64086).exe' ARCHIVE_BASE_FR_0_MD5='57c1c94d9b9433eeeba1fb524e720d82' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_SIZE='1166500' ARCHIVE_BASE_FR_0_VERSION='1.03-gog64086' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/return_to_mysterious_island' ARCHIVE_BASE_US_0_NAME='setup_return_to_mysterious_island_1.03_lang_fix_(64086).exe' ARCHIVE_BASE_US_0_MD5='ddf2151a68bf9abc31ec93246e517b39' ARCHIVE_BASE_US_0_TYPE='innosetup' ARCHIVE_BASE_US_0_SIZE='1166430' ARCHIVE_BASE_US_0_VERSION='1.03-gog64086' ARCHIVE_BASE_US_0_URL='https://www.gog.com/game/return_to_mysterious_island' ARCHIVE_BASE_MULTILANG_0_NAME='setup_return_to_mysterious_island_2.1.0.17.exe' ARCHIVE_BASE_MULTILANG_0_MD5='d31567796e419eb0c295bf978aa1d434' ARCHIVE_BASE_MULTILANG_0_TYPE='innosetup' ARCHIVE_BASE_MULTILANG_0_SIZE='1500000' ARCHIVE_BASE_MULTILANG_0_VERSION='1.0-gog2.1.0.17' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_MULTILANG='app' CONTENT_GAME_BIN_FILES=' cpuinf32.dll ddraw.dll ijl15.dll spr.dll game.exe' CONTENT_GAME_L10N_FILES=' datas/loc datas/cd?/loc_??_*' CONTENT_GAME0_L10N_RELATIVE_PATH='__support/app' CONTENT_GAME0_L10N_FILES=' config.ini' CONTENT_GAME_L10N_FR_FILES=' datas/loc/fr datas/cd?/loc_fr_*' CONTENT_GAME_L10N_GE_FILES=' datas/loc/ge datas/cd?/loc_ge_*' CONTENT_GAME_L10N_IT_FILES=' datas/loc/it datas/cd?/loc_it_*' CONTENT_GAME_L10N_SP_FILES=' datas/loc/sp datas/cd?/loc_sp_*' CONTENT_GAME_L10N_RU_FILES=' datas/loc/ru datas/cd?/loc_ru_*' CONTENT_GAME_L10N_US_FILES=' datas/loc/us datas/cd?/loc_us_*' CONTENT_GAME_DATA_FILES=' datas' USER_PERSISTENT_DIRECTORIES=' users' APP_MAIN_EXE='game.exe' PACKAGES_LIST=' PKG_BIN PKG_L10N PKG_DATA' PACKAGES_LIST_MULTILANG=' PKG_BIN PKG_L10N_FR PKG_L10N_GE PKG_L10N_IT PKG_L10N_SP PKG_L10N_RU PKG_L10N_US PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N_BASE PKG_DATA' ## Easier upgrades from pre-20240825.1 packages PKG_BIN_PROVIDES="${PKG_BIN_PROVIDES:-}"' retour-sur-lile-mysterieuse retour-sur-lile-mysterieuse-1' PKG_L10N_BASE_ID="${GAME_ID}-l10n" ## Single localisation installers PKG_L10N_ID_FR="${PKG_L10N_BASE_ID}-fr" PKG_L10N_ID_US="${PKG_L10N_BASE_ID}-us" ## Multi-languages installers PKG_L10N_FR_ID="${PKG_L10N_BASE_ID}-fr" PKG_L10N_GE_ID="${PKG_L10N_BASE_ID}-ge" PKG_L10N_IT_ID="${PKG_L10N_BASE_ID}-it" PKG_L10N_SP_ID="${PKG_L10N_BASE_ID}-sp" PKG_L10N_RU_ID="${PKG_L10N_BASE_ID}-ru" PKG_L10N_US_ID="${PKG_L10N_BASE_ID}-us" ## Single localisation installers PKG_L10N_DESCRIPTION_FR='French localization' PKG_L10N_DESCRIPTION_US='English localization' ## Multi-languages installers PKG_L10N_FR_DESCRIPTION='French localization' PKG_L10N_GE_DESCRIPTION='German localization' PKG_L10N_IT_DESCRIPTION='Italian localization' PKG_L10N_SP_DESCRIPTION='Spanish localization' PKG_L10N_RU_DESCRIPTION='Russian localization' PKG_L10N_US_DESCRIPTION='English localization' PKG_L10N_PROVIDES=" $PKG_L10N_BASE_ID" ## Easier upgrades from pre-20240825.1 packages PKG_L10N_PROVIDES="${PKG_L10N_PROVIDES:-}"' retour-sur-lile-mysterieuse-l10n retour-sur-lile-mysterieuse-1-l10n' PKG_L10N_FR_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_GE_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_IT_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_SP_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_RU_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_US_PROVIDES="$PKG_L10N_PROVIDES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' ## Easier upgrades from pre-20240825.1 packages PKG_DATA_PROVIDES="${PKG_DATA_PROVIDES:-}"' retour-sur-lile-mysterieuse-data retour-sur-lile-mysterieuse-1-data' # dos2unix is required to edit INI configuration files. REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} dos2unix" # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions. initialization_default "$@" # Extract game data. archive_extraction_default ## Fix game install path in configuration. case "$(current_archive)" in ('ARCHIVE_BASE_MULTILANG_'*) ini_file="${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/config.ini" ;; (*) ini_file="${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/__support/app/config.ini" ;; esac ini_field='PATH' # shellcheck disable=SC1003 ini_value='C:\\'"$(game_id)"'\\datas' sed_expression="s/^${ini_field}=.*/${ini_field}=${ini_value}/" dos2unix --quiet "$ini_file" sed --in-place --expression="$sed_expression" "$ini_file" unix2dos --quiet "$ini_file" ## Fix language setting for French localisation. case "$(current_archive)" in ('ARCHIVE_BASE_FR_'*) ini_file="${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/__support/app/config.ini" ini_field='LOC' # shellcheck disable=SC1003 ini_value='FR' sed_expression="s/^${ini_field}=.*/${ini_field}=${ini_value}/" dos2unix --quiet "$ini_file" sed --in-place --expression="$sed_expression" "$ini_file" unix2dos --quiet "$ini_file" ;; esac # Include game data. ## Include configuration file in localisation packages. case "$(current_archive)" in ('ARCHIVE_BASE_MULTILANG_'*) config_file='config.ini' config_directory_source="${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ini_field='LOC' dos2unix --quiet "${config_directory_source}/${config_file}" for lang in \ 'FR' \ 'GE' \ 'IT' \ 'RU' \ 'SP' \ 'US' do config_directory_destination="$(package_path "PKG_L10N_${lang}")$(path_game_data)" ini_value="$lang" sed_expression="s/^${ini_field}=.*/${ini_field}=${ini_value}/" mkdir --parents "$config_directory_destination" sed --expression="$sed_expression" \ "${config_directory_source}/${config_file}" \ > "${config_directory_destination}/${config_file}" unix2dos --quiet "${config_directory_destination}/${config_file}" done ;; esac content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation case "$(current_archive)" in ('ARCHIVE_BASE_MULTILANG_'*) case "$(messages_language)" in ('fr') message='version %s :' lang_fr='française' lang_ge='allemande' lang_it='italienne' lang_sp='espagnole' lang_ru='russe' lang_us='anglaise' ;; ('en'|*) message='%s version:' lang_fr='French' lang_ge='German' lang_it='Italian' lang_sp='Spanish' lang_ru='Russian' lang_us='English' ;; esac printf '\n' printf "$message" "$lang_fr" print_instructions 'PKG_BIN' 'PKG_L10N_FR' 'PKG_DATA' printf "$message" "$lang_ge" print_instructions 'PKG_BIN' 'PKG_L10N_GE' 'PKG_DATA' printf "$message" "$lang_it" print_instructions 'PKG_BIN' 'PKG_L10N_IT' 'PKG_DATA' printf "$message" "$lang_sp" print_instructions 'PKG_BIN' 'PKG_L10N_SP' 'PKG_DATA' printf "$message" "$lang_ru" print_instructions 'PKG_BIN' 'PKG_L10N_RU' 'PKG_DATA' printf "$message" "$lang_us" print_instructions 'PKG_BIN' 'PKG_L10N_US' 'PKG_DATA' ;; (*) print_instructions ;; esac # Clean up working_directory_cleanup exit 0 games/play-return-to-mysterious-island-2.sh0000755000000000000000000000774414471751340017763 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Return to Mysterious Island 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20240825.2 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='return-to-mysterious-island-2' GAME_NAME='Return to Mysterious Island 2' ARCHIVE_BASE_EN_0_NAME='setup_return_to_mysterious_island_2_1.06_(57220).exe' ARCHIVE_BASE_EN_0_MD5='790c8d739ba367c690e2f22d82b67aac' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_PART1_NAME='setup_return_to_mysterious_island_2_1.06_(57220)-1.bin' ARCHIVE_BASE_EN_0_PART1_MD5='48f4bef6406c13785014159432ce8cad' ARCHIVE_BASE_EN_0_SIZE='3547391' ARCHIVE_BASE_EN_0_VERSION='1.06-gog57220' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/return_to_mysterious_island_2' ARCHIVE_BASE_FR_0_NAME='setup_return_to_mysterious_island_2_1.06_(french)_(57220).exe' ARCHIVE_BASE_FR_0_MD5='d4781b8003efc975e92ea007b466c274' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_PART1_NAME='setup_return_to_mysterious_island_2_1.06_(french)_(57220)-1.bin' ARCHIVE_BASE_FR_0_PART1_MD5='5f83e965c02dfc9badaa04347bfd57b7' ARCHIVE_BASE_FR_0_SIZE='3547182' ARCHIVE_BASE_FR_0_VERSION='1.06-gog57220' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/return_to_mysterious_island_2' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' ijl15.dll ipworks8.dll spr.dll rtmi2.exe' CONTENT_GAME_L10N_FILES=' datas/loc/?? datas/cd1/loc_??_cmn.bf datas/cd1/loc_??_hig.bf datas/cd1/cmn_cmn.bf datas/cd2/loc_??_cmn.bf datas/cd2/loc_??_hig.bf datas/cd2/cmn_cmn.bf datas/cmn/cmn/ins/install.ins' CONTENT_GAME_DATA_FILES=' datas/cd1 datas/cd2 datas/cmn' CONTENT_DOC_L10N_FILES=' manual.pdf lisez-moi.txt readme.txt' WINE_PERSISTENT_DIRECTORIES=' ProgramData/RTMI2/Saves' APP_MAIN_EXE='rtmi2.exe' PACKAGES_LIST=' PKG_BIN PKG_L10N PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N_BASE PKG_DATA' ## Ensure easy upgrades from packages generated with pre-20240825.1 game scripts PKG_BIN_PROVIDES="${PKG_BIN_PROVIDES:-} retour-sur-lile-mysterieuse-2" 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_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' PKG_L10N_PROVIDES=" $PKG_L10N_BASE_ID" ## Ensure easy upgrades from packages generated with pre-20240825.1 game scripts PKG_L10N_PROVIDES="${PKG_L10N_PROVIDES:-} retour-sur-lile-mysterieuse-2-l10n" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' ## Ensure easy upgrades from packages generated with pre-20240825.1 game scripts PKG_DATA_PROVIDES="${PKG_DATA_PROVIDES:-} retour-sur-lile-mysterieuse-2-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data ## Install required configuration file. config_file_source="${PLAYIT_WORKDIR}/gamedata/__support/app/config.ini" config_file_destination="$(package_path 'PKG_L10N')$(path_game_data)/config.ini" case "$(current_archive)" in ('ARCHIVE_BASE_EN_'*) loc_string='UK' ;; ('ARCHIVE_BASE_FR_'*) loc_string='FR' ;; esac mkdir --parents "$(dirname "$config_file_destination")" sed "s/^LOC=../LOC=${loc_string}/" "$config_file_source" > "$config_file_destination" content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-road-96.sh0000755000000000000000000000452414471751340013346 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Road 96 # send your bug reports to bugs@dotslashplay.it ### script_version=20250927.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='road-96' GAME_NAME='Road 96' ARCHIVE_BASE_0_NAME='setup_road_96_1.04_(64bit)_(51993).exe' ARCHIVE_BASE_0_MD5='f0d88097b5e6c44687e073c4abef816b' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_road_96_1.04_(64bit)_(51993)-1.bin' ARCHIVE_BASE_0_PART1_MD5='608d310ebb3154a0e85bad40175f9189' ARCHIVE_BASE_0_PART2_NAME='setup_road_96_1.04_(64bit)_(51993)-2.bin' ARCHIVE_BASE_0_PART2_MD5='f0d523facddf8c40c18fd6b1721a8855' ARCHIVE_BASE_0_SIZE='14000000' ARCHIVE_BASE_0_VERSION='1.04-gog51993' ARCHIVE_BASE_0_URL='https://www.gog.com/game/road_96' UNITY3D_NAME='road 96' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_DATA_RESOURCES_FILES=" ${UNITY3D_NAME}_data/*.ress" ## TODO: Check if this alternative renderer is required. WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/DigixArt/Road 96' PACKAGES_LIST=' PKG_BIN PKG_DATA_RESOURCES PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINS=' PKG_DATA_RESOURCES' PKG_DATA_RESOURCES_ID="${PKG_DATA_ID}-resources" PKG_DATA_RESOURCES_DESCRIPTION="$PKG_DATA_DESCRIPTION - resources" # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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-roki.sh0000755000000000000000000000335514471751340013132 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Röki # send your bug reports to bugs@dotslashplay.it ### script_version=20240820.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='roki' GAME_NAME='Röki' ARCHIVE_BASE_0_NAME='setup_roki_roki_master_v3.3_(64bit)_(43089).exe' ARCHIVE_BASE_0_MD5='e0a31cf756e51d2d70ed8a7635bc1d19' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2200000' ARCHIVE_BASE_0_VERSION='3.3-gog43089' ARCHIVE_BASE_0_URL='https://www.gog.com/game/roki' UNITY3D_NAME='roki' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Polygon Treehouse/Roki' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-sable.sh0000755000000000000000000000346514471751340013256 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Sable # send your bug reports to bugs@dotslashplay.it ### script_version=20240408.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='sable' GAME_NAME='Sable' ARCHIVE_BASE_0_NAME='setup_sable_4.3.4_(64bit)_(60909).exe' ARCHIVE_BASE_0_MD5='5f11322d659afe9bb2c5434470a05445' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_sable_4.3.4_(64bit)_(60909)-1.bin' ARCHIVE_BASE_0_PART1_MD5='a1cc6c702d15a0fe99c00b913416f73b' ARCHIVE_BASE_0_SIZE='2300000' ARCHIVE_BASE_0_VERSION='4.3.4-gog60909' ARCHIVE_BASE_0_URL='https://www.gog.com/game/sable' UNITY3D_NAME='sable' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Shedworks/Sable/SaveData' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-sagebrush.sh0000755000000000000000000000334314471751340014146 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Sagebrush # send your bug reports to bugs@dotslashplay.it ### script_version=20240728.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='sagebrush' GAME_NAME='Sagebrush' ARCHIVE_BASE_0_NAME='sagebrush-windows-universal.zip' ARCHIVE_BASE_0_MD5='0af5ff01fdb4216f81b443a11c997ee1' ARCHIVE_BASE_0_SIZE='380000' ARCHIVE_BASE_0_VERSION='1.41b-itch1' ARCHIVE_BASE_0_URL='https://redactgames.itch.io/sagebrush' UNITY3D_NAME='Sagebrush' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Redact Games/Sagebrush' WINE_VIRTUAL_DESKTOP='auto' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-sally-face.sh0000755000000000000000000000343514471751340014205 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Sally Face # send your bug reports to bugs@dotslashplay.it ### script_version=20250515.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='sally-face' GAME_NAME='Sally Face' ARCHIVE_BASE_1_NAME='sally_face_1_5_42_57397.sh' ARCHIVE_BASE_1_MD5='8ae0cd174db19cfd396b71edf99a1d40' ARCHIVE_BASE_1_SIZE='1800000' ARCHIVE_BASE_1_VERSION='1.5.42-gog57397' ARCHIVE_BASE_1_URL='https://www.gog.com/game/sally_face' UNITY3D_NAME='Sally Face' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-samorost.sh0000755000000000000000000000647614471751340014044 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Anna Lea # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Samorost series: # - Samorost 1 # - Samorost 2 # - Samorost 3 # send your bug reports to bugs@dotslashplay.it ### script_version=20241202.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID_SAMOROST1='samorost-1' GAME_NAME_SAMOROST1='Samorost 1' GAME_ID_SAMOROST2='samorost-2' GAME_NAME_SAMOROST2='Samorost 2' GAME_ID_SAMOROST3='samorost-3' GAME_NAME_SAMOROST3='Samorost 3' ARCHIVE_BASE_SAMOROST1_0_NAME='setup_samorost_1_1.12_(47177).exe' ARCHIVE_BASE_SAMOROST1_0_MD5='3cbc500a060c6654b312c0e0adb04601' ARCHIVE_BASE_SAMOROST1_0_TYPE='innosetup' ARCHIVE_BASE_SAMOROST1_0_SIZE='77000' ARCHIVE_BASE_SAMOROST1_0_VERSION='1.1.12-gog47177' ARCHIVE_BASE_SAMOROST1_0_URL='https://www.gog.com/game/samorost_1' ARCHIVE_BASE_SAMOROST2_0_NAME='setup_samorost_2_2.34_(42685).exe' ARCHIVE_BASE_SAMOROST2_0_MD5='282e6c0c807678e19d4d0987b1d7b62f' ARCHIVE_BASE_SAMOROST2_0_TYPE='innosetup' ARCHIVE_BASE_SAMOROST2_0_SIZE='130000' ARCHIVE_BASE_SAMOROST2_0_VERSION='2.2.34-gog42685' ARCHIVE_BASE_SAMOROST2_0_URL='https://www.gog.com/game/samorost2' ARCHIVE_BASE_SAMOROST3_0_NAME='setup_samorost_3_1.467.0_(18751).exe' ARCHIVE_BASE_SAMOROST3_0_MD5='0edc5e0c7a71c41826999bb8bd4b32b0' ARCHIVE_BASE_SAMOROST3_0_TYPE='innosetup' ARCHIVE_BASE_SAMOROST3_0_SIZE='1200000' ARCHIVE_BASE_SAMOROST3_0_VERSION='3.1.467.0-gog18751' ARCHIVE_BASE_SAMOROST3_0_URL='https://www.gog.com/game/samorost_3_cosmic_edition' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' adobe air samorost1.exe samorost2.exe samorost3.exe' CONTENT_GAME_DATA_FILES=' data meta-inf' WINE_PERSISTENT_DIRECTORIES_SAMOROST1=' users/${USER}/AppData/Roaming/amanitadesign.samorost1' ## "samorost3" despite the game being Samorost 2 is expected WINE_PERSISTENT_DIRECTORIES_SAMOROST2=' users/${USER}/AppData/Roaming/amanitadesign.samorost3' WINE_PERSISTENT_DIRECTORIES_SAMOROST3=' users/${USER}/AppData/Roaming/amanita-design.samorost3' APP_MAIN_EXE_SAMOROST1='samorost1.exe' APP_MAIN_EXE_SAMOROST2='samorost2.exe' APP_MAIN_EXE_SAMOROST3='samorost3.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID_SAMOROST1="${GAME_ID_SAMOROST1}-data" PKG_DATA_ID_SAMOROST2="${GAME_ID_SAMOROST2}-data" PKG_DATA_ID_SAMOROST3="${GAME_ID_SAMOROST3}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 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-scarlet-hood-and-the-wicked-wood.sh0000755000000000000000000000405614471751340020301 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Scarlet Hood and the Wicked Wood # send your bug reports to bugs@dotslashplay.it ### script_version=20250930.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='scarlet-hood-and-the-wicked-wood' GAME_NAME='Scarlet Hood and the Wicked Wood' ARCHIVE_BASE_0_NAME='scarlet_hood_and_the_wicked_wood_1_0_7_47145.sh' ARCHIVE_BASE_0_MD5='4661f6c64736fefe383c0c92860a5513' ARCHIVE_BASE_0_SIZE='3200000' ARCHIVE_BASE_0_VERSION='1.0.7-gog47145' ARCHIVE_BASE_0_URL='https://www.gog.com/game/scarlet_hood_and_the_wicked_wood' UNITY3D_NAME='ScarletHood' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_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-sherlock-holmes-2-the-case-of-the-silver-earring.sh0000755000000000000000000000464314471751340023223 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Sherlock Holmes: The Case of the Silver Earring # send your bug reports to bugs@dotslashplay.it ### script_version=20250115.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='sherlock-holmes-2-the-case-of-the-silver-earring' GAME_NAME='Sherlock Holmes: The Case of the Silver Earring' ARCHIVE_BASE_0_NAME='setup_sherlock_holmes_secret_of_the_silver_earring_2.1.0.9.exe' ARCHIVE_BASE_0_MD5='877e21a4e439793df05acb06bcd27817' ## Do not convert the paths to lowercase, to avoid breaking a puzzle ## cf. https://forge.dotslashplay.it/play.it/games-adventure/-/issues/3 ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS=' ' ARCHIVE_BASE_0_SIZE='1500000' ARCHIVE_BASE_0_VERSION='1.0-gog2.1.0.9' ARCHIVE_BASE_0_URL='https://www.gog.com/game/sherlock_holmes_secret_of_the_silver_earring' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' binkw32.dll game.exe setup.ini' CONTENT_GAME_DATA_FILES=' characters fonts graphics movies scenes script text sound.0000 textures.0000' CONTENT_DOC_DATA_FILES=' manual.pdf' USER_PERSISTENT_DIRECTORIES=' save' USER_PERSISTENT_FILES=' setup.ini' APP_MAIN_EXE='game.exe' APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=101 --language=1049' 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-sherlock-holmes-3-the-awakened.sh0000755000000000000000000000634514471751340017762 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Sherlock Holmes: The Awakened # send your bug reports to bugs@dotslashplay.it ### script_version=20240826.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='sherlock-holmes-3-the-awakened' GAME_NAME='Sherlock Holmes: The Awakened' ARCHIVE_BASE_0_NAME='setup_sherlock_holmes_the_awakened_remastered_2.0.0.3.exe' ARCHIVE_BASE_0_MD5='81f3428e81c91f110d8c7cab609daa4f' ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS='--lowercase --gog' ARCHIVE_BASE_0_PART1_NAME='setup_sherlock_holmes_the_awakened_remastered_2.0.0.3-1.bin' ARCHIVE_BASE_0_PART1_MD5='3b87ccb9783fe181e2433f2ea8a31b08' ARCHIVE_BASE_0_PART1_TYPE='rar' ARCHIVE_BASE_0_SIZE='3200000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.3' ARCHIVE_BASE_0_URL='https://www.gog.com/game/sherlock_holmes_the_awakened_remastered' CONTENT_PATH_DEFAULT='game' CONTENT_GAME_BIN_FILES=' game.exe *.dll' CONTENT_GAME0_BIN_PATH='support/app' CONTENT_GAME0_BIN_FILES=' game.ini user.ini' CONTENT_GAME_DATA_FILES=' 000 logo shaders.0050 splash_screen.dds data.txt' ## TODO: We should divert a single path, and set the other localized paths as symbolic links WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/Games/sherlock holmes - the awakened - remastered users/${USER}/AppData/Roaming/Games/sherlock holmes - la nuit des sacrifiés - remasterisée' ## Ensure availability of required library PhysXLoader.dll. WINE_WINETRICKS_VERBS='physx' ## This is only required because of the lang setting tweak, ## and could be dropped if a localization package were used instead USER_PERSISTENT_FILES=' game.ini' APP_MAIN_EXE='game.exe' APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=101 --language=1024' ## Set game lang based on current locale ## TODO: This could be handled by a dedicated localization package APP_MAIN_PRERUN=' # Set game lang based on current locale game_config="${USER_PERSISTENT_PATH}/game.ini" case "${LANG%_*}" in ("de"|"en"|"fr"|"it"|"pl"|"ru") sed --in-place "s/\(lang\s*\)= .*/\\1= \"${LANG%_*}\"/" "$game_config" ;; (*) sed --in-place "s/\(lang\s*\)= .*/\\1= \"en\"/" "$game_config" ;; esac ' 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-sherlock-holmes-4-nemesis.sh0000755000000000000000000000475714471751340017076 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Sherlock Holmes: Nemesis # send your bug reports to bugs@dotslashplay.it ### script_version=20240826.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='sherlock-holmes-4-nemesis' GAME_NAME='Sherlock Holmes: Nemesis' ARCHIVE_BASE_0_NAME='setup_sherlock_holmes_nemesis_remastered_2.0.0.2.exe' ARCHIVE_BASE_0_MD5='80093682c232a13d7b246c490ff67cf1' ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS='--gog' ARCHIVE_BASE_0_PART1_NAME='setup_sherlock_holmes_nemesis_remastered_2.0.0.2-1.bin' ARCHIVE_BASE_0_PART1_MD5='5c50ae6b9fdf9eeb33dcdb7c26b2904e' ARCHIVE_BASE_0_TYPE='rar' ARCHIVE_BASE_0_SIZE='2800000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.2' ARCHIVE_BASE_0_URL='https://www.gog.com/game/sherlock_holmes_nemesis_remastered' CONTENT_PATH_DEFAULT='game' CONTENT_GAME_BIN_FILES=' game.exe *.dll' CONTENT_GAME0_BIN_PATH='support/app' CONTENT_GAME0_BIN_FILES=' game.ini user.ini' CONTENT_GAME_DATA_FILES=' 000 logo shaders.0050 splash_screen.dds data.txt' ## TODO: Check if write access to these files is actually required USER_PERSISTENT_FILES=' *.ini' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/Games/sherlock holmes versus arsene lupin' ## Install required PhysX libraries. WINE_WINETRICKS_VERBS='physx' APP_MAIN_EXE='game.exe' APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=101 --language=0' 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-sherlock-holmes-5-versus-jack-the-ripper.sh0000755000000000000000000001021414471751340021727 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Sherlock Holmes Versus Jack the Ripper # send your bug reports to bugs@dotslashplay.it ### script_version=20240826.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='sherlock-holmes-5-versus-jack-the-ripper' GAME_NAME='Sherlock Holmes Versus Jack the Ripper' ARCHIVE_BASE_0_NAME='setup_sherlock_holmes_vs_jack_the_ripper_2.0.0.2.exe' ARCHIVE_BASE_0_MD5='65d2d3ee20a5d4db4017c90701ab91cd' ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS='--lowercase --gog' ARCHIVE_BASE_0_PART1_NAME='setup_sherlock_holmes_vs_jack_the_ripper_2.0.0.2-1.bin' ARCHIVE_BASE_0_PART1_MD5='17c054477fe1fe12e79513ae71ff1a5d' ARCHIVE_BASE_0_PART1_EXTRACTOR='unar' ARCHIVE_BASE_0_PART2_NAME='setup_sherlock_holmes_vs_jack_the_ripper_2.0.0.2-2.bin' ARCHIVE_BASE_0_PART2_MD5='26eebfcd9a171eb3a380876681803597' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.2' ARCHIVE_BASE_0_SIZE='3200000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/sherlock_holmes_versus_jack_the_ripper' CONTENT_PATH_DEFAULT='game' CONTENT_GAME_BIN_FILES=' *.dll *.exe' CONTENT_GAME_L10N_EN_FILES=' 000/en.pak 000/sounds_en.pak' CONTENT_GAME_L10N_FR_FILES=' 000/fr.pak 000/sounds_fr.pak' CONTENT_GAME_DATA_FILES=' logo data.txt shaders.0050 splash_screen.jpg 000/game.pak 000/sounds.pak 000/texture.pak 000/texture3d.pak' CONTENT_GAME0_BIN_PATH='support/app' CONTENT_GAME0_BIN_FILES=' user.ini' ## TODO: We should divert a single path, and set the other localized paths as symbolic links WINE_PERSISTENT_DIRECTORIES=" users/\${USER}/AppData/Roaming/Games/sherlock holmes versus jack the ripper users/\${USER}/AppData/Roaming/Games/sherlock holmes contre jack l'eventreur" ## Install PhysX in the WINE prefix ## Provided installers can not be used: ## - with PhysX-9.13.0604-SystemSoftware-Legacy.msi, the game fails to load PhysX ## - with PhysX-9.15.0428-SystemSoftware.exe, PhysX installation fails WINE_WINETRICKS_VERBS='physx' APP_MAIN_EXE='game.exe' APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --language=0' PACKAGES_LIST=' PKG_BIN PKG_L10N_EN PKG_L10N_FR PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N PKG_DATA' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_EN_ID="${PKG_L10N_ID}-en" PKG_L10N_FR_ID="${PKG_L10N_ID}-fr" PKG_L10N_EN_DESCRIPTION='English localization' PKG_L10N_FR_DESCRIPTION='French localization' PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_EN_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_FR_PROVIDES="$PKG_L10N_PROVIDES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' ## Include language-specific configuration file install -D --mode=644 \ "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/_loc/en" \ "$(package_path 'PKG_L10N_EN')$(path_game_data)/game.ini" install -D --mode=644 \ "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/_loc/fr" \ "$(package_path 'PKG_L10N_FR')$(path_game_data)/game.ini" content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation case "$(messages_language)" in ('fr') lang_string='version %s :' lang_en='anglaise' lang_fr='française' ;; ('en'|*) lang_string='%s version:' lang_en='English' lang_fr='French' ;; esac printf '\n' printf "$lang_string" "$lang_en" print_instructions 'PKG_L10N_EN' 'PKG_DATA' 'PKG_BIN' printf "$lang_string" "$lang_fr" print_instructions 'PKG_L10N_FR' 'PKG_DATA' 'PKG_BIN' # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-sherlock-holmes-6-the-testament-of-sherlock-holmes.sh0000755000000000000000000000521214471751340023701 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The Testament of Sherlock Holmes # send your bug reports to bugs@dotslashplay.it ### script_version=20240826.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='sherlock-holmes-6-the-testament-of-sherlock-holmes' GAME_NAME='The Testament of Sherlock Holmes' ARCHIVE_BASE_0_NAME='setup_testament_of_sherlock_holmes_2.0.0.5.exe' ARCHIVE_BASE_0_MD5='5942a1e7b0f21d5d4f08c3b3e0bb40e3' ARCHIVE_BASE_0_EXTRACTOR='innoextract' ## TODO: Check if --lowercase is really useful when called alongside --gog ARCHIVE_BASE_0_EXTRACTOR_OPTIONS='--lowercase --gog' ARCHIVE_BASE_0_PART1_NAME='setup_testament_of_sherlock_holmes_2.0.0.5-1.bin' ARCHIVE_BASE_0_PART1_MD5='5b223e42466e6be155fc0da569848a21' ARCHIVE_BASE_0_PART1_TYPE='rar' ARCHIVE_BASE_0_PART2_NAME='setup_testament_of_sherlock_holmes_2.0.0.5-2.bin' ARCHIVE_BASE_0_PART2_MD5='e9b3a3ce285d95af9937e1269b82cdbb' ARCHIVE_BASE_0_SIZE='10000000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.5' ARCHIVE_BASE_0_URL='https://www.gog.com/game/testament_of_sherlock_holmes_the' CONTENT_PATH_DEFAULT='game' CONTENT_GAME_BIN_FILES=' d3dx9_32.dll D3DX9_42.dll msvcr71.dll game.exe game.ini' CONTENT_GAME_DATA_FILES=' 000 001 002 003 004 logo data.txt splash_screen.jpg *.0050' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/Frogwares/The Testament of Sherlock Holmes' ## Ensure availability of required library PhysXLoader.dll. WINE_WINETRICKS_VERBS='physx' APP_MAIN_EXE='game.exe' APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=101 --language=1033' 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-sherlock-holmes-7-crimes-and-punishments.sh0000755000000000000000000000460614471751340022024 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Sherlock Holmes: Crimes and Punishments # send your bug reports to bugs@dotslashplay.it ### script_version=20240826.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='sherlock-holmes-7-crimes-and-punishments' GAME_NAME='Sherlock Holmes: Crimes and Punishments' ARCHIVE_BASE_0_NAME='setup_sherlock_holmes_crimes_and_punishments_76411_(32864).exe' ARCHIVE_BASE_0_MD5='b9c8bcd83540b4accfa03ea016ab75ba' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_sherlock_holmes_crimes_and_punishments_76411_(32864)-1.bin' ARCHIVE_BASE_0_PART1_MD5='757b844b87696a6ab9e044a354189d6f' ARCHIVE_BASE_0_PART2_NAME='setup_sherlock_holmes_crimes_and_punishments_76411_(32864)-2.bin' ARCHIVE_BASE_0_PART2_MD5='d786ed336b2c2f48de3289dfce038081' ARCHIVE_BASE_0_VERSION='76411-gog32864' ARCHIVE_BASE_0_SIZE='9200000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/sherlock_holmes_crimes_and_punishments' CONTENT_PATH_DEFAULT='.' ## TODO: Check if the inclusion of the "app" directory is required. CONTENT_GAME_BIN_FILES=' app binaries fdk' CONTENT_GAME_DATA_FILES=' engine sh7game' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/My Games/Sherlock Holmes - Crimes and Punishments/SH7Game' APP_MAIN_EXE='binaries/win32/sherlock.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-sherlock-holmes-8-the-devils-daughter.sh0000755000000000000000000001041514471751340021270 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Sherlock Holmes: The Devil's Daughter # send your bug reports to bugs@dotslashplay.it ### script_version=20240826.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='sherlock-holmes-8-the-devils-daughter' GAME_NAME='Sherlock Holmes: The Devilʼs Daughter' ARCHIVE_BASE_1_NAME='setup_sherlock_holmes_the_devils_daughter_updated_version_(64bit)_(47726).exe' ARCHIVE_BASE_1_MD5='a2ce34b1249b455c0bab0cde9f326ac2' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_sherlock_holmes_the_devils_daughter_updated_version_(64bit)_(47726)-1.bin' ARCHIVE_BASE_1_PART1_MD5='19479d302c3cb9f0fc7dd4900f6973c0' ARCHIVE_BASE_1_PART2_NAME='setup_sherlock_holmes_the_devils_daughter_updated_version_(64bit)_(47726)-2.bin' ARCHIVE_BASE_1_PART2_MD5='03a63eca21c2d9daa1575c4207aa7f72' ARCHIVE_BASE_1_PART3_NAME='setup_sherlock_holmes_the_devils_daughter_updated_version_(64bit)_(47726)-3.bin' ARCHIVE_BASE_1_PART3_MD5='a7984be1a7dd16f9de45a768d5b4ebd5' ARCHIVE_BASE_1_PART4_NAME='setup_sherlock_holmes_the_devils_daughter_updated_version_(64bit)_(47726)-4.bin' ARCHIVE_BASE_1_PART4_MD5='efe77f56083e306e09262b88bcd02f11' ARCHIVE_BASE_1_SIZE='20000000' ARCHIVE_BASE_1_VERSION='1.0-gog47726' ARCHIVE_BASE_1_URL='https://www.gog.com/game/sherlock_holmes_the_devils_daughter' ARCHIVE_BASE_0_NAME='setup_sherlock_holmes_-_the_devils_daughter_gog-1_(18233).exe' ARCHIVE_BASE_0_MD5='4832ade71deb5e113329a81f7c28ada3' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_sherlock_holmes_-_the_devils_daughter_gog-1_(18233)-1.bin' ARCHIVE_BASE_0_PART1_MD5='46292f406b40cdcbe1c49177132284c8' ARCHIVE_BASE_0_PART2_NAME='setup_sherlock_holmes_-_the_devils_daughter_gog-1_(18233)-2.bin' ARCHIVE_BASE_0_PART2_MD5='dbffed9110dfb7743aaf2516b805e7cb' ARCHIVE_BASE_0_PART3_NAME='setup_sherlock_holmes_-_the_devils_daughter_gog-1_(18233)-3.bin' ARCHIVE_BASE_0_PART3_MD5='68858920f4e670a8377c24c8a21e6733' ARCHIVE_BASE_0_SIZE='16000000' ARCHIVE_BASE_0_VERSION='1.0-gog18233' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_BIN_FILES=' binaries engine fdk' CONTENT_GAME_DATA_TEXTURES_FILES=' sh8game/cookedpcconsole/*.tfc' CONTENT_GAME_DATA_PART1_FILES=' sh8game/cookedpcconsole/sub_*' CONTENT_GAME_DATA_PART2_FILES=' sh8game' WINE_PERSISTENT_DIRECTORIES=" users/\${USER}/Documents/My Games/Sherlock Holmes - The Devil's Daughter GOG/SH8Game" WINE_WINEPREFIX_TWEAKS='mono' ## Install required Visual C++ 2012 libraries. WINE_WINETRICKS_VERBS='vcrun2012' APP_MAIN_EXE='binaries/win64/sherlock.exe' ## The game crashes on launch if these runtime options are not set. APP_MAIN_OPTIONS='-NOSCREENMESSAGES -SEEKFREELOADINGPCCONSOLE' ## Explicitly set the application type, to prevent it from being mistakingly identified as a Mono game. APP_MAIN_TYPE='wine' PACKAGES_LIST=' PKG_BIN PKG_DATA_TEXTURES PKG_DATA_PART1 PKG_DATA_PART2' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA_TEXTURES PKG_DATA_PART1 PKG_DATA_PART2' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_PART1_ID="${PKG_DATA_ID}-part1" PKG_DATA_PART2_ID="${PKG_DATA_ID}-part2" PKG_DATA_TEXTURES_ID="${PKG_DATA_ID}-textures" PKG_DATA_DESCRIPTION='data' PKG_DATA_PART1_DESCRIPTION="$PKG_DATA_DESCRIPTION - part 1" PKG_DATA_PART2_DESCRIPTION="$PKG_DATA_DESCRIPTION - part 2" PKG_DATA_TEXTURES_DESCRIPTION="$PKG_DATA_DESCRIPTION - textures" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA_PART2' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-silence.sh0000755000000000000000000000534314471751340013607 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Silence # send your bug reports to bugs@dotslashplay.it ### script_version=20240901.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='silence' GAME_NAME='Silence' ARCHIVE_BASE_0_NAME='gog_silence_2.1.0.3.sh' ARCHIVE_BASE_0_MD5='e00082adcfa826eae91b9d92a386f0d5' ARCHIVE_BASE_0_SIZE='7400000' ARCHIVE_BASE_0_VERSION='1.2.20280-gog2.1.0.3' ARCHIVE_BASE_0_URL='https://www.gog.com/game/silence' UNITY3D_NAME='Silence' CONTENT_PATH_DEFAULT='data/noarch/game' ## TODO: An explicit list of plugins to include should be set using UNITY3D_PLUGINS CONTENT_GAME0_BIN64_FILES=" ${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_GAME0_BIN32_FILES=" ${UNITY3D_NAME}_Data/Plugins/x86" 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 ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Drop Steam-specific plugin ## TODO: This should be dropped in favour of UNITY3D_PLUGINS rm \ "$(unity3d_name)_Data/Plugins/x86/libDaedalic.Ecosystems.Steam.External.so" \ "$(unity3d_name)_Data/Plugins/x86_64/libDaedalic.Ecosystems.Steam.External.so" ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-softporn-adventure.sh0000755000000000000000000000335314471751340016031 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Softporn Adventure # send your bug reports to bugs@dotslashplay.it ### script_version=20240621.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='softporn-adventure' GAME_NAME='Softporn Adventure' ## This installer is no longer distributed by gog.com. ARCHIVE_BASE_0_NAME='gog_softporn_adventure_2.0.0.1.sh' ARCHIVE_BASE_0_MD5='1e51094f928757140c5a0dacc70773c0' ARCHIVE_BASE_0_SIZE='11000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.1' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' FILE_ID.DIZ SOFTPORN.BIN SOFTPORN.EXE SOFTPORN.LOC SOFTPORN.TXT' CONTENT_DOC_MAIN_PATH='data/noarch/docs' CONTENT_DOC_MAIN_FILES=' SOFTPORN.DOC' USER_PERSISTENT_FILES=' *.GAM' APP_MAIN_EXE='SOFTPORN.EXE' APP_MAIN_ICON='../support/icon.png' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-solstice.sh0000755000000000000000000000366314471751340014015 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Solstice # send your bug reports to bugs@dotslashplay.it ### script_version=20250930.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='solstice' GAME_NAME='Solstice' ARCHIVE_BASE_0_NAME='setup_solstice_1.4.13_(33035).exe' ARCHIVE_BASE_0_MD5='4e5cd3affaf723a263ad828d49920e51' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='360000' ARCHIVE_BASE_0_VERSION='1.4.13-gog33035' ARCHIVE_BASE_0_URL='https://www.gog.com/game/solstice' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' gog.gml.dll solstice.exe' ## TODO: Check if the GOG Galaxy library is required. CONTENT_GAME0_BIN_FILES=' galaxy.dll' CONTENT_GAME_DATA_FILES=' data.win *.ogg' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/Solstice' APP_MAIN_EXE='solstice.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-south-scrimshaw-part-1.sh0000755000000000000000000000344214471751340016425 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # South Scrimshaw, Part One # send your bug reports to bugs@dotslashplay.it ### script_version=20250930.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='south-scrimshaw-part-1' GAME_NAME='South Scrimshaw, Part One' ARCHIVE_BASE_0_NAME='south_scrimshaw_part_one_1_0_66489.sh' ARCHIVE_BASE_0_MD5='b68e7e8fa9491d38a55f007911b94da0' ARCHIVE_BASE_0_SIZE='1694858' ARCHIVE_BASE_0_VERSION='1.0-gog66489' ARCHIVE_BASE_0_URL='https://www.gog.com/game/south_scrimshaw_part_one' CONTENT_PATH_DEFAULT='data/noarch/game/game' CONTENT_GAME_MAIN_FILES=' cache video archive.rpa script_version.txt' APP_MAIN_TYPE='renpy' APP_MAIN_ICON='../SouthScrimshaw.exe' ## Easier upgrades from pre-20250930.1 packages. PKG_MAIN_PROVIDES="${PKG_MAIN_PROVIDES:-} south-scrimshaw-part-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 content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-starship-titanic.sh0000755000000000000000000000313514471751340015450 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Starship Titanic # send your bug reports to bugs@dotslashplay.it ### script_version=20240619.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='starship-titanic' GAME_NAME='Starship Titanic' ARCHIVE_BASE_0_NAME='starship_titanic_1_0_53361.sh' ARCHIVE_BASE_0_MD5='a41b4da053b7d4191e0d864bc52e6a89' ARCHIVE_BASE_0_SIZE='1400000' ARCHIVE_BASE_0_VERSION='1.00.42-gog53361' ARCHIVE_BASE_0_URL='https://www.gog.com/game/starship_titanic' CONTENT_PATH_DEFAULT='data/noarch/game/data' CONTENT_GAME_MAIN_FILES=' Assets newgame.st' CONTENT_DOC_MAIN_FILES=' *.doc *.txt' APP_MAIN_SCUMMID='titanic:titanic' APP_MAIN_ICON='../../support/icon.png' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-state-of-mind.sh0000755000000000000000000000670014471751340014632 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # State of Mind # send your bug reports to bugs@dotslashplay.it ### script_version=20250115.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='state-of-mind' GAME_NAME='State of Mind' ARCHIVE_BASE_0_NAME='state_of_mind_1_2_24280_24687.sh' ARCHIVE_BASE_0_MD5='e27071ec1041dc7e529f5fe590783f72' ARCHIVE_BASE_0_SIZE='21000000' ARCHIVE_BASE_0_VERSION='1.2.24280-gog24687' ARCHIVE_BASE_0_URL='https://www.gog.com/game/state_of_mind' UNREALENGINE4_NAME='StateOfMind' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME0_BIN_FILES=' StateOfMind.cfg' CONTENT_GAME_DATA_CHUNK1_FILES=" ${UNREALENGINE4_NAME}/Content/Paks/pakchunk0-LinuxNoEditor.pak ${UNREALENGINE4_NAME}/Content/Paks/pakchunk1-LinuxNoEditor.pak ${UNREALENGINE4_NAME}/Content/Paks/pakchunk2-LinuxNoEditor.pak" CONTENT_GAME_DATA_CHUNK2_FILES=" ${UNREALENGINE4_NAME}/Content/Paks/pakchunk3-LinuxNoEditor.pak ${UNREALENGINE4_NAME}/Content/Paks/pakchunk4-LinuxNoEditor.pak ${UNREALENGINE4_NAME}/Content/Paks/pakchunk5-LinuxNoEditor.pak" CONTENT_GAME_DATA_CHUNK3_FILES=" ${UNREALENGINE4_NAME}/Content/Paks/pakchunk6-LinuxNoEditor.pak ${UNREALENGINE4_NAME}/Content/Paks/pakchunk7-LinuxNoEditor.pak" CONTENT_GAME0_DATA_FILES=' StateOfMind.png version.txt' CONTENT_DOC_DATA_FILES=" LICENSE.txt" APP_MAIN_EXE="${UNREALENGINE4_NAME}/Binaries/Linux/${UNREALENGINE4_NAME}-Linux-Shipping" APP_MAIN_ICON='StateOfMind.png' PACKAGES_LIST=' PKG_BIN PKG_DATA_CHUNK1 PKG_DATA_CHUNK2 PKG_DATA_CHUNK3 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 libopenal.so.1 libpthread.so.0 librt.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_DATA_CHUNK1 PKG_DATA_CHUNK2 PKG_DATA_CHUNK3' PKG_DATA_CHUNK1_ID="${PKG_DATA_ID}-chunk1" PKG_DATA_CHUNK2_ID="${PKG_DATA_ID}-chunk2" PKG_DATA_CHUNK3_ID="${PKG_DATA_ID}-chunk3" PKG_DATA_CHUNK1_DESCRIPTION="$PKG_DATA_DESCRIPTION - chunk 1" PKG_DATA_CHUNK2_DESCRIPTION="$PKG_DATA_DESCRIPTION - chunk 2" PKG_DATA_CHUNK3_DESCRIPTION="$PKG_DATA_DESCRIPTION - chunk 3" ## Ensure easy upgrade from packages generated with pre-20230410.1 game scripts. PKG_DATA_CHUNK1_PROVIDES="${PKG_DATA_CHUNK1_PROVIDES:-} state-of-mind-paks-1" PKG_DATA_CHUNK2_PROVIDES="${PKG_DATA_CHUNK2_PROVIDES:-} state-of-mind-paks-2" PKG_DATA_CHUNK3_PROVIDES="${PKG_DATA_CHUNK3_PROVIDES:-} state-of-mind-paks-3" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # 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-still-there.sh0000755000000000000000000000334114471751340014415 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Still There # send your bug reports to bugs@dotslashplay.it ### script_version=20240707.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='still-there' GAME_NAME='Still There' ARCHIVE_BASE_0_NAME='setup_still_there_1.07_(64bit)_(40001).exe' ARCHIVE_BASE_0_MD5='b95f8676d7c574b49ff7cf258f5b606d' ARCHIVE_BASE_0_SIZE='400000' ARCHIVE_BASE_0_VERSION='1.07-gog40001' ARCHIVE_BASE_0_URL='https://www.gog.com/game/still_there' UNITY3D_NAME='still there' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/GhostShark Games/Still There' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-strangeland.sh0000755000000000000000000000474714471751340014476 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Strangeland # send your bug reports to bugs@dotslashplay.it ### script_version=20241215.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='strangeland' GAME_NAME='Strangeland' ARCHIVE_BASE_4_NAME='strangeland_3_5c_78464.sh' ARCHIVE_BASE_4_MD5='6be43bac931e5350ab03f671ed37ebf9' ARCHIVE_BASE_4_SIZE='4301875' ARCHIVE_BASE_4_VERSION='3.5c-gog78464' ARCHIVE_BASE_4_URL='https://www.gog.com/game/strangeland' ARCHIVE_BASE_3_NAME='strangeland_3_57270.sh' ARCHIVE_BASE_3_MD5='68e18616d01d902c0982a3a1d1a8e3cd' ARCHIVE_BASE_3_SIZE='4400000' ARCHIVE_BASE_3_VERSION='3.0-gog57270' ARCHIVE_BASE_2_NAME='strangeland_2_7_55701.sh' ARCHIVE_BASE_2_MD5='719e693167ba8014aea03b858d9cd9c1' ARCHIVE_BASE_2_SIZE='4400000' ARCHIVE_BASE_2_VERSION='2.7-gog55701' ARCHIVE_BASE_1_NAME='strangeland_2_6c_54396.sh' ARCHIVE_BASE_1_MD5='afa5999b3074480966c2226f2356f6b9' ARCHIVE_BASE_1_SIZE='4400000' ARCHIVE_BASE_1_VERSION='2.6c-gog54396' ARCHIVE_BASE_0_NAME='strangeland_2_3a_49446.sh' ARCHIVE_BASE_0_MD5='a313a7ee812815b5e53ebc643c53da76' ARCHIVE_BASE_0_SIZE='4400000' ARCHIVE_BASE_0_VERSION='2.3a-gog49446' CONTENT_PATH_DEFAULT='data/noarch/game/data' CONTENT_GAME_MAIN_FILES=' Music Sounds *.ags *.cfg *.exe *.ogv *.tra *.vox' ## TODO: Check if this "ENGV.tmp" file is actually useful CONTENT_GAME0_MAIN_FILES=' ENGV.tmp' CONTENT_DOC_MAIN_FILES=' licenses' APP_MAIN_SCUMMID='ags:strangeland' ## Strangeland.exe is too big, wrestool crashes when trying to handle it. APP_MAIN_ICON='winsetup.exe' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-subject-13.sh0000755000000000000000000000336514471751340014047 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Subject 13 # send your bug reports to bugs@dotslashplay.it ### script_version=20241103.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='subject-13' GAME_NAME='Subject 13' ARCHIVE_BASE_0_NAME='setup_subject_13_2.0.0.1.exe' ARCHIVE_BASE_0_MD5='90961ce1888fb4f0c06bd6b9b0d8470d' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2000000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.1' ARCHIVE_BASE_0_URL='https://www.gog.com/game/subject_13' UNITY3D_NAME='subject13' CONTENT_PATH_DEFAULT='app' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Microids/Subject13' 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-sumatra-fate-of-yandi.sh0000755000000000000000000000324714471751340016263 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Sumatra: Fate of Yandi # send your bug reports to bugs@dotslashplay.it ### script_version=20250515.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='sumatra-fate-of-yandi' GAME_NAME='Sumatra: Fate of Yandi' ARCHIVE_BASE_0_NAME='setup_sumatra_fate_of_yandi_1.2_(56037).exe' ARCHIVE_BASE_0_MD5='60b1734aa9e06bb5077f48200c0106bf' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='290000' ARCHIVE_BASE_0_VERSION='1.2-gog56037' ARCHIVE_BASE_0_URL='https://www.gog.com/game/sumatra_fate_of_yandi' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES=' *.cfg *.exe *.tra *.vox' APP_MAIN_SCUMMID='ags:sumatra' APP_MAIN_ICON='sumatra fate of yandi.exe' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-summer-in-mara.sh0000755000000000000000000000370414471751340015016 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Summer in Mara # send your bug reports to bugs@dotslashplay.it ### script_version=20240610.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='summer-in-mara' GAME_NAME='Summer in Mara' ARCHIVE_BASE_0_NAME='setup_summer_in_mara_1.9_(39424).exe' ARCHIVE_BASE_0_MD5='d3fc24a65ff2adf8c42bb6fda639dc17' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1800000' ARCHIVE_BASE_0_VERSION='1.07-gog39424' ARCHIVE_BASE_0_URL='https://www.gog.com/game/summer_in_mara' UNITY3D_NAME='summer in mara' CONTENT_PATH_DEFAULT='.' ## The game works with the default wined3d renderer, ## but performances are poor. WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Chibig/Summer in Mara' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-sunlight.sh0000755000000000000000000000334414471751340014021 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Sunlight # send your bug reports to bugs@dotslashplay.it ### script_version=20250930.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='sunlight' GAME_NAME='Sunlight' ARCHIVE_BASE_0_NAME='Sunlight v1.1.5RC 211801 Windows.zip' ARCHIVE_BASE_0_MD5='fbe2840776c841d4582f40e68acfe8aa' ARCHIVE_BASE_0_SIZE='980000' ARCHIVE_BASE_0_VERSION='1.1.5RC.211801-itch1' ARCHIVE_BASE_0_URL='https://krillbitestudio.itch.io/sunlight' UNITY3D_NAME='Sunlight' CONTENT_PATH_DEFAULT='Sunlight v1.1.5RC 211801 Windows' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_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-syberia-3.sh0000755000000000000000000001017214471751340013757 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Syberia 3 # send your bug reports to bugs@dotslashplay.it ### script_version=20240826.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='syberia-3' GAME_NAME='Syberia 3' ARCHIVE_BASE_0_NAME='setup_syberia3_1.5.07_(16263).exe' ARCHIVE_BASE_0_MD5='0acae86c6b8731b59813f7e52b65dadd' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_syberia3_1.5.07_(16263)-1.bin' ARCHIVE_BASE_0_PART1_MD5='233220fefc9729dc0929807b303796b6' ARCHIVE_BASE_0_PART2_NAME='setup_syberia3_1.5.07_(16263)-2.bin' ARCHIVE_BASE_0_PART2_MD5='74b45a17b099e37118b60c949138a641' ARCHIVE_BASE_0_PART3_NAME='setup_syberia3_1.5.07_(16263)-3.bin' ARCHIVE_BASE_0_PART3_MD5='0f835206b87821446fd93c2c739a285a' ARCHIVE_BASE_0_PART4_NAME='setup_syberia3_1.5.07_(16263)-4.bin' ARCHIVE_BASE_0_PART4_MD5='150ed8843be777abd765b79df2aaf314' ARCHIVE_BASE_0_PART5_NAME='setup_syberia3_1.5.07_(16263)-5.bin' ARCHIVE_BASE_0_PART5_MD5='67c6e4d76b778f7d5fd02f5df561bb11' ARCHIVE_BASE_0_SIZE='40000000' ARCHIVE_BASE_0_VERSION='1.5.07-gog16263' ARCHIVE_BASE_0_URL='https://www.gog.com/game/syberia_3_the_complete_journey' UNITY3D_NAME='syberia3' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_DATA_SHAREDASSETS_1_FILES=" ${UNITY3D_NAME}_data/sharedassets?.* ${UNITY3D_NAME}_data/sharedassets1?.* ${UNITY3D_NAME}_data/sharedassets2?.* ${UNITY3D_NAME}_data/sharedassets3?.* ${UNITY3D_NAME}_data/sharedassets4?.*" CONTENT_GAME_DATA_SHAREDASSETS_2_FILES=" ${UNITY3D_NAME}_data/sharedassets5?.* ${UNITY3D_NAME}_data/sharedassets6?.* ${UNITY3D_NAME}_data/sharedassets7?.* ${UNITY3D_NAME}_data/sharedassets8?.*" CONTENT_GAME_DATA_SHAREDASSETS_3_FILES=" ${UNITY3D_NAME}_data/sharedassets9?.* ${UNITY3D_NAME}_data/sharedassets10?.* ${UNITY3D_NAME}_data/sharedassets11?.* ${UNITY3D_NAME}_data/sharedassets12?.*" CONTENT_GAME_DATA_SHAREDASSETS_4_FILES=" ${UNITY3D_NAME}_data/sharedassets*" CONTENT_GAME_DATA_STREAMINGASSETS_FILES=" ${UNITY3D_NAME}_data/streamingassets" CONTENT_GAME0_DATA_FILES=' syberia3.dat' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Microids/Syberia3' PACKAGES_LIST=' PKG_BIN PKG_DATA_SHAREDASSETS_1 PKG_DATA_SHAREDASSETS_2 PKG_DATA_SHAREDASSETS_3 PKG_DATA_SHAREDASSETS_4 PKG_DATA_STREAMINGASSETS PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_DATA_SHAREDASSETS_1 PKG_DATA_SHAREDASSETS_2 PKG_DATA_SHAREDASSETS_3 PKG_DATA_SHAREDASSETS_4 PKG_DATA_STREAMINGASSETS' PKG_DATA_SHAREDASSETS_1_ID="${PKG_DATA_ID}-sharedassets-1" PKG_DATA_SHAREDASSETS_2_ID="${PKG_DATA_ID}-sharedassets-2" PKG_DATA_SHAREDASSETS_3_ID="${PKG_DATA_ID}-sharedassets-3" PKG_DATA_SHAREDASSETS_4_ID="${PKG_DATA_ID}-sharedassets-4" PKG_DATA_SHAREDASSETS_1_DESCRIPTION="$PKG_DATA_DESCRIPTION - shared assets - 1" PKG_DATA_SHAREDASSETS_2_DESCRIPTION="$PKG_DATA_DESCRIPTION - shared assets - 2" PKG_DATA_SHAREDASSETS_3_DESCRIPTION="$PKG_DATA_DESCRIPTION - shared assets - 3" PKG_DATA_SHAREDASSETS_4_DESCRIPTION="$PKG_DATA_DESCRIPTION - shared assets - 4" PKG_DATA_STREAMINGASSETS_ID="${PKG_DATA_ID}-streamingassets" PKG_DATA_STREAMINGASSETS_DESCRIPTION="$PKG_DATA_DESCRIPTION - streaming assets" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-syberia-scummvm.sh0000755000000000000000000000664114471751340015312 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Syberia series: # - Syberia 1 # - Syberia 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20250311.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID_SYBERIA1='syberia-1' GAME_NAME_SYBERIA1='Syberia' GAME_ID_SYBERIA2='syberia-2' GAME_NAME_SYBERIA2='Syberia Ⅱ' ARCHIVE_BASE_SYBERIA1_0_NAME='syberia_en_2.0.0.1.pkg' ARCHIVE_BASE_SYBERIA1_0_MD5='61fb5374919b9a5cc9eeda91924b6def' ## TODO: ./play.it 2.32 has no support for Mac OS .pkg installers. ARCHIVE_BASE_SYBERIA1_0_EXTRACTOR='unar' ARCHIVE_BASE_SYBERIA1_0_SIZE='3542062' ARCHIVE_BASE_SYBERIA1_0_VERSION='1.0.2-gog2.0.0.1' ARCHIVE_BASE_SYBERIA1_0_URL='https://www.gog.com/game/syberia' ARCHIVE_BASE_SYBERIA2_0_NAME='syberia_2_en_1_0_0_gog_15710.pkg' ARCHIVE_BASE_SYBERIA2_0_MD5='b331a2e6ddf1d8f2d127a081ef0cab69' ## TODO: ./play.it 2.32 has no support for Mac OS .pkg installers. ARCHIVE_BASE_SYBERIA2_0_EXTRACTOR='unar' ARCHIVE_BASE_SYBERIA2_0_SIZE='2620541' ARCHIVE_BASE_SYBERIA2_0_VERSION='1.0.0-gog15710' ARCHIVE_BASE_SYBERIA2_0_URL='https://www.gog.com/game/syberia_2' CONTENT_PATH_DEFAULT='payload/Contents' CONTENT_GAME_MAIN_FILES=' _CodeSignature Documents MacOS Resources Info.plist PkgInfo' APP_MAIN_SCUMMID_SYBERIA1='tetraedge:syberia' APP_MAIN_SCUMMID_SYBERIA2='tetraedge:syberia2' ## TODO: ./play.it 2.32 has no support for Mac OS ICNS icons. APP_MAIN_ICON='Resources/Icon.icns' ## Set the requirements list to extract the game icons REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} icns2png" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ARCHIVE_INNER_PATH="${PLAYIT_WORKDIR}/gamedata/$(game_id).cpio.gz" ARCHIVE_INNER_EXTRACTOR='unar' mv "${PLAYIT_WORKDIR}/gamedata/package.pkg/Scripts" "$ARCHIVE_INNER_PATH" archive_extraction 'ARCHIVE_INNER' rm "$ARCHIVE_INNER_PATH" # Include game data ## Include the game icons icons_temporary_directory="${PLAYIT_WORKDIR}/icons" mkdir --parents "$icons_temporary_directory" icns2png --extract --output "$icons_temporary_directory" "$(icon_full_path 'APP_MAIN_ICON')" >/dev/null 2>&1 icons_include_from_directory "$(current_package)" 'APP_MAIN' "$icons_temporary_directory" rmdir "$icons_temporary_directory" content_inclusion_default # Write launchers ## Set the game language based on the current locale scummvm_id=$(application_scummvm_scummid 'APP_MAIN') game_exec_line() { cat <<- 'EOF' case "${LANG%_*}" in ('fr') scummvm_options='--language=fr' ;; ('en'|*) scummvm_options='--language=en' ;; esac EOF cat <<- EOF scummvm --path="\$PATH_GAME_DATA" \$scummvm_options "\$@" $scummvm_id EOF } launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-syberia-the-world-before.sh0000755000000000000000000000627714471751340016775 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Syberia: The World Before # send your bug reports to bugs@dotslashplay.it ### script_version=20241208.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='syberia-the-world-before' GAME_NAME='Syberia: The World Before' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" GAME_ID_PROLOGUE="${GAME_ID}-prologue" GAME_NAME_PROLOGUE="$GAME_NAME - Prologue" ARCHIVE_BASE_DEMO_0_NAME='setup_syberia_the_world_before_demo_1.2.1.40425_(64bit)_(56894).exe' ARCHIVE_BASE_DEMO_0_MD5='eaa885fbdf3bd94188420dbffd7469ec' ARCHIVE_BASE_DEMO_0_TYPE='innosetup' ARCHIVE_BASE_DEMO_0_PART1_NAME='setup_syberia_the_world_before_demo_1.2.1.40425_(64bit)_(56894)-1.bin' ARCHIVE_BASE_DEMO_0_PART1_MD5='cbf1ab7ffd1781e5b4ac1c81d5878827' ARCHIVE_BASE_DEMO_0_PART2_NAME='setup_syberia_the_world_before_demo_1.2.1.40425_(64bit)_(56894)-2.bin' ARCHIVE_BASE_DEMO_0_PART2_MD5='8dcfad00a0bd9a1f317c9802f2392ac8' ARCHIVE_BASE_DEMO_0_SIZE='6754521' ARCHIVE_BASE_DEMO_0_VERSION='1.2.1.40425-gog56894' ARCHIVE_BASE_DEMO_0_URL='https://www.gog.com/game/syberia_the_world_before_demo' ARCHIVE_BASE_PROLOGUE_0_NAME='setup_syberia_the_world_before_prologue_1.0_(43455).exe' ARCHIVE_BASE_PROLOGUE_0_MD5='22bd7e18e7cd06ddfbe94d262cef6cd9' ARCHIVE_BASE_PROLOGUE_0_TYPE='innosetup' ARCHIVE_BASE_PROLOGUE_0_PART1_NAME='setup_syberia_the_world_before_prologue_1.0_(43455)-1.bin' ARCHIVE_BASE_PROLOGUE_0_PART1_MD5='153581ebbcce0a4608c7b700e9f1093c' ARCHIVE_BASE_PROLOGUE_0_SIZE='3400000' ARCHIVE_BASE_PROLOGUE_0_VERSION='1.0-gog43455' UNITY3D_NAME='syberiatwb' UNITY3D_NAME_PROLOGUE='syberiatwbp' CONTENT_PATH_DEFAULT='.' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/SyberiaTWB' WINE_PERSISTENT_DIRECTORIES_PROLOGUE=' users/${USER}/AppData/Roaming/SyberiaTWBP' USER_PERSISTENT_FILES=" ${UNITY3D_NAME}_data/streamingassets/config.bin" USER_PERSISTENT_FILES_PROLOGUE=" ${UNITY3D_NAME_PROLOGUE}_data/streamingassets/config.bin" PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_ID_PROLOGUE="${GAME_ID_PROLOGUE}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 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-syberia-wine.sh0000755000000000000000000002152214471751340014560 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2020 Igor Telmenko set -o errexit ### # Syberia series: # - Syberia 1 # - Syberia 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20250807.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID_SYBERIA1='syberia-1' GAME_NAME_SYBERIA1='Syberia' GAME_ID_SYBERIA2='syberia-2' GAME_NAME_SYBERIA2='Syberia Ⅱ' # Archives ## Syberia 1 ARCHIVE_BASE_SYBERIA1_RU_2_NAME='setup_syberia_1.0.0_hotfix4_(russian)_(53936).exe' ARCHIVE_BASE_SYBERIA1_RU_2_MD5='98308bdd7980d5d2804fed458816296c' ARCHIVE_BASE_SYBERIA1_RU_2_TYPE='innosetup' ARCHIVE_BASE_SYBERIA1_RU_2_PART1_NAME='setup_syberia_1.0.0_hotfix4_(russian)_(53936)-1.bin' ARCHIVE_BASE_SYBERIA1_RU_2_PART1_MD5='79a2c6f522d812a034f263dea9ae1fa3' ARCHIVE_BASE_SYBERIA1_RU_2_SIZE='1600000' ARCHIVE_BASE_SYBERIA1_RU_2_VERSION='1.0.0-gog53936' ARCHIVE_BASE_SYBERIA1_RU_2_URL='https://www.gog.com/game/syberia' ARCHIVE_BASE_SYBERIA1_EN_2_NAME='setup_syberia_1.0.0_hotfix4_(53936).exe' ARCHIVE_BASE_SYBERIA1_EN_2_MD5='d2a928c368926e6b5acb0007e86292c0' ARCHIVE_BASE_SYBERIA1_EN_2_TYPE='innosetup' ARCHIVE_BASE_SYBERIA1_EN_2_PART1_NAME='setup_syberia_1.0.0_hotfix4_(53936)-1.bin' ARCHIVE_BASE_SYBERIA1_EN_2_PART1_MD5='20a068f18d692deddf517bd5def14903' ARCHIVE_BASE_SYBERIA1_EN_2_SIZE='1600000' ARCHIVE_BASE_SYBERIA1_EN_2_VERSION='1.0.0-gog53936' ARCHIVE_BASE_SYBERIA1_EN_2_URL='https://www.gog.com/game/syberia' ARCHIVE_BASE_SYBERIA1_FR_2_NAME='setup_syberia_1.0.0_hotfix4_(french)_(53936).exe' ARCHIVE_BASE_SYBERIA1_FR_2_MD5='d4f6fb1f650a6e82b4456c2c1e2e2b8d' ARCHIVE_BASE_SYBERIA1_FR_2_TYPE='innosetup' ARCHIVE_BASE_SYBERIA1_FR_2_PART1_NAME='setup_syberia_1.0.0_hotfix4_(french)_(53936)-1.bin' ARCHIVE_BASE_SYBERIA1_FR_2_PART1_MD5='b8544dbc5ea5d125b224a8a1008913a7' ARCHIVE_BASE_SYBERIA1_FR_2_SIZE='1600000' ARCHIVE_BASE_SYBERIA1_FR_2_VERSION='1.0.0-gog53936' ARCHIVE_BASE_SYBERIA1_FR_2_URL='https://www.gog.com/game/syberia' ARCHIVE_BASE_SYBERIA1_RU_1_NAME='setup_syberia_russian_1.0.0_hotfix3_(18946).exe' ARCHIVE_BASE_SYBERIA1_RU_1_MD5='cdf5ac1869d57d139495a20102d5ffb4' ARCHIVE_BASE_SYBERIA1_RU_1_TYPE='innosetup' ARCHIVE_BASE_SYBERIA1_RU_1_SIZE='1600000' ARCHIVE_BASE_SYBERIA1_RU_1_VERSION='1.0.0-gog18946' ARCHIVE_BASE_SYBERIA1_EN_1_NAME='setup_syberia_1.0.0_hotfix3_(18946).exe' ARCHIVE_BASE_SYBERIA1_EN_1_MD5='53d91df35a154584812d31b9ee353cb8' ARCHIVE_BASE_SYBERIA1_EN_1_TYPE='innosetup' ARCHIVE_BASE_SYBERIA1_EN_1_SIZE='1600000' ARCHIVE_BASE_SYBERIA1_EN_1_VERSION='1.0.0-gog18946' ARCHIVE_BASE_SYBERIA1_FR_1_NAME='setup_syberia_french_1.0.0_hotfix3_(18946).exe' ARCHIVE_BASE_SYBERIA1_FR_1_MD5='41881248eefd53929bbaa97c1905a7fe' ARCHIVE_BASE_SYBERIA1_FR_1_TYPE='innosetup' ARCHIVE_BASE_SYBERIA1_FR_1_SIZE='1600000' ARCHIVE_BASE_SYBERIA1_FR_1_VERSION='1.0.0-gog18946' ARCHIVE_BASE_SYBERIA1_EN_0_NAME='setup_syberia_1.0.0_hotfix2_(17897).exe' ARCHIVE_BASE_SYBERIA1_EN_0_MD5='d52b7a776df7659d7fda9995715468a0' ARCHIVE_BASE_SYBERIA1_EN_0_TYPE='innosetup' ARCHIVE_BASE_SYBERIA1_EN_0_SIZE='1600000' ARCHIVE_BASE_SYBERIA1_EN_0_VERSION='1.0.0-gog17897' ARCHIVE_BASE_SYBERIA1_FR_0_NAME='setup_syberia_french_1.0.0_hotfix2_(17897).exe' ARCHIVE_BASE_SYBERIA1_FR_0_MD5='d8a956a47c1b186a4364eff56c8cecb6' ARCHIVE_BASE_SYBERIA1_FR_0_TYPE='innosetup' ARCHIVE_BASE_SYBERIA1_FR_0_SIZE='1600000' ARCHIVE_BASE_SYBERIA1_FR_0_VERSION='1.0.0-gog17897' # Syberia 2 ARCHIVE_BASE_SYBERIA2_EN_0_NAME='setup_syberia_2_20171109_(16283).exe' ARCHIVE_BASE_SYBERIA2_EN_0_MD5='f33e25fa29810e9ff8c6f009b7fdec3b' ARCHIVE_BASE_SYBERIA2_EN_0_TYPE='innosetup' ARCHIVE_BASE_SYBERIA2_EN_0_SIZE='1600000' ARCHIVE_BASE_SYBERIA2_EN_0_VERSION='1.0-gog16283' ARCHIVE_BASE_SYBERIA2_EN_0_URL='https://www.gog.com/game/syberia_2' ARCHIVE_BASE_SYBERIA2_FR_0_NAME='setup_syberia_2_french_20171109_(16283).exe' ARCHIVE_BASE_SYBERIA2_FR_0_MD5='e53a1ad01440837b933e935522389ab8' ARCHIVE_BASE_SYBERIA2_FR_0_TYPE='innosetup' ARCHIVE_BASE_SYBERIA2_FR_0_SIZE='1600000' ARCHIVE_BASE_SYBERIA2_FR_0_VERSION='1.0-gog16283' ARCHIVE_BASE_SYBERIA2_FR_0_URL='https://www.gog.com/game/syberia_2' # Archives content CONTENT_GAME_BIN_FILES=' dlls binkw32.dll ck2.dll ckzlib.dll dvd.dll vxmath.dll game.exe syberia.exe syberia2.exe launch/settings.ini' CONTENT_GAME_DATA_FILES=' cmo data textures video' CONTENT_DOC_L10N_FILES=' manual.pdf walkthrough.pdf readme.txt' ## Syberia 1 CONTENT_PATH_DEFAULT_SYBERIA1='.' CONTENT_PATH_DEFAULT_SYBERIA1_EN_1='app' CONTENT_PATH_DEFAULT_SYBERIA1_FR_1='app' CONTENT_PATH_DEFAULT_SYBERIA1_RU_1='app' CONTENT_PATH_DEFAULT_SYBERIA1_EN_0='app' CONTENT_PATH_DEFAULT_SYBERIA1_FR_0='app' CONTENT_GAME_L10N_FILES_SYBERIA1=' sounds splash cmo/citstation.cmo cmo/valreceptioninn.cmo data/font_syberia?.dat data/string.dat data/animations/momo/mo_tcheque.nmo video/an video/*_hansanna.syb video/*_hansannab.syb video/c1_intro.syb textures/ingame textures/valreceptioninn' ## Syberia 2 CONTENT_PATH_DEFAULT_SYBERIA2='app' CONTENT_GAME_L10N_FILES_SYBERIA2=' data/minimalres.syb data/string.dat' USER_PERSISTENT_FILES=' *.ini' WINE_PERSISTENT_DIRECTORIES_SYBERIA1=' users/${USER}/Documents/Syberia Saves' WINE_PERSISTENT_DIRECTORIES_SYBERIA2=' users/${USER}/Documents/Syberia 2 Saves' ## Work around a crash on nvidia drivers ## cf. https://bugs.winehq.org/show_bug.cgi?id=43199 ## https://bugs.winehq.org/show_bug.cgi?id=44009 WINE_REGISTRY_INIT=' [HKEY_CURRENT_USER\Software\Wine\X11 Driver] "UseXVidMode"="N"' ## Syberia 2 - Set game language. WINE_REGISTRY_INIT_SYBERIA2_EN="$WINE_REGISTRY_INIT"' [HKEY_LOCAL_MACHINE\SOFTWARE\Microids\Syberia DVD] "Language"="EN"' WINE_REGISTRY_INIT_SYBERIA2_FR="$WINE_REGISTRY_INIT"' [HKEY_LOCAL_MACHINE\SOFTWARE\Microids\Syberia DVD] "Language"="FR"' WINE_VIRTUAL_DESKTOP='auto' APP_MAIN_EXE='game.exe' APP_MAIN_ICON_SYBERIA1='syberia.exe' APP_MAIN_ICON_SYBERIA2='syberia2.exe' # Packages PACKAGES_LIST=' PKG_BIN PKG_L10N PKG_DATA' PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N_BASE PKG_DATA' ## Syberia 1 ## Ensure easy upgrade from packages generated with pre-20210716.5 game script. PKG_BIN_PROVIDES_SYBERIA1="${PKG_BIN_PROVIDES_SYBERIA1:-} syberia" PKG_L10N_BASE_ID_SYBERIA1="${GAME_ID_SYBERIA1}-l10n" PKG_L10N_ID_SYBERIA1_RU="${PKG_L10N_BASE_ID_SYBERIA1}-ru" PKG_L10N_ID_SYBERIA1_EN="${PKG_L10N_BASE_ID_SYBERIA1}-en" PKG_L10N_ID_SYBERIA1_FR="${PKG_L10N_BASE_ID_SYBERIA1}-fr" PKG_L10N_DESCRIPTION_SYBERIA1_RU='Russian localization' PKG_L10N_DESCRIPTION_SYBERIA1_EN='English localization' PKG_L10N_DESCRIPTION_SYBERIA1_FR='French localization' PKG_L10N_PROVIDES_SYBERIA1=" $PKG_L10N_BASE_ID_SYBERIA1" ## Ensure easy upgrade from packages generated with pre-20210716.5 game script. PKG_L10N_PROVIDES_SYBERIA1="${PKG_L10N_PROVIDES_SYBERIA1:-} syberia-l10n" PKG_DATA_ID_SYBERIA1="${GAME_ID_SYBERIA1}-data" ## Ensure easy upgrade from packages generated with pre-20210716.5 game script. PKG_DATA_PROVIDES_SYBERIA1="${PKG_DATA_PROVIDES_SYBERIA1:-} syberia-data" ## Syberia 2 PKG_L10N_BASE_ID_SYBERIA2="${GAME_ID_SYBERIA2}-l10n" PKG_L10N_ID_SYBERIA2_EN="${PKG_L10N_BASE_ID_SYBERIA2}-en" PKG_L10N_ID_SYBERIA2_FR="${PKG_L10N_BASE_ID_SYBERIA2}-fr" PKG_L10N_DESCRIPTION_SYBERIA2_EN='English localization' PKG_L10N_DESCRIPTION_SYBERIA2_FR='French localization' PKG_L10N_PROVIDES_SYBERIA2=" $PKG_L10N_BASE_ID_SYBERIA2" PKG_DATA_ID_SYBERIA2="${GAME_ID_SYBERIA2}-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not 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)" # Syberia 1 - Create player.ini to force windowed mode # cf. https://bugs.winehq.org/show_bug.cgi?id=21796 case "$(current_archive)" in ('ARCHIVE_BASE_SYBERIA1_'*) cat > 'player.ini' <<- EOF 800 600 16 0 BaseCMO.cmo EOF ;; esac ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## Syberia 2 - Default registry entries differ based on the localisation. case "$(current_archive)" in ('ARCHIVE_BASE_SYBERIA2_'*) WINE_REGISTRY_INIT=$(context_value 'WINE_REGISTRY_INIT') # shellcheck disable=SC2218 wine_registry_script_write 'PKG_L10N' wine_registry_script_write() { return 0; } ;; esac launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-tales-of-the-neon-sea.sh0000755000000000000000000000362014471751340016154 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Tales of the Neon Sea # send your bug reports to bugs@dotslashplay.it ### script_version=20240701.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='tales-of-the-neon-sea' GAME_NAME='Tales of the Neon Sea' ARCHIVE_BASE_0_NAME='setup_tales_of_the_neon_sea_1.0.85_(45944).exe' ARCHIVE_BASE_0_MD5='4b6f06e51f664378db816ba2b1cf01cc' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='1.0.85-gog45944' ARCHIVE_BASE_0_SIZE='1400000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/tales_of_the_neon_sea' UNITY3D_NAME='talesoftheneonsea' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/palmpioneer/TalesoftheNeonSea' WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\palmpioneer\TalesoftheNeonSea' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-talk-to-me.sh0000755000000000000000000000331314471751340014132 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Talk to Me # send your bug reports to bugs@dotslashplay.it ### script_version=20240428.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='talk-to-me' GAME_NAME='Talk to Me' ARCHIVE_BASE_0_NAME='TalkToMe-1.02-pc.zip' ARCHIVE_BASE_0_MD5='9f7ae1c12a4c7bcb6a40aa4157205e4b' ARCHIVE_BASE_0_SIZE='410000' ARCHIVE_BASE_0_VERSION='1.02-itch1' ARCHIVE_BASE_0_URL='https://boop-studios.itch.io/talk-to-me' CONTENT_PATH_DEFAULT='TalkToMe-1.02-pc/game' CONTENT_GAME_MAIN_FILES=' cache gui archive.rpa script_version.txt' APP_MAIN_TYPE='renpy' APP_MAIN_ICON='../TalkToMe.exe' ## Ensure easy upgrades from packages generated with pre-20240428.1 game scripts. PKG_MAIN_PROVIDES="${PKG_MAIN_PROVIDES:-} talk-to-me-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-technobabylon.sh0000755000000000000000000000520214471751340015006 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Technobabylon # send your bug reports to bugs@dotslashplay.it ### script_version=20240915.2 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='technobabylon' GAME_NAME='Technobabylon' ARCHIVE_BASE_4_NAME='technobabylon_3_0_5_72309.sh' ARCHIVE_BASE_4_MD5='42a3d460d92a5a778d009eebd7b2b867' ARCHIVE_BASE_4_SIZE='1374766' ARCHIVE_BASE_4_VERSION='3.0.5-gog72309' ARCHIVE_BASE_4_URL='https://www.gog.com/game/technobabylon' ARCHIVE_BASE_3_NAME='technobabylon_3_0_1_66582.sh' ARCHIVE_BASE_3_MD5='6ddf6ed6e8df026f548025a90585a382' ARCHIVE_BASE_3_SIZE='1400000' ARCHIVE_BASE_3_VERSION='3.0.1-gog66582' ARCHIVE_BASE_2_NAME='technobabylon_3_0_66305.sh' ARCHIVE_BASE_2_MD5='5d522aa6349e26596e7a6e0ad3c5ff19' ARCHIVE_BASE_2_SIZE='1400000' ARCHIVE_BASE_2_VERSION='3.0-gog66305' ARCHIVE_BASE_1_NAME='technobabylon_2_5a_57810.sh' ARCHIVE_BASE_1_MD5='108abcf43ca17438717ddbad13a00f69' ARCHIVE_BASE_1_SIZE='1400000' ARCHIVE_BASE_1_VERSION='2.5a-gog57810' ARCHIVE_BASE_0_NAME='technobabylon_2_1_53388.sh' ARCHIVE_BASE_0_MD5='6bb58eccb57e2195d49266bd8798a9a1' ARCHIVE_BASE_0_SIZE='1400000' ARCHIVE_BASE_0_VERSION='2.1-gog53388' ## Optional icons pack ARCHIVE_OPTIONAL_ICONS_NAME='technobabylon_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5='84a7104801c25d5e931fbdd4cc3d1916' ARCHIVE_OPTIONAL_ICONS_URL='https://downloads.dotslashplay.it/games/technobabylon/' CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 64x64' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' ENGV.tmp Music Sounds *.ags *.cfg *.exe *.ogv *.tra *.vox' CONTENT_DOC_MAIN_FILES=' licenses' APP_MAIN_SCUMMID='ags:technobabylon' APP_MAIN_ICON='../support/icon.png' APP_MAIN_ICON_1='Technobabylon.exe' APP_MAIN_ICON_0='Technobabylon.exe' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-teenagent.sh0000755000000000000000000000303614471751340014134 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # Teenagent # send your bug reports to bugs@dotslashplay.it ### script_version=20240619.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='teenagent' GAME_NAME='Teen Agent' ARCHIVE_BASE_0_NAME='setup_teenagent_1.0_(15595).exe' ARCHIVE_BASE_0_MD5='95126a8eba61b60e12535ebaa020c01b' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='32000' ARCHIVE_BASE_0_VERSION='1.0-gog15595' ARCHIVE_BASE_0_URL='https://www.gog.com/game/teenagent' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_MAIN_FILES=' *.res' APP_MAIN_SCUMMID='teenagent:teenagent' APP_MAIN_ICON='goggame-1207658753.ico' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-tengami.sh0000755000000000000000000000416214471751340013607 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Tengami # send your bug reports to bugs@dotslashplay.it ### script_version=20240610.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='tengami' GAME_NAME='Tengami' ## This game archive is no longer distributed, ## since Playism store closed down in favour of Steam. ARCHIVE_BASE_0_NAME='Tengami Win0113.zip' ARCHIVE_BASE_0_MD5='956f8bff6b8bdef8702e994dea23b8dc' ARCHIVE_BASE_0_SIZE='830000' ARCHIVE_BASE_0_VERSION='0113-playism' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' glew32.DLL SDL2.dll Tengami.exe' CONTENT_GAME_DATA_FILES=' Binary' USER_PERSISTENT_DIRECTORIES=' Save' APP_MAIN_EXE='Tengami.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Use persistent storage for user data # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ARCHIVE_INNER_PATH="${PLAYIT_WORKDIR}/gamedata/Tengami Win/Tengami_Game_Win20150113.exe" ## Do not convert file paths to lowercase. ARCHIVE_INNER_EXTRACTOR='innoextract' ARCHIVE_INNER_EXTRACTOR_OPTIONS=' ' archive_extraction 'ARCHIVE_INNER' rm --force "$(archive_path 'ARCHIVE_INNER')" # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-7th-guest.sh0000755000000000000000000000367614471751340014601 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Anna Lea # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # The 7th Guest # send your bug reports to bugs@dotslashplay.it ### script_version=20250827.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='the-7th-guest' GAME_NAME='The 7th Guest' ARCHIVE_BASE_0_NAME='the_7th_guest_en_patch_3_21683.sh' ARCHIVE_BASE_0_MD5='eb2cd92e06e0594297e1d38e3552df6d' ARCHIVE_BASE_0_SIZE='780000' ARCHIVE_BASE_0_VERSION='1.3-gog21683' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_7th_guest_25th_anniversary_edition' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' sphinx.fnt fat.* *.gjd *.grv *.rl' CONTENT_DOC_MAIN_PATH='data/noarch/docs' CONTENT_DOC_MAIN_FILES=' *.pdf *.txt' APP_MAIN_SCUMMID='groovie:t7g' APP_MAIN_ICON='../support/icon.png' ## convmv is used to convert file paths to lower case. REQUIREMENTS_LIST=' convmv' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default ## Convert all file paths to lower case. tolower "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Include game data. content_inclusion_icons content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-the-book-of-unwritten-tales-1.sh0000755000000000000000000000750614471751340017603 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # The Book of Unwritten Tales: # - The Book of Unwritten Tales # - The Critter Chronicles # send your bug reports to bugs@dotslashplay.it ### script_version=20240827.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='the-book-of-unwritten-tales-1' GAME_NAME='The Book of Unwritten Tales' GAME_ID_CRITTER="${GAME_ID}-the-critter-chronicles" GAME_NAME_CRITTER="${GAME_NAME}: The Critter Chronicles" # Archives ## The Book of Unwritten Tales (main game) ARCHIVE_BASE_0_NAME='setup_book_of_unwritten_tales_2.0.0.4.exe' ARCHIVE_BASE_0_MD5='984e8f16cc04a2a27aea8b0d7ada1c1e' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_book_of_unwritten_tales_2.0.0.4-1.bin' ARCHIVE_BASE_0_PART1_MD5='4ea0eccb7ca2f77c301e79412ff1e214' ARCHIVE_BASE_0_PART2_NAME='setup_book_of_unwritten_tales_2.0.0.4-2.bin' ARCHIVE_BASE_0_PART2_MD5='95e52d38b6c1548ac311284c539a4c52' ARCHIVE_BASE_0_PART3_NAME='setup_book_of_unwritten_tales_2.0.0.4-3.bin' ARCHIVE_BASE_0_PART3_MD5='7290d78ecbec866e46401e4c9d3549cf' ARCHIVE_BASE_0_SIZE='5900000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.4' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_book_of_unwritten_tales' ## The Critter Chronicles ARCHIVE_BASE_CRITTER_0_NAME='setup_book_of_unwritten_tales_critter_chronicles_2.1.0.10.exe' ARCHIVE_BASE_CRITTER_0_MD5='eed5cd99d36e5900d0fd5775d0466c22' ARCHIVE_BASE_CRITTER_0_TYPE='innosetup' ARCHIVE_BASE_CRITTER_0_SIZE='2800000' ARCHIVE_BASE_CRITTER_0_VERSION='1.0-gog2.1.0.10' ARCHIVE_BASE_CRITTER_0_URL='https://www.gog.com/game/the_book_of_unwritten_tales_critter_chronicles' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' plugins.cfg resources.cfg alut.dll cg.dll libogg.dll libtheora.dll libtheoraplayer.dll libvorbis.dll libvorbisfile.dll lua5.1.dll lua51.dll ogremain.dll ois.dll particleuniverse.dll plugin_cgprogrammanager.dll rendersystem_direct3d9.dll bout.exe critterchronicles.exe' CONTENT_GAME_L10N_FILES=' kagedata/lang' CONTENT_GAME_DATA_FILES=' data kagedata kapedata exportedfunctions.lua config.xml' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/My Documents/Book of Unwritten Tales/savegames' WINE_PERSISTENT_DIRECTORIES_CRITTER=' users/${USER}/My Documents/Unwritten Tales - Critter Chronicles/savegames' ## Work around some texture display problems ## TODO: Check if the texture display failures still happen with current WINE builds ## The game will not start unless OpenAL32.dll is available WINE_WINETRICKS_VERBS='d3dcompiler_47 openal' APP_MAIN_EXE='bout.exe' APP_MAIN_EXE_CRITTER='critterchronicles.exe' PACKAGES_LIST=' PKG_BIN PKG_L10N PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N PKG_DATA' PKG_L10N_ID="${GAME_ID}-l10n-en" PKG_L10N_ID_CRITTER="${GAME_ID_CRITTER}-l10n-en" PKG_L10N_DESCRIPTION='English localization' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_CRITTER="${GAME_ID_CRITTER}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-book-of-unwritten-tales-2.sh0000755000000000000000000000546214471751340017603 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The Book of Unwritten Tales 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20240827.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='the-book-of-unwritten-tales-2' GAME_NAME='The Book of Unwritten Tales 2' ARCHIVE_BASE_0_NAME='gog_the_book_of_unwritten_tales_2_2.0.0.2.sh' ARCHIVE_BASE_0_MD5='f2b0ca23d7bfc1f7e22fa6f990fc527c' ARCHIVE_BASE_0_SIZE='12266158' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.2' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_book_of_unwritten_tales_2_almanac_edition' UNITY3D_NAME='BouT2' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_SCENES_FILES=" data/episode_0?/Scenes" CONTENT_GAME0_DATA_FILES=' data qt.conf' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_SCENES PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_SCENES 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 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' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_SCENES_ID="${GAME_ID}-scenes" PKG_SCENES_DESCRIPTION='scenes' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Work around the non-standard paths for a Unity3D game unity3d_name() { printf 'Linux/' context_value 'UNITY3D_NAME' } # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-bookwalker.sh0000755000000000000000000000573414471751340015107 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2025 Antoine Le Gonidec set -o errexit ### # The Bookwalker: Thief of Tales # send your bug reports to bugs@dotslashplay.it ### script_version=20251014.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='the-bookwalker' GAME_NAME='The Bookwalker: Thief of Tales' ARCHIVE_BASE_0_NAME='setup_the_bookwalker_thief_of_tales_23.6.10_(64bit)_(65490).exe' ARCHIVE_BASE_0_MD5='4a160b7b5ea64fc9bbaab587220ecb24' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_the_bookwalker_thief_of_tales_23.6.10_(64bit)_(65490)-1.bin' ARCHIVE_BASE_0_PART1_MD5='50db6380d7984fe2dea7aa60f70859ff' ARCHIVE_BASE_0_PART2_NAME='setup_the_bookwalker_thief_of_tales_23.6.10_(64bit)_(65490)-2.bin' ARCHIVE_BASE_0_PART2_MD5='bd1116363f9aab14fb97a276f7c8c55a' ARCHIVE_BASE_0_SIZE='12511430' ARCHIVE_BASE_0_VERSION='23.6.10-gog65490' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_bookwalker_thief_of_tales' UNITY3D_NAME='the bookwalker' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_DATA_SHAREDASSETS_1_FILES=" ${UNITY3D_NAME}_data/sharedassets[0-9].assets* ${UNITY3D_NAME}_data/sharedassets[1-5][0-9].assets*" CONTENT_GAME_DATA_SHAREDASSETS_2_FILES=" ${UNITY3D_NAME}_data/sharedassets[7-9][6-9].assets* ${UNITY3D_NAME}_data/sharedassets1[0-2][0-9].assets*" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/DoMyBest/The Bookwalker' PACKAGES_LIST=' PKG_BIN PKG_DATA_SHAREDASSETS_1 PKG_DATA_SHAREDASSETS_2 PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_DATA_SHAREDASSETS_1 PKG_DATA_SHAREDASSETS_2' PKG_DATA_SHAREDASSETS_ID="${PKG_DATA_ID}-shardeassets" PKG_DATA_SHAREDASSETS_1_ID="${PKG_DATA_SHAREDASSETS_ID}-1" PKG_DATA_SHAREDASSETS_2_ID="${PKG_DATA_SHAREDASSETS_ID}-2" PKG_DATA_SHAREDASSETS_DESCRIPTION="$PKG_DATA_DESCRIPTION - shared assets" PKG_DATA_SHAREDASSETS_1_DESCRIPTION="$PKG_DATA_SHAREDASSETS_DESCRIPTION - 1" PKG_DATA_SHAREDASSETS_2_DESCRIPTION="$PKG_DATA_SHAREDASSETS_DESCRIPTION - 2" # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # 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-council.sh0000755000000000000000000000615214471751340014376 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The Council # send your bug reports to bugs@dotslashplay.it ### script_version=20251013.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='the-council' GAME_NAME='The Council' ARCHIVE_BASE_0_NAME='setup_the_council_0.9.5.6359_(33875).exe' ARCHIVE_BASE_0_MD5='7e49e444eaf67a95698dc1929979754a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_the_council_0.9.5.6359_(33875)-1.bin' ARCHIVE_BASE_0_PART1_MD5='8567d5d7bb55af6b5a13b57144d32342' ARCHIVE_BASE_0_PART2_NAME='setup_the_council_0.9.5.6359_(33875)-2.bin' ARCHIVE_BASE_0_PART2_MD5='2946c8da1f85f498da17661b159bfe4f' ARCHIVE_BASE_0_PART3_NAME='setup_the_council_0.9.5.6359_(33875)-3.bin' ARCHIVE_BASE_0_PART3_MD5='6d070987d39d722d3ceb1c7475f88c62' ARCHIVE_BASE_0_SIZE='24000000' ARCHIVE_BASE_0_VERSION='0.9.5.6359-gog33875' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_council' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' library anttweakbar64.dll anttweakbar.dll nvtoolsext64_1.dll sharpdx.direct2d1.dll sharpdx.dll sharpdx.dxgi.dll crashreport.exe the council.exe' ## TODO: Check if the GOG Galaxy library is required. CONTENT_GAME0_BIN_FILES=' galaxy64.dll' ## TODO: Check if the Steam library is required. CONTENT_GAME1_BIN_FILES=' steam_api64.dll' CONTENT_GAME_DATA_EPISODES_FILES=' data/packages/episode_*' CONTENT_GAME_DATA_SOUND_FILES=' data/sound' CONTENT_GAME_DATA_FILES=' defaultparameter data packagelist' ## TODO: Check if DXVK is still required with WINE ≥ 10.0. WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/My Games/The Council' APP_MAIN_EXE='the council.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA_EPISODES PKG_DATA_SOUND PKG_DATA' PKG_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_EPISODES PKG_DATA_SOUND' PKG_DATA_EPISODES_ID="${PKG_DATA_ID}-episodes" PKG_DATA_EPISODES_DESCRIPTION="$PKG_DATA_DESCRIPTION - episodes" PKG_DATA_SOUND_ID="${PKG_DATA_ID}-sound" PKG_DATA_SOUND_DESCRIPTION="$PKG_DATA_DESCRIPTION - sound" # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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-dark-eye-chains-of-satinav.sh0000755000000000000000000000422214471751340017747 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # The Dark Eye: Chains of Satinav # send your bug reports to bugs@dotslashplay.it ### script_version=20250110.4 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='the-dark-eye-chains-of-satinav' GAME_NAME='The Dark Eye: Chains of Satinav' ARCHIVE_BASE_1_NAME='the_dark_eye_chains_of_satinav_3_0_351_5509_79138.sh' ARCHIVE_BASE_1_MD5='4e7b0723a18d57154279808f230d6523' ARCHIVE_BASE_1_SIZE='2449354' ARCHIVE_BASE_1_VERSION='3.0.351.5509-gog79138' ARCHIVE_BASE_1_URL='https://www.gog.com/game/the_dark_eye_chains_of_satinav' ARCHIVE_BASE_0_NAME='the_dark_eye_chains_of_satinav_3_0_351_5499_78872.sh' ARCHIVE_BASE_0_MD5='56fb3b52b8bfa983bf983c9a77d0901c' ARCHIVE_BASE_0_SIZE='2449352' ARCHIVE_BASE_0_VERSION='3.0.351.5499-gog78872' VISIONAIRE_NAME='satinav' CONTENT_PATH_DEFAULT='data/noarch/game' ## The shipped build of OpenAL must be used, to avoid a missing symbol error: ## symbol lookup error: ./satinav: undefined symbol: SelectResampler CONTENT_LIBS0_BIN_RELATIVE_PATH='libs64' CONTENT_LIBS0_BIN_FILES=' libopenal.so' APP_MAIN_ICON='../support/icon.png' PKG_BIN_ARCH='64' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-the-dark-eye-memoria.sh0000755000000000000000000000601514471751340016070 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # The Dark Eye: Memoria # send your bug reports to bugs@dotslashplay.it ### script_version=20240827.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='the-dark-eye-memoria' GAME_NAME='The Dark Eye: Memoria' ARCHIVE_BASE_1_NAME='setup_memoria_1.2.3.0341_(18923).exe' ARCHIVE_BASE_1_MD5='b939d4aa2aabf2bac1d527609e76ed0f' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_memoria_1.2.3.0341_(18923)-1.bin' ARCHIVE_BASE_1_PART1_MD5='3067662d212dfb297106a24ffd474cbd' ARCHIVE_BASE_1_PART2_NAME='setup_memoria_1.2.3.0341_(18923)-2.bin' ARCHIVE_BASE_1_PART2_MD5='24ff575f72e8b05b529aaaef99372090' ARCHIVE_BASE_1_PART3_NAME='setup_memoria_1.2.3.0341_(18923)-3.bin' ARCHIVE_BASE_1_PART3_MD5='88a98736110a7a59633a5bec12411f22' ARCHIVE_BASE_1_SIZE='9100000' ARCHIVE_BASE_1_VERSION='1.2.3.0341-gog18923' ARCHIVE_BASE_1_URL='https://www.gog.com/game/memoria' ARCHIVE_BASE_0_NAME='setup_memoria_2.0.0.3.exe' ARCHIVE_BASE_0_MD5='847c7b5e27a287d6e0e17e63bfb14fff' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_memoria_2.0.0.3-1.bin' ARCHIVE_BASE_0_PART1_MD5='e656464607e4d8599d599ed5b6b29fca' ARCHIVE_BASE_0_PART2_NAME='setup_memoria_2.0.0.3-2.bin' ARCHIVE_BASE_0_PART2_MD5='593d57e8022c65660394c5bc5a333fe8' ARCHIVE_BASE_0_PART3_NAME='setup_memoria_2.0.0.3-3.bin' ARCHIVE_BASE_0_PART3_MD5='0f8ef0abab77f3885aa4f8f9e58611eb' ARCHIVE_BASE_0_PART4_NAME='setup_memoria_2.0.0.3-4.bin' ARCHIVE_BASE_0_PART4_MD5='0935149a66284bdc13659beafed2575f' ARCHIVE_BASE_0_PART5_NAME='setup_memoria_2.0.0.3-5.bin' ARCHIVE_BASE_0_PART5_MD5='5b85fb7fcb51599ee89b5d7371b87ee2' ARCHIVE_BASE_0_PART6_NAME='setup_memoria_2.0.0.3-6.bin' ARCHIVE_BASE_0_PART6_MD5='c8712354bbd093b706f551e75b549061' ARCHIVE_BASE_0_SIZE='9100000' ARCHIVE_BASE_0_VERSION='1.1.3.0336-gog2.0.0.3' VISIONAIRE_NAME='memoria' CONTENT_PATH_DEFAULT='app' CONTENT_GAME0_BIN_PATH='app/__support/app' CONTENT_GAME0_BIN_FILES=' config.ini' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Local Settings/Application Data/Daedalic Entertainment/Memoria' PKG_BIN_ARCH='32' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-darkside-detective.sh0000755000000000000000000000410114471751340016472 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # The Darkside Detective # send your bug reports to bugs@dotslashplay.it ### script_version=20241112.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='the-darkside-detective' GAME_NAME='The Darkside Detective' ARCHIVE_BASE_0_NAME='the_darkside_detective_2_3_0_1448r_49520.sh' ARCHIVE_BASE_0_MD5='df6e6205d0d4fc64fc46f5be68f1afce' ARCHIVE_BASE_0_SIZE='1108998' ARCHIVE_BASE_0_VERSION='2.3.0.1448r-gog49520' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_darkside_detective' UNITY3D_NAME='thedarksidedetective' ## TODO: Check if the Stadia libraries could be dropped UNITY3D_PLUGINS=' libunitystadia.so libunitystadia_preview.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++abi.so.1 libc.so.6 libdl.so.2 libgcc_s.so.1 libggp.so libm.so.6 libpthread.so.0 libpulse.so.0 librt.so.1 libvulkan.so.1 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-the-difference-between-us.sh0000755000000000000000000001175114471751340017111 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # The Difference Between Us # send your bug reports to bugs@dotslashplay.it ### script_version=20240428.3 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='the-difference-between-us' GAME_NAME='The Difference Between Us' ARCHIVE_BASE_0_NAME='The-Difference-Between-Us-linux.tar.bz2' ARCHIVE_BASE_0_MD5='7888797ccda89452a2543ba35c46083c' ARCHIVE_BASE_0_SIZE='64000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://robindaydream.itch.io/the-difference-between-us' CONTENT_PATH_DEFAULT='The-Difference-Between-Us-linux' CONTENT_LIBS_BIN_FILES=' libavcodec.so.57 libavformat.so.57 libavresample.so.3 libavutil.so.55 libGLEW.so.1.7 libpython2.7.so.1.0 libswresample.so.2 libswscale.so.4' ## libpng12.so.0 is not only a dependency of the shipped SDL2 build, ## it is actually required to prevent a crash on launch. CONTENT_LIBS_BIN_FILES="${CONTENT_LIBS_BIN_FILES:-} libpng12.so.0" CONTENT_LIBS_BIN64_PATH="${CONTENT_PATH_DEFAULT}/lib/linux-x86_64" CONTENT_LIBS_BIN64_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_LIBS_BIN32_PATH="${CONTENT_PATH_DEFAULT}/lib/linux-i686" CONTENT_LIBS_BIN32_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_GAME_BIN64_FILES=' lib/linux-x86_64/eggs lib/linux-x86_64/lib lib/linux-x86_64/python lib/linux-x86_64/pythonw lib/linux-x86_64/zsync lib/linux-x86_64/zsyncmake lib/linux-x86_64/The-Difference-Between-Us' CONTENT_GAME_BIN32_FILES=' lib/linux-i686/eggs lib/linux-i686/lib lib/linux-i686/python lib/linux-i686/pythonw lib/linux-i686/zsync lib/linux-i686/zsyncmake lib/linux-i686/The-Difference-Between-Us' CONTENT_GAME_DATA_FILES=' game renpy lib/pythonlib2.7 The-Difference-Between-Us.py' CONTENT_DOC_DATA_FILES=' README.html' ## Using system-provided renpy (8.2.1) triggers an early crash, with the following trace: ## ## Full traceback: ## File "script.rpyc", line 197, in script ## File "/usr/share/games/renpy/renpy/ast.py", line 615, in execute ## renpy.exports.say(who, what, *args, **kwargs) ## File "/usr/share/games/renpy/renpy/exports.py", line 1493, in say ## who(what, *args, **kwargs) ## File "/usr/share/games/renpy/renpy/character.py", line 1394, in __call__ ## self.do_display(who, what, cb_args=self.cb_args, dtt=dtt, **display_args) ## File "/usr/share/games/renpy/renpy/character.py", line 1045, in do_display ## display_say(who, ## File "/usr/share/games/renpy/renpy/character.py", line 686, in display_say ## what_text = renpy.display.screen.get_widget(what_text[0], what_text[1], what_text[2]) ## File "/usr/share/games/renpy/renpy/display/screen.py", line 1534, in get_displayable ## screen.update() ## File "/usr/share/games/renpy/renpy/display/screen.py", line 697, in update ## self.screen.function(**self.scope) ## File "game/screens.rpy", line 13, in execute ## File "game/screens.rpy", line 13, in execute ## File "game/screens.rpy", line 58, in execute ## File "game/screens.rpy", line 592, in execute ## File "game/screens.rpy", line 592, in execute ## File "/usr/share/games/renpy/renpy/sl2/slast.py", line 2650, in execute ## self.const_ast.keywords(context) ## AttributeError: 'NoneType' object has no attribute 'keywords' APP_MAIN_EXE_BIN64='lib/linux-x86_64/The-Difference-Between-Us' APP_MAIN_EXE_BIN32='lib/linux-i686/The-Difference-Between-Us' APP_MAIN_OPTIONS='-EO The-Difference-Between-Us.py' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libGL.so.1 libGLU.so.1 libm.so.6 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0 libSDL2_ttf-2.0.so.0 libutil.so.1 libX11.so.6 libXext.so.6 libXi.so.6 libXmu.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_default # Write launchers ## Use the default Ren'Py icon, instead of a generic icon. desktop_field_icon() { printf 'renpy' } launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-dig.sh0000755000000000000000000000522714471751340013507 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Sébastien “Elzen” Dufromentel # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # The Dig # send your bug reports to bugs@dotslashplay.it ### script_version=20251014.2 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='the-dig' GAME_NAME='The Dig' ARCHIVE_BASE_EN_0_NAME='the_dig_en_gog_2_20100.sh' ARCHIVE_BASE_EN_0_MD5='0fd830de17757f78dc9865dd7c06c785' ARCHIVE_BASE_EN_0_SIZE='760000' ARCHIVE_BASE_EN_0_VERSION='1.0-gog20100' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/the_dig' ARCHIVE_BASE_FR_0_NAME='the_dig_fr_gog_2_20100.sh' ARCHIVE_BASE_FR_0_MD5='b4c2b87f0305a82bb0fa805b01b014f1' ARCHIVE_BASE_FR_0_SIZE='760000' ARCHIVE_BASE_FR_0_VERSION='1.0-gog20100' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/the_dig' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_L10N_FILES=' language.bnd digvoice.bun video/sq1.san video/sq2.san video/sq3.san video/sq4.san video/sq8a.san video/sq8b.san video/sq8c.san video/sq9.san video/sq14sc14.san video/sq14sc22.san video/sq17.san video/sq18b.san video/sq18sc15.san video/digtxt.trs' CONTENT_GAME_MAIN_FILES=' video digmusic.bun dig.la0 dig.la1' CONTENT_DOC_L10N_PATH_EN='data/noarch/docs/english' CONTENT_DOC_L10N_PATH_FR='data/noarch/docs/french' CONTENT_DOC_L10N_FILES=' *.pdf' APP_MAIN_SCUMMID='scumm:dig' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST=' PKG_L10N PKG_MAIN' PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_L10N_BASE' 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' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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 "$@" set_default_package 'PKG_MAIN' # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-the-dream-machine.sh0000755000000000000000000000437114471751340015435 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # The Dream Machine # send your bug reports to bugs@dotslashplay.it ### script_version=20241218.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='the-dream-machine' GAME_NAME='The Dream Machine' ARCHIVE_BASE_1_NAME='setup_the_dream_machine_1.0.6_(52258).exe' ARCHIVE_BASE_1_MD5='74df25d3c3f2669c8b95db87a0f00a11' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='1117856' ARCHIVE_BASE_1_VERSION='1.0.6-gog52258' ARCHIVE_BASE_1_URL='https://www.gog.com/game/the_dream_machine' ARCHIVE_BASE_0_NAME='setup_the_dream_machine_1.0.2_(38172).exe' ARCHIVE_BASE_0_MD5='7b2bdaf4bcddfaafeea2e8d2ed66f21a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1100000' ARCHIVE_BASE_0_VERSION='1.0.2-gog38172' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' the_dream_machine.exe' CONTENT_GAME_DATA_FILES=' assets gameassets.swf gameasset_floors.swf gameasset_fonts.swf gameasset_sounds.swf launcher.txt tdm*' USER_PERSISTENT_DIRECTORIES=' savegames' APP_MAIN_EXE='the_dream_machine.exe' APP_MAIN_ICON='app/goggame-1281766827.ico' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-the-excavation-of-hobs-barrow.sh0000755000000000000000000000336314471751340017731 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # The Excavation of Hob's Barrow # send your bug reports to bugs@dotslashplay.it ### script_version=20240717.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='the-excavation-of-hobs-barrow' GAME_NAME='The Excavation of Hobʼs Barrow' ARCHIVE_BASE_0_NAME='the_excavation_of_hob_s_barrow_1_05_59783.sh' ARCHIVE_BASE_0_MD5='4282957f61e4cbea9c333bc99e56660a' ARCHIVE_BASE_0_SIZE='1170195' ARCHIVE_BASE_0_VERSION='1.05-gog59783' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_excavation_of_hobs_barrow' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' *.cfg *.exe *.vox' APP_MAIN_SCUMMID='ags:excavationhb' APP_MAIN_ICON='TEOHB.exe' ## Prevent conflicts with packages generated with pre-20230926.2 game scripts. PKG_MAIN_PROVIDES=' the-excavation-of-hobs-barrow-common' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-first-tree.sh0000755000000000000000000000460214471751340015024 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The First Tree # send your bug reports to bugs@dotslashplay.it ### script_version=20240915.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='the-first-tree' GAME_NAME='The First Tree' ARCHIVE_BASE_GOG_0_NAME='the_first_tree_gog_1_25523.sh' ARCHIVE_BASE_GOG_0_MD5='592127bcff79704927e9f3f5180ba044' ARCHIVE_BASE_GOG_0_SIZE='2400000' ARCHIVE_BASE_GOG_0_VERSION='1.0-gog25523' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/the_first_tree' ## This DRM-free archive is no longer available for sale from humblebundle.com. ARCHIVE_BASE_HUMBLE_0_NAME='thefirsttree_linux.zip' ARCHIVE_BASE_HUMBLE_0_MD5='987d328cb77670a4a43d7ea25f38cd99' ARCHIVE_BASE_HUMBLE_0_SIZE='2400000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0-humble1' UNITY3D_NAME='TheFirstTree' UNITY3D_PLUGINS=' ScreenSelector.so' ## The game does not start if the CSteamworks library is not provided. UNITY3D_PLUGINS="${UNITY3D_PLUGINS:-} libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='The First Tree' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-great-perhaps.sh0000755000000000000000000000433614471751340015506 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The Great Perhaps # send your bug reports to bugs@dotslashplay.it ### script_version=20251013.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='the-great-perhaps' GAME_NAME='The Great Perhaps' ARCHIVE_BASE_0_NAME='the_great_perhaps_1_32_14_31714.sh' ARCHIVE_BASE_0_MD5='4f675ed32851ec790cd010aaba6dd4b7' ARCHIVE_BASE_0_SIZE='4900000' ARCHIVE_BASE_0_VERSION='1.32.14-gog31714' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_great_perhaps' UNITY3D_NAME='TheGreatPerhaps' UNITY3D_PLUGINS=' libfmodL.so libfmod.so libfmodstudioL.so libfmodstudio.so libgvraudio.so libresonanceaudio.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' ## Force the use of the Vulkan renderer, ## as most text strings fail to render using the default OpenGL renderer. APP_MAIN_OPTIONS='-force-vulkan' 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-inner-world-1.sh0000755000000000000000000000465214471751340015343 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # The Inner World # send your bug reports to bugs@dotslashplay.it ### script_version=20240828.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='the-inner-world-1' GAME_NAME='The Inner World' ARCHIVE_BASE_1_NAME='setup_the_inner_world_1.2.1_(26675).exe' ARCHIVE_BASE_1_MD5='2379e9c64c4fe06d6892474637aa405b' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='1500000' ARCHIVE_BASE_1_VERSION='1.2.1-gog26675' ARCHIVE_BASE_1_URL='https://www.gog.com/game/the_inner_world' ARCHIVE_BASE_0_NAME='setup_the_inner_world_2.0.0.2.exe' ARCHIVE_BASE_0_MD5='b5778aa9770ba7fc7d1a3884154c136b' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1500000' ARCHIVE_BASE_0_VERSION='1.2.1-gog2.0.0.2' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_BIN_FILES=' adobe air meta-inf mimetype *.exe *.swf' CONTENT_GAME_DATA_FILES=' media *.url' CONTENT_DOC_DATA_FILES=' *.rtf' USER_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/TheInnerWorld' APP_MAIN_EXE='theinnerworld.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' ## Ensure easy upgrades from packages generated with pre-20240430.1 game scripts. PKG_BIN_PROVIDES="${PKG_BIN_PROVIDES:-} the-inner-world" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' ## Ensure easy upgrades from packages generated with pre-20240430.1 game scripts. PKG_DATA_PROVIDES="${PKG_DATA_PROVIDES:-} the-inner-world-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-inner-world-2.sh0000755000000000000000000000453214471751340015341 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # The Inner World: The Last Wind Monk # send your bug reports to bugs@dotslashplay.it ### script_version=20240828.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='the-inner-world-2' GAME_NAME='The Inner World: The Last Wind Monk' ARCHIVE_BASE_0_NAME='inner_world_the_last_wind_monk_en_20171018_15808.sh' ARCHIVE_BASE_0_MD5='7373055172ebbec6f3bd7349e58c43c4' ARCHIVE_BASE_0_SIZE='3993648' ARCHIVE_BASE_0_VERSION='2017.10.18-gog15808' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_inner_world_the_last_wind_monk' UNITY3D_NAME='The Last Wind Monk' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-interactive-adventures-of-dog-mendonca-and-pizzaboy.sh0000755000000000000000000000454314471751340024777 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # The Interactive Adventures of Dog Mendonça and Pizzaboy # send your bug reports to bugs@dotslashplay.it ### script_version=20240829.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='the-interactive-adventures-of-dog-mendonca-and-pizzaboy' GAME_NAME='The Interactive Adventures of Dog Mendonça and Pizzaboy' ARCHIVE_BASE_0_NAME='gog_the_interactive_adventures_of_dog_mendon_a_and_pizzaboy_2.0.0.1.sh' ARCHIVE_BASE_0_MD5='88c5bb7a410fbf2eb0cc124c3ce06fa0' ARCHIVE_BASE_0_SIZE='496599' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.1' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_interactive_adventures_of_dog_mendonca_and_pizzaboy' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN64_FILES=' godot.x11.opt.64' CONTENT_GAME_BIN32_FILES=' godot.x11.opt.32' CONTENT_GAME_DATA_FILES=' data.pck' APP_MAIN_EXE_BIN64='godot.x11.opt.64' APP_MAIN_EXE_BIN32='godot.x11.opt.32' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" ## No dependencies on native libraries are set, as this game ships static binaries only PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-lions-song.sh0000755000000000000000000000420314471751340015025 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The Lion's Song # send your bug reports to bugs@dotslashplay.it ### script_version=20240915.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='the-lions-song' GAME_NAME='The Lion’s Song' ARCHIVE_BASE_0_NAME='the_lion_s_song_0_7_35794.sh' ARCHIVE_BASE_0_MD5='bc86daa55b3afd2714bafce8e5bed230' ARCHIVE_BASE_0_SIZE='360000' ARCHIVE_BASE_0_VERSION='0.7-gog35794' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_lions_song' CONTENT_PATH_DEFAULT='data/noarch/game/GameData' CONTENT_GAME_BIN_FILES=' engine.cfg TLS' CONTENT_GAME_DATA_FILES=' Assets LZ4_license.txt Vollkorn_SILOpenFontLicensev1_10.txt *.base *.bundle *.header *.universe *.world *.it *.en *.es *.fr *.ru' APP_MAIN_EXE='TLS' 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 libcurl.so.4 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libstdc++.so.6 libuuid.so.1 libX11.so.6 libXcursor.so.1 libXinerama.so.1 libXrandr.so.2 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-little-acre.sh0000755000000000000000000000420514471751340015144 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # The Little Acre # send your bug reports to bugs@dotslashplay.it ### script_version=20241127.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='the-little-acre' GAME_NAME='The Little Acre' ARCHIVE_BASE_0_NAME='the_little_acre_en_gog_3_14723.sh' ARCHIVE_BASE_0_MD5='ef9dc3c9600bee4dbf64b29d46b718c6' ARCHIVE_BASE_0_SIZE='2946810' ARCHIVE_BASE_0_VERSION='3-gog14723' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_little_acre' UNITY3D_NAME='TheLittleAcre' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam libraries are required UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='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 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # 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-longest-journey.sh0000755000000000000000000000455714471751340016115 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # The Longest Journey # send your bug reports to bugs@dotslashplay.it ### script_version=20240829.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='the-longest-journey' GAME_NAME='The Longest Journey' ARCHIVE_BASE_1_NAME='setup_the_longest_journey_142_lang_update_(24607).exe' ARCHIVE_BASE_1_MD5='540b2e016ab90dd509c53fc7df4397fd' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_the_longest_journey_142_lang_update_(24607)-1.bin' ARCHIVE_BASE_1_PART1_MD5='efb1cd664b1cbbd29d0e641ad2f81e05' ARCHIVE_BASE_1_SIZE='1900000' ARCHIVE_BASE_1_VERSION='142-gog24607' ARCHIVE_BASE_1_URL='https://www.gog.com/game/the_longest_journey' ARCHIVE_BASE_0_NAME='setup_the_longest_journey_2.0.0.12.exe' ARCHIVE_BASE_0_MD5='89b3cae144856579ed5fee10ecc76154' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1900000' ARCHIVE_BASE_0_VERSION='142-gog2.0.0.12' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' ## TODO: The "??" glob is a bit confusing, and should be replaced by an explicit list CONTENT_GAME_MAIN_FILES=' global static fonts x.xarc game.exe ?? *.ini' CONTENT_DOC_MAIN_FILES=' tlj_faq_files *.txt *.pdf *.html' APP_MAIN_SCUMMID='stark:tlj' APP_MAIN_ICON='game.exe' ## Ensure easy upgrade from packages built with pre-20230908.1 game script PKG_MAIN_PROVIDES="${PKG_MAIN_PROVIDES:-} the-longest-journey-data the-longest-journey-scummvm the-longest-journey-wine" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-longing.sh0000755000000000000000000000517014471751340014376 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # The Longing # send your bug reports to bugs@dotslashplay.it ### script_version=20250515.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='the-longing' GAME_NAME='The Longing' ARCHIVE_BASE_0_NAME='the_longing_1_6_1_57129.sh' ARCHIVE_BASE_0_MD5='cb579de1e72469df601fe8199ba2db4c' ARCHIVE_BASE_0_SIZE='2200000' ARCHIVE_BASE_0_VERSION='1.6.1-gog57129' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_longing' ARCHIVE_BASE_MULTIARCH_0_NAME='the_longing_1_0_7_38629.sh' ARCHIVE_BASE_MULTIARCH_0_MD5='98729196edafd2a223a5425f7de70c02' ARCHIVE_BASE_MULTIARCH_0_SIZE='5500000' ARCHIVE_BASE_MULTIARCH_0_VERSION='1.0.7-gog38629' UNITY3D_NAME='The Longing' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PACKAGES_LIST_MULTIARCH=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers case "$(current_archive)" in ('ARCHIVE_BASE_MULTIARCH_'*) launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' ;; (*) launchers_generation 'PKG_BIN' ;; esac # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-the-night-fisherman.sh0000755000000000000000000000337614471751340016032 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The Night Fisherman # send your bug reports to bugs@dotslashplay.it ### script_version=20250515.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='the-night-fisherman' GAME_NAME='The Night Fisherman' ARCHIVE_BASE_0_NAME='The Night Fisherman WIN.zip' ARCHIVE_BASE_0_MD5='b7df1ae2b6665229870c2f8610ccd2c9' ARCHIVE_BASE_0_SIZE='300000' ARCHIVE_BASE_0_VERSION='1.0-itch1' ARCHIVE_BASE_0_URL='https://farfewgiants.itch.io/night-fisherman' UNITY3D_NAME='The Night Fisherman' CONTENT_PATH_DEFAULT='The Night Fisherman WIN' 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-the-night-of-the-rabbit.sh0000755000000000000000000000411114471751340016465 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # The Night of the Rabbit # send your bug reports to bugs@dotslashplay.it ### script_version=20250114.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='the-night-of-the-rabbit' GAME_NAME='The Night of the Rabbit' ARCHIVE_BASE_0_NAME='the_night_of_the_rabbit_2_2_325_79210.sh' ARCHIVE_BASE_0_MD5='0130548d6da5db0fee91521e25169066' ARCHIVE_BASE_0_SIZE='3217360' ARCHIVE_BASE_0_VERSION='2.2.325-gog79210' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_night_of_the_rabbit' VISIONAIRE_NAME='rabbit' CONTENT_PATH_DEFAULT='data/noarch/game' ## The shipped build of OpenAL must be used, to avoid a missing symbol error: ## symbol lookup error: ./satinav: undefined symbol: SelectResampler CONTENT_LIBS0_BIN_RELATIVE_PATH='libs64' CONTENT_LIBS0_BIN_FILES=' libopenal.so' APP_MAIN_ICON='../support/icon.png' PKG_BIN_ARCH='64' ## Ensure easy upgrades from packages generated with pre-20240901.2 scripts PKG_DATA_PROVIDES="${PKG_DATA_PROVIDES:-} the-night-of-the-rabbit-scenes the-night-of-the-rabbit-videos" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 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-pillars-of-the-earth-expansion.sh0000755000000000000000000000426314471751340020674 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2025 Bernd Schumacher set -o errexit ### # The Pillars of the Earth expansions: # - Book 2 & 3 # send your bug reports to bugs@dotslashplay.it ### script_version=20250922.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='the-pillars-of-the-earth' GAME_NAME='The Pillars of the Earth' EXPANSION_ID_BOOK23='book-2-3' EXPANSION_NAME_BOOK23='Book 2 & 3' ARCHIVE_BASE_BOOK23_0_NAME='the_pillars_of_the_earth_book_2_3_en_1_1_703_19573.sh' ARCHIVE_BASE_BOOK23_0_MD5='5c2237200b2bbec548bd507645797d1e' ARCHIVE_BASE_BOOK23_0_SIZE='1808404' ARCHIVE_BASE_BOOK23_0_VERSION='1.1.703-gog19573' ARCHIVE_BASE_BOOK23_0_URL='https://www.gog.com/game/ken_folletts_the_pillars_of_the_earth_season_pass' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_DATA_COMMON_BOOK23_FILES=' data.vis' CONTENT_GAME_DATA_BOOK23_FILES=' videos' PACKAGES_LIST=' PKG_DATA_COMMON_BOOK23 PKG_DATA_BOOK23' PKG_PARENT_ID="$GAME_ID" PKG_DATA_BOOK23_DEPENDENCIES_SIBLINGS=' PKG_DATA_COMMON_BOOK23 PKG_PARENT' PKG_DATA_COMMON_ID="${GAME_ID}-data-common" PKG_DATA_COMMON_BOOK23_ID="${PKG_DATA_COMMON_ID}-${EXPANSION_ID_BOOK23}" PKG_DATA_BOOK23_ID="${GAME_ID}-data-${EXPANSION_ID_BOOK23}" PKG_DATA_COMMON_BOOK23_PROVIDES=" $PKG_DATA_COMMON_ID" PKG_DATA_COMMON_BOOK23_DESCRIPTION='data - common files between base game and expansion' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_default # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-the-pillars-of-the-earth.sh0000755000000000000000000000722514471751340016673 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2025 Bernd Schumacher set -o errexit ### # The Pillars of the Earth # send your bug reports to bugs@dotslashplay.it ### script_version=20250923.5 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='the-pillars-of-the-earth' GAME_NAME='The Pillars of the Earth' ARCHIVE_BASE_0_NAME='the_pillars_of_the_earth_en_1_1_703_19574.sh' ARCHIVE_BASE_0_MD5='1976e6d4476e3d9867aef13176581f58' ARCHIVE_BASE_0_SIZE='12000000' ARCHIVE_BASE_0_VERSION='1.1.703-gog19574' ARCHIVE_BASE_0_URL='https://www.gog.com/game/ken_folletts_the_pillars_of_the_earth_season_pass' VISIONAIRE_NAME='pillars' CONTENT_PATH_DEFAULT='data/noarch/game' ## The shipped build of OpenAL must be used, to avoid a missing symbol error: ## symbol lookup error: ./satinav: undefined symbol: SelectResampler CONTENT_LIBS0_BIN_RELATIVE_PATH='libs64' CONTENT_LIBS0_BIN_FILES=' libopenal.so' CONTENT_GAME0_BIN_FILES=' configtool/resources configtool/translations configtool/qt.conf configtool/visconfig' CONTENT_GAME_DATA_SCENES_FILES=' scenes' CONTENT_GAME_DATA_COMMON_FILES=' data.vis' APPLICATIONS_LIST=' APP_MAIN APP_CONFIG' ## Most properties of the main game launcher are implicit for games relying on the Visionaire engine. 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='configtool/visconfig' APP_CONFIG_ICON='../support/icon.png' PACKAGES_LIST=' PKG_BIN PKG_DATA_SCENES PKG_DATA_COMMON PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpng12.so.0 libpthread.so.0 libQt5Core.so.5 libQt5Gui.so.5 libQt5Widgets.so.5 librt.so.1 libSDL2-2.0.so.0 libstdc++.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_DATA_SCENES PKG_DATA_COMMON' ## Ensure easy upgrades from packages generated by pre-20231005.1 game scripts PKG_DATA_PROVIDES="${PKG_DATA_PROVIDES:-} the-pillars-of-the-earth-videos" PKG_DATA_SCENES_ID="${PKG_DATA_ID}-scenes" PKG_DATA_SCENES_DESCRIPTION="$PKG_DATA_DESCRIPTION - scenes" PKG_DATA_COMMON_ID="${PKG_DATA_ID}-common" PKG_DATA_COMMON_DESCRIPTION="$PKG_DATA_DESCRIPTION - common files between base game and expansion" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Link libqxcb.so where the configuration tool expects to find it. plugin_source="$(path_libraries_system)/qt5/plugins/platforms/libqxcb.so" plugin_destination="$(package_path 'PKG_BIN')$(path_game_data)/configtool/plugins/platforms/libqxcb.so" mkdir --parents "$(dirname "$plugin_destination")" ln --symbolic "$plugin_source" "$plugin_destination" # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-the-red-strings-club.sh0000755000000000000000000000414114471751340016122 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The Red Strings Club # send your bug reports to bugs@dotslashplay.it ### script_version=20250515.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='the-red-strings-club' GAME_NAME='The Red Strings Club' ARCHIVE_BASE_0_NAME='the_red_strings_club_20180122_ch_update_40932.sh' ARCHIVE_BASE_0_MD5='6a11270a590a0151223cce6aae70858c' ARCHIVE_BASE_0_SIZE='280000' ARCHIVE_BASE_0_VERSION='2018.01.22-gog40932' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_red_strings_club' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' runner' CONTENT_GAME_DATA_FILES=' assets' APP_MAIN_EXE='runner' APP_MAIN_ICON='assets/icon.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libssl.so.1.0.0 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-the-shivah.sh0000755000000000000000000000417714471751340014231 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # The Shivah # send your bug reports to bugs@dotslashplay.it ### script_version=20240915.2 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='the-shivah' GAME_NAME='The Shivah' ARCHIVE_BASE_1_NAME='the_shivah_3_0_66477.sh' ARCHIVE_BASE_1_MD5='350e0e292792b1e44df1f54276843f4d' ARCHIVE_BASE_1_SIZE='170000' ARCHIVE_BASE_1_VERSION='3.0-gog66477' ARCHIVE_BASE_1_URL='https://www.gog.com/game/the_shivah' ARCHIVE_BASE_0_NAME='the_shivah_2_0_53607.sh' ARCHIVE_BASE_0_MD5='da6d89db273313fe00a680c52554aea3' ARCHIVE_BASE_0_SIZE='170000' ARCHIVE_BASE_0_VERSION='2.0-gog53607' ## Optional icons pack ARCHIVE_OPTIONAL_ICONS_NAME='the-shivah_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5='76cb6554e1c09596842391a71e696ded' ARCHIVE_OPTIONAL_ICONS_URL='https://downloads.dotslashplay.it/games/the-shivah/' CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 16x16 24x24 32x32 48x48 256x256' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' ENGV.tmp Music Sounds *.ags *.cfg *.exe *.ogv *.tra *.vox' CONTENT_DOC_MAIN_FILES=' licenses' ## TODO: Check if "ags:shivahkosher" should be used instead. APP_MAIN_SCUMMID='ags:shivah' APP_MAIN_ICON='../support/icon.png' APP_MAIN_ICON_0='Shivah.exe' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-silver-case.sh0000755000000000000000000000525314471751340015160 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # The Silver Case # send your bug reports to bugs@dotslashplay.it ### script_version=20250827.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='the-silver-case' GAME_NAME='The Silver Case' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_ID (demo)" ARCHIVE_BASE_DEMO_GOG_0_NAME='setup_the_silver_case_demo_2.0.0.1.exe' ARCHIVE_BASE_DEMO_GOG_0_MD5='3c133cb2031160370917f120055c63b4' ARCHIVE_BASE_DEMO_GOG_0_TYPE='innosetup' ARCHIVE_BASE_DEMO_GOG_0_SIZE='960000' ARCHIVE_BASE_DEMO_GOG_0_VERSION='1.0-gog2.0.0.1' ARCHIVE_BASE_DEMO_GOG_0_URL='https://www.gog.com/game/the_silver_case_demo' ## This installer is no longer available from Playism, ## as they turned their store into yet another Steam keys reseller. ARCHIVE_BASE_DEMO_PLAYISM_0_NAME='TheSilverCase_DEMO_Playism0930.zip' ARCHIVE_BASE_DEMO_PLAYISM_0_MD5='a1bbd59ead01c4e1dc50c38b3a65c5ea' ARCHIVE_BASE_DEMO_PLAYISM_0_SIZE='950000' ARCHIVE_BASE_DEMO_PLAYISM_0_VERSION='1.0-playism0930' UNITY3D_NAME_DEMO='thesilvercase_trial' CONTENT_PATH_DEFAULT_DEMO_GOG='app' CONTENT_PATH_DEFAULT_DEMO_PLAYISM='thesilvercase_demo_0930' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_DESCRIPTION='data' ## Playism build - convmv is used to convert file paths to lower case. REQUIREMENTS_LIST_DEMO_PLAYISM=' 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 ## Playism build - Convert all file paths to lower case. case "$(current_archive)" in ('ARCHIVE_BASE_DEMO_PLAYISM_'*) 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-the-stanley-parable.sh0000755000000000000000000000732714471751340016032 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # The Stanley Parable # send your bug reports to bugs@dotslashplay.it ### script_version=20250515.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='the-stanley-parable' GAME_NAME='The Stanley Parable' ARCHIVE_BASE_0_NAME='The_Stanley_Parable_Setup.tar' ARCHIVE_BASE_0_MD5='10a98d7fb93017eb666281bf2d3da28d' ARCHIVE_BASE_0_SIZE='2100000' ARCHIVE_BASE_0_VERSION='1.0-humble161007' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/the-stanley-parable' CONTENT_PATH_DEFAULT='data' CONTENT_LIBS_BIN_RELATIVE_PATH='bin' CONTENT_LIBS_BIN_FILES=' bsppack.so crashhandler.so datacache.so dedicated.so engine.so filesystem_stdio.so inputsystem.so launcher.so libtier0.so libtogl.so libvpx.so.1 libvpx.so.1.0 libvpx.so.1.0.0 libvstdlib.so localize.so materialsystem.so puzzlemaker_dll.so scenefilecache.so shaderapidx9.so shaderapiempty.so soundemittersystem.so stdshader_dx9.so studiorender.so valve_avi.so vaudio_speex.so vgui2.so vguimatsurface.so vphysics.so vrad_dll.so vscript.so vvis_dll.so' ## Several shipped libraries rely on the Steam libraries. CONTENT_LIBS_BIN_FILES="${CONTENT_LIBS_BIN_FILES:-} libsteam_api_linux.so libsteam_api.so libsteam.so" CONTENT_GAME_BIN_FILES=' bin/*.bin bin/*.cfg bin/*.dat bin/*.fgd bin/*.so bin/*.txt bin/vbsp_linux bin/vrad_linux bin/vvis_linux thestanleyparable/bin stanley_linux' CONTENT_GAME_DATA_FILES=' platform stanley.png thestanleyparable' CONTENT_DOC_DATA_FILES=' thirdpartylegalnotices.doc' USER_PERSISTENT_DIRECTORIES=' thestanleyparable/cfg thestanleyparable/save' USER_PERSISTENT_FILES=' thestanleyparable/stats.vdf' APP_MAIN_EXE='stanley_linux' APP_MAIN_ICON='stanley.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libstdc++.so.6 libtcmalloc_minimal.so.4 libuuid.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ARCHIVE_INNER_1_PATH="${PLAYIT_WORKDIR}/gamedata/The Stanley Parable Setup" ## This MojoSetup installer is not based on Makeself. ARCHIVE_INNER_1_EXTRACTOR='bsdtar' archive_extraction 'ARCHIVE_INNER_1' rm "$ARCHIVE_INNER_1_PATH" ARCHIVE_INNER_2_PATH="${PLAYIT_WORKDIR}/gamedata/data/tsp.tar" archive_extraction 'ARCHIVE_INNER_2' rm "$ARCHIVE_INNER_2_PATH" # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default ## Some libraries are only found by the game engine if they are in a hardcoded path. libraries_source=$(path_libraries) libraries_destination="$(package_path 'PKG_BIN')$(path_game_data)/bin" ln --symbolic \ "${libraries_source}/launcher.so" \ "${libraries_source}/filesystem_stdio.so" \ "$libraries_destination" # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-the-suicide-of-rachel-foster.sh0000755000000000000000000000633414471751340017527 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The Suicide of Rachel Foster # send your bug reports to bugs@dotslashplay.it ### script_version=20241219.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='the-suicide-of-rachel-foster' GAME_NAME='The Suicide of Rachel Foster' ARCHIVE_BASE_1_NAME='setup_the_suicide_of_rachel_foster_1.0.9v_(57374).exe' ARCHIVE_BASE_1_MD5='7e4cc8210ab1deb630c4ab489aa8ebfb' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_the_suicide_of_rachel_foster_1.0.9v_(57374)-1.bin' ARCHIVE_BASE_1_PART1_MD5='96d1fdafd4826dda89693d559a78bf08' ARCHIVE_BASE_1_PART2_NAME='setup_the_suicide_of_rachel_foster_1.0.9v_(57374)-2.bin' ARCHIVE_BASE_1_PART2_MD5='ee7554f1f0696841099997efe15dc8e2' ARCHIVE_BASE_1_PART3_NAME='setup_the_suicide_of_rachel_foster_1.0.9v_(57374)-3.bin' ARCHIVE_BASE_1_PART3_MD5='295557d6e0d74b12e429441e23d3d995' ARCHIVE_BASE_1_SIZE='8860163' ARCHIVE_BASE_1_VERSION='1.0.9v-gog57374' ARCHIVE_BASE_1_URL='https://www.gog.com/game/the_suicide_of_rachel_foster' ARCHIVE_BASE_0_NAME='setup_the_suicide_of_rachel_foster_1.0.3d_(36448).exe' ARCHIVE_BASE_0_MD5='b351509e1845cdd6d99e7e252dc27815' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_the_suicide_of_rachel_foster_1.0.3d_(36448)-1.bin' ARCHIVE_BASE_0_PART1_MD5='f5cca9cdf87ec5bc32800b30cf7223e3' ARCHIVE_BASE_0_PART2_NAME='setup_the_suicide_of_rachel_foster_1.0.3d_(36448)-2.bin' ARCHIVE_BASE_0_PART2_MD5='5ff56895c2de3bf2d973e89982d7a7c8' ARCHIVE_BASE_0_PART3_NAME='setup_the_suicide_of_rachel_foster_1.0.3d_(36448)-3.bin' ARCHIVE_BASE_0_PART3_MD5='1f71e3117575dfe51758986882bc0e28' ARCHIVE_BASE_0_SIZE='11000000' ARCHIVE_BASE_0_VERSION='1.0.3d-gog36448' UNREALENGINE4_NAME='tsorf' CONTENT_PATH_DEFAULT='tsorf' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Local Settings/Application Data/Daedalic Entertainment GmbH/The Suicide of Rachel Foster' APP_MAIN_EXE='tsorf/binaries/win64/overlook-win64-shipping.exe' ## Override the default wrestool options string for Unreal Engine 4 games APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=123' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 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-tail-makes-the-fox.sh0000755000000000000000000000357114471751340016343 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # The Tail Makes the Fox # send your bug reports to bugs@dotslashplay.it ### script_version=20240428.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='the-tail-makes-the-fox' GAME_NAME='The Tail Makes the Fox' ARCHIVE_BASE_0_NAME='The_Tail_Makes_the_Fox-1.26-pc.zip' ARCHIVE_BASE_0_MD5='dc1f20ed2ee44029fab065e049b9f372' ARCHIVE_BASE_0_SIZE='590000' ARCHIVE_BASE_0_VERSION='1.26-itch1' ARCHIVE_BASE_0_URL='https://reineworks.itch.io/the-tail-makes-the-fox' CONTENT_PATH_DEFAULT='The_Tail_Makes_the_Fox-1.26-pc/game' CONTENT_GAME_MAIN_FILES=' cache voices archive.rpa script_version.txt' CONTENT_DOC_MAIN_PATH="${CONTENT_PATH_DEFAULT}/.." CONTENT_DOC_DATA_FILES=' README.html' APP_MAIN_TYPE='renpy' APP_MAIN_ICON='../icon.png' ## Ensure easy upgrades from packages generated with pre-20240428.1 game scripts. PKG_MAIN_PROVIDES="${PKG_MAIN_PROVIDES:-} the-tail-makes-the-fox-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-vanishing-of-ethan-carter.sh0000755000000000000000000000642014471751340017703 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The Vanishing of Ethan Carter # send your bug reports to bugs@dotslashplay.it ### script_version=20250520.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='the-vanishing-of-ethan-carter' GAME_NAME='The Vanishing of Ethan Carter' ARCHIVE_BASE_0_NAME='setup_the_vanishing_of_ethan_carter_1.04_(18494).exe' ARCHIVE_BASE_0_MD5='ac039c2c1dcfc093840b0a5ce15008c0' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_the_vanishing_of_ethan_carter_1.04_(18494)-1.bin' ARCHIVE_BASE_0_PART1_MD5='77dbaf659c02d6fbb77917be36bf463d' ARCHIVE_BASE_0_PART2_NAME='setup_the_vanishing_of_ethan_carter_1.04_(18494)-2.bin' ARCHIVE_BASE_0_PART2_MD5='35e0cc8447e782b57525aed48837bd1a' ARCHIVE_BASE_0_SIZE='10000000' ARCHIVE_BASE_0_VERSION='1.04-gog18494' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_vanishing_of_ethan_carter' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN64_FILES=' binaries/win64' CONTENT_GAME_BIN32_FILES=' binaries/win32' CONTENT_GAME_DATA_FILES=' astronautsgame engine binaries/game binaries/build.properties' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=" users/${USER}/Documents/My Games/The Vanishing of Ethan Carter/AstronautsGame" ## Without a virtual desktop, the game fails to register keyboard inputs. (WINE 10.0) WINE_VIRTUAL_DESKTOP='auto' ## Cursor is prevented from leaving the game window, avoiding problems with mouse look. (WINE 10.0) WINE_WINETRICKS_VERBS='grabfullscreen=y' APP_MAIN_EXE_BIN64="binaries/win64/astronautsgame-win64-shipping.exe" APP_MAIN_EXE_BIN32="binaries/win32/astronautsgame-win32-shipping.exe" APP_MAIN_ICON="binaries/win32/astronautsgame-win32-shipping.exe" PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' PKG_BIN64_DEPENDENCIES_GSTREAMER_PLUGINS="$PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS" PKG_BIN32_DEPENDENCIES_GSTREAMER_PLUGINS="$PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-the-whispered-world.sh0000755000000000000000000000436614471751340016066 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # The Whispered World # send your bug reports to bugs@dotslashplay.it ### script_version=20250803.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='the-whispered-world' GAME_NAME='The Whispered World' ARCHIVE_BASE_1_NAME='the_whispered_world_special_edition_en_3_2_0419_16378.sh' ARCHIVE_BASE_1_MD5='b5b569ed6d100a08320687a747e9e783' ARCHIVE_BASE_1_SIZE='2169262' ARCHIVE_BASE_1_VERSION='3.2.0419-gog16378' ARCHIVE_BASE_1_URL='https://www.gog.com/game/the_whispered_world_special_edition' ARCHIVE_BASE_0_NAME='gog_the_whispered_world_special_edition_2.0.0.1.sh' ARCHIVE_BASE_0_MD5='485368f130f2d82f564a0159cd497437' ARCHIVE_BASE_0_SIZE='2200000' ARCHIVE_BASE_0_VERSION='3.2.0418-gog2.0.0.1' ## Optional icons pack ARCHIVE_OPTIONAL_ICONS_NAME='the-whispered-world_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5='3ec301bf71cf279aa8de91c136e16388' ARCHIVE_OPTIONAL_ICONS_URL='https://downloads.dotslashplay.it/resources/the-whispered-world' CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 16x16 32x32 48x48 256x256' VISIONAIRE_NAME='TWWSE' CONTENT_PATH_DEFAULT='data/noarch/game' PKG_BIN_ARCH='64' ## Easier upgrades from pre-20231005.1 packages PKG_DATA_PROVIDES=' the-whispered-world-videos' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 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 # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-thimbleweed-park.sh0000755000000000000000000000433214471751340015406 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Anna Lea # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Thimbleweed Park # send your bug reports to bugs@dotslashplay.it ### script_version=20241111.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='thimbleweed-park' GAME_NAME='Thimbleweed Park' ARCHIVE_BASE_0_NAME='thimbleweed_park_en_1_0_958_19330.sh' ARCHIVE_BASE_0_MD5='2803fd41a66c1163f02b61bb6ff286ab' ARCHIVE_BASE_0_SIZE='943598' ARCHIVE_BASE_0_VERSION='1.0.958-gog19330' ARCHIVE_BASE_0_URL='https://www.gog.com/game/thimbleweed_park' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' ThimbleweedPark' CONTENT_GAME_DATA_FILES=' Icon*.png ThimbleweedPark.ggpack?' APP_MAIN_EXE='ThimbleweedPark' APP_MAIN_ICONS_LIST='APP_MAIN_ICON_32 APP_MAIN_ICON_64 APP_MAIN_ICON_256 APP_MAIN_ICON_512 APP_MAIN_ICON_1024' APP_MAIN_ICON_32='Icon32.png' APP_MAIN_ICON_64='Icon64.png' APP_MAIN_ICON_256='Icon256.png' APP_MAIN_ICON_512='Icon512.png' APP_MAIN_ICON_1024='Icon1024.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 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-to-be-or-not-to-be.sh0000755000000000000000000000433514471751340015413 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # To Be or Not To Be # send your bug reports to bugs@dotslashplay.it ### script_version=20250814.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='to-be-or-not-to-be' GAME_NAME='To Be or Not To Be' ARCHIVE_BASE_0_NAME='tobe_linux_3270.zip' ARCHIVE_BASE_0_MD5='2a7e51cfbcdae43c438557ffa0a9cff0' ARCHIVE_BASE_0_SIZE='1325068' ARCHIVE_BASE_0_VERSION='3270-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/ryan-norths-to-be-or-not-to-be' UNITY3D_NAME='To Be or Not To Be' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='tobe_linux_3270' 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 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 initialisation actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Delete MacOS junk. find . -name '*.rsrc' -delete ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-to-the-moon.sh0000755000000000000000000001041414471751340014326 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2017 Mopi set -o errexit ### # To The Moon # send your bug reports to bugs@dotslashplay.it ### script_version=20241219.5 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='to-the-moon' GAME_NAME='To The Moon' ARCHIVE_BASE_HUMBLE_0_NAME='ToTheMoon_linux_1389114090.sh' ARCHIVE_BASE_HUMBLE_0_MD5='706a5c9467328438d412370ffb1454de' ARCHIVE_BASE_HUMBLE_0_SIZE='89605' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0-humble1' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/to-the-moon' ARCHIVE_BASE_GOG_0_NAME='to_the_moon_1389114090_lang_25959.sh' ARCHIVE_BASE_GOG_0_MD5='8774a72bdb768d9c5b3c817198363a04' ## FIXME: Set the size of the archive contents ARCHIVE_BASE_GOG_0_VERSION='1.0-gog25959' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/to_the_moon' CONTENT_PATH_DEFAULT_HUMBLE='data' ## The game fails to run some sound file on launch ## when using the system-provided build of libSDL_sound. CONTENT_LIBS_BIN_FILES=' libSDL_sound-1.0.so.1' ## Some text is garbled if the system-provided build of libSDL2_ttf is used. CONTENT_LIBS_BIN_FILES="$CONTENT_LIBS_BIN_FILES libSDL2_ttf-2.0.so.0" CONTENT_LIBS_BIN64_RELATIVE_PATH_HUMBLE='x86_64/lib64' CONTENT_LIBS_BIN64_RELATIVE_PATH_GOG='lib64' CONTENT_LIBS_BIN64_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_LIBS_BIN32_RELATIVE_PATH_HUMBLE='x86/lib' CONTENT_LIBS_BIN32_RELATIVE_PATH_GOG='lib' CONTENT_LIBS_BIN32_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_GAME_BIN64_RELATIVE_PATH_HUMBLE='x86_64' CONTENT_GAME_BIN64_FILES=' ToTheMoon.bin.x86_64' CONTENT_GAME_BIN32_RELATIVE_PATH_HUMBLE='x86' CONTENT_GAME_BIN32_FILES=' ToTheMoon.bin.x86' CONTENT_GAME_DATA_RELATIVE_PATH_HUMBLE='noarch' CONTENT_GAME_DATA_FILES_HUMBLE=' Audio Data Fonts Graphics mkxp.conf Game.ini ToTheMoon.png' CONTENT_GAME_DATA_FILES_GOG=' Audio Data Fonts Graphics mkxp.conf Audio.dat lang.dat Game.ini icon.png Game.rgssad' CONTENT_DOC_DATA_RELATIVE_PATH_HUMBLE='noarch' CONTENT_DOC_DATA_FILES=' LICENSE.txt COPYING-*.txt' CONTENT_DOC0_DATA_FILES_GOG=' Multilingual ReadMe.pdf' APP_MAIN_EXE_BIN64='ToTheMoon.bin.x86_64' APP_MAIN_EXE_BIN32='ToTheMoon.bin.x86' APP_MAIN_ICON_HUMBLE='noarch/ToTheMoon.png' APP_MAIN_ICON_GOG='icon.png' ## Prevent a game crash when using the Wayland video backend of SDL APP_MAIN_PRERUN=' # Prevent a game crash when using the Wayland video backend of SDL if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' ## TODO: Check if the default prefix type could be used APP_MAIN_PREFIX_TYPE='none' 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" ## TODO: Check if the same dependencies list is used by the Humble Bundle and GOG builds PKG_BIN_DEPENDENCIES_LIBRARIES=' libcrypt.so.1 libc.so.6 libdl.so.2 libfreetype.so.6 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0 libsigc-2.0.so.0 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # 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 package packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-torins-passage.sh0000755000000000000000000000377314471751340015131 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Torin's Passage # send your bug reports to bugs@dotslashplay.it ### script_version=20241219.6 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='torins-passage' GAME_NAME='Torinʼs Passage' ARCHIVE_BASE_1_NAME='setup_torins_passage_1.0_(20240).exe' ARCHIVE_BASE_1_MD5='8d6dae383f0890d3f9cd629da56c8836' ARCHIVE_BASE_1_SIZE='375246' ARCHIVE_BASE_1_VERSION='1.0-gog20240' ARCHIVE_BASE_1_URL='https://www.gog.com/game/torins_passage' ARCHIVE_BASE_0_NAME='setup_torins_passage_2.0.0.7.exe' ARCHIVE_BASE_0_MD5='a7398abdb6964bf6a6446248f138d05e' ARCHIVE_BASE_0_SIZE='350000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.7' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_MAIN_FILES=' movie patches version resource.cfg install.txt *.000 *.aud *.drv *.err *.exe *.hlp *.scr *.sfx *.shp' CONTENT_DOC_MAIN_FILES=' torin.txt *.pdf' APP_MAIN_SCUMMID='sci:torin' APP_MAIN_ICON='app/goggame-1207659044.ico' APP_MAIN_ICON_0='goggame-1207659044.ico' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-tormentum-dark-sorrow.sh0000755000000000000000000000366114471751340016470 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Tormentum: Dark Sorrow # send your bug reports to bugs@dotslashplay.it ### script_version=20240904.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='tormentum-dark-sorrow' GAME_NAME='Tormentum: Dark Sorrow' ARCHIVE_BASE_0_NAME='setup_tormentum_-_dark_sorrow_1.4.1_(15803).exe' ARCHIVE_BASE_0_MD5='7fdeef4f8a6c82c75e85576497684460' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='1.4.1-gog15803' ARCHIVE_BASE_0_SIZE='340000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/tormentum_dark_sorrow' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' adobe air tormentum.exe' CONTENT_GAME_DATA_FILES=' assets ico meta-inf mimetype tormentum.swf' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/com.ohnoo.Tormentum' APP_MAIN_EXE='tormentum.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-truberbrook.sh0000755000000000000000000000444014471751340014522 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Trüberbrook # send your bug reports to bugs@dotslashplay.it ### script_version=20250515.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='truberbrook' GAME_NAME='Trüberbrook' ARCHIVE_BASE_0_NAME='tr_berbrook_1_6_31066.sh' ARCHIVE_BASE_0_MD5='d80939b1304181c5f755a768289d9189' ARCHIVE_BASE_0_SIZE='5500000' ARCHIVE_BASE_0_VERSION='1.6-gog31066' ARCHIVE_BASE_0_URL='https://www.gog.com/game/truberbrook' UNITY3D_NAME='Truberbrook' UNITY3D_PLUGINS=' libfmodL.so libfmod.so libfmodstudioL.so libfmodstudio.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' ## The game crashes on launch when using the wayland backend of SDL, ## even when using the system-provided build of SDL. APP_MAIN_PRERUN=' # The game crashes on launch when using the wayland backend of SDL if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' 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-true-fear.sh0000755000000000000000000000547214471751340014062 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # True Fear series: # - True Fear: Forsaken Souls Part 1 # - True Fear: Forsaken Souls Part 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20240904.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID_EPISODE1='true-fear-1' GAME_NAME_EPISODE1='True Fear: Forsaken Souls Part 1' GAME_ID_EPISODE2='true-fear-2' GAME_NAME_EPISODE2='True Fear: Forsaken Souls Part 2' ARCHIVE_BASE_EPISODE1_0_NAME='setup_true_fear_forsaken_souls_part_1_2.0.26_(43095).exe' ARCHIVE_BASE_EPISODE1_0_MD5='12c98dc222047ba571e7c1ce3e6689c8' ARCHIVE_BASE_EPISODE1_0_TYPE='innosetup' ARCHIVE_BASE_EPISODE1_0_SIZE='660000' ARCHIVE_BASE_EPISODE1_0_VERSION='1.2.0.26-gog43095' ARCHIVE_BASE_EPISODE1_0_URL='https://www.gog.com/game/true_fear_forsaken_souls' ARCHIVE_BASE_EPISODE2_0_NAME='setup_true_fear_forsaken_souls_part_2_2.0.8_(49144).exe' ARCHIVE_BASE_EPISODE2_0_MD5='e464cb8eedd9728249efde7593c75f79' ARCHIVE_BASE_EPISODE2_0_TYPE='innosetup' ARCHIVE_BASE_EPISODE2_0_SIZE='900000' ARCHIVE_BASE_EPISODE2_0_VERSION='2.0.8-gog49144' ARCHIVE_BASE_EPISODE2_0_URL='https://www.gog.com/game/true_fear_forsaken_souls_part_2' UNITY3D_NAME_EPISODE1='true fear' UNITY3D_NAME_EPISODE2='true fear 2' CONTENT_PATH_DEFAULT='.' ## TODO: Check if these files are required. CONTENT_GAME0_DATA_FILES_EPISODE1=' branding branding.meta' WINE_PERSISTENT_DIRECTORIES_EPISODE1=' users/${USER}/AppData/Local/Goblinz/TrueFear_ForsakenSouls' WINE_PERSISTENT_DIRECTORIES_EPISODE2=' users/${USER}/AppData/LocalLow/Goblinz Enterprises Limited/True Fear 2' 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_EPISODE1="${GAME_ID_EPISODE1}-data" PKG_DATA_ID_EPISODE2="${GAME_ID_EPISODE2}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-tsioque.sh0000755000000000000000000000353614471751340013660 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Tsioque # send your bug reports to bugs@dotslashplay.it ### script_version=20240806.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='tsioque' GAME_NAME='Tsioque' ARCHIVE_BASE_0_NAME='setup_tsioque_1.2.1.0_(30491).exe' ARCHIVE_BASE_0_MD5='219a0f99ea850d10caf98ab0249e6df5' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1100000' ARCHIVE_BASE_0_VERSION='1.2.1.0-gog30491' ARCHIVE_BASE_0_URL='https://www.gog.com/game/tsioque' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' adobe air tsioque.exe' CONTENT_GAME_DATA_FILES=' assets meta-inf mimetype tsioque.swf' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/com.ohnoo.tsioque' APP_MAIN_EXE='tsioque.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-under-the-moon.sh0000755000000000000000000000367214471751340015031 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Under the Moon # send your bug reports to bugs@dotslashplay.it ### script_version=20241106.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='under-the-moon' GAME_NAME='Under the Moon' ARCHIVE_BASE_0_NAME='setup_under_the_moon_1.4_(61762).exe' ARCHIVE_BASE_0_MD5='ea7ef6de5b26932728271199be740b8d' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='3500000' ARCHIVE_BASE_0_VERSION='1.4-gog61762' ARCHIVE_BASE_0_URL='https://www.gog.com/game/under_the_moon' UNREALENGINE4_NAME='underthemoon' CONTENT_PATH_DEFAULT='windows' APP_MAIN_EXE="${UNREALENGINE4_NAME}/binaries/win64/${UNREALENGINE4_NAME}-win64-shipping.exe" ## The --name=101 wrestool option, default for UE4 games, should not be used here APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-unwording.sh0000755000000000000000000000403514471751340014176 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Unwording # send your bug reports to bugs@dotslashplay.it ### script_version=20251013.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='unwording' GAME_NAME='Unwording' ARCHIVE_BASE_0_NAME='unwording_1_02_64447.sh' ARCHIVE_BASE_0_MD5='398d9c4d58b90b2632410d60704b9202' ARCHIVE_BASE_0_SIZE='1500000' ARCHIVE_BASE_0_VERSION='1.02-gog64447' ARCHIVE_BASE_0_URL='https://www.gog.com/game/unwording' UNITY3D_NAME='Unwording' CONTENT_PATH_DEFAULT='data/noarch/game' ## The game comes with a generic Unity3D icon, ## so we use the GOG-provided icon instead. APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default ## Prevent inclusion of unwanted Steam plugins. 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-us-lovely-corpses.sh0000755000000000000000000000364714471751340015605 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Us Lovely Corpses # send your bug reports to bugs@dotslashplay.it ### script_version=20240622.2 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='us-lovely-corpses' GAME_NAME='Us Lovely Corpses' ARCHIVE_BASE_0_NAME='UsLovelyCorpses-1.0-linux.tar.bz2' ARCHIVE_BASE_0_MD5='2df30ef88e4cc99662510f7e8b9efd3d' ARCHIVE_BASE_0_SIZE='136948' ARCHIVE_BASE_0_VERSION='1.0-itch.2018.03.08' ARCHIVE_BASE_0_URL='https://dmarielicea.itch.io/uslovelycorpses' CONTENT_PATH_DEFAULT='UsLovelyCorpses-1.0-linux/game' CONTENT_GAME_MAIN_FILES=' cache gui images script_version.txt *.ogg *.rpy *.rpyc' CONTENT_DOC_MAIN_PATH='UsLovelyCorpses-1.0-linux' CONTENT_DOC_MAIN_FILES=' README.html' APP_MAIN_TYPE='renpy' ## Ensure easy upgrade from packages generated with pre-20240622.1 game scripts. PKG_MAIN_PROVIDES="${PKG_MAIN_PROVIDES:-} us-lovely-corpses us-lovely-corpses-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Use the default Ren'Py icon, as none is provided desktop_field_icon() { printf 'renpy'; } # Extract game data archive_extraction_default # Include game data content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-vampire-therapist.sh0000755000000000000000000000502514471751340015626 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2025 Antoine Le Gonidec set -o errexit ### # Vampire Therapist # send your bug reports to bugs@dotslashplay.it ### script_version=20250930.3 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='vampire-therapist' GAME_NAME='Vampire Therapist' ARCHIVE_BASE_0_NAME='setup_vampire_therapist_1.202_(79151).exe' ARCHIVE_BASE_0_MD5='735b74fcbe9fb7095a9a07503cba780d' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_vampire_therapist_1.202_(79151)-1.bin' ARCHIVE_BASE_0_PART1_MD5='f0c2d7517b0fb1733572c4f244645afb' ARCHIVE_BASE_0_SIZE='2270151' ARCHIVE_BASE_0_VERSION='1.202-gog79151' ARCHIVE_BASE_0_URL='https://www.gog.com/game/vampire_therapist' UNITY3D_NAME='vampire therapist' CONTENT_PATH_DEFAULT='.' ## The game crashes on launch if this GOG Galaxy file is missing. CONTENT_GAME0_BIN_FILES=' galaxyconfig.json' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Little Bat Games/Vampire Therapist' 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' # dos2unix is used to edit a configuration file, to prevent a delay on game launch. REQUIREMENTS_LIST=' dos2unix' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Prevent a delay on game launch. galaxy_config="${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/galaxyconfig.json" dos2unix --quiet "$galaxy_config" sed --in-place --expression='s/"is_unity": "true"/&,\n "auth_timeout": 1/' "$galaxy_config" unix2dos --quiet "$galaxy_config" # 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-virtuaverse.sh0000755000000000000000000000410514471751340014537 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # VirtuaVerse # send your bug reports to bugs@dotslashplay.it ### script_version=20241111.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='virtuaverse' GAME_NAME='VirtuaVerse' ARCHIVE_BASE_1_NAME='virtuaverse_1_35_53585.sh' ARCHIVE_BASE_1_MD5='5285b1fb4793e2c87d39f567eceabe71' ARCHIVE_BASE_1_SIZE='1788767' ARCHIVE_BASE_1_VERSION='1.35-gog53585' ARCHIVE_BASE_1_URL='https://www.gog.com/game/virtuaverse' ARCHIVE_BASE_0_NAME='virtuaverse_1_34_51687.sh' ARCHIVE_BASE_0_MD5='0592cc967de9f333344f2d69c7665173' ARCHIVE_BASE_0_SIZE='1800000' ARCHIVE_BASE_0_VERSION='1.34-gog51687' UNITY3D_NAME='VirtuaVerse' ## TODO: Check if the Steam library is required UNITY3D_PLUGINS=' libsteam_api.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run 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-voodoo-detective.sh0000755000000000000000000000347714471751340015452 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Voodoo Detective # send your bug reports to bugs@dotslashplay.it ### script_version=20240915.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='voodoo-detective' GAME_NAME='Voodoo Detective' ARCHIVE_BASE_0_NAME='voodoo_detective_0_0_31_62572.sh' ARCHIVE_BASE_0_MD5='e4e2ec0e340dc4343493f56b0977a68f' ARCHIVE_BASE_0_SIZE='1500000' ARCHIVE_BASE_0_VERSION='0.0.31-gog62572' ARCHIVE_BASE_0_URL='https://www.gog.com/game/voodoo_detective' UNITY3D_NAME='Voodoo Detective' UNITY3D_PLUGINS=' 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' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-wallace-and-gromits-grand-adventures.sh0000755000000000000000000001335714471751340021272 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Wallace and Gromit's Grand Adventures: # - Episode 1: Fright of the Bumblebees # - Episode 2: The Last Resort # - Episode 3: Muzzled # - Episode 4: The Bogey Man # send your bug reports to bugs@dotslashplay.it ### script_version=20240904.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='wallace-and-gromits-grand-adventures' GAME_NAME='Wallace & Gromit’s Grand Adventures' GAME_ID_EPISODE1="${GAME_ID}-1" GAME_NAME_EPISODE1="${GAME_NAME}: Episode 1 - Fright of the Bumblebees" GAME_ID_EPISODE2="${GAME_ID}-2" GAME_NAME_EPISODE2="${GAME_NAME}: Episode 2 - The Last Resort" GAME_ID_EPISODE3="${GAME_ID}-3" GAME_NAME_EPISODE3="${GAME_NAME}: Episode 3 - Muzzled" GAME_ID_EPISODE4="${GAME_ID}-4" GAME_NAME_EPISODE4="${GAME_NAME}: Episode 4 - The Bogey Man" ARCHIVE_BASE_EPISODE1_0_NAME='setup_wallace_and_gromits_episode_1_-_fright_of_the_bumblebees_1.0_(43021).exe' ARCHIVE_BASE_EPISODE1_0_MD5='386ad98408eb197081e9b45217759bed' ARCHIVE_BASE_EPISODE1_0_TYPE='innosetup' ARCHIVE_BASE_EPISODE1_0_SIZE='450000' ARCHIVE_BASE_EPISODE1_0_VERSION='1.0-gog43021' ARCHIVE_BASE_EPISODE1_0_URL='https://www.gog.com/game/wallace_gromits_grand_adventures' ARCHIVE_BASE_EPISODE2_0_NAME='setup_wallace_and_gromits_episode_2_-_the_last_resort_1.0_(43021).exe' ARCHIVE_BASE_EPISODE2_0_MD5='d791a520c88c613c577b556de6d1276c' ARCHIVE_BASE_EPISODE2_0_TYPE='innosetup' ARCHIVE_BASE_EPISODE2_0_SIZE='610000' ARCHIVE_BASE_EPISODE2_0_VERSION='1.0-gog43021' ARCHIVE_BASE_EPISODE2_0_URL='https://www.gog.com/game/wallace_gromits_grand_adventures' ARCHIVE_BASE_EPISODE3_0_NAME='setup_wallace_and_gromits_episode_3_muzzled_2.0_(42668).exe' ARCHIVE_BASE_EPISODE3_0_MD5='e33fe7ce94d9ee2ca33895c1cf349c29' ARCHIVE_BASE_EPISODE3_0_TYPE='innosetup' ARCHIVE_BASE_EPISODE3_0_SIZE='480000' ARCHIVE_BASE_EPISODE3_0_VERSION='2.0-gog42668' ARCHIVE_BASE_EPISODE3_0_URL='https://www.gog.com/game/wallace_gromits_grand_adventures' ARCHIVE_BASE_EPISODE4_0_NAME='setup_wallace_and_gromits_episode_4_-_the_bogey_man_1.0_(43022).exe' ARCHIVE_BASE_EPISODE4_0_MD5='1bd26fe8706be1d452bbcebd8a31a1fb' ARCHIVE_BASE_EPISODE4_0_TYPE='innosetup' ARCHIVE_BASE_EPISODE4_0_SIZE='560000' ARCHIVE_BASE_EPISODE4_0_VERSION='1.0-gog43022' ARCHIVE_BASE_EPISODE4_0_URL='https://www.gog.com/game/wallace_gromits_grand_adventures' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' fmodex.dll wallacegromit101.exe wallacegromit102.exe wallacegromit103.exe wallacegromit104.exe language_setup.exe language_setup.ini language_setup.png' CONTENT_GAME_DATA_FILES=' pack' WINE_PERSISTENT_DIRECTORIES_EPISODE1=' users/${USER}/Documents/Telltale Games/wallace-and-gromit-1' WINE_PERSISTENT_DIRECTORIES_EPISODE2=' users/${USER}/Documents/Telltale Games/wallace-and-gromit-2' WINE_PERSISTENT_DIRECTORIES_EPISODE3=' users/${USER}/Documents/Telltale Games/wallace-and-gromit-3' WINE_PERSISTENT_DIRECTORIES_EPISODE4=' users/${USER}/Documents/Telltale Games/wallace-and-gromit-4' APP_MAIN_EXE_EPISODE1='wallacegromit101.exe' APP_MAIN_EXE_EPISODE2='wallacegromit102.exe' APP_MAIN_EXE_EPISODE3='wallacegromit103.exe' APP_MAIN_EXE_EPISODE4='wallacegromit104.exe' APP_LANGUAGE_ID_EPISODE1="${GAME_ID_EPISODE1}-language-setup" APP_LANGUAGE_ID_EPISODE2="${GAME_ID_EPISODE2}-language-setup" APP_LANGUAGE_ID_EPISODE3="${GAME_ID_EPISODE3}-language-setup" APP_LANGUAGE_ID_EPISODE4="${GAME_ID_EPISODE4}-language-setup" APP_LANGUAGE_NAME_EPISODE1="$GAME_NAME_EPISODE1 - Language setup" APP_LANGUAGE_NAME_EPISODE2="$GAME_NAME_EPISODE2 - Language setup" APP_LANGUAGE_NAME_EPISODE3="$GAME_NAME_EPISODE3 - Language setup" APP_LANGUAGE_NAME_EPISODE4="$GAME_NAME_EPISODE4 - Language setup" APP_LANGUAGE_EXE='language_setup.exe' APP_LANGUAGE_CAT='Settings' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' ## Ensure easy upgrades from packages generated with pre-20240704.5 game scripts. PKG_BIN_PROVIDES_EPISODE1="${PKG_BIN_PROVIDES_EPISODE1:-} wallace-and-gromit-1" PKG_BIN_PROVIDES_EPISODE2="${PKG_BIN_PROVIDES_EPISODE2:-} wallace-and-gromit-2" PKG_BIN_PROVIDES_EPISODE3="${PKG_BIN_PROVIDES_EPISODE3:-} wallace-and-gromit-3" PKG_BIN_PROVIDES_EPISODE4="${PKG_BIN_PROVIDES_EPISODE4:-} wallace-and-gromit-4" PKG_DATA_ID_EPISODE1="${GAME_ID_EPISODE1}-data" PKG_DATA_ID_EPISODE2="${GAME_ID_EPISODE2}-data" PKG_DATA_ID_EPISODE3="${GAME_ID_EPISODE3}-data" PKG_DATA_ID_EPISODE4="${GAME_ID_EPISODE4}-data" PKG_DATA_DESCRIPTION='data' ## Ensure easy upgrades from packages generated with pre-20240704.5 game scripts. PKG_DATA_PROVIDES_EPISODE1="${PKG_DATA_PROVIDES_EPISODE1:-} wallace-and-gromit-1-data" PKG_DATA_PROVIDES_EPISODE2="${PKG_DATA_PROVIDES_EPISODE2:-} wallace-and-gromit-2-data" PKG_DATA_PROVIDES_EPISODE3="${PKG_DATA_PROVIDES_EPISODE3:-} wallace-and-gromit-3-data" PKG_DATA_PROVIDES_EPISODE4="${PKG_DATA_PROVIDES_EPISODE4:-} wallace-and-gromit-4-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-warm.sh0000755000000000000000000000362514471751340013134 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Warm # send your bug reports to bugs@dotslashplay.it ### script_version=20240915.2 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='warm' GAME_NAME='Warm' ARCHIVE_BASE_0_NAME='Warm-Full-pc.zip' ARCHIVE_BASE_0_MD5='55f19b7d105d1e929edfba0e5e853538' ARCHIVE_BASE_0_SIZE='670000' ARCHIVE_BASE_0_VERSION='1.02-itch' ARCHIVE_BASE_0_URL='https://krispycat.itch.io/warm' CONTENT_PATH_DEFAULT='Warm-Full-pc/game' CONTENT_GAME_MAIN_FILES=' cache gui images Music script_version.txt *.rpy *.rpyc' APP_MAIN_TYPE='renpy' ## Ensure easy upgrades from packages generated with pre-20240915.2 game scripts PKG_MAIN_PROVIDES="${PKG_MAIN_PROVIDES:=} warm-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Remove unexpected indentation in a Python script, to prevent a crash on launch sed --in-place 's/^ \{4\}//' 'script.rpy' ) # Include game data content_inclusion_default # Write launchers ## Use the default Ren'Py icon, instead of a generic icon. desktop_field_icon() { printf 'renpy' } launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-what-remains-of-edith-finch.sh0000755000000000000000000000376714471751340017356 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # What Remains of Edith Finch # send your bug reports to bugs@dotslashplay.it ### script_version=20240611.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='what-remains-of-edith-finch' GAME_NAME='What Remains of Edith Finch' ARCHIVE_BASE_0_NAME='setup_what_remains_of_edith_finch_1.0.0.0_(16929).exe' ARCHIVE_BASE_0_MD5='ec155243055cbd820f8f9056eea5eb10' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_what_remains_of_edith_finch_1.0.0.0_(16929)-1.bin' ARCHIVE_BASE_0_PART1_MD5='f1a06506b6899cb72d44be1b8d6f7f44' ARCHIVE_BASE_0_SIZE='2700000' ARCHIVE_BASE_0_VERSION='1.0.0.0-gog16929' ARCHIVE_BASE_0_URL='https://www.gog.com/game/what_remains_of_edith_finch' UNREALENGINE4_NAME='finchgame' CONTENT_PATH_DEFAULT='app' APP_MAIN_EXE="${UNREALENGINE4_NAME}/binaries/win64/${UNREALENGINE4_NAME}-win64-shipping.exe" APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=123' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-when-the-past-was-around.sh0000755000000000000000000000410414471751340016721 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # When The Past Was Around # send your bug reports to bugs@dotslashplay.it ### script_version=20240807.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='when-the-past-was-around' GAME_NAME='When The Past Was Around' ARCHIVE_BASE_1_NAME='setup_when_the_past_was_around_0.64_(57966).exe' ARCHIVE_BASE_1_MD5='d534934e5d9e5f7ebb1e871250124421' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='1900000' ARCHIVE_BASE_1_VERSION='1.0.3-gog57966' ARCHIVE_BASE_1_URL='https://www.gog.com/game/when_the_past_was_around' ARCHIVE_BASE_0_NAME='setup_when_the_past_was_around_0.5_(64bit)_(42277).exe' ARCHIVE_BASE_0_MD5='b6c6fb5d16fd6c3841e852e5304f1aca' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1900000' ARCHIVE_BASE_0_VERSION='1.0.3-gog42277' UNITY3D_NAME='when past was around' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Mojiken Studio/When Past Was Around' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-where-the-water-tastes-like-wine.sh0000755000000000000000000000475514471751340020366 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Where the Water Tastes Like Wine # send your bug reports to bugs@dotslashplay.it ### script_version=20250520.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='where-the-water-tastes-like-wine' GAME_NAME='Where the Water Tastes Like Wine' ARCHIVE_BASE_0_NAME='where-the-water-tastes-like-wine-linux.zip' ARCHIVE_BASE_0_MD5='b7e3d981ff707f5687a79552514a49fe' ARCHIVE_BASE_0_SIZE='6917645' ARCHIVE_BASE_0_VERSION='1.4.2-itch.2019.07.24' ARCHIVE_BASE_0_URL='https://dimbulbgames.itch.io/where-the-water-tastes-like-wine' UNITY3D_NAME='WTWTLW' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam libraries are required. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='.' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-whispering-willows.sh0000755000000000000000000000744614471751340016050 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Anna Lea # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Whispering Willows # send your bug reports to bugs@dotslashplay.it ### script_version=20241005.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='whispering-willows' GAME_NAME='Whispering Willows' ARCHIVE_BASE_GOG_0_NAME='whispering_willows_1_6_4_53005.sh' ARCHIVE_BASE_GOG_0_MD5='5b9ce22be3825deeadbb524e7cedb2a2' ARCHIVE_BASE_GOG_0_SIZE='2025821' ARCHIVE_BASE_GOG_0_VERSION='1.6.4-gog53005' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/whispering_willows' ARCHIVE_BASE_FIREFLOWER_0_NAME='Whispering_Willows_1_27_Linux.zip' ARCHIVE_BASE_FIREFLOWER_0_MD5='5ca10433c0da315028d8318e39fb3ad2' ARCHIVE_BASE_FIREFLOWER_0_SIZE='2000000' ARCHIVE_BASE_FIREFLOWER_0_VERSION='1.27-fireflower' ARCHIVE_BASE_FIREFLOWER_0_URL='https://fireflowergames.com/products/whispering-willows' ARCHIVE_BASE_HUMBLE_0_NAME='LINUX_NO_STEAM.rar' ARCHIVE_BASE_HUMBLE_0_MD5='56c078a0208769ab2222f7e1cc0e0d57' ARCHIVE_BASE_HUMBLE_0_SIZE='1884781' ARCHIVE_BASE_HUMBLE_0_VERSION='1.26-humble151125' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/whispering-willows' UNITY3D_NAME='WhisperingWillows' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam libraries can be dropped UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_FIREFLOWER='.' CONTENT_PATH_DEFAULT_HUMBLE='LINUX_NO_STEAM' 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_GOG=' 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_GOG="$PKG_BIN_DEPENDENCIES_LIBRARIES_GOG" PKG_BIN32_DEPENDENCIES_LIBRARIES_GOG="$PKG_BIN_DEPENDENCIES_LIBRARIES_GOG" PKG_BIN_DEPENDENCIES_LIBRARIES_HUMBLE=' 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_HUMBLE="$PKG_BIN_DEPENDENCIES_LIBRARIES_HUMBLE" PKG_BIN32_DEPENDENCIES_LIBRARIES_HUMBLE="$PKG_BIN_DEPENDENCIES_LIBRARIES_HUMBLE" ## TODO: Check that the Fireflower build relies on the same libraries than the Humble Bundle one PKG_BIN64_DEPENDENCIES_LIBRARIES_FIREFLOWER="$PKG_BIN_DEPENDENCIES_LIBRARIES_HUMBLE" PKG_BIN32_DEPENDENCIES_LIBRARIES_FIREFLOWER="$PKG_BIN_DEPENDENCIES_LIBRARIES_HUMBLE" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build package packages_generation print_instructions # Clean up rm --recursive "${PLAYIT_WORKDIR}" exit 0 games/play-yesterday.sh0000755000000000000000000000564514471751340014203 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Yesterday # send your bug reports to bugs@dotslashplay.it ### script_version=20250114.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='yesterday' GAME_NAME='Yesterday' ARCHIVE_BASE_FR_0_NAME='setup_yesterday_1.0.1_(french)_(34047).exe' ARCHIVE_BASE_FR_0_MD5='721c746513583dbe53a5ab5ab8a2f091' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_PART1_NAME='setup_yesterday_1.0.1_(french)_(34047)-1.bin' ARCHIVE_BASE_FR_0_PART1_MD5='ea0bfcb18f45ea25614ecd978400ec3c' ARCHIVE_BASE_FR_0_SIZE='4300963' ARCHIVE_BASE_FR_0_VERSION='1.0.1-gog34047' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/yesterday' ARCHIVE_BASE_EN_0_NAME='setup_yesterday_1.0.1_(34047).exe' ARCHIVE_BASE_EN_0_MD5='638c9882333cd55dabf7a136c25a5158' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_PART1_NAME='setup_yesterday_1.0.1_(34047)-1.bin' ARCHIVE_BASE_EN_0_PART1_MD5='40aa040bcb99a2038d24266d9807aac4' ARCHIVE_BASE_EN_0_SIZE='4304635' ARCHIVE_BASE_EN_0_VERSION='1.0.1-gog34047' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/yesterday' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' binkw32.dll psengine.dll pthreadvc2.dll psconfig.exe yesterday.exe' CONTENT_GAME_L10N_FILES=' dataa resource/?? config.lang' CONTENT_GAME_DATA_FILES=' datav resource' WINE_PERSISTENT_DIRECTORIES=' ProgramData/Pendulo Studios/Yesterday' ## The shipped PSEngine.dll library is linked against OpenAL32.dll. WINE_WINETRICKS_VERBS='openal' APP_MAIN_EXE='yesterday.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 launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-yume-nikki.sh0000755000000000000000000000633514471751340014251 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Yume Nikki # send your bug reports to bugs@dotslashplay.it ### script_version=20250324.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='yume-nikki' GAME_NAME='Yume Nikki' ## This archive is no longer available for sale from Playism store, ## as they are now only a Steam keys reseller. ARCHIVE_BASE_0_NAME='YumeNikki_EN.zip' ARCHIVE_BASE_0_MD5='fd1e659f777ad81bd61ebd6df573140e' ARCHIVE_BASE_0_SIZE='66000' ARCHIVE_BASE_0_VERSION='0.10a-playism' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' RPG_RT.* Harmony.dll' CONTENT_GAME_DATA_FILES=' Map*.lmu Backdrop Battle Battle2 BattleCharSet BattleWeapon CharSet ChipSet FaceSet Frame GameOver Monster Movie Music Panorama Picture Sound System System2 Title' CONTENT_DOC_DATA_PATH='YumeNikki_EN' CONTENT_DOC_DATA_FILES=' *.txt' APP_MAIN_EXE='RPG_RT.exe' ## Japanese locale is required for correct fonts display. APP_MAIN_PRERUN=' # Japanese locale is required for correct fonts display export LC_ALL=ja_JP.UTF-8 ' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' ## TODO: A dependency on the wqy-microhei.ttc font should be added. PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Add requirement for the extration of the inner .lzh archive REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} lha" # Add requirements for tweaking the encoding of file names and contents REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} iconv convmv" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ARCHIVE_INNER_PATH="${PLAYIT_WORKDIR}/gamedata/YumeNikki_EN/YumeNikki.lzh" ARCHIVE_INNER_TYPE='lha' archive_extraction 'ARCHIVE_INNER' rm "$ARCHIVE_INNER_PATH" ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Convert file paths to UTF-8 encoding. find . -exec \ convmv --notest -f SHIFT-JIS -t UTF-8 {} + >/dev/null 2>/dev/null ## Fix Windows-style paths. sed --in-place 's/¥/\\/g' 'YumeNikki_EN/YumeNikkiREADME.txt' ## Convert the text files contents to UTF-8 encoding. shell_command='contents=$(iconv --from-code CP932 --to-code UTF-8 "$1")' shell_command="$shell_command"'; printf "%s" "$contents" > "$1"' find 'YumeNikki_EN' -name '*.txt' -exec \ sh -c "$shell_command" -- '{}' \; ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-zak-mckracken-and-the-alien-mindbenders.sh0000755000000000000000000000426614471751340021605 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 macaron # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Zak McKracken and the Alien Mindbenders # send your bug reports to bugs@dotslashplay.it ### script_version=20250826.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='zak-mckracken-and-the-alien-mindbenders' GAME_NAME='Zak McKracken and the Alien Mindbenders' ARCHIVE_BASE_0_NAME='zak_mckracken_and_the_alien_mindbenders_en_gog_2_20099.sh' ARCHIVE_BASE_0_URL='https://www.gog.com/game/zak_mckracken_and_the_alien_mindbenders' ARCHIVE_BASE_0_MD5='eb144295c6387b71ac2e78986067ba30' ARCHIVE_BASE_0_SIZE='190000' ARCHIVE_BASE_0_VERSION='1.0-gog20099' ARCHIVE_BASE_0_TYPE='mojosetup' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' *.lfl *.mp3' CONTENT_DOC_MAIN_PATH='data/noarch/docs' CONTENT_DOC_MAIN_FILES=' Zak McKracken - The National Inquisitor.pdf Zak McKraken and the Alien Mindbenders - Hintbook.pdf Zak McKraken and the Alien Mindbenders - Manual.pdf' APP_MAIN_SCUMMID='scumm:zak' APP_MAIN_ICON='../support/icon.png' ## convmv is used to convert file paths to lower case. REQUIREMENTS_LIST=' convmv' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default ## Convert all file paths to lower case. tolower "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Include game data. content_inclusion_icons content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-zed.sh0000755000000000000000000000611014471751340012740 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Zed # send your bug reports to bugs@dotslashplay.it ### script_version=20250428.1 GAME_ID='zed-game' GAME_NAME='Zed' ## Until 2025-04-29, this game used to be sold from gog.com ## cf. https://www.gog.com/forum/general/delisting_zed/post1 ARCHIVE_BASE_0='zed_1_3_30662.sh' ARCHIVE_BASE_0_MD5='bc70e3f8b20dd9998972e973349be9c1' ARCHIVE_BASE_0_SIZE='11000000' ARCHIVE_BASE_0_VERSION='1.3-gog30662' UNREALENGINE4_NAME='zed' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_DATA_CHUNK1_FILES=" ${UNREALENGINE4_NAME}/Content/Paks/pakchunk0-LinuxNoEditor.pak.split00 ${UNREALENGINE4_NAME}/Content/Paks/pakchunk0-LinuxNoEditor.pak.split01" CONTENT_GAME_DATA_CHUNK2_FILES=" ${UNREALENGINE4_NAME}/Content/Paks/pakchunk0-LinuxNoEditor.pak.split02" APPLICATIONS_PREFIX_TYPE='none' APP_MAIN_EXE="${UNREALENGINE4_NAME}/Binaries/Linux/${UNREALENGINE4_NAME}-Linux-Shipping" APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA_CHUNK1 PKG_DATA_CHUNK2 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_CHUNK1_ID="${PKG_DATA_ID}-chunk1" PKG_DATA_CHUNK1_DESCRIPTION="$PKG_DATA_DESCRIPTION - chunk 1" PKG_DATA_DEPS="$PKG_DATA_DEPS $PKG_DATA_CHUNK1_ID" PKG_DATA_CHUNK2_ID="${PKG_DATA_ID}-chunk2" PKG_DATA_CHUNK2_DESCRIPTION="$PKG_DATA_DESCRIPTION - chunk 2" PKG_DATA_DEPS="$PKG_DATA_DEPS $PKG_DATA_CHUNK2_ID" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6' # Load common functions 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" # Set package scripts to rebuild the full files from their chunks file_path="${UNREALENGINE4_NAME}/Content/Paks/pakchunk0-LinuxNoEditor.pak" PKG_DATA_POSTINST_RUN="${PKG_DATA_POSTINST_RUN:-} $(huge_file_concatenate "$file_path")" PKG_DATA_CHUNK1_PRERM_RUN="${PKG_DATA_CHUNK1_PRERM_RUN:-} $(huge_file_delete "$file_path")" PKG_DATA_CHUNK2_PRERM_RUN="${PKG_DATA_CHUNK2_PRERM_RUN:-} $(huge_file_delete "$file_path")" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-zniw-adventure.sh0000755000000000000000000000356714471751340015155 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Zniw Adventure # send your bug reports to bugs@dotslashplay.it ### script_version=20240624.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='zniw-adventure' GAME_NAME='Zniw Adventure' ARCHIVE_BASE_0_NAME='zniw_adventure_1_3_4_1l_gog_60121.sh' ARCHIVE_BASE_0_MD5='37fb48f55d4e36d6692a8e13b7f07623' ARCHIVE_BASE_0_SIZE='2300000' ARCHIVE_BASE_0_VERSION='1.3.4.1l-gog60121' ARCHIVE_BASE_0_URL='https://www.gog.com/game/zniw_adventure' CONTENT_PATH_DEFAULT='data/noarch/game/data' CONTENT_GAME_MAIN_FILES=' acsetup.cfg CTGAME.??? *.cdf *.cvf *.ogv *.tra *.vox' CONTENT_DOC_MAIN_FILES=' licenses' CONTENT_DOC0_MAIN_PATH='data/noarch/game' CONTENT_DOC0_MAIN_FILES=' manualEn.pdf manualPl.pdf refCardLinEnglish.pdf refCardLinPolish.pdf' CONTENT_DOC1_MAIN_PATH='data/noarch/game/Walkthrough' CONTENT_DOC1_MAIN_FILES=' SpoilerFreeWalkthrough.pdf' APP_MAIN_SCUMMID='ags:zniwadventure' APP_MAIN_ICON='../../support/icon.png' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_default content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-zork-series.sh0000755000000000000000000001002614471751340014434 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2017 Mopi set -o errexit ### # Zork series: # - Zork 1: The Great Underground Empire # - Zork 2: The Wizard of Frobozz # - Zork 3: The Dungeon Master # send your bug reports to bugs@dotslashplay.it ### script_version=20250115.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID_EPISODE1='zork-1' GAME_ID_EPISODE2='zork-2' GAME_ID_EPISODE3='zork-3' GAME_NAME_EPISODE1='Zork I: The Great Underground Empire' GAME_NAME_EPISODE2='Zork II: The Wizard of Frobozz' GAME_NAME_EPISODE3='Zork III: The Dungeon Master' ARCHIVE_BASE_EPISODE1_1_NAME='setup_zork_-_the_great_underground_empire_.88.84_(28046).exe' ARCHIVE_BASE_EPISODE1_1_MD5='b527cb53e2213f13527eb9898aeab8f7' ARCHIVE_BASE_EPISODE1_1_TYPE='innosetup' ARCHIVE_BASE_EPISODE1_1_SIZE='17380' ARCHIVE_BASE_EPISODE1_1_VERSION='88.84-gog28046' ARCHIVE_BASE_EPISODE1_1_URL='https://www.gog.com/game/the_zork_anthology' ARCHIVE_BASE_EPISODE1_0_NAME='setup_zork_2.1.0.17.exe' ARCHIVE_BASE_EPISODE1_0_MD5='6bd42788d696f154ce363830909259d3' ARCHIVE_BASE_EPISODE1_0_TYPE='innosetup' ARCHIVE_BASE_EPISODE1_0_SIZE='22000' ARCHIVE_BASE_EPISODE1_0_VERSION='1.0-gog2.1.0.17' ARCHIVE_BASE_EPISODE2_1_NAME='setup_zork_ii_-_the_wizard_of_frobozz_48.84_(28046).exe' ARCHIVE_BASE_EPISODE2_1_MD5='de2bbc96fc55c9e1f9bc633be3e762de' ARCHIVE_BASE_EPISODE2_1_TYPE='innosetup' ARCHIVE_BASE_EPISODE2_1_SIZE='18803' ARCHIVE_BASE_EPISODE2_1_VERSION='48.84-gog28046' ARCHIVE_BASE_EPISODE2_1_URL='https://www.gog.com/game/the_zork_anthology' ARCHIVE_BASE_EPISODE2_0_NAME='setup_zork2_2.1.0.17.exe' ARCHIVE_BASE_EPISODE2_0_MD5='2ea2cf45bb6cf76b0365567e81f27aab' ARCHIVE_BASE_EPISODE2_0_TYPE='innosetup' ARCHIVE_BASE_EPISODE2_0_SIZE='23000' ARCHIVE_BASE_EPISODE2_0_VERSION='1.0-gog2.1.0.17' ARCHIVE_BASE_EPISODE3_1_NAME='setup_zork_iii_-_the_dungeon_master_17.84_(28046).exe' ARCHIVE_BASE_EPISODE3_1_MD5='eb899dd8def253f89cf6d66c2cee7dcf' ARCHIVE_BASE_EPISODE3_1_TYPE='innosetup' ARCHIVE_BASE_EPISODE3_1_SIZE='18366' ARCHIVE_BASE_EPISODE3_1_VERSION='17.84-gog28046' ARCHIVE_BASE_EPISODE3_1_URL='https://www.gog.com/game/the_zork_anthology' ARCHIVE_BASE_EPISODE3_0_NAME='setup_zork3_2.1.0.17.exe' ARCHIVE_BASE_EPISODE3_0_MD5='1526e9be21bf47412dc053f4097e25bd' ARCHIVE_BASE_EPISODE3_0_TYPE='innosetup' ARCHIVE_BASE_EPISODE3_0_SIZE='23000' ARCHIVE_BASE_EPISODE3_0_VERSION='1.0-gog2.1.0.17' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_PATH_DEFAULT_EPISODE1_0="$CONTENT_PATH_DEFAULT_0" CONTENT_PATH_DEFAULT_EPISODE2_0="$CONTENT_PATH_DEFAULT_0" CONTENT_PATH_DEFAULT_EPISODE3_0="$CONTENT_PATH_DEFAULT_0" CONTENT_GAME_MAIN_FILES=' data save *.com *.inf' CONTENT_DOC_MAIN_FILES=' *.htm *.pdf *.txt' USER_PERSISTENT_DIRECTORIES=' save' APP_MAIN_EXE_EPISODE1='_zork1.com' APP_MAIN_EXE_EPISODE2='_zork2.com' APP_MAIN_EXE_EPISODE3='_zork3.com' APP_MAIN_ICON_EPISODE1='goggame-1207661493.ico' APP_MAIN_ICON_EPISODE2='goggame-1207661503.ico' APP_MAIN_ICON_EPISODE3='goggame-1207661513.ico' ## Easier upgrade from packages generated with pre-20190303.1 scripts PKG_MAIN_PROVIDES_EPISODE1="${PKG_MAIN_PROVIDES_EPISODE1:-} zork" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 tests/check-license.sh0000700000000000000000000000064314471751340013751 0ustar rootroot#!/bin/sh set -o errexit CONTRIBUTORS_LIST=$( grep 'SPDX-FileCopyrightText' games/* | cut --delimiter=' ' --fields=5- | sort --unique ) CONTRIBUTOR_MISSING=0 while read contributor; do grep --quiet "$contributor" LICENSE || { printf 'Missing contributor in LICENSE: %s\n' "$contributor" && CONTRIBUTOR_MISSING=1 } done << EOL $(printf '%s\n' "$CONTRIBUTORS_LIST") EOL test $CONTRIBUTOR_MISSING -eq 0 LICENSE0000644000000000000000000000423114471751340010567 0ustar rootrootThis license applies to all files outside of the "games" subdirectory, and is the default one for files in "games" directory. If a script specifies another license in its headers, the license set in the script takes precedence over this one. # BSD-2-Clause Copyright © 2016 Antoine Le Gonidec Copyright © 2016 Mopi Copyright © 2016 mortalius Copyright © 2018 Phil Morrell Copyright © 2018 BetaRays Copyright © 2018 Sébastien “Elzen” Dufromentel Copyright © 2018 Dominique Derrier Copyright © 2018 Andrey Butirsky Copyright © 2019 Erwann Duclos Copyright © 2020 Igor Telmenko Copyright © 2020 macaron Copyright © 2020 Hoël Bézier Copyright © 2020 HS-157 Copyright © 2020 Emmanuel Gil Peyrot Copyright © 2020 Jacek Szafarkiewicz Copyright © 2020 edgar.vincent Copyright © 2021 Anna Lea Copyright © 2025 Bernd Schumacher 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. Makefile0000600000000000000000000000502414471751340011213 0ustar rootrootcollection_name = 45_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.md0000644000000000000000000003174414471751340011052 0ustar rootroot# ./play.it adventure games collection The codebase is maintained at [https://git.dotslashplay.it/games-adventure/] Bug reports should be sent to [bugs@dotslashplay.it], and support requests to [requests@dotslashplay.it] [https://git.dotslashplay.it/games-adventure/]: https://git.dotslashplay.it/games-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 adventure games. These games usually focus on the narrative and should require no fast action from the player. Aside from the narrative, the main drives for the player should be exploration and problem solving. ## 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-adventure play.it-adventure.git cd play.it-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/scripts/about/#usage ## Contributing ### First contribution There is no real rule for your first contribution. You can host your updated code anywhere you like and contact us via any way described in the [Contact information] section below. It is OK to expose your updated code through GitHub or GitLab.com if you have nothing better at hand, but we would be thankful if you would instead use some hosting outside of these big silos. [Contact information]: #contact-information We do not enforce any workflow like merge/pull requests or any such thing. We are interested in the result of your work, not in how you got to it. So shatter your shackles, and for once take pleasure in working *however you like*! You are not even required to use git if you do not know or do not like this tool. Please try to follow these simple guidelines, and your contribution is probably going to be accepted quickly: - Run `make check` before submitting your code, to ensure you did not break anything by accident; - Use tabs for indentation. No real developer would ever indent anything with spaces. ### Regular contributions If you keep contributing on a more regular basis (sending 3 patches in the same year would already make you a regular) we can grant you direct write access to the repositories hosted at git.dotslashplay.it. This is not mandatory, if for some reason you can not or do not want to work with git you can simply keep following the "First contribution" guidelines, and forget about this whole "Regular contributions" section. To grant you such an access we need nothing but a public SSH key, that you can send us through any way described in the [Contact information] section below. [Contact information]: #contact-information Once you have been granted access, you should add the following to your local SSH configuration: ``` Host git.dotslashplay.it Port 1962 User gitolite3 ``` You should then update the remote of your local repository, with the following command (assuming a remote named "upstream"): ``` git remote set-url --push upstream ssh://git.dotslashplay.it/games-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 - 1954 Alcatraz - 80 Days - A Bird Story - A Juggler's Tale - A Mortician's Tale - A New Beginning - A Night at the Watermill - A Short Hike - A Space Adventure - A Vampyre Story - A Year of Springs - Abzû - AER: Memories of Old - Agatha Christie: The ABC Murders - Agent A: A puzzle in disguise - Amerzone: The Explorer's Legacy - Ankh - Anna's Quest - Alba: A Wildlife Adventure - Apocalipsis - Arise: A Simple Story - Armikrog - Astrologaster - Atlantis: The Lost Tales - Backbone - Bad Dream series: - Bad Dream: Coma - Bad Dream: Fever - Bad End Theater - Bad Mojo - Beacon Pines - Bear With Me - Beat Cop - Beautiful Desolation - Before Your Eyes - Behind the Frame: The Finest Scenery - Blade Runner - Blind Men - Botanicula - Boxville - Broken Age - Broken Minds - Broken Sword series: - Broken Sword: Shadow of the Templars - Broken Sword 2: The Smoking Mirror - Broken Sword 3: The Sleeping Dragon - Broken Sword 4: The Angel of Death - Brothers: A Tale of Two Sons - Calico - Call of Cthulhu series: - Call of Cthulhu: Prisoner of Ice - Call of Cthulhu: Shadow of the Comet - Call of the Sea - Carto - Catie in MeowmeowLand - Cayne - Chicken Police - Chook & Sosig: Walk the Plank - Chuchel - Cinders - Cineris Somnia - Citizen Sleeper - Cleo - A Pirate's Tale - Coffee Talk - Contract Demon - Creaks - Creepy Tale series: - Creepy Tale - Creepy Tale 2 - Criminal Expert - D: The Game - Dagon: by H. P. Lovecraft - Dead Synchronicity: Tomorrow Comes Today - Dear Esther - Demetrios - The Big Cynical Adventure - Deponia series: - Deponia - Deponia 2: Chaos on Deponia - Deponia 3: Goodbye Deponia - Detective Gallo - Detective Grimoire - Detention - Devil's Kiss - Doctor Who: The Lonely Assassins - Dracula: The Resurrection - Dragonsphere - Draugen - Dream - Dream Daddy - Dropsy - Dungeons & Lesbians - Edna & Harvey series: - Edna & Harvey: The Breakout - Edna & Harvey: Harvey's New Eyes - Encodya - Equaboreal 12.21 - Ether One - Everything - Fall of Porcupine - Far From Noise - Far: Lone Sails - Finding Paradise - Fire! - Firewatch - FixFox - Florence - Flower - Fran Bow - Fruits of a Feather - Full Throttle Remastered - Gabriel Knight: Sins of the Fathers - Gathering Sky - Gemini Rue - Goetia - Golden Treasure: The Great Green - Gomo - Gone Home - Grim Fandango - Growbot - Hamilton: The Dating Sim - Harry Potter setting: - Harry Potter and the Mysterious Thief - Part 1 - Harry Potter and the Mysterious Thief - Part 2 - Harry Potter and the Transformency Spell - Hatoful Boyfriend - Hauma - A Detective Noir Story - Haven Moon - Haven Park - Headspun - Heal - Heaven's Vault - Her Majesty's Spiffing - Higurashi When They Cry Hou - Ch.1 Onikakushi - Hiveswap: Act 1 - Hot Tin Roof - Hugo's House of Horrors - I Have No Mouth And I Must Scream - If Not Us - Indiana Jones games: - Indiana Jones and the Last Crusade - Indiana Jones and the Fate of Atlantis - Inner Space - Inspector Waffles - Irony Curtain - Jazzpunk - Jenny LeClue - Detectivú - Journey of a Roach - J.U.L.I.A Among the Stars - Kentucky Route Zero - Kona - Kraken Academy - Lacuna – A Sci-Fi Noir Adventure - Lamplight City - Last Day of June - Later Daters - Layers of Fear - Leisure Suit Larry series: - Leisure Suit Larry 1: In the Land of the Lounge Lizards - Leisure Suit Larry 2: Looking For Love (In Several Wrong Places) - Leisure Suit Larry 3: Passionate Patti in Pursuit of the Pulsating Pectorals! - Leisure Suit Larry 5: Passionate Patti Does a Little Undercover Work! - Leisure Suit Larry 6: Shape Up Or Slip Out - Leisure Suit Larry 7: Love for Sail! - Letters - a written adventure - Liar Liar series: - Liar Liar - Lair Liar 2: Pants on Fire - Lieve Oma - Life is Strange - Lilly Looking Through - Little Big Adventure series: - Little Big Adventure - Little Big Adventure 2 - Little Misfortune - Location Withheld - Lonesome Village - Long Live the Queen - Loom - Lorelai - Lost Phone series: - A Normal Lost Phone - Another Lost Phone: Laura's Story - Lumini - Luna The Shadow Dust - Machinarium - Maniac Mansion - Marie's Room - MechaNika - Memoranda - Mhakna Gramura and Fairy Bell - Midnight Scenes: The Highway - Mimo - Mon-cuties for All - Monster Prom - Monstrata Fracture - Mutazione - My Lovely Family series: - My Lovely Daughter - My Lovely Wife - Neon Code - Night in the Woods - Nine Noir Lives - Noctropolis - Nonsense at Nightfall - Norco - Obduction - Old Man's Journey - One-Eyed Lee series: - One-Eyed Lee: Prologue - One-Eyed Lee and the Dinner Party - Order of the Thorne - Orwell's Animal Farm - Our Life: Beginnings & Always - Out There - Overboard - Oxenfree - Papetura - Paradise Killer - Paramedium: A Noise in the Attic - Pendula Swing: The Complete Journey - Pilgrims - PRIM - Proteus - Quern: Undying Thoughts - Rakuen - Resonance - Return to Mysterious Island series: - Return to Mysterious Island - Return to Mysterious Island 2 - Road 96 - Röki - Sable - Sagebrush - Sally Face - Samorost series: - Samorost - Samorost 2 - Samorost 3 - Scarlet Hood and the Wicked Wood - Sherlock Holmes series (by Frogwares): - Sherlock Holmes: The Case of the Silver Earring - Sherlock Holmes: The Awakened - Sherlock Holmes: Nemesis - Sherlock Holmes Versus Jack the Ripper - The Testament of Sherlock Holmes - Sherlock Holmes: Crimes and Punishments - Sherlock Holmes: The Devil's Daughter - Silence - Softporn Adventure - Solstice - South Scrimshaw, Part One - Starship Titanic - State of Mind - Still There - Strangeland - Subject 13 - Sumatra: Fate of Yandi - Summer in Mara - Sunlight - Syberia series: - Syberia - Syberia 2 - Syberia 3 - Syberia: The World Before - Tales of the Neon Sea - Talk to Me - Technobabylon - Teenagent - Tengami - The 7th Guest - The Book of Unwritten Tales series: - The Book of Unwritten Tales - The Critter Chronicles - The Book of Unwritten Tales 2 - The Bookwalker: Thief of Tales - The Council - The Dark Eye series: - The Dark Eye: Chains of Satinav - The Dark Eye: Memoria - The Darkside Detective - The Difference Between Us - The Dig - The Dream Machine - The Excavation of Hob's Barrow - The First Tree - The Great Perhaps - The Indifferent Wonder of an Edible Place - The Inner World series: - The Inner World - The Inner World: The Last Wind Monk - The Interactive Adventures of Dog Mendonça and Pizzaboy - The Lion's Song - The Little Acre - The Longest Journey series: - The Longest Journey - Dreamfall Chapters - The Longing - The Night Fisherman - The Night of the Rabbit - The Pillars of the Earth - The Red Strings Club - The Shivah - The Silver Case - The Stanley Parable - The Suicide of Rachel Foster - The Tail Makes the Fox - The Vanishing of Ethan Carter - The Whispered World - Thimbleweed Park series: - Thimbleweed Park - Delores: A Thimbleweed Park Mini-Adventure - To Be or Not To Be - To The Moon - Torin's Passage - Tormentum: Dark Sorrow - Trüberbrook - True Fear series: - True Fear: Forsaken Souls Part 1 - True Fear: Forsaken Souls Part 2 - Tsioque - Under the Moon - Unwording - Us Lovely Corpses - Vampire Therapist - VirtuaVerse - Voodoo Detective - Wallace and Gromit's Grand Adventures series: - Wallace and Gromit's Grand Adventures - Episode 1: Fright of the Bumblebees - Wallace and Gromit's Grand Adventures - Episode 2: The Last Resort - Wallace and Gromit's Grand Adventures - Episode 3: Muzzled - Wallace and Gromit's Grand Adventures - Episode 4: The Bogey Man - Warm - What Remains of Edith Finch - When The Past Was Around - Where the Water Tastes Like Wine - Whispering Willows - Yesterday - Yume Nikki - Zak McKracken and the Alien Mindbenders - Zed - Zniw Adventure - Zork series: - Zork 1: The Great Underground Empire - Zork 2: The Wizard of Frobozz - Zork 3: The Dungeon Master - Beyond Zork: The Coconut of Quendor ## 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.