games/play-a-bird-story.sh0000755000000000000000000000614114471751340014476 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 contact@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-morticians-tale.sh0000755000000000000000000000410514471751340015471 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 contact@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.sh0000755000000000000000000000373314471751340015133 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 contact@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-normal-lost-phone.sh0000755000000000000000000000443314471751340015760 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 contact@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-space-adventure.sh0000755000000000000000000000350014471751340015462 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 contact@dotslashplay.it ### script_version=20240915.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' 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' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Convert all paths to lowercase tolower . ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-a-vampyre-story.sh0000755000000000000000000000463514471751340015247 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 contact@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.sh0000755000000000000000000000345514471751340015432 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 contact@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-agatha-christie-the-abc-murders.sh0000755000000000000000000000654514471751340020207 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 contact@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.sh0000755000000000000000000000362114471751340013476 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 contact@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-amerzone.sh0000755000000000000000000000701514471751340014003 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 contact@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-annas-quest.sh0000755000000000000000000000355114471751340014423 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 contact@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.sh0000755000000000000000000000464714471751340015721 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 contact@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-astrologaster.sh0000755000000000000000000000360314471751340015053 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 contact@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-bad-end-theater.sh0000755000000000000000000000307514471751340015111 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 contact@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-bear-with-me.sh0000755000000000000000000000400714471751340014442 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 contact@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-before-your-eyes.sh0000755000000000000000000000357114471751340015367 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 contact@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.sh0000755000000000000000000000361314471751340015262 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 contact@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.sh0000755000000000000000000000370514471751340014430 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 contact@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-botanicula.sh0000755000000000000000000001100414471751340014275 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 contact@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-broken-age.sh0000755000000000000000000000411514471751340014173 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 contact@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.sh0000755000000000000000000000475514471751340014563 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 contact@dotslashplay.it ### script_version=20240602.3 PLAYIT_COMPATIBILITY_LEVEL='2.29' 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_PATH="${CONTENT_PATH_DEFAULT}/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 into a standard size SCRIPT_DEPS="${SCRIPT_DEPS:-} 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" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Convert the shipped icon into a standard size. icon_source=$(icon_path 'APP_MAIN_ICON') convert "$icon_source" -resize 256 "${icon_source}_resized.png" mv "${icon_source}_resized.png" "$icon_source" ) # 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 rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-broken-sword-1.sh0000755000000000000000000000577214471751340014745 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 # send your bug reports to contact@dotslashplay.it ### script_version=20240822.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='broken-sword-1' GAME_NAME='Broken Sword: Shadow of the Templars' ARCHIVE_BASE_GOG_0_NAME='gog_broken_sword_director_s_cut_2.0.0.2.sh' ARCHIVE_BASE_GOG_0_MD5='8f7cd1b6742946e111aa83fdfac0bcad' ARCHIVE_BASE_GOG_0_SIZE='1400000' ARCHIVE_BASE_GOG_0_VERSION='1.0.8-gog2.0.0.2' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/broken_sword_directors_cut' ARCHIVE_BASE_HUMBLE_0_NAME='BrokenSword1DirectorsCut_v1.0.800_Linux_1372464772.tar.gz' ARCHIVE_BASE_HUMBLE_0_MD5='f4867d26cda9d8b06b617abcdd8bb1b7' ARCHIVE_BASE_HUMBLE_0_SIZE='1400000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0.8-humble.2013.07.01' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/broken-sword-shadow-of-the-templars-the-directors-cut' CONTENT_PATH_DEFAULT_HUMBLE='bs1dc_linux_v1.0.800' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' ## TODO: Improve the integration of shipped libraries ## TODO: Check if some shipped libraries could be dropped CONTENT_GAME_BIN64_FILES=' x86_64' CONTENT_GAME_BIN32_FILES=' i386' CONTENT_GAME_DATA_FILES=' *.dat font icon.bmp movies music' CONTENT_DOC_DATA_FILES=' legal.txt' APP_MAIN_EXE_BIN64='x86_64/bs1dc_x86_64' APP_MAIN_EXE_BIN32='i386/bs1dc_i386' APP_MAIN_ICON='icon.bmp' 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: Complete the list of required native libraries PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libopenal.so.1 libSDL-1.2.so.0' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-broken-sword-2.sh0000755000000000000000000001210114471751340014726 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 contact@dotslashplay.it ### script_version=20240822.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='broken-sword-2' GAME_NAME='Broken Sword Ⅱ: The Smoking Mirror' GAME_ID_REMASTERED="${GAME_ID}-remastered" GAME_NAME_REMASTERED="$GAME_NAME - Remastered" # Archives ## Broken Sword 2 (1997) ARCHIVE_BASE_0_NAME='gog_broken_sword_2_the_smoking_mirror_1.0.0.2.tar.gz' ARCHIVE_BASE_0_MD5='003e43babbdb7abc04c64f7482b27329' ARCHIVE_BASE_0_SIZE='1200000' ARCHIVE_BASE_0_VERSION='1.0-gog1.0.0.2' ARCHIVE_BASE_0_URL='https://www.gog.com/game/broken_sword_2__the_smoking_mirror' ## Broken Sword 2 Remastered (2011) 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' # Archive content ## Broken Sword 2 (1997) CONTENT_PATH_DEFAULT='Broken Sword 2 - The Smoking Mirror/data' CONTENT_GAME_MAIN_FILES=' *.clu *.inf *.tab *.bmp' CONTENT_GAME0_MAIN_PATH="${CONTENT_PATH_DEFAULT}/extras" CONTENT_GAME0_MAIN_FILES=' *' CONTENT_DOC_MAIN_FILES=' *.txt' CONTENT_DOC0_MAIN_PATH="${CONTENT_PATH_DEFAULT}/../docs" CONTENT_DOC0_MAIN_FILES=' *.txt' ## Broken Sword 2 Remastered (2011) 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' # Launchers ## Broken Sword 2 (1997) APP_MAIN_SCUMMID='sword2' APP_MAIN_ICON='../support/gog-broken-sword-2-the-smoking-mirror.png' ## Broken Sword 2 Remastered (2011) 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 ## Broken Sword 2 Remastered (2011) 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_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 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_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES_REMASTERED_0="$PKG_BIN_DEPENDENCIES_LIBRARIES_REMASTERED_0" 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" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Broken Sword 2 (1997) - Convert all file paths to lowercase case "$(current_archive)" in ('ARCHIVE_BASE_REMASTERED_'*) ;; (*) tolower . ;; esac ) # 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 rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-broken-sword-3.sh0000755000000000000000000000407614471751340014743 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 contact@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.sh0000755000000000000000000000736514471751340014750 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 contact@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-catie-in-meowmeowland.sh0000755000000000000000000000401014471751340016340 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 contact@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-chook-and-sosig.sh0000755000000000000000000000364214471751340015152 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 contact@dotslashplay.it ### script_version=20240822.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='chook-and-sosig' GAME_NAME='Chook & Sosig: Walk the Plank' ARCHIVE_BASE_0_NAME='setup_chook__sosig_walk_the_plank_v2.03b_(30724).exe' ARCHIVE_BASE_0_MD5='e66cdecc51060a98325297d7f9039307' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='5200000' ARCHIVE_BASE_0_VERSION='2.03b-gog30724' ARCHIVE_BASE_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' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_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.sh0000755000000000000000000000427014471751340015265 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 contact@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-coffee-talk.sh0000755000000000000000000000604114471751340014341 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 contact@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-dagon.sh0000755000000000000000000000352514471751340013255 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 contact@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.sh0000755000000000000000000000610314471751340015760 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 contact@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-demetrios.sh0000755000000000000000000000412414471751340014154 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 contact@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.sh0000755000000000000000000001250214471751340013577 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 contact@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.sh0000755000000000000000000000357714471751340015244 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 contact@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.sh0000755000000000000000000000555514471751340015761 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 contact@dotslashplay.it ### script_version=20240823.2 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-dream-daddy.sh0000755000000000000000000000526314471751340014341 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 contact@dotslashplay.it ### script_version=20240907.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='dream-daddy' GAME_NAME='Dream Daddy' ## A DRM-free installer for this game used to be sold from humblebundle.com, but now they only sell Steam keys. 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 SCRIPT_DEPS="${SCRIPT_DEPS:-} 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" # 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_path 'ARCHIVE_INNER')" # 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-dreamfall-chapters.sh0000755000000000000000000000507714471751340015727 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 contact@dotslashplay.it ### script_version=20240829.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' 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' ARCHIVE_GAME_BIN_PATH_GOG='data/noarch/game' ARCHIVE_GAME_BIN_PATH_HUMBLE='.' ## TODO: An explicit list of plugins to include should be set using UNITY3D_PLUGINS ARCHIVE_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" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-dropsy.sh0000755000000000000000000000441614471751340013505 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 contact@dotslashplay.it ### script_version=20240823.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='dropsy' GAME_NAME='Dropsy' ARCHIVE_BASE_0_NAME='gog_dropsy_2.5.0.6.sh' ARCHIVE_BASE_0_MD5='6739e9f516043ee90b033b55c3e3f35c' ARCHIVE_BASE_0_SIZE='910000' ARCHIVE_BASE_0_VERSION='1.4-gog2.5.0.6' ARCHIVE_BASE_0_URL='https://www.gog.com/game/dropsy' UNITY3D_NAME='Dropsy' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' USER_PERSISTENT_DIRECTORIES=' Save' 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-edna-and-harvey-harveys-new-eyes.sh0000755000000000000000000000323214471751340020334 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 contact@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.sh0000755000000000000000000000456314471751340017523 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 contact@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-finding-paradise.sh0000755000000000000000000000621414471751340015367 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 contact@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.sh0000755000000000000000000000547314471751340013116 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 contact@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.sh0000755000000000000000000000364214471751340014141 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Firewatch # send your bug reports to contact@dotslashplay.it ### script_version=20240909.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='firewatch' GAME_NAME='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' ARCHIVE_BASE_0_URL='https://www.gog.com/game/firewatch' 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-fran-bow.sh0000755000000000000000000000373114471751340013677 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 contact@dotslashplay.it ### script_version=20240823.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='fran-bow' GAME_NAME='Fran Bow' ARCHIVE_BASE_0_NAME='gog_fran_bow_2.3.0.5.sh' ARCHIVE_BASE_0_MD5='6e3013e9c8be4d25e1815f00bc177941' ARCHIVE_BASE_0_SIZE='530000' ARCHIVE_BASE_0_VERSION='160315-gog2.3.0.5' ARCHIVE_BASE_0_URL='https://www.gog.com/game/fran_bow' 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" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-gemini-rue.sh0000755000000000000000000000465314471751340014231 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 contact@dotslashplay.it ### script_version=20240915.2 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='gemini-rue' GAME_NAME='Gemini Rue' 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_3_URL='https://www.gog.com/game/gemini_rue' 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='329019f63b1acdfe7c4d5219a562efab' 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" # 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-goetia.sh0000755000000000000000000000435314471751340013435 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 contact@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-gomo.sh0000755000000000000000000000410714471751340013123 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 contact@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.sh0000755000000000000000000000500614471751340014037 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 contact@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.sh0000755000000000000000000000567614471751340014707 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 contact@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-hamilton-the-dating-sim.sh0000755000000000000000000000355314471751340016611 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 contact@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.sh0000755000000000000000000000371314471751340022562 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 contact@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.sh0000755000000000000000000000372014471751340022561 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 contact@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.sh0000755000000000000000000000370214471751340022145 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 contact@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.sh0000755000000000000000000000530414471751340015603 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 contact@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-higurashi-when-they-cry-hou.sh0000755000000000000000000000514214471751340017437 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 contact@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-i-have-no-mouth-and-i-must-scream.sh0000755000000000000000000000777214471751340020336 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 contact@dotslashplay.it ### script_version=20240823.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' 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_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" # Older gog.com archives require to get files from an inner archive SCRIPT_DEPS_INNERARCHIVE="${SCRIPT_DEPS:-} 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" # Older gog.com archives require to get files from an inner archive ## SCRIPT_DEPS has no support for contextual values. SCRIPT_DEPS=$(context_value 'SCRIPT_DEPS') check_deps # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_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" ;; esac ## Convert all file names to lower case. tolower . ) ## Older gog.com archives require to get files from an inner archive CONTENT_PATH_DEFAULT_INNERARCHIVE='.' # 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-indiana-jones-and-the-fate-of-atlantis.sh0000755000000000000000000000546314471751340021361 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 contact@dotslashplay.it ### script_version=20240623.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' 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" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Convert all file paths to lowercase. tolower . ) # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-indiana-jones-and-the-last-crusade.sh0000755000000000000000000000337514471751340020612 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 contact@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-inspector-waffles.sh0000755000000000000000000000354014471751340015615 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 contact@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.sh0000755000000000000000000000474714471751340014777 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 contact@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-jenny-leclue-detectivu.sh0000755000000000000000000000517114471751340016550 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 contact@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-julia-among-the-stars.sh0000755000000000000000000000662314471751340016302 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 contact@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.sh0000755000000000000000000000463614471751340016137 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 contact@dotslashplay.it ### script_version=20240909.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='kentucky-route-zero' GAME_NAME='Kentucky Route Zero' ARCHIVE_BASE_0_NAME='KentuckyRouteZero_Linux_v17.zip' ARCHIVE_BASE_0_MD5='36c7b89c223d5c77d4d44b7ccf72f241' ARCHIVE_BASE_0_SIZE='690000' ARCHIVE_BASE_0_VERSION='17-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/kentucky-route-zero' UNITY3D_NAME='KentuckyRouteZero' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='.' CONTENT_DOC_DATA_FILES=' *.txt' FAKE_HOME_PERSISTENT_DIRECTORIES=' Documents/KentuckyRouteZero' 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 target_version='2.26' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$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-lamplight-city.sh0000755000000000000000000000313614471751340015112 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 contact@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-later-daters.sh0000755000000000000000000000341514471751340014552 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 contact@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-leisure-suit-larry.sh0000755000000000000000000001466014471751340015750 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 contact@dotslashplay.it ### script_version=20240619.7 PLAYIT_COMPATIBILITY_LEVEL='2.29' 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' ## FIXME: An explicit list of files should be set. CONTENT_GAME_MAIN_FILES_LSL2=' *' ARCHIVE_GAME_MAIN_FILES_LSL3=' install.txt readme.txt lsl3sg.* resource.* *.com *.drv *.exe *.hlp *.inf *.pif *.scr' ## FIXME: An explicit list of files should be set. CONTENT_GAME_MAIN_FILES_LSL5=' *' 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" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Convert all file paths to lowercase. tolower . ) # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-letters-a-written-adventure.sh0000755000000000000000000000344714471751340017555 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 contact@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.sh0000755000000000000000000000501614471751340014036 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 contact@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-life-is-strange.sh0000755000000000000000000001030214471751340015145 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 contact@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.sh0000755000000000000000000000440514471751340016426 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 contact@dotslashplay.it ### script_version=20240825.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' 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' 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 SCRIPT_DEPS="${SCRIPT_DEPS:-} 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" # Extract game data archive_extraction_default # Include game data ## Work around "insufficient image data" issue with convert from 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 rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-little-misfortune.sh0000755000000000000000000000402314471751340015645 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 contact@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-loom.sh0000755000000000000000000000345114471751340013131 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 contact@dotslashplay.it ### script_version=20240605.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' 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' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Convert all file paths to lowercase. tolower . ) # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-mechanika.sh0000755000000000000000000001017414471751340014103 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 contact@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.sh0000755000000000000000000000517214471751340014130 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 contact@dotslashplay.it ### script_version=20240825.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' 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 SCRIPT_DEPS="${SCRIPT_DEPS:-} 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" # 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 "$(icon_path 'APP_MAIN_ICON')" -resize 512 "$(icon_path 'APP_MAIN_ICON_512')" ) content_inclusion_icons content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-nine-noir-lives.sh0000755000000000000000000000545714471751340015211 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 contact@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-old-mans-journey.sh0000755000000000000000000000337714471751340015375 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 contact@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.sh0000755000000000000000000000515614471751340014437 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 contact@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-oxenfree.sh0000755000000000000000000000574414471751340014005 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 contact@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-rakuen.sh0000755000000000000000000000655314471751340013456 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 contact@dotslashplay.it ### script_version=20240915.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' 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' ## FIXME: Some sound effects do not play, they might require the shipped builds of some libraries. ## The displayed error is "Unable to decode sound: (…): Sound format unsupported". CONTENT_LIBS_BIN_FILES=' libruby.so.2.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_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=' 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_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 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 ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Prevent the inclusion of MacOS archive junk files. find . -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 rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-resonance.sh0000755000000000000000000000410514471751340014135 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 contact@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.sh0000755000000000000000000001344014471751340017750 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 contact@dotslashplay.it ### script_version=20240825.2 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='return-to-mysterious-island-1' GAME_NAME='Return to Mysterious Island' ARCHIVE_BASE_0_NAME='setup_return_to_mysterious_island_2.1.0.17.exe' ARCHIVE_BASE_0_MD5='d31567796e419eb0c295bf978aa1d434' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1500000' ARCHIVE_BASE_0_VERSION='1.0-gog2.1.0.17' ARCHIVE_BASE_0_URL='https://www.gog.com/game/return_to_mysterious_island' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' game.exe *.dll' 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_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 PKG_DATA' ## Ensure easy upgrades from packages generated with pre-20240825.1 game scripts. PKG_BIN_PROVIDES="${PKG_BIN_PROVIDES:-}"' retour-sur-lile-mysterieuse retour-sur-lile-mysterieuse-1' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_FR_ID="${PKG_L10N_ID}-fr" PKG_L10N_GE_ID="${PKG_L10N_ID}-ge" PKG_L10N_IT_ID="${PKG_L10N_ID}-it" PKG_L10N_SP_ID="${PKG_L10N_ID}-sp" PKG_L10N_RU_ID="${PKG_L10N_ID}-ru" PKG_L10N_US_ID="${PKG_L10N_ID}-us" 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_ID" 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" ## Ensure easy upgrades from packages generated with pre-20240825.1 game scripts. PKG_L10N_PROVIDES="${PKG_L10N_PROVIDES:-}"' retour-sur-lile-mysterieuse-l10n retour-sur-lile-mysterieuse-1-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-data retour-sur-lile-mysterieuse-1-data' # dos2unix is required to edit INI configuration files SCRIPT_DEPS="${SCRIPT_DEPS:-} 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" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Fix game install path in configuration ini_file='config.ini' ini_field='PATH' ## Silence a ShellCheck false positive ## Want to escape a single quote? echo 'This is how it'\''s done'. # 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" ) # Include game data ## Include configuration file in localization packages 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 content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation common_packages='PKG_BIN PKG_DATA' 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_L10N_FR' $common_packages printf "$message" "$lang_ge" print_instructions 'PKG_L10N_GE' $common_packages printf "$message" "$lang_it" print_instructions 'PKG_L10N_IT' $common_packages printf "$message" "$lang_sp" print_instructions 'PKG_L10N_SP' $common_packages printf "$message" "$lang_ru" print_instructions 'PKG_L10N_RU' $common_packages printf "$message" "$lang_us" print_instructions 'PKG_L10N_US' $common_packages # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-return-to-mysterious-island-2.sh0000755000000000000000000000774714471751340017766 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 contact@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-sherlock-holmes-2-the-case-of-the-silver-earring.sh0000755000000000000000000000421214471751340023213 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 contact@dotslashplay.it ### script_version=20240826.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' 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' ARCHIVE_BASE_0_TYPE='innosetup' 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' 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" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_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-3-the-awakened.sh0000755000000000000000000000635014471751340017756 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 contact@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.sh0000755000000000000000000000476214471751340017072 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 contact@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.sh0000755000000000000000000001021714471751340021732 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 contact@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.sh0000755000000000000000000000521514471751340023704 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 contact@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.sh0000755000000000000000000000461114471751340022020 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 contact@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.sh0000755000000000000000000001042014471751340021264 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 contact@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.sh0000755000000000000000000000534614471751340013612 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 contact@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-strangeland.sh0000755000000000000000000000416514471751340014470 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Strangeland ### script_version=20240915.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='strangeland' GAME_NAME='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_3_URL='https://www.gog.com/game/strangeland' 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=' ENGV.tmp Music Sounds *.ags *.cfg *.exe *.ogv *.tra *.vox' 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" # 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-syberia-3.sh0000755000000000000000000001017514471751340013762 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 contact@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-the-world-before.sh0000755000000000000000000000503514471751340016764 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 contact@dotslashplay.it ### script_version=20240808.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='syberia-the-world-before' GAME_NAME='Syberia: The World Before' GAME_ID_PROLOGUE="${GAME_ID}-prologue" GAME_NAME_PROLOGUE="$GAME_NAME - Prologue" 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' ARCHIVE_BASE_PROLOGUE_0_URL='https://www.gog.com/game/syberia_the_world_before_demo' UNITY3D_NAME='syberiatwbp' CONTENT_PATH_DEFAULT='.' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/SyberiaTWBP' USER_PERSISTENT_FILES=" ${UNITY3D_NAME}_data/streamingassets/config.bin" PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' ## Ensure easy upgrades from packages generated with pre-20240808.1 game scripts PKG_BIN_PROVIDES="${PKG_BIN_PROVIDES:-} syberia-the-world-before-demo" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_PROLOGUE="${GAME_ID_PROLOGUE}-data" PKG_DATA_DESCRIPTION='data' ## Ensure easy upgrades from packages generated with pre-20240808.1 game scripts PKG_DATA_PROVIDES="${PKG_DATA_PROVIDES:-} syberia-the-world-before-demo-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_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.sh0000755000000000000000000002363414471751340013626 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 contact@dotslashplay.it ### script_version=20240826.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' 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 *.exe *.ini' CONTENT_GAME_DATA_FILES=' cmo data textures video' CONTENT_DOC_L10N_FILES=' *.pdf *.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' 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" # 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 registry_dump_noxvidmode_file='registry-dumps/no-xvidmode.reg' registry_dump_noxvidmode_content='Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Wine\X11 Driver] "UseXVidMode"="N"' CONTENT_GAME0_BIN_FILES="${CONTENT_GAME0_BIN_FILES:-} $registry_dump_noxvidmode_file" APP_REGEDIT="${APP_REGEDIT:-} $registry_dump_noxvidmode_file" SCRIPT_DEPS="${SCRIPT_DEPS:-} iconv" # Syberia 2 - Set game language registry_dump_language_file='registry-dumps/language.reg' registry_dump_language_content_common='Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microids\Syberia DVD]' registry_dump_language_content_SYBERIA2_EN="$registry_dump_language_content_common"' "Language"="EN"' registry_dump_language_content_SYBERIA2_FR="$registry_dump_language_content_common"' "Language"="FR"' CONTENT_GAME0_BIN_FILES="${CONTENT_GAME0_BIN_FILES:-} $registry_dump_language_file" APP_REGEDIT_SYBERIA2="${APP_REGEDIT:-} $registry_dump_language_file" SCRIPT_DEPS="${SCRIPT_DEPS:-} iconv" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files ## TODO: Using a more explicit list of files to include would allow to drop this step rm --force --recursive \ '__support' \ '__redist' \ 'commonappdata' \ 'tmp' # Work around a crash on nvidia drivers mkdir --parents "$(dirname "$registry_dump_noxvidmode_file")" printf '%s' "$registry_dump_noxvidmode_content" | iconv --from-code=UTF-8 --to-code=UTF-16 --output="$registry_dump_noxvidmode_file" # 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 # Syberia 2 - Set game language case "$(current_archive)" in ('ARCHIVE_BASE_SYBERIA2_'*) registry_dump_language_content=$(context_value 'registry_dump_language_content') mkdir --parents "$(dirname "$registry_dump_language_content")" printf '%s' "$registry_dump_language_content" | iconv --from-code=UTF-8 --to-code=UTF-16 --output="$registry_dump_language_file" ;; esac ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## Syberia 2 - Set game language APP_REGEDIT=$(context_value 'APP_REGEDIT') launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-technobabylon.sh0000755000000000000000000000520514471751340015011 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 contact@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-the-book-of-unwritten-tales-1.sh0000755000000000000000000000751114471751340017577 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 contact@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.sh0000755000000000000000000000546514471751340017606 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 contact@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-dark-eye-chains-of-satinav.sh0000755000000000000000000000450514471751340017753 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 contact@dotslashplay.it ### script_version=20240827.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='the-dark-eye-chains-of-satinav' GAME_NAME='The Dark Eye: Chains of Satinav' ARCHIVE_BASE_1_NAME='setup_the_dark_eye_chains_of_satinav_2.0.0.4.exe' ARCHIVE_BASE_1_MD5='022a59739b9d7b16f036fb2fecd5bca2' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_the_dark_eye_chains_of_satinav_2.0.0.4-1.bin' ARCHIVE_BASE_1_PART1_MD5='aa50ac1bf998b7d945f58b6104f58298' ARCHIVE_BASE_1_PART2_NAME='setup_the_dark_eye_chains_of_satinav_2.0.0.4-2.bin' ARCHIVE_BASE_1_PART2_MD5='6748d3208d3c59f91cce0de4e6e56af7' ARCHIVE_BASE_1_PART3_NAME='setup_the_dark_eye_chains_of_satinav_2.0.0.4-3.bin' ARCHIVE_BASE_1_PART3_MD5='4c1208642ea83d7dde6e90ac3ce885fb' ARCHIVE_BASE_1_PART4_NAME='setup_the_dark_eye_chains_of_satinav_2.0.0.4-4.bin' ARCHIVE_BASE_1_PART4_MD5='284a6c2e37897e44a69fac6f8c0971e0' ARCHIVE_BASE_1_SIZE='5500000' ARCHIVE_BASE_1_VERSION='1.0-gog2.0.0.4' ARCHIVE_BASE_1_URL='https://www.gog.com/game/the_dark_eye_chains_of_satinav' VISIONAIRE_NAME='satinav' CONTENT_PATH_DEFAULT='app' CONTENT_GAME0_BIN_FILES=' audiere.dll' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Local Settings/Application Data/Daedalic Entertainment/Satinav' 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-dark-eye-memoria.sh0000755000000000000000000000602014471751340016064 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 contact@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-dream-machine.sh0000755000000000000000000000373714471751340015442 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 contact@dotslashplay.it ### script_version=20240828.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='the-dream-machine' GAME_NAME='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' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_dream_machine' 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" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_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-excavation-of-hobs-barrow.sh0000755000000000000000000000336614471751340017734 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 contact@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.sh0000755000000000000000000000460514471751340015027 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 contact@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-inner-world-1.sh0000755000000000000000000000465514471751340015346 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 contact@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.sh0000755000000000000000000000453514471751340015344 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 contact@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.sh0000755000000000000000000000454614471751340025002 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 contact@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.sh0000755000000000000000000000420614471751340015030 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 contact@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-longest-journey.sh0000755000000000000000000000456214471751340016111 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 contact@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-night-of-the-rabbit.sh0000755000000000000000000000465314471751340016500 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 contact@dotslashplay.it ### script_version=20240901.2 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='the-night-of-the-rabbit' GAME_NAME='The Night of the Rabbit' ARCHIVE_BASE_0_NAME='setup_the_night_of_the_rabbit_1.2.3.0389_(18473).exe' ARCHIVE_BASE_0_MD5='f809a5911492fc4dcb8c90f09f2ca515' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_the_night_of_the_rabbit_1.2.3.0389_(18473)-1.bin' ARCHIVE_BASE_0_PART1_MD5='0cfd2d4a5a604e4bf5d070a22fdcc73e' ARCHIVE_BASE_0_PART2_NAME='setup_the_night_of_the_rabbit_1.2.3.0389_(18473)-2.bin' ARCHIVE_BASE_0_PART2_MD5='3b510f6837a5aee5fb4ab5c34643c844' ARCHIVE_BASE_0_SIZE='6200000' ARCHIVE_BASE_0_VERSION='1.2.3.0389-gog18473' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_night_of_the_rabbit' VISIONAIRE_NAME='rabbit' CONTENT_PATH_DEFAULT='app' CONTENT_GAME0_BIN_PATH="${CONTENT_PATH_DEFAULT}/__support/app" CONTENT_GAME0_BIN_FILES=' config.ini' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Local Settings/Application Data/Daedalic Entertainment/The Night of the Rabbit' ## Work around missing audio in videos ## TODO: Check if it is still required with current WINE builds WINE_WINETRICKS_VERBS='dsound' PKG_BIN_ARCH='32' ## 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" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_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-pillars-of-the-earth.sh0000755000000000000000000000563014471751340016671 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # The Pillars of the Earth # send your bug reports to contact@dotslashplay.it ### script_version=20240915.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' 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' CONTENT_LIBS0_BIN_PATH="${CONTENT_PATH_DEFAULT}/configtool/lib" ## TODO: Check if some shipped libraries can be dropped CONTENT_LIBS0_BIN_FILES=' libicudata.so.56 libicui18n.so.56 libicuuc.so.56 libQt5Core.so.5 libQt5DBus.so.5 libQt5Gui.so.5 libQt5Widgets.so.5 libQt5XcbQpa.so.5' CONTENT_GAME0_BIN_FILES=' configtool' CONTENT_GAME_DATA_SCENES_FILES=' scenes' 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' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdbus-1.so.3 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libglib-2.0.so.0 libGL.so.1 libgthread-2.0.so.0 libICE.so.6 libm.so.6 libopenal.so.1 libpng12.so.0 libpthread.so.0 librt.so.1 libSM.so.6 libstdc++.so.6 libX11.so.6 libX11-xcb.so.1 libxcb.so.1 libXi.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_DATA_SCENES' ## 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" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_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-shivah.sh0000755000000000000000000000420214471751340014216 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 contact@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-suicide-of-rachel-foster.sh0000755000000000000000000000500514471751340017521 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 contact@dotslashplay.it ### script_version=20240915.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='the-suicide-of-rachel-foster' GAME_NAME='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' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_suicide_of_rachel_foster' 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" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_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-tail-makes-the-fox.sh0000755000000000000000000000357414471751340016346 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 contact@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-whispered-world.sh0000755000000000000000000000402514471751340016056 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 contact@dotslashplay.it ### script_version=20240903.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='the-whispered-world' GAME_NAME='The Whispered World' 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' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_whispered_world_special_edition' ## 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' ## Ensure smooth upgrades from packages generated by game scripts pre-20231005.1 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" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-to-the-moon.sh0000755000000000000000000000527014471751340014332 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 contact@dotslashplay.it ### script_version=20240915.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='to-the-moon' GAME_NAME='To The Moon' ARCHIVE_BASE_0_NAME='ToTheMoon_linux_1389114090.sh' ARCHIVE_BASE_0_MD5='706a5c9467328438d412370ffb1454de' ARCHIVE_BASE_0_SIZE='93000' ARCHIVE_BASE_0_VERSION='1.0-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/to-the-moon' CONTENT_PATH_DEFAULT='data' ## TODO: Explicit files list should be used instead of globs CONTENT_GAME_BIN32_PATH="${CONTENT_PATH_DEFAULT}/x86" CONTENT_GAME_BIN32_FILES=' *' CONTENT_GAME_BIN64_PATH="${CONTENT_PATH_DEFAULT}/x86_64" CONTENT_GAME_BIN64_FILES=' *' CONTENT_GAME_DATA_PATH="${CONTENT_PATH_DEFAULT}/noarch" CONTENT_GAME_DATA_FILES=' *' CONTENT_DOC_DATA_PATH="${CONTENT_PATH_DEFAULT}/noarch" CONTENT_DOC_DATA_FILES=' *.txt' APP_MAIN_EXE_BIN32='ToTheMoon.bin.x86' APP_MAIN_EXE_BIN64='ToTheMoon.bin.x86_64' APP_MAIN_ICON='noarch/ToTheMoon.png' ## 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: Complete the dependencies list PKG_BIN_DEPENDENCIES_LIBRARIES=' libasound_module_conf_pulse.so libfreetype.so.6 libGL.so.1 libSDL2-2.0.so.0' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build package packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-torins-passage.sh0000755000000000000000000000353114471751340015121 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 contact@dotslashplay.it ### script_version=20240615.2 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='torins-passage' GAME_NAME='Torinʼs 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' ARCHIVE_BASE_0_URL='https://www.gog.com/game/torins_passage' CONTENT_PATH_DEFAULT='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' USER_PERSISTENT_FILES=' version resource.cfg TORIN.PRF AUTOSAVE.* TORINSG.*' APP_MAIN_EXE='sierrah.exe' APP_MAIN_OPTIONS='resource.cfg' APP_MAIN_ICON='torinhr.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 ## Ignore a harmless warning from convert. content_inclusion_icons 2>/dev/null content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-tormentum-dark-sorrow.sh0000755000000000000000000000366414471751340016473 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 contact@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-true-fear.sh0000755000000000000000000000547514471751340014065 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 contact@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.sh0000755000000000000000000000354114471751340013654 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 contact@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-voodoo-detective.sh0000755000000000000000000000350214471751340015437 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 contact@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.sh0000755000000000000000000001336214471751340021266 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 contact@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.sh0000755000000000000000000000363014471751340013130 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 contact@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-when-the-past-was-around.sh0000755000000000000000000000410714471751340016724 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 contact@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-whispers-of-a-machine.sh0000755000000000000000000000324014471751340016245 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Whispers of a Machine # send your bug reports to contact@dotslashplay.it ### script_version=20240719.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='whispers-of-a-machine' GAME_NAME='Whispers of a Machine' ARCHIVE_BASE_0_NAME='setup_whispers_of_a_machine_1.0.6d_(35876).exe' ARCHIVE_BASE_0_MD5='92244849a09e9b47a290618acd9dc9b6' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='768282' ARCHIVE_BASE_0_VERSION='1.0.6d-gog35876' ARCHIVE_BASE_0_URL='https://www.gog.com/game/whispers_of_a_machine' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES=' acsetup.cfg whispers.exe *.vox *.tra' APP_MAIN_SCUMMID='ags:whispersofamachine' APP_MAIN_ICON='whispers.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-zork.sh0000755000000000000000000000571314471751340013153 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 contact@dotslashplay.it ### script_version=20240604.3 PLAYIT_COMPATIBILITY_LEVEL='2.29' 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_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_EPISODE1_0_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_EPISODE2_0_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' ARCHIVE_BASE_EPISODE3_0_URL='https://www.gog.com/game/the_zork_anthology' CONTENT_PATH_DEFAULT='app' 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" # 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 LICENSE0000644000000000000000000000355714471751340010601 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 © 2018 Phil Morrell Copyright © 2018 BetaRays 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 © 2021 Anna Lea 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. Makefile0000644000000000000000000000501614471751340011224 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 gamesdir = $(DESTDIR)$(datadir)/play.it/games # Install the game scripts .PHONY: install uninstall install: install -D --mode=755 --target-directory=$(gamesdir)/$(collection_name) games/* uninstall: rm $(gamesdir)/$(collection_name)/play-*.sh rmdir -p --ignore-fail-on-non-empty $(gamesdir)/$(collection_name) # Generate tarballs, for easier packaging .PHONY: dist ## The generated tarball is signed with gpg by default, ## NO_SIGN should be set to a non-0 value to skip the signature. NO_SIGN := 0 dist: DATE := $(shell date +%F) dist: TARBALL := $(collection_name)_$(DATE).tar.gz dist: TAR_OPTIONS := --sort=name --mtime=2023-08-25 --owner=root:0 --group=root:0 --use-compress-program='gzip --no-name' dist: games/*.sh LICENSE Makefile README.md mkdir --parents dist LC_ALL=C tar cf dist/$(TARBALL) $(TAR_OPTIONS) games/*.sh LICENSE Makefile README.md ifeq ($(NO_SIGN),0) rm --force dist/$(TARBALL).asc gpg --armor --detach-sign dist/$(TARBALL) endif # Run syntax checks, relying on ShellCheck GAME_SCRIPTS := $(wildcard games/play-*.sh) GAME_SCRIPTS_TESTS := $(addprefix shellcheck_, $(GAME_SCRIPTS)) .PHONY: check $(GAME_SCRIPTS_TESTS) check: $(GAME_SCRIPTS_TESTS) $(GAME_SCRIPTS_TESTS): SHELLCHECK_SOURCES := /usr/share/games/play.it:/usr/share/play.it ## This is a unicode quote. Delete and retype it (or ignore/doublequote for literal). $(GAME_SCRIPTS_TESTS): SHELLCHECK_EXCLUDE += --exclude=SC1112 ## Expressions don't expand in single quotes, use double quotes for that. $(GAME_SCRIPTS_TESTS): SHELLCHECK_EXCLUDE += --exclude=SC2016 ## foo appears unused. Verify it or export it. $(GAME_SCRIPTS_TESTS): SHELLCHECK_EXCLUDE += --exclude=SC2034 ## Quote this to prevent word splitting. $(GAME_SCRIPTS_TESTS): SHELLCHECK_EXCLUDE += --exclude=SC2046 ## Don't use variables in the printf format string. Use printf '..%s..' "$foo". $(GAME_SCRIPTS_TESTS): SHELLCHECK_EXCLUDE += --exclude=SC2059 ## Double quote to prevent globbing and word splitting. $(GAME_SCRIPTS_TESTS): SHELLCHECK_EXCLUDE += --exclude=SC2086 ## 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.md0000644000000000000000000001541214471751340011044 0ustar rootroot# ./play.it adventure games collection ## 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 ./play.it, 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 ## Supported games - A Bird Story - A Mortician's Tale - A New Beginning - A Space Adventure - A Vampyre Story - A Year of Springs - Agatha Christie: The ABC Murders - Agent A: A puzzle in disguise - Amerzone: The Explorer's Legacy - Anna's Quest - Astrologaster - Bad End Theater - Bear With Me - Before Your Eyes - Behind the Frame: The Finest Scenery - Botanicula - 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 - Catie in MeowmeowLand - Chook & Sosig: Walk the Plank - Citizen Sleeper - Coffee Talk - Dagon: by H. P. Lovecraft - Dead Synchronicity: Tomorrow Comes Today - Demetrios - The Big Cynical Adventure - Deponia series: - Deponia - Deponia 2: Chaos on Deponia - Deponia 3: Goodbye Deponia - Detective Gallo - Detective Grimoire - Dream Daddy - Dropsy - Edna & Harvey series: - Edna & Harvey: The Breakout - Edna & Harvey: Harvey's New Eyes - Finding Paradise - Fire! - Firewatch - Fran Bow - Gemini Rue - Goetia - Gomo - Gone Home - Grim Fandango - 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 - Higurashi When They Cry Hou - Ch.1 Onikakushi - I Have No Mouth And I Must Scream - Indiana Jones games: - Indiana Jones and the Last Crusade - Indiana Jones and the Fate of Atlantis - Inspector Waffles - Irony Curtain - Jenny LeClue - Detectivú - J.U.L.I.A Among the Stars - Kentucky Route Zero - Lamplight City - Later Daters - 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 - Life is Strange - Lilly Looking Through - Little Misfortune - Loom - Lost Phone series: - A Normal Lost Phone - Another Lost Phone: Laura's Story - MechaNika - Memoranda - Nine Noir Lives - Old Man's Journey - One-Eyed Lee series: - One-Eyed Lee: Prologue - One-Eyed Lee and the Dinner Party - Oxenfree - Rakuen - Resonance - Return to Mysterious Island series: - Return to Mysterious Island - Return to Mysterious Island 2 - 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 - Strangeland - Syberia series: - Syberia - Syberia 2 - Syberia 3 - Syberia: The World Before - Technobabylon - The Book of Unwritten Tales series: - The Book of Unwritten Tales - The Critter Chronicles - The Book of Unwritten Tales 2 - The Dark Eye series: - The Dark Eye: Chains of Satinav - The Dark Eye: Memoria - The Dream Machine - The Excavation of Hob's Barrow - The First Tree - 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 Longest Journey series: - The Longest Journey - Dreamfall Chapters - The Night of the Rabbit - The Pillars of the Earth - The Shivah - The Suicide of Rachel Foster - The Tail Makes the Fox - The Whispered World - To The Moon - Torin's Passage - Tormentum: Dark Sorrow - True Fear series: - True Fear: Forsaken Souls Part 1 - True Fear: Forsaken Souls Part 2 - Tsioque - 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 - When The Past Was Around - Whispers of a Machine - 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 informations ### IRC channel Some ./play.it developers and users can be reached on IRC, channel is `#play.it` on network `irc.oftc.net`. The main language on this IRC channel is English, but most of us can speak French too. ### E-mail A contact e-mail for feedback can usually be found in each ./play.it game script, as well as in the library. Open one of these files with any text editor to see the contact e-mail. ### Fediverse ./play.it has an account on the Fediverse, you can follow it for news about the development or use it to contact us: [@playit@fediverse.dotslashplay.it] [@playit@fediverse.dotslashplay.it]: https://fediverse.dotslashplay.it/snac/playit