games/play-1365.sh0000755000000000000000000000447414471751340012567 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # 1365 # send your bug reports to contact@dotslashplay.it ### script_version=20230104.1 GAME_ID='1365-game' GAME_NAME='1365' ARCHIVE_BASE_0='1365 Linux 1.0' ARCHIVE_BASE_0_MD5='8cb8fb11a2df4af72154f2909238c09c' ARCHIVE_BASE_0_TYPE='file' ARCHIVE_BASE_0_SIZE='32000' ARCHIVE_BASE_0_VERSION='1.0.0-itch1' ARCHIVE_BASE_0_URL='https://shadybug.itch.io/1365' APP_MAIN_EXE='1365 Linux 1.0' PKG_MAIN_ARCH='32' PKG_MAIN_DEPENDENCIES_LIBRARIES=' ld-linux-x86-64.so.2 libasound.so.2 libc.so.6 libdl.so.2 libGL.so.1 libm.so.6 libpthread.so.0 libpulse-simple.so.0 libpulse.so.0 libX11.so.6 libXcursor.so.1 libXinerama.so.1 libXi.so.6 libXrandr.so.2' # Load common functions target_version='2.20' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Include icons from optional archive ARCHIVE_OPTIONAL_ICONS='1356_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5='f820888c924fed091c5d64d9aaa2d467' ARCHIVE_OPTIONAL_ICONS_URL='https://downloads.dotslashplay.it/games/1365/' CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 256x256 512x512' archive_initialize_optional \ 'ARCHIVE_ICONS' \ 'ARCHIVE_OPTIONAL_ICONS' if [ -n "$ARCHIVE_ICONS" ]; then archive_extraction 'ARCHIVE_ICONS' content_inclusion 'ICONS' 'PKG_MAIN' "$(path_icons)" rm --recursive "${PLAYIT_WORKDIR}/gamedata" fi # Include game data package_path=$(package_path 'PKG_MAIN') path_game_data=$(path_game_data) application_exe=$(application_exe 'APP_MAIN') mkdir --parents "${package_path}${path_game_data}" cp "$SOURCE_ARCHIVE" "${package_path}${path_game_data}/${application_exe}" # Write launchers launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-1954-alcatraz.sh0000755000000000000000000000447114471751340014367 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Anna Lea # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # 1954 Alcatraz # send your bug reports to contact@dotslashplay.it ### script_version=20221204.3 GAME_ID='1954-alcatraz' GAME_NAME='1954 Alcatraz' UNITY3D_NAME='Alcatraz' ARCHIVE_BASE_0='setup_1954_alcatraz_1.3.5019_(19812).exe' ARCHIVE_BASE_0_MD5='b18fe30eb3fc67e3f6b12f725b297f95' ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS='--progress=1 --silent' ARCHIVE_BASE_0_SIZE='2000000' ARCHIVE_BASE_0_VERSION='1.3.5019-gog19812' ARCHIVE_BASE_0_URL='https://www.gog.com/game/1954_alcatraz' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_Data/Mono ${UNITY3D_NAME}_Data/Plugins ${UNITY3D_NAME}.exe" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" APP_MAIN_ICON="${UNITY3D_NAME}.exe" APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/LocalLow/Daedalic Entertainment/1954 Alcatraz' USER_PERSISTENT_DIRECTORIES=' userdata' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Work around missing test in options menu APP_WINETRICKS="$APP_WINETRICKS arial" PKG_BIN_DEPS="$PKG_BIN_DEPS winetricks" # Load common functions target_version='2.18' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "${PLAYIT_WORKDIR}" exit 0 games/play-6180-the-moon.sh0000755000000000000000000000454414471751340014311 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # 6180 The Moon # send your bug reports to contact@dotslashplay.it ### script_version=20221210.1 GAME_ID='6180-the-moon' GAME_NAME='6180 The Moon' UNITY3D_NAME='6180 the moon' ARCHIVE_BASE_0='6180_the_moon_2.1.0_Linux.zip' ARCHIVE_BASE_0_MD5='79e81fb57d8d5dbf27a7c4be2dd0efd9' ARCHIVE_BASE_0_SIZE='130000' ARCHIVE_BASE_0_VERSION='2.1.0-humble141209' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/6180-the-moon' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_Data/Mono ${UNITY3D_NAME}_Data/Plugins ${UNITY3D_NAME}.x86" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' ld-linux.so.2 libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgthread-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXext.so.6 libXrandr.so.2' # Load common functions target_version='2.19' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-80-days.sh0000755000000000000000000000674414471751340013360 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # 80 Days # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20211223.2 # Set game-specific variables GAME_ID='80-days' GAME_NAME='80 Days' ARCHIVE_BASE_0='setup_80_days_1.17.8_(44038).exe' ARCHIVE_BASE_0_MD5='bde0aa5f33b99f495be27a515d07fff5' ARCHIVE_BASE_0_SIZE='1200000' ARCHIVE_BASE_0_VERSION='1.17.8-gog44038' ARCHIVE_BASE_0_URL='https://www.gog.com/game/80_days' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES=' 80?days.exe monobleedingedge 80?days_data/plugins unitycrashhandler32.exe unityplayer.dll' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES=' 80?days_data' APP_MAIN_TYPE='wine' APP_MAIN_EXE="80 days.exe" APP_MAIN_ICON="80 days.exe" PACKAGES_LIST='PKG_DATA PKG_BIN' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Use persistent storage for user data APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/AppData/LocalLow/Inkle Studios/80 Days' CONFIG_FILES="$CONFIG_FILES ./userdata/Parse.settings" DATA_FILES="$DATA_FILES ./userdata/user.data" # Load common functions target_version='2.14' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-a-bewitching-revolution.sh0000755000000000000000000000737014471751340016734 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # A Betwitching Revolution # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20201130.2 # Set game-specific variables GAME_ID='a-bewitching-revolution' GAME_NAME='A Betwitching Revolution' ARCHIVES_LIST=' ARCHIVE_ITCH_0' ARCHIVE_ITCH_0='BewitchingRevolutionLinux.zip' ARCHIVE_ITCH_0_URL='https://colestia.itch.io/a-bewitching-revolution' ARCHIVE_ITCH_0_MD5='89d7a3deb6dab12eda2845d91c556a02' ARCHIVE_ITCH_0_SIZE='130000' ARCHIVE_ITCH_0_VERSION='2.2.0-itch' ARCHIVE_ITCH_0_TYPE='zip' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='BewitchingRevolutionLinux.x86_64 BewitchingRevolutionLinux_Data/Mono BewitchingRevolutionLinux_Data/Plugins' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='BewitchingRevolutionLinux_Data' DATA_DIRS='./logs' APP_MAIN_TYPE='native' APP_MAIN_PRERUN='# Work around Unity3D poor support for non-US locales export LANG=C' APP_MAIN_EXE='BewitchingRevolutionLinux.x86_64' APP_MAIN_ICON='BewitchingRevolutionLinux_Data/Resources/UnityPlayer.png' # Use a per-session dedicated file for logs # shellcheck disable=SC2016 APP_MAIN_OPTIONS='-logFile ./logs/$(date +%F-%R).log' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID glibc libstdc++ gtk2 libgdk_pixbuf-2.0.so.0 libgobject-2.0.so.0 libglib-2.0.so.0" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-a-bird-story.sh0000755000000000000000000000644214471751340014502 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # A Bird Story # send your bug reports to contact@dotslashplay.it ### script_version=20230208.1 GAME_ID='a-bird-story' GAME_NAME='A Bird Story' ARCHIVE_BASE_1='gog_a_bird_story_2.0.0.3.sh' ARCHIVE_BASE_1_MD5='6f334da4493e8c050a16d4b66987d3ff' ARCHIVE_BASE_1_TYPE='mojosetup' 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='gog_a_bird_story_2.0.0.2.sh' ARCHIVE_BASE_0_MD5='8f93d19265394a5fba61aeec23cabb8e' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='180000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.2' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN32_PATH='data/noarch/game/lib' CONTENT_LIBS_BIN32_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_GAME_BIN32_FILES=' ABirdStory.x86' CONTENT_LIBS_BIN64_PATH='data/noarch/game/lib64' CONTENT_LIBS_BIN64_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_GAME_BIN64_FILES=' ABirdStory.amd64' 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_BIN32='ABirdStory.x86' APP_MAIN_EXE_BIN64='ABirdStory.amd64' APP_MAIN_ICON='icon.png' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' 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" # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-a-boy-and-his-blob.sh0000755000000000000000000000553114471751340015430 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # A Boy and His Blob # send your bug reports to contact@dotslashplay.it ### script_version=20231017.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='a-boy-and-his-blob' GAME_NAME='A Boy and His Blob' ARCHIVE_BASE_ZOOM_0_NAME='A Boy and His Blob.tar.gz' ARCHIVE_BASE_ZOOM_0_MD5='4e56d18404f82a2c6f6489661df807c8' ARCHIVE_BASE_ZOOM_0_SIZE='1300000' ARCHIVE_BASE_ZOOM_0_VERSION='2016.04.21-zoom1' ARCHIVE_BASE_ZOOM_0_URL='https://www.zoom-platform.com/product/a-boy-and-his-blob' ARCHIVE_BASE_GOG_0_NAME='gog_a_boy_and_his_blob_2.1.0.2.sh' ARCHIVE_BASE_GOG_0_MD5='7025963a3a26f838877374f72ce3760d' ARCHIVE_BASE_GOG_0_SIZE='1300000' ARCHIVE_BASE_GOG_0_VERSION='2016.04.21-gog2.1.0.2' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/a_boy_and_his_blob' CONTENT_PATH_DEFAULT_ZOOM='A Boy And His Blob/game' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_LIBS_BIN_FILES=' libfmod.so.7 libGLEW.so.1.10' CONTENT_GAME_BIN_FILES=' Blob' CONTENT_GAME_DATA_FILES=' content' APP_MAIN_EXE='Blob' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libstdc++.so.6' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Check for the presence of optional extra archives ARCHIVE_OPTIONAL_ICONS_0_NAME='a-boy-and-his-blob_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_0_MD5='2a555c1f6b02a45b8932c8e72a9c1dd6' ARCHIVE_OPTIONAL_ICONS_0_URL='https://downloads.dotslashplay.it/game/a-boy-and-his-blob/' archive_initialize_optional \ 'ARCHIVE_ICONS' \ 'ARCHIVE_OPTIONAL_ICONS_0' # Extract game data archive_extraction_default if archive_is_available 'ARCHIVE_ICONS'; then archive_extraction 'ARCHIVE_ICONS' fi # Include game data if archive_is_available 'ARCHIVE_ICONS'; then CONTENT_ICONS_DATA_PATH='.' CONTENT_ICONS_DATA_FILES=' 16x16 32x32 48x48 64x64' content_inclusion 'ICONS_DATA' 'PKG_DATA' "$(path_icons)" fi content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-a-building-full-of-cats.sh0000755000000000000000000000364214471751340016472 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Mopi set -o errexit ### # A Building Full of Cats # send your bug reports to contact@dotslashplay.it ### script_version=20230309.3 GAME_ID='a-building-full-of-cats' GAME_NAME='A Building Full of Cats' ARCHIVE_BASE_0='setup_a_building_full_of_cats_1.01-gog_(64bit)_(62634).exe' ARCHIVE_BASE_0_MD5='0c1fc138578320932322f774670f655b' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='150000' ARCHIVE_BASE_0_VERSION='1.01-gog62634' ARCHIVE_BASE_0_URL='https://www.gog.com/en/game/a_building_full_of_cats' CONTENT_PATH_DEFAULT='.' ## The game fails to start if steam_api64.dll is missing. CONTENT_GAME_BIN_FILES=' steam_api64.dll building.exe' CONTENT_GAME_DATA_FILES=' building.pck' USER_PERSISTENT_FILES=' *.cfg' APP_MAIN_EXE='building.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.20' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-a-castle-full-of-cats.sh0000755000000000000000000000400514471751340016142 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Mopi set -o errexit ### # A Castle Full of Cats # send your bug reports to contact@dotslashplay.it ### script_version=20230323.1 GAME_ID='a-castle-full-of-cats' GAME_NAME='A Castle Full of Cats' ARCHIVE_BASE_0='setup_a_castle_full_of_cats_1.07_gog_w_leaderboards_(63211).exe' ARCHIVE_BASE_0_MD5='f0490493f27c903c5e07f87da5e1dde5' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='300000' ARCHIVE_BASE_0_VERSION='1.07-gog63211' ARCHIVE_BASE_0_URL='https://www.gog.com/en/game/a_castle_full_of_cats' CONTENT_PATH_DEFAULT='.' ## The game fails to start if steam_api64.dll is missing. CONTENT_GAME_BIN_FILES=' galaxyconfig.json galaxy64.dll steam_api64.dll castle.exe' CONTENT_GAME_DATA_FILES=' castle.pck' USER_PERSISTENT_FILES=' *.cfg' APP_MAIN_EXE='castle.exe' APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=GODOT_ICON --language=1033' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.20' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-a-good-snowman-is-hard-to-build.sh0000755000000000000000000000716014471751340020054 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # A Good Snowman is Hard to Build # send your bug reports to contact@dotslashplay.it ### script_version=20231017.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='a-good-snowman-is-hard-to-build' GAME_NAME='A Good Snowman is Hard to Build' ## This installer used to be sold from humblebundle.com, ## but they now sell Steam keys only. ARCHIVE_BASE_0_NAME='snowman-linux-1.0.8.tar.gz' ARCHIVE_BASE_0_MD5='4461dfdcaba9e8793e3044b458b0e301' ARCHIVE_BASE_0_SIZE='120000' ARCHIVE_BASE_0_VERSION='1.0.8-humble160421' CONTENT_PATH_DEFAULT='snowman' CONTENT_LIBS_BIN32_PATH="${CONTENT_PATH_DEFAULT}/bin32" CONTENT_LIBS_BIN32_FILES=' lime-legacy.ndll regexp.dso std.dso zlib.dso' CONTENT_LIBS_BIN64_PATH="${CONTENT_PATH_DEFAULT}/bin64" CONTENT_LIBS_BIN64_FILES=' lime-legacy.ndll regexp.dso std.dso zlib.dso' CONTENT_GAME_BIN32_FILES=' bin32/Snowman' CONTENT_GAME_BIN64_FILES=' bin64/Snowman' CONTENT_GAME_DATA_FILES=' atlases crashdumper fonts libraries manifest music resources sounds spritesheets strings' APP_MAIN_EXE_BIN32='bin32/Snowman' APP_MAIN_EXE_BIN64='bin64/Snowman' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 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" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # The game engine is looking for lime-legacy.ndll in a hardcoded path libraries_source=$(path_libraries) for libraries_destination in \ "$(package_path 'PKG_BIN32')$(path_game_data)" \ "$(package_path 'PKG_BIN64')$(path_game_data)" do mkdir --parents "$libraries_destination" ln --symbolic \ "${libraries_source}/lime-legacy.ndll" \ "$libraries_destination" done # Check for the presence of optional extra archives ARCHIVE_OPTIONAL_ICONS_0_NAME='a-good-snowman-is-hard-to-build_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_0_MD5='8d595a7758ae8cd6dbc441ab79579fb4' ARCHIVE_OPTIONAL_ICONS_0_URL='https://downloads.dotslashplay.it/games/a-good-snowman-is-hard-to-build/' archive_initialize_optional \ 'ARCHIVE_ICONS' \ 'ARCHIVE_OPTIONAL_ICONS_0' # Extract game data archive_extraction_default if archive_is_available 'ARCHIVE_ICONS'; then archive_extraction 'ARCHIVE_ICONS' fi # Include game data if archive_is_available 'ARCHIVE_ICONS'; then CONTENT_ICONS_DATA_PATH='.' CONTENT_ICONS_DATA_FILES=' 16x16 24x24 32x32 40x40 48x48 64x64 96x96 128x128 256x256 512x512 768x768' content_inclusion 'ICONS_DATA' 'PKG_DATA' "$(path_icons)" fi content_inclusion_default # Write launchers set_current_package 'PKG_BIN32' launchers_write set_current_package 'PKG_BIN64' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-a-hat-in-time.sh0000755000000000000000000000537414471751340014523 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # A Hat in Time # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220727.1 GAME_ID='a-hat-in-time' GAME_NAME='A Hat in Time' ARCHIVE_BASE_0='setup_a_hat_in_time_nyakuza_metro_1.12_(64bit)_(35607).exe' ARCHIVE_BASE_0_MD5='b488a803f372891556adde2589b87643' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_a_hat_in_time_nyakuza_metro_1.12_(64bit)_(35607)-1.bin' ARCHIVE_BASE_0_PART1_MD5='c0b7186f04d9d07baa835cd4186a5fb9' ARCHIVE_BASE_0_PART2='setup_a_hat_in_time_nyakuza_metro_1.12_(64bit)_(35607)-2.bin' ARCHIVE_BASE_0_PART2_MD5='7ce5f0d9d40007cb4c12e9312f0cfc57' ARCHIVE_BASE_0_SIZE='8000000' ARCHIVE_BASE_0_VERSION='1.12-gog35607' ARCHIVE_BASE_0_URL='https://www.gog.com/game/a_hat_in_time' CONTENT_PATH_DEFAULT='.' ARCHIVE_GAME_BIN_FILES=' binaries engine' ARCHIVE_GAME_DATA_FILES=' hatintimegame' ARCHIVE_GAME0_BIN_PATH='app' ARCHIVE_GAME0_BIN_FILES=' engine' ARCHIVE_GAME0_DATA_PATH='app' ARCHIVE_GAME0_DATA_FILES=' hatintimegame' APP_MAIN_TYPE='wine' APP_MAIN_EXE='binaries/win64/hatintimegame.exe' APP_MAIN_ICON="${CONTENT_PATH_DEFAULT}/binaries/win64/hatintimegame.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID wine" # .NET Framework 4 is required for controller support PKG_BIN_DEPS="$PKG_BIN_DEPS winetricks" APP_WINETRICKS="$APP_WINETRICKS dotnet40" APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Do not disable mscoree.dll # This game relies on .NET framework for controller support export WINEDLLOVERRIDES=winemenubuilder.exe,mshtml=d' # Load common functions target_version='2.17' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icon PKG='PKG_DATA' icons_get_from_workdir 'APP_MAIN' # Include game data prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-a-jugglers-tale.sh0000755000000000000000000000512214471751340015143 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # A Juggler's Tale # send your bug reports to contact@dotslashplay.it ### script_version=20230404.1 GAME_ID='a-jugglers-tale' GAME_NAME='A Jugglerʼs Tale' ARCHIVE_BASE_0='setup_a_jugglers_tale_1.16.0_(64bit)_(50655).exe' ARCHIVE_BASE_0_MD5='bb0953d80bf8b9d996bdb453564fe07f' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_a_jugglers_tale_1.16.0_(64bit)_(50655)-1.bin' ARCHIVE_BASE_0_PART1_MD5='2345e25ad4c4f90574b63b3da7e464ab' ARCHIVE_BASE_0_SIZE='2800000' ARCHIVE_BASE_0_VERSION='1.16.0-gog50655' ARCHIVE_BASE_0_URL='https://www.gog.com/game/a_jugglers_tale' UNREALENGINE4_NAME='ajugglerstale' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" engine ${UNREALENGINE4_NAME}/binaries ${UNREALENGINE4_NAME}/plugins ${UNREALENGINE4_NAME}.exe" CONTENT_GAME_DATA_FILES=" ${UNREALENGINE4_NAME}" WINE_DIRECT3D_RENDERER='dxvk' APP_WINE_LINK_DIRS=" userdata:users/\${USER}/AppData/Local/${UNREALENGINE4_NAME}/Saved" USER_PERSISTENT_DIRECTORIES=' userdata/Config/WindowsNoEditor userdata/SaveGames' APP_MAIN_EXE="${UNREALENGINE4_NAME}.exe" APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=101' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPS_ARCH='gst-plugins-base gst-plugins-good gst-libav' PKG_BIN_DEPS_DEB='gstreamer1.0-plugins-base, gstreamer1.0-plugins-good, gstreamer1.0-libav' PKG_BIN_DEPS_GENTOO='media-libs/gst-plugins-base media-plugins/gst-plugins-good media-libs/gst-plugins-libav' # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-a-lullaby-of-colors.sh0000755000000000000000000000652414471751340015752 0ustar rootroot#!/bin/sh -e set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # A Lullaby of Colors # build native Linux packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20201017.1 # Set game-specific variables GAME_ID='a-lullaby-of-colors' GAME_NAME='A Lullaby of Colors' ARCHIVE_ITCH='A_Lullaby_of_Colors_v1.1.0_win_NonVR.zip' ARCHIVE_ITCH_URL='https://andyman404.itch.io/lullaby-of-colors' ARCHIVE_ITCH_MD5='afbc3fd204650fb26f7dd5d12438006e' ARCHIVE_ITCH_SIZE='190000' ARCHIVE_ITCH_VERSION='1.1.0-itch' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='A?Lullaby?of?Colors.exe A?Lullaby?of?Colors_Data/Plugins GameAssembly.dll SymbolMap UnityCrashHandler64.exe UnityPlayer.dll' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='A?Lullaby?of?Colors_Data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='A Lullaby of Colors.exe' APP_MAIN_ICON='A Lullaby of Colors.exe' PACKAGES_LIST='PKG_DATA PKG_BIN' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-a-monsters-expedition.sh0000755000000000000000000000633514471751340016425 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright © 2015-2022, Antoine Le Gonidec # Copyright © 2021-2022, Daguhh # 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. ### ### # A Monster's Expedition # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220102.2 # Set game-specific variables GAME_ID='a-monsters-expedition' GAME_NAME='A Monsterʼs Expedition' ARCHIVE_BASE_0='a-monsters-expedition-linux.zip' ARCHIVE_BASE_0_MD5='0bf9d7b9d7df996024716145d5fa0074' ARCHIVE_BASE_0_SIZE='570000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://draknek.itch.io/a-monsters-expedition' UNITY3D_NAME='a-monsters-expedition' CONTENT_PATH_DEFAULT='.' ARCHIVE_GAME_BIN_FILES=" $UNITY3D_NAME UnityPlayer.so" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_EXE="$UNITY3D_NAME" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6" # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-a-morticians-tale.sh0000755000000000000000000000722114471751340015473 0ustar rootroot#!/bin/sh -e set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # A Mortician’s Tale # build native Linux packages from the original installers # send your bug reports to mopi@dotslashplay.it ### script_version=20200925.1 # Set game-specific variables GAME_ID='a-morticians-tale' GAME_NAME='A Morticianʼs Tale' ARCHIVES_LIST='ARCHIVE_ITCH_32 ARCHIVE_ITCH_64' ARCHIVE_ITCH_32="A Mortician's Tale - Windows x86.zip" ARCHIVE_ITCH_32_URL='https://laundrybear.itch.io/morticians-tale' ARCHIVE_ITCH_32_MD5='02a3fbfd4121a88f462b6b3884d6a75e' ARCHIVE_ITCH_32_SIZE='180000' ARCHIVE_ITCH_32_VERSION='1.0-itch' ARCHIVE_ITCH_64="A Mortician's Tale - Windows x64.zip" ARCHIVE_ITCH_64_URL='https://laundrybear.itch.io/morticians-tale' ARCHIVE_ITCH_64_MD5='581b86b6e5f20eeb497b07659aaa0991' ARCHIVE_ITCH_64_SIZE='180000' ARCHIVE_ITCH_64_VERSION='1.0-itch' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='morticianstale.exe UnityPlayer.dll morticianstale_Data/Mono morticianstale_Data/Plugins' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='morticianstale_Data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='morticianstale.exe' APP_MAIN_ICON='morticianstale.exe' PACKAGES_LIST='PKG_DATA PKG_BIN' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH_ITCH_32='32' PKG_BIN_ARCH_ITCH_64='64' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-a-musical-story.sh0000755000000000000000000000373414471751340015220 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # A Musical Story # send your bug reports to contact@dotslashplay.it ### script_version=20221231.1 GAME_ID='a-musical-story' GAME_NAME='A Musical Story' UNITY3D_NAME='MusicalStory' ARCHIVE_BASE_0='a_musical_story_1_0_5_53408.sh' ARCHIVE_BASE_0_MD5='028d274ff2f597d5fb5ed0116bee990a' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='2400000' ARCHIVE_BASE_0_VERSION='1.0.5-gog53408' ARCHIVE_BASE_0_URL='https://www.gog.com/game/' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=" GameAssembly.so UnityPlayer.so ${UNITY3D_NAME}_Data/Plugins ${UNITY3D_NAME}.x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID pulseaudio" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libm.so.6 libpthread.so.0 libstdc++.so.6' # Load common functions target_version='2.20' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-a-new-beginning.sh0000755000000000000000000000370714471751340015134 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 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20231017.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' 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 issues 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-a-normal-lost-phone.sh0000755000000000000000000000750714471751340015765 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # A Normal Lost Phone # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210808.2 # Set game-specific variables GAME_ID='a-normal-lost-phone' GAME_NAME='A Normal Lost Phone' ARCHIVE_BASE_0='anlp1.3_linux_drmfree.zip' ARCHIVE_BASE_0_MD5='145e604b4b4773a4ddf86277f3a68f8e' ARCHIVE_BASE_0_VERSION='1.3-itch.2018.06.29' ARCHIVE_BASE_0_SIZE='160000' ARCHIVE_BASE_0_URL='https://dear-villagers.itch.io/a-normal-lost-phone' ARCHIVE_GAME_BIN32_PATH='.' ARCHIVE_GAME_BIN32_FILES=' anlp.x86 anlp_Data/*/x86' ARCHIVE_GAME_BIN64_PATH='.' ARCHIVE_GAME_BIN64_FILES=' anlp.x86_64 anlp_Data/*/x86_64' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES=' anlp_Data' APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32='anlp.x86' APP_MAIN_EXE_BIN64='anlp.x86_64' APP_MAIN_ICON='anlp_Data/Resources/UnityPlayer.png' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID glibc libstdc++ glx xcursor libxrandr gtk2 libudev1 libX11.so.6 libgdk_pixbuf-2.0.so.0 libgobject-2.0.so.0 libglib-2.0.so.0" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Use a dedicated log file for the current game session APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a dedicated log file for the current game session mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Extract icons PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-a-plague-tale-1.sh0000755000000000000000000001122314471751340014733 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # A Plague Tale: Innocence # send your bug reports to contact@dotslashplay.it ### script_version=20230404.1 GAME_ID='a-plague-tale-1' GAME_NAME='A Plague Tale: Innocence' ARCHIVE_BASE_0='setup_a_plague_tale_innocence_1.07_(64bit)_(34188).exe' ARCHIVE_BASE_0_MD5='002096bcb7eac4d9aa111b692aab6f07' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_a_plague_tale_innocence_1.07_(64bit)_(34188)-1.bin' ARCHIVE_BASE_0_PART1_MD5='7a16ee379e97a11a56a60bb77f645c50' ARCHIVE_BASE_0_PART2='setup_a_plague_tale_innocence_1.07_(64bit)_(34188)-2.bin' ARCHIVE_BASE_0_PART2_MD5='c7f7e9b44ecd895ef80cea83aba52ae7' ARCHIVE_BASE_0_PART3='setup_a_plague_tale_innocence_1.07_(64bit)_(34188)-3.bin' ARCHIVE_BASE_0_PART3_MD5='dd99c6c9beb00ef3357622c1782d6406' ARCHIVE_BASE_0_PART4='setup_a_plague_tale_innocence_1.07_(64bit)_(34188)-4.bin' ARCHIVE_BASE_0_PART4_MD5='03b15312c67fe6e5c65b8889056632c1' ARCHIVE_BASE_0_PART5='setup_a_plague_tale_innocence_1.07_(64bit)_(34188)-5.bin' ARCHIVE_BASE_0_PART5_MD5='a8b63b353fa0b59a10895daad970058c' ARCHIVE_BASE_0_PART6='setup_a_plague_tale_innocence_1.07_(64bit)_(34188)-6.bin' ARCHIVE_BASE_0_PART6_MD5='b6f49327c40dda4d25dd78ea2ea47317' ARCHIVE_BASE_0_PART7='setup_a_plague_tale_innocence_1.07_(64bit)_(34188)-7.bin' ARCHIVE_BASE_0_PART7_MD5='d5288ea2b0992bb0f440e8a4dfbe6a0f' ARCHIVE_BASE_0_PART8='setup_a_plague_tale_innocence_1.07_(64bit)_(34188)-8.bin' ARCHIVE_BASE_0_PART8_MD5='e426750fae1e573b1acfbd5301b8a90d' ARCHIVE_BASE_0_PART9='setup_a_plague_tale_innocence_1.07_(64bit)_(34188)-9.bin' ARCHIVE_BASE_0_PART9_MD5='a0612cdb2a6d619588c8ded2622751f5' ARCHIVE_BASE_0_SIZE='44000000' ARCHIVE_BASE_0_VERSION='1.07-gog34188' ARCHIVE_BASE_0_URL='https://www.gog.com/game/a_plague_tale_innocence' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' amd_ags_x64.dll anselsdk64.dll binkw64.dll common64.dll galaxy64.dll gfsdk_aftermath_lib.x64.dll sdkencryptedappticket64.dll wwiselibpcx64r.dll zlibd.dll zlib.dll aplaguetaleinnocence_x64.exe' CONTENT_GAME_DATA_LEVELS1_FILES=' levels/battlefield levels/battlefield2 levels/cathedral levels/corrupted_domain' CONTENT_GAME_DATA_LEVELS2_FILES=' levels/domain levels/epilogue levels/farm levels/illusion' CONTENT_GAME_DATA_LEVELS3_FILES=' levels/inquisition levels/menu levels/shelter_forest levels/shelter_morning levels/shelter_safe levels/shelter_siege' CONTENT_GAME_DATA_LEVELS4_FILES=' levels/university levels/university2 levels/village levels/village2' CONTENT_GAME_DATA_FILES=' datas font input rtc shaders soundbanks trtext videos all.psc initfont.tsc langdef.tsc' WINE_DIRECT3D_RENDERER='dxvk' APP_WINE_LINK_DIRS=' userdata:users/${USER}/Documents/My Games/A Plague Tale Innocence' USER_PERSISTENT_DIRECTORIES=' userdata' APP_MAIN_EXE='aplaguetaleinnocence_x64.exe' PACKAGES_LIST='PKG_BIN PKG_DATA_LEVELS1 PKG_DATA_LEVELS2 PKG_DATA_LEVELS3 PKG_DATA_LEVELS4 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_LEVELS_ID="${PKG_DATA_ID}-levels" PKG_DATA_LEVELS1_ID="${PKG_DATA_LEVELS_ID}-1" PKG_DATA_LEVELS2_ID="${PKG_DATA_LEVELS_ID}-2" PKG_DATA_LEVELS3_ID="${PKG_DATA_LEVELS_ID}-3" PKG_DATA_LEVELS4_ID="${PKG_DATA_LEVELS_ID}-4" PKG_DATA_LEVELS_DESCRIPTION="$PKG_DATA_DESCRIPTION - levels" PKG_DATA_LEVELS1_DESCRIPTION="$PKG_DATA_LEVELS_DESCRIPTION - 1" PKG_DATA_LEVELS2_DESCRIPTION="$PKG_DATA_LEVELS_DESCRIPTION - 2" PKG_DATA_LEVELS3_DESCRIPTION="$PKG_DATA_LEVELS_DESCRIPTION - 4" PKG_DATA_LEVELS4_DESCRIPTION="$PKG_DATA_LEVELS_DESCRIPTION - 5" PKG_DATA_DEPS="$PKG_DATA_DEPS $PKG_DATA_LEVELS1_ID $PKG_DATA_LEVELS2_ID $PKG_DATA_LEVELS3_ID $PKG_DATA_LEVELS4_ID" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-a-short-hike.sh0000755000000000000000000000354014471751340014455 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # A Short Hike # send your bug reports to contact@dotslashplay.it ### script_version=20231114.4 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='a-short-hike' GAME_NAME='A Short Hike' ARCHIVE_BASE_0_NAME='a-short-hike-linux-latest.zip' ARCHIVE_BASE_0_MD5='a56be18e6c625691edd0b85fa5999439' ARCHIVE_BASE_0_SIZE='350000' ARCHIVE_BASE_0_VERSION='1.9.3-itch.2021.11.22' ARCHIVE_BASE_0_URL='https://adamgryu.itch.io/a-short-hike' UNITY3D_NAME='AShortHike' UNITY3D_PLUGINS=' UnityFbxSdkNative.so' CONTENT_PATH_DEFAULT='.' USER_PERSISTENT_DIRECTORIES=' UserData' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libxml2.so.2 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-a-space-adventure.sh0000755000000000000000000000351214471751340015465 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=20231017.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' 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_DOC0_DATA_FILES=' readme.txt' CONTENT_GAME_DATA_FILES=" ${VISIONAIRE_NAME}.vis" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Local Settings/Application Data/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 . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Convert all paths to lowercase tolower . ) # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-a-story-about-my-uncle.sh0000755000000000000000000000663314471751340016425 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # A Story About My Uncle # send your bug reports to contact@dotslashplay.it ### script_version=20230104.1 GAME_ID='a-story-about-my-uncle' GAME_NAME='A Story About My Uncle' ## This DRM-free archive is no longer sold by humblebundle.com, ## they currently sell only Steam keys for this game. ARCHIVE_BASE_0='Linux-NoDRM-ASAMU_5188.zip' ARCHIVE_BASE_0_MD5='71f9f3add29a733c4a1a7d18d738d3d6' ARCHIVE_BASE_0_SIZE='1300000' ARCHIVE_BASE_0_VERSION='5188-humble170516' CONTENT_PATH_DEFAULT='.' CONTENT_LIBS_BIN32_PATH='Binaries/linux-x86' CONTENT_LIBS_BIN32_FILES=' libPhysXCooking.so libPhysXCore.so libPhysXExtensions.so.1 libPhysXLoader.so.1 libSDL2-2.0.so.0 libsteam_api.so PhysXUpdateLoader.so' CONTENT_GAME_BIN32_FILES=' Binaries/linux-x86/ASAMU' CONTENT_LIBS_BIN64_PATH='Binaries/linux-amd64' CONTENT_LIBS_BIN64_FILES=' libPhysXCooking.so libPhysXCore.so libPhysXExtensions.so.1 libPhysXLoader.so.1 libSDL2-2.0.so.0 libsteam_api.so PhysXUpdateLoader.so' CONTENT_GAME_BIN64_FILES=' Binaries/linux-amd64/ASAMU' CONTENT_GAME_DATA_FILES=' ASAMU Engine' APP_MAIN_EXE_BIN32='Binaries/linux-x86/ASAMU' APP_MAIN_EXE_BIN64='Binaries/linux-amd64/ASAMU' USER_PERSISTENT_DIRECTORIES=' ASAMU/Cloud ASAMU/Config' USER_PERSISTENT_FILES=' ASAMU/Saves' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPENDENCIES_LIBRARIES=' ld-linux-x86-64.so.2 libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libstdc++.so.6' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN32_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.20' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Load icons archive if available ARCHIVE_OPTIONAL_ICONS='a-story-about-my-uncle_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_URL='https://downloads.dotslashplay.it/resources/a-story-about-my-uncle/' ARCHIVE_OPTIONAL_ICONS_MD5='db4eb7ab666e61ea5fc983102099ab31' CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 32x32' archive_initialize_optional \ 'ARCHIVE_ICONS' \ 'ARCHIVE_OPTIONAL_ICONS' if [ -n "$ARCHIVE_ICONS" ]; then archive_extraction 'ARCHIVE_ICONS' content_inclusion 'ICONS' 'PKG_DATA' "$(path_icons)" rm --recursive "${PLAYIT_WORKDIR}/gamedata" fi # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" set_standard_permissions . ) # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-a-tale-of-paper.sh0000755000000000000000000000643414471751340015041 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # A Tale of Paper # send your bug reports to contact@dotslashplay.it ### script_version=20230706.1 GAME_ID='a-tale-of-paper' GAME_NAME='A Tale of Paper: Refolded' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" # Archives ## Full game ARCHIVE_BASE_0='setup_a_tale_of_paper_1.0_(56083).exe' ARCHIVE_BASE_0_MD5='8a1acfc78e34a89ce608e275674a829a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_a_tale_of_paper_1.0_(56083)-1.bin' ARCHIVE_BASE_0_PART1_MD5='664731f03da4cffe8a9771d298476cb2' ARCHIVE_BASE_0_SIZE='4100000' ARCHIVE_BASE_0_VERSION='1.0-gog56083' ARCHIVE_BASE_0_URL='https://www.gog.com/game/a_tale_of_paper_refolded' ## Demo ARCHIVE_BASE_DEMO_0='setup_a_tale_of_paper_demo_1.0_(54424).exe' ARCHIVE_BASE_DEMO_0_MD5='9c154ee673c94bc896b1b08ac7c6b13b' ARCHIVE_BASE_DEMO_0_TYPE='innosetup' ARCHIVE_BASE_DEMO_0_SIZE='930000' ARCHIVE_BASE_DEMO_0_VERSION='1.0-gog54424' ARCHIVE_BASE_DEMO_0_URL='https://www.gog.com/game/a_tale_of_paper_demo' # Archive contents CONTENT_PATH_DEFAULT='.' ## Full game UNREALENGINE4_NAME='ataleofpaper' CONTENT_GAME_BIN_FILES=" engine ${UNREALENGINE4_NAME}/binaries ${UNREALENGINE4_NAME}/plugins ${UNREALENGINE4_NAME}.exe" CONTENT_GAME_DATA_FILES=" ${UNREALENGINE4_NAME}" ## Demo UNREALENGINE4_NAME_DEMO='prototipo' CONTENT_GAME_BIN_FILES_DEMO=" engine ${UNREALENGINE4_NAME_DEMO}/binaries ${UNREALENGINE4_NAME_DEMO}/plugins ataleofpaper.exe" CONTENT_GAME_DATA_FILES_DEMO=" ${UNREALENGINE4_NAME_DEMO}" WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=" users/\${USER}/AppData/Local/${UNREALENGINE4_NAME}/Saved" WINE_PERSISTENT_DIRECTORIES_DEMO=" users/\${USER}/AppData/Local/${UNREALENGINE4_NAME_DEMO}/Saved" APP_MAIN_EXE="${UNREALENGINE4_NAME}.exe" APP_MAIN_EXE_DEMO='ataleofpaper.exe' APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=101' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPS_DEMO="$PKG_DATA_ID_DEMO" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' # Install required Microsoft Visual C++ libraries APP_WINETRICKS="${APP_WINETRICKS:-} vcrun2019" # 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-a-vampyre-story.sh0000755000000000000000000000547614471751340015253 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 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220821.1 GAME_ID='a-vampyre-story' GAME_NAME='A Vampyre Story' # This DRM-free installer is no longer sold by GOG ARCHIVE_BASE_0='setup_a_vampyre_story_1.0_(43163).exe' ARCHIVE_BASE_0_MD5='f2441fb51aac6eaca5e97f6e6a3ea0ab' ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS='--progress=1 --silent' ARCHIVE_BASE_0_PART1='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' ARCHIVE_DOC_DATA_FILES=' license.txt readme.txt' ARCHIVE_GAME_BIN_FILES=' main.exe *.dll *.pyd __init__.pyc library.zip *.pyo w9xpopen.exe' ARCHIVE_GAME_DATA_FILES=' assets etc tcl icon.ico installer.bmp' APP_MAIN_TYPE='wine' APP_MAIN_EXE='main.exe' APP_MAIN_ICON='icon.ico' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Set up a WINE virtual desktop on first launch, using the current desktop resolution PKG_BIN_DEPS="$PKG_BIN_DEPS winetricks xrandr sed" sed_expression='s/.*primary.* ([0-9]+x[0-9]+).*/\1/p' sed_options="--regexp-extended --silent --expression='$sed_expression'" APP_WINETRICKS="$APP_WINETRICKS vd=\$(LANG=C xrandr | sed $sed_options)" # Disable CSMT rendering, as it messes up with movies playback # cf. https://bugs.winehq.org/show_bug.cgi?id=37659 APP_WINETRICKS="$APP_WINETRICKS csmt=off" PKG_BIN_DEPS="$PKG_BIN_DEPS winetricks" # Use persistent storage for user data DATA_DIRS='assets/scripts etc' # Load common functions target_version='2.17' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icon PKG='PKG_DATA' icons_inclusion # Include game data prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-a-virus-named-tom.sh0000755000000000000000000000440614471751340015431 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # A Virus Named Tom # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220628.1 GAME_ID='a-virus-named-tom' GAME_NAME='A Virus Named Tom' ARCHIVE_BASE_0='avnt-09172013-bin' ARCHIVE_BASE_0_MD5='85d11d3f05ad966a06a7e2f77e2fee45' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='270000' ARCHIVE_BASE_0_VERSION='1.0-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/a-virus-named-tom' CONTENT_PATH_DEFAULT='data' ARCHIVE_DOC_DATA_FILES=' Linux.README' ARCHIVE_GAME_BIN32_FILES=' *.x86 lib' ARCHIVE_GAME_BIN64_FILES=' *.x86_64 lib64' ARCHIVE_GAME_DATA_FILES=' A?Virus?Named?TOM.bmp AVirusNamedTOM *.dll *.exe Content mono *.config Xml' APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32='CircuitGame.bin.x86' APP_MAIN_EXE_BIN64='CircuitGame.bin.x86_64' APP_MAIN_ICON='A Virus Named TOM.bmp' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-a-wish-upon-a-star.sh0000755000000000000000000000500014471751340015507 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # A Wish Upon a Star # send your bug reports to contact@dotslashplay.it ### script_version=20221030.2 GAME_ID='a-wish-upon-a-star' GAME_NAME='A Wish Upon a Star' UNITY3D_NAME='AWishUponAStar' ARCHIVE_BASE_32BIT_0='AWishUponAStar_v1_2_0_WIN32.zip' ARCHIVE_BASE_32BIT_0_MD5='6644015a399d7485f7c73491f9462854' ARCHIVE_BASE_32BIT_0_SIZE='260000' ARCHIVE_BASE_32BIT_0_VERSION='1.2.0-itch.2018.07.07' ARCHIVE_BASE_32BIT_0_URL='https://fabiandenter.itch.io/wish-upon-a-star' ARCHIVE_BASE_64BIT_0='AWishUponAStar_WIN_v1_2_0.zip' ARCHIVE_BASE_64BIT_0_MD5='1c76b283aabf5d64bc05fbf489cf3a25' ARCHIVE_BASE_64BIT_0_SIZE='260000' ARCHIVE_BASE_64BIT_0_VERSION='1.2.0-itch.2018.07.07' ARCHIVE_BASE_64BIT_0_URL='https://fabiandenter.itch.io/wish-upon-a-star' CONTENT_PATH_DEFAULT_32BIT='AWishUponAStar_v1_2_0_WIN32' CONTENT_PATH_DEFAULT_64BIT='AWishUponAStar_WIN_v1_2_0' ARCHIVE_GAME_BIN_FILES=" ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_Data/Mono UnityPlayer.dll" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" APP_MAIN_ICON="$APP_MAIN_EXE" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH_32BIT='32' PKG_BIN_ARCH_64BIT='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Use persistent storage for game progress and settings WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\Fabian Denter\A Wish Upon A Star' # Load common functions target_version='2.18' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-a-year-of-springs.sh0000755000000000000000000000441314471751340015425 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=20230405.1 GAME_ID='a-year-of-springs' GAME_NAME='A Year of Springs' ARCHIVE_BASE_0='a_year_of_springs_1_05_60321.sh' ARCHIVE_BASE_0_MD5='683044c44f06061a84490c2a02b5303b' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='260000' 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' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/lib/py2-linux-x86_64" CONTENT_LIBS_BIN_FILES=' librenpython.so' CONTENT_GAME_BIN_FILES=' lib/py2-linux-x86_64/ayearofsprings lib/py2-linux-x86_64/python lib/py2-linux-x86_64/pythonw lib/py2-linux-x86_64/zsync lib/py2-linux-x86_64/zsyncmake' CONTENT_GAME_DATA_FILES=' game renpy lib/python2.7 ayearofsprings.py' APP_MAIN_EXE='lib/py2-linux-x86_64/ayearofsprings' APP_MAIN_ICON='../../support/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libGL.so.1 libm.so.6 libpthread.so.0 libutil.so.1' # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-abandon-ship.sh0000755000000000000000000000576714471751340014542 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Abandon Ship # send your bug reports to contact@dotslashplay.it ### script_version=20230623.2 GAME_ID='abandon-ship' GAME_NAME='Abandon Ship' ARCHIVE_BASE_0='abandon_ship_1_3_14934_41922.sh' ARCHIVE_BASE_0_MD5='484e670989853f9c7460d0dd08b3ffba' ARCHIVE_BASE_0_SIZE='11000000' ARCHIVE_BASE_0_VERSION='1.3.14934-gog41922' ARCHIVE_BASE_0_URL='https://www.gog.com/game/abandon_ship' UNITY3D_NAME='AbandonShip' UNITY3D_PLUGINS=' libAkHarmonizer.so libAkSoundEngine.so libSynthOne.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME} ${UNITY3D_NAME}_Data/Mono/x86_64/libmono.so ${UNITY3D_NAME}_Data/Mono/x86_64/libMonoPosixHelper.so" CONTENT_GAME_DATA_ASSETS_FILES=" ${UNITY3D_NAME}_Data/StreamingAssets/AssetBundles" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" CONTENT_DOC_DATA_FILES=' Licenses' APP_MAIN_EXE="$UNITY3D_NAME" PACKAGES_LIST='PKG_BIN PKG_DATA_ASSETS PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_ASSETS_ID="${PKG_DATA_ID}-assets" PKG_DATA_ASSETS_DESCRIPTION="$PKG_DATA_DESCRIPTION - assets" PKG_DATA_DEPS="$PKG_DATA_DEPS $PKG_DATA_ASSETS_ID" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 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' # 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 . "$PLAYIT_LIB2" # Link some Unity3D plugins in the game data path # as the game engine fails to find it otherwise, # even if it is in LD_LIBRARY_PATH. for file_name in \ 'libAkSoundEngine.so' \ 'libAkHarmonizer.so' \ 'libSynthOne.so' \ 'ScreenSelector.so' do file_source="$(path_libraries)/${file_name}" file_destination="$(package_path 'PKG_BIN')$(path_game_data)/$(unity3d_name)_Data/Plugins/x86_64/${file_name}" mkdir --parents "$(dirname "$file_destination")" ln --symbolic "$file_source" "$file_destination" done # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-about-love-hate-and-the-other-ones.sh0000755000000000000000000000614714471751340020563 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # About Love, Hate and the Other Ones # send your bug reports to contact@dotslashplay.it ### script_version=20230626.1 GAME_ID='about-love-hate-and-the-other-ones' GAME_NAME='About Love, Hate and the Other Ones' ARCHIVE_BASE_0='aboutloveandhate-1.3.1.deb' ARCHIVE_BASE_0_MD5='65c314a2a970b5c787d4e7e2a837e211' ARCHIVE_BASE_0_SIZE='570000' ARCHIVE_BASE_0_VERSION='1.3.1-humble150312' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/about-love-hate-and-the-other-ones' CONTENT_PATH_DEFAULT='usr/local/games/loveandhate' CONTENT_GAME_BIN32_PATH="${CONTENT_PATH_DEFAULT}/bin32" CONTENT_GAME_BIN32_FILES=' loveandhate' CONTENT_GAME_BIN64_PATH="${CONTENT_PATH_DEFAULT}/bin64" CONTENT_GAME_BIN64_FILES=' loveandhate' CONTENT_GAME_DATA_FILES=' bin' CONTENT_DOC_DATA_FILES=' README' APP_MAIN_EXE='loveandhate' APP_MAIN_ICONS_LIST='APP_MAIN_ICON_16 APP_MAIN_ICON_24 APP_MAIN_ICON_32 APP_MAIN_ICON_48 APP_MAIN_ICON_64 APP_MAIN_ICON_128 APP_MAIN_ICON_256' APP_MAIN_ICON_16='../../../share/icons/hicolor/16x16/apps/loveandhate.png' APP_MAIN_ICON_24='../../../share/icons/hicolor/24x24/apps/loveandhate.png' APP_MAIN_ICON_32='../../../share/icons/hicolor/32x32/apps/loveandhate.png' APP_MAIN_ICON_48='../../../share/icons/hicolor/48x48/apps/loveandhate.png' APP_MAIN_ICON_64='../../../share/icons/hicolor/64x64/apps/loveandhate.png' APP_MAIN_ICON_128='../../../share/icons/hicolor/128x128/apps/loveandhate.png' APP_MAIN_ICON_256='../../../share/icons/hicolor/256x256/apps/loveandhate.png' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 libX11.so.6' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-abzu.sh0000755000000000000000000000466514471751340013134 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Abzû # send your bug reports to contact@dotslashplay.it ### script_version=20230407.1 GAME_ID='abzu' GAME_NAME='Abzû' ARCHIVE_BASE_0='setup_abzu_1.0_(19143).exe' ARCHIVE_BASE_0_MD5='959dbb83bfa8b147a9571a10256cd574' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='4800000' ARCHIVE_BASE_0_VERSION='1.0-gog19143' ARCHIVE_BASE_0_URL='https://www.gog.com/game/abzu' UNREALENGINE4_NAME='abzugame' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" engine ${UNREALENGINE4_NAME}/binaries ${UNREALENGINE4_NAME}/plugins ${UNREALENGINE4_NAME}.exe" CONTENT_GAME_DATA_FILES=" ${UNREALENGINE4_NAME}" WINE_DIRECT3D_RENDERER='dxvk' APP_WINE_LINK_DIRS=" userdata:users/\${USER}/AppData/Local/${UNREALENGINE4_NAME}/Saved" USER_PERSISTENT_DIRECTORIES=' userdata/Config/WindowsNoEditor userdata/SaveGames' APP_MAIN_EXE="${UNREALENGINE4_NAME}/binaries/win64/${UNREALENGINE4_NAME}-win64-shipping.exe" APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=123' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPS_ARCH='gst-plugins-base gst-plugins-good gst-libav' PKG_BIN_DEPS_DEB='gstreamer1.0-plugins-base, gstreamer1.0-plugins-good, gstreamer1.0-libav' PKG_BIN_DEPS_GENTOO='media-libs/gst-plugins-base media-plugins/gst-plugins-good media-libs/gst-plugins-libav' # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-accelerate.sh0000755000000000000000000000365514471751340014261 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Accelerate # send your bug reports to contact@dotslashplay.it ### script_version=20231107.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='accelerate' GAME_NAME='Accelerate' ARCHIVE_BASE_0_NAME='acceleratelinux.zip' ARCHIVE_BASE_0_MD5='42d13702bbec46f8cd2c357886fde0c0' ARCHIVE_BASE_0_SIZE='230000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://whitehatcat.itch.io/accelerate' CONTENT_PATH_DEFAULT='acceleratelinux' CONTENT_GAME_BIN_FILES=' acceleratelinux.x86_64' CONTENT_GAME_DATA_FILES=' acceleratelinux.pck' APP_MAIN_EXE='acceleratelinux.x86_64' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libasound.so.2 libc.so.6 libdl.so.2 libGL.so.1 libm.so.6 libpthread.so.0 libpulse.so.0 libX11.so.6 libXcursor.so.1 libXinerama.so.1 libXi.so.6 libXrandr.so.2 libXrender.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-action-henk.sh0000755000000000000000000000507314471751340014365 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Action Henk # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220701.1 GAME_ID='action-henk' GAME_NAME='Action Henk' # This DRM-free archive is no longer available for sale from Humble Bundle ARCHIVE_BASE_0='actionhenk_bundle_linux.zip' ARCHIVE_BASE_0_MD5='eb0d74c8fd2832a4d39de9d52af514f3' ARCHIVE_BASE_0_SIZE='2400000' ARCHIVE_BASE_0_VERSION='1.0-humble1' UNITY3D_NAME='ActionHenk' CONTENT_PATH_DEFAULT='.' ARCHIVE_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86" ARCHIVE_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32="${UNITY3D_NAME}.x86" APP_MAIN_EXE_BIN64="${UNITY3D_NAME}.x86_64" APP_MAIN_ICON="${UNITY3D_NAME}_Data/Resources/UnityPlayer.png" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID libc.so.6 libGLU.so.1 xcursor" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Use a dedicated log file for the current game session APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a dedicated log file for the current game session mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-aer-memories-of-old.sh0000755000000000000000000000663314471751340015733 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # AER: Memories of Old # send your bug reports to contact@dotslashplay.it ### script_version=20230929.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='aer-memories-of-old' GAME_NAME='AER: Memories of Old' ARCHIVE_BASE_1_NAME='aer_memories_of_old_1_0_4_2_34743.sh' ARCHIVE_BASE_1_MD5='275fbe912805fde9ed3d6d2a25d61b7b' ARCHIVE_BASE_1_TYPE='mojosetup' ARCHIVE_BASE_1_SIZE='1400000' ARCHIVE_BASE_1_VERSION='1.0.4.2-gog34743' ARCHIVE_BASE_1_URL='https://www.gog.com/game/aer' ARCHIVE_BASE_0_NAME='aer_memories_of_old_en_v1_0_4_1_19457.sh' ARCHIVE_BASE_0_MD5='ca59918433567c974b4985767c4af576' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='1400000' ARCHIVE_BASE_0_VERSION='1.0.4.1-gog19475' UNITY3D_NAME='AER' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Force the game to run in windowed mode case "$(context_archive)" in ('ARCHIVE_BASE_0') unity3d_prefs_path='${HOME}/.config/unity3d/Daedalic Entertainment GmbH/AERMemoriesofOld/prefs' ;; (*) unity3d_prefs_path='${HOME}/.config/unity3d/Daedalic Entertainment GmbH/AER_ Memories of Old/prefs' ;; esac APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN')"' # Force the game to run in windowed mode config_file="'"$unity3d_prefs_path"'" if [ ! -f "$config_file" ] ; then mkdir --parents "$(dirname "$config_file")" cat > "$config_file" <<- EOF 0 0 EOF else sed_pattern='\''.'\'' sed_replacement='\''0'\'' sed --in-place \ "s#${sed_pattern}#${sed_replacement}#" \ "$config_file" fi ' # Extract game data archive_extraction_default # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN32' launchers_write PKG='PKG_BIN64' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-affinity.sh0000755000000000000000000000373414471751340014000 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Affinity # send your bug reports to contact@dotslashplay.it ### script_version=20221204.2 GAME_ID='affinity' GAME_NAME='Affinity' UNITY3D_NAME='Affinity' ARCHIVE_BASE_0='Affinity.zip' ARCHIVE_BASE_0_MD5='af34703d92f8a7b36d276a2ebad8c17b' ARCHIVE_BASE_0_SIZE='5700000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://boldbrushgames.itch.io/affinity' CONTENT_PATH_DEFAULT='Affinity' CONTENT_GAME_BIN_FILES=" MonoBleedingEdge UnityCrashHandler64.exe UnityPlayer.dll ${UNITY3D_NAME}.exe" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" APP_MAIN_ICON="${UNITY3D_NAME}.exe" USER_PERSISTENT_DIRECTORIES=" ${UNITY3D_NAME}_Data/saves" PACKAGES_LIST='PKG_DATA PKG_BIN' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.18' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-afterdream.sh0000755000000000000000000000306414471751340014275 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Afterdream # send your bug reports to contact@dotslashplay.it ### script_version=20240111.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='afterdream' GAME_NAME='Afterdream' ARCHIVE_BASE_0_NAME='setup_afterdream_v0.1_(67625).exe' ARCHIVE_BASE_0_MD5='22736bca94a5b4da06fcdd85f490dc6c' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='405972' ARCHIVE_BASE_0_VERSION='0.1-gog67625' ARCHIVE_BASE_0_URL='https://www.gog.com/game/afterdream' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES=' afterdream_gog.exe' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/afterdream' APP_MAIN_EXE='afterdream_gog.exe' PKG_MAIN_ARCH='32' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data icons_inclusion content_inclusion_default # Write launchers launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-afterlife.sh0000755000000000000000000000653514471751340014132 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2021 Anna Lea set -o errexit ### # Afterlife # send your bug reports to contact@dotslashplay.it ### script_version=20231108.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='afterlife' GAME_NAME='Afterlife' ARCHIVE_BASE_EN_0_NAME='gog_afterlife_2.2.0.8.sh' ARCHIVE_BASE_EN_0_MD5='3aca0fac1b93adec5aff39d395d995ab' ARCHIVE_BASE_EN_0_SIZE='260000' ARCHIVE_BASE_EN_0_VERSION='1.1-gog2.2.0.8' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/afterlife' ARCHIVE_BASE_FR_0_NAME='gog_afterlife_french_2.2.0.8.sh' ARCHIVE_BASE_FR_0_MD5='56b3efee60bc490c68f8040587fc1878' ARCHIVE_BASE_FR_0_SIZE='250000' ARCHIVE_BASE_FR_0_VERSION='1.1-gog2.2.0.8' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/afterlife' ARCHIVE_BASE_DE_0_NAME='gog_afterlife_german_2.2.0.8.sh' ARCHIVE_BASE_DE_0_MD5='441b57901235584ff851da8fe316f0b3' ARCHIVE_BASE_DE_0_SIZE='310000' ARCHIVE_BASE_DE_0_VERSION='1.1-gog2.2.0.8' ARCHIVE_BASE_DE_0_URL='https://www.gog.com/game/afterlife' ARCHIVE_BASE_ES_0_NAME='gog_afterlife_spanish_2.2.0.8.sh' ARCHIVE_BASE_ES_0_MD5='43deb4aeeaa3b9ede542f1a0718b15ee' ARCHIVE_BASE_ES_0_SIZE='250000' ARCHIVE_BASE_ES_0_VERSION='1.1-gog2.2.0.8' ARCHIVE_BASE_ES_0_URL='https://www.gog.com/game/afterlife' ARCHIVE_BASE_IT_0_NAME='gog_afterlife_italian_2.2.0.8.sh' ARCHIVE_BASE_IT_0_MD5='cb60193a32d29babfc203412df00b21e' ARCHIVE_BASE_IT_0_SIZE='250000' ARCHIVE_BASE_IT_0_VERSION='1.1-gog2.2.0.8' ARCHIVE_BASE_IT_0_URL='https://www.gog.com/game/afterlife' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' alife.* alife *.asc *.exe *.ini' CONTENT_DOC_MAIN_FILES=' readme.txt' CONTENT_DOC0_MAIN_PATH="${CONTENT_PATH_DEFAULT}/../docs" CONTENT_DOC0_MAIN_FILES=' afterlife - reference guide.pdf' USER_PERSISTENT_FILES=' *.ini' USER_PERSISTENT_DIRECTORIES=' save' APP_MAIN_TYPE='dosbox' APP_MAIN_EXE='alife/afterdos.bat' APP_MAIN_ICON='../support/icon.png' ## Run the game binary from its parent directory. APP_MAIN_PRERUN='# Run the game binary from its parent directory APP_DIR=$(dirname "$APP_EXE") APP_EXE=$(basename "$APP_EXE") ' APP_MAIN_DOSBOX_PRERUN=' cd "$APP_DIR" ' PKG_MAIN_ID="$GAME_ID" PKG_MAIN_ID_EN="${PKG_MAIN_ID}-en" PKG_MAIN_ID_FR="${PKG_MAIN_ID}-fr" PKG_MAIN_ID_DE="${PKG_MAIN_ID}-de" PKG_MAIN_ID_ES="${PKG_MAIN_ID}-es" PKG_MAIN_ID_IT="${PKG_MAIN_ID}-it" 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 . "$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 icons_inclusion content_inclusion_default # Write launchers launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-agatha-christie-the-abc-murders.sh0000755000000000000000000001204514471751340020177 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # Copyright (c) 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. ### ### # Agatha Christie: The ABC Murders # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210628.9 # Set game-specific variables GAME_ID='agatha-christie-the-abc-murders' GAME_NAME='Agatha Christie: The ABC Murders' ARCHIVE_BASE_INTL_0='gog_agatha_christie_the_abc_murders_2.2.0.4.sh' ARCHIVE_BASE_INTL_0_MD5='271dab525be57f2783622bbbeb30c7c1' ARCHIVE_BASE_INTL_0_TYPE='mojosetup' 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='gog_agatha_christie_the_abc_murders_polish_2.2.0.4.sh' ARCHIVE_BASE_PL_0_MD5='a9e8e3dcc65e651302e06abbd1446fe6' ARCHIVE_BASE_PL_0_TYPE='mojosetup' 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='gog_agatha_christie_the_abc_murders_russian_2.2.0.4.sh' ARCHIVE_BASE_RU_0_MD5='0becf882ba0e8ae4609c3e771236670c' ARCHIVE_BASE_RU_0_TYPE='mojosetup' 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' ARCHIVE_GAME_BIN_PATH='data/noarch/game' ARCHIVE_GAME_BIN_FILES='The?ABC?Murders.x86 The?ABC?Murders_Data/Mono The?ABC?Murders_Data/Plugins' ARCHIVE_GAME_L10N_PATH='data/noarch/game' ARCHIVE_GAME_L10N_FILES='The?ABC?Murders_Data/Managed The?ABC?Murders_Data/level* The?ABC?Murders_Data/mainData The?ABC?Murders_Data/resources.assets' ARCHIVE_GAME_DATA_PATH='data/noarch/game' ARCHIVE_GAME_DATA_FILES='The?ABC?Murders_Data' APP_MAIN_TYPE='native' APP_MAIN_EXE='The ABC Murders.x86' APP_MAIN_ICON='The ABC Murders_Data/Resources/UnityPlayer.png' PACKAGES_LIST='PKG_BIN PKG_L10N PKG_DATA' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_PROVIDE="$PKG_L10N_ID" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_L10N_ID $PKG_DATA_ID alsa glibc glu glx gtk2 libX11.so.6 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libstdc++ libudev1 libxrandr xcursor" # Localizations PKG_L10N_ID_INTL="${PKG_L10N_ID}-intl" PKG_L10N_ID_PL="${PKG_L10N_ID}-pl" PKG_L10N_ID_RU="${PKG_L10N_ID}-ru" PKG_L10N_DESCRIPTION_INTL='English, French, German, Spanish, Italian and Portuguese localizations' PKG_L10N_DESCRIPTION_PL='Polish localization' PKG_L10N_DESCRIPTION_RU='Russian localization' # Use a per-session dedicated file for logs APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a per-session dedicated file for logs mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Extract icons PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "${PLAYIT_WORKDIR}" # Print instructions print_instructions exit 0 games/play-age-of-wonders-1.sh0000755000000000000000000001012414471751340015131 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2018-2020, BetaRays # 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. ### ### # Age of Wonders # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20200926.4 # Set game-specific variables GAME_ID='age-of-wonders-1' GAME_NAME='Age of Wonders' ARCHIVES_LIST=' ARCHIVE_GOG_1 ARCHIVE_GOG_0' ARCHIVE_GOG_1='setup_age_of_wonders_1.36.0053_(22161).exe' ARCHIVE_GOG_1_URL='https://www.gog.com/game/age_of_wonders' ARCHIVE_GOG_1_MD5='e9c045b1a915d0af6f838ec0ad27d910' ARCHIVE_GOG_1_VERSION='1.36.0053-gog22161' ARCHIVE_GOG_1_SIZE='320000' ARCHIVE_GOG_1_TYPE='innosetup' ARCHIVE_GOG_0='setup_age_of_wonders_2.0.0.13.exe' ARCHIVE_GOG_0_MD5='9ee2ccc5223c41306cf6695fc09a5634' ARCHIVE_GOG_0_VERSION='1.36.0053-gog2.0.0.13' ARCHIVE_GOG_0_SIZE='330000' ARCHIVE_GOG_0_TYPE='innosetup' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='aow.exe aowed.exe' ARCHIVE_DOC_DATA_PATH='.' ARCHIVE_DOC_DATA_FILES='readme.txt quickstart.pdf' ARCHIVE_GAME0_DATA_PATH='.' ARCHIVE_GAME0_DATA_FILES='*.wav *.dpl int dict edimages images release scenario sfx songs tcmaps' # Keep compatibility with old archives ARCHIVE_GAME_BIN_PATH_GOG_0='app' ARCHIVE_DOC_DATA_PATH_GOG_0='app' ARCHIVE_GAME0_DATA_PATH_GOG_0='app' DATA_DIRS='./emailin ./emailout ./save ./user' # "icodecs" winetricks verb is required for correct intro movie playback APP_WINETRICKS='icodecs' APP_MAIN_TYPE='wine' APP_MAIN_EXE='aow.exe' APP_MAIN_ICON='aow.exe' APP_EDITOR_ID="${GAME_ID}_editor" APP_EDITOR_TYPE='wine' APP_EDITOR_EXE='aowed.exe' APP_EDITOR_ICON='aowed.exe' APP_EDITOR_NAME="$GAME_NAME - editor" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine glx" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Extract game icons PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' 'APP_EDITOR' icons_move_to 'PKG_DATA' # Clean up temporary files rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' 'APP_EDITOR' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-age-of-wonders-planetfall.sh0000755000000000000000000000654614471751340017130 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Age of Wonders: Planetfall # send your bug reports to contact@dotslashplay.it ### script_version=20230814.1 GAME_ID='age-of-wonders-planetfall' GAME_NAME='Age of Wonders: Planetfall' ARCHIVE_BASE_0='setup_age_of_wonders_planetfall_1.4.0.4c_(64bit)_(47648).exe' ARCHIVE_BASE_0_MD5='a92c35dc7da9d98ec81124fe8d9e4d7d' ## Do not use innoextract --lowercase option, ## as it leads to voice overs not playing. ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS=' ' ARCHIVE_BASE_0_PART1='setup_age_of_wonders_planetfall_1.4.0.4c_(64bit)_(47648)-1.bin' ARCHIVE_BASE_0_PART1_MD5='cca141657c572c23851bf614988106c8' ARCHIVE_BASE_0_PART2='setup_age_of_wonders_planetfall_1.4.0.4c_(64bit)_(47648)-2.bin' ARCHIVE_BASE_0_PART2_MD5='acf2bd9ce2f2e776f60b163e95628795' ARCHIVE_BASE_0_SIZE='17000000' ARCHIVE_BASE_0_VERSION='1.404.43827-gog47648' ARCHIVE_BASE_0_URL='https://www.gog.com/game/age_of_wonders_planetfall' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' Bin *.dll *.exe' CONTENT_GAME_DATA_LIBRARIES_1_FILES=' Content/*/Libraries/Strategic Content/*/Libraries/Tactical' CONTENT_GAME_DATA_LIBRARIES_2_FILES=' Content/*/Libraries' CONTENT_GAME_DATA_FILES=' Content Development Language Debug.ttf' CONTENT_DOC_DATA_FILES=' OpenSource Readme.txt ThirdPartyLicenses.txt' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/Paradox Interactive/Age of Wonders Planetfall' APP_MAIN_EXE='AowPF.exe' PACKAGES_LIST='PKG_BIN PKG_DATA_LIBRARIES_1 PKG_DATA_LIBRARIES_2 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_LIBRARIES_ID="${PKG_DATA_ID}-libraries" PKG_DATA_LIBRARIES_1_ID="${PKG_DATA_LIBRARIES_ID}-1" PKG_DATA_LIBRARIES_2_ID="${PKG_DATA_LIBRARIES_ID}-2" PKG_DATA_LIBRARIES_DESCRIPTION="$PKG_DATA_DESCRIPTION - libraries" PKG_DATA_LIBRARIES_1_DESCRIPTION="$PKG_LIBRARIES_DESCRIPTION - 1" PKG_DATA_LIBRARIES_2_DESCRIPTION="$PKG_LIBRARIES_DESCRIPTION - 2" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_LIBRARIES_1_ID $PKG_DATA_LIBRARIES_2_ID" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.25' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files rm --recursive \ '__redist' \ 'app' \ 'commonappdata' \ 'Launcher' \ 'launcher-installer-windows.msi' \ 'launcher-settings.json' \ 'tmp' ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-agent-a.sh0000755000000000000000000000454414471751340013503 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=20221030.2 GAME_ID='agent-a' GAME_NAME='Agent A: A puzzle in disguise' UNITY3D_NAME='agenta' ARCHIVE_BASE_0='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' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_data/plugins monobleedingedge *.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" APP_MAIN_ICON="$APP_MAIN_EXE" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPS_ARCH='gst-plugins-good gst-libav' PKG_BIN_DEPS_DEB='gstreamer1.0-plugins-good, gstreamer1.0-libav' PKG_BIN_DEPS_GENTOO='media-plugins/gst-plugins-good media-plugins/gst-plugins-libav' # Use persistent storage for game progress and settings WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\Yak & Co\Agent A' # Load common functions target_version='2.18' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-ai-war-2.sh0000755000000000000000000000427014471751340013502 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # AI War 2 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220322.6 # Set game-specific variables GAME_ID='ai-war-2' GAME_NAME='AI War 2' ARCHIVE_BASE_0='ai_war_2_4_006_54416.sh' ARCHIVE_BASE_0_MD5='3bbcfa00ea5014d5d6f1258d780c97b0' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='3400000' ARCHIVE_BASE_0_VERSION='4.006-gog54416' ARCHIVE_BASE_0_URL='https://www.gog.com/game/ai_war_2' UNITY3D_NAME='AIWar2Linux' CONTENT_PATH_DEFAULT='data/noarch/game' ARCHIVE_GAME_BIN_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/MonoBleedingEdge ${UNITY3D_NAME}_Data/Plugins UnityPlayer.so MonoBleedingEdge ArcenNetworkLib CodeExternal PlayerData ReliableDLLStorage" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data AIW2ModdingAndGUI AssetBundles_Linux GameData GlobalBundles XMLMods" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6 libGL.so.1" # Use persistent storage for user data DATA_DIRS='./PlayerData' # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Get game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-airline-tycoon-deluxe.sh0000755000000000000000000000441214471751340016401 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Jacek Szafarkiewicz # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Airline Tycoon Deluxe # send your bug reports to contact@dotslashplay.it ### script_version=20231108.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='airline-tycoon-deluxe' GAME_NAME='Airline Tycoon Deluxe' ARCHIVE_BASE_0_NAME='gog_airline_tycoon_deluxe_2.0.0.9.sh' ARCHIVE_BASE_0_MD5='dc8b78da150bd3b2089120cc2d24353c' ARCHIVE_BASE_0_SIZE='1200000' ARCHIVE_BASE_0_VERSION='1.08-gog2.0.0.9' ARCHIVE_BASE_0_URL='https://www.gog.com/game/airline_tycoon_deluxe' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/lib32" ## TODO: Replace this glob by an explicit list of libraries. CONTENT_LIBS_BIN_FILES=' *' CONTENT_GAME_BIN_FILES=' ATDeluxe' CONTENT_GAME_L10N_FILES=' de en fr' CONTENT_GAME_DATA_FILES=' gli intro misc room sound video *.bmp' CONTENT_DOC_DATA_FILES=' LICENSE README CHANGELOG' APP_MAIN_EXE='ATDeluxe' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST=' PKG_BIN PKG_L10N PKG_DATA' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_DESCRIPTION='localizations' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" ## TODO: Update the list of required native libraries. PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libstdc++.so.6 libSDL2-2.0.so.0 libGL.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 . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-akalabeth.sh0000755000000000000000000000350014471751340014072 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # Akalabeth # send your bug reports to contact@dotslashplay.it ### script_version=20230626.1 GAME_ID='akalabeth' GAME_NAME='Akalabeth: World of Doom' ARCHIVE_BASE_0='gog_akalabeth_world_of_doom_2.0.0.3.sh' ARCHIVE_BASE_0_MD5='11a770db592af2ac463e6cdc453b555b' ARCHIVE_BASE_0_SIZE='13000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.3' ARCHIVE_BASE_0_URL='https://www.gog.com/game/akalabeth_world_of_doom' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' *' CONTENT_DOC_MAIN_PATH='data/noarch/docs' CONTENT_DOC_MAIN_FILES=' *.pdf' APP_MAIN_EXE='aklabeth.exe' APP_MAIN_ICON='../support/icon.png' # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Convert all paths to lowercase. tolower . ) # Include game icons icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-aladdin.sh0000755000000000000000000000352314471751340013557 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Aladdin # send your bug reports to contact@dotslashplay.it ### script_version=20230626.1 GAME_ID='aladdin' GAME_NAME='Aladdin' ## The original DOS version of Aladdin is no longer available for sale from GOG. ARCHIVE_BASE_0='gog_disney_s_aladdin_2.0.0.2.sh' ARCHIVE_BASE_0_MD5='9dd6d84c2276809c5630320335e3415b' ARCHIVE_BASE_0_SIZE='18000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.2' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' *' CONTENT_DOC_MAIN_PATH='data/noarch/docs' CONTENT_DOC_MAIN_FILES=' Manual.pdf' USER_PERSISTENT_FILES=' *.cfg' APP_MAIN_EXE='aladdin.exe' APP_MAIN_ICON='../support/icon.png' # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Convert all paths to lowercase. tolower . ) # Include game icons icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-alan-wakes-american-nightmare.sh0000755000000000000000000000442714471751340017743 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Alan Wake's American Nightmare # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220701.1 GAME_ID='alan-wakes-american-nightmare' GAME_NAME='Alan Wakeʼs American Nightmare' ARCHIVE_BASE_0='setup_alan_wake_american_nightmare_2.1.0.24.exe' ARCHIVE_BASE_0_MD5='dc500730b639a48897c00f5791e5b2f3' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2500000' ARCHIVE_BASE_0_VERSION='1.0-gog2.1.0.24' ARCHIVE_BASE_0_URL='https://www.gog.com/game/alan_wakes_american_nightmare' CONTENT_PATH_DEFAULT='app' ARCHIVE_GAME_BIN_FILES=' *.dll *.exe' ARCHIVE_GAME_DATA_FILES=' data shaders' APP_MAIN_TYPE='wine' APP_MAIN_EXE='alan_wakes_american_nightmare.exe' APP_MAIN_ICON='alan_wakes_american_nightmare.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Apply d3dcompiler_43 winetricks verb APP_WINETRICKS="$APP_WINETRICKS d3dcompiler_43" PKG_BIN_DEPS="$PKG_BIN_DEPS winetricks" # Grant required write access to some paths to the user DATA_DIRS='./shaders' # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-alba-a-wildlife-adventure.sh0000755000000000000000000000412414471751340017066 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Alba: A Wildlife Adventure # send your bug reports to contact@dotslashplay.it ### script_version=20230405.1 GAME_ID='alba-a-wildlife-adventure' GAME_NAME='Alba: A Wildlife Adventure' ARCHIVE_BASE_0='setup_alba_a_wildlife_adventure_0.90_(43308).exe' ARCHIVE_BASE_0_MD5='709ac0ea04e7e1f6427b9b8eff0a9e30' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='690000' ARCHIVE_BASE_0_VERSION='0.90-gog43308' ARCHIVE_BASE_0_URL='https://www.gog.com/game/alba_a_wildlife_adventure' UNITY3D_NAME='alba' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_data/plugins ${UNITY3D_NAME}.exe monobleedingedge unitycrashhandler64.exe unityplayer.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/LocalLow/ustwo games/Alba' USER_PERSISTENT_DIRECTORIES=' userdata' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-amerzone.sh0000755000000000000000000001243614471751340014006 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # L’Amerzone # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210503.11 # Set game-specific variables GAME_ID='amerzone' GAME_NAME='LʼAmerzone' ARCHIVES_LIST=' ARCHIVE_BASE_EN_0 ARCHIVE_BASE_FR_0' ARCHIVE_BASE_EN_0='setup_amerzone_2.0.0.8.exe' ARCHIVE_BASE_EN_0_MD5='f6be5dbae76289bfdb58eef01913f85e' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_VERSION='1.0-gog2.0.0.8' ARCHIVE_BASE_EN_0_SIZE='2000000' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/amerzone_the_explorer_legacy' ARCHIVE_BASE_FR_0='setup_amerzone_french_2.1.0.10.exe' ARCHIVE_BASE_FR_0_MD5='00458580b95940b6d7257cfa6ba902b2' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_VERSION='1.0-gog2.1.0.10' ARCHIVE_BASE_FR_0_SIZE='2000000' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/amerzone_the_explorer_legacy' ARCHIVE_DOC_L10N_PATH='app' ARCHIVE_DOC_L10N_FILES='*.pdf' ARCHIVE_GAME_BIN_PATH='app' ARCHIVE_GAME_BIN_FILES='*.dll *.exe launch' ARCHIVE_GAME_L10N_PATH='app' ARCHIVE_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' ARCHIVE_GAME_DATA_PATH='app' ARCHIVE_GAME_DATA_FILES='*.dat *.ico *.pak *.smk *.tst *.vr ??vr_*' APP_MAIN_TYPE='wine' APP_MAIN_EXE='amerzone.exe' APP_MAIN_ICON='amerzone.exe' PACKAGES_LIST='PKG_BIN PKG_L10N PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_PROVIDE="$PKG_L10N_ID" PKG_L10N_ID_BASE_EN="${PKG_L10N_ID}-en" PKG_L10N_DESCRIPTION_BASE_EN='English localization' PKG_L10N_ID_BASE_FR="${PKG_L10N_ID}-fr" PKG_L10N_DESCRIPTION_BASE_FR='French localization' PKG_BIN_ARCH='32' PKG_BIN_DEPS="${PKG_DATA_ID} ${PKG_L10N_ID} wine" # Use persistent storage for saved games DATA_FILES="${DATA_FILES} ./Saved_*.bin" # Set up a WINE virtual desktop on first launch, using the current desktop resolution APP_WINETRICKS="${APP_WINETRICKS} vd=\$(xrandr|awk '/\\*/ {print \$1}')" PKG_BIN_DEPS="${PKG_BIN_DEPS} winetricks xrandr" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Extract icons PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Clean up temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-amnesia-1-the-dark-descent.sh0000755000000000000000000000705314471751340017060 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Anna Lea # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Amnesia: The Dark Descent # send your bug reports to contact@dotslashplay.it ### script_version=20231107.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='amnesia-1-the-dark-descent' GAME_NAME='Amnesia: The Dark Descent' ARCHIVE_BASE_0_NAME='amnesia_the_dark_descent_1_41_a_40599.sh' ARCHIVE_BASE_0_MD5='6ef56415f02d611f83f12a064f144379' ARCHIVE_BASE_0_SIZE='2500000' ARCHIVE_BASE_0_VERSION='1.41a-gog40599' ARCHIVE_BASE_0_URL='https://www.gog.com/game/amnesia_the_dark_descent' CONTENT_PATH_DEFAULT='data/noarch/game' ## TODO: Check if the Steam library can be dropped. ## TODO: Check if some shipped libraries can be replaced with system ones. CONTENT_LIBS_BIN_FILES=' libIL.so.1 libSDL2-2.0.so.0 libsteam_api.so' CONTENT_LIBS_BIN64_PATH="${CONTENT_PATH_DEFAULT}/lib64" CONTENT_LIBS_BIN64_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_LIBS_BIN32_PATH="${CONTENT_PATH_DEFAULT}/lib" CONTENT_LIBS_BIN32_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_GAME_BIN64_FILES=' Amnesia.bin.x86_64 Launcher.bin.x86_64' CONTENT_GAME_BIN32_FILES=' Amnesia.bin.x86 Launcher.bin.x86' CONTENT_GAME_DATA_FILES=' billboards commentary config core custom_stories data entities flashbacks fonts graphics gui lang launcher lights main_menu maps misc models music particles shaders sounds static_objects textures materials.cfg ptest_materials.cfg resources.cfg super_secret.rar' CONTENT_DOC_DATA_FILES=' Manual_en.pdf Remember - Short Story Collection.pdf EULA_en.rtf 1.3_ChangeLog.txt' APP_MAIN_EXE_BIN32='Amnesia.bin.x86' APP_MAIN_EXE_BIN64='Amnesia.bin.x86_64' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' ## Ensure smooth upgrades from packages generated with pre-20231107.1 game scripts. PKG_DATA_PROVIDES="${PKG_DATA_PROVIDES:-} amnesia-1-data" PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libfontconfig.so.1 libGL.so.1 libGLU.so.1 libIL.so.1 libogg.so.0 libopenal.so.1 libSDL2-2.0.so.0 libstdc++.so.6 libtheora.so.0 libvorbisfile.so.3 libvorbis.so.0 libX11.so.6 libXext.so.6 libXft.so.2 libz.so.1' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" ## Ensure smooth upgrades from packages generated with pre-20231107.1 game scripts. PKG_BIN64_PROVIDES="${PKG_BIN64_PROVIDES:-} amnesia-1" PKG_BIN32_PROVIDES="${PKG_BIN32_PROVIDES:-} amnesia-1" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' launchers_write set_current_package 'PKG_BIN32' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-among-the-sleep.sh0000755000000000000000000000631714471751340015154 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2021 Anna Lea # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Among the Sleep # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220209.5 # Set game-specific variables GAME_ID='among-the-sleep' GAME_NAME='Among the Sleep' ARCHIVE_BASE_GOG_0='among_the_sleep_en_3_0_1_16406.sh' ARCHIVE_BASE_GOG_0_MD5='de6e5fc26d7d5954782a6e98966f34cf' ARCHIVE_BASE_GOG_0_TYPE='mojosetup' ARCHIVE_BASE_GOG_0_SIZE='3800000' ARCHIVE_BASE_GOG_0_VERSION='3.0.1-gog16406' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/among_the_sleep' ARCHIVE_BASE_HUMBLE_0='Among_the_Sleep_Linux.zip' ARCHIVE_BASE_HUMBLE_0_MD5='0d7296eb48bfebeb9a37827ee94bd34c' ARCHIVE_BASE_HUMBLE_0_SIZE='2900000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0-humble1' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/among-the-sleep' UNITY3D_NAME='Among the Sleep' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='.' ARCHIVE_GAME_BIN32_FILES=' Among?the?Sleep.x86 Among?the?Sleep_Data/Mono/x86 Among?the?Sleep_Data/Plugins/x86' ARCHIVE_GAME_BIN64_FILES=' Among?the?Sleep.x86_64 Among?the?Sleep_Data/Mono/x86_64 Among?the?Sleep_Data/Plugins/x86_64' ARCHIVE_GAME_DATA_FILES=' Among?the?Sleep_Data' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6 libGL.so.1 libX11.so.6 libz.so.1 libgdk-x11-2.0.so.0 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 xcursor libxrandr" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" # Enforce a consistent Unity3D name ( content_path=$(content_path_default) unity3d_name=$(unity3d_name) alt_name='Among The Sleep' cd "${PLAYIT_WORKDIR}/gamedata/${content_path}" if [ -e "${alt_name}.x86" ]; then mv "${alt_name}.x86" "${unity3d_name}.x86" fi if [ -e "${alt_name}.x86_64" ]; then mv "${alt_name}.x86_64" "${unity3d_name}.x86_64" fi if [ -e "${alt_name}_Data" ]; then mv "${alt_name}_Data" "${unity3d_name}_Data" fi ) # Include game data prepare_package_layout # Delete up temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-anima-gate-of-memories.sh0000755000000000000000000000556314471751340016414 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Anima: Gate of Memories # send your bug reports to contact@dotslashplay.it ### script_version=20230623.1 GAME_ID='anima-gate-of-memories' GAME_NAME='Anima: Gate of Memories' ARCHIVE_BASE_1='gog_anima_gate_of_memories_2.0.0.2.sh' ARCHIVE_BASE_1_MD5='97335d9741d3ae17c5d9e58a22165043' ARCHIVE_BASE_1_SIZE='8900000' ARCHIVE_BASE_1_VERSION='1.0-gog2.0.0.2' ARCHIVE_BASE_1_URL='https://www.gog.com/game/anima_gate_of_memories' ARCHIVE_BASE_0='gog_anima_gate_of_memories_2.0.0.1.sh' ARCHIVE_BASE_0_MD5='681d05255e1a162947af69d3e7537748' ARCHIVE_BASE_0_SIZE='8900000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.1' UNITY3D_NAME='GoMLinux' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64" CONTENT_GAME_ASSETS_FILES=" ${UNITY3D_NAME}_Data/*.assets ${UNITY3D_NAME}_Data/*.assets.resS" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_ASSETS PKG_DATA' PKG_ASSETS_ID="${GAME_ID}-assets" PKG_ASSETS_DESCRIPTION='assets' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_ASSETS_ID $PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-ankh-1.sh0000755000000000000000000000535614471751340013250 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Ankh 1 # send your bug reports to contact@dotslashplay.it ### script_version=20230415.1 GAME_ID='ankh-1' GAME_NAME='Ankh' ARCHIVE_BASE_0='setup_ankh_-_anniversary_edition_1.0a_(34062).exe' ARCHIVE_BASE_0_MD5='b1e6094c37d3da40352303c0a1f51f0c' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='910000' ARCHIVE_BASE_0_VERSION='1.0a-gog34062' ARCHIVE_BASE_0_URL='https://www.gog.com/game/ankh_anniversary_edition' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' bin' CONTENT_GAME_DATA_FILES=' media' CONTENT_DOC_DATA_FILES=' readme.txt' APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/Roaming/Ankh' USER_PERSISTENT_DIRECTORIES=' userdata' USER_PERSISTENT_FILES=' bin/release/plugins.cfg media/*.cfg media/*.ini' APP_MAIN_EXE='bin/release/ankh.exe' APP_MAIN_ICON='bin/release/ankh.ico' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # The game expects a writable "save" directory, # despite not using it to store saved games APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # The game expects a writable "save" directory, # despite not using it to store saved games mkdir --parents save ' # Enable game logs storage APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Enable game logs storage mkdir --parents bin/release/logs ' # Run the game binary from its parent directory APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Run the game binary from its parent directory cd "$(dirname "$APP_EXE")" APP_EXE=$(basename "$APP_EXE") ' # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Drop log files rm --recursive \ 'bin/release/logs' \ 'bin/release/cegui.log' \ 'bin/release/ogre.log' ) # Get icon PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-annas-quest.sh0000755000000000000000000000354114471751340014422 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=20231017.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-anno-1404.sh0000755000000000000000000002316714471751340013512 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Phil Morrell # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2020 Mopi set -o errexit ### # Anno 1404 # send your bug reports to contact@dotslashplay.it ### script_version=20230824.1 GAME_ID='anno-1404' GAME_NAME='Anno 1404' GAME_ID_VENICE="${GAME_ID}-venice" GAME_NAME_VENICE="$GAME_NAME - Venice" # Archives ## Single language archives ARCHIVE_BASE_EN_0='setup_anno_1404_2.01_v2_(30326).exe' ARCHIVE_BASE_EN_0_MD5='5b92b95ddd3a60bff25afaca6531dab3' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_PART1='setup_anno_1404_2.01_v2_(30326)-1.bin' ARCHIVE_BASE_EN_0_PART1_MD5='3bf8dd4469d43392617df7737cebad04' ARCHIVE_BASE_EN_0_SIZE='4100000' ARCHIVE_BASE_EN_0_VERSION='2.01.5010-gog30326' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/anno_1404_gold_edition' ARCHIVE_BASE_FR_0='setup_anno_1404_2.01_v2_(french)_(30326).exe' ARCHIVE_BASE_FR_0_MD5='24be40c2f1ce714dcc9c505ed62fcdb2' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_PART1='setup_anno_1404_2.01_v2_(french)_(30326)-1.bin' ARCHIVE_BASE_FR_0_PART1_MD5='d2bbff77601562218b62b53901edd5e7' ARCHIVE_BASE_FR_0_SIZE='4000000' ARCHIVE_BASE_FR_0_VERSION='2.01.5010-gog30326' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/anno_1404_gold_edition' ## Multi-languages archives ARCHIVE_BASE_MULTILANG_0='setup_anno_1404_gold_edition_2.01.5010_(13111).exe' ARCHIVE_BASE_MULTILANG_0_MD5='b19333f57c1c15b788e29ff6751dac20' ARCHIVE_BASE_MULTILANG_0_TYPE='innosetup' ARCHIVE_BASE_MULTILANG_0_PART1='setup_anno_1404_gold_edition_2.01.5010_(13111)-1.bin' ARCHIVE_BASE_MULTILANG_0_PART1_MD5='17933b44bdb2a26d8d82ffbfdc494210' ARCHIVE_BASE_MULTILANG_0_PART2='setup_anno_1404_gold_edition_2.01.5010_(13111)-2.bin' ARCHIVE_BASE_MULTILANG_0_PART2_MD5='2f71f5378b5f27a84a41cc481a482bd6' ARCHIVE_BASE_MULTILANG_0_SIZE='6200000' ARCHIVE_BASE_MULTILANG_0_VERSION='2.01.5010-gog13111' # Archive contents CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_MULTILANG='app' ## Anno 1404 (base game) CONTENT_GAME_BIN_FILES=' bin tools anno4.exe' CONTENT_GAME_L10N_DE_FILES=' maindata/ger0.rda' CONTENT_GAME_L10N_EN_FILES=' maindata/eng0.rda' CONTENT_GAME_L10N_ES_FILES=' maindata/esp0.rda' CONTENT_GAME_L10N_FR_FILES=' maindata/fra0.rda' CONTENT_GAME_L10N_IT_FILES=' maindata/ita0.rda' CONTENT_GAME_DATA_FILES=' data maindata resources' CONTENT_GAME0_DATA_PATH="${CONTENT_PATH_DEFAULT}/__support/add" CONTENT_GAME0_DATA_PATH_MULTILANG="${CONTENT_PATH_DEFAULT_MULTILANG}/__support/add" CONTENT_GAME0_DATA_FILES=' engine.ini' CONTENT_DOC_DATA_FILES=' manual.pdf' ## Venice expansion CONTENT_GAME_BIN_VENICE_FILES=' addon.exe' CONTENT_GAME_L10N_DE_VENICE_FILES=' addon/ger0.rda' CONTENT_GAME_L10N_EN_VENICE_FILES=' addon/eng0.rda' CONTENT_GAME_L10N_ES_VENICE_FILES=' addon/esp0.rda' CONTENT_GAME_L10N_FR_VENICE_FILES=' addon/fra0.rda' CONTENT_GAME_L10N_IT_VENICE_FILES=' addon/ita0.rda' CONTENT_GAME_DATA_VENICE_FILES=' addon' CONTENT_DOC_DATA_FILES=' manual addon.pdf' WINE_DIRECT3D_RENDERER='dxvk' APP_WINE_LINK_DIRS=' config:users/${USER}/AppData/Roaming/Ubisoft/Anno1404/Config profiles:users/${USER}/AppData/Roaming/Ubisoft/Anno1404/Profiles saves:users/${USER}/Documents/Anno 1404/Savegames' USER_PERSISTENT_DIRECTORIES=' config profiles saves' APP_MAIN_EXE='anno4.exe' APP_VENICE_ID="$GAME_ID_VENICE" APP_VENICE_NAME="$GAME_NAME_VENICE" APP_VENICE_EXE='addon.exe' # Packages ## Anno 1404 (base game) PACKAGES_LIST_EN='PKG_L10N_EN PKG_DATA PKG_BIN' PACKAGES_LIST_FR='PKG_L10N_FR PKG_DATA PKG_BIN' PACKAGES_LIST_MULTILANG='PKG_L10N_DE PKG_L10N_EN PKG_L10N_ES PKG_L10N_FR PKG_L10N_IT PKG_DATA PKG_BIN' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_DE_ID="${PKG_L10N_ID}-de" PKG_L10N_EN_ID="${PKG_L10N_ID}-en" PKG_L10N_ES_ID="${PKG_L10N_ID}-es" PKG_L10N_FR_ID="${PKG_L10N_ID}-fr" PKG_L10N_IT_ID="${PKG_L10N_ID}-it" PKG_L10N_DE_PROVIDE="$PKG_L10N_ID" PKG_L10N_EN_PROVIDE="$PKG_L10N_ID" PKG_L10N_ES_PROVIDE="$PKG_L10N_ID" PKG_L10N_FR_PROVIDE="$PKG_L10N_ID" PKG_L10N_IT_PROVIDE="$PKG_L10N_ID" PKG_L10N_DESCRIPTION='localization' PKG_L10N_DE_DESCRIPTION="${PKG_L10N_DESCRIPTION} - German" PKG_L10N_EN_DESCRIPTION="${PKG_L10N_DESCRIPTION} - English" PKG_L10N_ES_DESCRIPTION="${PKG_L10N_DESCRIPTION} - Spanish" PKG_L10N_FR_DESCRIPTION="${PKG_L10N_DESCRIPTION} - French" PKG_L10N_IT_DESCRIPTION="${PKG_L10N_DESCRIPTION} - Italian" PKG_BIN_ID="$GAME_ID" PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID $PKG_L10N_ID" ## Venice expansion PACKAGES_LIST_EN="$PACKAGES_LIST_EN PKG_L10N_EN_VENICE PKG_DATA_VENICE PKG_BIN_VENICE" PACKAGES_LIST_FR="$PACKAGES_LIST_FR PKG_L10N_FR_VENICE PKG_DATA_VENICE PKG_BIN_VENICE" PACKAGES_LIST_MULTILANG="$PACKAGES_LIST_MULTILANG PKG_L10N_DE_VENICE PKG_L10N_EN_VENICE PKG_L10N_ES_VENICE PKG_L10N_FR_VENICE PKG_L10N_IT_VENICE PKG_DATA_VENICE PKG_BIN_VENICE" PKG_DATA_VENICE_ID="${GAME_ID_VENICE}-data" PKG_DATA_VENICE_DESCRIPTION="$GAME_NAME_VENICE - data" PKG_L10N_VENICE_ID="${GAME_ID_VENICE}-l10n" PKG_L10N_DE_VENICE_ID="${PKG_L10N_VENICE_ID}-de" PKG_L10N_EN_VENICE_ID="${PKG_L10N_VENICE_ID}-en" PKG_L10N_ES_VENICE_ID="${PKG_L10N_VENICE_ID}-es" PKG_L10N_FR_VENICE_ID="${PKG_L10N_VENICE_ID}-fr" PKG_L10N_IT_VENICE_ID="${PKG_L10N_VENICE_ID}-it" PKG_L10N_DE_VENICE_PROVIDE="$PKG_L10N_VENICE_ID" PKG_L10N_EN_VENICE_PROVIDE="$PKG_L10N_VENICE_ID" PKG_L10N_ES_VENICE_PROVIDE="$PKG_L10N_VENICE_ID" PKG_L10N_FR_VENICE_PROVIDE="$PKG_L10N_VENICE_ID" PKG_L10N_IT_VENICE_PROVIDE="$PKG_L10N_VENICE_ID" PKG_L10N_VENICE_DESCRIPTION="$GAME_NAME_VENICE - localization" PKG_L10N_DE_VENICE_DESCRIPTION="$PKG_L10N_VENICE_DESCRIPTION - German" PKG_L10N_EN_VENICE_DESCRIPTION="$PKG_L10N_VENICE_DESCRIPTION - English" PKG_L10N_ES_VENICE_DESCRIPTION="$PKG_L10N_VENICE_DESCRIPTION - Spanish" PKG_L10N_FR_VENICE_DESCRIPTION="$PKG_L10N_VENICE_DESCRIPTION - French" PKG_L10N_IT_VENICE_DESCRIPTION="$PKG_L10N_VENICE_DESCRIPTION - Italian" PKG_BIN_VENICE_ID="$GAME_ID_VENICE" PKG_BIN_VENICE_ARCH='32' PKG_BIN_VENICE_DESCRIPTION="$GAME_NAME_VENICE" PKG_BIN_VENICE_DEPS="$PKG_BIN_ID $PKG_DATA_VENICE_ID $PKG_L10N_VENICE_ID" # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Work around immediate crash config_file='engine.ini' if [ -e "$config_file" ]; then sed_pattern='2i9' sed --in-place "$sed_pattern" "$config_file" else cat > "$config_file" <<- 'EOF' 9 EOF fi ) # Include game icons PKG='PKG_DATA' icons_inclusion 'APP_MAIN' PKG='PKG_DATA_VENICE' icons_inclusion 'APP_VENICE' # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' PKG='PKG_BIN_VENICE' launchers_write 'APP_VENICE' # Build packages write_metadata build_pkg # Print instructions common_packages='PKG_DATA PKG_BIN' case "$(context_archive)" in ('ARCHIVE_BASE_MULTILANG_'*) case "${LANG%_*}" in ('fr') lang_string='version %s :' lang_de='allemande' lang_en='anglaise' lang_es='espagnole' lang_fr='française' lang_it='italienne' ;; ('en'|*) lang_string='%s version:' lang_de='German' lang_en='English' lang_es='Spanish' lang_fr='French' lang_it='Italian' ;; esac printf '\n' printf "$lang_string" "$lang_de" print_instructions $common_packages 'PKG_L10N_DE' printf "$lang_string" "$lang_en" print_instructions $common_packages 'PKG_L10N_EN' printf "$lang_string" "$lang_es" print_instructions $common_packages 'PKG_L10N_ES' printf "$lang_string" "$lang_fr" print_instructions $common_packages 'PKG_L10N_FR' printf "$lang_string" "$lang_it" print_instructions $common_packages 'PKG_L10N_IT' ;; ('ARCHIVE_BASE_FR_'*) print_instructions $common_packages 'PKG_L10N_FR' ;; ('ARCHIVE_BASE_EN_'*|*) print_instructions $common_packages 'PKG_L10N_EN' ;; esac GAME_NAME="$GAME_NAME_VENICE" common_packages='PKG_DATA_VENICE PKG_BIN_VENICE' case "$(context_archive)" in ('ARCHIVE_BASE_MULTILANG_'*) case "${LANG%_*}" in ('fr') lang_string='version %s :' lang_de='allemande' lang_en='anglaise' lang_es='espagnole' lang_fr='française' lang_it='italienne' ;; ('en'|*) lang_string='%s version:' lang_de='German' lang_en='English' lang_es='Spanish' lang_fr='French' lang_it='Italian' ;; esac printf '\n' printf "$lang_string" "$lang_de" print_instructions $common_packages 'PKG_L10N_DE_VENICE' printf "$lang_string" "$lang_en" print_instructions $common_packages 'PKG_L10N_EN_VENICE' printf "$lang_string" "$lang_es" print_instructions $common_packages 'PKG_L10N_ES_VENICE' printf "$lang_string" "$lang_fr" print_instructions $common_packages 'PKG_L10N_FR_VENICE' printf "$lang_string" "$lang_it" print_instructions $common_packages 'PKG_L10N_IT_VENICE' ;; ('ARCHIVE_BASE_FR_'*) print_instructions $common_packages 'PKG_L10N_FR_VENICE' ;; ('ARCHIVE_BASE_EN_'*|*) print_instructions $common_packages 'PKG_L10N_EN_VENICE' ;; esac # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-anno-1503.sh0000755000000000000000000001100714471751340013500 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2022, Antoine Le Gonidec # Copyright (c) 2016-2022, Mopi # Copyright (c) 2017-2022, Jacek Szafarkiewicz # 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. ### ### # Anno 1503 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220115.5 # Set game-specific variables GAME_ID='anno-1503' GAME_NAME='Anno 1503' ARCHIVE_BASE_EN_0='setup_anno_1503_2.0.0.5.exe' ARCHIVE_BASE_EN_0_MD5='a7b6aeb2c5f96e2fab12d1ef12f3b4af' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_SIZE='1600000' ARCHIVE_BASE_EN_0_VERSION='3.0.43-gog2.0.0.5' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/anno_1503_ad' ARCHIVE_BASE_FR_0='setup_anno_1503_french_2.0.0.5.exe' ARCHIVE_BASE_FR_0_MD5='b2ebc98d0dc97350ede75098633bfbd8' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_SIZE='1500000' ARCHIVE_BASE_FR_0_VERSION='3.0.43-gog2.0.0.5' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/anno_1503_ad' CONTENT_PATH_DEFAULT='app' ARCHIVE_DOC_L10N_FILES=' manual.pdf' ARCHIVE_GAME_BIN_FILES=' *.exe *.dll' ARCHIVE_GAME_L10N_FILES=' texte.dat toolgfx/bodenschtze.inc toolgfx/bodenschtze.tex toolgfx/mainmedium8.zei toolgfx/mainmedium.zei.old toolgfx/mainsmall8.zei toolgfx/pk_*.tex toolgfx/startup.tex videos/1001.bik videos/1002.bik videos/1004.bik videos/1005.bik videos/1006.bik videos/1007.bik videos/1009.bik help samples scenes speech' ARCHIVE_GAME_DATA_FILES=' anlagen.dat figuren*.dat instanthelplinks.txt videos/1000.bik videos/1003.bik videos/1008.bik data music profiles textures toolgfx' APP_MAIN_TYPE='wine' APP_MAIN_EXE='1503startup.exe' APP_MAIN_ICON='1503startup.exe' PACKAGES_LIST='PKG_BIN PKG_L10N PKG_DATA' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_ID_EN="${PKG_L10N_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDE="$PKG_L10N_ID" PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID $PKG_L10N_ID wine" # Work around missing background music # cf. https://bugs.winehq.org/show_bug.cgi?id=16096 APP_WINETRICKS="$APP_WINETRICKS directmusic" PKG_BIN_DEPS="$PKG_BIN_DEPS winetricks" # Use persistent storage for user data DATA_DIRS="$DATA_DIRS ./SaveGame" # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-anodyne.sh0000755000000000000000000000730614471751340013623 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Anodyne # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20211229.2 # Set game-specific variables GAME_ID='anodyne' GAME_NAME='Anodyne' ARCHIVE_BASE_0='1_6winanodyne.zip' ARCHIVE_BASE_0_MD5='5e7be131731a8073f3dbf4489d7e414a' ARCHIVE_BASE_0_VERSION='1.60-itch1' ARCHIVE_BASE_0_SIZE='110000' ARCHIVE_BASE_0_URL='https://han-tani.itch.io/anodyne' CONTENT_PATH_DEFAULT='windows' ARCHIVE_DOC_DATA_FILES=' README.txt' ARCHIVE_GAME_BIN_FILES=' Adobe?AIR *.dll *.exe' ARCHIVE_GAME_DATA_FILES=' icons js META-INF mimetype *.der *.dylib *.html *.png *.ssp4 *.swf *.txt' APP_MAIN_TYPE='wine' APP_MAIN_EXE='Anodyne.exe' APP_MAIN_ICONS_LIST='APP_MAIN_ICON_29 APP_MAIN_ICON_32 APP_MAIN_ICON_48 APP_MAIN_ICON_57 APP_MAIN_ICON_128 APP_MAIN_ICON_512' APP_MAIN_ICON_29='icons/IntraAIR29.png' APP_MAIN_ICON_32='icons/IntraAIR32.png' APP_MAIN_ICON_48='icons/IntraAIR48.png' APP_MAIN_ICON_57='icons/IntraAIR57.png' APP_MAIN_ICON_512='icons/IntraAIR512.png' APP_MAIN_ICON_128='icons/IntraAIR128.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Use persistent storage for saved games APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/.Anodyne' DATA_DIRS="$DATA_DIRS ./userdata" # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-anomaly-2.sh0000755000000000000000000001247614471751340013771 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Anomaly 2 # send your bug reports to contact@dotslashplay.it ### script_version=20231017.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='anomaly-2' GAME_NAME='Anomaly 2' ARCHIVE_BASE_LINUX_0_NAME='Anomaly2_Linux_1387299615.zip' ARCHIVE_BASE_LINUX_0_MD5='46f0ecd5363106e9eae8642836c29dfc' ARCHIVE_BASE_LINUX_0_SIZE='2500000' ARCHIVE_BASE_LINUX_0_VERSION='1.0-humble1' ARCHIVE_BASE_LINUX_0_URL='https://www.humblebundle.com/store/anomaly-2' ARCHIVE_BASE_WINDOWS_0_NAME='Anomaly2_Windows_1387299615.zip' ARCHIVE_BASE_WINDOWS_0_MD5='2b5ccffcbaee8cfebfd4bb74cacb9fbc' ARCHIVE_BASE_WINDOWS_0_SIZE='2500000' ARCHIVE_BASE_WINDOWS_0_VERSION='1.0-humble1' ARCHIVE_BASE_WINDOWS_0_URL='https://www.humblebundle.com/store/anomaly-2' CONTENT_PATH_DEFAULT_LINUX='Anomaly 2 Linux DRM-free' CONTENT_PATH_DEFAULT_WINDOWS='Anomaly 2 Windows DRM-free/2013-12-17 03-20' CONTENT_LIBS_BIN_FILES_LINUX=' libopenal.so.1' CONTENT_GAME_BIN_FILES_LINUX=' *.txt Anomaly2' CONTENT_GAME_BIN_FILES_WINDOWS=' *.exe *.dll *.txt' CONTENT_GAME_DATA_FILES=' *.dat *.idx *.str' APP_MAIN_EXE_LINUX='Anomaly2' APP_MAIN_EXE_WINDOWS='Anomaly 2.exe' # Packages PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_PROVIDES=" $PKG_DATA_ID" PKG_DATA_DESCRIPTION='data' PKG_BIN_ID="$GAME_ID" PKG_BIN_PROVIDES=" $PKG_BIN_ID" PKG_BIN_ARCH='32' ## Linux build PKG_DATA_ID_LINUX="${PKG_DATA_ID}-linux" PKG_BIN_ID_LINUX="${PKG_BIN_ID}-linux" PKG_BIN_DEPS_LINUX="$PKG_DATA_ID_LINUX" PKG_BIN_DEPENDENCIES_LIBRARIES_LINUX=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6' ## Windows build PKG_DATA_ID_WINDOWS="${PKG_DATA_ID}-windows" PKG_BIN_ID_WINDOWS="${PKG_BIN_ID}-windows" PKG_BIN_DEPS_WINDOWS="$PKG_DATA_ID_WINDOWS" # Share saved games and config between Linux and Windows engines APP_MAIN_PRERUN_LINUX="${APP_MAIN_PRERUN_LINUX:-}"' # Share saved games and config between Linux and Windows engines NEW_LAUNCH_REQUIRED=0 WINE_PERSISTENT_PATH="${USER_PERSISTENT_PATH}/wineprefix/users/${USER}/Application Data/11bitstudios/Anomaly 2" if [ -e "${HOME}/.Anomaly 2" ] && [ ! -h "${HOME}/.Anomaly 2" ]; then for file in \ config.bin \ DefaultUser \ iPhoneProfiles do if [ -e "${HOME}/.Anomaly 2/${file}" ]; then mkdir --parents "$WINE_PERSISTENT_PATH" cp --recursive "${HOME}/.Anomaly 2/${file}" "$WINE_PERSISTENT_PATH" fi done mv "${HOME}/.Anomaly 2" "${HOME}/.Anomaly 2.old" NEW_LAUNCH_REQUIRED=1 fi if [ ! -e "${HOME}/.Anomaly 2" ]; then rm --force "${HOME}/.Anomaly 2" mkdir --parents "$WINE_PERSISTENT_PATH" ln --symbolic "$WINE_PERSISTENT_PATH" "${HOME}/.Anomaly 2" fi if [ "$NEW_LAUNCH_REQUIRED" -eq 1 ]; then "$0" exit 0 fi ' WINE_PERSISTENT_DIRECTORIES="${WINE_PERSISTENT_DIRECTORIES:-}"' users/${USER}/Application Data/11bitstudios/Anomaly 2' # LD_PRELOAD shim working around infinite loading times PRELOAD_HACKS_LIST_LINUX=' HACK_TIMERFIX' HACK_TIMERFIX_NAME='timerfix' HACK_TIMERFIX_DESCRIPTION='LD_PRELOAD shim working around infinite loading times' HACK_TIMERFIX_PACKAGE='PKG_BIN' HACK_TIMERFIX_SOURCE=' #define _GNU_SOURCE #include #include #include #include #include static int (*_realSemTimedWait)(sem_t *, const struct timespec *) = NULL; int sem_timedwait(sem_t *sem, const struct timespec *abs_timeout) { if (abs_timeout->tv_nsec >= 1000000000) { ((struct timespec *)abs_timeout)->tv_nsec -= 1000000000; ((struct timespec *)abs_timeout)->tv_sec++; } return _realSemTimedWait(sem, abs_timeout); } __attribute__((constructor)) void init(void) { _realSemTimedWait = dlsym(RTLD_NEXT, "sem_timedwait"); } ' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Check for the presence of optional extra archives case "$(current_archive)" in ('ARCHIVE_BASE_LINUX_'*) ARCHIVE_OPTIONAL_ICONS_0_NAME='anomaly-2_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_0_MD5='73ddbd1651e08d6c8bb4735e5e0a4a81' ARCHIVE_OPTIONAL_ICONS_0_URL='https://downloads.dotslashplay.it/games/anomaly-2/' archive_initialize_optional \ 'ARCHIVE_ICONS' \ 'ARCHIVE_OPTIONAL_ICONS_0' ;; esac # Extract game data archive_extraction_default if archive_is_available 'ARCHIVE_ICONS'; then archive_extraction 'ARCHIVE_ICONS' fi # Include game data if archive_is_available 'ARCHIVE_ICONS'; then CONTENT_ICONS_DATA_PATH='.' CONTENT_ICONS_DATA_FILES=' 32x32 48x48 64x64 256x256' content_inclusion 'ICONS_DATA' 'PKG_DATA' "$(path_icons)" else case "$(current_archive)" in ('ARCHIVE_BASE_WINDOWS_'*) set_current_package 'PKG_DATA' icons_inclusion ;; esac fi content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-anomaly-defenders.sh0000755000000000000000000000613214471751340015557 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Anomaly Defenders # send your bug reports to contact@dotslashplay.it ### script_version=20230929.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='anomaly-defenders' GAME_NAME='Anomaly Defenders' ARCHIVE_BASE_ZIP_0_NAME='AnomalyDefenders_Linux_1402514865.zip' ARCHIVE_BASE_ZIP_0_MD5='430367c8228077e4c8af2f5e7f164f4e' ARCHIVE_BASE_ZIP_0_SIZE='640000' ARCHIVE_BASE_ZIP_0_VERSION='1.0-humble' ARCHIVE_BASE_ZIP_0_URL='https://www.humblebundle.com/store/anomaly-defenders' ARCHIVE_BASE_TARGZ_0_NAME='AnomalyDefenders_Linux_1402512837.tar.gz' ARCHIVE_BASE_TARGZ_0_MD5='35ccd57e8650dd53a09b1f1e088307cc' ARCHIVE_BASE_TARGZ_0_SIZE='640000' ARCHIVE_BASE_TARGZ_0_VERSION='1.0-humble' ARCHIVE_BASE_TARGZ_0_URL='https://www.humblebundle.com/store/anomaly-defenders' CONTENT_PATH_DEFAULT='AnomalyDefenders' CONTENT_LIBS_BIN_FILES=' libOpenAL.so' CONTENT_GAME_BIN_FILES=' AnomalyDefenders' CONTENT_GAME_DATA_FILES=' icon.png *.dat *.idx' CONTENT_DOC_DATA_FILES=' README Copyright license*' APP_MAIN_EXE='AnomalyDefenders' APP_MAIN_ICON='icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6' # LD_PRELOAD shim working around infinite loading times PRELOAD_HACKS_LIST=' HACK_TIMERFIX' HACK_TIMERFIX_NAME='timerfix' HACK_TIMERFIX_DESCRIPTION='LD_PRELOAD shim working around infinite loading times' HACK_TIMERFIX_PACKAGE='PKG_BIN' HACK_TIMERFIX_SOURCE=' #define _GNU_SOURCE #include #include #include #include #include static int (*_realSemTimedWait)(sem_t *, const struct timespec *) = NULL; int sem_timedwait(sem_t *sem, const struct timespec *abs_timeout) { if (abs_timeout->tv_nsec >= 1000000000) { ((struct timespec *)abs_timeout)->tv_nsec -= 1000000000; ((struct timespec *)abs_timeout)->tv_sec++; } return _realSemTimedWait(sem, abs_timeout); } __attribute__((constructor)) void init(void) { _realSemTimedWait = dlsym(RTLD_NEXT, "sem_timedwait"); } ' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-anomaly-warzone-earth.sh0000755000000000000000000000735014471751340016411 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # Anomaly: Warzone Earth # send your bug reports to contact@dotslashplay.it ### script_version=20230822.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='anomaly-warzone-earth' GAME_NAME='Anomaly: Warzone Earth' ARCHIVE_BASE_GOG_0='gog_anomaly_warzone_earth_2.0.0.3.sh' ARCHIVE_BASE_GOG_0_MD5='37b96b44b2dafde64ab364a11dcf9ad8' ARCHIVE_BASE_GOG_0_SIZE='440000' ARCHIVE_BASE_GOG_0_VERSION='1.0-gog2.0.0.3' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/anomaly_warzone_earth' ARCHIVE_BASE_HUMBLE_1='AnomalyWarzoneEarth-Installer_Humble_Linux_1364850491.zip' ARCHIVE_BASE_HUMBLE_1_MD5='acf5147293b42c7625aea6ad0e56afc4' ARCHIVE_BASE_HUMBLE_1_SIZE='870000' ARCHIVE_BASE_HUMBLE_1_VERSION='1.0-humble2' ARCHIVE_BASE_HUMBLE_1_URL='https://www.humblebundle.com/store/anomaly-warzone-earth' ARCHIVE_BASE_HUMBLE_0='AnomalyWarzoneEarth-Installer' ARCHIVE_BASE_HUMBLE_0_MD5='36d3fb101ab7c674d475b8f0b59d5e68' ARCHIVE_BASE_HUMBLE_0_SIZE='440000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0-humble1' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='data' CONTENT_GAME_BIN_FILES=' AnomalyWarzoneEarth' CONTENT_GAME_DATA_FILES=' icon.png *.idx *.dat' CONTENT_DOC_DATA_FILES=' README Copyright*' APP_MAIN_EXE='AnomalyWarzoneEarth' APP_MAIN_ICON='icon.png' PACKAGES_LIST='PKG_DATA PKG_BIN' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6' PRELOAD_HACKS_LIST=' HACK_LOADING_TIME' # LD_PRELOAD shim working around the infinite loading times HACK_LOADING_TIME_NAME='finite-loading-time' HACK_LOADING_TIME_DESCRIPTION='LD_PRELOAD shim working around the infinite loading times' HACK_LOADING_TIME_PACKAGE='PKG_BIN' HACK_LOADING_TIME_SOURCE=' #define _GNU_SOURCE #include #include #include #include #include static int (*_realSemTimedWait)(sem_t *, const struct timespec *) = NULL; int sem_timedwait(sem_t *sem, const struct timespec *abs_timeout) { if (abs_timeout->tv_nsec >= 1000000000) { ((struct timespec *)abs_timeout)->tv_nsec -= 1000000000; ((struct timespec *)abs_timeout)->tv_sec++; } return _realSemTimedWait(sem, abs_timeout); } __attribute__((constructor)) void init(void) { _realSemTimedWait = dlsym(RTLD_NEXT, "sem_timedwait"); } ' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Build and include the LD_PRELOAD shims PKG='PKG_BIN' hacks_inclusion_default # Extract game data archive_extraction_default case "$(context_archive)" in ('ARCHIVE_BASE_HUMBLE_1') ARCHIVE_INNER="${PLAYIT_WORKDIR}/gamedata/AnomalyWarzoneEarth-Installer" ## This MojoSetup installer is not using a Makeself wrapper. ARCHIVE_INNER_EXTRACTOR='bsdtar' archive_extraction 'ARCHIVE_INNER' rm "$ARCHIVE_INNER" ;; esac # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-another-lost-phone.sh0000755000000000000000000000513514471751340015712 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 # send your bug reports to contact@dotslashplay.it ### script_version=20230626.1 GAME_ID='another-lost-phone' GAME_NAME='Another Lost Phone: Lauraʼs Story' ARCHIVE_BASE_0='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='.' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-antichamber.sh0000755000000000000000000000561614471751340014445 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Antichamber # send your bug reports to contact@dotslashplay.it ### script_version=20230206.2 GAME_ID='antichamber' GAME_NAME='Antichamber' ARCHIVE_BASE_0='antichamber_1.01_linux_1392664980.sh' ARCHIVE_BASE_0_MD5='37bca01c411d813c8729259b7db2dba0' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='690000' ARCHIVE_BASE_0_VERSION='1.01-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/antichamber' CONTENT_PATH_DEFAULT='data' CONTENT_LIBS_BIN_PATH='data/x86/Binaries/Linux/lib' ## - The game binary is linked against libsteam_api.so, ## so we can not drop it. ## - The libSDL2_mixer-2.0.so.0 library is a custom build, ## it must be included to avoid the following error: ## undefined symbol: MinorityMix_SetPosition CONTENT_LIBS_BIN_FILES=' libPhysXCooking.so libPhysXCore.so libSDL2_mixer-2.0.so.0 libsteam_api.so libtcmalloc.so.0' CONTENT_GAME_BIN_PATH='data/x86' CONTENT_GAME_BIN_FILES=' Binaries/Linux/UDKGame-Linux' CONTENT_GAME_DATA_PATH='data/noarch' CONTENT_GAME_DATA_FILES=' Engine UDKGame AntichamberIcon.bmp AntichamberIcon.png' CONTENT_DOC_DATA_PATH='data/noarch' CONTENT_DOC_DATA_FILES=' README.linux BuildVersion.txt UpdateLog.txt' APP_MAIN_EXE='Binaries/Linux/UDKGame-Linux' APP_MAIN_ICON='noarch/AntichamberIcon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libogg.so.0 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libstdc++.so.6 libvorbisfile.so.3 libvorbis.so.0' # Run the game binary from its parent directory APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Run the game binary from its parent directory cd "$(dirname "$APP_EXE")" APP_EXE=$(basename "$APP_EXE")' # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icon PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-ape-out.sh0000755000000000000000000000427314471751340013540 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Daguhh set -o errexit ### # Ape Out # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20221203.1 # Set game-specific variables GAME_ID='ape-out' GAME_NAME="Ape Out" ARCHIVE_BASE_0='windows.zip' ARCHIVE_BASE_0_URL='https://devolverdigital.itch.io/ape-out' ARCHIVE_BASE_0_MD5='cccf8136c915b46691edd440e7c7f269' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_SIZE='1100000' ARCHIVE_BASE_0_TYPE='zip' ARCHIVE_GAME_BIN_PATH='windows' ARCHIVE_GAME_BIN_FILES='ApeOut.exe GameAssembly.dll SymbolMap UnityCrashHandler64.exe UnityPlayer.dll' ARCHIVE_GAME_DATA_PATH='windows' ARCHIVE_GAME_DATA_FILES='ApeOut_Data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='ApeOut.exe' APP_MAIN_ICON='ApeOut.exe' # Use a per-session dedicated file for logs APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a per-session dedicated file for logs mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Extract icons PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-apocalipsis.sh0000755000000000000000000001010514471751340014464 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Apocalipsis # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210414.5 # Set game-specific variables GAME_ID='apocalipsis' GAME_NAME='Apocalipsis' ARCHIVES_LIST=' ARCHIVE_BASE_0' ARCHIVE_BASE_0='setup_apocalipsis_wormwood_edition_2.0.0.2.exe' ARCHIVE_BASE_0_MD5='546af1780657e64f0d2463b2fb5617dd' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='4100000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.2' ARCHIVE_BASE_0_URL='https://www.gog.com/game/apocalipsis_wormwood_edition' ARCHIVE_GAME_BIN_PATH='app' ARCHIVE_GAME_BIN_FILES='apocalipsis.exe apocalipsis_data/plugins apocalipsis_data/mono steam_api.dll' ARCHIVE_GAME_DATA_PATH='app' ARCHIVE_GAME_DATA_FILES='apocalipsis_data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='apocalipsis.exe' APP_MAIN_ICON='apocalipsis.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Use persistent storage for saved games DATA_FILES="${DATA_FILES} ./userdata/savegame" APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use persistent storage for saved games userdata_path_prefix="$WINEPREFIX/drive_c/users/$USER/Application Data/Apocalipsis" userdata_path_persistent="$PATH_PREFIX/userdata" mkdir --parents "$userdata_path_persistent" if [ ! -h "$userdata_path_prefix" ]; then if [ -d "$userdata_path_prefix" ]; then # Migrate existing user data to the persistent path mv "$userdata_path_prefix"/* "$userdata_path_persistent" rmdir "$userdata_path_prefix" fi # Create link from prefix to persistent path mkdir --parents "$(dirname "$userdata_path_prefix")" ln --symbolic "$userdata_path_persistent" "$userdata_path_prefix" fi' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-aquamarine.sh0000755000000000000000000000620614471751340014307 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Aquamarine # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220329.1 # Set game-specific variables GAME_ID='aquamarine' GAME_NAME='Aquamarine' ARCHIVE_BASE_6='aquamarine_1_0_8_5_54515.sh' ARCHIVE_BASE_6_MD5='7978066a0495d061245c4ae23c968874' ARCHIVE_BASE_6_TYPE='mojosetup' ARCHIVE_BASE_6_SIZE='730000' ARCHIVE_BASE_6_VERSION='1.0.8.5-gog54515' ARCHIVE_BASE_6_URL='https://www.gog.com/game/aquamarine' ARCHIVE_BASE_5='aquamarine_1_0_8_4_54429.sh' ARCHIVE_BASE_5_MD5='bdec12ffb5efb87a4cf6187ae204c9a2' ARCHIVE_BASE_5_TYPE='mojosetup' ARCHIVE_BASE_5_SIZE='730000' ARCHIVE_BASE_5_VERSION='1.0.8.4-gog54429' ARCHIVE_BASE_4='aquamarine_1_0_8_3_54388.sh' ARCHIVE_BASE_4_MD5='58a324f7ee185f7ee2d73724d1aa8806' ARCHIVE_BASE_4_TYPE='mojosetup' ARCHIVE_BASE_4_SIZE='730000' ARCHIVE_BASE_4_VERSION='1.0.8.3-gog54388' ARCHIVE_BASE_3='aquamarine_1_0_7_4_54070.sh' ARCHIVE_BASE_3_MD5='00a23ecfa6d19d1c7d27b4baf06ebfe1' ARCHIVE_BASE_3_TYPE='mojosetup' ARCHIVE_BASE_3_SIZE='650000' ARCHIVE_BASE_3_VERSION='1.0.7.4-gog54070' ARCHIVE_BASE_2='aquamarine_1_0_6_53400.sh' ARCHIVE_BASE_2_MD5='2182230847d3d09a813ae7bdbc7b3b25' ARCHIVE_BASE_2_TYPE='mojosetup' ARCHIVE_BASE_2_SIZE='810000' ARCHIVE_BASE_2_VERSION='1.0.6-gog53400' ARCHIVE_BASE_1='aquamarine_1_0_2_53166.sh' ARCHIVE_BASE_1_MD5='f9698d39f38b31ed45fbacb807522c1e' ARCHIVE_BASE_1_TYPE='mojosetup' ARCHIVE_BASE_1_SIZE='810000' ARCHIVE_BASE_1_VERSION='1.0.2-gog53166' ARCHIVE_BASE_0='aquamarine_1_0_0_53074.sh' ARCHIVE_BASE_0_MD5='c4ca19389d9fe833a009f457684671d1' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='810000' ARCHIVE_BASE_0_VERSION='1.0.0-gog53074' UNITY3D_NAME='Aquamarine' CONTENT_PATH_DEFAULT='data/noarch/game' ARCHIVE_GAME_BIN_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Plugins GameAssembly.so UnityPlayer.so" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6" # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Get game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" #print instructions print_instructions exit 0 games/play-aquaria.sh0000755000000000000000000000442314471751340013606 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Aquaria # send your bug reports to contact@dotslashplay.it ### script_version=20230205.1 GAME_ID='aquaria' GAME_NAME='Aquaria' ARCHIVE_BASE_1='gog_aquaria_2.0.0.5.sh' ARCHIVE_BASE_1_MD5='4235398debdf268f233881fade9e0530' ARCHIVE_BASE_1_TYPE='mojosetup' ARCHIVE_BASE_1_SIZE='240000' ARCHIVE_BASE_1_VERSION='1.1.3-gog2.0.0.5' ARCHIVE_BASE_1_URL='https://www.gog.com/game/aquaria' ARCHIVE_BASE_0='gog_aquaria_2.0.0.4.sh' ARCHIVE_BASE_0_MD5='1810de0d68028c6ec01d33181086180d' ARCHIVE_BASE_0_TYPT='mojosetup' ARCHIVE_BASE_0_SIZE='280000' ARCHIVE_BASE_0_VERSION='1.1.3-gog2.0.0.4' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' config aquaria *.xml' CONTENT_GAME_DATA_FILES=' _mods data gfx mus scripts sfx vox aquaria.png' CONTENT_DOC_DATA_FILES=' docs *.txt' USER_PERSISTENT_DIRECTORIES=' config' USER_PERSISTENT_FILES=' *.xml' APP_MAIN_EXE='aquaria' APP_MAIN_ICON='aquaria.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libm.so.6 libopenal.so.1 libSDL-1.2.so.0 libstdc++.so.6' # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg #print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-aragami.sh0000755000000000000000000000636214471751340013570 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Jacek Szafarkiewicz # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Aragami # send your bug reports to contact@dotslashplay.it ### script_version=20231017.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='aragami' GAME_NAME='Aragami' # Archives ## Base game ARCHIVE_BASE_GOG_1_NAME='aragami_en_01_09_20943.sh' ARCHIVE_BASE_GOG_1_MD5='46c8315350a4036dcc09b6c3946ddc02' ARCHIVE_BASE_GOG_1_SIZE='6800000' ARCHIVE_BASE_GOG_1_VERSION='01.09-gog20943' ARCHIVE_BASE_GOG_1_URL='https://www.gog.com/game/aragami' ARCHIVE_BASE_GOG_0_NAME='gog_aragami_2.9.0.12.sh' ARCHIVE_BASE_GOG_0_MD5='42d0952de9b0373786f2902aa596b4ff' ARCHIVE_BASE_GOG_0_SIZE='6800000' ARCHIVE_BASE_GOG_0_VERSION='01.08-gog2.9.0.12' ## This installer used to be sold at humblebundle.com, but they now sell Steam keys only. ARCHIVE_BASE_HUMBLE_0_NAME='aragami_01_08_Linux.zip' ARCHIVE_BASE_HUMBLE_0_MD5='4be0b7f674eec62184df216fcaba77b5' ARCHIVE_BASE_HUMBLE_0_SIZE='6800000' ARCHIVE_BASE_HUMBLE_0_VERSION='01.08-humble170503' ## Nightfall expansion ## TODO: The expansion content should be installed using a dedicated package. ARCHIVE_OPTIONAL_NIGHTFALL_0_NAME='aragami_nightfall_dlc_en_gog_1_21278.sh' ARCHIVE_OPTIONAL_NIGHTFALL_0_MD5='40920a28f030147a524e5ac89e2cf14b' ARCHIVE_OPTIONAL_NIGHTFALL_0_SIZE='7400000' ARCHIVE_OPTIONAL_NIGHTFALL_0_URL='https://www.gog.com/game/aragami_nightfall' UNITY3D_NAME='Aragami' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='.' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Check for the presence of optional extra archives archive_initialize_optional \ 'ARCHIVE_NIGHTFALL' \ 'ARCHIVE_OPTIONAL_NIGHTFALL_0' # Extract game data archive_extraction_default if archive_is_available 'ARCHIVE_NIGHTFALL' ; then archive_extraction 'ARCHIVE_NIGHTFALL' fi # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN32' launchers_write set_current_package 'PKG_BIN64' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-arcanum.sh0000755000000000000000000000751614471751340013617 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Arcanum # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220712.1 GAME_ID='arcanum' GAME_NAME='Arcanum: Of Steamworks and Magick Obscura' ARCHIVE_BASE_2='setup_arcanum_-_of_steamworks_and_magick_obscura_1.0.7.4_hotfix_(24155).exe' ARCHIVE_BASE_2_MD5='6d14d07f7cc8c9823cba5322cf2336f4' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_SIZE='1200000' ARCHIVE_BASE_2_VERSION='1.0.7.4-gog24155' ARCHIVE_BASE_2_URL='https://www.gog.com/game/arcanum_of_steamworks_and_magick_obscura' ARCHIVE_BASE_1='setup_arcanum_-_of_steamworks_and_magick_obscura_1.0.7.4_(19476).exe' ARCHIVE_BASE_1_MD5='298a3315baebf40f3cc6cee4acae9947' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='1200000' ARCHIVE_BASE_1_VERSION='1.0.7.4-gog19476' ARCHIVE_BASE_0='setup_arcanum_2.0.0.15.exe' ARCHIVE_BASE_0_MD5='c09523c61edd18abb97da97463e07a88' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1200000' ARCHIVE_BASE_0_VERSION='1.0.7.4-gog2.0.0.15' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' ARCHIVE_DOC_DATA_FILES=' *.doc *.htm *.pdf *.txt documents' ARCHIVE_GAME_BIN_FILES=' *.asi *.cfg *.dll *.exe *.inf' ARCHIVE_GAME_DATA_FILES=' *.dat data modules' ARCHIVE_DOC_DATA_PATH="${CONTENT_PATH_DEFAULT}/__support/app" ARCHIVE_DOC_DATA_FILES=' eula.*' APP_MAIN_TYPE='wine' APP_MAIN_EXE='arcanum.exe' APP_MAIN_ICON="${CONTENT_PATH_DEFAULT}/arcanum.exe" APP_MAIN_ICON_0="${CONTENT_PATH_DEFAULT_0}/arcanum.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ID="$GAME_ID" PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Disable 3D acceleration # cf. https://bugs.winehq.org/show_bug.cgi?id=23676 - Arcanum essentially unusable due to graphics errors APP_MAIN_OPTIONS="$APP_MAIN_OPTIONS -no3d" # In some archives, the game binary is compressed using UPX SCRIPT_DEPS='upx' # Use persistent storage for user data DATA_DIRS='data modules/arcanum/maps modules/arcanum/saves' DATA_FILES='*.cfg' # Set up a WINE virtual desktop on first launch, using the current desktop resolution PKG_BIN_DEPS="$PKG_BIN_DEPS winetricks xrandr sed" sed_expression='s/.*primary.* ([0-9]+x[0-9]+).*/\1/p' sed_options="--regexp-extended --silent --expression='$sed_expression'" APP_WINETRICKS="$APP_WINETRICKS vd=\$(LANG=C xrandr | sed $sed_options)" # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Decompress UPX-packed game binary ## application_exe fails if PKG is not explicitely set ## cf. https://forge.dotslashplay.it/play.it/scripts/-/issues/322 PKG='PKG_BIN' content_path=$(content_path_default) application_exe=$(application_exe 'APP_MAIN') binary_file="${PLAYIT_WORKDIR}/gamedata/${content_path}/${application_exe}" if upx -t "$binary_file" >/dev/null 2>&1; then upx -d "$binary_file" >/dev/null fi # Include game icon PKG='PKG_DATA' icons_get_from_workdir 'APP_MAIN' # Include game data prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-arise-a-simple-story.sh0000755000000000000000000000511214471751340016145 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Arise: A Simple Story # send your bug reports to contact@dotslashplay.it ### script_version=20230709.1 GAME_ID='arise-a-simple-story' GAME_NAME='Arise: A Simple Story' ARCHIVE_BASE_0='setup_arise_a_simple_story_1.20.3_(64bit)_(53242).exe' ARCHIVE_BASE_0_MD5='7b0ce5207861d990aa4d2c4ba9baefb1' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_arise_a_simple_story_1.20.3_(64bit)_(53242)-1.bin' ARCHIVE_BASE_0_PART1_MD5='a364d73d653de062ff7f2808614bd6ef' ARCHIVE_BASE_0_PART2='setup_arise_a_simple_story_1.20.3_(64bit)_(53242)-2.bin' ARCHIVE_BASE_0_PART2_MD5='ab2a758bd1885455e45336ba70cbc018' ARCHIVE_BASE_0_SIZE='5800000' ARCHIVE_BASE_0_VERSION='1.20.3-gog53242' ARCHIVE_BASE_0_URL='https://www.gog.com/game/arise_a_simple_story' UNREALENGINE4_NAME='arise' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" engine ${UNREALENGINE4_NAME}/binaries ${UNREALENGINE4_NAME}/plugins ${UNREALENGINE4_NAME}.exe" CONTENT_GAME_DATA_FILES=" ${UNREALENGINE4_NAME}" WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=" users/\${USER}/AppData/Roaming/${UNREALENGINE4_NAME}/Saved" APP_MAIN_EXE="${UNREALENGINE4_NAME}.exe" APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=101' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' # Install required Microsoft Visual C++ libraries APP_WINETRICKS="${APP_WINETRICKS:-} vcrun2019" # 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-armikrog.sh0000755000000000000000000000753114471751340014001 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Anna Lea # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Armikrog # send your bug reports to contact@dotslashplay.it ### script_version=20230918.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='armikrog' GAME_NAME='Armikrog' ARCHIVE_BASE_LINUX_0_NAME='gog_armikrog_2.5.0.6.sh' ARCHIVE_BASE_LINUX_0_MD5='4ca9ac6d05ac66c18229e41da6fd89dd' ARCHIVE_BASE_LINUX_0_SIZE='2900000' ARCHIVE_BASE_LINUX_0_VERSION='2016.01.11-gog2.5.0.6' ARCHIVE_BASE_LINUX_0_URL='https://www.gog.com/game/armikrog' ## Support for the Windows build is provided to work around a double cursor display bug on the Linux build. ## cf. https://forge.dotslashplay.it/play.it/games/-/issues/778 ARCHIVE_BASE_WINDOWS_0_NAME='setup_armikrog_1.05_(20650).exe' ARCHIVE_BASE_WINDOWS_0_MD5='9b18bfd56117bcdbd95434203303b941' ARCHIVE_BASE_WINDOWS_0_TYPE='innosetup' ARCHIVE_BASE_WINDOWS_0_SIZE='2900000' ARCHIVE_BASE_WINDOWS_0_VERSION='1.05-gog20650' ARCHIVE_BASE_WINDOWS_0_URL='https://www.gog.com/game/armikrog' UNITY3D_NAME_LINUX='Armikrog' UNITY3D_NAME_WINDOWS='armikrog' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT_LINUX='data/noarch/game' CONTENT_PATH_DEFAULT_WINDOWS='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/PencilTestStudios/Armikrog' # Packages PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_PROVIDES=" $PKG_DATA_ID" PKG_DATA_DESCRIPTION='data' PKG_BIN_ID="$GAME_ID" PKG_BIN_PROVIDES=" $PKG_BIN_ID" PKG_BIN32_PROVIDES=" $PKG_BIN_ID" PKG_BIN64_PROVIDES=" $PKG_BIN_ID" ## Linux build PACKAGES_LIST_LINUX='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID_LINUX="${PKG_DATA_ID}-linux" PKG_BIN32_ID_LINUX="${PKG_BIN_ID}-linux" PKG_BIN64_ID_LINUX="${PKG_BIN_ID}-linux" PKG_BIN32_ARCH_LINUX='32' PKG_BIN64_ARCH_LINUX='64' PKG_BIN_DEPS_LINUX="$PKG_DATA_ID_LINUX" PKG_BIN32_DEPS_LINUX="$PKG_BIN_DEPS_LINUX" PKG_BIN64_DEPS_LINUX="$PKG_BIN_DEPS_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 libgio-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgthread-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXext.so.6 libXrandr.so.2' PKG_BIN32_DEPENDENCIES_LIBRARIES_LINUX="$PKG_BIN_DEPENDENCIES_LIBRARIES_LINUX" PKG_BIN64_DEPENDENCIES_LIBRARIES_LINUX="$PKG_BIN_DEPENDENCIES_LIBRARIES_LINUX" ## Windows build PACKAGES_LIST_WINDOWS='PKG_BIN PKG_DATA' PKG_DATA_ID_WINDOWS="${PKG_DATA_ID}-windows" PKG_BIN_ID_WINDOWS="${PKG_BIN_ID}-windows" PKG_BIN_ARCH_WINDOWS='32' PKG_BIN_DEPS_WINDOWS="$PKG_DATA_ID_WINDOWS" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers case "$(context_archive)" in ('ARCHIVE_BASE_LINUX_'*) PKG='PKG_BIN32' launchers_write PKG='PKG_BIN64' launchers_write ;; ('ARCHIVE_BASE_WINDOWS_'*) PKG='PKG_BIN' launchers_write ;; esac # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-art-of-fighting-2.sh0000755000000000000000000000647314471751340015316 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 HS-157 # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Art of Fighting 2 # send your bug reports to contact@dotslashplay.it ### script_version=20231110.6 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='art-of-fighting-2' GAME_NAME='Art of Fighting 2' ## This game is no longer available for sale from Humble Store. ARCHIVE_BASE_0_NAME='ArtOfFighting2_jan2016.sh' ARCHIVE_BASE_0_MD5='f50a3d75ecea5a1fbbfde30cd876d674' ARCHIVE_BASE_0_SIZE='44000' ARCHIVE_BASE_0_VERSION='1.0-humble.2016.01' CONTENT_PATH_DEFAULT='data' CONTENT_LIBS_BIN_FILES=' libRocketControls.so.1 libRocketCore.so.1 libRocketDebugger.so.1' ## Using system-provided SDL2 instead of the shipped one, the game menu fails to render. CONTENT_LIBS_BIN_FILES="${CONTENT_LIBS_BIN_FILES:-} libSDL2-2.0.so.0" CONTENT_LIBS_BIN32_PATH="${CONTENT_PATH_DEFAULT}/x86/lib" CONTENT_LIBS_BIN32_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_LIBS_BIN64_PATH="${CONTENT_PATH_DEFAULT}/x86_64/lib64" CONTENT_LIBS_BIN64_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_GAME_BIN32_PATH="${CONTENT_PATH_DEFAULT}/x86" CONTENT_GAME_BIN32_FILES=' NeogeoEmu.bin.x86' CONTENT_GAME_BIN64_PATH="${CONTENT_PATH_DEFAULT}/x86_64" CONTENT_GAME_BIN64_FILES=' NeogeoEmu.bin.x86_64' CONTENT_GAME_DATA_PATH="${CONTENT_PATH_DEFAULT}/noarch" ## TODO: Check if the shipped .ttf fonts could be replaced by system-provided ones. CONTENT_GAME_DATA_FILES=' *.brm *.dat *.ini *.png *.rcss *.rml *.tga *.ttf *.txt *.wav *.xor *.zip' APP_MAIN_EXE_BIN32='NeogeoEmu.bin.x86' APP_MAIN_EXE_BIN64='NeogeoEmu.bin.x86_64' APP_MAIN_ICON='noarch/ArtOfFighting2.png' ## The shipped build of SDL2 has no support for the wayland backend. APP_MAIN_PRERUN='# The shipped build of SDL2 has no support for the wayland backend if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' USER_PERSISTENT_FILES=' *.ini *.rml *.txt' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libfreetype.so.6 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' launchers_write set_current_package 'PKG_BIN32' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-as-far-as-the-eye.sh0000755000000000000000000000353014471751340015271 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # As Far As The Eye # send your bug reports to contact@dotslashplay.it ### script_version=20231112.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='as-far-as-the-eye' GAME_NAME='As Far As The Eye' ARCHIVE_BASE_0_NAME='as_far_as_the_eye_1_1_1_44514.sh' ARCHIVE_BASE_0_MD5='577c7175488d34cbcf374bbbce720921' ARCHIVE_BASE_0_SIZE='890000' ARCHIVE_BASE_0_VERSION='1.1.1-gog44514' ARCHIVE_BASE_0_URL='https://www.gog.com/game/as_far_as_the_eye' UNITY3D_NAME='AFATE' ## No shipped plugin should be included. UNITY3D_PLUGINS=' ' CONTENT_PATH_DEFAULT='data/noarch/game' FAKE_HOME_PERSISTENT_DIRECTORIES=' My Games/A FATE' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-ascendant.sh0000755000000000000000000000547214471751340014130 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Ascendant # send your bug reports to contact@dotslashplay.it ### script_version=20231015.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='ascendant' GAME_NAME='Ascendant' ARCHIVE_BASE_0_NAME='gog_ascendant_2.2.0.7.sh' ARCHIVE_BASE_0_MD5='8cdcd59a2f8363b7237e9cbe2675adda' ARCHIVE_BASE_0_SIZE='2400000' ARCHIVE_BASE_0_VERSION='1.2.2-gog2.2.0.7' ARCHIVE_BASE_0_URL='https://www.gog.com/game/ascendant' UNITY3D_NAME='Ascendant' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgthread-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXext.so.6 libXrandr.so.2' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "$PLAYIT_WORKDIR/gamedata/$(content_path_default)" # Work around the massive files duplication between the 32-bit and 64-bit builds ## Merge assets directories for the 32-bit and 64-bit builds UNITY3D_NAME_64BIT='Ascendant_64' cp --force --recursive --link "${UNITY3D_NAME_64BIT}_Data"/* "$(unity3d_name)_Data" rm --force --recursive "${UNITY3D_NAME_64BIT}_Data" ## Rename the 64-bit binary mv "${UNITY3D_NAME_64BIT}.x86_64" "$(unity3d_name).x86_64" ) # Include game data PKG='PKG_DATA' icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN32' launchers_write PKG='PKG_BIN64' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-ash-of-gods.sh0000755000000000000000000000460514471751340014274 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Ash of Gods # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220810.2 GAME_ID='ash-of-gods' GAME_NAME='Ash of Gods' UNITY3D_NAME='terminus' ARCHIVE_BASE_0='ash_of_gods_1_4_39_25313.sh' ARCHIVE_BASE_0_MD5='a2e609b21ac81df1ecb9c74df5806087' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='3600000' ARCHIVE_BASE_0_VERSION='1.4.39-gog25313' ARCHIVE_BASE_0_URL='https://www.gog.com/game/ash_of_gods' CONTENT_PATH_DEFAULT='data/noarch/game' ARCHIVE_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86" # Some 64-bit libraries are included at the root of terminus_Data/Plugins # in addition to the usual x86_64 subdirectory ARCHIVE_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64 ${UNITY3D_NAME}_Data/Plugins/*.so" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6 libgtk-x11-2.0.so.0 libz.so.1 libgdk_pixbuf-2.0.so.0 libgobject-2.0.so.0 libglib-2.0.so.0" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.17' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icon PKG='PKG_DATA' icons_inclusion # Include game data prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-assassins-creed-1.sh0000755000000000000000000001207314471751340015410 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Assassin's Creed # send your bug reports to contact@dotslashplay.it ### script_version=20230929.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='assassins-creed-1' GAME_NAME='Assassinʼs Creed' ARCHIVE_BASE_EN_0_NAME='setup_assassins_creed_1.02_v2_(28524).exe' ARCHIVE_BASE_EN_0_MD5='b14aa9508ce9653597558a6d834e2766' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_PART1_NAME='setup_assassins_creed_1.02_v2_(28524)-1.bin' ARCHIVE_BASE_EN_0_PART1_MD5='08f2ac5b1c558483ea27c921a7d7aad7' ARCHIVE_BASE_EN_0_PART2_NAME='setup_assassins_creed_1.02_v2_(28524)-2.bin' ARCHIVE_BASE_EN_0_PART2_MD5='150870977feb60c9f344e35d220e1198' ARCHIVE_BASE_EN_0_SIZE='7200000' ARCHIVE_BASE_EN_0_VERSION='1.02-gog28524' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/assassins_creed_directors_cut' ARCHIVE_BASE_FR_0_NAME='setup_assassins_creed_1.02_v2_(french)_(28524).exe' ARCHIVE_BASE_FR_0_MD5='eb346d8ec12bb055f941446d24207dbd' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_PART1_NAME='setup_assassins_creed_1.02_v2_(french)_(28524)-1.bin' ARCHIVE_BASE_FR_0_PART1_MD5='08f2ac5b1c558483ea27c921a7d7aad7' ARCHIVE_BASE_FR_0_PART2_NAME='setup_assassins_creed_1.02_v2_(french)_(28524)-2.bin' ARCHIVE_BASE_FR_0_PART2_MD5='2e31309a834daa7c7640a4848e701574' ARCHIVE_BASE_FR_0_SIZE='7200000' ARCHIVE_BASE_FR_0_VERSION='1.02-gog28524' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/assassins_creed_directors_cut' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' assassinscreed_dx10.exe assassinscreed_dx9.exe assassinscreed_game.exe binkw32.dll eax.dll' CONTENT_GAME_L10N_FILES=' datapc_streamedsounds???.forge' CONTENT_GAME_DATA_FILES=' *.forge defaultbindings.map resources videos' CONTENT_DOC_L10N_FILES_EN=' manual eula/english* readme/english*' CONTENT_DOC_L10N_FILES_FR=' manual eula/french* readme/french*' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=" users/\${USER}/AppData/Roaming/Ubisoft/Assassin's Creed" APP_MAIN_EXE='assassinscreed_dx9.exe' APP_MAIN_ICON='assassinscreed_game.exe' PACKAGES_LIST='PKG_L10N PKG_DATA PKG_BIN' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_ID_EN="${PKG_L10N_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID $PKG_L10N_ID" # Ensure ability fo fully control the camera with the mouse # cf. https://appdb.winehq.org/objectManager.php?sClass=version&iId=28057#notes registry_dump_mouse_grab_file='registry-dumps/mouse-grab.reg' registry_dump_mouse_grab_content='Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Wine\X11 Driver] "GrabFullscreen"="Y"' CONTENT_GAME_BIN_FILES="${CONTENT_GAME_BIN_FILES:-} $registry_dump_mouse_grab_file" APP_REGEDIT="${APP_REGEDIT:-} $registry_dump_mouse_grab_file" SCRIPT_DEPS="${SCRIPT_DEPS:-} iconv" # Set game text language registry_dump_language_file='registry-dumps/mouse-grab.reg' registry_dump_language_content_EN='Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\Software\Ubisoft\Assassin'\''s Creed] "Language"="English"' registry_dump_language_content_FR='Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\Software\Ubisoft\Assassin'\''s Creed] "Language"="French"' CONTENT_L10N_DATA_FILES="${CONTENT_L10N_DATA_FILES:-} $registry_dump_language_file" APP_REGEDIT="${APP_REGEDIT:-} $registry_dump_language_file" 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Ensure ability fo fully control the camera with the mouse mkdir --parents "$(dirname "$registry_dump_mouse_grab_file")" printf '%s' "$registry_dump_mouse_grab_content" | \ iconv --from-code=UTF-8 --to-code=UTF-16 --output="$registry_dump_mouse_grab_file" # Set game text language registry_dump_language_content=$(context_value 'registry_dump_language_content') mkdir --parents "$(dirname "$registry_dump_language_file")" printf '%s' "$registry_dump_language_content" | \ iconv --from-code=UTF-8 --to-code=UTF-16 --output="$registry_dump_language_file" ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-assault-android-cactus.sh0000755000000000000000000000535214471751340016537 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Assault Android Cactus # send your bug reports to contact@dotslashplay.it ### script_version=20230627.1 GAME_ID='assault-android-cactus' GAME_NAME='Assault Android Cactus' ## This archive is no longer available from Playism, ## as they turned their store into yet another Steam keys reseller. ARCHIVE_BASE_1='AssaultAndroidCactus_linux_20200121.zip' ARCHIVE_BASE_1_MD5='015e7a107514339abfbd05d831bc9e91' ARCHIVE_BASE_1_SIZE='1600000' ARCHIVE_BASE_1_VERSION='2020.01.21-playism' ARCHIVE_BASE_0='AssaultAndroidCactus_linux_Ver1.0_0401.zip' ARCHIVE_BASE_0_MD5='7a6e18fd525c46603cdd3f19f945d44b' ARCHIVE_BASE_0_SIZE='1400000' ARCHIVE_BASE_0_VERSION='1.0.0401-playism' UNITY3D_NAME='cactus' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-astrologaster.sh0000755000000000000000000000645514471751340015063 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Astrologaster # build native Linux packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210331.7 # Set game-specific variables GAME_ID='astrologaster' GAME_NAME='Astrologaster' ARCHIVE_ITCH='AstrologasterWindows.zip' ARCHIVE_ITCH_URL='https://nyamyam.itch.io/astrologaster' ARCHIVE_ITCH_MD5='049626f1818a1fdd828c3cdadd2052a9' ARCHIVE_ITCH_SIZE='710000' ARCHIVE_ITCH_VERSION='1.6.0-itch1' ARCHIVE_GAME_BIN_PATH='AstrologasterWindows' ARCHIVE_GAME_BIN_FILES='Astrologaster.exe glew32.dll SDL2.dll' ARCHIVE_GAME_DATA_PATH='AstrologasterWindows' ARCHIVE_GAME_DATA_FILES='Binary' DATA_DIRS='./Save' APP_MAIN_TYPE='wine' APP_MAIN_EXE='Astrologaster.exe' APP_MAIN_ICON='Astrologaster.exe' PACKAGES_LIST='PKG_DATA PKG_BIN' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" set_standard_permissions "$PLAYIT_WORKDIR/gamedata" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-asura.sh0000755000000000000000000000556014471751340013301 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Asura # send your bug reports to contact@dotslashplay.it ### script_version=20230222.3 GAME_ID='asura' GAME_NAME='Asura' ARCHIVE_BASE_0='asura_en_29046_16209.sh' ARCHIVE_BASE_0_MD5='cbfe1067fdf0cfe3e8361d08df55787c' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='1100000' ARCHIVE_BASE_0_VERSION='29046-gog16209' ARCHIVE_BASE_0_URL='https://www.gog.com/game/asura' UNITY3D_NAME='AsuraVengeance' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN32_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins/x86" CONTENT_LIBS_BIN32_FILES=" ScreenSelector.so" CONTENT_LIBS_BIN64_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_LIBS_BIN64_FILES=" ScreenSelector.so" CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data/Managed ${UNITY3D_NAME}_Data/Mono/etc ${UNITY3D_NAME}_Data/Resources ${UNITY3D_NAME}_Data/StreamingAssets ${UNITY3D_NAME}_Data/mainData ${UNITY3D_NAME}_Data/*.assets ${UNITY3D_NAME}_Data/*.png ${UNITY3D_NAME}_Data/*.resource" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-atlantis-1.sh0000755000000000000000000000670014471751340014140 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Atlantis 1 # send your bug reports to contact@dotslashplay.it ### script_version=20230929.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='atlantis-1' GAME_NAME='Atlantis: The Lost Tales' ARCHIVE_BASE_EN_0_NAME='setup_atlantis_the_lost_tales_2.0.0.15.exe' ARCHIVE_BASE_EN_0_MD5='287170bea9041b4e29888d97f87eb9fc' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_SIZE='1900000' ARCHIVE_BASE_EN_0_VERSION='1.0-gog2.0.0.15' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/atlantis_the_lost_tales' ARCHIVE_BASE_FR_0_NAME='setup_atlantis_the_lost_tales_french_2.1.0.15.exe' ARCHIVE_BASE_FR_0_MD5='0cb6b037a457d35dacd23e1f22aea57b' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_SIZE='1900000' ARCHIVE_BASE_FR_0_VERSION='1.0-gog2.1.0.15' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/atlantis_the_lost_tales' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' *.exe *.dll' CONTENT_GAME_L10N_FILES=' images/end.tga scenar sprlist wav' CONTENT_GAME_DATA_FILES=' *.big cyclo dialog images puzzles sprite ubb_vue wam' CONTENT_DOC_DATA_FILES=' *.pdf' APP_MAIN_EXE='atlantis.exe' PACKAGES_LIST='PKG_BIN PKG_L10N PKG_DATA' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_ID_EN="${PKG_L10N_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_ID="$GAME_ID" PKG_BIN_ID_EN="${PKG_BIN_ID}-en" PKG_BIN_ID_FR="${PKG_BIN_ID}-fr" PKG_BIN_PROVIDES=" $PKG_BIN_ID" PKG_BIN_DESCRIPTION_EN='English version' PKG_BIN_DESCRIPTION_FR='French version' PKG_BIN_DEPS="$PKG_L10N_ID $PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Set game directory in the registry game_directory='C:\\'"$(game_id)"'\\' registry_dump_game_directory_file='registry-dumps/game-directory.reg' registry_dump_game_directory_content='Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\CRYO\Atlantis\GameDirectory] @="'"${game_directory}"'"' CONTENT_GAME_BIN_FILES="${CONTENT_GAME_BIN_FILES:-} $registry_dump_game_directory_file" APP_REGEDIT="${APP_REGEDIT:-} $registry_dump_game_directory_file" SCRIPT_DEPS="${SCRIPT_DEPS:-} iconv" check_deps # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Set game directory in the registry mkdir --parents "$(dirname "$registry_dump_game_directory_file")" printf '%s' "$registry_dump_game_directory_content" | \ iconv --from-code=UTF-8 --to-code=UTF-16 --output="$registry_dump_game_directory_file" ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-aven-colony.sh0000755000000000000000000000563214471751340014420 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Aven Colony # send your bug reports to contact@dotslashplay.it ### script_version=20230814.1 GAME_ID='aven-colony' GAME_NAME='Aven Colony' ARCHIVE_BASE_0='setup_aven_colony_1.0.1_(64bit)_(25959).exe' ARCHIVE_BASE_0_MD5='959a44c1bb18e8c3342b10d396ae8a53' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_aven_colony_1.0.1_(64bit)_(25959)-1.bin' ARCHIVE_BASE_0_PART1_MD5='4f24fb8c38d99916a623c46aafc4eeeb' ARCHIVE_BASE_0_PART2='setup_aven_colony_1.0.1_(64bit)_(25959)-2.bin' ARCHIVE_BASE_0_PART2_MD5='db96cef3e5ce8e2f160b703d6d81777b' ARCHIVE_BASE_0_PART3='setup_aven_colony_1.0.1_(64bit)_(25959)-3.bin' ARCHIVE_BASE_0_PART3_MD5='0ab31c5b95332e6ab160f55c5fbe0db3' ARCHIVE_BASE_0_PART4='setup_aven_colony_1.0.1_(64bit)_(25959)-4.bin' ARCHIVE_BASE_0_PART4_MD5='2537b2db5c65a3b1ded96e938a864c52' ARCHIVE_BASE_0_SIZE='15000000' ARCHIVE_BASE_0_VERSION='1.0.25697-gog25959' ARCHIVE_BASE_0_URL='https://www.gog.com/game/aven_colony' UNREALENGINE4_NAME='avencolony' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_DATA_TILESETS_1_FILES=" ${UNREALENGINE4_NAME}/content/granitesdk/importedtilesets/city-*" CONTENT_GAME_DATA_TILESETS_2_FILES=" ${UNREALENGINE4_NAME}/content/granitesdk/importedtilesets" APP_MAIN_EXE="${UNREALENGINE4_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA_TILESETS_1 PKG_DATA_TILESETS_2 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_TILESETS_ID="${PKG_DATA_ID}-tilesets" PKG_DATA_TILESETS_1_ID="${PKG_DATA_TILESETS_ID}-1" PKG_DATA_TILESETS_2_ID="${PKG_DATA_TILESETS_ID}-2" PKG_DATA_TILESETS_DESCRIPTION="$PKG_DATA_DESCRIPTION - tilesets" PKG_DATA_TILESETS_1_DESCRIPTION="$PKG_TILESETS_DESCRIPTION - 1" PKG_DATA_TILESETS_2_DESCRIPTION="$PKG_TILESETS_DESCRIPTION - 2" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_TILESETS_1_ID $PKG_DATA_TILESETS_2_ID" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.25' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-aztez.sh0000755000000000000000000001211614471751340013316 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # 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. ### ### # Aztez # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210519.3 # Set game-specific variables GAME_ID='aztez' GAME_NAME='Aztez' ARCHIVE_BASE_0='aztez_linux_8278.zip' ARCHIVE_BASE_0_MD5='a55092525d52960ad36932918dcadc5b' ARCHIVE_BASE_0_SIZE='710000' ARCHIVE_BASE_0_VERSION='1.02.8278-humble.2017.09.04' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/aztez' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='Aztez.x86 Aztez_Data/Mono Aztez_Data/Plugins' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='Aztez_Data' APP_MAIN_TYPE='native' APP_MAIN_EXE='Aztez.x86' APP_MAIN_ICON='Aztez_Data/Resources/UnityPlayer.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="${PKG_DATA_ID} glibc libstdc++ gtk2 glx libgdk_pixbuf-2.0.so.0 libgobject-2.0.so.0 libglib-2.0.so.0 libasound.so.2" # Use a per-session dedicated file for logs APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a per-session dedicated file for logs mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Work around crash on launch related to libpulse # shellcheck disable=SC1004 APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Start pulseaudio if it is available if command -v pulseaudio >/dev/null 2>&1; then PULSEAUDIO_IS_AVAILABLE=1 if pulseaudio --check; then KEEP_PULSEAUDIO_RUNNING=1 else KEEP_PULSEAUDIO_RUNNING=0 fi pulseaudio --start else PULSEAUDIO_IS_AVAILABLE=0 fi # Work around crash on launch related to libpulse # Some Unity3D games crash on launch if libpulse-simple.so.0 is available but pulseaudio is not running if [ $PULSEAUDIO_IS_AVAILABLE -eq 0 ]; then mkdir --parents "${APP_LIBS:=libs}" ln --force --symbolic /dev/null "$APP_LIBS/libpulse-simple.so.0" else if \ [ -h "${APP_LIBS:=libs}/libpulse-simple.so.0" ] && \ [ "$(realpath "$APP_LIBS/libpulse-simple.so.0")" = "/dev/null" ] then rm "$APP_LIBS/libpulse-simple.so.0" rmdir --ignore-fail-on-non-empty --parents "$APP_LIBS" fi fi # Do not exit early if the game exits in a failure state set +o errexit' # shellcheck disable=SC1004 APP_MAIN_POSTRUN="$APP_MAIN_POSTRUN"' # Restore exit on error set -o errexit # Stop pulseaudio if it has specifically been started for the game if \ [ $PULSEAUDIO_IS_AVAILABLE -eq 1 ] && \ [ $KEEP_PULSEAUDIO_RUNNING -eq 0 ] then pulseaudio --kill fi' # Work around Unity3D poor support for non-US locales APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Work around Unity3D poor support for non-US locales export LANG=C' # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" # Drop unused x86_64 libraries rm --force --recursive \ "${PLAYIT_WORKDIR}/gamedata/Aztez_Data/Mono/x86_64" \ "${PLAYIT_WORKDIR}/gamedata/Aztez_Data/Plugins/x86_64" # Prepare packages prepare_package_layout # Get game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-back-to-bed.sh0000755000000000000000000000775314471751340014244 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Back to Bed # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210607.2 # Set game-specific variables GAME_ID='back-to-bed' GAME_NAME='Back to Bed' ARCHIVE_BASE_0='Back to Bed Linux Universal 1.1.6.zip' ARCHIVE_BASE_0_MD5='27947f187ecf27a5ce8ed98dff3bef8e' ARCHIVE_BASE_0_VERSION='1.1.6-itch1' ARCHIVE_BASE_0_SIZE='560000' ARCHIVE_BASE_0_URL='https://bedtimedigitalgames.itch.io/back-to-bed' ARCHIVE_DOC_DATA_PATH='Back to Bed Linux Universal 1.1.6' ARCHIVE_DOC_DATA_FILES='version.txt' ARCHIVE_GAME_BIN32_PATH='Back to Bed Linux Universal 1.1.6' ARCHIVE_GAME_BIN32_FILES='BackToBed.x86 BackToBed_Data/*/x86 ' ARCHIVE_GAME_BIN64_PATH='Back to Bed Linux Universal 1.1.6' ARCHIVE_GAME_BIN64_FILES='BackToBed.x86_64 BackToBed_Data/*/x86_64' ARCHIVE_GAME_DATA_PATH='Back to Bed Linux Universal 1.1.6' ARCHIVE_GAME_DATA_FILES='BackToBed_Data' APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32='BackToBed.x86' APP_MAIN_EXE_BIN64='BackToBed.x86_64' APP_MAIN_ICON='BackToBed_Data/Resources/UnityPlayer.png' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="${PKG_DATA_ID} glibc libstdc++ glx xcursor libxrandr gtk2 libX11.so.6 libgdk_pixbuf-2.0.so.0 libgobject-2.0.so.0 libglib-2.0.so.0" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Use a per-session dedicated file for logs APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a per-session dedicated file for logs mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-backbone.sh0000755000000000000000000000500614471751340013725 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Backbone # send your bug reports to contact@dotslashplay.it ### script_version=20230323.1 GAME_ID='backbone' GAME_NAME='Backbone' ## This archive used to be available from itch.io, ## but is no longer sold. ARCHIVE_BASE_0='backbone_windows.zip' ARCHIVE_BASE_0_MD5='c306e782f7c1f62bd3e247d6eb682182' ARCHIVE_BASE_0_SIZE='2300000' ARCHIVE_BASE_0_VERSION='1.0-itch.2022.03.06' UNREALENGINE4_NAME='detective' CONTENT_PATH_DEFAULT='backbone_windows' CONTENT_GAME_BIN_FILES=" engine ${UNREALENGINE4_NAME}/binaries ${UNREALENGINE4_NAME}/plugins ${UNREALENGINE4_NAME}.exe" CONTENT_GAME_DATA_FILES=" ${UNREALENGINE4_NAME}" WINE_DIRECT3D_RENDERER='dxvk' APP_WINE_LINK_DIRS=" userdata:users/\${USER}/AppData/Local/${UNREALENGINE4_NAME}/Saved" USER_PERSISTENT_DIRECTORIES=' userdata/Config/WindowsNoEditor userdata/SaveGames' APP_MAIN_EXE="${UNREALENGINE4_NAME}.exe" APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=101' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPS_ARCH='gst-plugins-base gst-plugins-good gst-libav' PKG_BIN_DEPS_DEB='gstreamer1.0-plugins-base, gstreamer1.0-plugins-good, gstreamer1.0-libav' PKG_BIN_DEPS_GENTOO='media-libs/gst-plugins-base media-plugins/gst-plugins-good media-libs/gst-plugins-libav' # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Convert all file names to lowercase tolower . ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-bad-dream-coma.sh0000755000000000000000000000354214471751340014715 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Bad Dream: Coma # send your bug reports to contact@dotslashplay.it ### script_version=20231011.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='bad-dream-coma' GAME_NAME='Bad Dream: Coma' ARCHIVE_BASE_0_NAME='setup_bad_dream_coma_1.0_(26985).exe' ARCHIVE_BASE_0_MD5='e4f0655ee22d99bdf09d0ee7a6980f23' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='4100000' ARCHIVE_BASE_0_VERSION='1.0-gog26985' ARCHIVE_BASE_0_URL='https://www.gog.com/game/bad_dream_coma' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' bad dream coma.exe d3dx9_43.dll data.win options.ini' CONTENT_GAME_DATA_FILES=' *.dat *.ogg' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Local Settings/Application Data/Bad_Dream_Coma' APP_MAIN_EXE='bad dream coma.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data PKG='PKG_DATA' icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-bad-dream-fever.sh0000755000000000000000000000706014471751340015104 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (©) 2015-2022, Antoine Le Gonidec # Copyright (©) 2021-2022, 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. ### ### # Bad Dream Fever # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220102.1 # Set game-specific variables GAME_ID='bad-dream-fever' GAME_NAME='Bad Dream Fever' ARCHIVE_BASE_0='setup_bad_dream_fever_1.0_(26985).exe' ARCHIVE_BASE_0_MD5='19336f3d5f3920873c7f111f9bda3f8b' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='490000' ARCHIVE_BASE_0_VERSION='1.0-gog26985' ARCHIVE_BASE_0_URL='https://www.gog.com/game/bad_dream_fever' CONTENT_PATH_DEFAULT='.' ARCHIVE_GAME_BIN_FILES=' bad?dream?fever.exe d3dx9_43.dll options.ini __redist/directx' ARCHIVE_GAME_DATA_FILES=' *.dat *.ogg data.win splash.png language' APP_MAIN_TYPE='wine' APP_MAIN_EXE='bad dream fever.exe' APP_MAIN_ICON='bad dream fever.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Install shipped DirectX in the WINE prefix APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Install shipped DirectX on first launch if [ ! -e directx9_installed ]; then sleep 3s wine __redist/directx/dxsetup.exe /silent touch directx9_installed fi' # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "${PLAYIT_WORKDIR}" # Print instructions print_instructions exit 0 games/play-bad-end-theater.sh0000755000000000000000000000434714471751340015114 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=20230406.1 GAME_ID='bad-end-theater' GAME_NAME='Bad End Theater' ARCHIVE_BASE_0='bad_end_theater_1_6_0_62289.sh' ARCHIVE_BASE_0_MD5='27a1f2aa68d562e2ef55d67c5405d43f' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='190000' 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' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/lib/py3-linux-x86_64" CONTENT_LIBS_BIN_FILES=' librenpython.so' CONTENT_GAME_BIN_FILES=' lib/py3-linux-x86_64/badendtheater lib/py3-linux-x86_64/python lib/py3-linux-x86_64/pythonw lib/py3-linux-x86_64/zsync lib/py3-linux-x86_64/zsyncmake' CONTENT_GAME_DATA_FILES=' game renpy lib/python3.9 badendtheater.py' APP_MAIN_EXE='lib/py3-linux-x86_64/badendtheater' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libGL.so.1 libm.so.6 libpthread.so.0 libutil.so.1' # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-bad-mojo.sh0000755000000000000000000000553514471751340013660 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Bad Mojo # send your bug reports to contact@dotslashplay.it ### script_version=20230803.1 GAME_ID='bad-mojo' GAME_NAME='Bad Mojo' ARCHIVE_BASE_0='setup_badmojo_2.0.0.3.exe' ARCHIVE_BASE_0_MD5='aedcb9e57bf5c6e692b889d3c21c4d12' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='770000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.3' ARCHIVE_BASE_0_URL='https://www.gog.com/game/bad_mojo_redux' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' badmojo.exe launcher2.bat launcher.exe qthook.dll waveout.dll' CONTENT_GAME_DATA_FILES=' backgnd btc cel extras mash movie over palette qtsystem roachd save scribble script sound topo quicktime.qts' USER_PERSISTENT_DIRECTORIES=' save' APP_MAIN_EXE='badmojo.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Create required configuration file config_file='badmojo.ini' config_file_path="$(package_path 'PKG_BIN')$(path_game_data)/${config_file}" mkdir --parents "$(dirname "$config_file_path")" game_id=$(game_id) cat > "$config_file_path" << EOF [booger] BACKGROUND=C:\\${game_id}\\OVER;C:\\${game_id}\\BACKGND TOPO=C:\\${game_id}\\TOPO BTC=C:\\${game_id}\\BTC PALETTE=C:\\${game_id}\\PALETTE SCRIBBLE=C:\\${game_id}\\OVER;C:\\${game_id}\\SCRIBBLE CEL=C:\\${game_id}\\OVER;C:\\${game_id}\\CEL SCRIPT=C:\\${game_id}\\SCRIPT ROACH=C:\\${game_id}\\ROACHD MOVIE=C:\\${game_id}\\OVER;C:\\${game_id}\\MOVIE MASH=C:\\${game_id}\\OVER;C:\\${game_id}\\MASH SOUND=C:\\${game_id}\\SOUND SAVE=C:\\${game_id}\\SAVE [SoundMix] SoundOn=1 BetweenScreens=1 SmallChunkSize=3 BigChunkSize=26 BigChunkMethod=0 DumbSound=0 [badmojo] Preferences=1111110 EOF USER_PERSISTENT_FILES="$(persistent_list_files) $config_file" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-banished.sh0000755000000000000000000000461414471751340013742 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Banished # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220901.1 GAME_ID='banished' GAME_NAME='Banished' ARCHIVE_BASE_32BIT_0='setup_banished_32_1.0.7_(14938).exe' ARCHIVE_BASE_32BIT_0_MD5='43042701a692f186d467b97e966fb846' ARCHIVE_BASE_32BIT_0_TYPE='innosetup' ARCHIVE_BASE_32BIT_0_SIZE='190000' ARCHIVE_BASE_32BIT_0_VERSION='1.0.7-gog14938' ARCHIVE_BASE_32BIT_0_URL='https://www.gog.com/game/banished' ARCHIVE_BASE_64BIT_0='setup_banished_64_1.0.7_(14938).exe' ARCHIVE_BASE_64BIT_0_MD5='463b2720c5c88c28f24de9176b8b1ec4' ARCHIVE_BASE_64BIT_0_TYPE='innosetup' ARCHIVE_BASE_64BIT_0_SIZE='190000' ARCHIVE_BASE_64BIT_0_VERSION='1.0.7-gog14938' ARCHIVE_BASE_64BIT_0_URL='https://www.gog.com/game/banished' CONTENT_PATH_DEFAULT='app' ARCHIVE_GAME_BIN_FILES=' *.dll *.exe' ARCHIVE_GAME_DATA_FILES=' windata' APP_MAIN_TYPE='wine' APP_MAIN_EXE_32BIT='application-x32.exe' APP_MAIN_EXE_64BIT='application-x64.exe' APP_MAIN_ICON_32BIT='application-x32.exe' APP_MAIN_ICON_64BIT='application-x64.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH_32BIT='32' PKG_BIN_ARCH_64BIT='64' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Load common functions target_version='2.17' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' APP_MAIN_EXE=$(get_context_specific_value 'archive' 'APP_MAIN_EXE') launchers_write # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-baseball-stars-2.sh0000755000000000000000000000706314471751340015224 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2020, HS-157 # 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. ### ### # BASEBALL STARS 2 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20201008.1 # Set game-specific variables GAME_ID='baseball-stars-2' GAME_NAME="BASEBALL STARS 2" ARCHIVE_HUMBLE='BaseballStars2_jan2016.sh' ARCHIVE_HUMBLE_TYPE='mojosetup' ARCHIVE_HUMBLE_URL='https://www.humblebundle.com/store/baseball-stars-2' ARCHIVE_HUMBLE_MD5='efe7f4d90cc2e5db0efd00e7b32d8114' ARCHIVE_HUMBLE_VERSION='1.0-humblejan2016' ARCHIVE_HUMBLE_SIZE='36000' ARCHIVE_GAME_BIN32_PATH_HUMBLE='data/x86' ARCHIVE_GAME_BIN32_FILES='NeogeoEmu.bin.x86 lib' ARCHIVE_GAME_BIN64_PATH_HUMBLE='data/x86_64' ARCHIVE_GAME_BIN64_FILES='NeogeoEmu.bin.x86_64 lib64' ARCHIVE_GAME_DATA_PATH_HUMBLE='data/noarch' ARCHIVE_GAME_DATA_FILES='*' APP_MAIN_TYPE='native' APP_MAIN_ICON='BaseballStars2.png' APP_MAIN_EXE_BIN32='NeogeoEmu.bin.x86' APP_MAIN_EXE_BIN64='NeogeoEmu.bin.x86_64' DATA_FILES='*.ini *.rml *.txt' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID glibc libstdc++ sdl2 glx alsa libudev1" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout rm --recursive "$PLAYIT_WORKDIR/gamedata" # Extract icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-basingstoke.sh0000755000000000000000000000357514471751340014503 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Basingstoke # send your bug reports to contact@dotslashplay.it ### script_version=20231115.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='basingstoke' GAME_NAME='Basingstoke' ARCHIVE_BASE_0_NAME='basingstoke-linux.zip' ARCHIVE_BASE_0_MD5='46c7127a2bbf07f158b8a70eb44185f2' ARCHIVE_BASE_0_SIZE='720000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://puppygames001.itch.io/basingstoke' UNITY3D_NAME='Basingstoke' UNITY3D_PLUGINS=' libzipw.so ScreenSelector.so' CONTENT_PATH_DEFAULT='basingstoke' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-batman-arkham-1.sh0000755000000000000000000000732114471751340015024 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Batman: Arkham 1 # send your bug reports to contact@dotslashplay.it ### script_version=20231115.9 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='batman-arkham-1' GAME_NAME='Batman: Arkham Asylum' ARCHIVE_BASE_0_NAME='setup_batman_arkham_asylum_goty_1.1_(38915).exe' ARCHIVE_BASE_0_MD5='46dc5afd1cf4a41f4c910a8c43fe8023' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_batman_arkham_asylum_goty_1.1_(38915)-1.bin' ARCHIVE_BASE_0_PART1_MD5='59df55da8ffce48afd9a196c816769c3' ARCHIVE_BASE_0_PART2_NAME='setup_batman_arkham_asylum_goty_1.1_(38915)-2.bin' ARCHIVE_BASE_0_PART2_MD5='8b7b283f4ea74c7f208bdd26c2f7a5b4' ARCHIVE_BASE_0_SIZE='8700000' ARCHIVE_BASE_0_VERSION='1.1-gog38915' ARCHIVE_BASE_0_URL='https://www.gog.com/game/batman_arkham_asylum_goty' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' binaries *.dll' CONTENT_GAME_DATA_FILES=' bmgame engine' CONTENT_DOC_DATA_FILES=' *.rtf' WINE_DIRECT3D_RENDERER='dxvk' WINE_DLLOVERRIDES_DEFAULT='winemenubuilder.exe,mshtml=' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/Square Enix/Batman Arkham Asylum GOTY' ## Cursor is prevented to leave the game window, avoiding issues with mouse look. WINE_WINETRICKS_VERBS='grabfullscreen=y' ## The game will throw an error on launch if PhysX is not installed. WINE_WINETRICKS_VERBS="${WINE_WINETRICKS_VERBS:-} physx" APP_MAIN_EXE='binaries/bmlauncher.exe' APP_MAIN_ICON='binaries/shippingpc-bmgame.exe' ## Force the application type, or it will be mistaken for a Mono one. APP_MAIN_TYPE='wine' ## Run the game binary from its parent directory. APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' # Run the game binary from its parent directory cd "$(dirname "$APP_EXE")" APP_EXE=$(basename "$APP_EXE") ' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Include Mono in the WINE prefix ARCHIVE_REQUIRED_MONO_NAME='wine-mono-8.0.0-x86.msi' ARCHIVE_REQUIRED_MONO_MD5='4fe5c683fcd9634c7f6571f252b3603c' ARCHIVE_REQUIRED_MONO_URL='https://dl.winehq.org/wine/wine-mono/8.0.0/' archive_initialize_required 'ARCHIVE_MONO' 'ARCHIVE_REQUIRED_MONO' mono_installer_source=$(archive_path 'ARCHIVE_MONO') mono_installer_destination="$(package_path 'PKG_BIN')$(path_game_data)/mono/wine-mono-8.0.0-x86.msi" install -D --mode=644 "$mono_installer_source" "$mono_installer_destination" WINE_DLLOVERRIDES_DEFAULT='winemenubuilder.exe,mshtml=' ## The original pre-run actions must be run *after* Mono installation, ## because they change the current directory. APP_MAIN_PRERUN='# Include Mono in the WINE prefix if [ ! -e .mono_installed ]; then $(wine_command) mono/wine-mono-8.0.0-x86.msi touch .mono_installed fi '"$(application_prerun 'APP_MAIN')" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-batman-arkham-2.sh0000755000000000000000000002106314471751340015024 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Batman: Arkham 2 # send your bug reports to contact@dotslashplay.it ### script_version=20231115.8 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='batman-arkham-2' GAME_NAME='Batman: Arkham City' ARCHIVE_BASE_0_NAME='setup_batman_arkham_city_goty_1.1_(38264).exe' ARCHIVE_BASE_0_MD5='e8bfd823cfcfec2147f736bb696a85c8' ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS='--progress=1 --silent' ARCHIVE_BASE_0_PART1_NAME='setup_batman_arkham_city_goty_1.1_(38264)-1.bin' ARCHIVE_BASE_0_PART1_MD5='5e1213208d59a42ec0fd808bfee2f189' ARCHIVE_BASE_0_PART2_NAME='setup_batman_arkham_city_goty_1.1_(38264)-2.bin' ARCHIVE_BASE_0_PART2_MD5='fa9fcbaf8ef9de81dc1638bbc9db0353' ARCHIVE_BASE_0_PART3_NAME='setup_batman_arkham_city_goty_1.1_(38264)-3.bin' ARCHIVE_BASE_0_PART3_MD5='685be8b8bbd0fe3f831fb5cf0506a735' ARCHIVE_BASE_0_PART4_NAME='setup_batman_arkham_city_goty_1.1_(38264)-4.bin' ARCHIVE_BASE_0_PART4_MD5='0ccafb2161130774710b470692ba8b39' ARCHIVE_BASE_0_PART5_NAME='setup_batman_arkham_city_goty_1.1_(38264)-5.bin' ARCHIVE_BASE_0_PART5_MD5='2122f11dc24618e8c902e6706c26f7c2' ARCHIVE_BASE_0_SIZE='20000000' ARCHIVE_BASE_0_VERSION='1.1-gog38264' ARCHIVE_BASE_0_URL='https://www.gog.com/game/batman_arkham_city_goty' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' Binaries engine Setup BmGame/Config *.dll' CONTENT_GAME_L10N_EN_FILES=' BmGame/Localization/INT BmGame/CookedPCConsole/English(US)' CONTENT_GAME_L10N_FR_FILES=' BmGame/Localization/FRA BmGame/CookedPCConsole/French(France)' CONTENT_GAME_DATA_MOVIES_FILES=' BmGame/Movies BmGame/MoviesStereo' CONTENT_GAME_DATA_TEXTURES_FILES=' BmGame/CookedPCConsole/*.tfc' CONTENT_GAME_DATA_FILES=' BmGame/CookedPCConsole/*.bin BmGame/CookedPCConsole/*.upk BmGame/CookedPCConsole/CookedBanks.txt BmGame/CookedPCConsole/GuidMap BmGame/CookedPCConsole/SFX BmGame/Splash' CONTENT_DOC_L10N_EN_FILES=' readme.rtf' CONTENT_DOC_L10N_FR_FILES=' readme_FRA.rtf' WINE_DIRECT3D_RENDERER='dxvk' WINE_DLLOVERRIDES_DEFAULT='winemenubuilder.exe,mshtml=' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/WB Games/Batman Arkham City GOTY' ## Cursor is prevented to leave the game window, avoiding issues with mouse look. WINE_WINETRICKS_VERBS='grabfullscreen=y' ## The game will throw an error on launch if PhysX is not installed. WINE_WINETRICKS_VERBS="${WINE_WINETRICKS_VERBS:-} physx" APP_MAIN_EXE='Binaries/Win32/BmLauncher.exe' ## Force the application type, or it will be mistaken for a Mono one. APP_MAIN_TYPE='wine' ## Force language environment, to work around the lack of a game setting. APP_MAIN_PRERUN='# Force language environment, to work around the lack of a game setting. if [ -e "BmGame/Localization/FRA" ]; then export LANG=fr elif [ -e "BmGame/Localization/INT" ]; then export LANG=en fi ' ## Run the game binary from its parent directory. APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' # Run the game binary from its parent directory cd "$(dirname "$APP_EXE")" APP_EXE=$(basename "$APP_EXE") ' PACKAGES_LIST=' PKG_BIN PKG_L10N_EN PKG_L10N_FR PKG_DATA_MOVIES PKG_DATA_TEXTURES PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_MOVIES_ID="${PKG_DATA_ID}-movies" PKG_DATA_MOVIES_DESCRIPTION="$PKG_DATA_DESCRIPTION - movies" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_MOVIES_ID" PKG_DATA_TEXTURES_ID="${PKG_DATA_ID}-textures" PKG_DATA_TEXTURES_DESCRIPTION="$PKG_DATA_DESCRIPTION - textures" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_TEXTURES_ID" PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_EN_ID="${PKG_L10N_ID}-en" PKG_L10N_FR_ID="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_EN_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_FR_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_EN_DESCRIPTION='English localization' PKG_L10N_FR_DESCRIPTION='French localization' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_L10N_ID $PKG_DATA_ID" # Set the game language based on the installed localization SCRIPT_DEPS="${SCRIPT_DEPS:-} unix2dos" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Include Mono in the WINE prefix ARCHIVE_REQUIRED_MONO_NAME='wine-mono-8.0.0-x86.msi' ARCHIVE_REQUIRED_MONO_MD5='4fe5c683fcd9634c7f6571f252b3603c' ARCHIVE_REQUIRED_MONO_URL='https://dl.winehq.org/wine/wine-mono/8.0.0/' archive_initialize_required 'ARCHIVE_MONO' 'ARCHIVE_REQUIRED_MONO' mono_installer_source=$(archive_path 'ARCHIVE_MONO') mono_installer_destination="$(package_path 'PKG_BIN')$(path_game_data)/mono/wine-mono-8.0.0-x86.msi" install -D --mode=644 "$mono_installer_source" "$mono_installer_destination" WINE_DLLOVERRIDES_DEFAULT='winemenubuilder.exe,mshtml=' ## The original pre-run actions must be run *after* Mono installation, ## because they change the current directory. APP_MAIN_PRERUN='# Include Mono in the WINE prefix if [ ! -e .mono_installed ]; then $(wine_command) mono/wine-mono-8.0.0-x86.msi touch .mono_installed fi '"$(application_prerun 'APP_MAIN')" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Set the game language based on the installed localization ## TODO: Dump all this mess and redo it in a cleaner way during the content inclusion step. config_file_launcher_source="$(package_path 'PKG_BIN')$(path_game_data)/BmGame/Config/Launcher.ini" config_file_launcher_ini_section='\[Launcher\.Settings\]' config_file_launcher_ini_field='ForceUseCulture' config_file_launcher_en_destination="$(package_path 'PKG_L10N_EN')$(path_game_data)/BmGame/Config/Launcher.ini" config_file_launcher_en_ini_value='en' mkdir --parents "$(dirname "$config_file_launcher_en_destination")" sed --expression="s/^${config_file_launcher_ini_section}/&\\n${config_file_launcher_ini_field}=${config_file_launcher_en_ini_value}/" \ "$config_file_launcher_source" > "$config_file_launcher_en_destination" unix2dos --quiet "$config_file_launcher_en_destination" config_file_launcher_fr_destination="$(package_path 'PKG_L10N_FR')$(path_game_data)/BmGame/Config/Launcher.ini" config_file_launcher_fr_ini_value='fr' mkdir --parents "$(dirname "$config_file_launcher_fr_destination")" sed --expression="s/^${config_file_launcher_ini_section}/&\\n${config_file_launcher_ini_field}=${config_file_launcher_fr_ini_value}/" \ "$config_file_launcher_source" > "$config_file_launcher_fr_destination" unix2dos --quiet "$config_file_launcher_fr_destination" rm "$config_file_launcher_source" config_file_engine_source="$(package_path 'PKG_BIN')$(path_game_data)/engine/config/BaseEngine.ini" config_file_engine_ini_field='Language' config_file_engine_en_destination="$(package_path 'PKG_L10N_EN')$(path_game_data)/engine/config/BaseEngine.ini" config_file_engine_en_ini_value='INT' mkdir --parents "$(dirname "$config_file_engine_en_destination")" sed --expression="s/^${config_file_engine_ini_field}=.*/${config_file_engine_ini_field}=${config_file_engine_en_ini_value}/" \ "$config_file_engine_source" > "$config_file_engine_en_destination" unix2dos --quiet "$config_file_engine_en_destination" config_file_engine_fr_destination="$(package_path 'PKG_L10N_FR')$(path_game_data)/engine/config/BaseEngine.ini" config_file_engine_fr_ini_value='FRA' mkdir --parents "$(dirname "$config_file_engine_fr_destination")" sed --expression="s/^${config_file_engine_ini_field}=.*/${config_file_engine_ini_field}=${config_file_engine_fr_ini_value}/" \ "$config_file_engine_source" > "$config_file_engine_fr_destination" unix2dos --quiet "$config_file_engine_fr_destination" rm "$config_file_engine_source" # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation common_packages='PKG_BIN PKG_DATA PKG_DATA_MOVIES PKG_DATA_TEXTURES' case "${LANG%_*}" in ('fr') lang_string='version %s :' lang_en='anglaise' lang_fr='française' ;; ('en'|*) lang_string='%s version:' lang_en='English' lang_fr='French' ;; esac printf '\n' printf "$lang_string" "$lang_en" print_instructions $common_packages 'PKG_L10N_EN' printf "$lang_string" "$lang_fr" print_instructions $common_packages 'PKG_L10N_FR' # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-batman-arkham-3.sh0000755000000000000000000000774614471751340015041 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Batman: Arkham Origins # send your bug reports to contact@dotslashplay.it ### script_version=20230127.2 GAME_ID='batman-arkham-3' GAME_NAME='Batman: Arkham Origins' ARCHIVE_BASE_0='setup_batman_arkham_origins_1.0_(37592).exe' ARCHIVE_BASE_0_MD5='954bfc571f142dbcd8c21bb53aff9476' ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS='--progress=1 --silent' ARCHIVE_BASE_0_PART1='setup_batman_arkham_origins_1.0_(37592)-1.bin' ARCHIVE_BASE_0_PART1_MD5='379e08cdded22ca72de6ef1592cf9ec3' ARCHIVE_BASE_0_PART2='setup_batman_arkham_origins_1.0_(37592)-2.bin' ARCHIVE_BASE_0_PART2_MD5='483e7b78a963a844dc49fe0d563dba51' ARCHIVE_BASE_0_PART3='setup_batman_arkham_origins_1.0_(37592)-3.bin' ARCHIVE_BASE_0_PART3_MD5='7bb72091ee2ca1499c4d4e4245b92a5f' ARCHIVE_BASE_0_PART4='setup_batman_arkham_origins_1.0_(37592)-4.bin' ARCHIVE_BASE_0_PART4_MD5='d705ed0ace1d108a97433e0474e8dbdb' ARCHIVE_BASE_0_SIZE='18000000' ARCHIVE_BASE_0_VERSION='1.0-gog37592' ARCHIVE_BASE_0_URL='https://www.gog.com/game/batman_arkham_origins' CONTENT_PATH_DEFAULT='SinglePlayer' CONTENT_GAME_BIN_FILES=' Binaries Engine BMGame/Config' CONTENT_GAME_L10N_FR_FILES=' BMGame/CookedPCConsole/French(France) BMGame/Localization/FRA PCConsoleTOC_FRA.txt' CONTENT_GAME_TEXTURES_FILES=' BMGame/CookedPCConsole/*.tfc' CONTENT_GAME_DATA_FILES=' BMGame/EP2.dat BMGame/EP3.dat BMGame/EP4.dat BMGame/Movies BMGame/Splash BMGame/WBID BMGame/CookedPCConsole/SFX BMGame/CookedPCConsole/*.bin BMGame/CookedPCConsole/*.txt BMGame/CookedPCConsole/*.upk BMGame/CookedPCConsole/English(US) BMGame/Localization/INT PCConsoleTOC.txt' APP_MAIN_EXE='Binaries/Win32/BatmanOrigins.exe' WINE_DIRECT3D_RENDERER='dxvk' APP_WINETRICKS='physx' APP_WINE_LINK_DIRS=' userdata:users/dave/Documents/WB Games/Batman Arkham Origins' USER_PERSISTENT_DIRECTORIES=' BMGame/Config userdata/SaveData' USER_PERSISTENT_FILES=' userdata/GFXSettings.BatmanArkhamOrigins.xml' PACKAGES_LIST='PKG_BIN PKG_L10N_FR PKG_TEXTURES PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_FR_ID="${PKG_L10N_ID}-fr" PKG_L10N_FR_PROVIDE="$PKG_L10N_ID" PKG_L10N_FR_DESCRIPTION='French localization' PKG_TEXTURES_ID="${GAME_ID}-textures" PKG_TEXTURES_DESCRIPTION='textures' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_L10N_ID $PKG_TEXTURES $PKG_DATA_ID" # Run the game binary from its directory APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Run the game binary from its directory cd "$(dirname "$APP_EXE")" APP_EXE=$(basename "$APP_EXE")' # Load common functions target_version='2.20' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions common_packages='PKG_DATA PKG_TEXTURES PKG_BIN' case "${LANG%_*}" in ('fr') lang_string='version %s :' lang_en='anglaise' lang_fr='française' ;; ('en'|*) lang_string='%s version:' lang_en='English' lang_fr='French' ;; esac printf '\n' printf "$lang_string" "$lang_en" print_instructions $common_packages printf "$lang_string" "$lang_fr" print_instructions $common_packages 'PKG_L10N_FR' # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-batman-arkham-4.sh0000755000000000000000000001271114471751340015026 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Batman: Arkham Knight # send your bug reports to contact@dotslashplay.it ### script_version=20231130.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='batman-arkham-4' GAME_NAME='Batman: Arkham Knight' ARCHIVE_BASE_0_NAME='setup_batman_arkham_knight_1.98_(37902).exe' ARCHIVE_BASE_0_MD5='73307c30caaf63052132968a923f13ec' ARCHIVE_BASE_0_EXTRACTOR='innoextract' ## Do not convert file paths to lower case. ARCHIVE_BASE_0_EXTRACTOR_OPTIONS=' ' ARCHIVE_BASE_0_PART1_NAME='setup_batman_arkham_knight_1.98_(37902)-1.bin' ARCHIVE_BASE_0_PART1_MD5='82a14c0140c2d3bfb587d55559edd3ab' ARCHIVE_BASE_0_PART2_NAME='setup_batman_arkham_knight_1.98_(37902)-2.bin' ARCHIVE_BASE_0_PART2_MD5='075b116c6f6c79bc682a1dcd020e4910' ARCHIVE_BASE_0_PART3_NAME='setup_batman_arkham_knight_1.98_(37902)-3.bin' ARCHIVE_BASE_0_PART3_MD5='ccf091fe25df898fb692854ffba23e95' ARCHIVE_BASE_0_PART4_NAME='setup_batman_arkham_knight_1.98_(37902)-4.bin' ARCHIVE_BASE_0_PART4_MD5='128dcddb67ed6c9838e802a82d29267f' ARCHIVE_BASE_0_PART5_NAME='setup_batman_arkham_knight_1.98_(37902)-5.bin' ARCHIVE_BASE_0_PART5_MD5='e4a186a946e10780ddc58e8ca79d6794' ARCHIVE_BASE_0_PART6_NAME='setup_batman_arkham_knight_1.98_(37902)-6.bin' ARCHIVE_BASE_0_PART6_MD5='ea31bab1b5ff9410a30663f2cd8ca35f' ARCHIVE_BASE_0_PART7_NAME='setup_batman_arkham_knight_1.98_(37902)-7.bin' ARCHIVE_BASE_0_PART7_MD5='e7726a1f658c9b29387bad9b10e8e4a3' ARCHIVE_BASE_0_PART8_NAME='setup_batman_arkham_knight_1.98_(37902)-8.bin' ARCHIVE_BASE_0_PART8_MD5='647176434aa98a19cce3edf625ef8631' ARCHIVE_BASE_0_PART9_NAME='setup_batman_arkham_knight_1.98_(37902)-9.bin' ARCHIVE_BASE_0_PART9_MD5='c8f4833b789186d3b03ff44af93b883b' ARCHIVE_BASE_0_PART10_NAME='setup_batman_arkham_knight_1.98_(37902)-10.bin' ARCHIVE_BASE_0_PART10_MD5='389d3f38c987268dfdb85c489b2e4831' ARCHIVE_BASE_0_PART11_NAME='setup_batman_arkham_knight_1.98_(37902)-11.bin' ARCHIVE_BASE_0_PART11_MD5='18947e9bd6b4a0b4ec35998f78961c88' ARCHIVE_BASE_0_PART12_NAME='setup_batman_arkham_knight_1.98_(37902)-12.bin' ARCHIVE_BASE_0_PART12_MD5='d67afeb3f4a687255d79ad1c1f45516e' ARCHIVE_BASE_0_SIZE='53000000' ARCHIVE_BASE_0_VERSION='1.98-gog37902' ARCHIVE_BASE_0_URL='https://www.gog.com/game/batman_arkham_knight' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' Binaries Engine BmGame/Config' CONTENT_GAME_TEXTURES1_FILES=' BmGame/CookedPCConsole/Chunk0.tfc BmGame/CookedPCConsole/Chunk1.tfc BmGame/CookedPCConsole/Chunk2.tfc BmGame/CookedPCConsole/Chunk3.tfc BmGame/CookedPCConsole/Chunk4.tfc BmGame/CookedPCConsole/Chunk5.tfc' CONTENT_GAME_TEXTURES2_FILES=' BmGame/CookedPCConsole/Chunk6.tfc BmGame/CookedPCConsole/Chunk7.tfc BmGame/CookedPCConsole/Chunk8.tfc BmGame/CookedPCConsole/Textures.tfc' CONTENT_GAME_PACKAGES1_FILES=' BmGame/CookedPCConsole/City*.upk' CONTENT_GAME_PACKAGES2_FILES=' BmGame/CookedPCConsole/*.upk' CONTENT_GAME_MOVIES_FILES=' BmGame/Movies' CONTENT_GAME_DATA_FILES=' BmGame/Splash BmGame/CookedPCConsole/SFX BmGame/CookedPCConsole/*.bin BmGame/CookedPCConsole/English(US) BmGame/Localization/INT' USER_PERSISTENT_DIRECTORIES=' BmGame/Config BmGame/SaveData' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/WB Games/Batman Arkham Knight' WINE_WINETRICKS_VERBS='physx' APP_MAIN_EXE='Binaries/Win64/BatmanAK.exe' ## Run the game binary from its parent directory. APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' # Run the game binary from its parent directory cd "$(dirname "$APP_EXE")" APP_EXE=$(basename "$APP_EXE") ' PACKAGES_LIST=' PKG_BIN PKG_TEXTURES1 PKG_TEXTURES2 PKG_PACKAGES1 PKG_PACKAGES2 PKG_MOVIES PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_TEXTURES_ID="${GAME_ID}-textures" PKG_TEXTURES1_ID="${PKG_TEXTURES_ID}-1" PKG_TEXTURES2_ID="${PKG_TEXTURES_ID}-2" PKG_TEXTURES_DESCRIPTION='textures' PKG_TEXTURES1_DESCRIPTION="$PKG_TEXTURES_DESCRIPTION - 1" PKG_TEXTURES2_DESCRIPTION="$PKG_TEXTURES_DESCRIPTION - 2" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_TEXTURES1_ID $PKG_TEXTURES2_ID" PKG_PACKAGES_ID="${GAME_ID}-packages" PKG_PACKAGES1_ID="${PKG_PACKAGES_ID}-1" PKG_PACKAGES2_ID="${PKG_PACKAGES_ID}-2" PKG_PACKAGES_DESCRIPTION='packages' PKG_PACKAGES1_DESCRIPTION="$PKG_PACKAGES_DESCRIPTION - 1" PKG_PACKAGES2_DESCRIPTION="$PKG_PACKAGES_DESCRIPTION - 2" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_PACKAGES1_ID $PKG_PACKAGES2_ID" PKG_MOVIES_ID="${GAME_ID}-movies" PKG_MOVIES_DESCRIPTION='movies' PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_MOVIES_ID" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" ## FIXME: This game should be run in a WINE virtual desktop. # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-battle-chef-brigade.sh0000755000000000000000000000505214471751340015733 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Battle Chef Brigade # send your bug reports to contact@dotslashplay.it ### script_version=20230222.3 GAME_ID='battle-chef-brigade' GAME_NAME='Battle Chef Brigade' ARCHIVE_BASE_0='battle_chef_brigade_14725_624_23675.sh' ARCHIVE_BASE_0_MD5='d35140bf757e387a2e47198f96356d00' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='1300000' ARCHIVE_BASE_0_VERSION='14725.624-gog23675' ARCHIVE_BASE_0_URL='https://www.gog.com/game/battle_chef_brigade' UNITY3D_NAME='BattleChefBrigade' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_LIBS_BIN_FILES=" ScreenSelector.so" CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data/Managed ${UNITY3D_NAME}_Data/Mono/etc ${UNITY3D_NAME}_Data/Resources ${UNITY3D_NAME}_Data/StreamingAssets ${UNITY3D_NAME}_Data/globalgamemanagers ${UNITY3D_NAME}_Data/level? ${UNITY3D_NAME}_Data/level?? ${UNITY3D_NAME}_Data/*.assets ${UNITY3D_NAME}_Data/*.assets.resS ${UNITY3D_NAME}_Data/*.resource" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-battle-worlds-kronos.sh0000755000000000000000000001032514471751340016255 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # Battle Worlds: Kronos # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20200615.5 # Set game-specific variables GAME_ID='battle-worlds-kronos' GAME_NAME='Battle Worlds: Kronos' ARCHIVES_LIST=' ARCHIVE_GOG_0 ' ARCHIVE_GOG_0='gog_battle_worlds_kronos_2.1.0.6.sh' ARCHIVE_GOG_0_URL='https://www.gog.com/game/battle_worlds_kronos' ARCHIVE_GOG_0_MD5='4d7f9e05524ff6b85139df903dbcb74b' ARCHIVE_GOG_0_SIZE='1300000' ARCHIVE_GOG_0_VERSION='1.4.3-gog2.1.0.6' ARCHIVE_DOC_DATA_PATH='data/noarch/docs' ARCHIVE_DOC_DATA_FILES='*' ARCHIVE_GAME_BIN32_PATH='data/noarch/game' ARCHIVE_GAME_BIN32_FILES='BattleWorldsKronos.x86 BattleWorldsKronos_Data/Mono/x86' ARCHIVE_GAME_BIN64_PATH='data/noarch/game' ARCHIVE_GAME_BIN64_FILES='BattleWorldsKronos.x86_64 BattleWorldsKronos_Data/Mono/x86_64' ARCHIVE_GAME_DATA_PATH='data/noarch/game' ARCHIVE_GAME_DATA_FILES='BattleWorldsKronos_Data version' DATA_DIRS='./logs' APP_MAIN_TYPE='native' APP_MAIN_PRERUN='# Work around Unity3D poor support for non-US locale export LANG=C' APP_MAIN_EXE_BIN32='BattleWorldsKronos.x86' APP_MAIN_EXE_BIN64='BattleWorldsKronos.x86_64' # shellcheck disable=SC2016 APP_MAIN_OPTIONS='-logFile ./logs/$(date +%F-%R).log' APP_MAIN_ICON='BattleWorldsKronos_Data/Resources/UnityPlayer.png' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID glibc libstdc++ glu glx xcursor" PKG_BIN32_DEPS_ARCH='lib32-libxext lib32-libx11' PKG_BIN32_DEPS_DEB='libxext6, libx11-6' PKG_BIN32_DEPS_GENTOO='x11-libs/libXext[abi_x86_32] x11-libs/libX11[abi_x86_32]' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPS_ARCH='libxext libx11' PKG_BIN64_DEPS_DEB="$PKG_BIN32_DEPS_DEB" PKG_BIN64_DEPS_GENTOO='x11-libs/libXext x11-libs/libX11' # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout rm --recursive "$PLAYIT_WORKDIR/gamedata" # Get game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-battlefleet-gothic-armada-1.sh0000755000000000000000000000571314471751340017315 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Battlefleet Gothic: Armada # send your bug reports to contact@dotslashplay.it ### script_version=20230402.2 # Set game-specific variables GAME_ID='battlefleet-gothic-armada-1' GAME_NAME='Battlefleet Gothic: Armada' ARCHIVE_BASE_0='setup_battlefleet_gothic_armada_1.0.12_(64bit)_(41732).exe' ARCHIVE_BASE_0_MD5='74271753f6cba4385e50c3f8c05b32da' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_battlefleet_gothic_armada_1.0.12_(64bit)_(41732)-1.bin' ARCHIVE_BASE_0_PART1_MD5='bea83722e900a3253ca68600723e5853' ARCHIVE_BASE_0_PART2='setup_battlefleet_gothic_armada_1.0.12_(64bit)_(41732)-2.bin' ARCHIVE_BASE_0_PART2_MD5='246e012f15d4bcbbac9a024f1b6816a6' ARCHIVE_BASE_0_SIZE='14000000' ARCHIVE_BASE_0_VERSION='1.0.12-gog41732' ARCHIVE_BASE_0_URL='https://www.gog.com/game/battlefleet_gothic_armada_1' UNREALENGINE4_NAME='battlefleetgothic' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" engine ${UNREALENGINE4_NAME}/binaries ${UNREALENGINE4_NAME}/plugins ${UNREALENGINE4_NAME}/version.bfgver ${UNREALENGINE4_NAME}.exe" CONTENT_GAME_DATA_FILES=" ${UNREALENGINE4_NAME}" HUGE_FILES_DATA=" ${UNREALENGINE4_NAME}/content/paks/${UNREALENGINE4_NAME}-windowsnoeditor.pak" WINE_DIRECT3D_RENDERER='dxvk' APP_WINE_LINK_DIRS=" userdata:users/\${USER}/AppData/Local/${UNREALENGINE4_NAME}/Saved" USER_PERSISTENT_DIRECTORIES=' userdata/Config/WindowsNoEditor userdata/SaveGames' APP_MAIN_EXE="${UNREALENGINE4_NAME}.exe" APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=101' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPS_ARCH='gst-plugins-base gst-plugins-good gst-libav' PKG_BIN_DEPS_DEB='gstreamer1.0-plugins-base, gstreamer1.0-plugins-good, gstreamer1.0-libav' PKG_BIN_DEPS_GENTOO='media-libs/gst-plugins-base media-plugins/gst-plugins-good media-libs/gst-plugins-libav' # 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-bear-and-breakfast.sh0000755000000000000000000000327214471751340015575 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Mopi set -o errexit ### # Bear and Breakfast # send your bug reports to contact@dotslashplay.it ### script_version=20231020.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='bear-and-breakfast' GAME_NAME='Bear and Breakfast' ARCHIVE_BASE_0_NAME='setup_bear_and_breakfast_1.7.3_(64bit)_(63113).exe' ARCHIVE_BASE_0_MD5='fe6328ca58e77fde90a595d81ae56954' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2100000' ARCHIVE_BASE_0_VERSION='1.7.3-gog63113' ARCHIVE_BASE_0_URL='https://www.gog.com/en/game/bear_and_breakfast' UNITY3D_NAME='bearandbreakfast' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/GummyCat/BearAndBreakfast' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data PKG='PKG_DATA' icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-bear-with-me.sh0000755000000000000000000000462714471751340014452 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=20221204.3 GAME_ID='bear-with-me' GAME_NAME='Bear With Me' UNITY3D_NAME='bear with me - the lost robots' ARCHIVE_BASE_0='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='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' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" galaxy64.dll galaxycsharpglue.dll unityplayer.dll ${UNITY3D_NAME}_data/plugins ${UNITY3D_NAME}_data/mono ${UNITY3D_NAME}.exe" CONTENT_GAME_DATA_FILES=" art book ost ${UNITY3D_NAME}_data" APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" APP_MAIN_ICON="${UNITY3D_NAME}.exe" APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/LocalLow/Exordium Games/Bear With Me - The Lost Robots' USER_PERSISTENT_FILES=' userdata/*.save' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.18' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-beat-cop.sh0000755000000000000000000000427314471751340013660 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Anna Lea set -o errexit ### # Beat Cop # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220201.3 # Set game-specific variables GAME_ID='beat-cop' GAME_NAME='Beat Cop' ARCHIVE_BASE_0='beat_cop_en_1_1_744_17129.sh' ARCHIVE_BASE_0_MD5='090be367a794f7c8a0043a94bea71bf8' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='360000' ARCHIVE_BASE_0_VERSION='1.1.744-gog17129' ARCHIVE_BASE_0_URL='https://www.gog.com/game/beat_cop' UNITY3D_NAME='BeatCop' CONTENT_PATH_DEFAULT='data/noarch/game' ARCHIVE_GAME_BIN32_FILES=" lib32 ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86" ARCHIVE_GAME_BIN64_FILES=" lib64 ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="${PKG_DATA_ID} libstdc++.so.6 libSDL2-2.0.so.0 libgdk-x11-2.0.so.0 libz.so.1" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-beatbuddy.sh0000755000000000000000000000717114471751340014131 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # Beatbuddy: Tale of the Guardians # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20200608.2 # Set game-specific variables GAME_ID='beatbuddy' GAME_NAME='Beatbuddy: Tale of the Guardians' ARCHIVES_LIST=' ARCHIVE_HUMBLE_0 ' ARCHIVE_HUMBLE_0='BeatbuddyLinux1439603370.zip' ARCHIVE_HUMBLE_0_MD5='156d19b327a02ac4a277f6f6ad4e188e' ARCHIVE_HUMBLE_0_URL='https://www.humblebundle.com/store/beatbuddy' ARCHIVE_HUMBLE_0_SIZE='1100000' ARCHIVE_HUMBLE_0_VERSION='1.0-humble150815' ARCHIVE_GAME_BIN_PATH='Beatbuddy' ARCHIVE_GAME_BIN_FILES='Beatbuddy.x86 Beatbuddy_Data/Mono Beatbuddy_Data/Plugins' ARCHIVE_GAME_DATA_PATH='Beatbuddy' ARCHIVE_GAME_DATA_FILES='Beatbuddy_Data' DATA_DIRS='./logs' APP_MAIN_TYPE='native' APP_MAIN_EXE='Beatbuddy.x86' # shellcheck disable=SC2016 APP_MAIN_OPTIONS='-logFile ./logs/$(date +%F-%R).log' APP_MAIN_ICON='Beatbuddy_Data/Resources/UnityPlayer.png' PACKAGES_LIST='PKG_DATA PKG_BIN' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTIOn='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID glibc libstdc++ glu glx xcursor gtk2 alsa" PKG_BIN_DEPS_ARCH='lib32-libx11' PKG_BIN_DEPS_DEB='libx11-6' PKG_BIN_DEPS_GENTOO='x11-libs/libX11[abi_x86_32]' # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" set_standard_permissions "$PLAYIT_WORKDIR/gamedata" prepare_package_layout rm --recursive "$PLAYIT_WORKDIR/gamedata" # Get game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-beautiful-desolation.sh0000755000000000000000000000525214471751340016303 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Beautiful Desolation # send your bug reports to contact@dotslashplay.it ### script_version=20230414.1 GAME_ID='beautiful-desolation' GAME_NAME='Beautiful Desolation' ARCHIVE_BASE_1='beautiful_desolation_1_0_5_5_44769.sh' ARCHIVE_BASE_1_MD5='0656c2fb0ef2ad2bc0087d16f5d02e46' ARCHIVE_BASE_1_SIZE='16000000' ARCHIVE_BASE_1_VERSION='1.0.5.5-gog44769' ARCHIVE_BASE_1_URL='https://www.gog.com/game/beautiful_desolation' ARCHIVE_BASE_0='beautiful_desolation_1_0_3_9_38147.sh' ARCHIVE_BASE_0_MD5='18fe66cffc59f033a4d057233b1ebb1f' ARCHIVE_BASE_0_SIZE='14000000' ARCHIVE_BASE_0_VERSION='1.0.3.9-gog38147' UNITY3D_NAME='desolation' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_GAME_DATA_VIDEO_FILES=" ${UNITY3D_NAME}_Data/StreamingAssets/videoEncoded ${UNITY3D_NAME}_Data/StreamingAssets/videoEncoded_webm ${UNITY3D_NAME}_Data/StreamingAssets/bundles/videoencoded_mp4-media_*" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN PKG_DATA_VIDEO PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_VIDEO_ID="${PKG_DATA_ID}-video" PKG_DATA_VIDEO_DESCRIPTION="$PKG_DATA_DESCRIPTION - video" PKG_DATA_DEPS="$PKG_DATA_DEPS $PKG_DATA_VIDEO_ID" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions target_version='2.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 . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-bee-simulator.sh0000755000000000000000000000505614471751340014736 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Bee Simulator # send your bug reports to contact@dotslashplay.it ### script_version=20230706.1 GAME_ID='bee-simulator' GAME_NAME='Bee Simulator' ARCHIVE_BASE_0='setup_bee_simulator_1.0_(55451).exe' ARCHIVE_BASE_0_MD5='74cbfd6873ed784201bea56a857d6222' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_bee_simulator_1.0_(55451)-1.bin' ARCHIVE_BASE_0_PART1_MD5='214c92f714f12bdf6a3408f0650ec2d2' ARCHIVE_BASE_0_PART2='setup_bee_simulator_1.0_(55451)-2.bin' ARCHIVE_BASE_0_PART2_MD5='9dcca7e498376ff76b40e86d7fae8cf4' ARCHIVE_BASE_0_SIZE='11000000' ARCHIVE_BASE_0_VERSION='1.0-gog55451' ARCHIVE_BASE_0_URL='https://www.gog.com/game/bee_simulator' UNREALENGINE4_NAME='bebee' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" engine ${UNREALENGINE4_NAME}/binaries ${UNREALENGINE4_NAME}/plugins ${UNREALENGINE4_NAME}.exe" CONTENT_GAME_MOVIES_FILES=" ${UNREALENGINE4_NAME}/content/movies" CONTENT_GAME_DATA_FILES=" ${UNREALENGINE4_NAME}" WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=" users/\${USER}/AppData/Local/${UNREALENGINE4_NAME}/Saved" APP_MAIN_EXE="${UNREALENGINE4_NAME}.exe" APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=101' PACKAGES_LIST='PKG_BIN PKG_MOVIES PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_MOVIES_ID="${GAME_ID}-movies" PKG_MOVIES_DESCRIPTION='movies' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_MOVIES_ID $PKG_DATA_ID" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-before-your-eyes.sh0000755000000000000000000000445114471751340015365 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=20230709.1 GAME_ID='before-your-eyes' GAME_NAME='Before Your Eyes' ARCHIVE_BASE_0='setup_before_your_eyes_1.2.6.9_(61649).exe' ARCHIVE_BASE_0_MD5='4da11b5113be696a0dc0764e19e06a99' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='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='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_data/plugins monobleedingedge *.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Goodbye World/Before Your Eyes' APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files rm --recursive \ '__redist' \ 'app' \ 'commonappdata' \ 'tmp' ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-behind-the-frame.sh0000755000000000000000000000510114471751340015254 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi set -o errexit ### # Behind the Frame: The Finest Scenery # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20221129.5 # Set game-specific variables GAME_ID='behind-the-frame' GAME_NAME='Behind the Frame: The Finest Scenery' ARCHIVE_BASE_0='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='.' ARCHIVE_GAME_BIN_FILES=' behind?the?frame.exe behind?the?frame_data/plugins gameassembly.dll unitycrashhandler64.exe unityplayer.dll' ARCHIVE_GAME_DATA_FILES=' behind?the?frame_data' APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" APP_MAIN_ICON="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Use a dedicated log file for the current game session APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a dedicated log file for the current game session mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Use persistent storage for user data APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/LocalLow/Silver Lining Studio/Behind the Frame' USER_PERSISTENT_FILES=' userdata/saveData.txt userdata/*.json' # Load common functions target_version='2.17' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icon PKG='PKG_DATA' icons_inclusion # Include game data prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-beholder-2.sh0000755000000000000000000000710514471751340014106 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright © 2015-2022, Antoine Le Gonidec # Copyright © 2021-2022, 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. ### ### # Beholder 2 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220118.2 # Set game-specific variables GAME_ID='beholder-2' GAME_NAME='Beholder 2' ARCHIVE_BASE_0='beholder_2_1_1_13306_25983.sh' ARCHIVE_BASE_0_MD5='af3cb735132ee4fbc17079b932d72dd6' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='3700000' ARCHIVE_BASE_0_VERSION='1.1.13306-gog25983' ARCHIVE_BASE_0_URL='https://www.gog.com/game/beholder_2' UNITY3D_NAME='Beholder2' CONTENT_PATH_DEFAULT='data/noarch/game' ARCHIVE_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/MonoBleedingEdge/x86 ${UNITY3D_NAME}_Data/Plugins/x86" ARCHIVE_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/MonoBleedingEdge/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data hashes.txt" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="${PKG_DATA_ID} libc.so.6 libstdc++.so.6 libgdk-x11-2.0.so.0 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libz.so.1" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "$PLAYIT_WORKDIR/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-beholder.sh0000755000000000000000000000513214471751340013745 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Beholder # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220628.1 GAME_ID='beholder' GAME_NAME='Beholder' # This DRM-free archive is no longer available for sale from Humble Bundle ARCHIVE_BASE_0='BeholderLinux_v1.3.0.9120.zip' ARCHIVE_BASE_0_MD5='580a52329b99c701acf3b3665068c6c6' ARCHIVE_BASE_0_SIZE='1800000' ARCHIVE_BASE_0_VERSION='1.3.0.9120-humble1' UNITY3D_NAME='Beholder' CONTENT_PATH_DEFAULT='BeholderLinux_v1.3.0.9120' ARCHIVE_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86" ARCHIVE_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32="${UNITY3D_NAME}.x86" APP_MAIN_EXE_BIN64="${UNITY3D_NAME}.x86_64" APP_MAIN_ICON="${UNITY3D_NAME}_Data/Resources/UnityPlayer.png" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID libc.so.6 libGL.so.1 xcursor libxrandr" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Use a dedicated log file for the current game session APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a dedicated log file for the current game session mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-besiege.sh0000755000000000000000000001067614471751340013575 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # 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. ### ### # Besiege # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210424.5 # Set game-specific variables GAME_ID='besiege' GAME_NAME='Besiege' ARCHIVES_LIST=' ARCHIVE_BASE_0' ARCHIVE_BASE_0='besiege_v1_05_12536_39273.sh' ARCHIVE_BASE_0_MD5='96d7e8ac29aa1f0bab020610d1a83c90' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='2800000' ARCHIVE_BASE_0_VERSION='1.05-gog39273' ARCHIVE_BASE_0_URL='https://www.gog.com/game/besiege' ARCHIVE_GAME_BIN32_PATH='data/noarch/game' ARCHIVE_GAME_BIN32_FILES='Besiege.x86 Besiege_Data/Mono/x86 Besiege_Data/Plugins/x68' ARCHIVE_GAME_BIN64_PATH='data/noarch/game' ARCHIVE_GAME_BIN64_FILES='Besiege.x86_64 Besiege_Data/Mono/x86_64 Besiege_Data/Plugins/x86_64' ARCHIVE_GAME_DATA_PATH='data/noarch/game' ARCHIVE_GAME_DATA_FILES='Besiege_Data' APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32='Besiege.x86' APP_MAIN_EXE_BIN64='Besiege.x86_64' APP_MAIN_ICON='Besiege_Data/Resources/UnityPlayer.png' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="${PKG_DATA_ID} glibc libstdc++ glx xcursor libxrandr gtk2 libgdk_pixbuf-2.0.so.0 libgobject-2.0.so.0 libglib-2.0.so.0" PKG_BIN32_DEPS_ARCH='lib32-libx11' PKG_BIN32_DEPS_DEB='libx11-6' PKG_BIN32_DEPS_GENTOO='x11-libs/libX11[abi_x86_32]' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPS_ARCH='libx11' PKG_BIN64_DEPS_DEB="$PKG_BIN32_DEPS_DEB" PKG_BIN64_DEPS_GENTOO='x11-libs/libX11' # Work around Unity3D poor support for non-US locales APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Work around Unity3D poor support for non-US locales export LANG=C' # Use a dedicated per-session log file APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a dedicated per-session log file mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile logs/$(date +%F-%R).log"' # Use persistent storage for user data and settings CONFIG_FILES="${CONFIG_FILES} Besiege_Data/*.xml" DATA_DIRS="${DATA_DIRS} Besiege_Data/Mods" DATA_FILES="${DATA_FILES} Besiege_Data/CompletedLevels.txt" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-beyond-zork.sh0000755000000000000000000000615114471751340014426 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # 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. ### ### # Beyond Zork: The Coconut of Quendor # build native packages from the original installers # send your bug reports to vv221@dotslashplay.it ### script_version=20190302.2 # Set game-specific variables GAME_ID='beyond-zork' GAME_NAME='Beyond Zork: The Coconut of Quendor' ARCHIVE_GOG='setup_beyond_zork_2.1.0.17.exe' ARCHIVE_GOG_URL='https://www.gog.com/game/the_zork_anthology' ARCHIVE_GOG_MD5='8a5168d7340af5b1b4df708f467785c0' ARCHIVE_GOG_SIZE='21000' ARCHIVE_GOG_VERSION='1.0-gog2.1.0.17' ARCHIVE_DOC_MAIN_PATH='app' ARCHIVE_DOC_MAIN_FILES='*.pdf' ARCHIVE_GAME_MAIN_PATH='app' ARCHIVE_GAME_MAIN_FILES='*.exe beyondzo.mg1 data' DATA_FILES='./*.SAV' APP_MAIN_TYPE='dosbox' APP_MAIN_EXE='frotz.exe' APP_MAIN_OPTIONS='data\\beyondzo.dat' APP_MAIN_ICON='app/goggame-1207661533.ico' PACKAGES_LIST='PKG_MAIN' PKG_MAIN_DEPS='dosbox' # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Extract icons icons_get_from_workdir 'APP_MAIN' rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers launcher_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-bff-or-die.sh0000755000000000000000000000752014471751340014076 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # BFF or Die # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20200929.1 # Set game-specific variables GAME_ID='bff-or-die' GAME_NAME='BFF or Die' ARCHIVES_LIST=' ARCHIVE_ITCH_0' ARCHIVE_ITCH_0='BffOrDie_Linux.zip' ARCHIVE_ITCH_0_URL='https://asa-studio.itch.io/bff-or-die' ARCHIVE_ITCH_0_MD5='52968da91f57da3619c3ae8a666d660a' ARCHIVE_ITCH_0_SIZE='790000' ARCHIVE_ITCH_0_VERSION='1.0-itch' ARCHIVE_ITCH_0_TYPE='zip' ARCHIVE_GAME_BIN32_PATH='BffOrDie_Linux' ARCHIVE_GAME_BIN32_FILES='BffOrDie.x86 BffOrDie_Data/Mono/x86 BffOrDie_Data/Plugins/x86' ARCHIVE_GAME_BIN64_PATH='BffOrDie_Linux' ARCHIVE_GAME_BIN64_FILES='BffOrDie.x86_64 BffOrDie_Data/Mono/x86_64 BffOrDie_Data/Plugins/x86_64' ARCHIVE_GAME_DATA_PATH='BffOrDie_Linux' ARCHIVE_GAME_DATA_FILES='BffOrDie_Data' DATA_DIRS='./logs' APP_MAIN_TYPE='native' APP_MAIN_PRERUN='# Work around Unity3D poor support for non-US locales export LANG=C' APP_MAIN_EXE_BIN32='BffOrDie.x86' APP_MAIN_EXE_BIN64='BffOrDie.x86_64' APP_MAIN_ICON='BffOrDie_Data/Resources/UnityPlayer.png' # Use a per-session dedicated file for logs # shellcheck disable=SC2016 APP_MAIN_OPTIONS='-logFile ./logs/$(date +%F-%R).log' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID glibc libstdc++" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-binaries.sh0000755000000000000000000000451114471751340013755 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Binaries # send your bug reports to contact@dotslashplay.it ### script_version=20231015.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='binaries' GAME_NAME='Binaries' ARCHIVE_BASE_0_NAME='Binaries_Linux_v1.1.0.zip' ARCHIVE_BASE_0_MD5='ed3756af1ebe72560d6e52ab67013f4c' ARCHIVE_BASE_0_SIZE='470000' ARCHIVE_BASE_0_VERSION='1.1.0-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/binaries' UNITY3D_NAME='Binaries' ## TODO: Check if the Steam libraries can be dropped. UNITY3D_PLUGINS=' libCSteamworks.so libsteam_api.so ScreenSelector.so' CONTENT_PATH_DEFAULT='.' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete Apple archives junk find . -name '*.rsrc' -delete ) # Include game data PKG='PKG_DATA' icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN32' launchers_write PKG='PKG_BIN64' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-bio-menace.sh0000755000000000000000000000722014471751340014160 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # Bio Menace # build native packages from the original installers # send your bug reports to vv221@dotslashplay.it ### script_version=20190422.1 # Set game-specific variables GAME_ID='bio-menace' GAME_NAME='Bio Menace' ARCHIVE_GOG='gog_bio_menace_2.0.0.2.sh' ARCHIVE_GOG_URL='https://www.gog.com/game/bio_menace' ARCHIVE_GOG_MD5='75167ee3594dd44ec8535b29b90fe4eb' ARCHIVE_GOG_SIZE='14000' ARCHIVE_GOG_VERSION='1.1-gog2.0.0.2' ARCHIVE_DOC0_MAIN_PATH='data/noarch/docs' ARCHIVE_DOC0_MAIN_FILES='*.pdf *.txt' ARCHIVE_DOC1_MAIN_PATH='data/noarch/data' ARCHIVE_DOC1_MAIN_FILES='*.txt' ARCHIVE_GAME_MAIN_PATH='data/noarch/data' ARCHIVE_GAME_MAIN_FILES='*.bm? *.conf *.exe biopatch.zip' CONFIG_FILES='./*.conf ./config.bm?' DATA_FILES='./SAVEGAM*' APP_1_ID="${GAME_ID}-1" APP_1_NAME="$GAME_NAME - Episode One: Dr. Mangleʼs Lab" APP_1_TYPE='dosbox' APP_1_EXE='bmenace1.exe' APP_1_ICON='data/noarch/support/icon.png' APP_2_ID="${GAME_ID}-2" APP_2_NAME="$GAME_NAME - Episode Two: The Hidden Lab" APP_2_TYPE='dosbox' APP_2_EXE='bmenace2.exe' APP_2_ICON='data/noarch/support/icon.png' APP_3_ID="${GAME_ID}-3" APP_3_NAME="$GAME_NAME - Episode Three: Master Cain" APP_3_TYPE='dosbox' APP_3_EXE='bmenace3.exe' APP_3_ICON='data/noarch/support/icon.png' PACKAGES_LIST='PKG_MAIN' PKG_MAIN_DEPS='dosbox' # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" tolower "$PLAYIT_WORKDIR/gamedata" prepare_package_layout # Get icon icons_get_from_workdir 'APP_1' 'APP_2' 'APP_3' rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers launchers_write 'APP_1' 'APP_2' 'APP_3' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-biped.sh0000755000000000000000000000656614471751340013260 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Biped # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210628.1 # Set game-specific variables GAME_ID='biped' GAME_NAME='Biped' ARCHIVE_BASE_0='setup_biped_1.6_(39586).exe' ARCHIVE_BASE_0_MD5='c58ee9791defa88ef1bb92ba3b2f01d2' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='6500000' ARCHIVE_BASE_0_VERSION='1.6-gog39586' ARCHIVE_BASE_0_PART1='setup_biped_1.6_(39586)-1.bin' ARCHIVE_BASE_0_PART1_MD5='48103181d4c54a068db5eec37e10d7e5' ARCHIVE_BASE_0_PART1_TYPE='innosetup' ARCHIVE_BASE_0_URL='https://www.gog.com/game/biped' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='biped_data/mono biped_data/plugins *.dll *.exe' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='biped_data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='biped.exe' APP_MAIN_ICON='biped.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="${PKG_DATA_ID} wine" # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-bit-rat-singularity.sh0000755000000000000000000000455614471751340016104 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # BIT RAT: Singularity # send your bug reports to contact@dotslashplay.it ### script_version=202308181.1 GAME_ID='bit-rat-singularity' GAME_NAME='BIT RAT: Singularity' ARCHIVE_BASE_0='bit_rat_singularity_linux.zip' ARCHIVE_BASE_0_MD5='a2780bc1b25a6b07116dc739139bb561' ARCHIVE_BASE_0_SIZE='33000' ARCHIVE_BASE_0_VERSION='1.0-itch1' ARCHIVE_BASE_0_URL='https://bucketdrumgames.itch.io/bitrat' CONTENT_PATH_DEFAULT='bit_rat_singularity' CONTENT_GAME_BIN_FILES=' runner' CONTENT_GAME_DATA_FILES=' assets' APP_MAIN_EXE='runner' APP_MAIN_ICON='assets/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libssl.so.1.0.0 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 libz.so.1' # Build 512×512 icon from the 1024×1024 provided one SCRIPT_DEPS="${SCRIPT_DEPS:-} convert" # 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icons PKG='PKG_DATA' ## Build 512×512 icon from the 1024×1024 provided one APP_MAIN_ICONS_LIST="$(application_icons_list 'APP_MAIN') APP_MAIN_ICON_512" APP_MAIN_ICON_512='assets/icon_512.png' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" convert "$APP_MAIN_ICON" -resize 512 "$APP_MAIN_ICON_512" ) icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-bit-trip-beat.sh0000755000000000000000000000506014471751340014624 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Bit.Trip Beat # send your bug reports to contact@dotslashplay.it ### script_version=20230101.1 # Set game-specific variables GAME_ID='bit-trip-beat' GAME_NAME='BIT.TRIP BEAT' ARCHIVE_BASE_0='gog_bit_trip_beat_2.0.0.1.sh' ARCHIVE_BASE_0_MD5='32b6fd23c32553aa7c50eaf4247ba664' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='120000' ARCHIVE_BASE_0_VERSION='1.0.5-gog2.0.0.1' ARCHIVE_BASE_0_URL='https://www.gog.com/game/bittrip_beat' CONTENT_PATH_DEFAULT='data/noarch/game/bit.trip.beat-1.0-32/bit.trip.beat' CONTENT_GAME_BIN32_FILES=' bit.trip.beat' CONTENT_GAME_BIN64_PATH='data/noarch/game/bit.trip.beat-1.0-64/bit.trip.beat' CONTENT_GAME_BIN64_FILES=' bit.trip.beat' CONTENT_GAME_DATA_FILES=' Effects Fonts Sounds Models Shaders Textures BEAT.png' CONTENT_DOC0_DATA_PATH='data/noarch/game/bit.trip.beat-1.0-32' CONTENT_DOC0_DATA_FILES=' README* *.txt' APP_MAIN_EXE='bit.trip.beat' APP_MAIN_ICON='BEAT.png' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libGL.so.1 libm.so.6 libogg.so.0 libopenal.so.1 libpthread.so.0 librt.so.1 libSDL-1.2.so.0 libstdc++.so.6 libvorbisfile.so.3 libvorbis.so.0 libz.so.1' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN32_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.20' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-bit-trip-runner-1.sh0000755000000000000000000000535414471751340015366 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Bit.Trip Runner 1 # send your bug reports to contact@dotslashplay.it ### script_version=20230205.1 GAME_ID='bit-trip-runner-1' GAME_NAME='Bit.Trip Runner' ARCHIVE_BASE_0='gog_bit_trip_runner_2.0.0.1.sh' ARCHIVE_BASE_0_MD5='b6f0fe70e1a2d9408967b8fd6bd881e1' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='120000' ARCHIVE_BASE_0_VERSION='1.0.5-gog.2.0.0.1' ARCHIVE_BASE_0_URL='https://www.gog.com/game/bittrip_runner' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN32_PATH="${CONTENT_PATH_DEFAULT}/bit.trip.runner-1.0-32/bit.trip.runner" CONTENT_GAME_BIN32_FILES=' bit.trip.runner' CONTENT_GAME_BIN64_PATH="${CONTENT_PATH_DEFAULT}/bit.trip.runner-1.0-64/bit.trip.runner" CONTENT_GAME_BIN64_FILES=' bit.trip.runner' CONTENT_GAME_DATA_PATH="${CONTENT_PATH_DEFAULT}/bit.trip.runner-1.0-32/bit.trip.runner" CONTENT_GAME_DATA_FILES=' Effects Fonts Layouts Sounds Models Shaders Textures2d RUNNER.png' CONTENT_DOC_DATA_PATH="${CONTENT_PATH_DEFAULT}/bit.trip.runner-1.0-32" CONTENT_DOC_DATA_FILES=' README* *.txt' APP_MAIN_EXE='bit.trip.runner' APP_MAIN_ICON='bit.trip.runner-1.0-32/bit.trip.runner/RUNNER.png' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libGL.so.1 libm.so.6 libogg.so.0 libopenal.so.1 librt.so.1 libSDL-1.2.so.0 libstdc++.so.6 libvorbisfile.so.3 libvorbis.so.0 libz.so.1' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN32_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-bit-trip-runner-2.sh0000755000000000000000000001071414471751340015363 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Bit.Trip Runner 2 # send your bug reports to contact@dotslashplay.it ### script_version=20230901.1 GAME_ID='bit-trip-runner-2' GAME_NAME='Bit.Trip Presents… Runner2: Future Legend of Rhythm Alien' ARCHIVE_BASE_GOG_0='gog_bit_trip_presents_runner2_future_legend_of_rhythm_alien_2.0.0.1.sh' ARCHIVE_BASE_GOG_0_MD5='28c003bae691aa46d841547da8e3def6' ARCHIVE_BASE_GOG_0_SIZE='1600000' ARCHIVE_BASE_GOG_0_VERSION='1.0-gog2.0.0.1' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/bittrip_presents_runner2_future_legend_of_rhythm_alien' ## These native Linux DRM-free builds are no longer available from the Humble Store. ## Only builds for Windows and MacOS are provided. ARCHIVE_BASE_HUMBLE_32BIT_0='runner2_i386_1388171186.tar.gz' ARCHIVE_BASE_HUMBLE_32BIT_0_MD5='ea105bdcd486879fb99889b87e90eed5' ARCHIVE_BASE_HUMBLE_32BIT_0_SIZE='770000' ARCHIVE_BASE_HUMBLE_32BIT_0_VERSION='1.0-humble1388171186' ARCHIVE_BASE_HUMBLE_64BIT_0='runner2_amd64_1388171186.tar.gz' ARCHIVE_BASE_HUMBLE_64BIT_0_MD5='2f7ccdb675a63a5fc152514682e97480' ARCHIVE_BASE_HUMBLE_64BIT_0_SIZE='770000' ARCHIVE_BASE_HUMBLE_64BIT_0_VERSION='1.0-humble1388171186' CONTENT_PATH_DEFAULT_GOG='data/noarch/game/runner2-1.0-32/runner2' CONTENT_PATH_DEFAULT_GOG_BIN32='data/noarch/game/runner2-1.0-32/runner2' CONTENT_PATH_DEFAULT_GOG_BIN64='data/noarch/game/runner2-1.0-64/runner2' CONTENT_PATH_DEFAULT_HUMBLE='runner2-1.0/runner2' CONTENT_LIBS_BIN32_PATH_GOG="$CONTENT_PATH_DEFAULT_GOG_BIN32" CONTENT_LIBS_BIN32_FILES=' libfmodevent.so libfmodevent-4.44.08.so libfmodex.so libfmodex-4.44.08.so' CONTENT_GAME_BIN32_PATH_GOG="$CONTENT_PATH_DEFAULT_GOG_BIN32" CONTENT_GAME_BIN32_FILES=' runner2' CONTENT_LIBS_BIN64_PATH_GOG="$CONTENT_PATH_DEFAULT_GOG_BIN64" CONTENT_LIBS_BIN64_FILES=' libfmodevent64.so libfmodevent64-4.44.07.so libfmodex64.so libfmodex64-4.44.07.so' CONTENT_GAME_BIN64_PATH_GOG="$CONTENT_PATH_DEFAULT_GOG_BIN64" CONTENT_GAME_BIN64_FILES=' runner2' CONTENT_GAME_DATA_FILES=' Effects Fonts Gameplay Graphics Menus Models Shaders Sounds Textures package.toc Runner2.png' CONTENT_DOC_DATA_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/.." CONTENT_DOC_DATA_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/.." CONTENT_DOC_DATA_FILES=' README README.html' APP_MAIN_EXE='runner2' APP_MAIN_ICON='Runner2.png' PACKAGES_LIST_GOG='PKG_BIN32 PKG_BIN64 PKG_DATA' PACKAGES_LIST_HUMBLE_32BIT='PKG_BIN32 PKG_DATA' PACKAGES_LIST_HUMBLE_64BIT='PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' ## Ensure easy upgrade from packages generated using pre-20211125.2 game script PKG_DATA_PROVIDES=' runner-2-data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 librt.so.1 libSDL-1.2.so.0 libstdc++.so.6 libz.so.1' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" ## Ensure easy upgrade from packages generated using pre-20211125.2 game script PKG_BIN_PROVIDES=' runner-2' PKG_BIN32_PROVIDES="$PKG_BIN_PROVIDES" PKG_BIN64_PROVIDES="$PKG_BIN_PROVIDES" # Load common functions target_version='2.25' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers case "$(context_archive)" in ('ARCHIVE_BASE_GOG_'*|'ARCHIVE_BASE_HUMBLE_32BIT_'*) PKG='PKG_BIN32' launchers_write ;; ('ARCHIVE_BASE_GOG_'*|'ARCHIVE_BASE_HUMBLE_64BIT_'*) PKG='PKG_BIN64' launchers_write ;; esac # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-bit-trip-runner-3.sh0000755000000000000000000000660214471751340015365 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # Bit Trip Runner 3 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20200926.1 # Set game-specific variables GAME_ID='bit-trip-runner-3' GAME_NAME='Bit Trip Runner 3' ARCHIVES_LIST=' ARCHIVE_ITCH_0' ARCHIVE_ITCH_0='Runner3WIN.zip' ARCHIVE_ITCH_0_MD5='d13f6fa59e9b55a259a078328a87c9f9' ARCHIVE_ITCH_0_TYPE='zip' ARCHIVE_ITCH_0_URL='https://choice-provisions.itch.io/runner3' ARCHIVE_ITCH_0_VERSION='2018.11.12-itch1' ARCHIVE_ITCH_0_SIZE='2700000' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='Runner3.exe UnityPlayer.dll Runner3_Data/Mono Runner3_Data/Plugins' ARCHIVE_GAME0_DATA_PATH='.' ARCHIVE_GAME0_DATA_FILES='Runner3_Data' # Store saved games into a persistent path DATA_FILES='*.sav' APP_MAIN_TYPE='wine' APP_MAIN_EXE='Runner3.exe' APP_MAIN_ICON='Runner3.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine glx" # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Extract icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Clean up temporary files rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build packages write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-blacksad-under-the-skin.sh0000755000000000000000000000516414471751340016565 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Blacksad: Under the Skin # send your bug reports to contact@dotslashplay.it ### script_version=20231015.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='blacksad-under-the-skin' GAME_NAME='Blacksad: Under the Skin' ARCHIVE_BASE_0_NAME='setup_blacksad_under_the_skin_1.0.5_12210.2935.2020040301_(37312).exe' ARCHIVE_BASE_0_MD5='9c9211aac30170bf4ac85950094f99a2' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_blacksad_under_the_skin_1.0.5_12210.2935.2020040301_(37312)-1.bin' ARCHIVE_BASE_0_PART1_MD5='0d21ed49ef3377b4816ae364cbb5eee1' ARCHIVE_BASE_0_PART2_NAME='setup_blacksad_under_the_skin_1.0.5_12210.2935.2020040301_(37312)-2.bin' ARCHIVE_BASE_0_PART2_MD5='58e82951055a5c863cd804f2421e729f' ARCHIVE_BASE_0_PART3_NAME='setup_blacksad_under_the_skin_1.0.5_12210.2935.2020040301_(37312)-3.bin' ARCHIVE_BASE_0_PART3_MD5='acf9dc21ffa4d483b124561e5b19633d' ARCHIVE_BASE_0_PART4_NAME='setup_blacksad_under_the_skin_1.0.5_12210.2935.2020040301_(37312)-4.bin' ARCHIVE_BASE_0_PART4_MD5='d1c80d50a67c2a4212e9898416193562' ARCHIVE_BASE_0_SIZE='16000000' ARCHIVE_BASE_0_VERSION='1.0.5-gog37312' ARCHIVE_BASE_0_URL='https://www.gog.com/game/blacksad_under_the_skin' UNITY3D_NAME='blacksad' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_DATA_ASSETS_FILES=" ${UNITY3D_NAME}_data/streamingassets" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/PenduloStudios/Blacksad' PACKAGES_LIST='PKG_BIN PKG_DATA_ASSETS PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_ASSETS_ID="${PKG_DATA_ID}-assets" PKG_DATA_ASSETS_DESCRIPTION="$PKG_DATA_DESCRIPTION - assets" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_ASSETS_ID" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data PKG='PKG_DATA' icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-blade-runner.sh0000755000000000000000000000662114471751340014543 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 macaron # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Blade Runner # send your bug reports to contact@dotslashplay.it ### script_version=20230103.1 GAME_ID='blade-runner' GAME_NAME='Blade Runner' # Archives ## Blade Runner ARCHIVE_BASE_EN_0='blade_runner_1_0_svm_src_34722.sh' ARCHIVE_BASE_EN_0_MD5='d9dd6f98eb8dc9401d5499a1d48e5d76' ARCHIVE_BASE_EN_0_EXTRACTOR='unzip' ARCHIVE_BASE_EN_0_SIZE='1700000' ARCHIVE_BASE_EN_0_VERSION='1.0-gog34722' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/blade_runner' ARCHIVE_BASE_FR_0='blade_runner_french_1_0_svm_src_34722.sh' ARCHIVE_BASE_FR_0_MD5='98ee3723ac6114a6b464af0b07f76757' ARCHIVE_BASE_FR_0_EXTRACTOR='unzip' ARCHIVE_BASE_FR_0_SIZE='1700000' ARCHIVE_BASE_FR_0_VERSION='1.0-gog34722' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/blade_runner' ## Optional subtitles ARCHIVE_OPTIONAL_SUBTITLES='Blade_Runner_Subtitles-v6.zip' ARCHIVE_OPTIONAL_SUBTITLES_MD5='f9b4e5738d3c6092cac3485c41f47cb2' ARCHIVE_OPTIONAL_SUBTITLES_URL='https://www.scummvm.org/games/#bladerunner' # Archive contents ## Blade Runner CONTENT_PATH_DEFAULT='data/noarch/game/data' CONTENT_GAME_MAIN_FILES=' *.dat *.mix *.tlk' CONTENT_DOC_MAIN_FILES=' *.pdf' CONTENT_DOC0_MAIN_PATH='data/noarch/docs' CONTENT_DOC0_MAIN_FILES=' *.txt' ## Optional subtitles CONTENT_DOC_SUBTITLES_PATH='.' CONTENT_DOC_SUBTITLES_FILES=' readme.txt' CONTENT_GAME_SUBTITLES_PATH='.' CONTENT_GAME_SUBTITLES_FILES=' subtitles.mix' APP_MAIN_TYPE='scummvm' APP_MAIN_SCUMMID='bladerunner:bladerunner' APP_MAIN_ICON='../../support/icon.png' APP_RESTORED_TYPE='scummvm' APP_RESTORED_SCUMMID='bladerunner:bladerunner-final' APP_RESTORED_ID="${GAME_ID}-restored" APP_RESTORED_NAME="$GAME_NAME with restored content" APP_RESTORED_ICON='../../support/icon.png' PKG_MAIN_ID="$GAME_ID" PKG_MAIN_ID_EN="${GAME_ID}-en" PKG_MAIN_ID_FR="${GAME_ID}-fr" PKG_MAIN_PROVIDE="$PKG_MAIN_ID" PKG_MAIN_DEPS='scummvm' # Load common functions target_version='2.20' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Include optional subtitles if they are provided archive_initialize_optional \ 'ARCHIVE_SUBTITLES' \ 'ARCHIVE_OPTIONAL_SUBTITLES' if [ -n "$ARCHIVE_SUBTITLES" ]; then archive_extraction 'ARCHIVE_SUBTITLES' content_inclusion 'DOC_SUBTITLES' 'PKG_MAIN' "$(path_documentation)/subtitles" content_inclusion 'GAME_SUBTITLES' 'PKG_MAIN' "$(path_game_data)" rm --recursive "${PLAYIT_WORKDIR}/gamedata" fi # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" tolower . ) # Include game icons icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-blind-men.sh0000755000000000000000000000720214471751340014026 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Blind Men # send your bug reports to contact@dotslashplay.it ### script_version=20230316.2 GAME_ID='blind-men' GAME_NAME='Blind Men' ARCHIVE_BASE_0='Blind_Men-1.3-linux.tar.bz2' ARCHIVE_BASE_0_MD5='7ad9b061db08427caebbef1650f34004' ARCHIVE_BASE_0_SIZE='330000' ARCHIVE_BASE_0_VERSION='1.3-itch' ARCHIVE_BASE_0_URL='https://maneatergames.itch.io/blind-men' CONTENT_PATH_DEFAULT='Blind_Men-1.3-linux' CONTENT_LIBS_BIN32_PATH="${CONTENT_PATH_DEFAULT}/lib/linux-i686" CONTENT_LIBS_BIN32_FILES=' libavcodec.so.57 libavformat.so.57 libavresample.so.3 libavutil.so.55 libfreetype.so.6 libGLEW.so.1.7 libpng12.so.0 libpython2.7.so.1.0 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0 libSDL2_ttf-2.0.so.0 libswresample.so.2 libswscale.so.4' CONTENT_LIBS_BIN64_PATH="${CONTENT_PATH_DEFAULT}/lib/linux-x86_64" CONTENT_LIBS_BIN64_FILES=' libavcodec.so.57 libavformat.so.57 libavresample.so.3 libavutil.so.55 libfreetype.so.6 libGLEW.so.1.7 libpng12.so.0 libpython2.7.so.1.0 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0 libSDL2_ttf-2.0.so.0 libswresample.so.2 libswscale.so.4' CONTENT_GAME_BIN32_FILES=' lib/linux-i686/eggs lib/linux-i686/lib lib/linux-i686/Blind_Men lib/linux-i686/python lib/linux-i686/pythonw lib/linux-i686/zsync lib/linux-i686/zsyncmake' CONTENT_GAME_BIN64_FILES=' lib/linux-x86_64/eggs lib/linux-x86_64/lib lib/linux-x86_64/Blind_Men lib/linux-x86_64/python lib/linux-x86_64/pythonw lib/linux-x86_64/zsync lib/linux-x86_64/zsyncmake' CONTENT_GAME_DATA_FILES=' game renpy lib/pythonlib2.7 Blind_Men.py' APP_MAIN_EXE_BIN32='lib/linux-i686/Blind_Men' APP_MAIN_EXE_BIN64='lib/linux-x86_64/Blind_Men' APP_MAIN_OPTIONS='-EO Blind_Men.py' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libGL.so.1 libGLU.so.1 libjpeg.so.62 libm.so.6 libpthread.so.0 librt.so.1 libutil.so.1 libX11.so.6 libXext.so.6 libXi.so.6 libXmu.so.6 libz.so.1' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Use default Ren'Py icon # This will show as a generic icon if Ren'Py is not installed. launcher_desktop() { local application application="$1" cat <<- EOF [Desktop Entry] Version=1.0 Type=Application Name=$(application_name "$application") Icon=renpy $(launcher_desktop_exec "$application") Categories=$(application_category "$application") EOF } # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-blocks-that-matter.sh0000755000000000000000000001062514471751340015671 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Blocks that matter # send your bug reports to contact@dotslashplay.it ### script_version=20230812.2 GAME_ID='blocks-that-matter' GAME_NAME='Blocks that matter' ARCHIVE_BASE_GOG_0='gog_blocks_that_matter_2.0.0.3.sh' ARCHIVE_BASE_GOG_0_MD5='af9cec2b6104720c32718c02be120657' ARCHIVE_BASE_GOG_0_SIZE='200000' ARCHIVE_BASE_GOG_0_VERSION='1.1.0.4c-gog2.0.0.3' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/blocks_that_matter' ARCHIVE_BASE_HUMBLE_0='BlocksThatMatter_linux_1.1.0.3.zip' ARCHIVE_BASE_HUMBLE_0_MD5='a3c8509ba8b3ffc52522a1eac3dc0f10' ARCHIVE_BASE_HUMBLE_0_SIZE='190000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.1.0.3-humble1' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/blocks-that-matter' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='Blocks That Matter linux 1.1.0.3' CONTENT_GAME_MAIN_FILES=' BTM_lib BTM.jar BTM.png BTM.bftm config/*.xml' CONTENT_DOC_MAIN_PATH="${CONTENT_PATH_DEFAULT}/README" CONTENT_DOC_MAIN_FILES=' *.txt' USER_PERSISTENT_FILES=' config/*.xml' APP_MAIN_TYPE='java' APP_MAIN_EXE='BTM.jar' APP_MAIN_ICON='BTM.png' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libopenal.so.1' # Include shipped libraries that can not be replaced by system ones CONTENT_LIBS_LIBS32_FILES=' libjinput-linux.so liblwjgl.so' CONTENT_LIBS_LIBS64_FILES=' libjinput-linux64.so liblwjgl64.so' PACKAGES_LIST='PKG_MAIN PKG_LIBS32 PKG_LIBS64' PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS32_ID="$PKG_LIBS_ID" PKG_LIBS64_ID="$PKG_LIBS_ID" PKG_LIBS32_ARCH='32' PKG_LIBS64_ARCH='64' PKG_LIBS_DEPENDENCIES_LIBRARIES=' libc.so.6 libm.so.6 libpthread.so.0 libX11.so.6 libXcursor.so.1 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1' PKG_LIBS32_DEPENDENCIES_LIBRARIES="$PKG_LIBS_DEPENDENCIES_LIBRARIES" PKG_LIBS64_DEPENDENCIES_LIBRARIES="$PKG_LIBS_DEPENDENCIES_LIBRARIES" PKG_MAIN_DEPS="$PKG_MAIN_DEPS $PKG_LIBS_ID" # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # The path to liblwjgl.so needs to be given on the command line APP_MAIN_JAVA_OPTIONS="$(application_java_options 'APP_MAIN') -Dorg.lwjgl.librarypath='$(path_libraries)'" # The game binary looks for libopenal.so (32-bit) and libopenal64.so (64-bit) # instead of libopenal.so.1 ## Unversioned libopenal.so is already provided by the base library packages ## on Arch Linux and Gentoo. case "$(option_value 'package')" in ('arch') library_source='/usr/lib/libopenal.so.1' library_destination="$(package_path 'PKG_LIBS64')$(path_libraries)/libopenal64.so" mkdir --parents "$(dirname "$library_destination")" ln --symbolic "$library_source" "$library_destination" ;; ('deb') library_source_32bit='/usr/lib/i386-linux-gnu/libopenal.so.1' library_source_64bit='/usr/lib/x86_64-linux-gnu/libopenal.so.1' library_destination_32bit="$(package_path 'PKG_LIBS32')$(path_libraries)/libopenal.so" library_destination_64bit="$(package_path 'PKG_LIBS64')$(path_libraries)/libopenal64.so" mkdir --parents \ "$(dirname "$library_destination_32bit")" \ "$(dirname "$library_destination_64bit")" ln --symbolic "$library_source_32bit" "$library_destination_32bit" ln --symbolic "$library_source_64bit" "$library_destination_64bit" ;; ('gentoo'|'egentoo') library_source='/usr/lib64/libopenal.so.1' library_destination="$(package_path 'PKG_LIBS64')$(path_libraries)/libopenal64.so" mkdir --parents "$(dirname "$library_destination")" ln --symbolic "$library_source" "$library_destination" ;; esac # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-bombshell.sh0000755000000000000000000000702014471751340014126 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Bombshell # send your bug reports to contact@dotslashplay.it ### script_version=20230821.1 GAME_ID='bombshell' GAME_NAME='Bombshell' ARCHIVE_BASE_0='setup_bombshell__1.2.10466(ion_furry)_(34762).exe' ARCHIVE_BASE_0_MD5='05b5188629b378360154420be32296aa' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_bombshell__1.2.10466(ion_furry)_(34762)-1.bin' ARCHIVE_BASE_0_PART1_MD5='9a779d8df62ca33c5215ac7f3403f999' ARCHIVE_BASE_0_PART2='setup_bombshell__1.2.10466(ion_furry)_(34762)-2.bin' ARCHIVE_BASE_0_PART2_MD5='186058e6d9058ed65ffaf4382ce8a1a0' ARCHIVE_BASE_0_SIZE='9100000' ARCHIVE_BASE_0_VERSION='1.2.10466-gog34762' ARCHIVE_BASE_0_URL='https://www.gog.com/game/bombshell' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN32_FILES=' binaries/win32' CONTENT_GAME_BIN64_FILES=' binaries/win64' CONTENT_GAME_DATA_FILES=' engine shellgame' CONTENT_DOC_DATA_PATH='help' CONTENT_DOC_DATA_FILES=' gdf_fieldmanual.pdf' WINE_PERSISTENT_DIRECTORIE=' users/${USER}/Documents/My Games/Bombshell/ShellGame' ## Grab the mouse cursor, to prevent issues when aiming with a mouse. WINE_WINETRICKS_VERBS='grabfullscreen=y' APP_MAIN_EXE_BIN32='binaries/win32/bombshell.exe' APP_MAIN_EXE_BIN64='binaries/win64/bombshell.exe' APP_MAIN_ICON='binaries/win32/bombshell.exe' APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=117' ## The application type must be set explicitly, ## or it would be wrongly guessed as a Mono one. APP_MAIN_TYPE='wine' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" # Load common functions target_version='2.25' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Include Mono in the WINE prefix ARCHIVE_REQUIRED_MONO='wine-mono-8.0.0-x86.msi' ARCHIVE_REQUIRED_MONO_MD5='4fe5c683fcd9634c7f6571f252b3603c' ARCHIVE_REQUIRED_MONO_URL='https://dl.winehq.org/wine/wine-mono/8.0.0/' archive_initialize_required 'ARCHIVE_MONO' 'ARCHIVE_REQUIRED_MONO' mono_installer_source=$(archive_find_path 'ARCHIVE_MONO') mono_installer_destination="$(package_path 'PKG_BIN')$(path_game_data)/mono/wine-mono-8.0.0-x86.msi" install -D --mode=644 "$mono_installer_source" "$mono_installer_destination" WINE_DLLOVERRIDES_DEFAULT='winemenubuilder.exe,mshtml=' APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN')"' # Include Mono in the WINE prefix if [ ! -e .mono_installed ]; then $(wine_command) mono/wine-mono-8.0.0-x86.msi touch .mono_installed fi ' # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-book-of-demons.sh0000755000000000000000000000501114471751340014774 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Book of Demons # send your bug reports to contact@dotslashplay.it ### script_version=20230811.3 # Set game-specific variables GAME_ID='book-of-demons' GAME_NAME='Book of Demons' ARCHIVE_BASE_2='setup_book_of_demons_1.05.221221_(61311).exe' ARCHIVE_BASE_2_MD5='fc7148454bba56db0bb1b8942d1bfa85' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_SIZE='950000' ARCHIVE_BASE_2_VERSION='1.05.221221-gog61311' ARCHIVE_BASE_2_URL='https://www.gog.com/game/book_of_demons' ARCHIVE_BASE_1='setup_book_of_demons_1.05.220217_(53747).exe' ARCHIVE_BASE_1_MD5='6d33342267e0b05af5f493339d450d60' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='900000' ARCHIVE_BASE_1_VERSION='1.05.220217-gog53747' ARCHIVE_BASE_0='setup_book_of_demons_1.05.211021_(50897).exe' ARCHIVE_BASE_0_MD5='ef098c3f8dd9bc7c82ec2e8ebd6c8ec5' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='900000' ARCHIVE_BASE_0_VERSION='1.05.211021-gog50897' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' *.dll *.xml r2g_launcher.exe' CONTENT_GAME_DATA_FILES=' *.pac supporters.utf8' CONTENT_DOC_DATA_FILES=' changelog.txt' USER_PERSISTENT_FILES=' custom_settings.txt *.xml' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/R2G_Common_WIP1/GOG users/${USER}/AppData/Roaming/Return2Games_WIP21/GOG' APP_MAIN_EXE='r2g_launcher.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icon PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-botanicula.sh0000755000000000000000000001060414471751340014302 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=20231114.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' 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 that 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' CONTENT_PATH_DEFAULT_LINUX='data/noarch/game' CONTENT_LIBS_BIN_PATH="${CONTENT_LIBS_BIN_PATH}/runtimes/air/linux/Adobe AIR/Versions/1.0" CONTENT_LIBS_BIN_FILES=' libCore.so' CONTENT_LIBS0_BIN_PATH="${CONTENT_LIBS_BIN_PATH}/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' 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' 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' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/BotaniculaSaves' APP_MAIN_EXE_WINDOWS='botanicula.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_LINUX="${PKG_DATA_ID}-linux" PKG_DATA_ID_WINDOWS="${PKG_DATA_ID}-windows" PKG_DATA_PROVIDES=" $PKG_DATA_ID" PKG_DATA_DESCRIPTION='data' PKG_BIN_ID="$GAME_ID" PKG_BIN_ID_LINUX="${PKG_BIN_ID}-linux" PKG_BIN_ID_WINDOWS="${PKG_BIN_ID}-windows" PKG_BIN_PROVIDES=" $PKG_BIN_ID" PKG_BIN_ARCH='32' PKG_BIN_DEPS_LINUX="$PKG_DATA_ID_LINUX" PKG_BIN_DEPS_WINDOWS="$PKG_DATA_ID_WINDOWS" 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' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-boxville.sh0000755000000000000000000000456314471751340014014 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Boxville # send your bug reports to contact@dotslashplay.it ### script_version=20230406.1 GAME_ID='boxville' GAME_NAME='Boxville' ARCHIVE_BASE_0='boxville_1_0_61161.sh' ARCHIVE_BASE_0_MD5='4ac9f6f811999e3f6a457767dc0a583c' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='2100000' ARCHIVE_BASE_0_VERSION='1.0-gog61161' ARCHIVE_BASE_0_URL='https://www.gog.com/game/boxville' UNITY3D_NAME='Boxville' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins" CONTENT_LIBS_BIN_FILES=' lib_burst_generated.so' CONTENT_LIBS0_BIN_FILES=' UnityPlayer.so' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/MonoBleedingEdge/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data/Managed ${UNITY3D_NAME}_Data/MonoBleedingEdge/etc ${UNITY3D_NAME}_Data/Resources ${UNITY3D_NAME}_Data/StreamingAssets ${UNITY3D_NAME}_Data/app.info ${UNITY3D_NAME}_Data/boot.config ${UNITY3D_NAME}_Data/data.unity3d ${UNITY3D_NAME}_Data/*.resource ${UNITY3D_NAME}_Data/*.json" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-braid.sh0000755000000000000000000000507314471751340013246 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Braid # send your bug reports to contact@dotslashplay.it ### script_version=20231113.3 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='braid' GAME_NAME='Braid' ARCHIVE_BASE_1_NAME='gog_braid_2.0.0.3.sh' ARCHIVE_BASE_1_MD5='0d60f92ed8d1c72afb11c217cc907264' ARCHIVE_BASE_1_SIZE='170000' ARCHIVE_BASE_1_VERSION='2015.06.11-gog2.0.0.3' ARCHIVE_BASE_1_URL='https://www.gog.com/game/braid' ARCHIVE_BASE_0_NAME='gog_braid_2.0.0.2.sh' ARCHIVE_BASE_0_MD5='22bac5c37b44916fea3e23092706d55d' ARCHIVE_BASE_0_SIZE='170000' ARCHIVE_BASE_0_VERSION='2015.06.11-gog2.0.0.2' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' Braid.bin.x86' CONTENT_GAME_DATA_FILES=' data Icon.png' CONTENT_DOC_DATA_FILES=' licenses *.txt' APP_MAIN_EXE='Braid.bin.x86' APP_MAIN_ICON='Icon.png' ## The game crashes on launch when using the wayland backend of SDL, ## even when using the system-provided build of SDL. APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' # The game crashes on launch when using the wayland backend of SDL if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libCgGL.so libCg.so libc.so.6 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 libSDL2-2.0.so.0 libstdc++.so.6' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Force the use of system-provided SDL APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN') # Force the use of the system SDL library export SDL_DYNAMIC_API='$(path_libraries_system)/libSDL2-2.0.so.0' " # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-braveland.sh0000755000000000000000000001136314471751340014122 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # Braveland games: # - Braveland # - Braveland Wizard # - Braveland Pirate # send your bug reports to contact@dotslashplay.it ### script_version=20230917.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID_BRAVELAND='braveland' GAME_NAME_BRAVELAND='Braveland' GAME_ID_WIZARD='braveland-wizard' GAME_NAME_WIZARD='Braveland Wizard' GAME_ID_PIRATE='braveland-pirate' GAME_NAME_PIRATE='Braveland Pirate' # Archives ## Braveland (original game) ARCHIVE_BASE_BRAVELAND_1_NAME='braveland_en_1_4_0_19_18418.sh' ARCHIVE_BASE_BRAVELAND_1_MD5='7ceac41f0486310c04ec60fcdf7e2b46' ARCHIVE_BASE_BRAVELAND_1_SIZE='320000' ARCHIVE_BASE_BRAVELAND_1_VERSION='1.4.0.19-gog18418' ARCHIVE_BASE_BRAVELAND_1_URL='https://www.gog.com/game/braveland' ARCHIVE_BASE_BRAVELAND_0_NAME='gog_braveland_2.1.0.8.sh' ARCHIVE_BASE_BRAVELAND_0_MD5='c60ac5170e53a7ed22fda6a3e6ce690e' ARCHIVE_BASE_BRAVELAND_0_SIZE='320000' ARCHIVE_BASE_BRAVELAND_0_VERSION='1.3.2.18-gog2.1.0.8' ## Braveland Wizard ARCHIVE_BASE_WIZARD_2_NAME='braveland_wizard_en_1_1_4_14_19675.sh' ARCHIVE_BASE_WIZARD_2_MD5='79fa2c8280b8b3370d85fc32907e2b51' ARCHIVE_BASE_WIZARD_2_SIZE='450000' ARCHIVE_BASE_WIZARD_2_VERSION='1.1.4.14-gog19675' ARCHIVE_BASE_WIZARD_2_URL='https://www.gog.com/game/braveland_wizard' ARCHIVE_BASE_WIZARD_1_NAME='braveland_wizard_en_1_1_3_13_18418.sh' ARCHIVE_BASE_WIZARD_1_MD5='7153da6ceb0deda556ebdb7cfa4b9203' ARCHIVE_BASE_WIZARD_1_SIZE='450000' ARCHIVE_BASE_WIZARD_1_VERSION='1.1.3.13-gog18418' ARCHIVE_BASE_WIZARD_0_NAME='gog_braveland_wizard_2.1.0.4.sh' ARCHIVE_BASE_WIZARD_0_MD5='14346dc8d6e7ad410dd1b179763aa94e' ARCHIVE_BASE_WIZARD_0_SIZE='450000' ARCHIVE_BASE_WIZARD_0_VERSION='1.1.1.11-gog2.1.0.4' ## Braveland Pirate ARCHIVE_BASE_PIRATE_2_NAME='braveland_pirate_en_1_1_1_10_19675.sh' ARCHIVE_BASE_PIRATE_2_MD5='660ad8cd6eef0f7bd1eadcacf1c611c0' ARCHIVE_BASE_PIRATE_2_SIZE='610000' ARCHIVE_BASE_PIRATE_2_VERSION='1.1.1.10-gog19675' ARCHIVE_BASE_PIRATE_2_URL='https://www.gog.com/game/braveland_pirate' ARCHIVE_BASE_PIRATE_1_NAME='braveland_pirate_en_1_1_0_9_18418.sh' ARCHIVE_BASE_PIRATE_1_MD5='445b705cc11b58fd289064aa78ef9210' ARCHIVE_BASE_PIRATE_1_SIZE='610000' ARCHIVE_BASE_PIRATE_1_VERSION='1.1.0.9-gog18418' ARCHIVE_BASE_PIRATE_0_NAME='gog_braveland_pirate_2.1.0.3.sh' ARCHIVE_BASE_PIRATE_0_MD5='982331936f2767daf1974c1686ec0bd3' ARCHIVE_BASE_PIRATE_0_SIZE='610000' ARCHIVE_BASE_PIRATE_0_VERSION='1.0.2.7-gog2.1.0.4' # Archives content CONTENT_PATH_DEFAULT='data/noarch/game' UNITY3D_NAME_BRAVELAND='Braveland' UNITY3D_NAME_WIZARD='Braveland Wizard' UNITY3D_NAME_PIRATE='Braveland Pirate' UNITY3D_PLUGINS=' ScreenSelector.so' # Packages PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" ## Braveland (original game) PKG_DATA_ID_BRAVELAND="${GAME_ID_BRAVELAND}-data" PKG_BIN_DEPS_BRAVELAND="$PKG_DATA_ID_BRAVELAND" PKG_BIN32_DEPS_BRAVELAND="$PKG_BIN_DEPS_BRAVELAND" PKG_BIN64_DEPS_BRAVELAND="$PKG_BIN_DEPS_BRAVELAND" ## Braveland Wizard PKG_DATA_ID_WIZARD="${GAME_ID_WIZARD}-data" PKG_BIN_DEPS_PIRATE="$PKG_DATA_ID_PIRATE" PKG_BIN32_DEPS_PIRATE="$PKG_BIN_DEPS_PIRATE" PKG_BIN64_DEPS_PIRATE="$PKG_BIN_DEPS_PIRATE" ## Braveland Pirate PKG_DATA_ID_PIRATE="${GAME_ID_PIRATE}-data" PKG_BIN_DEPS_WIZARD="$PKG_DATA_ID_WIZARD" PKG_BIN32_DEPS_WIZARD="$PKG_BIN_DEPS_WIZARD" PKG_BIN64_DEPS_WIZARD="$PKG_BIN_DEPS_WIZARD" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icon PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN32' launchers_write PKG='PKG_BIN64' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-breach-and-clear.sh0000755000000000000000000000704114471751340015232 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 HS-157 # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Breach & Clear # send your bug reports to contact@dotslashplay.it ### script_version=20230101.1 GAME_ID='breach-and-clear' GAME_NAME='Breach & Clear' GAME_ID_DEADLINE="${GAME_ID}-deadline" GAME_NAME_DEADLINE="$GAME_NAME - DEADline" UNITY3D_NAME='Bnc' UNITY3D_NAME_DEADLINE='DEADline' # Archives ## Breach & Clear (base game) ARCHIVE_BASE_HUMBLE_0='BncNix_12_4_15_NODRM.rar' ARCHIVE_BASE_HUMBLE_0_MD5='a2eff200bdce1b96852d2b709614d17a' ARCHIVE_BASE_HUMBLE_0_SIZE='2500000' ARCHIVE_BASE_HUMBLE_0_VERSION='2.1.1-humble1' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/breach-clear' ARCHIVE_BASE_GOG_0='gog_breach_clear_2.0.0.3.sh' ARCHIVE_BASE_GOG_0_MD5='e7f6b59d8ce97c9ab850b47608941b7d' ARCHIVE_BASE_GOG_0_TYPE='mojosetup' ARCHIVE_BASE_GOG_0_SIZE='2500000' ARCHIVE_BASE_GOG_0_VERSION='2.1.1-gog2.0.0.3' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/breach_and_clear' ## Breach & Clear: DEADline ARCHIVE_BASE_DEADLINE_0='gog_breach_and_clear_deadline_2.3.0.8.sh' ARCHIVE_BASE_DEADLINE_0_MD5='fcf5e77ea47ec4446bd67168372f6e34' ARCHIVE_BASE_DEADLINE_0_TYPE='mojosetup' ARCHIVE_BASE_DEADLINE_0_SIZE='3300000' ARCHIVE_BASE_DEADLINE_0_VERSION='1.05-gog2.3.0.8' ARCHIVE_BASE_DEADLINE_0_URL='https://www.gog.com/game/breach_clear_deadline' CONTENT_PATH_DEFAULT_HUMBLE='BncHumboNix' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_Data/Mono ${UNITY3D_NAME}_Data/Plugins ${UNITY3D_NAME}.x86" CONTENT_GAME_BIN_FILES_DEADLINE=" ${UNITY3D_NAME_DEADLINE}_Data/Mono ${UNITY3D_NAME_DEADLINE}_Data/Plugins ${UNITY3D_NAME_DEADLINE}.x86" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" CONTENT_GAME_DATA_FILES_DEADLINE=" ${UNITY3D_NAME_DEADLINE}_Data" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' ld-linux.so.2 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' # Enforce a consistent Unity3D name SCRIPT_DEPS="$SCRIPT_DEPS rename" # Load common functions target_version='2.20' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Enforce a consistent Unity3D name unity3d_name=$(unity3d_name) rename "s/.*_Data/${unity3d_name}_Data/" *_Data rename "s/.*\.x86/${unity3d_name}.x86/" *.x86 ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-broforce.sh0000755000000000000000000000573614471751340013774 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 VA # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Broforce # send your bug reports to contact@dotslashplay.it ### script_version=20231115.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='broforce' GAME_NAME='Broforce' ARCHIVE_BASE_0_NAME='broforce_1034_20190611_30229.sh' ARCHIVE_BASE_0_MD5='8cbe5d69f77aaf36f99a74f39b9d200f' ARCHIVE_BASE_0_SIZE='460000' ARCHIVE_BASE_0_VERSION='1034.20190611-gog30229' ARCHIVE_BASE_0_URL='https://www.gog.com/game/broforce' ARCHIVE_BASE_MULTIARCH_0_NAME='gog_broforce_2.3.0.4.sh' ARCHIVE_BASE_MULTIARCH_0_MD5='1187889af4979b1718c5529ccfb4d741' ARCHIVE_BASE_MULTIARCH_0_SIZE='1400000' ARCHIVE_BASE_MULTIARCH_0_VERSION='5399v201606232041-gog15203' UNITY3D_NAME='Broforce' ## TODO: Add an explicit list of plugins to include. CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME0_BIN_FILES=" ${UNITY3D_NAME}_Data/Plugins" CONTENT_GAME0_BIN64_FILES=" ${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_GAME0_BIN32_FILES=" ${UNITY3D_NAME}_Data/Plugins/x86" PACKAGES_LIST=' PKG_BIN PKG_DATA' PACKAGES_LIST_MULTIARCH=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" ## TODO: Complete the dependencies list. ## cf. https://forge.dotslashplay.it/play.it/scripts/-/snippets/28 PKG_BIN_DEPENDENCIES_LIBRARIES=' libstdc++.so.6 libfreetype.so.6 libXrandr.so.2 libXcursor.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" ## TODO: Check if the xrandr commmand is actually required. PKG_BIN_DEPENDENCIES_COMMANDS=' xrandr' PKG_BIN64_DEPENDENCIES_COMMANDS="$PKG_BIN_DEPENDENCIES_COMMANDS" PKG_BIN32_DEPENDENCIES_COMMANDS="$PKG_BIN_DEPENDENCIES_COMMANDS" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers case "$(current_archive)" in ('ARCHIVE_BASE_MULTIARCH_'*) set_current_package 'PKG_BIN32' launchers_write set_current_package 'PKG_BIN64' launchers_write ;; (*) set_current_package 'PKG_BIN' launchers_write ;; esac # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-broken-age.sh0000755000000000000000000000401614471751340014173 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 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220702.1 GAME_ID='broken-age' GAME_NAME='Broken Age' ARCHIVE_BASE_0='gog_broken_age_2.5.0.11.sh' ARCHIVE_BASE_0_MD5='c875f1e09f1d1a26e19266d7a5a6045f' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='2300000' 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' ARCHIVE_DOC_DATA_FILES=' *.txt' ARCHIVE_GAME_BIN_FILES=' BrokenAge lib' ARCHIVE_GAME_DATA_FILES=' *.pck' APP_MAIN_TYPE='native' APP_MAIN_EXE='BrokenAge' APP_MAIN_ICON='data/noarch/support/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6 libGL.so.1 libSDL2-2.0.so.0" # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Include game icon PKG='PKG_DATA' icons_get_from_workdir 'APP_MAIN' # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-broken-minds.sh0000755000000000000000000000765014471751340014560 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # Broken Minds # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20200925.2 # Set game-specific variables GAME_ID='broken-minds' GAME_NAME='Broken Minds' ARCHIVES_LIST=' ARCHIVE_ITCH_0' ARCHIVE_ITCH_0='broken-minds-win-osx-linux.zip' ARCHIVE_ITCH_0_URL='https://lockedon.itch.io/broken-minds' ARCHIVE_ITCH_0_MD5='bd76cf6fded5a9712125fdcd73daac28' ARCHIVE_ITCH_0_SIZE='1900000' ARCHIVE_ITCH_0_VERSION='1.0-itch1' ARCHIVE_ITCH_0_TYPE='zip' ARCHIVE_DOC_DATA_PATH='BROKEN_MINDS-1.0-market' ARCHIVE_DOC_DATA_FILES='README.html' ARCHIVE_GAME_BIN32_PATH='BROKEN_MINDS-1.0-market' ARCHIVE_GAME_BIN32_FILES='lib/linux-i686 BROKEN_MINDS.sh' ARCHIVE_GAME_BIN64_PATH='BROKEN_MINDS-1.0-market' ARCHIVE_GAME_BIN64_FILES='lib/linux-x86_64' ARCHIVE_GAME_DATA_PATH='BROKEN_MINDS-1.0-market' ARCHIVE_GAME_DATA_FILES='lib/pythonlib2.7 game BROKEN_MINDS.py renpy' DATA_DIRS='game/saves' APP_MAIN_TYPE='native' APP_MAIN_EXE='BROKEN_MINDS.sh' APP_MAIN_ICON='game/icon.png' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID glibc libstdc++" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Copy launching script between the binaries packages LAUNCHER_SOURCE="${PKG_BIN32_PATH}${PATH_GAME}/$APP_MAIN_EXE" LAUNCHER_DESTINATION="${PKG_BIN64_PATH}${PATH_GAME}/$APP_MAIN_EXE" mkdir --parents "$(dirname "$LAUNCHER_DESTINATION")" cp "$LAUNCHER_SOURCE" "$LAUNCHER_DESTINATION" # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-broken-sword-1.sh0000755000000000000000000001042114471751340014730 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # Copyright (c) 2018-2021, BetaRays # 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. ### ### # Broken Sword 1 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210915.3 # Set game-specific variables GAME_ID='broken-sword-1' GAME_NAME='Broken Sword: Shadow of the Templars' ARCHIVE_BASE_GOG_0='gog_broken_sword_director_s_cut_2.0.0.2.sh' ARCHIVE_BASE_GOG_0_MD5='8f7cd1b6742946e111aa83fdfac0bcad' ARCHIVE_BASE_GOG_0_TYPE='mojosetup' 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='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' ARCHIVE_DOC_DATA_PATH_HUMBLE='bs1dc_linux_v1.0.800' ARCHIVE_DOC_DATA_PATH_GOG='data/noarch/game' ARCHIVE_DOC_DATA_FILES='legal.txt' ARCHIVE_GAME_BIN32_PATH_HUMBLE='bs1dc_linux_v1.0.800' ARCHIVE_GAME_BIN32_PATH_GOG='data/noarch/game' ARCHIVE_GAME_BIN32_FILES='i386' ARCHIVE_GAME_BIN64_PATH_HUMBLE='bs1dc_linux_v1.0.800' ARCHIVE_GAME_BIN64_PATH_GOG='data/noarch/game' ARCHIVE_GAME_BIN64_FILES='x86_64' ARCHIVE_GAME_DATA_PATH_HUMBLE='bs1dc_linux_v1.0.800' ARCHIVE_GAME_DATA_PATH_GOG='data/noarch/game' ARCHIVE_GAME_DATA_FILES=' *.dat font icon.bmp movies music' APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32='i386/bs1dc_i386' APP_MAIN_EXE_BIN64='x86_64/bs1dc_x86_64' APP_MAIN_ICON='icon.bmp' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID libc.so.6 libSDL-1.2.so.0 libopenal.so.1" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.14' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "$PLAYIT_WORKDIR/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-broken-sword-2-remastered.sh0000755000000000000000000000640714471751340017073 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Broken Sword 2 Remastered # send your bug reports to contact@dotslashplay.it ### script_version=20230824.1 GAME_ID='broken-sword-2-remastered' GAME_NAME='Broken Sword Ⅱ: The Smoking Mirror - Remastered' ARCHIVE_BASE_1='broken_sword_2_remastered_3_3_0_59987.sh' ARCHIVE_BASE_1_MD5='7e9b9959778dfcf4b2e346dbe6657c3f' ARCHIVE_BASE_1_SIZE='810000' ARCHIVE_BASE_1_VERSION='3.3.0-gog59987' ARCHIVE_BASE_1_URL='https://www.gog.com/game/broken_sword_2__the_smoking_mirror' ARCHIVE_BASE_0='gog_broken_sword_2_remastered_2.0.0.3.sh' ARCHIVE_BASE_0_MD5='a67ce1d6a47b74281b6f230365fb296a' ARCHIVE_BASE_0_SIZE='1400000' ARCHIVE_BASE_0_VERSION='1.0.800-gog.2.0.0.3' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN32_FILES=' BrokenSword2_i386' CONTENT_GAME_BIN32_FILES_0=' BS2Remastered_i386' CONTENT_GAME_BIN64_FILES=' BrokenSword2_x86_64' CONTENT_GAME_DATA_FILES=' Audio Comic Game Movies Text Data.dat Legal.txt' CONTENT_GAME_DATA_FILES_0=' Fonts PC Text icon.bmp bs2.ico *.BUK *.clu *.dat *.DAT *.DIC' APP_MAIN_EXE_BIN32='BrokenSword2_i386' APP_MAIN_EXE_BIN32_0='BS2Remastered_i386' APP_MAIN_EXE_BIN64='BrokenSword2_x86_64' APP_MAIN_ICON='../support/icon.png' APP_MAIN_ICON_0='icon.bmp' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PACKAGES_LIST_0='PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libstdc++.so.6' PKG_BIN_DEPENDENCIES_LIBRARIES_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_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES_0="$PKG_BIN_DEPENDENCIES_LIBRARIES_0" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers APP_MAIN_EXE_BIN32=$(context_value 'APP_MAIN_EXE_BIN32') for PKG in 'PKG_BIN32' 'PKG_BIN64'; do if packages_get_list | grep --quiet --fixed-strings --word-regexp "$(context_package)"; then launchers_write fi done # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-broken-sword-2.sh0000755000000000000000000000675614471751340014751 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # Broken Sword II: The Smoking Mirror # build native packages from the original installers # send your bug reports to mopi@dotslashplay.it ### script_version=20200221.1 # Set game-specific variables GAME_ID='broken-sword-2' GAME_NAME='Broken Sword II: The Smoking Mirror' ARCHIVE_GOG='gog_broken_sword_2_the_smoking_mirror_1.0.0.2.tar.gz' ARCHIVE_GOG_URL='https://www.gog.com/game/broken_sword_2__the_smoking_mirror' ARCHIVE_GOG_MD5='003e43babbdb7abc04c64f7482b27329' ARCHIVE_GOG_SIZE='1200000' ARCHIVE_GOG_VERSION='1.0-gog1.0.0.2' ARCHIVE_DOC0_MAIN_PATH='broken sword 2 - the smoking mirror/docs' ARCHIVE_DOC0_MAIN_FILES='*.txt' ARCHIVE_DOC1_MAIN_PATH='broken sword 2 - the smoking mirror/data' ARCHIVE_DOC1_MAIN_FILES='*.txt' ARCHIVE_GAME0_MAIN_PATH='broken sword 2 - the smoking mirror/data' ARCHIVE_GAME0_MAIN_FILES='*.clu *.inf *.tab *.bmp' ARCHIVE_GAME1_MAIN_PATH='broken sword 2 - the smoking mirror/data/extras' ARCHIVE_GAME1_MAIN_FILES='*' APP_MAIN_TYPE='scummvm' APP_MAIN_SCUMMID='sword2' APP_MAIN_ICON='broken sword 2 - the smoking mirror/support/gog-broken-sword-2-the-smoking-mirror.png' PACKAGES_LIST='PKG_MAIN' PKG_MAIN_DEPS='scummvm' # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" tolower "$PLAYIT_WORKDIR/gamedata" prepare_package_layout # Get icons icons_get_from_workdir 'APP_MAIN' rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-broken-sword-3.sh0000755000000000000000000000714014471751340014736 0ustar rootroot#!/bin/sh -e set -o errexit ### # Copyright (c) 2015-2021, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Broken Sword 3: The Sleeping Dragon # build native Linux packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210305.2 # Set game-specific variables GAME_ID='broken-sword-3' GAME_NAME='Broken Sword 3: The Sleeping Dragon' ARCHIVE_GOG='setup_broken_sword_3_-_the_sleeping_dragon_1.0_(19115).exe' ARCHIVE_GOG_URL='https://www.gog.com/game/broken_sword_3__the_sleeping_dragon' ARCHIVE_GOG_MD5='e53f974fa1042cb65a8f5fd9d2ee3b58' ARCHIVE_GOG_SIZE='1900000' ARCHIVE_GOG_VERSION='1.0-gog19115' ARCHIVE_GOG_TYPE='innosetup' ARCHIVE_GOG_PART1='setup_broken_sword_3_-_the_sleeping_dragon_1.0_(19115)-1.bin' ARCHIVE_GOG_PART1_MD5='3901d740c9071b43eae5b5e3566ef4c6' ARCHIVE_GOG_PART1_TYPE='innosetup' ARCHIVE_DOC_DATA_PATH='.' ARCHIVE_DOC_DATA_FILES='manual.pdf readme.txt' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='binkw32.dll bstsd.exe' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='data data.pak' DATA_DIRS='./saves' APP_MAIN_TYPE='wine' APP_MAIN_EXE='bstsd.exe' APP_MAIN_ICON='bstsd.exe' PACKAGES_LIST='PKG_DATA PKG_BIN' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" set_standard_permissions "$PLAYIT_WORKDIR/gamedata" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-broken-sword-4.sh0000755000000000000000000000717014471751340014742 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=20231117.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' 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' ## 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. WINE_WINETRICKS_VERBS="${WINE_WINETRICKS_VERBS:-} d3dcompiler_47" APP_MAIN_EXE='bs4pc.exe' PACKAGES_LIST=' PKG_BIN PKG_L10N PKG_DATA' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_ID_EN="${PKG_L10N_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_L10N_ID $PKG_DATA_ID" ## FIXME: This game should be run in a WINE virtual desktop. # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-brothers-a-tale-of-two-sons.sh0000755000000000000000000001061714471751340017347 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Brothers: A Tale of Two Sons # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210504.4 # Set game-specific variables GAME_ID='brothers-a-tale-of-two-sons' GAME_NAME='Brothers: A Tale of Two Sons' ARCHIVES_LIST=' ARCHIVE_BASE_0' ARCHIVE_BASE_0='setup_brothers_-_a_tale_of_two_sons_gog-2_(6538).exe' ARCHIVE_BASE_0_MD5='59101e78c4e0687db9e07d45533cdea2' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='1.2-gog6538' ARCHIVE_BASE_0_SIZE='1500000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/brothers_a_tale_of_two_sons' ARCHIVE_GAME_BIN_PATH='app' ARCHIVE_GAME_BIN_FILES='binaries engine/config engine/shaders' ARCHIVE_GAME_DATA_PATH='app' ARCHIVE_GAME_DATA_FILES='p13 engine/localization engine/splash' APP_MAIN_TYPE='wine' APP_MAIN_EXE='binaries/win32/brothers.exe' APP_MAIN_ICON='binaries/win32/brothers.exe' PACKAGES_LIST='PKG_DATA PKG_BIN' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="${PKG_DATA_ID} wine" # Install required .NET framework PKG_BIN_DEPS="${PKG_BIN_DEPS} winetricks" APP_WINETRICKS="${APP_WINETRICKS} dotnet40" APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Do not disable mscoree.dll # This game relies on .NET framework export WINEDLLOVERRIDES=winemenubuilder.exe,mshtml=d' # Use persistent storage for game progress DATA_DIRS="${DATA_DIRS} ./userdata" APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use persistent storage for game progress userdata_path_prefix="${WINEPREFIX}/drive_c/users/${USER}/My Documents/My Games/Brothers - A Tale of Two Sons" userdata_path_persistent="${PATH_PREFIX}/userdata" if [ ! -h "$userdata_path_prefix" ]; then if [ -d "$userdata_path_prefix" ]; then # Migrate existing user data to the persistent path mv "$userdata_path_prefix"/* "$userdata_path_persistent" rmdir "$userdata_path_prefix" fi # Create link from prefix to persistent path mkdir --parents "$(dirname "$userdata_path_prefix")" ln --symbolic "$userdata_path_persistent" "$userdata_path_prefix" fi' # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get game icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Clean up temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-brutal-legend.sh0000755000000000000000000000643314471751340014713 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Brütal Legend # send your bug reports to contact@dotslashplay.it ### script_version=20230623.1 GAME_ID='brutal-legend' GAME_NAME='Brütal Legend' ARCHIVE_BASE_GOG_0='gog_brutal_legend_2.0.0.3.sh' ARCHIVE_BASE_GOG_0_MD5='f5927fb8b3959c52e2117584475ffe49' ARCHIVE_BASE_GOG_0_SIZE='8800000' ARCHIVE_BASE_GOG_0_VERSION='1.0-gog2.0.0.3' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/brutal_legend' # This installer used to be sold at Humble Bundle, # but they now sell Steam keys only. ARCHIVE_BASE_HUMBLE_0='BrutalLegend-Linux-2013-06-15-setup.bin' ARCHIVE_BASE_HUMBLE_0_MD5='cbda6ae12aafe20a76f4d45367430d32' ARCHIVE_BASE_HUMBLE_0_EXTRACTOR='unzip' ARCHIVE_BASE_HUMBLE_0_SIZE='8800000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0-humble130616' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='data' CONTENT_LIBS_BIN_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/lib" CONTENT_LIBS_BIN_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/lib" CONTENT_LIBS_BIN_FILES=' libfmodevent-4.42.16.so libfmodeventnet-4.42.16.so libfmodex-4.42.16.so libsteam_api.so' CONTENT_GAME_BIN_FILES=' Buddha.bin.x86 DFCONFIG' CONTENT_GAME_AUDIO_FILES=' Win' CONTENT_GAME_DATA_FILES=' Buddha.png Data Linux OGL' USER_PERSISTENT_FILES=' DFCONFIG' APP_MAIN_EXE='Buddha.bin.x86' APP_MAIN_ICON='Buddha.png' PACKAGES_LIST='PKG_AUDIO PKG_DATA PKG_BIN' PKG_AUDIO_ID="${GAME_ID}-audio" PKG_AUDIO_DESCRIPTION='audio' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_AUDIO_ID $PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libpthread.so.0 libSDL2-2.0.so.0 libstdc++.so.6 libz.so.1' # Load common functions 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 . "$PLAYIT_LIB2" # Extract game data case "$(context_archive)" in ('ARCHIVE_BASE_HUMBLE_'*) # The Humble Bundle installer looks like some custom MojoSetup installer, # but it does not seem to be based on Makeself like the ones we usually work with. # We force its extraction using unzip, ignoring errors due to the installer not being a real .zip archive. archive_extraction 'SOURCE_ARCHIVE' 2>/dev/null || true ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Set minimal permissions on all game files set_standard_permissions . ) ;; (*) archive_extraction 'SOURCE_ARCHIVE' ;; esac # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-bubbles-the-cat.sh0000755000000000000000000000521714471751340015126 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Bubbles the Cat # send your bug reports to contact@dotslashplay.it ### script_version=20230128.3 GAME_ID='bubbles-the-cat' GAME_NAME='Bubbles the Cat' ARCHIVE_BASE_0='BubblesTheCat._v1016_Standalone.zip' ARCHIVE_BASE_0_MD5='75c5130b47cd1bb4cf3f9f9d8239ba31' ARCHIVE_BASE_0_SIZE='160000' ARCHIVE_BASE_0_VERSION='1016-itch' ARCHIVE_BASE_0_URL='https://teamcatsandbears.itch.io/bubbles-the-cat' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' BubblesTheCat.exe' CONTENT_GAME_DATA_FILES=' data.win' APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/Local/BubblesTheCat' USER_PERSISTENT_DIRECTORIES=' userdata' APP_MAIN_EXE='BubblesTheCat.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Force use of icotool for .ico → .png icon conversion SCRIPT_DEPS="$SCRIPT_DEPS icotool" # Load common functions target_version='2.20' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Force use of icotool for .ico → .png icon conversion icon_extract_png_from_ico() { local destination file file="$1" destination="$2" local name name=$(basename "$file") icotool --extract --output="$destination" "$file" # Generate smaller variants of the icon from the original 1024×1024 one local png_original png_original=$(find "$destination" -name '*.png') convert "$png_original" -resize 512 "${png_original%.png}_512.png" convert "$png_original" -resize 256 "${png_original%.png}_256.png" convert "$png_original" -resize 128 "${png_original%.png}_128.png" convert "$png_original" -resize 64 "${png_original%.png}_64.png" } # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-butcher-demo.sh0000755000000000000000000000677114471751340014551 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2019-2020, Erwann Duclos # 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. ### ### # Butcher - Demo # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20200131.2 # Set game-specific variables GAME_ID='butcher-demo' GAME_NAME='Butcher Demo' ARCHIVE_GOG='gog_butcher_demo_2.0.0.1.sh' ARCHIVE_GOG_URL='https://www.gog.com/game/butcher_demo' ARCHIVE_GOG_MD5='03ed5d89ef38ef10a3318b8da7e62525' ARCHIVE_GOG_VERSION='1.0-gog2.0.0.1' ARCHIVE_GOG_SIZE='110000' ARCHIVE_GOG_TYPE='mojosetup' ARCHIVE_DOC_PATH='data/noarch/docs' ARCHIVE_DOC_FILES='*' ARCHIVE_GAME_BIN_PATH='data/noarch/game' ARCHIVE_GAME_BIN_FILES='butcher' ARCHIVE_GAME_DATA_PATH='data/noarch/game' ARCHIVE_GAME_DATA_FILES='butcher_Data' DATA_DIRS='./logs' APP_MAIN_TYPE='native' APP_MAIN_EXE='butcher' # shellcheck disable=SC2016 APP_MAIN_OPTIONS='-logFile ./logs/$(date +%F-%R).log' APP_MAIN_ICON='butcher_Data/Resources/UnityPlayer.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID glibc libstdc++ glx xcursor libxrandr" PKG_BIN_DEPS_ARCH='libx11' PKG_BIN_DEPS_DEB='libx11-6' PKG_BIN_DEPS_GENTOO='x11-libs/libX11' # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout rm --recursive "$PLAYIT_WORKDIR/gamedata" # Get game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-butcher.sh0000755000000000000000000000765614471751340013632 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2020, ahub # 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. ### ### # Butcher # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20201118.5 # Set game-specific variables GAME_ID='butcher' GAME_NAME='Butcher' ARCHIVE_GOG='butcher_w_i_m_p_gog_10_33399.sh' ARCHIVE_GOG_URL='https://www.gog.com/game/butcher' ARCHIVE_GOG_MD5='88f2e3d426f8dbcc0b78c53a43063329' ARCHIVE_GOG_VERSION='1.0-gog33399' ARCHIVE_GOG_SIZE='210000' ARCHIVE_GOG_TYPE='mojosetup' ARCHIVE_GAME_BIN64_PATH='data/noarch/game' ARCHIVE_GAME_BIN64_FILES='Butcher.x86_64 Butcher_Data/Mono/x86_64 Butcher_Data/Plugins/x86_64' ARCHIVE_GAME_BIN32_PATH='data/noarch/game' ARCHIVE_GAME_BIN32_FILES='Butcher.x86 Butcher_Data/Mono/x86 Butcher_Data/Plugins/x86' ARCHIVE_GAME_DATA_PATH='data/noarch/game' ARCHIVE_GAME_DATA_FILES='Butcher_Data' DATA_DIRS='./logs' APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN64='Butcher.x86_64' APP_MAIN_EXE_BIN32='Butcher.x86' # shellcheck disable=SC2016 APP_MAIN_OPTIONS='-logFile ./logs/$(date +%F-%R).log' APP_MAIN_ICON='Butcher_Data/Resources/UnityPlayer.png' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID glibc libstdc++ glx xcursor libxrandr gtk2 libgdk_pixbuf-2.0.so.0 libgobject-2.0.so.0 libglib-2.0.so.0" PKG_BIN32_DEPS_ARCH='lib32-libx11' PKG_BIN32_DEPS_DEB='libx11-6' PKG_BIN32_DEPS_GENTOO='x11-libs/libX11[abi_x86_32]' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPS_ARCH='libx11' PKG_BIN64_DEPS_DEB="$PKG_BIN32_DEPS_DEB" PKG_BIN64_DEPS_GENTOO='x11-libs/libX11' # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout rm --recursive "$PLAYIT_WORKDIR/gamedata" # Get game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-calico.sh0000755000000000000000000000465114471751340013420 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Calico # send your bug reports to contact@dotslashplay.it ### script_version=20221204.4 ## The command `calico` is already provided by an IRC bouncer: ## https://git.causal.agency/pounce/about/calico.1 GAME_ID='calico-game' GAME_NAME='Calico' UNITY3D_NAME='calico' ARCHIVE_BASE_0='setup_calico_1.0.5_(45142).exe' ARCHIVE_BASE_0_MD5='f2b7aa8e3944f26a02d1ea19afa8e4f0' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='930000' ARCHIVE_BASE_0_VERSION='1.0.5-gog45142' ARCHIVE_BASE_0_URL='https://www.gog.com/game/calico' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" monobleedingedge unitycrashhandler64.exe unityplayer.dll ${UNITY3D_NAME}_data/plugins ${UNITY3D_NAME}.exe" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" APP_MAIN_ICON="${UNITY3D_NAME}.exe" APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/LocalLow/Peachy Keen Games/Calico' USER_PERSISTENT_FILES=' userdata/*.dat' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Use a per-session dedicated file for logs APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a per-session dedicated file for logs mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.18' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-call-of-cthulhu-prisoner-of-ice.sh0000755000000000000000000000526514471751340020156 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 macaron # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Call of Cthulhu: Prisoner of Ice # send your bug reports to contact@dotslashplay.it ### script_version=20221211.1 GAME_ID='call-of-cthulhu-prisoner-of-ice' GAME_NAME='Call of Cthulhu: Prisoner of Ice' ARCHIVE_BASE_EN_0='call_of_cthulhu_prisoner_of_ice_en_gog_5_17654.sh' ARCHIVE_BASE_EN_0_MD5='c3f64c02981cfacefd3b3f8d0d504ac3' ARCHIVE_BASE_EN_0_TYPE='mojosetup' ARCHIVE_BASE_EN_0_SIZE='310000' ARCHIVE_BASE_EN_0_VERSION='1.0-gog17654' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/call_of_cthulhu_prisoner_of_ice' ARCHIVE_BASE_FR_0='call_of_cthulhu_prisoner_of_ice_fr_gog_5_17654.sh' ARCHIVE_BASE_FR_0_MD5='da1f4dad3ee3817a026390fa28320284' ARCHIVE_BASE_FR_0_TYPE='mojosetup' ARCHIVE_BASE_FR_0_SIZE='350000' ARCHIVE_BASE_FR_0_VERSION='1.0-gog17654' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/call_of_cthulhu_prisoner_of_ice' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' ICE CD' CONTENT_DOC_MAIN_FILES=' *.TXT' CONTENT_DOC0_MAIN_PATH='data/noarch/docs' CONTENT_DOC0_MAIN_FILES=' *.pdf *.txt' CONTENT_DOC1_MAIN_PATH_EN='data/noarch/docs/english' CONTENT_DOC1_MAIN_PATH_FR='data/noarch/docs/french' CONTENT_DOC1_MAIN_FILES=' *.pdf *.txt' GAME_IMAGE='CD' GAME_IMAGE_TYPE='cdrom' APP_MAIN_EXE='ICE640.EXE' APP_MAIN_PRERUN='d:' APP_MAIN_ICON='../support/icon.png' USER_PERSISTENT_FILES=' ICE/*.CFG ICE/*.ICE ICE/*.PCK' PACKAGES_LIST='PKG_MAIN' PKG_MAIN_ID="$GAME_ID" PKG_MAIN_ID_EN="${PKG_MAIN_ID}-en" PKG_MAIN_ID_FR="${PKG_MAIN_ID}-fr" PKG_MAIN_PROVIDE="$PKG_MAIN_ID" PKG_MAIN_DEPS='dosbox' # Load common functions target_version='2.19' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" toupper . ) # Include game icons icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-call-of-cthulhu-shadow-of-the-comet.sh0000755000000000000000000000510714471751340020722 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 macaron # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Call of Cthulhu: Shadow of the Comet # send your bug reports to contact@dotslashplay.it ### script_version=20221211.1 GAME_ID='call-of-cthulhu-shadow-of-the-comet' GAME_NAME='Call of Cthulhu: Shadow of the Comet' ARCHIVE_BASE_0='gog_call_of_cthulhu_shadow_of_the_comet_2.0.0.4.sh' ARCHIVE_BASE_0_MD5='18c4f78b766e8e1d638e4ac32df0be60' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='150000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.4' ARCHIVE_BASE_0_URL='https://www.gog.com/game/call_of_cthulhu_shadow_of_the_comet' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' INFOGRAM CD' CONTENT_DOC_MAIN_PATH='data/noarch/docs' CONTENT_DOC_MAIN_FILES=' *.pdf *.txt' GAME_IMAGE='CD' GAME_IMAGE_TYPE='cdrom' APP_MAIN_TYPE='dosbox' APP_MAIN_EXE='SHADOW.EXE' APP_MAIN_PRERUN='d: config -set cpu cycles=fixed 13000' APP_MAIN_ICON='../support/icon.png' APP_MUSEUM_ID="${GAME_ID}-museum" APP_MUSEUM_NAME="$GAME_NAME - Lovecraft Museum" APP_MUSEUM_TYPE='dosbox' APP_MUSEUM_EXE='MUSEUM.EXE' APP_MUSEUM_PRERUN='d: config -set cpu cycles=fixed 13000' APP_MUSEUM_ICON="$APP_MAIN_ICON" APP_SETUP_ID="${GAME_ID}-setup" APP_SETUP_NAME="$GAME_NAME - Setup" APP_SETUP_CAT='Settings' APP_SETUP_TYPE='dosbox' APP_SETUP_EXE='INSTALL.EXE' APP_SETUP_PRERUN='d:' APP_SETUP_ICON="$APP_MAIN_ICON" USER_PERSISTENT_FILES=' INFOGRAM/SHADOW.CD/*.CFG INFOGRAM/SHADOW.CD/*.OPT INFOGRAM/SHADOW.CD/*.SAV' PKG_MAIN_DEPS='dosbox' # Load common functions target_version='2.19' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" toupper . ) # Include game icons icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-call-of-the-sea.sh0000755000000000000000000000562014471751340015024 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Mopi set -o errexit ### # Call of the Sea # send your bug reports to contact@dotslashplay.it ### script_version=20230709.1 GAME_ID='call-of-the-sea' GAME_NAME='Call of the Sea' ARCHIVE_BASE_0='setup_call_of_the_sea_1.5.15.0_(64bit)_(48714).exe' ARCHIVE_BASE_0_MD5='130e503109c0da8323eabbf07f939b40' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_call_of_the_sea_1.5.15.0_(64bit)_(48714)-1.bin' ARCHIVE_BASE_0_PART1_MD5='eefc9fe7a9e45a0b9f84cc9f9f9ea1ab' ARCHIVE_BASE_0_PART2='setup_call_of_the_sea_1.5.15.0_(64bit)_(48714)-2.bin' ARCHIVE_BASE_0_PART2_MD5='c2d114836a23671a0483ad1ad97c2912' ARCHIVE_BASE_0_PART3='setup_call_of_the_sea_1.5.15.0_(64bit)_(48714)-3.bin' ARCHIVE_BASE_0_PART3_MD5='1b4c240b663134295b223c8c62d3cbf0' ARCHIVE_BASE_0_SIZE='40000000' ARCHIVE_BASE_0_VERSION='1.5.15.0-gog48714' ARCHIVE_BASE_0_URL='https://www.gog.com/en/game/call_of_the_sea' UNREALENGINE4_NAME='cots' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" engine ${UNREALENGINE4_NAME}/binaries ${UNREALENGINE4_NAME}/plugins ${UNREALENGINE4_NAME}.exe" CONTENT_GAME_MOVIES_FILES=" ${UNREALENGINE4_NAME}/content/movies" CONTENT_GAME_DATA_FILES=" ${UNREALENGINE4_NAME}" HUGE_FILES_DATA=" ${UNREALENGINE4_NAME}/content/paks/${UNREALENGINE4_NAME}-windowsnoeditor.pak" WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=" users/\${USER}/AppData/Local/${UNREALENGINE4_NAME}/Saved" APP_MAIN_EXE="${UNREALENGINE4_NAME}.exe" APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=101' PACKAGES_LIST='PKG_BIN PKG_MOVIES PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_MOVIES_ID="${GAME_ID}-movies" PKG_MOVIES_DESCRIPTION='movies' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_MOVIES_ID $PKG_DATA_ID" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' # Install required Microsoft Visual C++ libraries APP_WINETRICKS="${APP_WINETRICKS:-} vcrun2019" # 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-candle.sh0000755000000000000000000000437614471751340013420 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Candle # send your bug reports to contact@dotslashplay.it ### script_version=20230623.2 GAME_ID='candle' GAME_NAME='Candle' ARCHIVE_BASE_0='gog_candle_2.3.0.5.sh' ARCHIVE_BASE_0_MD5='4d60d0a24f5932207f6406a8ad0545be' ARCHIVE_BASE_0_SIZE='11000000' ARCHIVE_BASE_0_VERSION='1.1.17-gog2.3.0.5' ARCHIVE_BASE_0_URL='https://www.gog.com/game/candle' UNITY3D_NAME='Candle' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64" CONTENT_GAME_MOVIES_FILES=" ${UNITY3D_NAME}_Data/StreamingAssets" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN PKG_MOVIES PKG_DATA' PKG_MOVIES_ID="${GAME_ID}-movies" PKG_MOVIES_DESCRIPTION='movies' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_MOVIES_ID $PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' # Load common functions 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-candleman.sh0000755000000000000000000000415214471751340014104 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Candleman # send your bug reports to contact@dotslashplay.it ### script_version=20230415.1 GAME_ID='candleman' GAME_NAME='Candleman' ARCHIVE_BASE_0='setup_candleman_the_complete_journey_1.07_(50980).exe' ARCHIVE_BASE_0_MD5='4b16554e2acc81d44fb7c90e2cae9854' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_candleman_the_complete_journey_1.07_(50980)-1.bin' ARCHIVE_BASE_0_PART1_MD5='b5e19beda13aae27d5aa27256771d6d8' ARCHIVE_BASE_0_SIZE='3400000' ARCHIVE_BASE_0_VERSION='1.07-gog50980' ARCHIVE_BASE_0_URL='https://www.gog.com/game/candleman' UNITY3D_NAME='candleman' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_data/mono ${UNITY3D_NAME}_data/plugins ${UNITY3D_NAME}.exe" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Candleman Games/Candleman' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-capsized.sh0000755000000000000000000000675014471751340013772 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 VA # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Capsized # send your bug reports to contact@dotslashplay.it ### script_version=20230813.2 GAME_ID='capsized' GAME_NAME='Capsized' ARCHIVE_BASE_GOG_0='gog_capsized_2.0.0.2.sh' ARCHIVE_BASE_GOG_0_MD5='f516c52b4614d63c3cfa4e1ed43934b8' ARCHIVE_BASE_GOG_0_SIZE='670000' ARCHIVE_BASE_GOG_0_VERSION='1.0-gog2.0.0.2' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/capsized' ARCHIVE_BASE_HUMBLE_0='capsized-12212015-bin' ARCHIVE_BASE_HUMBLE_0_MD5='10515ca5f73e38151e17766cba97f3ed' ## This MojoSetup installer does not seem to be based on Makeself, ## so our regular type detection and extraction code do not work. ARCHIVE_BASE_HUMBLE_0_EXTRACTOR='bsdtar' ARCHIVE_BASE_HUMBLE_0_SIZE='650000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0-humble151221' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/capsized' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='data' CONTENT_GAME_MAIN_FILES=' Content mono de es fr it Capsized.bmp NePlusUltra.exe FarseerPhysicsXNA.dll FNA.dll FNA.dll.config Lidgren.Network.dll ProjectMercury.dll' CONTENT_DOC_MAIN_FILES=' Linux.README' APP_MAIN_EXE='NePlusUltra.exe' APP_MAIN_ICON='Capsized.bmp' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libopenal.so.1 libSDL2-2.0.so.0' PKG_MAIN_DEPENDENCIES_MONO_LIBRARIES=' mscorlib.dll Mono.Posix.dll Mono.Security.dll System.dll System.Configuration.dll System.Core.dll System.Data.dll System.Drawing.dll System.Runtime.Serialization.dll System.Security.dll System.Xml.dll' # Include shipped libraries that can not be replaced by system ones CONTENT_LIBS_LIBS32_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/lib" CONTENT_LIBS_LIBS32_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/lib" CONTENT_LIBS_LIBS32_FILES=' libmojoshader.so libtheoraplay.so' CONTENT_LIBS_LIBS64_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/lib64" CONTENT_LIBS_LIBS64_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/lib64" CONTENT_LIBS_LIBS64_FILES=' libmojoshader.so libtheoraplay.so' PACKAGES_LIST='PKG_MAIN PKG_LIBS32 PKG_LIBS64' PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS32_ID="$PKG_LIBS_ID" PKG_LIBS64_ID="$PKG_LIBS_ID" PKG_LIBS32_ARCH='32' PKG_LIBS64_ARCH='64' PKG_LIBS_DEPENDENCIES_LIBRARIES=' libc.so.6 libm.so.6 libogg.so.0 libpthread.so.0 libtheoradec.so.1 libtheora.so.0 libvorbis.so.0' PKG_LIBS32_DEPENDENCIES_LIBRARIES="$PKG_LIBS_DEPENDENCIES_LIBRARIES" PKG_LIBS64_DEPENDENCIES_LIBRARIES="$PKG_LIBS_DEPENDENCIES_LIBRARIES" PKG_MAIN_DEPS="${PKG_MAIN_DEPS:-} $PKG_LIBS_ID" # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-caravan.sh0000755000000000000000000000622714471751340013602 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Caravan # send your bug reports to contact@dotslashplay.it ### script_version=20230623.1 GAME_ID='caravan' GAME_NAME='Caravan' ARCHIVE_BASE_HUMBLE_0='caravan_linux_v1.1.17513.zip' ARCHIVE_BASE_HUMBLE_0_MD5='286f762190d74e27c353b5616b9e6dee' ARCHIVE_BASE_HUMBLE_0_SIZE='600000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.1.17513-humble1' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/caravan' ARCHIVE_BASE_GOG_0='caravan_en_v1_1_19786_19905.sh' ARCHIVE_BASE_GOG_0_MD5='e6806e10c86267b38a2a2a85bb278dae' ARCHIVE_BASE_GOG_0_SIZE='430000' ARCHIVE_BASE_GOG_0_VERSION='1.1.19786-gog19905' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/caravan' UNITY3D_NAME='Caravan' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT_HUMBLE='Caravan' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}.x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}.x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data case "$(context_archive)" in ('ARCHIVE_BASE_HUMBLE_'*) ## Errors during the game data extraction from the archive are expected, ## they should be ignored. archive_extraction 'SOURCE_ARCHIVE' 2>/dev/null || true ARCHIVE_INNER="${PLAYIT_WORKDIR}/gamedata/Caravan_1.1.17513_Full_DEB_Multi_Daedalic_ESD.tar.gz" archive_extraction 'ARCHIVE_INNER' rm "$ARCHIVE_INNER" ;; (*) archive_extraction 'SOURCE_ARCHIVE' ;; esac # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-card-city-nights.sh0000755000000000000000000000662714471751340015344 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine Le Gonidec # 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. ### ### # Card City Nights # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20201012.2 # Set game-specific variables GAME_ID='card-city-nights' GAME_NAME='Card City Nights' ARCHIVE_HUMBLE='cardcitynights_linux.zip' ARCHIVE_HUMBLE_URL='https://www.humblebundle.com/store/card-city-nights' ARCHIVE_HUMBLE_MD5='c843bd5642e2448e3a2c3e56c053fc84' ARCHIVE_HUMBLE_SIZE='250000' ARCHIVE_HUMBLE_VERSION='1.0.4-humble1' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='ccn.x86 ccn_Data/Mono ccn_Data/Plugins' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='ccn_Data' APP_MAIN_TYPE='native' APP_MAIN_EXE='ccn.x86' APP_MAIN_ICON='ccn_Data/Resources/UnityPlayer.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID glibc libstdc++ glu glx xcursor gtk2 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0" PKG_BIN_DEPS_ARCH='lib32-libx11 lib32-libxext' PKG_BIN_DEPS_DEB='libx11-6, libxext6' PKG_BIN_DEPS_GENTOO='x11-libs/libX11[abi_x86_32] x11-libs/libXext[abi_x86_32]' # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout rm --recursive "$PLAYIT_WORKDIR/gamedata" # Get game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-carto.sh0000755000000000000000000000522014471751340013267 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Carto # send your bug reports to contact@dotslashplay.it ### script_version=20230704.2 GAME_ID='carto' GAME_NAME='Carto' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" # Archives ## Full game ARCHIVE_BASE_0='setup_carto_1.0.7.6_(64bit)_(51528).exe' ARCHIVE_BASE_0_MD5='0c8dbc7a106673b8a8825c4f2e3ee6df' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2100000' ARCHIVE_BASE_0_VERSION='1.0.7.6-gog51528' ARCHIVE_BASE_0_URL='https://www.gog.com/game/carto' ## Demo ARCHIVE_BASE_DEMO_0='setup_carto_demo_1.0.7_(64bit)_(45496).exe' ARCHIVE_BASE_DEMO_0_MD5='b86ddbfde260933365c595f750cdc45b' ARCHIVE_BASE_DEMO_0_TYPE='innosetup' ARCHIVE_BASE_DEMO_0_SIZE='1300000' ARCHIVE_BASE_DEMO_0_VERSION='1.0.7-gog45496' ARCHIVE_BASE_DEMO_0_URL='https://www.gog.com/game/carto_demo' UNITY3D_NAME='carto' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_data/plugins monobleedingedge galaxy64.dll galaxycsharpglue.dll unityplayer.dll winpixeventruntime.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/SunheadGames/Carto' APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPS_DEMO="$PKG_DATA_ID_DEMO" # 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files rm --recursive \ '__redist' \ 'app' \ 'commonappdata' \ 'tmp' ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-cat-quest-1.sh0000755000000000000000000000470714471751340014234 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi set -o errexit ### # Cat Quest # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20221129.1 # Set game-specific variables GAME_ID='cat-quest-1' GAME_NAME='Cat Quest' ARCHIVE_BASE_0='setup_cat_quest_1.2.10.2_(42782).exe' ARCHIVE_BASE_0_MD5='496d069ea28098aa6d575fc56f8c71ec' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='334416' ARCHIVE_BASE_0_VERSION='1.2.10.2-gog42782' ARCHIVE_BASE_0_URL='https://www.gog.com/en/game/cat_quest' UNITY3D_NAME='cat quest' CONTENT_PATH_DEFAULT='.' ARCHIVE_GAME_BIN_FILES=' cat?quest.exe cat?quest_data/plugins mono gameassembly.dll unitycrashhandler32.exe unityplayer.dll' ARCHIVE_GAME_DATA_FILES=' cat?quest_data' APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" APP_MAIN_ICON="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Use a dedicated log file for the current game session APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a dedicated log file for the current game session mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Use persistent storage for user data APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/LocalLow/The Gentlebros Pte_ Ltd_/Cat Quest' USER_PERSISTENT_FILES=' userdata/*.dat userdata/*.dat.bak' # Load common functions target_version='2.17' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-cat-quest-2.sh0000755000000000000000000000470414471751340014232 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi set -o errexit ### # Cat Quest II # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20221129.6 # Set game-specific variables GAME_ID='cat-quest-2' GAME_NAME='Cat Quest II' ARCHIVE_BASE_0='setup_cat_quest_ii_1.7.7.3_(51746).exe' ARCHIVE_BASE_0_MD5='78f1001f07099b398ce66d971bf9b17c' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='511796' ARCHIVE_BASE_0_VERSION='1.7.7.3-gog51746' ARCHIVE_BASE_0_URL='https://www.gog.com/en/game/cat_quest_ii' UNITY3D_NAME='cat quest ii' CONTENT_PATH_DEFAULT='.' ARCHIVE_GAME_BIN_FILES=' cat?quest?ii.exe cat?quest?ii_data/plugins monobleedingedge unitycrashhandler32.exe unityplayer.dll' ARCHIVE_GAME_DATA_FILES=' cat?quest?ii_data' APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" APP_MAIN_ICON="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Use a dedicated log file for the current game session APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a dedicated log file for the current game session mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Use persistent storage for user data APP_WINE_LINK_DIRS=' userdata:users/${USER}/Documents/Cat Quest II' USER_PERSISTENT_FILES=' userdata/settings userdata/settings.bak userdata/*.dat userdata/*.dat.bak' # Load common functions target_version='2.17' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icon PKG='PKG_DATA' icons_inclusion # Include game data prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-catie-in-meowmeowland.sh0000755000000000000000000000417214471751340016351 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=20221231.1 GAME_ID='catie-in-meowmeowland' GAME_NAME='Catie in MeowMeowLand' UNITY3D_NAME='CatieinMeowmeowLand' ARCHIVE_BASE_0='catie_in_meowmeowland_0_1_0_3_1e54c009_55446.sh' ARCHIVE_BASE_0_MD5='d897acf6e88697b317c561c41582f41d' ARCHIVE_BASE_0_TYPE='mojosetup' 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' CONTENT_PATH_DEFAULT='data/noarch/game/CatieinMeowmeowLand_v0.1.0.3_1e54c009' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_Data/Plugins ${UNITY3D_NAME}.x86_64 GameAssembly.so UnityPlayer.so" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data CatieinMeowmeowLand/bfsBuildData.json" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' ld-linux-x86-64.so.2 libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1' # Load common functions target_version='2.20' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-cats-are-liquid-1.sh0000755000000000000000000000453514471751340015311 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi set -o errexit ### # Cats are Liquid 1 # send your bug reports to contact@dotslashplay.it ### script_version=20230625.1 # Set game-specific variables GAME_ID='cats-are-liquid-1' GAME_NAME='Cats are Liquid - A Light in the Shadows' ARCHIVE_ITCH='CatsAreLiquidLinux.zip' ARCHIVE_ITCH_URL='https://lastquarterstudios.itch.io/cats-are-liquid-a-light-in-the-shadows' ARCHIVE_ITCH_MD5='eb01e4f7c44543051e95bc78b777bb5b' ARCHIVE_ITCH_SIZE='180000' ARCHIVE_ITCH_VERSION='1.0-itch1' ARCHIVE_ITCH_TYPE='zip' ARCHIVE_GAME_BIN_PATH='CatsAreLiquidLinux' ARCHIVE_GAME_BIN_FILES='CatsAreLiquidLinux.x86 CatsAreLiquidLinux_Data/Mono CatsAreLiquidLinux_Data/Plugins' ARCHIVE_GAME_DATA_PATH='CatsAreLiquidLinux' ARCHIVE_GAME_DATA_FILES='CatsAreLiquidLinux_Data' DATA_DIRS='./logs' APP_MAIN_TYPE='native' APP_MAIN_EXE='CatsAreLiquidLinux.x86' APP_MAIN_ICON='CatsAreLiquidLinux_Data/Resources/UnityPlayer.png' # Common Unity3D tweaks APP_MAIN_PRERUN='# Work around Unity3D poor support for non-US locales export LANG=C' # Use a per-session dedicated file for logs # shellcheck disable=SC2016 APP_MAIN_OPTIONS='-logFile ./logs/$(date +%F-%R).log' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_LIGHTING_ID $PKG_DATA_ID glibc libstdc++" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary files rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-cats-are-liquid-2.sh0000755000000000000000000000442614471751340015311 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi set -o errexit ### # Cats are Liquid 2 # send your bug reports to contact@dotslashplay.it ### script_version=20230625.1 # Set game-specific variables GAME_ID='cats-are-liquid-2' GAME_NAME='Cats are Liquid - A Better Place' ARCHIVE_ITCH='CaL-ABP-Linux.zip' ARCHIVE_ITCH_URL='https://lastquarterstudios.itch.io/cats-are-liquid-a-better-place' ARCHIVE_ITCH_MD5='a61524e809870b026dc8a993b177b9b9' ARCHIVE_ITCH_SIZE='440000' ARCHIVE_ITCH_VERSION='1.0-itch1' ARCHIVE_ITCH_TYPE='zip' ARCHIVE_GAME_BIN_PATH='Linux' ARCHIVE_GAME_BIN_FILES='CaL-ABP-Linux.x86_64 CaL-ABP-Linux_Data/Mono CaL-ABP-Linux_Data/Plugins' ARCHIVE_GAME_DATA_PATH='Linux' ARCHIVE_GAME_DATA_FILES='CaL-ABP-Linux_Data' DATA_DIRS='./logs' APP_MAIN_TYPE='native' APP_MAIN_EXE='CaL-ABP-Linux.x86_64' APP_MAIN_ICON='CaL-ABP-Linux_Data/Resources/UnityPlayer.png' # Common Unity3D tweaks APP_MAIN_PRERUN='# Work around Unity3D poor support for non-US locales export LANG=C' # Use a per-session dedicated file for logs # shellcheck disable=SC2016 APP_MAIN_OPTIONS='-logFile ./logs/$(date +%F-%R).log' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_LIGHTING_ID $PKG_DATA_ID glibc libstdc++" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary files rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-cats-hidden-in-places.sh0000755000000000000000000000557014471751340016223 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Cats Hidden in Places: # - Cats Hidden in Paris # - Cats Hidden in Italy # send your bug reports to contact@dotslashplay.it ### script_version=20231220.5 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID_PARIS='cats-hidden-in-paris' GAME_NAME_PARIS='Cats Hidden in Paris' GAME_ID_ITALY='cats-hidden-in-italy' GAME_NAME_ITALY='Cats Hidden in Italy' # Archives ## Cats Hidden in Paris ARCHIVE_BASE_PARIS_0_NAME='setup_cats_hidden_in_paris_1.0_gog_dlc_fix6_(69829).exe' ARCHIVE_BASE_PARIS_0_MD5='6b55ff57a52f1edd2990133737c870cd' ARCHIVE_BASE_PARIS_0_TYPE='innosetup' ARCHIVE_BASE_PARIS_0_SIZE='106572' ARCHIVE_BASE_PARIS_0_VERSION='1.0-gog69829' ARCHIVE_BASE_PARIS_0_URL='https://www.gog.com/game/cats_hidden_in_paris' ## Cats Hidden in Italy ARCHIVE_BASE_ITALY_0_NAME='setup_cats_hidden_in_italy_1.0_gog_savefix_proper_(69657).exe' ARCHIVE_BASE_ITALY_0_MD5='7564fdad50e6e655cb16bca17db30058' ARCHIVE_BASE_ITALY_0_TYPE='innosetup' ARCHIVE_BASE_ITALY_0_SIZE='102010' ARCHIVE_BASE_ITALY_0_VERSION='1.0-gog69657' ARCHIVE_BASE_ITALY_0_URL='https://www.gog.com/game/cats_hidden_in_italy' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' modules' CONTENT_GAME0_BIN_FILES_PARIS=' cats hidden in paris.exe' CONTENT_GAME0_BIN_FILES_ITALY=' cats hidden in italy.exe' CONTENT_GAME_DATA_FILES=' sounds' CONTENT_GAME0_DATA_FILES_PARIS=' cats hidden in paris.dat' CONTENT_GAME0_DATA_FILES_ITALY=' cats hidden in italy.dat' WINE_PERSISTENT_DIRECTORIES_PARIS=' users/${USER}/AppData/Roaming/Cats Hidden in Paris' WINE_PERSISTENT_DIRECTORIES_ITALY=' users/${USER}/AppData/Roaming/Cats Hidden in Italy' APP_MAIN_EXE_PARIS='cats hidden in paris.exe' APP_MAIN_EXE_ITALY='cats hidden in italy.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID_PARIS="${GAME_ID_PARIS}-data" PKG_DATA_ID_ITALY="${GAME_ID_ITALY}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS_PARIS="$PKG_DATA_ID_PARIS" PKG_BIN_DEPS_ITALY="$PKG_DATA_ID_ITALY" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-cayne.sh0000755000000000000000000000377014471751340013266 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Erwann Duclos # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Cayne # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220902.2 GAME_ID='cayne' GAME_NAME='Cayne' UNITY3D_NAME='cayne' ARCHIVE_BASE_0='gog_cayne_2.0.0.1.sh' ARCHIVE_BASE_0_MD5='e1f78fd010c6185b828378aa7af3d7a8' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='4100000' ARCHIVE_BASE_0_VERSION='1.26-gog2.0.0.1' ARCHIVE_BASE_0_URL='https://www.gog.com/game/cayne' CONTENT_PATH_DEFAULT='data/noarch/game' ARCHIVE_GAME_BIN_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono ${UNITY3D_NAME}_Data/Plugins" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6 libGL.so.1 libX11.so.6 libgdk-x11-2.0.so.0 xcursor libxrandr" # Load common functions target_version='2.17' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-celeste.sh0000755000000000000000000000607114471751340013610 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 BetaRays # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Celeste # send your bug reports to contact@dotslashplay.it ### script_version=20230125.2 GAME_ID='celeste' GAME_NAME='Celeste' ARCHIVE_BASE_1='celeste-linux.zip' ARCHIVE_BASE_1_MD5='518ea69d60079109a2575d428eff8a53' ARCHIVE_BASE_1_SIZE='1200000' ARCHIVE_BASE_1_VERSION='1.4.0.0-itch.2021.03.29' ARCHIVE_BASE_1_URL='https://maddymakesgamesinc.itch.io/celeste' ## WARNING - Informations about older archives are kept, ## but they will not be used due to name collisions with the newest archive ## cf. https://forge.dotslashplay.it/play.it/scripts/-/issues/355 ARCHIVE_BASE_0='celeste-linux.zip' ARCHIVE_BASE_0_MD5='b27c983b95b2a2a35a272b7ecd94cbc2' ARCHIVE_BASE_0_SIZE='1400000' ARCHIVE_BASE_0_VERSION='1.3.1.2-itch' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES=' Content Celeste.exe Celeste.exe.config Celeste.png gamecontrollerdb.txt Celeste.Content.dll FNA.dll FNA.dll.config FNA3D.dll' APP_MAIN_EXE='Celeste.exe' APP_MAIN_ICON='Celeste.png' PKG_MAIN_DEPS='mono' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libGL.so.1 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0 libXrandr.so.2' PKG_MAIN_DEPENDENCIES_MONO_LIBRARIES=' mscorlib.dll Mono.Posix.dll Mono.Security.dll System.dll System.Configuration.dll System.Core.dll System.Data.dll System.Drawing.dll System.Numerics.dll System.Runtime.Serialization.dll System.Security.dll System.Xml.dll System.Xml.Linq.dll' # Include shipped libraries that can not be replaced by system ones CONTENT_LIBS_LIBS32_PATH="${CONTENT_PATH_DEFAULT}/lib" CONTENT_LIBS_LIBS32_FILES=' libfmod*.so* libmojoshader.so' CONTENT_LIBS_LIBS64_PATH="${CONTENT_PATH_DEFAULT}/lib64" CONTENT_LIBS_LIBS64_FILES=' libfmod*.so* libmojoshader.so libFNA3D.so.0' PACKAGES_LIST='PKG_MAIN PKG_LIBS32 PKG_LIBS64' PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS32_ID="$PKG_LIBS_ID" PKG_LIBS32_ARCH='32' PKG_LIBS64_ID="$PKG_LIBS_ID" PKG_LIBS64_ARCH='64' PKG_MAIN_DEPS="$PKG_MAIN_DEPS $PKG_LIBS_ID" # Load common functions target_version='2.20' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" set_standard_permissions . ) # Include game icons icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-chained-echoes.sh0000755000000000000000000000356514471751340015030 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Chained Echoes # send your bug reports to contact@dotslashplay.it ### script_version=20231129.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='chained-echoes' GAME_NAME='Chained Echoes' ARCHIVE_BASE_0_NAME='chained_echoes_1_3_65510.sh' ARCHIVE_BASE_0_MD5='b319014ce49e39b8ff4aa3540a79e874' ARCHIVE_BASE_0_SIZE='830524' ARCHIVE_BASE_0_VERSION='1.3-gog65510' ARCHIVE_BASE_0_URL='https://www.gog.com/game/chained_echoes' UNITY3D_NAME='Chained Echoes' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Prevent the inclusion of shipped Steam libraries. rm --recursive "$(unity3d_name)_Data/Plugins" ) # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-chaos-reborn.sh0000755000000000000000000001033414471751340014543 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Chaos Reborn # send your bug reports to contact@dotslashplay.it ### script_version=20230226.3 GAME_ID='chaos-reborn' GAME_NAME='Chaos Reborn' ARCHIVE_BASE_4='chaos_reborn_en_1_13_3_23004.sh' ARCHIVE_BASE_4_MD5='283d60b5adf91640679d2fe1c7962300' ARCHIVE_BASE_4_TYPE='mojosetup' ARCHIVE_BASE_4_SIZE='1700000' ARCHIVE_BASE_4_VERSION='1.13.3-gog23004' ARCHIVE_BASE_4_URL='https://www.gog.com/game/chaos_reborn' ARCHIVE_BASE_3='chaos_reborn_en_1_13_2_17223.sh' ARCHIVE_BASE_3_MD5='edb60d98710c87c0adea06f55be99567' ARCHIVE_BASE_3_TYPE='mojosetup' ARCHIVE_BASE_3_SIZE='1700000' ARCHIVE_BASE_3_VERSION='1.13.2-gog17223' ARCHIVE_BASE_2='chaos_reborn_en_1_131_14290.sh' ARCHIVE_BASE_2_MD5='fcfea11ad6a6cbdda2290c4f29bbeb2b' ARCHIVE_BASE_2_TYPE='mojosetup' ARCHIVE_BASE_2_SIZE='1700000' ARCHIVE_BASE_2_VERSION='1.13.1-gog14290' ARCHIVE_BASE_1='gog_chaos_reborn_2.14.0.16.sh' ARCHIVE_BASE_1_MD5='97dbfc0a679a7fd104c744b6aa46db36' ARCHIVE_BASE_1_TYPE='mojosetup' ARCHIVE_BASE_1_SIZE='1700000' ARCHIVE_BASE_1_VERSION='1.13-gog2.14.0.16' ARCHIVE_BASE_0='gog_chaos_reborn_2.13.0.15.sh' ARCHIVE_BASE_0_MD5='a2abf12572eea8b43059a9bb8d5d3171' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='1700000' ARCHIVE_BASE_0_VERSION='1.12.2-gog2.13.0.15' UNITY3D_NAME='ChaosRebornLinux' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN32_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins/x86" CONTENT_LIBS_BIN32_FILES=' ScreenSelector.so' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86" CONTENT_LIBS_BIN64_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_LIBS_BIN64_FILES=' ScreenSelector.so' CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data/Managed ${UNITY3D_NAME}_Data/Mono/etc ${UNITY3D_NAME}_Data/Resources ${UNITY3D_NAME}_Data/globalgamemanagers ${UNITY3D_NAME}_Data/ScreenSelector.png ${UNITY3D_NAME}_Data/level? ${UNITY3D_NAME}_Data/level?? ${UNITY3D_NAME}_Data/*.assets ${UNITY3D_NAME}_Data/*.assets.resS ${UNITY3D_NAME}_Data/*.resource" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Enforce windowed mode on first launch APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Enforce windowed mode on first launch config_file="$HOME/.config/unity3d/Snapshot Games Inc_/Chaos Reborn/prefs" if [ ! -e "$config_file" ]; then mkdir --parents "$(dirname "$config_file")" cat > "$config_file" <<- EOF 0 EOF fi' # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-charterstone.sh0000755000000000000000000000413514471751340014664 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Charterstone # send your bug reports to contact@dotslashplay.it ### script_version=20221231.1 GAME_ID='charterstone' GAME_NAME='Charterstone' UNITY3D_NAME='Charterstone' ARCHIVE_BASE_0='charterstone_digital_edition_1_2_9_60090.sh' ARCHIVE_BASE_0_MD5='2ae5e0a2a81433b3ae54e8ff80af9274' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='620000' ARCHIVE_BASE_0_VERSION='1.2.9-gog60090' ARCHIVE_BASE_0_URL='https://www.gog.com/game/charterstone_digital_edition' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_Data/MonoBleedingEdge ${UNITY3D_NAME}_Data/Plugins ${UNITY3D_NAME}.x86_64 UnityPlayer.so" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' ld-linux-x86-64.so.2 libc.so.6 libdl.so.2 libgcc_s.so.1 libglib-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libsecret-1.so.0 libstdc++.so.6 libz.so.1' # Load common functions target_version='2.20' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-chook-and-sosig.sh0000755000000000000000000000466014471751340015153 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=20221206.4 GAME_ID='chook-and-sosig' GAME_NAME='Chook & Sosig: Walk the Plank' UNITY3D_NAME='walktheplank' ARCHIVE_BASE_0='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' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" mono unitycrashhandler32.exe ${UNITY3D_NAME}_data/plugins ${UNITY3D_NAME}.exe *.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" APP_MAIN_ICON="${UNITY3D_NAME}.exe" APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/LocalLow/TookiPalooki/WalkthePlank' USER_PERSISTENT_FILES=' userdata/*.save' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPS_ARCH='gst-plugins-base gst-plugins-good gst-libav' PKG_BIN_DEPS_DEB='gstreamer1.0-plugins-base, gstreamer1.0-plugins-good, gstreamer1.0-libav' PKG_BIN_DEPS_GENTOO='media-libs/gst-plugins-base media-libs/gst-plugins-good media-plugins/gst-plugins-libav' # Load common functions target_version='2.18' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Get icon PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-chroma-squad.sh0000755000000000000000000000600114471751340014541 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Chroma Squad # send your bug reports to contact@dotslashplay.it ### script_version=20230405.1 GAME_ID='chroma-squad' GAME_NAME='Chroma Squad' ARCHIVE_BASE_0='chroma_squad_en_1_12b_15401.sh' ARCHIVE_BASE_0_MD5='5f76d2b8942261ff837398c3a674db91' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='720000' ARCHIVE_BASE_0_VERSION='1.12b-gog15401' ARCHIVE_BASE_0_URL='https://www.gog.com/game/chroma_squad' UNITY3D_NAME='Chroma Squad' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN32_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins/x86" CONTENT_LIBS_BIN32_FILES=' ScreenSelector.so' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86" CONTENT_LIBS_BIN64_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_LIBS_BIN64_FILES=' ScreenSelector.so' CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data/Managed ${UNITY3D_NAME}_Data/Mono/etc ${UNITY3D_NAME}_Data/Resources ${UNITY3D_NAME}_Data/StreamingAssets ${UNITY3D_NAME}_Data/globalgamemanagers ${UNITY3D_NAME}_Data/level? ${UNITY3D_NAME}_Data/*.assets ${UNITY3D_NAME}_Data/*.resource ${UNITY3D_NAME}_Data/*.resS" USER_PERSISTENT_DIRECTORIES=" ${UNITY3D_NAME}_Data/savedGames" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2 libz.so.1' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-chronology.sh0000755000000000000000000000450314471751340014345 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Chronology # send your bug reports to contact@dotslashplay.it ### script_version=20240122.4 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='chronology' GAME_NAME='Chronology' ARCHIVE_BASE_0_NAME='Chronology Windows 1.0.20.zip' ARCHIVE_BASE_0_MD5='08236874d0553d9953c56ee3472468f2' ARCHIVE_BASE_0_SIZE='240000' ARCHIVE_BASE_0_VERSION='1.0.20-itch1' ARCHIVE_BASE_0_URL='https://bedtimedigitalgames.itch.io/chronology' CONTENT_PATH_DEFAULT='Chronology Windows 1.0.20' CONTENT_GAME_BIN_FILES=' Chronology.exe *.dll' CONTENT_GAME_DATA_FILES=' Content Screengroup.dat' CONTENT_DOC_DATA_FILES=' BuildDate.txt License.txt' ## The game engine expects write access to files under Content. USER_PERSISTENT_DIRECTORIES=' Content' WINE_DLLOVERRIDES_DEFAULT='winemenubuilder.exe,mshtml=' ## The game fails to start if Mono is used instead of .NET. WINE_WINETRICKS_VERBS="${WINE_WINETRICKS_VERBS:-} dotnet40" ## The game crashes when trying to play if the PE32 OpenAL library is missing. WINE_WINETRICKS_VERBS="${WINE_WINETRICKS_VERBS:-} openal" APP_MAIN_EXE='Chronology.exe' ## The application type must be set explicitly, ## or it would be wrongly guessed as a Mono one. APP_MAIN_TYPE='wine' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-chuchel.sh0000755000000000000000000000642614471751340013603 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Chuchel # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210526.1 # Set game-specific variables GAME_ID='chuchel' GAME_NAME='Chuchel' ARCHIVE_BASE_0='setup_chuchel_2.0.0_(26120).exe' ARCHIVE_BASE_0_MD5='d9af6a71485c90b8907bc2326e4b704a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='2.0.0-gog26120' ARCHIVE_BASE_0_SIZE='750000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/chuchel' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='adobe?air chuchel.exe meta-inf chuchel.swf' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='chuchel_graphics_o chuchel_sound_data ico' APP_MAIN_TYPE='wine' APP_MAIN_EXE='chuchel.exe' APP_MAIN_ICON='chuchel.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="${PKG_DATA_ID} wine glx" # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Extract icons PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Clean up temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-cinders.sh0000755000000000000000000000462314471751340013614 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Cinders # send your bug reports to contact@dotslashplay.it ### script_version=20221204.3 GAME_ID='cinders' GAME_NAME='Cinders' ARCHIVE_BASE_0='setup_cinders_1.2.7_(27636).exe' ARCHIVE_BASE_0_MD5='511b82f5b2b9ca06636fe424980ff1bf' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='280000' ARCHIVE_BASE_0_VERSION='1.2.7-gog27636' ARCHIVE_BASE_0_URL='https://www.gog.com/en/game/cinders' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' cinders.exe data.win' CONTENT_GAME_DATA_FILES=' *.ogg data.win' APP_MAIN_TYPE='wine' APP_MAIN_EXE='cinders.exe' APP_MAIN_ICON='cinders.exe' APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/Roaming/Cinders' USER_PERSISTENT_FILES=' userdata/*.sav' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Work around audio issues PKG_BIN_DEPS="$PKG_BIN_DEPS winetricks" APP_WINETRICKS="$APP_WINETRICKS dsound" # Set up a WINE virtual desktop on first launch, # using the current desktop resolution PKG_BIN_DEPS="$PKG_BIN_DEPS winetricks xrandr sed" sed_expression='s/.*primary.* ([0-9]+x[0-9]+).*/\1/p' sed_options="--regexp-extended --silent --expression='$sed_expression'" APP_WINETRICKS="$APP_WINETRICKS vd=\$(LANG=C xrandr | sed $sed_options)" # Load common functions target_version='2.18' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-cineris-somnia.sh0000755000000000000000000000700014471751340015075 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2018-2021, BetaRays # 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. ### ### # Cineris Somnia # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210928.3 # Set game-specific variables GAME_ID='cineris-somnia' GAME_NAME='Cineris Somnia' ARCHIVE_BASE_0='CINERIS_SOMNIA_PLAYISM_20181109.zip' ARCHIVE_BASE_0_MD5='c25ea529ffb12b0e055d05117c5bc24d' ARCHIVE_BASE_0_SIZE='3200000' ARCHIVE_BASE_0_VERSION='1.01-playism20181109' ARCHIVE_DOC_DATA_PATH='20181109_101' ARCHIVE_DOC_DATA_FILES='*.txt' ARCHIVE_GAME_BIN_PATH='20181109_101' ARCHIVE_GAME_BIN_FILES=' Cineris?Somnia.exe Cineris?Somnia_Data/Mono' ARCHIVE_GAME_DATA_PATH='20181109_101' ARCHIVE_GAME_DATA_FILES='Cineris?Somnia_Data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='Cineris Somnia.exe' APP_MAIN_ICON='Cineris Somnia.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID wine alsa libGL.so.1" # Use persistent storage for user data APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/$(id -un)/AppData/LocalLow/Nayuta Studio/Cineris Somnia' DATA_DIRS="$DATA_DIRS ./userdata" # Load common functions target_version='2.14' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "$PLAYIT_WORKDIR/gamedata" # Include game icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-civilization-4.sh0000755000000000000000000001346014471751340015031 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Civilization 4 # send your bug reports to contact@dotslashplay.it ### script_version=20231117.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='civilization-4' GAME_NAME='Civilization Ⅳ' ARCHIVE_BASE_0_NAME='setup_civilization4_complete_2.0.0.4.exe' ARCHIVE_BASE_0_MD5='8ddc5e0129d216cb397e8da5f95a8c92' ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS='--gog' ARCHIVE_BASE_0_PART1_NAME='setup_civilization4_complete_2.0.0.4-1.bin' ARCHIVE_BASE_0_PART1_MD5='dbf971c1acbad3648697c7c343f14aad' ARCHIVE_BASE_0_PART1_EXTRACTOR='unar' ARCHIVE_BASE_0_SIZE='4800000' ARCHIVE_BASE_0_VERSION='1.7.4.0-gog2.0.0.4' ARCHIVE_BASE_0_URL='https://www.gog.com/game/sid_meiers_civilization_iv_the_complete_edition' CONTENT_PATH_DEFAULT='game/Civ4' CONTENT_GAME_BIN_WARLORDS_FILES=' Warlords/Assets/Python/System Warlords/CvGameCoreDLL Warlords/*.dll Warlords/*.exe' CONTENT_GAME_BIN_SWORD_FILES=' Beyond the Sword/CvGameCoreDLL Beyond the Sword/*.dll Beyond the Sword/*.exe' CONTENT_GAME_BIN_FILES=' Assets/Python/System CvGameCoreDLL Miles *.dll *.exe' CONTENT_GAME_DATA_WARLORDS_FILES=' Warlords/Assets Warlords/Mods Warlords/PublicMaps Warlords/Resource Warlords/Shaders' CONTENT_GAME_DATA_SWORD_FILES=' Beyond the Sword/Assets Beyond the Sword/Mods Beyond the Sword/PublicMaps Beyond the Sword/Resource Beyond the Sword/Shaders' CONTENT_GAME_DATA_FILES=' Assets Mods PublicMaps Resource Shaders' CONTENT_DOC_DATA_WARLORDS_PATH="${CONTENT_PATH_DEFAULT}/.." CONTENT_DOC_DATA_WARLORDS_FILES=" Sid Meier's Civilization 4 - Warlords.pdf Sid Meier's Civilization 4 - Warlords (FR).pdf" CONTENT_DOC_DATA_SWORD_PATH="${CONTENT_PATH_DEFAULT}/.." CONTENT_DOC_DATA_SWORD_FILES=" Sid Meier's Civilization 4 - Beyond the Sword.pdf Sid Meier's Civilization 4 - Beyond the Sword (FR).pdf" CONTENT_DOC_DATA_PATH="${CONTENT_PATH_DEFAULT}/.." CONTENT_DOC_DATA_FILES=" Sid Meier's Civilization 4.pdf Sid Meier's Civilization 4 (FR).pdf" CONTENT_DOC0_DATA_PATH="${CONTENT_PATH_DEFAULT}/../Readme" CONTENT_DOC0_DATA_FILES=' */Readme.htm' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Local/My Games/civilization-4 users/${USER}/Documents/My Games/civilization-4 users/${USER}/AppData/Local/My Games/Warlords users/${USER}/Documents/My Games/Warlords users/${USER}/AppData/Local/My Games/Beyond the Sword users/${USER}/Documents/My Games/Beyond the Sword' APP_MAIN_EXE='Civilization4.exe' APP_MAIN_ICON='Assets/res/Civ4Game.ico' APP_WARLORDS_ID="${GAME_ID}-warlords" APP_WARLORDS_NAME="$GAME_NAME - Warlords" APP_WARLORDS_EXE='Warlords/Civ4Warlords.exe' APP_WARLORDS_ICONS_LIST='APP_WARLORDS_ICON16 APP_WARLORDS_ICON32 APP_WARLORDS_ICON64' APP_WARLORDS_ICON16='Warlords/Assets/res/CIV_Warlords_16.ico' APP_WARLORDS_ICON32='Warlords/Assets/res/CIV_Warlords_32.ico' APP_WARLORDS_ICON64='Warlords/Assets/res/CIV_Warlords_64.ico' APP_SWORD_ID="${GAME_ID}-beyond-the-sword" APP_SWORD_NAME="$GAME_NAME - Beyond the Sword" APP_SWORD_EXE='Beyond the Sword/Civ4BeyondSword.exe' APP_SWORD_ICON='Beyond the Sword/Assets/res/Civ4BtS.ico' PACKAGES_LIST=' PKG_BIN_WARLORDS PKG_BIN_SWORD PKG_BIN PKG_DATA_WARLORDS PKG_DATA_SWORD PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_WARLORDS_ID="${GAME_ID}-warlords-data" PKG_DATA_WARLORDS_DESCRIPTION='Warlords - data' PKG_DATA_WARLORDS_DEPS="$PKG_DATA_ID" PKG_DATA_SWORD_ID="${GAME_ID}-beyond-the-sword-data" PKG_DATA_SWORD_DESCRIPTION='Beyond the Sword - data' PKG_DATA_SWORD_DEPS="$PKG_DATA_ID" PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_WARLORDS_ID="${GAME_ID}-warlords" PKG_BIN_WARLORDS_DESCRIPTION='Warlords' PKG_BIN_WARLORDS_ARCH='32' PKG_BIN_WARLORDS_DEPS="$PKG_DATA_WARLORDS_ID" PKG_BIN_SWORD_ID="${GAME_ID}-beyond-the-sword" PKG_BIN_SWORD_DESCRIPTION='Beyond the Sword' PKG_BIN_SWORD_ARCH='32' PKG_BIN_SWORD_DEPS="$PKG_DATA_SWORD_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 . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion 'APP_MAIN' set_current_package 'PKG_DATA_WARLORDS' icons_inclusion 'APP_WARLORDS' set_current_package 'PKG_DATA_SWORD' icons_inclusion 'APP_SWORD' content_inclusion_default # Ensure fonts expected by the game are available ## TODO: The library should provide a function path_fonts (or path_fonts_ttf?) returning this path. PATH_FONTS="$(option_value 'PREFIX')/share/fonts/truetype/$(game_id)" fonts_path_system="$(package_path 'PKG_DATA')${PATH_FONTS}" fonts_path_game="$(package_path 'PKG_DATA')$(path_game_data)" mkdir --parents "$fonts_path_system" for font_file in \ 'Assets/res/Fonts/sylfaen.ttf' \ 'Resource/Civ4/sylfaenbi.ttf' \ 'Resource/Civ4/sylfaenb.ttf' \ 'Resource/Civ4/sylfaeni.ttf' \ 'Resource/Civ4/sylfaen.ttf' \ 'Resource/Fonts/arial.ttf' \ 'Resource/Fonts/sylfaen.ttf' do mv --force "${fonts_path_game}/${font_file}" "${fonts_path_system}/$(basename "$font_file")" ln --symbolic "${PATH_FONTS}/$(basename "$font_file")" "${fonts_path_game}/${font_file}" done # Write launchers set_current_package 'PKG_BIN' launchers_write 'APP_MAIN' set_current_package 'PKG_BIN_WARLORDS' launchers_write 'APP_WARLORDS' set_current_package 'PKG_BIN_SWORD' launchers_write 'APP_SWORD' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-cleo-a-pirates-tale.sh0000755000000000000000000000441114471751340015710 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Cleo - A Pirate's Tale # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220125.2 # Set game-specific variables GAME_ID='cleo-a-pirates-tale' GAME_NAME='Cleo - A Pirateʼs Tale' ARCHIVE_BASE_0='setup_cleo_-_a_pirates_tale_1.1.5_(52212).exe' ARCHIVE_BASE_0_MD5='3b5dea47b0517c5801275eac47d71b01' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1800000' ARCHIVE_BASE_0_VERSION='1.1.5-gog52212' ARCHIVE_BASE_0_URL='https://www.gog.com/game/cleo_a_pirates_tale' UNITY3D_NAME='cleoapiratestale' CONTENT_PATH_DEFAULT='.' ARCHIVE_GAME_BIN_FILES=" ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_data/plugins unityplayer.dll monobleedingedge" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" APP_MAIN_ICON="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Use persistent storage for user data APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/LocalLow/Christoph Schultz/CleoAPiratesTale' DATA_DIRS='./userdata' # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-cloud-gardens.sh0000755000000000000000000000373414471751340014716 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Cloud Gardens ### script_version=20230213.1 GAME_ID='cloud-gardens' GAME_NAME='Cloud Gardens' ARCHIVE_BASE_0='f09f8cb1-windows.zip' ARCHIVE_BASE_0_MD5='d37797bda416ef5495441aabf2f906ea' ARCHIVE_BASE_0_SIZE='640000' ARCHIVE_BASE_0_VERSION='1.1.1-itch.2022.03.09' ARCHIVE_BASE_0_URL='https://noio.itch.io/cloud-gardens' UNITY3D_NAME='Cloud Gardens' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_Data/Plugins MonoBleedingEdge UnityPlayer.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_EXE="${UNITY3D_NAME}.exe" APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/LocalLow/noio/Cloud Gardens' USER_PERSISTENT_DIRECTORIES=' userdata/Save' USER_PERSISTENT_FILES=' userdata/prefs.json' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-codemancer.sh0000755000000000000000000000371114471751340014262 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Codemancer # send your bug reports to contact@dotslashplay.it ### script_version=20230328.2 GAME_ID='codemancer' GAME_NAME='Codemancer' ARCHIVE_BASE_0='Codemancer.msi' ARCHIVE_BASE_0_MD5='727dfcf3640ce064f455a023c1c50e1e' ARCHIVE_BASE_0_SIZE='120000' ARCHIVE_BASE_0_VERSION='1.0.2-itch.2020.03.17' ARCHIVE_BASE_0_URL='https://importantlittlegames.itch.io/codemancer-ch-1' CONTENT_PATH_DEFAULT='appdir:.' CONTENT_GAME_BIN_FILES=' adobe air codemancer chapter 1.exe' CONTENT_GAME_DATA_FILES=' assets meta-inf mimetype icon.ico *.swf' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/CodemancerChapter1' APP_MAIN_EXE='codemancer chapter 1.exe' APP_MAIN_ICON='icon.ico' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-coffee-noir-business-detective-game.sh0000755000000000000000000000453714471751340021077 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Coffee Noir - Business Detective Game # send your bug reports to contact@dotslashplay.it ### script_version=20231125.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='coffee-noir-business-detective-game' GAME_NAME='Coffee Noir - Business Detective Game' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GME_NAME (demo)" ARCHIVE_BASE_0_NAME='coffee_noir_business_detective_game_1_0_1_50385.sh' ARCHIVE_BASE_0_MD5='dc158baf4bf3d80524603582ee3be780' ARCHIVE_BASE_0_SIZE='1459648' ARCHIVE_BASE_0_VERSION='1.0.1-gog50385' ARCHIVE_BASE_0_URL='https://www.gog.com/game/coffee_noir_business_detective_game' ARCHIVE_BASE_DEMO_0_NAME='coffee_noir_business_detective_game_demo_2_0_0_50174.sh' ARCHIVE_BASE_DEMO_0_MD5='7e3ffe0fbc1b0992a5e241432c85da29' ARCHIVE_BASE_DEMO_0_SIZE='591420' ARCHIVE_BASE_DEMO_0_VERSION='2.0.0-gog50174' ARCHIVE_BASE_DEMO_0_URL='https://www.gog.com/game/coffee_noir_business_detective_game_demo' UNITY3D_NAME='CoffeeNoir' UNITY3D_NAME_DEMO='CoffeeNoirDemo' UNITY3D_PLUGINS=' libSQLite-Interop.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPS_DEMO="$PKG_DATA_ID_DEMO" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-coffee-talk.sh0000755000000000000000000000652114471751340014344 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=20230322.1 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_1='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_1_URL='https://www.gog.com/game/coffee_talk' ARCHIVE_BASE_0='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='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='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_GAME_BIN_FILES=" mono monobleedingedge ${UNITY3D_NAME}_data/plugins ${UNITY3D_NAME}.exe *.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data cticon.png" APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/LocalLow/Toge Productions/CoffeeTalk/Data' USER_PERSISTENT_FILES=' userdata/SettingsData' USER_PERSISTENT_DIRECTORIES=' userdata/GOG' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_PROVIDE="$PKG_DATA_ID" PKG_DATA_DESCRIPTION='data' PKG_BIN_ID="$GAME_ID" PKG_BIN_ID_DEMO="$GAME_ID_DEMO" PKG_BIN_PROVIDE="$PKG_BIN_ID" PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPS_ARCH='lib32-gst-plugins-good lib32-gst-libav' PKG_BIN_DEPS_DEB='gstreamer1.0-plugins-good, gstreamer1.0-libav' PKG_BIN_DEPS_GENTOO='media-plugins/gst-plugins-good[abi_x86_32] media-plugins/gst-plugins-libav[abi_x86_32]' # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-commandos-3.sh0000755000000000000000000000417214471751340014304 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Jacek Szafarkiewicz # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Commandos 3 # send your bug reports to contact@dotslashplay.it ### script_version=20231110.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='commandos-3' GAME_NAME='Commandos 3: Destination Berlin' ARCHIVE_BASE_0_NAME='setup_commandos_3_-_destination_berlin_1.42_hotfix2_(25143).exe' ARCHIVE_BASE_0_MD5='2fa1ad6e7c7e918bdaa1adee5bb3a0ec' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2100000' ARCHIVE_BASE_0_VERSION='1.42-gog25143' ARCHIVE_BASE_0_URL='https://www.gog.com/game/commandos_2_3' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' *.dll *.exe' CONTENT_GAME_DATA_FILES=' data output directplay.cmd *.pck' CONTENT_DOC_DATA_FILES=' readme.rtf eula.txt support.txt *.pdf' USER_PERSISTENT_DIRECTORIES=' output' APP_MAIN_EXE='commandos3.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" ## FIXME: This game should be run in a WINE virtual desktop. # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files rm --recursive \ '__redist' \ 'commonappdata' \ 'tmp' ) # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-contract-demon.sh0000755000000000000000000001005614471751340015077 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Contract Demon # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210603.16 # Set game-specific variables GAME_ID='contract-demon' GAME_NAME='Contract Demon' ARCHIVE_BASE_1='contractdemon-1.8.0-pc.zip' ARCHIVE_BASE_1_MD5='269db9bdbf6f40c7362814de7c8f46da' ARCHIVE_BASE_1_SIZE='200000' ARCHIVE_BASE_1_VERSION='1.8.0-itch.2021.05.08' ARCHIVE_BASE_1_URL='https://nomnomnami.itch.io/contract-demon' ARCHIVE_BASE_0='contractdemon-1.7.1-pc.zip' ARCHIVE_BASE_0_MD5='81de84b69550eae7ae13e019a4aec3bf' ARCHIVE_BASE_0_SIZE='150000' ARCHIVE_BASE_0_VERSION='1.7.1-itch' ARCHIVE_GAME_BIN32_PATH='contractdemon-1.8.0-pc' ARCHIVE_GAME_BIN32_FILES='lib/linux-i686' ARCHIVE_GAME_BIN64_PATH='contractdemon-1.8.0-pc' ARCHIVE_GAME_BIN64_FILES='lib/linux-x86_64' ARCHIVE_GAME_DATA_PATH='contractdemon-1.8.0-pc' ARCHIVE_GAME_DATA_FILES='lib/python2.7 game contractdemon.py renpy' APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32='lib/linux-i686/contractdemon' APP_MAIN_EXE_BIN64='lib/linux-x86_64/contractdemon' APP_MAIN_ICON='contractdemon-1.8.0-pc/contractdemon.exe' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="${PKG_DATA_ID} glibc libstdc++ glx" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Provide support for old archives ARCHIVE_GAME_BIN32_PATH_0='contractdemon-1.7.1-pc' ARCHIVE_GAME_BIN64_PATH_0='contractdemon-1.7.1-pc' ARCHIVE_GAME_DATA_PATH_0='contractdemon-1.7.1-pc' ARCHIVE_GAME_DATA_FILES_0="${ARCHIVE_GAME_DATA_FILES} lib/pythonlib2.7" APP_MAIN_ICON_0='contractdemon-1.7.1-pc/contractdemon.exe' # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_DATA' icons_get_from_workdir 'APP_MAIN' # Clean up temporary directories rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-contraption-maker.sh0000755000000000000000000001101614471751340015614 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Contraption Maker # send your bug reports to contact@dotslashplay.it ### script_version=20231110.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='contraption-maker' GAME_NAME='Contraption Maker' ARCHIVE_BASE_GOG_0_NAME='contraption_maker_1_4_9_67880.sh' ARCHIVE_BASE_GOG_0_MD5='8ab8c87a6d1a0e122ea9432a7a74d96c' ARCHIVE_BASE_GOG_0_SIZE='320396' ARCHIVE_BASE_GOG_0_VERSION='1.4.9.0-gog67880' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/contraption_maker' ## This DRM-free installer is no longer available from humblebundle.com, ## they now only sell this game to Steam users. ARCHIVE_BASE_HUMBLE_0_NAME='ContraptionMaker-linux-11410.sh' ARCHIVE_BASE_HUMBLE_0_MD5='7d7a7a4a56cfff722d0654563aee482a' ARCHIVE_BASE_HUMBLE_0_SIZE='251700' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0-humble.2015.04.07' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='data' CONTENT_GAME_BIN_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/x86_64" CONTENT_GAME_BIN_FILES_GOG=' ContraptionMaker' CONTENT_GAME_BIN_FILES_HUMBLE=' ContraptionMakerLauncher' CONTENT_GAME_DATA_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/noarch" CONTENT_GAME_DATA_FILES_GOG=' assets' CONTENT_GAME_DATA_FILES_HUMBLE=' assets ContraptionMakerPatcher_staging ContraptionMaker_staging icon.png' CONTENT_DOC_DATA_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/noarch" CONTENT_DOC_DATA_FILES_HUMBLE=' eula.txt' APP_MAIN_EXE_GOG='ContraptionMaker' APP_MAIN_EXE_HUMBLE='ContraptionMakerLauncher' APP_MAIN_ICON_GOG='assets/gui/skins/default/mainmenu/mainmenu_logo_icon.png' APP_MAIN_ICON_HUMBLE='noarch/icon.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libfontconfig.so.1 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 libssl.so.1.0.0 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXinerama.so.1 libXi.so.6 libXrandr.so.2 libXxf86vm.so.1' # Work around a crash on XWayland due to the old shipped GLFW build # cf. https://forge.dotslashplay.it/play.it/games/-/issues/909 PRELOAD_HACKS_LIST="${PRELOAD_HACKS_LIST:-} HACK_XKBLIB" HACK_XKBLIB_NAME='xkblib' HACK_XKBLIB_DESCRIPTION='LD_PRELOAD shim working around a crash on XWayland due to the old shipped GLFW build cf. https://forge.dotslashplay.it/play.it/games/-/issues/909' HACK_XKBLIB_PACKAGE='PKG_BIN' HACK_XKBLIB_SOURCE=' #define _GNU_SOURCE #include #include XkbDescPtr XkbGetKeyboard(Display *display, unsigned int _, unsigned int device_spec) { XkbDescPtr desc = XkbGetMap(display, 0, device_spec); XkbGetNames(display, XkbKeyNamesMask, desc); return desc; } void XkbFreeKeyboard(XkbDescPtr xkb, unsigned int which, Bool free_all) { XkbFreeNames(xkb, XkbKeyNamesMask, free_all); XkbFreeClientMap(xkb, which, free_all); } ' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Build and include the LD_PRELOAD shims set_current_package 'PKG_BIN' hacks_inclusion_default # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## gog.com - Convert the shipped icon to use a square ratio. case "$(current_archive)" in ('ARCHIVE_BASE_GOG_'*) convert \ -background none -gravity center "$(icon_path 'APP_MAIN_ICON')" \ -resize 192x192 -extent 192x192 'temp_icon.png' mv 'temp_icon.png' "$(icon_path 'APP_MAIN_ICON')" ;; esac ## humblebundle.com - Convert the shipped icon to a smaller size. case "$(current_archive)" in ('ARCHIVE_BASE_HUMBLE_'*) convert "$(icon_path 'APP_MAIN_ICON')" -resize 512x512 'temp_icon.png' mv 'temp_icon.png' "$(icon_path 'APP_MAIN_ICON')" ;; esac ) # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-convoy.sh0000755000000000000000000000515714471751340013505 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # Convoy # send your bug reports to contact@dotslashplay.it ### script_version=20231115.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='convoy' GAME_NAME='Convoy' ARCHIVE_BASE_3_NAME='convoy_1_1_54_27852.sh' ARCHIVE_BASE_3_MD5='2f7dd6c597e07638650cc01883e0367f' ARCHIVE_BASE_3_SIZE='860000' ARCHIVE_BASE_3_VERSION='1.1.54-gog27852' ARCHIVE_BASE_3_URL='https://www.gog.com/game/convoy' ARCHIVE_BASE_2_NAME='convoy_1_1_53_27205.sh' ARCHIVE_BASE_2_MD5='cda02a99f12adc608a0193f75fc9d7d3' ARCHIVE_BASE_2_SIZE='860000' ARCHIVE_BASE_2_VERSION='1.1.53-gog27205' ARCHIVE_BASE_1_NAME='convoy_1_1_52_26363.sh' ARCHIVE_BASE_1_MD5='99b331906d75443f08c4f787bc83a7ef' ARCHIVE_BASE_1_SIZE='860000' ARCHIVE_BASE_1_VERSION='1.1.52-gog26363' ARCHIVE_BASE_0='gog_convoy_2.4.0.7.sh' ARCHIVE_BASE_0_MD5='2d66599173990eb202a43dbc547c80f5' ARCHIVE_BASE_0_SIZE='860000' ARCHIVE_BASE_0_VERSION='1.1.51-gog2.4.0.7' UNITY3D_NAME='Convoy' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' launchers_write set_current_package 'PKG_BIN32' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-cook-serve-delicious-2.sh0000755000000000000000000000406314471751340016355 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Cook, Serve, Delicious 2 # send your bug reports to contact@dotslashplay.it ### script_version=20230818.1 GAME_ID='cook-serve-delicious-2' GAME_NAME='Cook, Serve, Delicious! 2!!' ARCHIVE_BASE_0='CSD2_Linux_v2_60m1_1.zip' ARCHIVE_BASE_0_MD5='1842d43dc715a61d1776a3432b7bf758' ARCHIVE_BASE_0_SIZE='1000000' ARCHIVE_BASE_0_VERSION='1.0-itch1' ARCHIVE_BASE_0_URL='https://chubigans.itch.io/cook-serve-delicious-2' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' NEW_CSD2_PS4Steam' CONTENT_GAME_DATA_FILES=' assets' USER_PERSISTENT_FILES=' assets/options.ini' APP_MAIN_EXE='NEW_CSD2_PS4Steam' APP_MAIN_ICON='assets/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libcurl-gnutls.so.4 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libpthread.so.0 librt.so.1 libssl.so.1.0.0 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 libz.so.1' # Load common functions 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-cornerstone-the-song-of-tyrim.sh0000755000000000000000000000673014471751340020015 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # Cornerstone: The Song of Tyrim # build native packages from the original installers # send your bug reports to mopi@dotslashplay.it ### script_version=20190724.2 # Set game-specific variables GAME_ID='cornerstone-the-song-of-tyrim' GAME_NAME='Cornerstone: The Song of Tyrim' ARCHIVE_HUMBLE='Cornerstone_1.00_Linux.zip' ARCHIVE_HUMBLE_URL='https://www.humblebundle.com/store/cornerstone-the-song-of-tyrim' ARCHIVE_HUMBLE_MD5='ba8e257c18d3606d4b7e4295be893b9c' ARCHIVE_HUMBLE_SIZE='2400000' ARCHIVE_HUMBLE_VERSION='1.00-humble160425' ARCHIVE_HUMBLE_TYPE='zip' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='Cornerstone.x86 Cornerstone_Data/*/x86' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='Cornerstone_Data' DATA_DIRS='./logs' APP_MAIN_TYPE='native' APP_MAIN_PRERUN='export LANG=C' APP_MAIN_EXE='Cornerstone.x86' # shellcheck disable=SC2016 APP_MAIN_OPTIONS='-logFile ./logs/$(date +%F-%R).log' APP_MAIN_ICON='Cornerstone_Data/Resources/UnityPlayer.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID glibc libstdc++ glu xcursor alsa" # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout rm --recursive "$PLAYIT_WORKDIR/gamedata" # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-cosmic-express.sh0000755000000000000000000001021014471751340015116 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # Cosmic Express # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210509.1 # Set game-specific variables GAME_ID='cosmic-express' GAME_NAME='Cosmic Express' ARCHIVES_LIST=' ARCHIVE_HUMBLE_0' ARCHIVE_HUMBLE_0='cosmic-express-linux-1.0.4.zip' ARCHIVE_HUMBLE_0_URL='https://www.humblebundle.com/store/cosmic-express' ARCHIVE_HUMBLE_0_MD5='145789ba0550e5a7e440577f0aec7963' ARCHIVE_HUMBLE_0_SIZE='860000' ARCHIVE_HUMBLE_0_VERSION='1.0.4-humble' ARCHIVE_HUMBLE_0_TYPE='zip' ARCHIVE_GAME_BIN32_PATH='.' ARCHIVE_GAME_BIN32_FILES='Cosmic?Express.x86 Cosmic.Express_Data/Mono*/x86 Cosmic?Express_Data/Plugins/x86' ARCHIVE_GAME_BIN64_PATH='.' ARCHIVE_GAME_BIN64_FILES='Cosmic?Express.x86_64 Cosmic?Express_Data/Mono*/x86_64 Cosmic?Express_Data/Plugins/x86_64' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='Cosmic?Express_Data' DATA_DIRS='./logs' APP_MAIN_TYPE='native' APP_MAIN_PRERUN='# Work around Unity3D poor support for non-US locales export LANG=C' APP_MAIN_EXE_BIN32='Cosmic Express.x86' APP_MAIN_EXE_BIN64='Cosmic Express.x86_64' APP_MAIN_ICON='Cosmic Express_Data/Resources/UnityPlayer.png' # Use a per-session dedicated file for logs # shellcheck disable=SC2016 APP_MAIN_OPTIONS='-logFile ./logs/$(date +%F-%R).log' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID glibc libstdc++ glx xcursor libxrandr" PKG_BIN32_DEPS_ARCH='lib32-libx11' PKG_BIN32_DEPS_DEB='libx11-6' PKG_BIN32_DEPS_GENTOO='x11-libs/libX11[abi_x86_32]' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPS_ARCH='libx11' PKG_BIN64_DEPS_DEB="$PKG_BIN32_DEPS_DEB" PKG_BIN64_DEPS_GENTOO='x11-libs/libX11' # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-costume-quest.sh0000755000000000000000000000451414471751340015002 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 VA # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Costume Quest # send your bug reports to contact@dotslashplay.it ### script_version=20230227.2 GAME_ID='costume-quest' GAME_NAME='Costume Quest' ARCHIVE_BASE_0='gog_costume_quest_2.0.0.3.sh' ARCHIVE_BASE_0_MD5='3c2f2126be1ca2148f333c453341b810' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='650000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.3' ARCHIVE_BASE_0_URL='https://www.gog.com/game/costume_quest' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/lib" CONTENT_LIBS_BIN_FILES=' libfmodevent-4.42.16.so libfmodeventnet-4.42.16.so libfmodex-4.42.16.so libSDL2-2.0.so.0' CONTENT_GAME_BIN_FILES=' Cq.bin.x86' CONTENT_GAME_DATA_FILES=' DFCONFIG Data/Config Linux/Packs OGL/Shaders Win/Audio/Music Win/Audio/Music_DLC Win/Audio/SFX Win/Audio/CostumeQuest_USEnglish Win/Audio/Voice' CONTENT_DOC_DATA_PATH='data/noarch/docs' CONTENT_DOC_DATA_FILES='*' APP_MAIN_EXE='Cq.bin.x86' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libstdc++.so.6 libopenal.so.1 libGL.so.1 libGLU.so.1 libSDL2-2.0.so.0' # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "${PLAYIT_WORKDIR}" exit 0 games/play-cotrio.sh0000755000000000000000000000400414471751340013455 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Cotrio # send your bug reports to contact@dotslashplay.it ### script_version=20221030.2 GAME_ID='cotrio' GAME_NAME='Cotrio' ARCHIVE_BASE_0='Cotrio by Bart Bialek PC x64.zip' ARCHIVE_BASE_0_MD5='6773aa0537f1d53b319817763db7f0e0' ARCHIVE_BASE_0_SIZE='160000' ARCHIVE_BASE_0_VERSION='1.0-itch.2018.10.28' ARCHIVE_BASE_0_URL='https://bialek.itch.io/cotrio' UNITY3D_NAME='Cotrio' CONTENT_PATH_DEFAULT='PCx64' CONTENT_GAME_BIN_FILES=" Mono UnityPlayer.dll ${UNITY3D_NAME}.exe" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" APP_MAIN_ICON="$APP_MAIN_EXE" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Use persistent storage for registry keys WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\Bkbl Bartosz Białek\Cotrio' # Load common functions target_version='2.18' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-creaks.sh0000755000000000000000000000425214471751340013433 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Creaks # send your bug reports to contact@dotslashplay.it ### script_version=20230406.1 GAME_ID='creaks' GAME_NAME='Creaks' ARCHIVE_BASE_0='setup_creaks_1.0.9_(46052).exe' ARCHIVE_BASE_0_MD5='53c45d5337970ae4f3cd33ac846a4b34' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_creaks_1.0.9_(46052)-1.bin' ARCHIVE_BASE_0_PART1_MD5='a6dd1d513945b49753918f7031936a1d' ARCHIVE_BASE_0_SIZE='4300000' ARCHIVE_BASE_0_VERSION='1.0.9-gog46052' ARCHIVE_BASE_0_URL='https://www.gog.com/game/creaks' UNITY3D_NAME='creaks' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_data/plugins ${UNITY3D_NAME}.exe monobleedingedge unitycrashhandler64.exe galaxy64.dll galaxycsharpglue.dll unityplayer.dll winpixeventruntime.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/LocalLow/Amanita Design/Creaks' USER_PERSISTENT_DIRECTORIES=' userdata' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-creepy-tale-1.sh0000755000000000000000000000441514471751340014534 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi set -o errexit ### # Creepy Tale 1 # send your bug reports to contact@dotslashplay.it ### script_version=20230414.1 GAME_ID='creepy-tale-1' GAME_NAME='Creepy Tale' ARCHIVE_GOG='creepy_tale_english_1_0_2c_42446.sh' ARCHIVE_GOG_URL='https://www.gog.com/game/creepy_tale' ARCHIVE_GOG_MD5='727b15afedd0ef2e58565b40419e76de' ARCHIVE_GOG_SIZE='190000' ARCHIVE_GOG_VERSION='1.0.2c-gog42446' ARCHIVE_GOG_TYPE='mojosetup' ARCHIVE_GAME_BIN_PATH='data/noarch/game' ARCHIVE_GAME_BIN_FILES='creepy_tale.x86_64 creepy_tale_Data/*/x86 LinuxPlayer_s.debug UnityPlayer_s.debug UnityPlayer.so' ARCHIVE_GAME_DATA_PATH='data/noarch/game' ARCHIVE_GAME_DATA_FILES='creepy_tale_Data' DATA_DIRS='./logs' APP_MAIN_TYPE='native' # shellcheck disable=SC2016 # APP_MAIN_PRERUN='export LANG=C' APP_MAIN_EXE='creepy_tale.x86_64' # shellcheck disable=SC2016 APP_MAIN_OPTIONS='-logFile ./logs/$(date +%F-%R).log' APP_MAIN_ICON='creepy_tale_Data/Resources/UnityPlayer.png' PACKAGES_LIST='PKG_DATA PKG_BIN' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID glibc" # Ensure easy upgrade from packages generated with pre-20230414.1 game scripts PKG_BIN_PROVIDE='creepy-tale' PKG_DATA_PROVIDE='creepy-tale-data' # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-creepy-tale-2.sh0000755000000000000000000000402614471751340014533 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Creepy Tale 2 # send your bug reports to contact@dotslashplay.it ### script_version=20230414.1 GAME_ID='creepy-tale-2' GAME_NAME='Creepy Tale 2' ARCHIVE_BASE_0='creepy_tale_2_1_0_0a_53727.sh' ARCHIVE_BASE_0_MD5='e2626eaebe690d4b8cbf7506ff78fff9' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='560000' ARCHIVE_BASE_0_VERSION='2.1.0.0a-gog53727' ARCHIVE_BASE_0_URL='https://www.gog.com/game/creepy_tale_2' UNITY3D_NAME='CreepyTale2' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/MonoBleedingEdge/x86_64 ${UNITY3D_NAME}_Data/Plugins UnityPlayer.so" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-criminal-expert.sh0000755000000000000000000000461214471751340015266 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Mopi set -o errexit ### # Criminal Expert # send your bug reports to contact@dotslashplay.it ### script_version=20230706.1 GAME_ID='criminal-expert' GAME_NAME='Criminal Expert' ARCHIVE_BASE_0='setup_criminal_expert_1.4_(61646).exe' ARCHIVE_BASE_0_MD5='b5b13afbd5abeedb00720d641fc0ea06' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_criminal_expert_1.4_(61646)-1.bin' ARCHIVE_BASE_0_PART1_MD5='008e6369c386939f499565c0c3e8a40c' ARCHIVE_BASE_0_PART2='setup_criminal_expert_1.4_(61646)-2.bin' ARCHIVE_BASE_0_PART2_MD5='2e340cb1cf05726420b686561d4a305f' ARCHIVE_BASE_0_SIZE='5400000' ARCHIVE_BASE_0_VERSION='1.4-gog61646' ARCHIVE_BASE_0_URL='https://www.gog.com/en/game/criminal_expert' UNITY3D_NAME='criminalexpert' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_data/plugins *.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Forever Entertainment S_ A_/CriminalExpert' APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" APP_WINETRICKS='corefonts' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files rm --recursive \ '__redist' \ 'app' \ 'commonappdata' \ 'tmp' ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-crosscode-demo.sh0000755000000000000000000000402614471751340015070 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # CrossCode (demo) # send your bug reports to contact@dotslashplay.it ### script_version=20230623.1 GAME_ID='crosscode-demo' GAME_NAME='CrossCode (demo)' ARCHIVE_BASE_0='crosscode-demo.zip' ARCHIVE_BASE_0_MD5='22c54c8c415ecf056bd703dbed09c13d' ARCHIVE_BASE_0_SIZE='130000' ARCHIVE_BASE_0_VERSION='0.7.1beta-1' ARCHIVE_BASE_0_URL='https://www.cross-code.com/en/home' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES=' crosscode-demo.exe ffmpegsumo.dll icudt.dll nw.pak' CONTENT_DOC_MAIN_FILES=' credits.html' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Local/CrossCode' APP_MAIN_EXE='crosscode-demo.exe' APP_MAIN_ICON='favicon.png' PKG_MAIN_ARCH='32' # 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ARCHIVE_EXE="${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/crosscode-demo.exe" ARCHIVE_EXE_EXTRACTOR='unzip' ## Errors during the data extraction from the .exe are expected, ## they should be ignored. archive_extraction 'SOURCE_ARCHIVE' 2>/dev/null || true # Include game icons icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-crosscode.sh0000755000000000000000000000611614471751340014150 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # CrossCode # send your bug reports to contact@dotslashplay.it ### script_version=20230711.1 # Set game-specific variables GAME_ID='crosscode' GAME_NAME='CrossCode' ARCHIVE_BASE_32BIT_0='crosscode-new-linux32.zip' ARCHIVE_BASE_32BIT_0_MD5='630cfd22cd5e9e168f833dfa3fce9931' ARCHIVE_BASE_32BIT_0_SIZE='1100000' ARCHIVE_BASE_32BIT_0_VERSION='1.4.2-itch.2022.04.19' ARCHIVE_BASE_32BIT_0_URL='https://radicalfishgames.itch.io/crosscode' ARCHIVE_BASE_64BIT_0='crosscode-new-linux64.zip' ARCHIVE_BASE_64BIT_0_MD5='2fece5dc78bf6bfdde7e6b3239da73b6' ARCHIVE_BASE_64BIT_0_SIZE='1100000' ARCHIVE_BASE_64BIT_0_VERSION='1.4.2-itch.2022.04.19' ARCHIVE_BASE_64BIT_0_URL='https://radicalfishgames.itch.io/crosscode' CONTENT_PATH_DEFAULT='.' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/lib" CONTENT_LIBS_BIN_FILES=' libffmpeg.so libnode.so libnw.so' CONTENT_LIBS0_BIN_PATH="${CONTENT_PATH_DEFAULT}/swiftshader" CONTENT_GAME_BIN_FILES=' libEGL.so libGLESv2.so' CONTENT_GAME_BIN_FILES=' CrossCode' CONTENT_GAME_DATA_FILES=' assets locales natives_blob.bin v8_context_snapshot.bin icudtl.dat credits.html package.json favicon.png nw_100_percent.pak nw_200_percent.pak resources.pak steam_appid.txt' APP_MAIN_EXE='CrossCode' APP_MAIN_ICON='favicon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH_32BIT='32' PKG_BIN_ARCH_64BIT='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libasound.so.2 libatk-1.0.so.0 libatspi.so.0 libcairo.so.2 libc.so.6 libcups.so.2 libdbus-1.so.3 libdl.so.2 libexpat.so.1 libgcc_s.so.1 libgdk-3.so.0 libgdk_pixbuf-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-3.so.0 libm.so.6 libnspr4.so libnss3.so libnssutil3.so libpango-1.0.so.0 libpangocairo-1.0.so.0 libpthread.so.0 librt.so.1 libsmime3.so libuuid.so.1 libX11.so.6 libX11-xcb.so.1 libxcb.so.1 libXcomposite.so.1 libXcursor.so.1 libXdamage.so.1 libXext.so.6 libXfixes.so.3 libXi.so.6 libXrandr.so.2 libXrender.so.1 libXss.so.1 libXtst.so.6' # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-crossing-souls-demo.sh0000755000000000000000000001006414471751340016075 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine Le Gonidec # Copyright (c) 2019-2020, Erwann Duclos # 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. ### ### # Crossing Souls - Demo # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20201013.1 # Set game-specific variables GAME_ID='crossing-souls-demo' GAME_NAME='Crossing Souls Demo' ARCHIVES_LIST=' ARCHIVE_GOG_0' ARCHIVE_GOG_0='crossing_souls_demo_en_1_1_0_18420.sh' ARCHIVE_GOG_0_URL='https://www.gog.com/game/crossing_souls_demo' ARCHIVE_GOG_0_MD5='05c1eb7a25516ae42138edb6781d8271' ARCHIVE_GOG_0_VERSION='1.1.0-gog18420' ARCHIVE_GOG_0_SIZE='1100000' ARCHIVE_GOG_0_TYPE='mojosetup' ARCHIVE_DOC_PATH='data/noarch/docs' ARCHIVE_DOC_FILES='*' ARCHIVE_GAME_BIN32_PATH='data/noarch/game' ARCHIVE_GAME_BIN32_FILES='crossingsouls.x86 crossingsouls_Data/*/x86' ARCHIVE_GAME_BIN64_PATH='data/noarch/game' ARCHIVE_GAME_BIN64_FILES='crossingsouls.x86_64 crossingsouls_Data/*/x86_64' ARCHIVE_GAME_DATA_PATH='data/noarch/game' ARCHIVE_GAME_DATA_FILES='crossingsouls_Data' DATA_DIRS='./logs' APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32='crossingsouls.x86' APP_MAIN_EXE_BIN64='crossingsouls.x86_64' # shellcheck disable=SC2016 APP_MAIN_OPTIONS='-logFile ./logs/$(date +%F-%R).log' APP_MAIN_ICON='crossingsouls_Data/Resources/UnityPlayer.png' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID glibc libstdc++ glx xcursor libxrandr" PKG_BIN32_DEPS_ARCH='lib32-libx11' PKG_BIN32_DEPS_DEB='libx11-6' PKG_BIN32_DEPS_GENTOO='x11-libs/libX11[abi_x86_32]' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPS_ARCH='libx11' PKG_BIN64_DEPS_DEB="$PKG_BIN32_DEPS_DEB" PKG_BIN64_DEPS_GENTOO='x11-libs/libX11' # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary files rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-crypt-of-the-necrodancer-expansions.sh0000755000000000000000000014471014471751340021156 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Crypt of the NecroDancer expansions: # - Amplified ### script_version=20231101.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='crypt-of-the-necrodancer' GAME_NAME='Crypt of the NecroDancer' EXPANSION_ID_AMPLIFIED='amplified' EXPANSION_NAME_AMPLIFIED='Amplified' ARCHIVE_BASE_AMPLIFIED_2_NAME='crypt_of_the_necrodancer_amplified_3_7_4_b4860_68330.sh' ARCHIVE_BASE_AMPLIFIED_2_MD5='e56eb1c2e7595ced5b67075dc08d65c9' ARCHIVE_BASE_AMPLIFIED_2_SIZE='794448' ARCHIVE_BASE_AMPLIFIED_2_VERSION='3.7.4-gog68330' ARCHIVE_BASE_AMPLIFIED_2_URL='https://www.gog.com/game/crypt_of_the_necrodancer_amplified' ARCHIVE_BASE_AMPLIFIED_1_NAME='crypt_of_the_necrodancer_amplified_3_4_0_b3655_61079.sh' ARCHIVE_BASE_AMPLIFIED_1_MD5='410df53bd1efe43dfc6fd41cb9cdf694' ARCHIVE_BASE_AMPLIFIED_1_SIZE='600000' ARCHIVE_BASE_AMPLIFIED_1_VERSION='3.4.0-gog61079' ARCHIVE_BASE_AMPLIFIED_0_NAME='crypt_of_the_necrodancer_amplified_3_1_5_b3223_59419.sh' ARCHIVE_BASE_AMPLIFIED_0_MD5='67c2111ad6116ea68c343f9d7694eb1c' ARCHIVE_BASE_AMPLIFIED_0_SIZE='600000' ARCHIVE_BASE_AMPLIFIED_0_VERSION='3.1.5-gog59419' CONTENT_PATH_DEFAULT='data/noarch/game' ## These files overwrite the ones provided by the base game CONTENT_GAME_DATA_COMMON_FILES=' data/entities/beastmaster.png data/entities/bossmaster.png data/entities/char1_armor_body.png data/entities/char1_heads.png data/entities/char2_armor_body.png data/entities/char2_heads.png data/entities/char3_armor_body.png data/entities/char3_heads.png data/entities/char4_armor_body.png data/entities/char4_heads.png data/entities/char5_armor_body.png data/entities/char5_heads.png data/entities/char6_armor_body.png data/entities/char6_heads.png data/entities/char7_armor_body.png data/entities/char7_heads.png data/entities/char8_armor_body.png data/entities/char8_heads.png data/entities/char9_armor_body.png data/entities/char9_heads.png data/entities/dragon_blue.png data/entities/dragon_green.png data/entities/dragon_red.png data/entities/golem_ooze.png data/entities/jp10_armor_body.png data/entities/jp10_heads.png data/entities/jp11_armor_body.png data/entities/jp11_heads.png data/entities/jp1_armor_body.png data/entities/jp1_heads.png data/entities/jp2_armor_body.png data/entities/jp2_heads.png data/entities/jp3_armor_body.png data/entities/jp3_heads.png data/entities/jp4_armor_body.png data/entities/jp4_heads.png data/entities/jp5_armor_body.png data/entities/jp5_heads.png data/entities/jp6_armor_body.png data/entities/jp6_heads.png data/entities/jp7_armor_body.png data/entities/jp7_heads.png data/entities/jp8_armor_body.png data/entities/jp8_heads.png data/entities/jp9_armor_body.png data/entities/jp9_heads.png data/entities/player1_armor_body.png data/entities/player1_heads.png data/entities/player2_armor_body.png data/entities/player2_heads.png data/entities/player3_armor_body.png data/entities/player3_heads.png data/entities/player4_armor_body.png data/entities/player4_heads.png data/entities/skeleton_black.png data/entities/skeleton.png data/entities/skeleton_yellow.png data/items/resource_hoard_gold_small.png data/languages/brazilianportuguese/localization/characterselect_aria1.png data/languages/brazilianportuguese/localization/characterselect_bard1.png data/languages/brazilianportuguese/localization/characterselect_bolt1.png data/languages/brazilianportuguese/localization/characterselect_deathless2.png data/languages/brazilianportuguese/localization/characterselect_eli1.png data/languages/brazilianportuguese/localization/characterselect_hint1.png data/languages/brazilianportuguese/localization/characterselect_monk1.png data/languages/brazilianportuguese/localization/characterselect_monk3.png data/languages/brazilianportuguese/localization/characterselect_story2.png data/languages/brazilianportuguese/localization/enemybig_shrineofpace.png data/languages/brazilianportuguese/localization/enemy_chestmimic.png data/languages/brazilianportuguese/localization/enemy_deadringer.png data/languages/brazilianportuguese/localization/enemy_firecauldronmimic.png data/languages/brazilianportuguese/localization/enemy_icecauldronmimic.png data/languages/brazilianportuguese/localization/enemy_lockedchestmimic.png data/languages/brazilianportuguese/localization/enemy_mommy.png data/languages/brazilianportuguese/localization/enemy_shopkeeperghost.png data/languages/brazilianportuguese/localization/enemy_shrineofpace.png data/languages/brazilianportuguese/localization/enemy_whitechestmimic.png data/languages/brazilianportuguese/localization/game_story2.png data/languages/brazilianportuguese/localization/game_story3.png data/languages/brazilianportuguese/localization/hint_1visiontrapsight.png data/languages/brazilianportuguese/localization/hint_alreadycomplete.png data/languages/brazilianportuguese/localization/hint_completemonk.png data/languages/brazilianportuguese/localization/hint_enchantweapon2.png data/languages/brazilianportuguese/localization/hint_exitunlocked.png data/languages/brazilianportuguese/localization/hint_giveswhatyouneed.png data/languages/brazilianportuguese/localization/hint_shrineofblood1.png data/languages/brazilianportuguese/localization/hint_shrineofglass1.png data/languages/brazilianportuguese/localization/hint_shrineofnoreturn2.png data/languages/brazilianportuguese/localization/hint_shrineofpace1.png data/languages/brazilianportuguese/localization/hint_shrineofphasing2.png data/languages/brazilianportuguese/localization/hint_shrineofrhythm2.png data/languages/brazilianportuguese/localization/hint_sloth.png data/languages/brazilianportuguese/localization/item_balletshoes.png data/languages/brazilianportuguese/localization/item_enchantweaponscroll.png data/languages/brazilianportuguese/localization/item_glassshardshovel.png data/languages/brazilianportuguese/localization/item_ringofmana.png data/languages/brazilianportuguese/localization/leveleditor_dirtwall.png data/languages/brazilianportuguese/localization/leveleditor_placecontainer.png data/languages/brazilianportuguese/localization/leveleditor_saveandpublish.png data/languages/brazilianportuguese/localization/leveleditor_shrineblood.png data/languages/brazilianportuguese/localization/leveleditor_shrineglass.png data/languages/brazilianportuguese/localization/leveleditor_shrinepace.png data/languages/brazilianportuguese/localization/leveleditor_travelrune.png data/languages/brazilianportuguese/localization/leveleditor_workshop.png data/languages/brazilianportuguese/localization/lobby_allzones.png data/languages/brazilianportuguese/localization/lobby_character.png data/languages/brazilianportuguese/localization/lobby_dailychallenge3.png data/languages/brazilianportuguese/localization/lobby_dancepad.png data/languages/brazilianportuguese/localization/lobby_diamonddealerexplain2.png data/languages/brazilianportuguese/localization/lobby_janitorexplain2.png data/languages/brazilianportuguese/localization/lobby_modeeasier.png data/languages/brazilianportuguese/localization/lobby_mode.png data/languages/brazilianportuguese/localization/lobby_select.png data/languages/brazilianportuguese/localization/options_buttonbig_joy1button.png data/languages/brazilianportuguese/localization/options_buttonbig_joy2button.png data/languages/brazilianportuguese/localization/options_buttonbig_joy3button.png data/languages/brazilianportuguese/localization/options_buttonbig_joy4button.png data/languages/brazilianportuguese/localization/options_button_joy1button.png data/languages/brazilianportuguese/localization/options_button_joy2button.png data/languages/brazilianportuguese/localization/options_button_joy3button.png data/languages/brazilianportuguese/localization/options_button_joy4button.png data/languages/brazilianportuguese/localization/options_random.png data/languages/brazilianportuguese/localization/options_steamworkshop.png data/languages/brazilianportuguese/localization/options_workshop.png data/languages/brazilianportuguese/localization/selection/leveleditor_dirtwall.png data/languages/brazilianportuguese/localization/selection/leveleditor_placecontainer.png data/languages/brazilianportuguese/localization/selection/leveleditor_shrineblood.png data/languages/brazilianportuguese/localization/selection/leveleditor_shrineglass.png data/languages/brazilianportuguese/localization/selection/leveleditor_shrinepace.png data/languages/brazilianportuguese/localization/selection/leveleditor_travelrune.png data/languages/brazilianportuguese/localization/selection/options_button_joy1button.png data/languages/brazilianportuguese/localization/selection/options_button_joy2button.png data/languages/brazilianportuguese/localization/selection/options_button_joy3button.png data/languages/brazilianportuguese/localization/selection/options_button_joy4button.png data/languages/brazilianportuguese/localization/selection/options_leaderboardsscore.png data/languages/brazilianportuguese/localization/selection/options_leaderboardsspeed.png data/languages/brazilianportuguese/localization/selection/options_leaderboardsspeedseeded.png data/languages/brazilianportuguese/localization/selection/options_random.png data/languages/brazilianportuguese/localization/selection/options_steamworkshop.png data/languages/brazilianportuguese/localization/training_cauldronmimic.png data/languages/brazilianportuguese/localization/training_chestmimic.png data/languages/brazilianportuguese/localization/training_hellhound.png data/languages/brazilianportuguese/localization/training_mommy.png data/languages/brazilianportuguese/localization.xml data/languages/brazilianportuguese/subtitles.xml data/languages/chinese/language_name.png data/languages/chinese/localization/boss_kingcongasplash.png data/languages/chinese/localization/characterselect_story2.png data/languages/chinese/localization/custommusic_kingconga.png data/languages/chinese/localization/enemybig_blooddrum.png data/languages/chinese/localization/enemybig_bloodnightmare.png data/languages/chinese/localization/enemybig_bloodshovel.png data/languages/chinese/localization/enemybig_kingconga.png data/languages/chinese/localization/enemybig_shrineofnoreturn.png data/languages/chinese/localization/enemybig_shrineofpace.png data/languages/chinese/localization/enemybig_shrineofrisk.png data/languages/chinese/localization/enemy_blooddrum.png data/languages/chinese/localization/enemy_bloodnightmare.png data/languages/chinese/localization/enemy_bloodshovel.png data/languages/chinese/localization/enemy_kingconga.png data/languages/chinese/localization/enemy_shrineofnoreturn.png data/languages/chinese/localization/enemy_shrineofpace.png data/languages/chinese/localization/enemy_shrineofrisk.png data/languages/chinese/localization/game_lowpercent.png data/languages/chinese/localization/game_story2.png data/languages/chinese/localization/game_story3.png data/languages/chinese/localization/hint_charm.png data/languages/chinese/localization/hint_charmshattered.png data/languages/chinese/localization/hint_conicalblastneedsreloadingpiercing.png data/languages/chinese/localization/hint_freezeenemieskillfrozenenemiespiercing.png data/languages/chinese/localization/hint_helpswithsometerrain.png data/languages/chinese/localization/hint_helpswithtrapsandice.png data/languages/chinese/localization/hint_phasingattack2dmg.png data/languages/chinese/localization/hint_rangedattackneedsloadingpiercing.png data/languages/chinese/localization/hint_rangedattackneedsreloadingpiercing.png data/languages/chinese/localization/hint_shrineofblood1.png data/languages/chinese/localization/hint_shrineofchance1.png data/languages/chinese/localization/hint_shrineofdarkness1.png data/languages/chinese/localization/hint_shrineofglass1.png data/languages/chinese/localization/hint_shrineofnoreturn1.png data/languages/chinese/localization/hint_shrineofpace1.png data/languages/chinese/localization/hint_shrineofpeace1.png data/languages/chinese/localization/hint_shrineofphasing1.png data/languages/chinese/localization/hint_shrineofrhythm1.png data/languages/chinese/localization/hint_shrineofrisk1.png data/languages/chinese/localization/hint_shrineofsacrifice1.png data/languages/chinese/localization/hint_shrineofsacrifice2.png data/languages/chinese/localization/hint_shrineofspace1.png data/languages/chinese/localization/hint_shrineofwar1.png data/languages/chinese/localization/hint_sloth.png data/languages/chinese/localization/hint_thorn.png data/languages/chinese/localization/item_bloodbow.png data/languages/chinese/localization/item_bloodbroadsword.png data/languages/chinese/localization/item_bloodcat.png data/languages/chinese/localization/item_bloodcrossbow.png data/languages/chinese/localization/item_blooddagger.png data/languages/chinese/localization/item_blooddrum.png data/languages/chinese/localization/item_bloodflail.png data/languages/chinese/localization/item_bloodlongsword.png data/languages/chinese/localization/item_bloodrapier.png data/languages/chinese/localization/item_bloodshovel.png data/languages/chinese/localization/item_bloodspear.png data/languages/chinese/localization/item_bloodwhip.png data/languages/chinese/localization/item_charmspell.png data/languages/chinese/localization/item_daggerofphasing.png data/languages/chinese/localization/item_drumstick.png data/languages/chinese/localization/item_frostcharm.png data/languages/chinese/localization/item_gluttonycharm.png data/languages/chinese/localization/item_goldenbow.png data/languages/chinese/localization/item_goldenbroadsword.png data/languages/chinese/localization/item_goldencat.png data/languages/chinese/localization/item_goldencrossbow.png data/languages/chinese/localization/item_goldendagger.png data/languages/chinese/localization/item_goldenflail.png data/languages/chinese/localization/item_goldenlongsword.png data/languages/chinese/localization/item_goldenrapier.png data/languages/chinese/localization/item_goldenspear.png data/languages/chinese/localization/item_goldenwhip.png data/languages/chinese/localization/item_infernaltorch.png data/languages/chinese/localization/item_luckycharm.png data/languages/chinese/localization/item_nazarcharm.png data/languages/chinese/localization/item_ringofmana.png data/languages/chinese/localization/item_ringofphasing.png data/languages/chinese/localization/item_ringofshielding.png data/languages/chinese/localization/item_riskcharm.png data/languages/chinese/localization/item_strengthcharm.png data/languages/chinese/localization/item_titaniumbow.png data/languages/chinese/localization/item_titaniumbroadsword.png data/languages/chinese/localization/item_titaniumcat.png data/languages/chinese/localization/item_titaniumcrossbow.png data/languages/chinese/localization/item_titaniumdagger.png data/languages/chinese/localization/item_titaniumflail.png data/languages/chinese/localization/item_titaniumlongsword.png data/languages/chinese/localization/item_titaniumrapier.png data/languages/chinese/localization/item_titaniumshovel.png data/languages/chinese/localization/item_titaniumspear.png data/languages/chinese/localization/item_titaniumwhip.png data/languages/chinese/localization/leaderboard_watch.png data/languages/chinese/localization/leveleditor_kingconga.png data/languages/chinese/localization/leveleditor_placeshrine.png data/languages/chinese/localization/leveleditor_shopfloor.png data/languages/chinese/localization/leveleditor_shopwall.png data/languages/chinese/localization/leveleditor_shrineblood.png data/languages/chinese/localization/leveleditor_shrinechance.png data/languages/chinese/localization/leveleditor_shrinedarkness.png data/languages/chinese/localization/leveleditor_shrineglass.png data/languages/chinese/localization/leveleditor_shrinenoreturn.png data/languages/chinese/localization/leveleditor_shrinepace.png data/languages/chinese/localization/leveleditor_shrinepeace.png data/languages/chinese/localization/leveleditor_shrinephasing.png data/languages/chinese/localization/leveleditor_shrinerhythm.png data/languages/chinese/localization/leveleditor_shrinerisk.png data/languages/chinese/localization/leveleditor_shrinesacrifice.png data/languages/chinese/localization/leveleditor_shrinespace.png data/languages/chinese/localization/leveleditor_shrinewar.png data/languages/chinese/localization/options_language.png data/languages/chinese/localization/options_lowpercent.png data/languages/chinese/localization/selection/custommusic_kingconga.png data/languages/chinese/localization/selection/leaderboard_watch.png data/languages/chinese/localization/selection/leveleditor_kingconga.png data/languages/chinese/localization/selection/leveleditor_placeshrine.png data/languages/chinese/localization/selection/leveleditor_shopfloor.png data/languages/chinese/localization/selection/leveleditor_shopwall.png data/languages/chinese/localization/selection/leveleditor_shrineblood.png data/languages/chinese/localization/selection/leveleditor_shrinechance.png data/languages/chinese/localization/selection/leveleditor_shrinedarkness.png data/languages/chinese/localization/selection/leveleditor_shrineglass.png data/languages/chinese/localization/selection/leveleditor_shrinenoreturn.png data/languages/chinese/localization/selection/leveleditor_shrinepace.png data/languages/chinese/localization/selection/leveleditor_shrinepeace.png data/languages/chinese/localization/selection/leveleditor_shrinephasing.png data/languages/chinese/localization/selection/leveleditor_shrinerhythm.png data/languages/chinese/localization/selection/leveleditor_shrinerisk.png data/languages/chinese/localization/selection/leveleditor_shrinesacrifice.png data/languages/chinese/localization/selection/leveleditor_shrinespace.png data/languages/chinese/localization/selection/leveleditor_shrinewar.png data/languages/chinese/localization/selection/options_language.png data/languages/chinese/localization/shop_shriner.png data/languages/chinese/localization/training_bloodnightmare.png data/languages/chinese/localization/training_kingconga1.png data/languages/chinese/localization/training_kingconga2.png data/languages/chinese/localization/training_kingconga3.png data/languages/chinese/localization/training_kingconga4.png data/languages/chinese/localization.xml data/languages/chinesesimplified/language_name.png data/languages/chinesesimplified/localization/characterbig_mage.png data/languages/chinesesimplified/localization/character_mage.png data/languages/chinesesimplified/localization/lobby_diamonddealerexplain2.png data/languages/chinesesimplified/localization/lobby_janitorexplain1.png data/languages/chinesesimplified/localization/lobby_janitorexplain2.png data/languages/chinesesimplified/localization/options_language.png data/languages/chinesesimplified/localization/selection/options_language.png data/languages/chinesesimplified/localization.xml data/languages/chinesesimplified/subtitles.xml data/languages/chinese/subtitles.xml data/languages/english/subtitles.xml data/languages/example/localization.xml data/languages/french/localization/characterselect_hint2.png data/languages/french/localization/characterselect_story2.png data/languages/french/localization/game_scoresubmitting.png data/languages/french/localization/game_story2.png data/languages/french/localization/game_story3.png data/languages/french/localization/hint_4damagebreakable.png data/languages/french/localization/hint_doubletime.png data/languages/french/localization/hint_shrineofnoreturn2.png data/languages/french/localization/item_bloodlongsword.png data/languages/french/localization/item_glasslongsword.png data/languages/french/localization/item_goldenlongsword.png data/languages/french/localization/item_longsword.png data/languages/french/localization/item_obsidianlongsword.png data/languages/french/localization/item_titaniumlongsword.png data/languages/french/localization/leaderboard_watch.png data/languages/french/localization/lobby_codexexplain.png data/languages/french/localization/lobby_janitorclean1.png data/languages/french/localization/lobby_janitorclean2.png data/languages/french/localization/options_cutscenes.png data/languages/french/localization/options_modchooseplay.png data/languages/french/localization/options_modchoosepublish.png data/languages/french/localization/options_moddeactivate.png data/languages/french/localization/options_moddefault.png data/languages/french/localization/options_moderror2.png data/languages/french/localization/options_moderror3.png data/languages/french/localization/options_modplay.png data/languages/french/localization/options_modpublished.png data/languages/french/localization/options_modpublishfail.png data/languages/french/localization/options_modpublish.png data/languages/french/localization/options_mods.png data/languages/french/localization/options_modwarning1.png data/languages/french/localization/options_modwarning2.png data/languages/french/localization/options_prebosseffect.png data/languages/french/localization/options_workshop.png data/languages/french/localization/selection/leaderboard_watch.png data/languages/french/localization/selection/options_cutscenes.png data/languages/french/localization/selection/options_modchooseplay.png data/languages/french/localization/selection/options_modchoosepublish.png data/languages/french/localization/selection/options_moddeactivate.png data/languages/french/localization/selection/options_moddefault.png data/languages/french/localization/selection/options_modplay.png data/languages/french/localization/selection/options_modpublish.png data/languages/french/localization/selection/options_mods.png data/languages/french/localization/selection/options_prebosseffect.png data/languages/french/localization/shop_transmog.png data/languages/french/localization.xml data/languages/french/subtitles.xml data/languages/german/localization/characterselect_bard1.png data/languages/german/localization/characterselect_coda2.png data/languages/german/localization/characterselect_story2.png data/languages/german/localization/enemybig_magicmonkey.png data/languages/german/localization/enemybig_mommy.png data/languages/german/localization/enemybig_necrodancer.png data/languages/german/localization/enemy_magicmonkey.png data/languages/german/localization/enemy_mommy.png data/languages/german/localization/enemy_necrodancer.png data/languages/german/localization/game_daily2.png data/languages/german/localization/game_dancepad1.png data/languages/german/localization/game_randomseed.png data/languages/german/localization/game_story2.png data/languages/german/localization/game_story3.png data/languages/german/localization/hint_1dmgstrangevision.png data/languages/german/localization/hint_1visiontrapsight.png data/languages/german/localization/hint_completecadence.png data/languages/german/localization/hint_completemelody.png data/languages/german/localization/hint_completemonk.png data/languages/german/localization/hint_completezone4cadence.png data/languages/german/localization/hint_conjuringfail.png data/languages/german/localization/hint_doubletime.png data/languages/german/localization/hint_freezeenemieskillfrozenenemiespiercing.png data/languages/german/localization/hint_goldenkeybuy.png data/languages/german/localization/hint_shrineofrhythm2.png data/languages/german/localization/hint_takeshealthincreasesdamage.png data/languages/german/localization/hint_transformnearbyitems.png data/languages/german/localization/item_frostcharm.png data/languages/german/localization/item_glassjaw.png data/languages/german/localization/item_leadboots.png data/languages/german/localization/item_luckycharm.png data/languages/german/localization/item_protectioncharm.png data/languages/german/localization/item_riskcharm.png data/languages/german/localization/item_strengthcharm.png data/languages/german/localization/leaderboard_allzones_speedrun.png data/languages/german/localization/leveleditor_generate.png data/languages/german/localization/leveleditor_generatewarning1.png data/languages/german/localization/leveleditor_levelgen.png data/languages/german/localization/lobby_bossselection1.png data/languages/german/localization/lobby_bosstraining3.png data/languages/german/localization/lobby_enterseed2.png data/languages/german/localization/lobby_itemhints3.png data/languages/german/localization/lobby_minibosstraining1.png data/languages/german/localization/lobby_minibosstraining3.png data/languages/german/localization/lobby_weaponmasterhint.png data/languages/german/localization/options_beatdetectionongoing.png data/languages/german/localization/options_currentresolution.png data/languages/german/localization/options_cutscenes.png data/languages/german/localization/options_deletewarning1.png data/languages/german/localization/options_modwarning2.png data/languages/german/localization/selection/leveleditor_generate.png data/languages/german/localization/selection/leveleditor_levelgen.png data/languages/german/localization/selection/lobby_leavelosediamonds.png data/languages/german/localization/selection/options_cutscenes.png data/languages/german/localization/training_magicmonkey1.png data/languages/german/localization.xml data/languages/german/subtitles.xml data/languages/italian/localization/characterselect_story2.png data/languages/italian/localization/game_story2.png data/languages/italian/localization/game_story3.png data/languages/italian/localization.xml data/languages/italian/subtitles.xml data/languages/japanese/localization/characterselect_story2.png data/languages/japanese/localization/game_story2.png data/languages/japanese/localization/game_story3.png data/languages/japanese/localization.xml data/languages/japanese/subtitles.xml data/languages/korean/localization/boss_kingcongasplash.png data/languages/korean/localization/characterbig_eli.png data/languages/korean/localization/characterbig_monk.png data/languages/korean/localization/character_eli.png data/languages/korean/localization/character_monk.png data/languages/korean/localization/characterselect_aria3.png data/languages/korean/localization/characterselect_cadence1.png data/languages/korean/localization/characterselect_coda2.png data/languages/korean/localization/characterselect_deathless1.png data/languages/korean/localization/characterselect_deathless.png data/languages/korean/localization/characterselect_dove2.png data/languages/korean/localization/characterselect_eli1.png data/languages/korean/localization/characterselect_hint1.png data/languages/korean/localization/characterselect_monk1.png data/languages/korean/localization/characterselect_story2.png data/languages/korean/localization/character_unlockmelody1.png data/languages/korean/localization/custommusic_1-2xspeed.png data/languages/korean/localization/custommusic_2xspeed.png data/languages/korean/localization/custommusic_kingconga.png data/languages/korean/localization/custommusic_manualbeatslobby.png data/languages/korean/localization/custommusic_manualbeats.png data/languages/korean/localization/enemy_barrel.png data/languages/korean/localization/enemybig_apprenticeblademaster.png data/languages/korean/localization/enemybig_barrel.png data/languages/korean/localization/enemybig_bishop.png data/languages/korean/localization/enemybig_blackarmoredskeleton.png data/languages/korean/localization/enemybig_blackbat.png data/languages/korean/localization/enemybig_blacklich.png data/languages/korean/localization/enemybig_blacksarcophagus.png data/languages/korean/localization/enemybig_blackskeletonknight.png data/languages/korean/localization/enemybig_blackskeletonmage.png data/languages/korean/localization/enemybig_blackskeleton.png data/languages/korean/localization/enemybig_bluebanshee.png data/languages/korean/localization/enemybig_bluebat.png data/languages/korean/localization/enemybig_bluedragon.png data/languages/korean/localization/enemybig_bluemushroom.png data/languages/korean/localization/enemybig_blueslime.png data/languages/korean/localization/enemybig_bootsofpain.png data/languages/korean/localization/enemybig_browndirebat.png data/languages/korean/localization/enemybig_firebeetle.png data/languages/korean/localization/enemybig_firecauldronmimic.png data/languages/korean/localization/enemybig_goblinbomber.png data/languages/korean/localization/enemybig_grayshovemonster.png data/languages/korean/localization/enemybig_greenbanshee.png data/languages/korean/localization/enemybig_greenbat.png data/languages/korean/localization/enemybig_greendragon.png data/languages/korean/localization/enemybig_greenmonkey.png data/languages/korean/localization/enemybig_greenslime.png data/languages/korean/localization/enemybig_icebeetle.png data/languages/korean/localization/enemybig_icecauldronmimic.png data/languages/korean/localization/enemybig_kingconga.png data/languages/korean/localization/enemybig_leprechaun.png data/languages/korean/localization/enemybig_missedbeat.png data/languages/korean/localization/enemybig_mommy.png data/languages/korean/localization/enemybig_monstrousshopkeeper.png data/languages/korean/localization/enemybig_neonwarlock.png data/languages/korean/localization/enemybig_ogre.png data/languages/korean/localization/enemybig_redbat.png data/languages/korean/localization/enemybig_redbishop.png data/languages/korean/localization/enemybig_reddragon.png data/languages/korean/localization/enemybig_redking.png data/languages/korean/localization/enemybig_redknight.png data/languages/korean/localization/enemybig_redlich.png data/languages/korean/localization/enemybig_redpawn.png data/languages/korean/localization/enemybig_redqueen.png data/languages/korean/localization/enemybig_redrook.png data/languages/korean/localization/enemybig_shopkeeperghost.png data/languages/korean/localization/enemybig_shopkeeper.png data/languages/korean/localization/enemybig_shovemonster.png data/languages/korean/localization/enemybig_shove.png data/languages/korean/localization/enemybig_shrineofnoreturn.png data/languages/korean/localization/enemybig_shrineofpace.png data/languages/korean/localization/enemybig_shrineofrisk.png data/languages/korean/localization/enemybig_spider.png data/languages/korean/localization/enemybig_spiketrap.png data/languages/korean/localization/enemybig_tarmonster.png data/languages/korean/localization/enemybig_tentacle.png data/languages/korean/localization/enemybig_warlock.png data/languages/korean/localization/enemybig_whitearmadillo.png data/languages/korean/localization/enemybig_whitearmoredskeleton.png data/languages/korean/localization/enemybig_whitechestmimic.png data/languages/korean/localization/enemybig_whitemonkey.png data/languages/korean/localization/enemybig_whiteskeletonknight.png data/languages/korean/localization/enemybig_whiteskeletonmage.png data/languages/korean/localization/enemybig_whiteskeleton.png data/languages/korean/localization/enemybig_yellowarmadillo.png data/languages/korean/localization/enemybig_yellowarmoredskeleton.png data/languages/korean/localization/enemybig_yellowdirebat.png data/languages/korean/localization/enemybig_yellowsarcophagus.png data/languages/korean/localization/enemybig_yellowskeletonknight.png data/languages/korean/localization/enemybig_yellowskeletonmage.png data/languages/korean/localization/enemybig_yellowskeleton.png data/languages/korean/localization/enemy_blackarmoredskeleton.png data/languages/korean/localization/enemy_blackbat.png data/languages/korean/localization/enemy_blacklich.png data/languages/korean/localization/enemy_blacksarcophagus.png data/languages/korean/localization/enemy_blackskeletonknight.png data/languages/korean/localization/enemy_blackskeletonmage.png data/languages/korean/localization/enemy_blackskeleton.png data/languages/korean/localization/enemy_bluebanshee.png data/languages/korean/localization/enemy_bluebat.png data/languages/korean/localization/enemy_bluedragon.png data/languages/korean/localization/enemy_bluemushroom.png data/languages/korean/localization/enemy_blueslime.png data/languages/korean/localization/enemy_browndirebat.png data/languages/korean/localization/enemy_firebeetle.png data/languages/korean/localization/enemy_firecauldronmimic.png data/languages/korean/localization/enemy_grayshovemonster.png data/languages/korean/localization/enemy_greenbanshee.png data/languages/korean/localization/enemy_greenbat.png data/languages/korean/localization/enemy_greendragon.png data/languages/korean/localization/enemy_greenmonkey.png data/languages/korean/localization/enemy_greenslime.png data/languages/korean/localization/enemy_icecauldronmimic.png data/languages/korean/localization/enemy_kingconga.png data/languages/korean/localization/enemy_leprechaun.png data/languages/korean/localization/enemy_missedbeat.png data/languages/korean/localization/enemy_monstrousshopkeeper.png data/languages/korean/localization/enemy_ogre.png data/languages/korean/localization/enemy_oozegolem.png data/languages/korean/localization/enemy_redbat.png data/languages/korean/localization/enemy_redbishop.png data/languages/korean/localization/enemy_reddragon.png data/languages/korean/localization/enemy_redking.png data/languages/korean/localization/enemy_redknight.png data/languages/korean/localization/enemy_redlich.png data/languages/korean/localization/enemy_redpawn.png data/languages/korean/localization/enemy_redqueen.png data/languages/korean/localization/enemy_redrook.png data/languages/korean/localization/enemy_shovemonster.png data/languages/korean/localization/enemy_shove.png data/languages/korean/localization/enemy_shrineofnoreturn.png data/languages/korean/localization/enemy_shrineofpace.png data/languages/korean/localization/enemy_shrineofrisk.png data/languages/korean/localization/enemy_tarmonster.png data/languages/korean/localization/enemy_whitearmadillo.png data/languages/korean/localization/enemy_whitearmoredskeleton.png data/languages/korean/localization/enemy_whitechestmimic.png data/languages/korean/localization/enemy_whitemonkey.png data/languages/korean/localization/enemy_whiteskeletonknight.png data/languages/korean/localization/enemy_whiteskeletonmage.png data/languages/korean/localization/enemy_whiteskeleton.png data/languages/korean/localization/enemy_yellowarmadillo.png data/languages/korean/localization/enemy_yellowarmoredskeleton.png data/languages/korean/localization/enemy_yellowdirebat.png data/languages/korean/localization/enemy_yellowsarcophagus.png data/languages/korean/localization/enemy_yellowskeletonknight.png data/languages/korean/localization/enemy_yellowskeletonmage.png data/languages/korean/localization/enemy_yellowskeleton.png data/languages/korean/localization/game_coinmultiplierlost.png data/languages/korean/localization/game_death1.png data/languages/korean/localization/game_deathless1.png data/languages/korean/localization/game_loading.png data/languages/korean/localization/game_speedleaderboards.png data/languages/korean/localization/game_speedrun.png data/languages/korean/localization/game_story2.png data/languages/korean/localization/game_story3.png data/languages/korean/localization/hint_10killsheal.png data/languages/korean/localization/hint_1dmgkilldash.png data/languages/korean/localization/hint_1dmgmoreenemies.png data/languages/korean/localization/hint_1dmgstrangevision.png data/languages/korean/localization/hint_1heartfewerenemies.png data/languages/korean/localization/hint_1visiontrapsight.png data/languages/korean/localization/hint_2defenseheavy.png data/languages/korean/localization/hint_2dmgatlowhealth.png data/languages/korean/localization/hint_bombimmunity3bombs.png data/languages/korean/localization/hint_brokerreject.png data/languages/korean/localization/hint_chancelose.png data/languages/korean/localization/hint_cheapershops.png data/languages/korean/localization/hint_completebomblore.png data/languages/korean/localization/hint_completecadence.png data/languages/korean/localization/hint_completedragonlore.png data/languages/korean/localization/hint_completemonk.png data/languages/korean/localization/hint_completetraplore.png data/languages/korean/localization/hint_completezone4cadence.png data/languages/korean/localization/hint_conicalblastneedsreloadingpiercing.png data/languages/korean/localization/hint_damageenemies.png data/languages/korean/localization/hint_diganythingbuttakedamage.png data/languages/korean/localization/hint_dodamageasyouwalk.png data/languages/korean/localization/hint_gold.png data/languages/korean/localization/hint_helpswithsometerrain.png data/languages/korean/localization/hint_helpswithtrapsandice.png data/languages/korean/localization/hint_horizontalfireblast2.png data/languages/korean/localization/hint_horizontalfireblast.png data/languages/korean/localization/hint_immune.png data/languages/korean/localization/hint_longjumpattack.png data/languages/korean/localization/hint_longjump.png data/languages/korean/localization/hint_moveandattack.png data/languages/korean/localization/hint_oldweaponholstered.png data/languages/korean/localization/hint_opencage.png data/languages/korean/localization/hint_opencagewithglasslock.png data/languages/korean/localization/hint_opencagewithgoldenlock.png data/languages/korean/localization/hint_rewardsovereatingonce.png data/languages/korean/localization/hint_shoppingspree.png data/languages/korean/localization/hint_shrineofblood1.png data/languages/korean/localization/hint_shrineofchance1.png data/languages/korean/localization/hint_shrineofdarkness1.png data/languages/korean/localization/hint_shrineofglass1.png data/languages/korean/localization/hint_shrineofnoreturn1.png data/languages/korean/localization/hint_shrineofnoreturn2.png data/languages/korean/localization/hint_shrineofpace1.png data/languages/korean/localization/hint_shrineofpace2.png data/languages/korean/localization/hint_shrineofpeace1.png data/languages/korean/localization/hint_shrineofphasing1.png data/languages/korean/localization/hint_shrineofrhythm1.png data/languages/korean/localization/hint_shrineofrhythm2.png data/languages/korean/localization/hint_shrineofrisk1.png data/languages/korean/localization/hint_shrineofsacrifice1.png data/languages/korean/localization/hint_shrineofsacrifice2.png data/languages/korean/localization/hint_shrineofspace1.png data/languages/korean/localization/hint_shrineofwar1.png data/languages/korean/localization/hint_sloth.png data/languages/korean/localization/hint_standstillincreasedamage.png data/languages/korean/localization/hint_tempotrapdown.png data/languages/korean/localization/hint_tempotrapup.png data/languages/korean/localization/hud_0-5heart.png data/languages/korean/localization/hud_1-5hearts.png data/languages/korean/localization/hud_1heart.png data/languages/korean/localization/hud_1kill.png data/languages/korean/localization/hud_kills.png data/languages/korean/localization/item_10diamonds.png data/languages/korean/localization/item_15diamonds.png data/languages/korean/localization/item_20diamonds.png data/languages/korean/localization/item_2diamonds.png data/languages/korean/localization/item_3bombs.png data/languages/korean/localization/item_3diamonds.png data/languages/korean/localization/item_4diamonds.png data/languages/korean/localization/item_5diamonds.png data/languages/korean/localization/item_additionalblackchest.png data/languages/korean/localization/item_additionalredchest.png data/languages/korean/localization/item_blasthelm.png data/languages/korean/localization/item_bloodbroadsword.png data/languages/korean/localization/item_bloodcrossbow.png data/languages/korean/localization/item_bloodlongsword.png data/languages/korean/localization/item_bootsofleaping.png data/languages/korean/localization/item_bootsoflunging.png data/languages/korean/localization/item_broadsword.png data/languages/korean/localization/item_cat.png data/languages/korean/localization/item_crossbow.png data/languages/korean/localization/item_daggeroffrost.png data/languages/korean/localization/item_earthquakescroll.png data/languages/korean/localization/item_enchantweaponscroll.png data/languages/korean/localization/item_explorersboots.png data/languages/korean/localization/item_fearscroll.png data/languages/korean/localization/item_fireballscroll.png data/languages/korean/localization/item_freezescroll.png data/languages/korean/localization/item_gigantismscroll.png data/languages/korean/localization/item_glassbroadsword.png data/languages/korean/localization/item_glasscrossbow.png data/languages/korean/localization/item_glasslongsword.png data/languages/korean/localization/item_goldenbroadsword.png data/languages/korean/localization/item_goldencrossbow.png data/languages/korean/localization/item_goldenlongsword.png data/languages/korean/localization/item_heavyplate.png data/languages/korean/localization/item_karategi.png data/languages/korean/localization/item_leadboots.png data/languages/korean/localization/item_longsword.png data/languages/korean/localization/item_obsidianbroadsword.png data/languages/korean/localization/item_obsidiancrossbow.png data/languages/korean/localization/item_obsidianlongsword.png data/languages/korean/localization/item_richesscroll.png data/languages/korean/localization/item_rifle.png data/languages/korean/localization/item_scrollofneed.png data/languages/korean/localization/item_shieldscroll.png data/languages/korean/localization/item_titaniumbroadsword.png data/languages/korean/localization/item_titaniumcrossbow.png data/languages/korean/localization/item_titaniumlongsword.png data/languages/korean/localization/item_transmutescroll.png data/languages/korean/localization/item_wingedboots.png data/languages/korean/localization/leaderboard_allzones_speedrun.png data/languages/korean/localization/leaderboard_allzones_speedrun_seeded.png data/languages/korean/localization/leaderboard_deathless.png data/languages/korean/localization/leaderboard_loading.png data/languages/korean/localization/leveleditor_catacombwall.png data/languages/korean/localization/leveleditor_headgear.png data/languages/korean/localization/leveleditor_kingconga.png data/languages/korean/localization/leveleditor_ooze.png data/languages/korean/localization/leveleditor_placecontainer.png data/languages/korean/localization/leveleditor_placeshrine.png data/languages/korean/localization/leveleditor_shrineblood.png data/languages/korean/localization/leveleditor_shrinechance.png data/languages/korean/localization/leveleditor_shrinedarkness.png data/languages/korean/localization/leveleditor_shrineglass.png data/languages/korean/localization/leveleditor_shrinenoreturn.png data/languages/korean/localization/leveleditor_shrinepace.png data/languages/korean/localization/leveleditor_shrinepeace.png data/languages/korean/localization/leveleditor_shrinephasing.png data/languages/korean/localization/leveleditor_shrinerhythm.png data/languages/korean/localization/leveleditor_shrinerisk.png data/languages/korean/localization/leveleditor_shrinesacrifice.png data/languages/korean/localization/leveleditor_shrinespace.png data/languages/korean/localization/leveleditor_shrinewar.png data/languages/korean/localization/leveleditor_spiketrap.png data/languages/korean/localization/leveleditor_travelrune.png data/languages/korean/localization/leveleditor_zone3cold.png data/languages/korean/localization/leveleditor_zone3hot.png data/languages/korean/localization/lobby_bomblore.png data/languages/korean/localization/lobby_diamonddealerexplain1.png data/languages/korean/localization/lobby_diamonddealerexplain2.png data/languages/korean/localization/lobby_dragonlore.png data/languages/korean/localization/lobby_howtogetaway.png data/languages/korean/localization/lobby_janitorexplain1.png data/languages/korean/localization/lobby_janitorexplain2.png data/languages/korean/localization/lobby_traplore.png data/languages/korean/localization/lobby_unspent1.png data/languages/korean/localization/lobby_unspentdiamonds1.png data/languages/korean/localization/lobby_weaponblood.png data/languages/korean/localization/lobby_withmurder.png data/languages/korean/localization/options_beatdetectionongoing.png data/languages/korean/localization/options_cutscenes.png data/languages/korean/localization/options_enemyhearts.png data/languages/korean/localization/options_latencybeat.png data/languages/korean/localization/options_leaderboardsdeathless.png data/languages/korean/localization/options_leaderboardsspeedseeded.png data/languages/korean/localization/selection/character_eli.png data/languages/korean/localization/selection/character_monk.png data/languages/korean/localization/selection/custommusic_1-2xspeed.png data/languages/korean/localization/selection/custommusic_2xspeed.png data/languages/korean/localization/selection/custommusic_kingconga.png data/languages/korean/localization/selection/custommusic_manualbeatslobby.png data/languages/korean/localization/selection/custommusic_manualbeats.png data/languages/korean/localization/selection/game_speedleaderboards.png data/languages/korean/localization/selection/leveleditor_catacombwall.png data/languages/korean/localization/selection/leveleditor_headgear.png data/languages/korean/localization/selection/leveleditor_kingconga.png data/languages/korean/localization/selection/leveleditor_ooze.png data/languages/korean/localization/selection/leveleditor_placecontainer.png data/languages/korean/localization/selection/leveleditor_placeshrine.png data/languages/korean/localization/selection/leveleditor_shrineblood.png data/languages/korean/localization/selection/leveleditor_shrinechance.png data/languages/korean/localization/selection/leveleditor_shrinedarkness.png data/languages/korean/localization/selection/leveleditor_shrineglass.png data/languages/korean/localization/selection/leveleditor_shrinenoreturn.png data/languages/korean/localization/selection/leveleditor_shrinepace.png data/languages/korean/localization/selection/leveleditor_shrinepeace.png data/languages/korean/localization/selection/leveleditor_shrinephasing.png data/languages/korean/localization/selection/leveleditor_shrinerhythm.png data/languages/korean/localization/selection/leveleditor_shrinerisk.png data/languages/korean/localization/selection/leveleditor_shrinesacrifice.png data/languages/korean/localization/selection/leveleditor_shrinespace.png data/languages/korean/localization/selection/leveleditor_shrinewar.png data/languages/korean/localization/selection/leveleditor_spiketrap.png data/languages/korean/localization/selection/leveleditor_travelrune.png data/languages/korean/localization/selection/leveleditor_zone3cold.png data/languages/korean/localization/selection/leveleditor_zone3hot.png data/languages/korean/localization/selection/options_cutscenes.png data/languages/korean/localization/selection/options_enemyhearts.png data/languages/korean/localization/selection/options_leaderboardsdeathless.png data/languages/korean/localization/selection/options_leaderboardsspeedseeded.png data/languages/korean/localization/shop_shriner.png data/languages/korean/localization/training_armoredskeleton1.png data/languages/korean/localization/training_blackarmoredskeleton1.png data/languages/korean/localization/training_blackbat.png data/languages/korean/localization/training_blacklich.png data/languages/korean/localization/training_blacksarcophagus1.png data/languages/korean/localization/training_blackskeletonknight1.png data/languages/korean/localization/training_blackskeletonmage1.png data/languages/korean/localization/training_blackskeleton.png data/languages/korean/localization/training_bluedragon.png data/languages/korean/localization/training_blueslime.png data/languages/korean/localization/training_cauldronmimic.png data/languages/korean/localization/training_direbat.png data/languages/korean/localization/training_firebeetle.png data/languages/korean/localization/training_graydirebat.png data/languages/korean/localization/training_grayshovemonster2.png data/languages/korean/localization/training_greenbanshee1.png data/languages/korean/localization/training_greenbat.png data/languages/korean/localization/training_greendragon.png data/languages/korean/localization/training_greenmonkey1.png data/languages/korean/localization/training_greenslime.png data/languages/korean/localization/training_neonwarlock.png data/languages/korean/localization/training_ogre.png data/languages/korean/localization/training_oozegolem.png data/languages/korean/localization/training_redbat.png data/languages/korean/localization/training_reddragon.png data/languages/korean/localization/training_redlich.png data/languages/korean/localization/training_shovemonster.png data/languages/korean/localization/training_tarmonster.png data/languages/korean/localization/training_whitemonkey.png data/languages/korean/localization/training_yellowarmadillo.png data/languages/korean/localization/training_yellowarmoredskeleton1.png data/languages/korean/localization/training_yellowsarcophagus1.png data/languages/korean/localization/training_yellowskeletonknight1.png data/languages/korean/localization/training_yellowskeletonmage1.png data/languages/korean/localization/training_yellowskeleton.png data/languages/korean/localization.xml data/languages/korean/subtitles.xml data/languages/russian/localization/characterselect_story2.png data/languages/russian/localization/game_story2.png data/languages/russian/localization/game_story3.png data/languages/russian/localization.xml data/languages/russian/subtitles.xml data/languages/spanish/localization/characterselect_story2.png data/languages/spanish/localization/game_story2.png data/languages/spanish/localization/game_story3.png data/languages/spanish/localization.xml data/languages/spanish/subtitles.xml data/music/boss_1_2.ogg data/music/boss_2_2.ogg data/music/boss_3_2.ogg data/music/boss_4_2.ogg data/music/credits_1.ogg data/music/credits_2.ogg data/music/credits_3.ogg data/music/credits_4.ogg data/music/lobby_2.ogg data/music/zone1_1_2.ogg data/music/zone1_2_2.ogg data/music/zone1_3_2.ogg data/music/zone2_1_2.ogg data/music/zone2_2_2.ogg data/music/zone2_3_2.ogg data/music/zone3_1_2c.ogg data/music/zone3_1_2h.ogg data/music/zone3_2_2c.ogg data/music/zone3_2_2h.ogg data/music/zone3_3_2c.ogg data/music/zone3_3_2h.ogg data/music/zone4_1_2.ogg data/music/zone4_2_2.ogg data/music/zone4_3_2.ogg data/necrodancer.xml data/sounds.xml data/video/credits_1.ogv data/video/credits_2.ogv data/video/credits_3.ogv data/video/credits_4.ogv' CONTENT_GAME_MAIN_FILES=' data' PACKAGES_LIST=' PKG_DATA_COMMON PKG_MAIN' PKG_DATA_COMMON_ID="${GAME_ID}-data-common" PKG_DATA_COMMON_ID_AMPLIFIED="${PKG_DATA_COMMON_ID}-${EXPANSION_ID_AMPLIFIED}" PKG_DATA_COMMON_PROVIDES=" $PKG_DATA_COMMON_ID" PKG_DATA_COMMON_DESCRIPTION='data - common files between base game and expansion' PKG_MAIN_DEPS="$PKG_DATA_COMMON_ID_AMPLIFIED $GAME_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_default # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-crypt-of-the-necrodancer.sh0000755000000000000000000014744514471751340017001 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Crypt of the Necrodancer # send your bug reports to contact@dotslashplay.it ### script_version=20231101.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='crypt-of-the-necrodancer' GAME_NAME='Crypt of the NecroDancer' ARCHIVE_BASE_2_NAME='crypt_of_the_necrodancer_3_7_4_b4860_68330.sh' ARCHIVE_BASE_2_MD5='3a513a9089ca9b9383bee224d44af64f' ARCHIVE_BASE_2_SIZE='1558404' ARCHIVE_BASE_2_VERSION='3.7.4-gog68330' ARCHIVE_BASE_2_URL='https://www.gog.com/game/crypt_of_the_necrodancer' ARCHIVE_BASE_1_NAME='crypt_of_the_necrodancer_3_4_0_b3655_61079.sh' ARCHIVE_BASE_1_MD5='f53c2736647e577036d1d014e8e81656' ARCHIVE_BASE_1_SIZE='1600000' ARCHIVE_BASE_1_VERSION='3.4.0-gog61079' ARCHIVE_BASE_0_NAME='crypt_of_the_necrodancer_3_1_5_b3223_59419.sh' ARCHIVE_BASE_0_MD5='006d720a727a05048ea8028b1d3b0332' ARCHIVE_BASE_0_SIZE='1600000' ARCHIVE_BASE_0_VERSION='3.1.5-gog59419' CONTENT_PATH_DEFAULT='data/noarch/game' ## Shipped libsfml-*.so.2.5 must be used to avoid a symbol lookup error. CONTENT_LIBS_BIN_PATH='data/noarch/game/NecroDancer64/lib' CONTENT_LIBS_BIN_FILES=' libdiscord_game_sdk.so libGalaxy64.so libnecrolevel.so libsfml-*.so.2.5' CONTENT_GAME_BIN_FILES=' NecroDancer64/NecroDancer.x64 NecroDancer64/NecroDancer.wsp NecroDancer64/config.json' ## These files are overriden by the Amplified expansion CONTENT_GAME_DATA_COMMON_FILES=' data/entities/beastmaster.png data/entities/bossmaster.png data/entities/char1_armor_body.png data/entities/char1_heads.png data/entities/char2_armor_body.png data/entities/char2_heads.png data/entities/char3_armor_body.png data/entities/char3_heads.png data/entities/char4_armor_body.png data/entities/char4_heads.png data/entities/char5_armor_body.png data/entities/char5_heads.png data/entities/char6_armor_body.png data/entities/char6_heads.png data/entities/char7_armor_body.png data/entities/char7_heads.png data/entities/char8_armor_body.png data/entities/char8_heads.png data/entities/char9_armor_body.png data/entities/char9_heads.png data/entities/dragon_blue.png data/entities/dragon_green.png data/entities/dragon_red.png data/entities/golem_ooze.png data/entities/jp10_armor_body.png data/entities/jp10_heads.png data/entities/jp11_armor_body.png data/entities/jp11_heads.png data/entities/jp1_armor_body.png data/entities/jp1_heads.png data/entities/jp2_armor_body.png data/entities/jp2_heads.png data/entities/jp3_armor_body.png data/entities/jp3_heads.png data/entities/jp4_armor_body.png data/entities/jp4_heads.png data/entities/jp5_armor_body.png data/entities/jp5_heads.png data/entities/jp6_armor_body.png data/entities/jp6_heads.png data/entities/jp7_armor_body.png data/entities/jp7_heads.png data/entities/jp8_armor_body.png data/entities/jp8_heads.png data/entities/jp9_armor_body.png data/entities/jp9_heads.png data/entities/player1_armor_body.png data/entities/player1_heads.png data/entities/player2_armor_body.png data/entities/player2_heads.png data/entities/player3_armor_body.png data/entities/player3_heads.png data/entities/player4_armor_body.png data/entities/player4_heads.png data/entities/skeleton_black.png data/entities/skeleton.png data/entities/skeleton_yellow.png data/items/resource_hoard_gold_small.png data/languages/brazilianportuguese/localization/characterselect_aria1.png data/languages/brazilianportuguese/localization/characterselect_bard1.png data/languages/brazilianportuguese/localization/characterselect_bolt1.png data/languages/brazilianportuguese/localization/characterselect_deathless2.png data/languages/brazilianportuguese/localization/characterselect_eli1.png data/languages/brazilianportuguese/localization/characterselect_hint1.png data/languages/brazilianportuguese/localization/characterselect_monk1.png data/languages/brazilianportuguese/localization/characterselect_monk3.png data/languages/brazilianportuguese/localization/characterselect_story2.png data/languages/brazilianportuguese/localization/enemybig_shrineofpace.png data/languages/brazilianportuguese/localization/enemy_chestmimic.png data/languages/brazilianportuguese/localization/enemy_deadringer.png data/languages/brazilianportuguese/localization/enemy_firecauldronmimic.png data/languages/brazilianportuguese/localization/enemy_icecauldronmimic.png data/languages/brazilianportuguese/localization/enemy_lockedchestmimic.png data/languages/brazilianportuguese/localization/enemy_mommy.png data/languages/brazilianportuguese/localization/enemy_shopkeeperghost.png data/languages/brazilianportuguese/localization/enemy_shrineofpace.png data/languages/brazilianportuguese/localization/enemy_whitechestmimic.png data/languages/brazilianportuguese/localization/game_story2.png data/languages/brazilianportuguese/localization/game_story3.png data/languages/brazilianportuguese/localization/hint_1visiontrapsight.png data/languages/brazilianportuguese/localization/hint_alreadycomplete.png data/languages/brazilianportuguese/localization/hint_completemonk.png data/languages/brazilianportuguese/localization/hint_enchantweapon2.png data/languages/brazilianportuguese/localization/hint_exitunlocked.png data/languages/brazilianportuguese/localization/hint_giveswhatyouneed.png data/languages/brazilianportuguese/localization/hint_shrineofblood1.png data/languages/brazilianportuguese/localization/hint_shrineofglass1.png data/languages/brazilianportuguese/localization/hint_shrineofnoreturn2.png data/languages/brazilianportuguese/localization/hint_shrineofpace1.png data/languages/brazilianportuguese/localization/hint_shrineofphasing2.png data/languages/brazilianportuguese/localization/hint_shrineofrhythm2.png data/languages/brazilianportuguese/localization/hint_sloth.png data/languages/brazilianportuguese/localization/item_balletshoes.png data/languages/brazilianportuguese/localization/item_enchantweaponscroll.png data/languages/brazilianportuguese/localization/item_glassshardshovel.png data/languages/brazilianportuguese/localization/item_ringofmana.png data/languages/brazilianportuguese/localization/leveleditor_dirtwall.png data/languages/brazilianportuguese/localization/leveleditor_placecontainer.png data/languages/brazilianportuguese/localization/leveleditor_saveandpublish.png data/languages/brazilianportuguese/localization/leveleditor_shrineblood.png data/languages/brazilianportuguese/localization/leveleditor_shrineglass.png data/languages/brazilianportuguese/localization/leveleditor_shrinepace.png data/languages/brazilianportuguese/localization/leveleditor_travelrune.png data/languages/brazilianportuguese/localization/leveleditor_workshop.png data/languages/brazilianportuguese/localization/lobby_allzones.png data/languages/brazilianportuguese/localization/lobby_character.png data/languages/brazilianportuguese/localization/lobby_dailychallenge3.png data/languages/brazilianportuguese/localization/lobby_dancepad.png data/languages/brazilianportuguese/localization/lobby_diamonddealerexplain2.png data/languages/brazilianportuguese/localization/lobby_janitorexplain2.png data/languages/brazilianportuguese/localization/lobby_modeeasier.png data/languages/brazilianportuguese/localization/lobby_mode.png data/languages/brazilianportuguese/localization/lobby_select.png data/languages/brazilianportuguese/localization/options_buttonbig_joy1button.png data/languages/brazilianportuguese/localization/options_buttonbig_joy2button.png data/languages/brazilianportuguese/localization/options_buttonbig_joy3button.png data/languages/brazilianportuguese/localization/options_buttonbig_joy4button.png data/languages/brazilianportuguese/localization/options_button_joy1button.png data/languages/brazilianportuguese/localization/options_button_joy2button.png data/languages/brazilianportuguese/localization/options_button_joy3button.png data/languages/brazilianportuguese/localization/options_button_joy4button.png data/languages/brazilianportuguese/localization/options_random.png data/languages/brazilianportuguese/localization/options_steamworkshop.png data/languages/brazilianportuguese/localization/options_workshop.png data/languages/brazilianportuguese/localization/selection/leveleditor_dirtwall.png data/languages/brazilianportuguese/localization/selection/leveleditor_placecontainer.png data/languages/brazilianportuguese/localization/selection/leveleditor_shrineblood.png data/languages/brazilianportuguese/localization/selection/leveleditor_shrineglass.png data/languages/brazilianportuguese/localization/selection/leveleditor_shrinepace.png data/languages/brazilianportuguese/localization/selection/leveleditor_travelrune.png data/languages/brazilianportuguese/localization/selection/options_button_joy1button.png data/languages/brazilianportuguese/localization/selection/options_button_joy2button.png data/languages/brazilianportuguese/localization/selection/options_button_joy3button.png data/languages/brazilianportuguese/localization/selection/options_button_joy4button.png data/languages/brazilianportuguese/localization/selection/options_leaderboardsscore.png data/languages/brazilianportuguese/localization/selection/options_leaderboardsspeed.png data/languages/brazilianportuguese/localization/selection/options_leaderboardsspeedseeded.png data/languages/brazilianportuguese/localization/selection/options_random.png data/languages/brazilianportuguese/localization/selection/options_steamworkshop.png data/languages/brazilianportuguese/localization/training_cauldronmimic.png data/languages/brazilianportuguese/localization/training_chestmimic.png data/languages/brazilianportuguese/localization/training_hellhound.png data/languages/brazilianportuguese/localization/training_mommy.png data/languages/brazilianportuguese/localization.xml data/languages/brazilianportuguese/subtitles.xml data/languages/chinese/language_name.png data/languages/chinese/localization/boss_kingcongasplash.png data/languages/chinese/localization/characterselect_story2.png data/languages/chinese/localization/custommusic_kingconga.png data/languages/chinese/localization/enemybig_blooddrum.png data/languages/chinese/localization/enemybig_bloodnightmare.png data/languages/chinese/localization/enemybig_bloodshovel.png data/languages/chinese/localization/enemybig_kingconga.png data/languages/chinese/localization/enemybig_shrineofnoreturn.png data/languages/chinese/localization/enemybig_shrineofpace.png data/languages/chinese/localization/enemybig_shrineofrisk.png data/languages/chinese/localization/enemy_blooddrum.png data/languages/chinese/localization/enemy_bloodnightmare.png data/languages/chinese/localization/enemy_bloodshovel.png data/languages/chinese/localization/enemy_kingconga.png data/languages/chinese/localization/enemy_shrineofnoreturn.png data/languages/chinese/localization/enemy_shrineofpace.png data/languages/chinese/localization/enemy_shrineofrisk.png data/languages/chinese/localization/game_lowpercent.png data/languages/chinese/localization/game_story2.png data/languages/chinese/localization/game_story3.png data/languages/chinese/localization/hint_charm.png data/languages/chinese/localization/hint_charmshattered.png data/languages/chinese/localization/hint_conicalblastneedsreloadingpiercing.png data/languages/chinese/localization/hint_freezeenemieskillfrozenenemiespiercing.png data/languages/chinese/localization/hint_helpswithsometerrain.png data/languages/chinese/localization/hint_helpswithtrapsandice.png data/languages/chinese/localization/hint_phasingattack2dmg.png data/languages/chinese/localization/hint_rangedattackneedsloadingpiercing.png data/languages/chinese/localization/hint_rangedattackneedsreloadingpiercing.png data/languages/chinese/localization/hint_shrineofblood1.png data/languages/chinese/localization/hint_shrineofchance1.png data/languages/chinese/localization/hint_shrineofdarkness1.png data/languages/chinese/localization/hint_shrineofglass1.png data/languages/chinese/localization/hint_shrineofnoreturn1.png data/languages/chinese/localization/hint_shrineofpace1.png data/languages/chinese/localization/hint_shrineofpeace1.png data/languages/chinese/localization/hint_shrineofphasing1.png data/languages/chinese/localization/hint_shrineofrhythm1.png data/languages/chinese/localization/hint_shrineofrisk1.png data/languages/chinese/localization/hint_shrineofsacrifice1.png data/languages/chinese/localization/hint_shrineofsacrifice2.png data/languages/chinese/localization/hint_shrineofspace1.png data/languages/chinese/localization/hint_shrineofwar1.png data/languages/chinese/localization/hint_sloth.png data/languages/chinese/localization/hint_thorn.png data/languages/chinese/localization/item_bloodbow.png data/languages/chinese/localization/item_bloodbroadsword.png data/languages/chinese/localization/item_bloodcat.png data/languages/chinese/localization/item_bloodcrossbow.png data/languages/chinese/localization/item_blooddagger.png data/languages/chinese/localization/item_blooddrum.png data/languages/chinese/localization/item_bloodflail.png data/languages/chinese/localization/item_bloodlongsword.png data/languages/chinese/localization/item_bloodrapier.png data/languages/chinese/localization/item_bloodshovel.png data/languages/chinese/localization/item_bloodspear.png data/languages/chinese/localization/item_bloodwhip.png data/languages/chinese/localization/item_charmspell.png data/languages/chinese/localization/item_daggerofphasing.png data/languages/chinese/localization/item_drumstick.png data/languages/chinese/localization/item_frostcharm.png data/languages/chinese/localization/item_gluttonycharm.png data/languages/chinese/localization/item_goldenbow.png data/languages/chinese/localization/item_goldenbroadsword.png data/languages/chinese/localization/item_goldencat.png data/languages/chinese/localization/item_goldencrossbow.png data/languages/chinese/localization/item_goldendagger.png data/languages/chinese/localization/item_goldenflail.png data/languages/chinese/localization/item_goldenlongsword.png data/languages/chinese/localization/item_goldenrapier.png data/languages/chinese/localization/item_goldenspear.png data/languages/chinese/localization/item_goldenwhip.png data/languages/chinese/localization/item_infernaltorch.png data/languages/chinese/localization/item_luckycharm.png data/languages/chinese/localization/item_nazarcharm.png data/languages/chinese/localization/item_ringofmana.png data/languages/chinese/localization/item_ringofphasing.png data/languages/chinese/localization/item_ringofshielding.png data/languages/chinese/localization/item_riskcharm.png data/languages/chinese/localization/item_strengthcharm.png data/languages/chinese/localization/item_titaniumbow.png data/languages/chinese/localization/item_titaniumbroadsword.png data/languages/chinese/localization/item_titaniumcat.png data/languages/chinese/localization/item_titaniumcrossbow.png data/languages/chinese/localization/item_titaniumdagger.png data/languages/chinese/localization/item_titaniumflail.png data/languages/chinese/localization/item_titaniumlongsword.png data/languages/chinese/localization/item_titaniumrapier.png data/languages/chinese/localization/item_titaniumshovel.png data/languages/chinese/localization/item_titaniumspear.png data/languages/chinese/localization/item_titaniumwhip.png data/languages/chinese/localization/leaderboard_watch.png data/languages/chinese/localization/leveleditor_kingconga.png data/languages/chinese/localization/leveleditor_placeshrine.png data/languages/chinese/localization/leveleditor_shopfloor.png data/languages/chinese/localization/leveleditor_shopwall.png data/languages/chinese/localization/leveleditor_shrineblood.png data/languages/chinese/localization/leveleditor_shrinechance.png data/languages/chinese/localization/leveleditor_shrinedarkness.png data/languages/chinese/localization/leveleditor_shrineglass.png data/languages/chinese/localization/leveleditor_shrinenoreturn.png data/languages/chinese/localization/leveleditor_shrinepace.png data/languages/chinese/localization/leveleditor_shrinepeace.png data/languages/chinese/localization/leveleditor_shrinephasing.png data/languages/chinese/localization/leveleditor_shrinerhythm.png data/languages/chinese/localization/leveleditor_shrinerisk.png data/languages/chinese/localization/leveleditor_shrinesacrifice.png data/languages/chinese/localization/leveleditor_shrinespace.png data/languages/chinese/localization/leveleditor_shrinewar.png data/languages/chinese/localization/options_language.png data/languages/chinese/localization/options_lowpercent.png data/languages/chinese/localization/selection/custommusic_kingconga.png data/languages/chinese/localization/selection/leaderboard_watch.png data/languages/chinese/localization/selection/leveleditor_kingconga.png data/languages/chinese/localization/selection/leveleditor_placeshrine.png data/languages/chinese/localization/selection/leveleditor_shopfloor.png data/languages/chinese/localization/selection/leveleditor_shopwall.png data/languages/chinese/localization/selection/leveleditor_shrineblood.png data/languages/chinese/localization/selection/leveleditor_shrinechance.png data/languages/chinese/localization/selection/leveleditor_shrinedarkness.png data/languages/chinese/localization/selection/leveleditor_shrineglass.png data/languages/chinese/localization/selection/leveleditor_shrinenoreturn.png data/languages/chinese/localization/selection/leveleditor_shrinepace.png data/languages/chinese/localization/selection/leveleditor_shrinepeace.png data/languages/chinese/localization/selection/leveleditor_shrinephasing.png data/languages/chinese/localization/selection/leveleditor_shrinerhythm.png data/languages/chinese/localization/selection/leveleditor_shrinerisk.png data/languages/chinese/localization/selection/leveleditor_shrinesacrifice.png data/languages/chinese/localization/selection/leveleditor_shrinespace.png data/languages/chinese/localization/selection/leveleditor_shrinewar.png data/languages/chinese/localization/selection/options_language.png data/languages/chinese/localization/shop_shriner.png data/languages/chinese/localization/training_bloodnightmare.png data/languages/chinese/localization/training_kingconga1.png data/languages/chinese/localization/training_kingconga2.png data/languages/chinese/localization/training_kingconga3.png data/languages/chinese/localization/training_kingconga4.png data/languages/chinese/localization.xml data/languages/chinesesimplified/language_name.png data/languages/chinesesimplified/localization/characterbig_mage.png data/languages/chinesesimplified/localization/character_mage.png data/languages/chinesesimplified/localization/lobby_diamonddealerexplain2.png data/languages/chinesesimplified/localization/lobby_janitorexplain1.png data/languages/chinesesimplified/localization/lobby_janitorexplain2.png data/languages/chinesesimplified/localization/options_language.png data/languages/chinesesimplified/localization/selection/options_language.png data/languages/chinesesimplified/localization.xml data/languages/chinesesimplified/subtitles.xml data/languages/chinese/subtitles.xml data/languages/english/subtitles.xml data/languages/example/localization.xml data/languages/french/localization/characterselect_hint2.png data/languages/french/localization/characterselect_story2.png data/languages/french/localization/game_scoresubmitting.png data/languages/french/localization/game_story2.png data/languages/french/localization/game_story3.png data/languages/french/localization/hint_4damagebreakable.png data/languages/french/localization/hint_doubletime.png data/languages/french/localization/hint_shrineofnoreturn2.png data/languages/french/localization/item_bloodlongsword.png data/languages/french/localization/item_glasslongsword.png data/languages/french/localization/item_goldenlongsword.png data/languages/french/localization/item_longsword.png data/languages/french/localization/item_obsidianlongsword.png data/languages/french/localization/item_titaniumlongsword.png data/languages/french/localization/leaderboard_watch.png data/languages/french/localization/lobby_codexexplain.png data/languages/french/localization/lobby_janitorclean1.png data/languages/french/localization/lobby_janitorclean2.png data/languages/french/localization/options_cutscenes.png data/languages/french/localization/options_modchooseplay.png data/languages/french/localization/options_modchoosepublish.png data/languages/french/localization/options_moddeactivate.png data/languages/french/localization/options_moddefault.png data/languages/french/localization/options_moderror2.png data/languages/french/localization/options_moderror3.png data/languages/french/localization/options_modplay.png data/languages/french/localization/options_modpublished.png data/languages/french/localization/options_modpublishfail.png data/languages/french/localization/options_modpublish.png data/languages/french/localization/options_mods.png data/languages/french/localization/options_modwarning1.png data/languages/french/localization/options_modwarning2.png data/languages/french/localization/options_prebosseffect.png data/languages/french/localization/options_workshop.png data/languages/french/localization/selection/leaderboard_watch.png data/languages/french/localization/selection/options_cutscenes.png data/languages/french/localization/selection/options_modchooseplay.png data/languages/french/localization/selection/options_modchoosepublish.png data/languages/french/localization/selection/options_moddeactivate.png data/languages/french/localization/selection/options_moddefault.png data/languages/french/localization/selection/options_modplay.png data/languages/french/localization/selection/options_modpublish.png data/languages/french/localization/selection/options_mods.png data/languages/french/localization/selection/options_prebosseffect.png data/languages/french/localization/shop_transmog.png data/languages/french/localization.xml data/languages/french/subtitles.xml data/languages/german/localization/characterselect_bard1.png data/languages/german/localization/characterselect_coda2.png data/languages/german/localization/characterselect_story2.png data/languages/german/localization/enemybig_magicmonkey.png data/languages/german/localization/enemybig_mommy.png data/languages/german/localization/enemybig_necrodancer.png data/languages/german/localization/enemy_magicmonkey.png data/languages/german/localization/enemy_mommy.png data/languages/german/localization/enemy_necrodancer.png data/languages/german/localization/game_daily2.png data/languages/german/localization/game_dancepad1.png data/languages/german/localization/game_randomseed.png data/languages/german/localization/game_story2.png data/languages/german/localization/game_story3.png data/languages/german/localization/hint_1dmgstrangevision.png data/languages/german/localization/hint_1visiontrapsight.png data/languages/german/localization/hint_completecadence.png data/languages/german/localization/hint_completemelody.png data/languages/german/localization/hint_completemonk.png data/languages/german/localization/hint_completezone4cadence.png data/languages/german/localization/hint_conjuringfail.png data/languages/german/localization/hint_doubletime.png data/languages/german/localization/hint_freezeenemieskillfrozenenemiespiercing.png data/languages/german/localization/hint_goldenkeybuy.png data/languages/german/localization/hint_shrineofrhythm2.png data/languages/german/localization/hint_takeshealthincreasesdamage.png data/languages/german/localization/hint_transformnearbyitems.png data/languages/german/localization/item_frostcharm.png data/languages/german/localization/item_glassjaw.png data/languages/german/localization/item_leadboots.png data/languages/german/localization/item_luckycharm.png data/languages/german/localization/item_protectioncharm.png data/languages/german/localization/item_riskcharm.png data/languages/german/localization/item_strengthcharm.png data/languages/german/localization/leaderboard_allzones_speedrun.png data/languages/german/localization/leveleditor_generate.png data/languages/german/localization/leveleditor_generatewarning1.png data/languages/german/localization/leveleditor_levelgen.png data/languages/german/localization/lobby_bossselection1.png data/languages/german/localization/lobby_bosstraining3.png data/languages/german/localization/lobby_enterseed2.png data/languages/german/localization/lobby_itemhints3.png data/languages/german/localization/lobby_minibosstraining1.png data/languages/german/localization/lobby_minibosstraining3.png data/languages/german/localization/lobby_weaponmasterhint.png data/languages/german/localization/options_beatdetectionongoing.png data/languages/german/localization/options_currentresolution.png data/languages/german/localization/options_cutscenes.png data/languages/german/localization/options_deletewarning1.png data/languages/german/localization/options_modwarning2.png data/languages/german/localization/selection/leveleditor_generate.png data/languages/german/localization/selection/leveleditor_levelgen.png data/languages/german/localization/selection/lobby_leavelosediamonds.png data/languages/german/localization/selection/options_cutscenes.png data/languages/german/localization/training_magicmonkey1.png data/languages/german/localization.xml data/languages/german/subtitles.xml data/languages/italian/localization/characterselect_story2.png data/languages/italian/localization/game_story2.png data/languages/italian/localization/game_story3.png data/languages/italian/localization.xml data/languages/italian/subtitles.xml data/languages/japanese/localization/characterselect_story2.png data/languages/japanese/localization/game_story2.png data/languages/japanese/localization/game_story3.png data/languages/japanese/localization.xml data/languages/japanese/subtitles.xml data/languages/korean/localization/boss_kingcongasplash.png data/languages/korean/localization/characterbig_eli.png data/languages/korean/localization/characterbig_monk.png data/languages/korean/localization/character_eli.png data/languages/korean/localization/character_monk.png data/languages/korean/localization/characterselect_aria3.png data/languages/korean/localization/characterselect_cadence1.png data/languages/korean/localization/characterselect_coda2.png data/languages/korean/localization/characterselect_deathless1.png data/languages/korean/localization/characterselect_deathless.png data/languages/korean/localization/characterselect_dove2.png data/languages/korean/localization/characterselect_eli1.png data/languages/korean/localization/characterselect_hint1.png data/languages/korean/localization/characterselect_monk1.png data/languages/korean/localization/characterselect_story2.png data/languages/korean/localization/character_unlockmelody1.png data/languages/korean/localization/custommusic_1-2xspeed.png data/languages/korean/localization/custommusic_2xspeed.png data/languages/korean/localization/custommusic_kingconga.png data/languages/korean/localization/custommusic_manualbeatslobby.png data/languages/korean/localization/custommusic_manualbeats.png data/languages/korean/localization/enemy_barrel.png data/languages/korean/localization/enemybig_apprenticeblademaster.png data/languages/korean/localization/enemybig_barrel.png data/languages/korean/localization/enemybig_bishop.png data/languages/korean/localization/enemybig_blackarmoredskeleton.png data/languages/korean/localization/enemybig_blackbat.png data/languages/korean/localization/enemybig_blacklich.png data/languages/korean/localization/enemybig_blacksarcophagus.png data/languages/korean/localization/enemybig_blackskeletonknight.png data/languages/korean/localization/enemybig_blackskeletonmage.png data/languages/korean/localization/enemybig_blackskeleton.png data/languages/korean/localization/enemybig_bluebanshee.png data/languages/korean/localization/enemybig_bluebat.png data/languages/korean/localization/enemybig_bluedragon.png data/languages/korean/localization/enemybig_bluemushroom.png data/languages/korean/localization/enemybig_blueslime.png data/languages/korean/localization/enemybig_bootsofpain.png data/languages/korean/localization/enemybig_browndirebat.png data/languages/korean/localization/enemybig_firebeetle.png data/languages/korean/localization/enemybig_firecauldronmimic.png data/languages/korean/localization/enemybig_goblinbomber.png data/languages/korean/localization/enemybig_grayshovemonster.png data/languages/korean/localization/enemybig_greenbanshee.png data/languages/korean/localization/enemybig_greenbat.png data/languages/korean/localization/enemybig_greendragon.png data/languages/korean/localization/enemybig_greenmonkey.png data/languages/korean/localization/enemybig_greenslime.png data/languages/korean/localization/enemybig_icebeetle.png data/languages/korean/localization/enemybig_icecauldronmimic.png data/languages/korean/localization/enemybig_kingconga.png data/languages/korean/localization/enemybig_leprechaun.png data/languages/korean/localization/enemybig_missedbeat.png data/languages/korean/localization/enemybig_mommy.png data/languages/korean/localization/enemybig_monstrousshopkeeper.png data/languages/korean/localization/enemybig_neonwarlock.png data/languages/korean/localization/enemybig_ogre.png data/languages/korean/localization/enemybig_redbat.png data/languages/korean/localization/enemybig_redbishop.png data/languages/korean/localization/enemybig_reddragon.png data/languages/korean/localization/enemybig_redking.png data/languages/korean/localization/enemybig_redknight.png data/languages/korean/localization/enemybig_redlich.png data/languages/korean/localization/enemybig_redpawn.png data/languages/korean/localization/enemybig_redqueen.png data/languages/korean/localization/enemybig_redrook.png data/languages/korean/localization/enemybig_shopkeeperghost.png data/languages/korean/localization/enemybig_shopkeeper.png data/languages/korean/localization/enemybig_shovemonster.png data/languages/korean/localization/enemybig_shove.png data/languages/korean/localization/enemybig_shrineofnoreturn.png data/languages/korean/localization/enemybig_shrineofpace.png data/languages/korean/localization/enemybig_shrineofrisk.png data/languages/korean/localization/enemybig_spider.png data/languages/korean/localization/enemybig_spiketrap.png data/languages/korean/localization/enemybig_tarmonster.png data/languages/korean/localization/enemybig_tentacle.png data/languages/korean/localization/enemybig_warlock.png data/languages/korean/localization/enemybig_whitearmadillo.png data/languages/korean/localization/enemybig_whitearmoredskeleton.png data/languages/korean/localization/enemybig_whitechestmimic.png data/languages/korean/localization/enemybig_whitemonkey.png data/languages/korean/localization/enemybig_whiteskeletonknight.png data/languages/korean/localization/enemybig_whiteskeletonmage.png data/languages/korean/localization/enemybig_whiteskeleton.png data/languages/korean/localization/enemybig_yellowarmadillo.png data/languages/korean/localization/enemybig_yellowarmoredskeleton.png data/languages/korean/localization/enemybig_yellowdirebat.png data/languages/korean/localization/enemybig_yellowsarcophagus.png data/languages/korean/localization/enemybig_yellowskeletonknight.png data/languages/korean/localization/enemybig_yellowskeletonmage.png data/languages/korean/localization/enemybig_yellowskeleton.png data/languages/korean/localization/enemy_blackarmoredskeleton.png data/languages/korean/localization/enemy_blackbat.png data/languages/korean/localization/enemy_blacklich.png data/languages/korean/localization/enemy_blacksarcophagus.png data/languages/korean/localization/enemy_blackskeletonknight.png data/languages/korean/localization/enemy_blackskeletonmage.png data/languages/korean/localization/enemy_blackskeleton.png data/languages/korean/localization/enemy_bluebanshee.png data/languages/korean/localization/enemy_bluebat.png data/languages/korean/localization/enemy_bluedragon.png data/languages/korean/localization/enemy_bluemushroom.png data/languages/korean/localization/enemy_blueslime.png data/languages/korean/localization/enemy_browndirebat.png data/languages/korean/localization/enemy_firebeetle.png data/languages/korean/localization/enemy_firecauldronmimic.png data/languages/korean/localization/enemy_grayshovemonster.png data/languages/korean/localization/enemy_greenbanshee.png data/languages/korean/localization/enemy_greenbat.png data/languages/korean/localization/enemy_greendragon.png data/languages/korean/localization/enemy_greenmonkey.png data/languages/korean/localization/enemy_greenslime.png data/languages/korean/localization/enemy_icecauldronmimic.png data/languages/korean/localization/enemy_kingconga.png data/languages/korean/localization/enemy_leprechaun.png data/languages/korean/localization/enemy_missedbeat.png data/languages/korean/localization/enemy_monstrousshopkeeper.png data/languages/korean/localization/enemy_ogre.png data/languages/korean/localization/enemy_oozegolem.png data/languages/korean/localization/enemy_redbat.png data/languages/korean/localization/enemy_redbishop.png data/languages/korean/localization/enemy_reddragon.png data/languages/korean/localization/enemy_redking.png data/languages/korean/localization/enemy_redknight.png data/languages/korean/localization/enemy_redlich.png data/languages/korean/localization/enemy_redpawn.png data/languages/korean/localization/enemy_redqueen.png data/languages/korean/localization/enemy_redrook.png data/languages/korean/localization/enemy_shovemonster.png data/languages/korean/localization/enemy_shove.png data/languages/korean/localization/enemy_shrineofnoreturn.png data/languages/korean/localization/enemy_shrineofpace.png data/languages/korean/localization/enemy_shrineofrisk.png data/languages/korean/localization/enemy_tarmonster.png data/languages/korean/localization/enemy_whitearmadillo.png data/languages/korean/localization/enemy_whitearmoredskeleton.png data/languages/korean/localization/enemy_whitechestmimic.png data/languages/korean/localization/enemy_whitemonkey.png data/languages/korean/localization/enemy_whiteskeletonknight.png data/languages/korean/localization/enemy_whiteskeletonmage.png data/languages/korean/localization/enemy_whiteskeleton.png data/languages/korean/localization/enemy_yellowarmadillo.png data/languages/korean/localization/enemy_yellowarmoredskeleton.png data/languages/korean/localization/enemy_yellowdirebat.png data/languages/korean/localization/enemy_yellowsarcophagus.png data/languages/korean/localization/enemy_yellowskeletonknight.png data/languages/korean/localization/enemy_yellowskeletonmage.png data/languages/korean/localization/enemy_yellowskeleton.png data/languages/korean/localization/game_coinmultiplierlost.png data/languages/korean/localization/game_death1.png data/languages/korean/localization/game_deathless1.png data/languages/korean/localization/game_loading.png data/languages/korean/localization/game_speedleaderboards.png data/languages/korean/localization/game_speedrun.png data/languages/korean/localization/game_story2.png data/languages/korean/localization/game_story3.png data/languages/korean/localization/hint_10killsheal.png data/languages/korean/localization/hint_1dmgkilldash.png data/languages/korean/localization/hint_1dmgmoreenemies.png data/languages/korean/localization/hint_1dmgstrangevision.png data/languages/korean/localization/hint_1heartfewerenemies.png data/languages/korean/localization/hint_1visiontrapsight.png data/languages/korean/localization/hint_2defenseheavy.png data/languages/korean/localization/hint_2dmgatlowhealth.png data/languages/korean/localization/hint_bombimmunity3bombs.png data/languages/korean/localization/hint_brokerreject.png data/languages/korean/localization/hint_chancelose.png data/languages/korean/localization/hint_cheapershops.png data/languages/korean/localization/hint_completebomblore.png data/languages/korean/localization/hint_completecadence.png data/languages/korean/localization/hint_completedragonlore.png data/languages/korean/localization/hint_completemonk.png data/languages/korean/localization/hint_completetraplore.png data/languages/korean/localization/hint_completezone4cadence.png data/languages/korean/localization/hint_conicalblastneedsreloadingpiercing.png data/languages/korean/localization/hint_damageenemies.png data/languages/korean/localization/hint_diganythingbuttakedamage.png data/languages/korean/localization/hint_dodamageasyouwalk.png data/languages/korean/localization/hint_gold.png data/languages/korean/localization/hint_helpswithsometerrain.png data/languages/korean/localization/hint_helpswithtrapsandice.png data/languages/korean/localization/hint_horizontalfireblast2.png data/languages/korean/localization/hint_horizontalfireblast.png data/languages/korean/localization/hint_immune.png data/languages/korean/localization/hint_longjumpattack.png data/languages/korean/localization/hint_longjump.png data/languages/korean/localization/hint_moveandattack.png data/languages/korean/localization/hint_oldweaponholstered.png data/languages/korean/localization/hint_opencage.png data/languages/korean/localization/hint_opencagewithglasslock.png data/languages/korean/localization/hint_opencagewithgoldenlock.png data/languages/korean/localization/hint_rewardsovereatingonce.png data/languages/korean/localization/hint_shoppingspree.png data/languages/korean/localization/hint_shrineofblood1.png data/languages/korean/localization/hint_shrineofchance1.png data/languages/korean/localization/hint_shrineofdarkness1.png data/languages/korean/localization/hint_shrineofglass1.png data/languages/korean/localization/hint_shrineofnoreturn1.png data/languages/korean/localization/hint_shrineofnoreturn2.png data/languages/korean/localization/hint_shrineofpace1.png data/languages/korean/localization/hint_shrineofpace2.png data/languages/korean/localization/hint_shrineofpeace1.png data/languages/korean/localization/hint_shrineofphasing1.png data/languages/korean/localization/hint_shrineofrhythm1.png data/languages/korean/localization/hint_shrineofrhythm2.png data/languages/korean/localization/hint_shrineofrisk1.png data/languages/korean/localization/hint_shrineofsacrifice1.png data/languages/korean/localization/hint_shrineofsacrifice2.png data/languages/korean/localization/hint_shrineofspace1.png data/languages/korean/localization/hint_shrineofwar1.png data/languages/korean/localization/hint_sloth.png data/languages/korean/localization/hint_standstillincreasedamage.png data/languages/korean/localization/hint_tempotrapdown.png data/languages/korean/localization/hint_tempotrapup.png data/languages/korean/localization/hud_0-5heart.png data/languages/korean/localization/hud_1-5hearts.png data/languages/korean/localization/hud_1heart.png data/languages/korean/localization/hud_1kill.png data/languages/korean/localization/hud_kills.png data/languages/korean/localization/item_10diamonds.png data/languages/korean/localization/item_15diamonds.png data/languages/korean/localization/item_20diamonds.png data/languages/korean/localization/item_2diamonds.png data/languages/korean/localization/item_3bombs.png data/languages/korean/localization/item_3diamonds.png data/languages/korean/localization/item_4diamonds.png data/languages/korean/localization/item_5diamonds.png data/languages/korean/localization/item_additionalblackchest.png data/languages/korean/localization/item_additionalredchest.png data/languages/korean/localization/item_blasthelm.png data/languages/korean/localization/item_bloodbroadsword.png data/languages/korean/localization/item_bloodcrossbow.png data/languages/korean/localization/item_bloodlongsword.png data/languages/korean/localization/item_bootsofleaping.png data/languages/korean/localization/item_bootsoflunging.png data/languages/korean/localization/item_broadsword.png data/languages/korean/localization/item_cat.png data/languages/korean/localization/item_crossbow.png data/languages/korean/localization/item_daggeroffrost.png data/languages/korean/localization/item_earthquakescroll.png data/languages/korean/localization/item_enchantweaponscroll.png data/languages/korean/localization/item_explorersboots.png data/languages/korean/localization/item_fearscroll.png data/languages/korean/localization/item_fireballscroll.png data/languages/korean/localization/item_freezescroll.png data/languages/korean/localization/item_gigantismscroll.png data/languages/korean/localization/item_glassbroadsword.png data/languages/korean/localization/item_glasscrossbow.png data/languages/korean/localization/item_glasslongsword.png data/languages/korean/localization/item_goldenbroadsword.png data/languages/korean/localization/item_goldencrossbow.png data/languages/korean/localization/item_goldenlongsword.png data/languages/korean/localization/item_heavyplate.png data/languages/korean/localization/item_karategi.png data/languages/korean/localization/item_leadboots.png data/languages/korean/localization/item_longsword.png data/languages/korean/localization/item_obsidianbroadsword.png data/languages/korean/localization/item_obsidiancrossbow.png data/languages/korean/localization/item_obsidianlongsword.png data/languages/korean/localization/item_richesscroll.png data/languages/korean/localization/item_rifle.png data/languages/korean/localization/item_scrollofneed.png data/languages/korean/localization/item_shieldscroll.png data/languages/korean/localization/item_titaniumbroadsword.png data/languages/korean/localization/item_titaniumcrossbow.png data/languages/korean/localization/item_titaniumlongsword.png data/languages/korean/localization/item_transmutescroll.png data/languages/korean/localization/item_wingedboots.png data/languages/korean/localization/leaderboard_allzones_speedrun.png data/languages/korean/localization/leaderboard_allzones_speedrun_seeded.png data/languages/korean/localization/leaderboard_deathless.png data/languages/korean/localization/leaderboard_loading.png data/languages/korean/localization/leveleditor_catacombwall.png data/languages/korean/localization/leveleditor_headgear.png data/languages/korean/localization/leveleditor_kingconga.png data/languages/korean/localization/leveleditor_ooze.png data/languages/korean/localization/leveleditor_placecontainer.png data/languages/korean/localization/leveleditor_placeshrine.png data/languages/korean/localization/leveleditor_shrineblood.png data/languages/korean/localization/leveleditor_shrinechance.png data/languages/korean/localization/leveleditor_shrinedarkness.png data/languages/korean/localization/leveleditor_shrineglass.png data/languages/korean/localization/leveleditor_shrinenoreturn.png data/languages/korean/localization/leveleditor_shrinepace.png data/languages/korean/localization/leveleditor_shrinepeace.png data/languages/korean/localization/leveleditor_shrinephasing.png data/languages/korean/localization/leveleditor_shrinerhythm.png data/languages/korean/localization/leveleditor_shrinerisk.png data/languages/korean/localization/leveleditor_shrinesacrifice.png data/languages/korean/localization/leveleditor_shrinespace.png data/languages/korean/localization/leveleditor_shrinewar.png data/languages/korean/localization/leveleditor_spiketrap.png data/languages/korean/localization/leveleditor_travelrune.png data/languages/korean/localization/leveleditor_zone3cold.png data/languages/korean/localization/leveleditor_zone3hot.png data/languages/korean/localization/lobby_bomblore.png data/languages/korean/localization/lobby_diamonddealerexplain1.png data/languages/korean/localization/lobby_diamonddealerexplain2.png data/languages/korean/localization/lobby_dragonlore.png data/languages/korean/localization/lobby_howtogetaway.png data/languages/korean/localization/lobby_janitorexplain1.png data/languages/korean/localization/lobby_janitorexplain2.png data/languages/korean/localization/lobby_traplore.png data/languages/korean/localization/lobby_unspent1.png data/languages/korean/localization/lobby_unspentdiamonds1.png data/languages/korean/localization/lobby_weaponblood.png data/languages/korean/localization/lobby_withmurder.png data/languages/korean/localization/options_beatdetectionongoing.png data/languages/korean/localization/options_cutscenes.png data/languages/korean/localization/options_enemyhearts.png data/languages/korean/localization/options_latencybeat.png data/languages/korean/localization/options_leaderboardsdeathless.png data/languages/korean/localization/options_leaderboardsspeedseeded.png data/languages/korean/localization/selection/character_eli.png data/languages/korean/localization/selection/character_monk.png data/languages/korean/localization/selection/custommusic_1-2xspeed.png data/languages/korean/localization/selection/custommusic_2xspeed.png data/languages/korean/localization/selection/custommusic_kingconga.png data/languages/korean/localization/selection/custommusic_manualbeatslobby.png data/languages/korean/localization/selection/custommusic_manualbeats.png data/languages/korean/localization/selection/game_speedleaderboards.png data/languages/korean/localization/selection/leveleditor_catacombwall.png data/languages/korean/localization/selection/leveleditor_headgear.png data/languages/korean/localization/selection/leveleditor_kingconga.png data/languages/korean/localization/selection/leveleditor_ooze.png data/languages/korean/localization/selection/leveleditor_placecontainer.png data/languages/korean/localization/selection/leveleditor_placeshrine.png data/languages/korean/localization/selection/leveleditor_shrineblood.png data/languages/korean/localization/selection/leveleditor_shrinechance.png data/languages/korean/localization/selection/leveleditor_shrinedarkness.png data/languages/korean/localization/selection/leveleditor_shrineglass.png data/languages/korean/localization/selection/leveleditor_shrinenoreturn.png data/languages/korean/localization/selection/leveleditor_shrinepace.png data/languages/korean/localization/selection/leveleditor_shrinepeace.png data/languages/korean/localization/selection/leveleditor_shrinephasing.png data/languages/korean/localization/selection/leveleditor_shrinerhythm.png data/languages/korean/localization/selection/leveleditor_shrinerisk.png data/languages/korean/localization/selection/leveleditor_shrinesacrifice.png data/languages/korean/localization/selection/leveleditor_shrinespace.png data/languages/korean/localization/selection/leveleditor_shrinewar.png data/languages/korean/localization/selection/leveleditor_spiketrap.png data/languages/korean/localization/selection/leveleditor_travelrune.png data/languages/korean/localization/selection/leveleditor_zone3cold.png data/languages/korean/localization/selection/leveleditor_zone3hot.png data/languages/korean/localization/selection/options_cutscenes.png data/languages/korean/localization/selection/options_enemyhearts.png data/languages/korean/localization/selection/options_leaderboardsdeathless.png data/languages/korean/localization/selection/options_leaderboardsspeedseeded.png data/languages/korean/localization/shop_shriner.png data/languages/korean/localization/training_armoredskeleton1.png data/languages/korean/localization/training_blackarmoredskeleton1.png data/languages/korean/localization/training_blackbat.png data/languages/korean/localization/training_blacklich.png data/languages/korean/localization/training_blacksarcophagus1.png data/languages/korean/localization/training_blackskeletonknight1.png data/languages/korean/localization/training_blackskeletonmage1.png data/languages/korean/localization/training_blackskeleton.png data/languages/korean/localization/training_bluedragon.png data/languages/korean/localization/training_blueslime.png data/languages/korean/localization/training_cauldronmimic.png data/languages/korean/localization/training_direbat.png data/languages/korean/localization/training_firebeetle.png data/languages/korean/localization/training_graydirebat.png data/languages/korean/localization/training_grayshovemonster2.png data/languages/korean/localization/training_greenbanshee1.png data/languages/korean/localization/training_greenbat.png data/languages/korean/localization/training_greendragon.png data/languages/korean/localization/training_greenmonkey1.png data/languages/korean/localization/training_greenslime.png data/languages/korean/localization/training_neonwarlock.png data/languages/korean/localization/training_ogre.png data/languages/korean/localization/training_oozegolem.png data/languages/korean/localization/training_redbat.png data/languages/korean/localization/training_reddragon.png data/languages/korean/localization/training_redlich.png data/languages/korean/localization/training_shovemonster.png data/languages/korean/localization/training_tarmonster.png data/languages/korean/localization/training_whitemonkey.png data/languages/korean/localization/training_yellowarmadillo.png data/languages/korean/localization/training_yellowarmoredskeleton1.png data/languages/korean/localization/training_yellowsarcophagus1.png data/languages/korean/localization/training_yellowskeletonknight1.png data/languages/korean/localization/training_yellowskeletonmage1.png data/languages/korean/localization/training_yellowskeleton.png data/languages/korean/localization.xml data/languages/korean/subtitles.xml data/languages/russian/localization/characterselect_story2.png data/languages/russian/localization/game_story2.png data/languages/russian/localization/game_story3.png data/languages/russian/localization.xml data/languages/russian/subtitles.xml data/languages/spanish/localization/characterselect_story2.png data/languages/spanish/localization/game_story2.png data/languages/spanish/localization/game_story3.png data/languages/spanish/localization.xml data/languages/spanish/subtitles.xml data/music/boss_1_2.ogg data/music/boss_2_2.ogg data/music/boss_3_2.ogg data/music/boss_4_2.ogg data/music/credits_1.ogg data/music/credits_2.ogg data/music/credits_3.ogg data/music/credits_4.ogg data/music/lobby_2.ogg data/music/zone1_1_2.ogg data/music/zone1_2_2.ogg data/music/zone1_3_2.ogg data/music/zone2_1_2.ogg data/music/zone2_2_2.ogg data/music/zone2_3_2.ogg data/music/zone3_1_2c.ogg data/music/zone3_1_2h.ogg data/music/zone3_2_2c.ogg data/music/zone3_2_2h.ogg data/music/zone3_3_2c.ogg data/music/zone3_3_2h.ogg data/music/zone4_1_2.ogg data/music/zone4_2_2.ogg data/music/zone4_3_2.ogg data/necrodancer.xml data/sounds.xml data/video/credits_1.ogv data/video/credits_2.ogv data/video/credits_3.ogv data/video/credits_4.ogv' CONTENT_GAME_DATA_FILES=' data' CONTENT_DOC_DATA_FILES=' TROUBLESHOOTING.txt' USER_PERSISTENT_DIRECTORIES=' data/custom_music dungeons downloaded_dungeons downloaded_mods mods replays' USER_PERSISTENT_FILES=' data/played.dat data/save_data.xml' APP_MAIN_EXE='NecroDancer64/NecroDancer.x64' APP_MAIN_ICON='NecroDancer.exe' ## Run the game binary from its parent directory APP_MAIN_PRERUN='# Run the game binary from its parent directory cd "$(dirname "$APP_EXE")" APP_EXE=$(basename "$APP_EXE") ' PACKAGES_LIST=' PKG_BIN PKG_DATA_COMMON PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_PROVIDES=" $PKG_DATA_ID" PKG_DATA_DESCRIPTION='data' PKG_DATA_COMMON_ID="${PKG_DATA_ID}-common" PKG_DATA_COMMON_DESCRIPTION="$PKG_DATA_DESCRIPTION - common files between base game and expansion" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_COMMON_ID" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libFLAC.so.8 libfreetype.so.6 libgcc_s.so.1 libGL.so.1 libluajit-5.1.so.2 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libstdc++.so.6 libudev.so.1 libX11.so.6 libXcursor.so.1 libXrandr.so.2' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Link libnecrolevel.so to the hard-coded path the engine expects to find it file_name='libnecrolevel.so' file_source="$(path_libraries)/${file_name}" file_destination="$(package_path 'PKG_BIN')$(path_game_data)/NecroDancer64/lib/${file_name}" mkdir --parents "$(dirname "$file_destination")" ln --symbolic "$file_source" "$file_destination" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-cryptark.sh0000755000000000000000000000607114471751340014023 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 VA # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Cryptark # send your bug reports to contact@dotslashplay.it ### script_version=20230207.1 GAME_ID='cryptark' GAME_NAME='Cryptark' ARCHIVE_BASE_1='cryptark_en_1_23_22933.sh' ARCHIVE_BASE_1_MD5='7fbca12cab4fae1a36a365fdf004a678' ARCHIVE_BASE_1_TYPE='mojosetup' ARCHIVE_BASE_1_SIZE='700000' ARCHIVE_BASE_1_VERSION='1.23-gog22933' ARCHIVE_BASE_1_URL='https://www.gog.com/game/cryptark' ARCHIVE_BASE_0='cryptark_en_1_2_15203.sh' ARCHIVE_BASE_0_MD5='53083f1fef847a30eb99914821c8649a' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='700000' ARCHIVE_BASE_0_VERSION='1.2-gog15203' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' Content monoconfig monomachineconfig Cryptark.exe Cryptark.png gamecontrollerdb.txt BrashMonkeySpriterXNA.dll CommandConsoleSharedTypes.dll FNA.dll FNA.dll.config Lidgren.Network.dll MSCommon.dll ProjectMercury.dll spine-csharp_xna.dll spine-xna.dll TexturePackingRuntime.dll' CONTENT_DOC_MAIN_FILES=' Linux.README' APP_MAIN_EXE='Cryptark.exe' APP_MAIN_ICON='Cryptark.png' PKG_MAIN_DEPS='mono' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libopenal.so.1 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0' PKG_MAIN_DEPENDENCIES_MONO_LIBRARIES=' mscorlib.dll Mono.Posix.dll Mono.Security.dll System.dll System.Configuration.dll System.Core.dll System.Data.dll System.Drawing.dll System.Numerics.dll System.Runtime.Serialization.dll System.Security.dll System.Web.dll System.Web.Extensions.dll System.Xml.dll System.Xml.Linq.dll' # Include shipped libraries that can not be replaced by system ones CONTENT_LIBS_LIBS32_PATH="${CONTENT_PATH_DEFAULT}/lib" CONTENT_LIBS_LIBS32_FILES=' libmojoshader.so libtheorafile.so' CONTENT_LIBS_LIBS64_PATH="${CONTENT_PATH_DEFAULT}/lib64" CONTENT_LIBS_LIBS64_FILES=' libmojoshader.so libtheorafile.so' PACKAGES_LIST='PKG_MAIN PKG_LIBS32 PKG_LIBS64' PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS32_ID="$PKG_LIBS_ID" PKG_LIBS32_ARCH='32' PKG_LIBS64_ID="$PKG_LIBS_ID" PKG_LIBS64_ARCH='64' PKG_MAIN_DEPS="$PKG_MAIN_DEPS $PKG_LIBS_ID" # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-cube-escape.sh0000755000000000000000000000450614471751340014341 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Cube Escape # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220306.4 # Set game-specific variables GAME_ID='cube-escape' GAME_NAME='Cube Escape' ARCHIVE_BASE_0='setup_cube_escape_collection_1.0_(43930).exe' ARCHIVE_BASE_0_MD5='bd5035262ff2b9adc3a1887d8168ebaf' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='130000' ARCHIVE_BASE_0_VERSION='1.0-gog43930' ARCHIVE_BASE_0_URL='https://www.gog.com/game/cube_escape_collection' CONTENT_PATH_DEFAULT='.' ARCHIVE_GAME_BIN_FILES=' adobe?air cube?escape?collection.exe' ARCHIVE_GAME_DATA_FILES=' *.swf meta-inf mimetype cube-escape-translations.xml icons' ARCHIVE_GAME0_BIN_PATH="${CONTENT_PATH_DEFAULT}/app" ARCHIVE_GAME0_BIN_FILES=' adobe?air' APP_MAIN_TYPE='wine' APP_MAIN_EXE='cube escape collection.exe' APP_MAIN_ICON='cube escape collection.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Use persistent storage for user data APP_WINE_LINK_DIRS=' userdata:users/${USER}/Documents/Rusty Lake/CubeEscapeCollection' DATA_DIRS='./userdata' # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-d-the-game.sh0000755000000000000000000000361414471751340014074 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # D: The Game # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220707.1 GAME_ID='d-the-game' GAME_NAME='D: The Game' ARCHIVE_BASE_0='gog_d_the_game_2.0.0.2.sh' ARCHIVE_BASE_0_MD5='4a9f18efc065a80723130b73c5327095' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='930000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.2' ARCHIVE_BASE_0_URL='https://www.gog.com/game/d_the_game' CONTENT_PATH_DEFAULT='data/noarch/data' ARCHIVE_GAME_MAIN_FILES=' *.EXE DS.DAT AVI BMP DRV EFC LAURA.PIF SOUND.BAT VESA.AVI' GAME_IMAGE='DS.DAT' APP_MAIN_TYPE='dosbox' APP_MAIN_EXE='LAURA.EXE' APP_MAIN_ICON="${CONTENT_PATH_DEFAULT}/../support/icon.png" PKG_MAIN_DEPS='dosbox' # Use persistent storage for user data DATA_DIRS='./data' # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Include game icon icons_get_from_workdir 'APP_MAIN' # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-dagon.sh0000755000000000000000000000707514471751340013261 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Dagon: by H. P. Lovecraft # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20211128.5 # Set game-specific variables GAME_ID='dagon' GAME_NAME='Dagon: by H. P. Lovecraft' ARCHIVE_BASE_0='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' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES=' unitycrashhandler64.exe dagon.exe dagon_data/plugins monobleedingedge unityplayer.dll' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES=' dagon_data' ARCHIVE_DOC_DATA_PATH='.' ARCHIVE_DOC_DATA_FILES=' cinzel?font?license.txt' APP_MAIN_TYPE='wine' APP_MAIN_EXE='dagon.exe' APP_MAIN_ICON='dagon.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Use persistent storage for game progress APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/AppData/LocalLow/BitGolem/Dagon' DATA_DIRS="$DATA_DIRS ./userdata" # Load common functions target_version='2.14' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-dark-echo.sh0000755000000000000000000000511014471751340014012 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Dark Echo # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220629.1 GAME_ID='dark-echo' GAME_NAME='Dark Echo' ARCHIVES_LIST='ARCHIVE_BASE_0' ARCHIVE_BASE_0='DarkEcho_Linux.zip' ARCHIVE_BASE_0_MD5='b629b5c47729d8213f89f92ae28d6076' ARCHIVE_BASE_0_SIZE='120000' ARCHIVE_BASE_0_VERSION='1.0-humble' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/dark-echo' UNITY3D_NAME='DarkEcho' CONTENT_PATH_DEFAULT='.' ARCHIVE_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86" ARCHIVE_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32="${UNITY3D_NAME}.x86" APP_MAIN_EXE_BIN64="${UNITY3D_NAME}.x86_64" APP_MAIN_ICON="${UNITY3D_NAME}_Data/Resources/UnityPlayer.png" PACKAGES_LIST='PKG_DATA PKG_BIN32 PKG_BIN64' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID libc.so.6 libGL.so.1 xcursor libxrandr" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Use a dedicated log file for the current game session APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a dedicated log file for the current game session mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-darksiders-2.sh0000755000000000000000000000616114471751340014456 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Darksiders 2 # send your bug reports to contact@dotslashplay.it ### script_version=20230930.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='darksiders-2' GAME_NAME='Darksiders Ⅱ' ARCHIVE_BASE_0_NAME='setup_darksiders2_deathinitive_2.1.0.4.exe' ARCHIVE_BASE_0_MD5='5b39f665a8367f4ebe7c845b2ebbac81' ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOROPTIONS='--lowercase --gog' ARCHIVE_BASE_0_PART1_NAME='setup_darksiders2_deathinitive_2.1.0.4-1.bin' ARCHIVE_BASE_0_PART1_MD5='ec9c85b15f23b79bd87668282b8101ed' ARCHIVE_BASE_0_PART1_EXTRACTOR='unar' ARCHIVE_BASE_0_PART2_NAME='setup_darksiders2_deathinitive_2.1.0.4-2.bin' ARCHIVE_BASE_0_PART2_MD5='4eb87fd00792a0e35b0abd8b7bc124e0' ARCHIVE_BASE_0_PART2_EXTRACTOR='unar' ARCHIVE_BASE_0_PART3_NAME='setup_darksiders2_deathinitive_2.1.0.4-3.bin' ARCHIVE_BASE_0_PART3_MD5='113f5a09d0289db3b1c5a5f85a82849e' ARCHIVE_BASE_0_PART3_EXTRACTOR='unar' ARCHIVE_BASE_0_PART4_NAME='setup_darksiders2_deathinitive_2.1.0.4-4.bin' ARCHIVE_BASE_0_PART4_MD5='ca12e47f9cce195b09a66c7ff27121ab' ARCHIVE_BASE_0_PART4_EXTRACTOR='unar' ARCHIVE_BASE_0_SIZE='16000000' ARCHIVE_BASE_0_VERSION='1.0-gog2.1.0.4' ARCHIVE_BASE_0_URL='https://www.gog.com/game/darksiders_ii_deathinitive_edition' CONTENT_PATH_DEFAULT='game' CONTENT_GAME_BIN_FILES=' darksiders2.exe *.dll' CONTENT_GAME_DATA_MEDIA_FILES=' media/media.upak' CONTENT_GAME_DATA_SOUNDS_FILES=' media/sounds_streamed' CONTENT_GAME_DATA_FILES=' darksiders2.dsl media' CONTENT_DOC_DATA_FILES=' manual.pdf' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Local/Darksiders2 users/${USER}/Documents/My Games/Darksiders2' APP_MAIN_EXE='darksiders2.exe' PACKAGES_LIST='PKG_BIN PKG_DATA_MEDIA PKG_DATA_SOUNDS PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_MEDIA_ID="${PKG_DATA_ID}-media" PKG_DATA_MEDIA_DESCRIPTION="$PKG_DATA_DESCRIPTION - media" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_MEDIA_ID" PKG_DATA_SOUNDS_ID="${PKG_DATA_ID}-sounds" PKG_DATA_SOUNDS_DESCRIPTION="$PKG_DATA_DESCRIPTION - sounds" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_SOUNDS_ID" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-darwinia.sh0000755000000000000000000001313014471751340013754 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Darwinia # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210516.8 # Set game-specific variables GAME_ID='darwinia' GAME_NAME='Darwinia' ARCHIVE_BASE_0='gog_darwinia_2.0.0.5.sh' ARCHIVE_BASE_0_MD5='ef55064ab82a64324e295f2ea96239d6' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='45000' ARCHIVE_BASE_0_VERSION='1.4.2-gog2.0.0.5' ARCHIVE_BASE_0_URL='https://www.gog.com/game/darwinia' ARCHIVE_DOC_DATA_PATH='data/noarch/game' ARCHIVE_DOC_DATA_FILES='*.txt' ARCHIVE_GAME_BIN32_PATH='data/noarch/game' ARCHIVE_GAME_BIN32_FILES='darwinia.bin.x86' ARCHIVE_GAME_BIN64_PATH='data/noarch/game' ARCHIVE_GAME_BIN64_FILES='darwinia.bin.x86_64' ARCHIVE_GAME_DATA_PATH='data/noarch/game' ARCHIVE_GAME_DATA_FILES='*.dat darwinian.png' APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32='darwinia.bin.x86' APP_MAIN_EXE_BIN64='darwinia.bin.x86_64' APP_MAIN_ICON='darwinian.png' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="${PKG_DATA_ID} glibc libstdc++ glx libGLU.so.1 libvorbisfile.so.3 libSDL-1.2.so.0" PKG_BIN32_DEPS_ARCH='lib32-libogg lib32-libvorbis' PKG_BIN32_DEPS_DEB='libogg0, libvorbis0a' PKG_BIN32_DEPS_GENTOO='media-libs/libogg[abi_x86_32] media-libs/libvorbis[abi_x86_32]' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPS_ARCH='libogg libvorbis' PKG_BIN64_DEPS_DEB="$PKG_BIN32_DEPS_DEB" PKG_BIN64_DEPS_GENTOO='media-libs/libogg media-libs/libvorbis' # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean-up temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Divert saved games and settings to XDG-compliant paths # This prevents the creation of a hidden directory at the top level in $HOME CONFIG_FILES="${CONFIG_FILES} ./preferences.txt" DATA_DIRS="${DATA_DIRS} ./users" # shellcheck disable=SC1004 APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Divert saved games and settings to XDG-compliant paths # This prevents the creation of a hidden directory at the top level in $HOME # Skip this operation if the hidden directory already exists if [ ! -e "${HOME}/.darwinia" ]; then # Prevent $HOME clutter FAKE_HOME="${PATH_PREFIX}/fake-home" mkdir --parents "${FAKE_HOME}/.local" ln --force --no-target-directory --symbolic \ "${XDG_CACHE_HOME:=$HOME/.cache}" \ "${FAKE_HOME}/.cache" ln --force --no-target-directory --symbolic \ "${XDG_CONFIG_HOME:=$HOME/.config}" \ "${FAKE_HOME}/.config" ln --force --no-target-directory --symbolic \ "${XDG_DATA_HOME:=$HOME/.local/share}" \ "${FAKE_HOME}/.local/share" HOME="$FAKE_HOME" export XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME HOME # Migrate user data to the diverted paths divert_path() { # shellcheck disable=SC2039 local path_original path_diverted path_original="$1" path_diverted="$2" if [ -e "$path_original" ] && [ ! -h "$path_original" ]; then mv --no-target-directory "$path_original" "$(realpath "$path_diverted")" fi if [ -e "$path_diverted" ]; then mkdir --parents "$(dirname "$path_original")" ln --force --no-target-directory --symbolic "$path_diverted" "$path_original" fi return 0 } divert_path \ "${HOME}/.darwinia/full/preferences.txt" \ "${PATH_PREFIX}/preferences.txt" divert_path \ "${HOME}/.darwinia/full/users" \ "${PATH_PREFIX}/users" fi' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-dead-cells-rise-of-the-giant.sh0000755000000000000000000000630014471751340017374 0ustar rootroot#!/bin/sh -e set -o errexit ### # Copyright (c) 2020, Hoël Bézier # 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. ### ### # Dead Cells: Rise of the Giant # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20200707.1 # Set game-specific variables GAME_ID='dead-cells' GAME_NAME='Dead Cells: Rise of the Giant DLC' ARCHIVE_GOG='dead_cells_rise_of_the_giant_1_9_1_39495.sh' ARCHIVE_GOG_URL='https://www.gog.com/game/dead_cells_rise_of_the_giant' ARCHIVE_GOG_MD5='c1d123c88c3e1f85a11ae9d090f626b0' ARCHIVE_GOG_SIZE='1100' ARCHIVE_GOG_VERSION='1.9.1-gog39495' ARCHIVE_GOG_TYPE='mojosetup' ARCHIVE_GOG_OLD='dead_cells_rise_of_the_giant_1_8_0_37766.sh' ARCHIVE_GOG_OLD_MD5='855ef837a9766e5b30ee34d212e5b16b' ARCHIVE_GOG_OLD_SIZE='1100' ARCHIVE_GOG_OLD_VERSION='1.8.0-gog37766' ARCHIVE_GOG_OLD_TYPE='mojosetup' ARCHIVE_DOC_MAIN_PATH='data/noarch/docs' ARCHIVE_DOC_MAIN_FILES='*' ARCHIVE_GAME_MAIN_PATH='data/noarch/game' ARCHIVE_GAME_MAIN_FILES='goggame-1758551289.info' PACKAGES_LIST='PKG_MAIN' PKG_MAIN_ID="${GAME_ID}-rise-of-the-giant" PKG_MAIN_DEPS="$GAME_ID" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_MAIN_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_MAIN_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi #shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout rm --recursive "$PLAYIT_WORKDIR/gamedata" # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-dead-cells-the-bad-seed.sh0000755000000000000000000000624214471751340016401 0ustar rootroot#!/bin/sh -e set -o errexit ### # Copyright (c) 2020, Hoël Bézier # 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. ### ### # Dead Cells: The Bad Seed # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20200707.1 # Set game-specific variables GAME_ID='dead-cells' GAME_NAME='Dead Cells: The Bad Seed DLC' ARCHIVE_GOG='dead_cells_the_bad_seed_1_9_1_39495.sh' ARCHIVE_GOG_URL='https://www.gog.com/game/dead_cells_the_bad_seed' ARCHIVE_GOG_MD5='745aa46480a45d4bf4904361a4d06110' ARCHIVE_GOG_SIZE='1100' ARCHIVE_GOG_VERSION='1.9.1-gog39495' ARCHIVE_GOG_TYPE='mojosetup' ARCHIVE_GOG_OLD='dead_cells_the_bad_seed_1_8_0_37766.sh' ARCHIVE_GOG_OLD_MD5='3ab8b8c71c1a9079be384a7788592d83' ARCHIVE_GOG_OLD_SIZE='1100' ARCHIVE_GOG_OLD_VERSION='1.8.0-gog37766' ARCHIVE_GOG_OLD_TYPE='mojosetup' ARCHIVE_DOC_MAIN_PATH='data/noarch/docs' ARCHIVE_DOC_MAIN_FILES='*' ARCHIVE_GAME_MAIN_PATH='data/noarch/game' ARCHIVE_GAME_MAIN_FILES='goggame-1114691340.info' PACKAGES_LIST='PKG_MAIN' PKG_MAIN_ID="${GAME_ID}-the-bad-seed" PKG_MAIN_DEPS="$GAME_ID" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_MAIN_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_MAIN_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi #shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout rm --recursive "$PLAYIT_WORKDIR/gamedata" # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-dead-cells.sh0000755000000000000000000000734314471751340014164 0ustar rootroot#!/bin/sh -e set -o errexit ### # Copyright (c) 2020, Hoël Bézier # 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. ### ### # Dead Cells # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20200708.1 # Set game-specific variables GAME_ID='dead-cells' GAME_NAME='Dead Cells' ARCHIVE_GOG='dead_cells_1_9_1_39495.sh' ARCHIVE_GOG_URL='https://www.gog.com/game/dead_cells' ARCHIVE_GOG_MD5='d39f39354e1546e9fb940e7738992b16' ARCHIVE_GOG_SIZE='690000' ARCHIVE_GOG_VERSION='1.9.1-gog39495' ARCHIVE_GOG_TYPE='mojosetup' ARCHIVE_GOG_OLD='dead_cells_1_8_0_37766.sh' ARCHIVE_GOG_OLD_MD5='93a03894720c4e232566300c61ee153b' ARCHIVE_GOG_OLD_SIZE='670000' ARCHIVE_GOG_OLD_VERSION='1.8.0-gog37766' ARCHIVE_GOG_OLD_TYPE='mojosetup' ARCHIVE_DOC0_DATA_PATH='data/noarch/docs' ARCHIVE_DOC0_DATA_FILES='*' ARCHIVE_DOC1_DATA_PATH='data/noarch/support' ARCHIVE_DOC1_DATA_FILES='*.txt' ARCHIVE_GAME_BIN_PATH='data/noarch/game' ARCHIVE_GAME_BIN_FILES='deadcells libhl.so *.hdll' ARCHIVE_GAME_DATA_PATH='data/noarch/game' ARCHIVE_GAME_DATA_FILES='hlboot.dat res.pak' DATA_DIRS='./logs ./save' APP_MAIN_TYPE='native' APP_MAIN_LIBS='libhl.so *.hdll' APP_MAIN_EXE_BIN='deadcells' APP_MAIN_ICON='data/noarch/support/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID glibc libmbedtls.so.12 libopenal.so.1 libpng16.so.16 libSDL2-2.0.so.0 libturbojpeg.so.0 libuv.so.1 libvorbisfile.so.3" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi #shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Extract icon PKG='PKG_DATA' icons_get_from_workdir 'APP_MAIN' # Remove unused data rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-dead-synchronicity.sh0000755000000000000000000001240614471751340015763 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Dead Synchronicity: Tomorrow Comes Today # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210712.7 # Set game-specific variables GAME_ID='dead-synchronicity' GAME_NAME='Dead Synchronicity: Tomorrow Comes Today' ARCHIVE_BASE_ZOOM_0='Dead-Synchronicity-1.1.tar.xz' ARCHIVE_BASE_ZOOM_0_MD5='625ab4fc87c1b8744de35a5c9b86bdf4' ARCHIVE_BASE_ZOOM_0_TYPE='tar' # The type declaration should be dropped with ./play.it 2.14 release 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='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' ARCHIVE_GAME_BIN32_PATH='Dead Synchronicity' ARCHIVE_GAME_BIN32_FILES='Dead?Synchronicity.x86 Dead?Synchronicity_Data/Mono/x86 Dead?Synchronicity_Data/Plugins/x86' ARCHIVE_GAME_BIN64_PATH='Dead Synchronicity' ARCHIVE_GAME_BIN64_FILES='Dead?Synchronicity.x86_64 Dead?Synchronicity_Data/Mono/x86_64 Dead?Synchronicity_Data/Plugins/x86_64' ARCHIVE_GAME_DATA_PATH='Dead Synchronicity' ARCHIVE_GAME_DATA_FILES='Dead?Synchronicity_Data' APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32='Dead Synchronicity.x86' APP_MAIN_EXE_BIN64='Dead Synchronicity.x86_64' APP_MAIN_ICON='Dead Synchronicity_Data/Resources/UnityPlayer.png' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID glibc libstdc++ glx xcursor libxrandr gtk2 freetype libGLU.so.1 libX11.so.6 libgdk-x11-2.0.so.0 libgdk_pixbuf-2.0.so.0 libgobject-2.0.so.0 libglib-2.0.so.0" PKG_BIN32_DEPS_ARCH='lib32-libxext lib32-atk lib32-glib2 lib32-pango lib32-cairo lib32-fontconfig' PKG_BIN32_DEPS_DEB='libxext6, libatk1.0-0, libglib2.0-0, libpangoft2-1.0-0, libpangocairo-1.0-0, libcairo2, libpango-1.0-0, libfontconfig1' PKG_BIN32_DEPS_GENTOO='x11-libs/libXext[abi_x86_32] dev-libs/atk[abi_x86_32] dev-libs/glib[abi_x86_32] x11-libs/pango[abi_x86_32] x11-libs/cairo[abi_x86_32] media-libs/fontconfig[abi_x86_32]' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPS_ARCH='libxext atk glib2 pango cairo fontconfig' PKG_BIN64_DEPS_DEB="$PKG_BIN32_DEPS_DEB" PKG_BIN64_DEPS_GENTOO='x11-libs/libXext dev-libs/atk dev-libs/glib x11-libs/pango x11-libs/cairo media-libs/fontconfig' # Use a per-session dedicated file for logs APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a per-session dedicated file for logs mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" set_standard_permissions "${PLAYIT_WORKDIR}/gamedata" prepare_package_layout # Get game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-deadbolt.sh0000755000000000000000000000363314471751340013743 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Deadbolt # send your bug reports to contact@dotslashplay.it ### script_version=20230818.1 GAME_ID='deadbolt' GAME_NAME='Deadbolt' ARCHIVE_BASE_0='gog_deadbolt_2.1.0.2.sh' ARCHIVE_BASE_0_MD5='bc7831a069546d18f5e12a5ee3da4850' ARCHIVE_BASE_0_SIZE='140000' ARCHIVE_BASE_0_VERSION='1.0.2-gog2.1.0.2' ARCHIVE_BASE_0_URL='https://www.gog.com/game/deadbolt' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' deadbolt' CONTENT_GAME_DATA_FILES=' assets' APP_MAIN_EXE='deadbolt' APP_MAIN_ICON='assets/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libssl.so.1.0.0 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 libz.so.1' # Load common functions 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction_defaut # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-deadlight.sh0000755000000000000000000000715014471751340014110 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Deadlight # send your bug reports to contact@dotslashplay.it ### script_version=20230803.5 GAME_ID='deadlight' GAME_NAME='Deadlight' ARCHIVE_BASE_1='setup_deadlight_directors_cut_gog-2(cs)_(19167).exe' ARCHIVE_BASE_1_MD5='70b8df3f8162cc0a9a43e531b6a723c5' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1='setup_deadlight_directors_cut_gog-2(cs)_(19167)-1.bin' ARCHIVE_BASE_1_PART1_MD5='6392568bcc7c4a4613e09cdbb40afafd' ARCHIVE_BASE_1_PART2='setup_deadlight_directors_cut_gog-2(cs)_(19167)-2.bin' ARCHIVE_BASE_1_PART2_MD5='fa080fbdd39369969be4ac54c2aa7bd2' ARCHIVE_BASE_1_SIZE='5100000' ARCHIVE_BASE_1_VERSION='1.0-gog19167' ARCHIVE_BASE_1_URL='https://www.gog.com/game/deadlight_directors_cut' ARCHIVE_BASE_0='setup_deadlight_directors_cut_2.0.0.2.exe' ARCHIVE_BASE_0_MD5='1a753e4f9a209de5bd916ac98b88a9b7' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_deadlight_directors_cut_2.0.0.2-1.bin' ARCHIVE_BASE_0_PART1_MD5='246b4684d801ea84b6490e01bcf5c659' ARCHIVE_BASE_0_PART1_TYPE='rar' ARCHIVE_BASE_0_PART2='setup_deadlight_directors_cut_2.0.0.2-2.bin' ARCHIVE_BASE_0_PART2_MD5='3cb7cdd9fea50a66d7f06a6b2d0426c6' ARCHIVE_BASE_0_PART2_TYPE='rar' ARCHIVE_BASE_0_SIZE='5100000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.2' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='game' CONTENT_GAME_BIN_FILES=' engine binaries' CONTENT_GAME_DATA_FILES=' lotdgame' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/My Games/UnrealEngine3/LOTDGame' APP_MAIN_EXE='binaries/win64/lotdgame.exe' ## The application type must be set explicitly, ## or it would be wrongly guessed as a Mono one. APP_MAIN_TYPE='wine' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.25' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Include Mono in the WINE prefix ARCHIVE_REQUIRED_MONO='wine-mono-8.0.0-x86.msi' ARCHIVE_REQUIRED_MONO_MD5='4fe5c683fcd9634c7f6571f252b3603c' ARCHIVE_REQUIRED_MONO_URL='https://dl.winehq.org/wine/wine-mono/8.0.0/' archive_initialize_required 'ARCHIVE_MONO' 'ARCHIVE_REQUIRED_MONO' mono_installer_source=$(archive_find_path 'ARCHIVE_MONO') mono_installer_destination="$(package_path 'PKG_BIN')$(path_game_data)/mono/wine-mono-8.0.0-x86.msi" install -D --mode=644 "$mono_installer_source" "$mono_installer_destination" WINE_DLLOVERRIDES_DEFAULT='winemenubuilder.exe,mshtml=' APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' # Include Mono in the WINE prefix if [ ! -e .mono_installed ]; then $(wine_command) mono/wine-mono-8.0.0-x86.msi touch .mono_installed fi ' # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-dear-esther.sh0000755000000000000000000000575614471751340014400 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Dear Esther # send your bug reports to contact@dotslashplay.it ### script_version=20231113.8 GAME_ID='dear-esther' GAME_NAME='Dear Esther' ## This DRM-free Linux installer used to be sold by Humble Bundle, but they dropped it in favour of Steam keys. ARCHIVE_BASE_0_NAME='dearesther-linux-06082013-bin' ARCHIVE_BASE_0_MD5='951127a283c3caf2c76031c7611d431d' ## This is a MojoSetup installer, not relying on Makeself. ARCHIVE_BASE_0_EXTRACTOR='bsdtar' ARCHIVE_BASE_0_SIZE='1500000' ARCHIVE_BASE_0_VERSION='1.6-humble1' CONTENT_PATH_DEFAULT='data' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/bin" CONTENT_LIBS_BIN_FILES=' datacache.so engine.so filesystem_stdio.so inputsystem.so launcher.so libMiles.so libtier0.so libtogl.so libvstdlib.so localize.so materialsystem.so scenefilecache.so shaderapidx9.so soundemittersystem.so stdshader_dx9.so studiorender.so valve_avi.so vaudio_miles.so vgui2.so vguimatsurface.so vphysics.so vscript.so' CONTENT_GAME_BIN_FILES=' bin/linux32 bin/vconfig bin/*.addin bin/*.bin bin/*.cfg bin/*.csv bin/*.fgd dearesther_linux' CONTENT_GAME_DATA_FILES=' dearesther dearesther.png platform' CONTENT_DOC_DATA_FILES=' README-linux.txt' USER_PERSISTENT_DIRECTORIES=' dearesther/cfg dearesther/save' APP_MAIN_EXE='dearesther_linux' APP_MAIN_OPTIONS='-game dearesther' APP_MAIN_ICON='dearesther.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libEGL.so.1 libfontconfig.so.1 libfreetype.so.6 libm.so.6 libopenal.so.1 libpthread.so.0 libSDL2-2.0.so.0 libstdc++.so.6' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # The game engine looks for some library in a hardcoded path libraries_source=$(path_libraries) libraries_destination="$(package_path 'PKG_BIN')$(path_game_data)/bin" mkdir --parents "$libraries_destination" for library_file in \ 'filesystem_stdio.so' \ 'launcher.so' do ln --symbolic "${libraries_source}/${library_file}" "$libraries_destination" done # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-deaths-life.sh0000755000000000000000000000656214471751340014356 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # Death’s Life # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20201023.4 # Set game-specific variables GAME_ID='deaths-life' GAME_NAME='Deathʼs Life' ARCHIVE_ITCH='deaths-life-win.zip' ARCHIVE_ITCH_URL='https://umbugames.itch.io/deaths-life' ARCHIVE_ITCH_MD5='6a5742a023b47110d9eb3c47388b262b' ARCHIVE_ITCH_SIZE='290000' ARCHIVE_ITCH_VERSION='1.0-itch' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='deaths?life.exe deaths?life_data/plugins deaths?life_data/managed deaths?life_data/mono steam_api64.dll' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='deaths?life_data' DATA_DIRS='deaths?life_data/save' APP_MAIN_TYPE='wine' APP_MAIN_EXE='deaths life.exe' APP_MAIN_ICON='deaths life.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" set_standard_permissions "$PLAYIT_WORKDIR/gamedata" tolower "$PLAYIT_WORKDIR/gamedata" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-deep-sky-derelicts.sh0000755000000000000000000000704214471751340015660 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # 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. ### ### # Deep Sky Derelicts # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20211215.1 # Set game-specific variables GAME_ID='deep-sky-derelicts' GAME_NAME='Deep Sky Derelicts' ARCHIVE_BASE_0='deep_sky_derelicts_1_5_3_37791.sh' ARCHIVE_BASE_0_MD5='a55656f3033c2d339d0cbaeba7503270' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='1200000' ARCHIVE_BASE_0_VERSION='1.5.3-gog37791' ARCHIVE_BASE_0_URL='https://www.gog.com/game/deep_sky_derelicts' UNITY3D_NAME='Deep Sky Derelicts' CONTENT_PATH_DEFAULT='data/noarch/game' ARCHIVE_DOC_DATA_PATH="$CONTENT_PATH_DEFAULT" ARCHIVE_DOC_DATA_FILES=' LICENSE README.txt' ARCHIVE_GAME_BIN_PATH="$CONTENT_PATH_DEFAULT" ARCHIVE_GAME_BIN_FILES=' Deep?Sky?Derelicts.x86_64 Deep?Sky?Derelicts_Data/MonoBleedingEdge Deep?Sky?Derelicts_Data/Plugins' ARCHIVE_GAME_DATA_PATH="$CONTENT_PATH_DEFAULT" ARCHIVE_GAME_DATA_FILES=' Deep?Sky?Derelicts_Data' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6 libz.so.1 libgtk-x11-2.0.so.0 libgdk_pixbuf-2.0.so.0 libgobject-2.0.so.0 libglib-2.0.so.0" # Load common functions target_version='2.14' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-defenders-quest.sh0000755000000000000000000000414414471751340015261 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Defender's Quest # send your bug reports to contact@dotslashplay.it ### script_version=20230629.1 GAME_ID='defenders-quest' GAME_NAME='Defenderʼs Quest: Valley of the Forgotten' ARCHIVE_BASE_0='defender_s_quest_en_dx_2_2_6_21273.sh' ARCHIVE_BASE_0_MD5='32b2dbbdcd8cfd697e15002ad9f62710' ARCHIVE_BASE_0_SIZE='500000' ARCHIVE_BASE_0_VERSION='2.2.6-gog21273' ARCHIVE_BASE_0_URL='https://www.gog.com/game/defenders_quest' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_FILES=' zlib.dso regexp.dso std.dso lime.ndll steamwrap.ndll libsteam_api.so' CONTENT_GAME_BIN_FILES=' crashdumper flixel manifest DefendersQuest LevelEditor steam_appid.txt' CONTENT_GAME_DATA_FILES=' assets' APP_MAIN_EXE='DefendersQuest' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6' # Load common functions target_version='2.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 . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-delores-a-thimbleweed-park-miniadventure.sh0000755000000000000000000000455314471751340022134 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Delores: A Thimbleweed Park Mini-Adventure # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220322.4 # Set game-specific variables GAME_ID='delores-a-thimbleweed-park-mini-adventure' GAME_NAME='Delores: A Thimbleweed Park Mini-Adventure' ARCHIVE_BASE_0='setup_delores_a_thimbleweed_park_mini-adventure_1.1.191_(64bit)_(38487).exe' ARCHIVE_BASE_0_MD5='30b609714d47171a84c8d41c1a1c038a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='77000' ARCHIVE_BASE_0_VERSION='1.1.1.191-gog38487' ARCHIVE_BASE_0_URL='https://www.gog.com/game/delores_a_thimbleweed_park_miniadventure' CONTENT_PATH_DEFAULT='.' ARCHIVE_GAME_BIN_FILES=' *.dll delores.exe' ARCHIVE_GAME_DATA_FILES=' delores.ggpack1 delores.ico delores.rc' APP_MAIN_TYPE='wine' APP_MAIN_EXE='delores.exe' APP_MAIN_ICON='delores.ico' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID wine" # The game expects to be running on top of Windows ≥ 10 APP_WINETRICKS='win10' PKG_BIN_DEPS="$PKG_BIN_DEPS winetricks" # A Windows native build of d3dcompiler is required APP_WINETRICKS="$APP_WINETRICKS d3dcompiler_47" # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-deltarune-chapter-1.sh0000755000000000000000000000701014471751340015723 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2018-2021, BetaRays # 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. ### ### # Deltarune - Chapter 1 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210928.2 # Set game-specific variables GAME_ID='deltarune-chapter-1' GAME_NAME='Deltarune - Chapter 1' ARCHIVE_BASE_0='SURVEY_PROGRAM_WINDOWS_ENGLISH.exe' ARCHIVE_BASE_0_MD5='2f92f4ad09d41287b36650aaf1e5359e' ARCHIVE_BASE_0_TYPE='nullsoft-installer' ARCHIVE_BASE_0_VERSION='1.0-deltarune' ARCHIVE_BASE_0_SIZE='95000' ARCHIVE_DOC_DATA_PATH='.' ARCHIVE_DOC_DATA_FILES='license.txt' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='deltarune.exe' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES=' *.dat *.ogg data.win mus lang' APP_MAIN_TYPE='wine' APP_MAIN_EXE='deltarune.exe' APP_MAIN_ICON='deltarune.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Use persistent storage for user data APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/$(id -un)/Local Settings/Application Data/DELTARUNE' DATA_DIRS="$DATA_DIRS ./userdata" # Load common functions target_version='2.14' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" tolower "$PLAYIT_WORKDIR/gamedata" prepare_package_layout # Delete temporary files rm --recursive "$PLAYIT_WORKDIR/gamedata" # Include game icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-demetrios.sh0000755000000000000000000000407314471751340014157 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=20230818.1 GAME_ID='demetrios' GAME_NAME='Demetrios - The Big Cynical Adventure' ARCHIVE_BASE_0='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_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libcurl-gnutls.so.4 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libpthread.so.0 librt.so.1 libssl.so.1.0.0 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 libz.so.1' # Load common functions 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-deponia.sh0000755000000000000000000001350614471751340013604 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Deponia series: # - Deponia 1 # - Deponia 2 # - Deponia 3 # send your bug reports to contact@dotslashplay.it ### script_version=20231017.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' 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' ## 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' 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 . "$PLAYIT_LIB2" # Check for the presence of optional extra archives case "$(current_archive)" in ('ARCHIVE_BASE_DEPONIA2_'*) ARCHIVE_OPTIONAL_ICONS_0_NAME='deponia-2_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_0_MD5='4469f0e85881f0db2c266dcb6222717c' ARCHIVE_OPTIONAL_ICONS_0_URL='https://downloads.dotslashplay.it/resources/deponia-2' ;; ('ARCHIVE_BASE_DEPONIA3_'*) ARCHIVE_OPTIONAL_ICONS_0_NAME='deponia-3_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_0_MD5='d57dfcd4b23ff2c7f4163b9db20329f2' ARCHIVE_OPTIONAL_ICONS_0_URL='https://downloads.dotslashplay.it/resources/deponia-3' ;; esac if [ -n "${ARCHIVE_OPTIONAL_ICONS_0_NAME:-}" ]; then archive_initialize_optional \ 'ARCHIVE_ICONS' \ 'ARCHIVE_OPTIONAL_ICONS_0' fi # Extract game data archive_extraction_default if archive_is_available 'ARCHIVE_ICONS'; then archive_extraction 'ARCHIVE_ICONS' fi # Include game data if archive_is_available 'ARCHIVE_ICONS'; then case "$(current_archive)" in ('ARCHIVE_BASE_DEPONIA2_'*) CONTENT_ICONS_DATA_PATH='.' CONTENT_ICONS_DATA_FILES=' 16x16 32x32 48x48 256x256' ;; ('ARCHIVE_BASE_DEPONIA3_'*) CONTENT_ICONS_DATA_PATH='.' CONTENT_ICONS_DATA_FILES=' 16x16 32x32 48x48 256x256' ;; esac content_inclusion 'ICONS_DATA' 'PKG_DATA' "$(path_icons)" else set_current_package 'PKG_DATA' icons_inclusion fi content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-detective-gallo.sh0000755000000000000000000000372114471751340015233 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 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220831.2 GAME_ID='detective-gallo' GAME_NAME='Detective Gallo' ARCHIVE_BASE_0='setup_detective_gallo_1.21_(29213).exe' ARCHIVE_BASE_0_MD5='8e11f1d9d90468d1835cc68da7acb604' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='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='.' ARCHIVE_GAME_MAIN_FILES=' acsetup.cfg agsd3dvsync.dll *.0?? *.exe *.vox *.tra' ARCHIVE_DOC_MAIN_FILES=' docs' APP_MAIN_TYPE='scummvm' APP_MAIN_SCUMMID='ags:detectivegallo' APP_MAIN_ICON='detective gallo.exe' PKG_MAIN_DEPS='scummvm' # Load common functions target_version='2.17' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons icons_inclusion # Include game data prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-detective-grimoire.sh0000755000000000000000000000606414471751340015755 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=20230220.4 GAME_ID='detective-grimoire' GAME_NAME='Detective Grimoire' ARCHIVE_BASE_0='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' USER_PERSISTENT_DIRECTORIES=' .adobe .appdata .macromedia' 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_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 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' # Use fake $HOME to fetch/store Adobe Air settings APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use fake $HOME to fetch/store Adobe Air settings export HOME="$USER_PERSISTENT_PATH"' # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Load shipped preload shim APP_MAIN_PRERUN="$APP_MAIN_PRERUN # Load shipped preload shim export LD_PRELOAD='$(path_libraries)/libpreload.so'" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" set_standard_permissions . ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-detention.sh0000755000000000000000000000450014471751340014150 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Anna Lea set -o errexit ### # Detention # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20221203.1 # Set game-specific variables GAME_ID='detention' GAME_NAME='Detention' ARCHIVE_BASE_0='Detention-linux(7821293f).zip' ARCHIVE_BASE_0_MD5='44f4a6847260f6ef460b4e44239e1859' ARCHIVE_BASE_0_TYPE='zip' ARCHIVE_BASE_0_SIZE='2200000' ARCHIVE_BASE_0_VERSION='7821293f' ARCHIVE_BASE_0_URL='https://shop.redcandlegames.com/games/detention' ARCHIVE_GAME_BIN_PATH='Detention' ARCHIVE_GAME_BIN_FILES='Detention.x64 Detention_Data/Mono/x86_64 Detention_Data/Plugins/x86_64' ARCHIVE_GAME_DATA_PATH='Detention' ARCHIVE_GAME_DATA_FILES='Detention_Data' APP_MAIN_TYPE='native' APP_MAIN_EXE='Detention.x64' APP_MAIN_ICON='Detention_Data/Resources/UnityPlayer.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="${PKG_DATA_ID} glibc libgdk-x11-2.0.so.0 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libstdc++ libz.so.1" # Use a per-session dedicated file for logs APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a per-session dedicated file for logs mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "${PLAYIT_WORKDIR}" # Print instructions print_instructions exit 0 games/play-dex.sh0000755000000000000000000000424414471751340012744 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2020 Hoël Bézier set -o errexit ### # Dex # send your bug reports to contact@dotslashplay.it ### script_version=20231016.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='dex-game' GAME_NAME='Dex' ARCHIVE_BASE_1_NAME='dex_en_6_0_0_0_build_5553_17130.sh' ARCHIVE_BASE_1_MD5='3d6f8797fab72dcb867c92bf5a84b4dd' ARCHIVE_BASE_1_SIZE='6300000' ARCHIVE_BASE_1_VERSION='6.0.0.0.5553-gog17130' ARCHIVE_BASE_1_URL='https://www.gog.com/game/dex' ARCHIVE_BASE_0_NAME='gog_dex_2.3.0.4.sh' ARCHIVE_BASE_0_MD5='199a1acc59879124e8e1c532909fd879' ARCHIVE_BASE_0_SIZE='6200000' ARCHIVE_BASE_0_VERSION='5.4.0.0-gog2.3.0.4' UNITY3D_NAME='Dex' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_DOC_DATA_PATH='data/noarch/docs' CONTENT_DOC_DATA_FILES=' Controller_readme.pdf' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data PKG='PKG_DATA' icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-dicey-dungeons.sh0000755000000000000000000000507214471751340015101 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 ahub # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit script_version=20230108.1 GAME_ID='dicey-dungeons' GAME_NAME='Dicey Dungeons' ARCHIVE_BASE_1='dicey-dungeons-linux64.zip' ARCHIVE_BASE_1_MD5='7561697f602e3a0af054569e3a8114b3' ARCHIVE_BASE_1_SIZE='110000' ARCHIVE_BASE_1_VERSION='1.11-itch.2021.03.18' ARCHIVE_BASE_1_URL='https://terrycavanagh.itch.io/dicey-dungeons' ARCHIVE_BASE_0='dicey-dungeons-linux64.zip' ARCHIVE_BASE_0_MD5='14879aa94aef2291d6aec0c4c9e760c5' ARCHIVE_BASE_0_SIZE='450000' ARCHIVE_BASE_0_VERSION='1.10-itch.2020.11.05' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' diceydungeons lime.ndll' CONTENT_GAME_DATA_FILES=' data manifest mods soundstuff' APP_MAIN_EXE='diceydungeons' APP_MAIN_ICON='data/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6' # Build 512×512 icon from the 1024×1024 provided one SCRIPT_DEPS="$SCRIPT_DEPS convert" # Load common functions target_version='2.20' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Build 512×512 icon from the 1024×1024 provided one icon_source="$APP_MAIN_ICON" icon_destination="${APP_MAIN_ICON%.png}_512.png" convert "$icon_source" -resize 512 "$icon_destination" ) # Include game icons ## Build 512×512 icon from the 1024×1024 provided one APP_MAIN_ICON_512="${APP_MAIN_ICON%.png}_512.png" APP_MAIN_ICONS_LIST='APP_MAIN_ICON APP_MAIN_ICON_512' PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-dins-curse.sh0000755000000000000000000000373014471751340014237 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Din's Curse # send your bug reports to contact@dotslashplay.it ### script_version=20230620.2 GAME_ID='dins-curse' GAME_NAME='Dinʼs Curse' ARCHIVE_BASE_0='gog_din_s_curse_2.0.0.6.sh' ARCHIVE_BASE_0_MD5='abead770d1fe9a2c7adb6d250318b698' ARCHIVE_BASE_0_SIZE='170000' ARCHIVE_BASE_0_VERSION='1.034-gog2.0.0.6' ARCHIVE_BASE_0_URL='https://www.gog.com/game/dins_curse' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' DinsCurse' CONTENT_GAME_DATA_FILES=' DCIcon.png Assets User' CONTENT_DOC_DATA_FILES=' *.txt' APP_MAIN_EXE='DinsCurse' APP_MAIN_ICON='DCIcon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1' # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-divine-divinity.sh0000755000000000000000000000574014471751340015301 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2020 Mopi set -o errexit ### # Divine Divinity # send your bug reports to contact@dotslashplay.it ### script_version=20230330.2 GAME_ID='divine-divinity' GAME_NAME='Divine Divinity' ARCHIVES_LIST=' ARCHIVE_BASE_EN_0 ARCHIVE_BASE_FR_0' ARCHIVE_BASE_EN_0='setup_divine_divinity_2.0.0.21.exe' ARCHIVE_BASE_EN_0_MD5='3798d48f04a7a8444fd9f4c32b75b41d' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_SIZE='2400000' ARCHIVE_BASE_EN_0_VERSION='1.0062a-gog2.0.0.21' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/divine_divinity' ARCHIVE_BASE_FR_0='setup_divine_divinity_french_2.1.0.32.exe' ARCHIVE_BASE_FR_0_MD5='f755d69ad7d319fb70298844dcb3861a' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_SIZE='2400000' ARCHIVE_BASE_FR_0_VERSION='1.0062a-gog2.1.0.32' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/divine_divinity' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' *.dll *.exe sound.cfg secdrv.sys' CONTENT_GAME_L10N_FILES=' localizations dat/english dat/french config.lcl' CONTENT_GAME_DATA_FILES=' capture dat fonts global main sound static divinityevent.dat testimage.tga keylist.txt' CONTENT_DOC_DATA_FILES=' *.pdf' USER_PERSISTENT_DIRECTORIES=' dynamic global savegames' USER_PERSISTENT_FILES=' config.div config.lcl keylist.txt dat/usernotes.bin static/*.000 static/imagelists/collide.* *.cfg *.000 persist.dat' APP_MAIN_EXE='div.exe' APP_CONFIG_ID="${GAME_ID}_configuration" APP_CONFIG_NAME="${GAME_NAME} - Configuration" APP_CONFIG_CAT='Settings' APP_CONFIG_EXE='configtool.exe' PACKAGES_LIST='PKG_BIN PKG_L10N PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_ID_EN="${PKG_L10N_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID $PKG_L10N_ID" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-divinity-original-sin.sh0000755000000000000000000001357014471751340016416 0ustar rootroot#!/bin/sh # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Divinity: Original Sin # send your bug reports to contact@dotslashplay.it ### script_version=20231113.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='divinity-original-sin' GAME_NAME='Divinity: Original Sin' ARCHIVE_BASE_0_NAME='divinity_original_sin_enhanced_edition_en_2_0_119_430_ch_17075.sh' ARCHIVE_BASE_0_MD5='89f526c1030d6d352b7df65361ab71e6' ARCHIVE_BASE_0_SIZE='11000000' ARCHIVE_BASE_0_VERSION='2.0.119.430-gog17075' ARCHIVE_BASE_0_URL='https://www.gog.com/game/divinity_original_sin_enhanced_edition' CONTENT_PATH_DEFAULT='data/noarch/game' ## TODO: Check if libSDL2-2.0.so.1 can be dropped in favour of a system-provided build of libSDL2-2.0.so.0 CONTENT_LIBS_BIN_FILES=' libbink2.so libCoreLib.so libGameEngine.so libGLEW.so.1.10 libGLEW.so.1.10.0 libicudata.so.54 libicuuc.so.54 libjpeg.so.8 libjpeg.so.8.0.2 libOGLBinding.so libosiris.so.2 libRenderFramework.so libSDL2-2.0.so.1' ## The game binary is linked against libsteam_api.so, so this library can not be dropped. CONTENT_LIBS_BIN_FILES="${CONTENT_LIBS_BIN_FILES:-} libsteam_api.so" CONTENT_GAME_BIN_FILES=' EoCApp' CONTENT_GAME_L10N_EN_FILES=' Data/Localization/English.pak' CONTENT_GAME_L10N_FR_FILES=' Data/Localization/French.pak' CONTENT_GAME_DATA_VOICES_FILES=' Data/Localization/Voice.pak Data/Localization/Voice_1.pak Data/Localization/Voice_2.pak Data/Localization/Voice_3.pak Data/Localization/Voice_4.pak' CONTENT_GAME_DATA_FILES=' DigitalMap Data/Localization/Intro.pak Data/Localization/Reference.pak Data/Localization/Video.pak Data/DLC.pak Data/Effects.pak Data/Engine.pak Data/Game.pak Data/GamePlatform.pak Data/GLSLShaders.pak Data/Icons.pak Data/LowTex.pak Data/MainLSF.pak Data/Main.pak Data/Minimaps.pak Data/Sound_1.pak Data/SoundBanks.pak Data/Sound.pak Data/Textures_1.pak Data/Textures_2.pak Data/Textures.pak' FAKE_HOME_PERSISTENT_DIRECTORIES=' Larian Studios/Divinity Original Sin Enhanced Edition' APP_MAIN_EXE='EoCApp' APP_MAIN_ICON='../support/icon.png' ## The game crashes on launch when using the wayland backend of SDL, ## even when using the system-provided build of SDL. APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' # The game crashes on launch when using the wayland backend of SDL if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' PACKAGES_LIST=' PKG_BIN PKG_L10N_EN PKG_L10N_FR PKG_DATA_VOICES PKG_DATA' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_EN_ID="${PKG_L10N_ID}-en" PKG_L10N_FR_ID="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_EN_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_FR_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_DESCRIPTION='localization' PKG_L10N_EN_DESCRIPTION="$PKG_L10N_DESCRIPTION - English" PKG_L10N_FR_DESCRIPTION="$PKG_L10N_DESCRIPTION - French" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_VOICES_ID="${PKG_DATA_ID}-voices" PKG_DATA_VOICES_DESCRIPTION="$PKG_DATA_DESCRIPTION - voices" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_VOICES_ID" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_L10N_ID $PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libc++.so.1 libc++abi.so.1 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpng16.so.16 libpthread.so.0 librt.so.1 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Force the use of system-provided SDL APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN') # Force the use of the system SDL library export SDL_DYNAMIC_API='$(path_libraries_system)/libSDL2-2.0.so.0' " # Ensure availability of libpcre.so.3 case "$(option_value 'package')" in ('arch') # libpcre.so.3 is not provided from Arch Linux repositories CONTENT_LIBS_BIN_FILES="$(content_files 'LIBS_BIN') libpcre.so.3 libpcre.so.3.13.1" ;; (*) dependencies_add_native_libraries 'PKG_BIN' 'libpcre.so.3' ;; esac # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Generate the configuration of localization packages config_source='Data/Localization/language.lsx' config_pattern='id="Value" value="[A-Za-z]*" type="20"' ### English localization config_destination_en="$(package_path 'PKG_L10N_EN')$(path_game_data)/${config_source}" config_replacement_en='id="Value" value="English" type="20"' mkdir --parents "$(dirname "$config_destination_en")" sed --expression="s/${config_pattern}/${config_replacement_en}/" \ "$config_source" > "$config_destination_en" ### French localization config_destination_fr="$(package_path 'PKG_L10N_FR')$(path_game_data)/${config_source}" config_replacement_fr='id="Value" value="French" type="20"' mkdir --parents "$(dirname "$config_destination_fr")" sed --expression="s/${config_pattern}/${config_replacement_fr}/" \ "$config_source" > "$config_destination_fr" ) # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation case "${LANG%_*}" in ('fr') lang_string='version %s :' lang_en='anglaise' lang_fr='française' ;; ('en'|*) lang_string='%s version:' lang_en='English' lang_fr='French' ;; esac printf '\n' printf "$lang_string" "$lang_en" print_instructions 'PKG_BIN' 'PKG_DATA_VOICES' 'PKG_DATA' 'PKG_L10N_EN' printf "$lang_string" "$lang_fr" print_instructions 'PKG_BIN' 'PKG_DATA_VOICES' 'PKG_DATA' 'PKG_L10N_FR' # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-doctor-who-and-the-lonely-assassins.sh0000755000000000000000000000451414471751340021074 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Doctor Who: The Lonely Assassins # send your bug reports to contact@dotslashplay.it ### script_version=20230328.3 GAME_ID='doctor-who-the-lonely-assassins' GAME_NAME='Doctor Who: The Lonely Assassins' ARCHIVE_BASE_0='setup_doctor_who_the_lonely_assassins_1.840.127_(47861).exe' ARCHIVE_BASE_0_MD5='102ae49769312005075e26141250b5cc' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1500000' ARCHIVE_BASE_0_VERSION='1.840.127-gog47861' ARCHIVE_BASE_0_URL='https://www.gog.com/game/doctor_who_the_lonely_assasins' UNITY3D_NAME='doctor who the lonely assassins' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" monobleedingedge ${UNITY3D_NAME}_data/plugins ${UNITY3D_NAME}.exe unitycrashhandler64.exe galaxy64.dll galaxycsharpglue.dll unityplayer.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/LocalLow/Kaigan Games/Doctor Who_ The Lonely Assassins' USER_PERSISTENT_DIRECTORIES=' userdata' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' # Load common functions target_version='2.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 . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-dont-starve-expansions.sh0000755000000000000000000000754714471751340016630 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 mortalius # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # Don't Starve expansions: # - Reign of Giants # - Shipwrecked # send your bug reports to contact@dotslashplay.it ### script_version=20230901.2 GAME_ID='dont-starve' GAME_NAME='Donʼt Starve' EXPANSION_ID_GIANTS='reign-of-giants' EXPANSION_NAME_GIANTS='Reign of Giants' EXPANSION_ID_SHIPWRECKED='shipwrecked' EXPANSION_NAME_SHIPWRECKED='Shipwrecked' # Archives ## Reign of Giants ARCHIVE_BASE_GIANTS_1='don_t_starve_reign_of_giants_554439_66995.sh' ARCHIVE_BASE_GIANTS_1_MD5='93cbeafae249e5a5af4f25afb91ca9a5' ARCHIVE_BASE_GIANTS_1_SIZE='630000' ARCHIVE_BASE_GIANTS_1_VERSION='554439-gog66995' ARCHIVE_BASE_GIANTS_1_URL='https://www.gog.com/game/dont_starve_reign_of_giants' ARCHIVE_BASE_GIANTS_0='don_t_starve_reign_of_giants_dlc_4294041_41439.sh' ARCHIVE_BASE_GIANTS_0_MD5='8949aed4ca7eddd8179ad768dd223681' ARCHIVE_BASE_GIANTS_0_SIZE='620000' ARCHIVE_BASE_GIANTS_0_VERSION='4294041-gog41439' ARCHIVE_BASE_GIANTS_MULTIARCH_1='don_t_starve_reign_of_giants_dlc_en_20171215_17628.sh' ARCHIVE_BASE_GIANTS_MULTIARCH_1_MD5='47084ab8d5b36437e1bcb899c35bfe00' ARCHIVE_BASE_GIANTS_MULTIARCH_1_SIZE='400000' ARCHIVE_BASE_GIANTS_MULTIARCH_1_VERSION='246924-gog17628' ARCHIVE_BASE_GIANTS_MULTIARCH_0='gog_don_t_starve_reign_of_giants_dlc_2.0.0.3.sh' ARCHIVE_BASE_GIANTS_MULTIARCH_0_MD5='bd505adc70ed478a92669bc8c1c3a127' ARCHIVE_BASE_GIANTS_MULTIARCH_0_SIZE='400000' ARCHIVE_BASE_GIANTS_MULTIARCH_0_VERSION='1.0-gog2.0.0.3' ## Shipwrecked ARCHIVE_BASE_SHIPWRECKED_1='don_t_starve_shipwrecked_554439_66995.sh' ARCHIVE_BASE_SHIPWRECKED_1_MD5='0f1fcee5e80a2c7a081a0d4b39043010' ARCHIVE_BASE_SHIPWRECKED_1_SIZE='860000' ARCHIVE_BASE_SHIPWRECKED_1_VERSION='554439-gog66995' ARCHIVE_BASE_SHIPWRECKED_1_URL='https://www.gog.com/game/dont_starve_shipwrecked' ARCHIVE_BASE_SHIPWRECKED_0='don_t_starve_shipwrecked_dlc_4294041_41439.sh' ARCHIVE_BASE_SHIPWRECKED_0_MD5='ff762f9b6a3ef71e6b802fe596196925' ARCHIVE_BASE_SHIPWRECKED_0_SIZE='830000' ARCHIVE_BASE_SHIPWRECKED_0_VERSION='4294041-gog41439' ARCHIVE_BASE_SHIPWRECKED_MULTIARCH_1='don_t_starve_shipwrecked_dlc_en_20171215_17628.sh' ARCHIVE_BASE_SHIPWRECKED_MULTIARCH_1_MD5='463825173d76f294337f0ae7043d7cf6' ARCHIVE_BASE_SHIPWRECKED_MULTIARCH_1_SIZE='1200000' ARCHIVE_BASE_SHIPWRECKED_MULTIARCH_1_VERSION='246924-gog17628' ARCHIVE_BASE_SHIPWRECKED_MULTIARCH_0='gog_don_t_starve_shipwrecked_dlc_2.0.0.2.sh' ARCHIVE_BASE_SHIPWRECKED_MULTIARCH_0_MD5='b1d4152639a272a959d36eacf8cb859e' ARCHIVE_BASE_SHIPWRECKED_MULTIARCH_0_SIZE='1200000' ARCHIVE_BASE_SHIPWRECKED_MULTIARCH_0_VERSION='1.0-gog2.0.0.2' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_PATH_DEFAULT_MULTIARCH='data/noarch/game/dontstarve32' CONTENT_PATH_DEFAULT_GIANTS_MULTIARCH="$CONTENT_PATH_DEFAULT_MULTIARCH" CONTENT_PATH_DEFAULT_SHIPWRECKED_MULTIARCH="$CONTENT_PATH_DEFAULT_MULTIARCH" CONTENT_GAME_MAIN_FILES=' data manifest_dlc????.json' PKG_MAIN_DEPS="$GAME_ID" # Load common functions target_version='2.25' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-dont-starve.sh0000755000000000000000000000577514471751340014444 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2021 Hoël Bézier set -o errexit ### # Don't Starve # send your bug reports to contact@dotslashplay.it ### script_version=20231112.4 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='dont-starve' GAME_NAME='Donʼt Starve' ARCHIVE_BASE_1_NAME='don_t_starve_554439_66995.sh' ARCHIVE_BASE_1_MD5='783646e973fdcc1fefad470da14f6855' ARCHIVE_BASE_1_SIZE='660000' ARCHIVE_BASE_1_VERSION='554439-gog66995' ARCHIVE_BASE_1_URL='https://www.gog.com/game/dont_starve' ARCHIVE_BASE_0_NAME='don_t_starve_4294041_41439.sh' ARCHIVE_BASE_0_MD5='05baa7fb659f79d4676a59bf3a64fc76' ARCHIVE_BASE_0_SIZE='950000' ARCHIVE_BASE_0_VERSION='4294041-gog41439' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/bin/lib64" CONTENT_LIBS_BIN_FILES=' libfmodevent64.so libfmodevent64-4.44.??.so libfmodex64.so libfmodex64-4.44.??.so' ## Using system-provided SDL, no mouse cursor is displayed and mouse inputs are ignored. CONTENT_LIBS_BIN_FILES="${CONTENT_LIBS_BIN_FILES:-} libSDL2.so libSDL2-2.0.so.0 libSDL2-2.0.so.0.0.0" CONTENT_GAME_BIN_FILES=' bin/dontstarve *.json' CONTENT_GAME_DATA_FILES=' data mods dontstarve.xpm' USER_PERSISTENT_DIRECTORIES=' mods' APP_MAIN_EXE='bin/dontstarve' APP_MAIN_ICON='dontstarve.xpm' ## The shipped build of SDL2 has no support for the wayland backend. APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' # The shipped build of SDL2 has no support for the wayland backend if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' ## Run the game binary from its parent directory APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' # Run the game binary from its parent directory cd "$(dirname "$APP_EXE")" APP_EXE=$(basename "$APP_EXE") ' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libcurl-gnutls.so.4 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-donut-county.sh0000755000000000000000000000420114471751340014625 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Donut County # send your bug reports to contact@dotslashplay.it ### script_version=20230328.4 GAME_ID='donut-county' GAME_NAME='Donut County' ARCHIVE_BASE_0='setup_donut_county_1.1.0_(64bit)_(25035).exe' ARCHIVE_BASE_0_MD5='4a4b84b7ac128e5af59b64a4bfffabe5' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='460000' ARCHIVE_BASE_0_VERSION='1.1.0-gog25035' ARCHIVE_BASE_0_URL='https://www.gog.com/game/donut_county' UNITY3D_NAME='donutcounty' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_data/mono ${UNITY3D_NAME}_data/plugins *.dll *.exe" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Annapurna Interactive/Donut County' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files rm --force --recursive \ '__redist' \ 'commonappdata' \ 'tmp' ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-doodle-god.sh0000755000000000000000000000626514471751340014206 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Doodle God # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210125.1 # Set game-specific variables GAME_ID='doodle-god' GAME_NAME='Doodle God' ARCHIVE_INDIEGALA='doodle-god_win.zip' ARCHIVE_INDIEGALA_MD5='cdba1abf1c909c7145da975dac82945d' ARCHIVE_INDIEGALA_VERSION='3.1.64-indiegala1' ARCHIVE_INDIEGALA_SIZE='160000' ARCHIVE_INDIEGALA_TYPE='rar' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='DoodleGod.exe *.dll' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='data' DATA_DIRS='./temp' APP_MAIN_TYPE='wine' APP_MAIN_EXE='DoodleGod.exe' APP_MAIN_ICON='DoodleGod.exe' PACKAGES_LIST='PKG_DATA PKG_BIN' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ID="$GAME_ID" PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine glx" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout rm --recursive "$PLAYIT_WORKDIR/gamedata" # Get game icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-door-kickers.sh0000755000000000000000000000501314471751340014553 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 mortalius # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Door Kickers # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220702.1 GAME_ID='door-kickers' GAME_NAME='Door Kickers' ARCHIVE_BASE_GOG_0='gog_door_kickers_2.7.0.11.sh' ARCHIVE_BASE_GOG_0_MD5='29efa58e4a61060b0b1211dddd2476a1' ARCHIVE_BASE_GOG_0_TYPE='mojosetup' ARCHIVE_BASE_GOG_0_SIZE='1400000' ARCHIVE_BASE_GOG_0_VERSION='1.0.9-gog2.7.0.11' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/door_kickers' ARCHIVE_BASE_HUMBLE_0='DoorKickers1448920440.tar.gz' ARCHIVE_BASE_HUMBLE_0_MD5='0126db31867ae0e7a7eceee54de4a177' ARCHIVE_BASE_HUMBLE_0_SIZE='1400000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0.9-humble151130' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/door-kickers' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='DoorKickers' ARCHIVE_DOC_DATA_FILES=' *.txt' ARCHIVE_GAME_BIN_FILES=' DoorKickers' ARCHIVE_GAME_DATA_FILES=' data linux_libs mods' APP_MAIN_TYPE='native' APP_MAIN_EXE='DoorKickers' APP_MAIN_ICON_GOG='data/noarch/support/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6 libGLU.so.1 libopenal.so.1 libSDL2-2.0.so.0" # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Include game icon PKG='PKG_DATA' ( APP_MAIN_ICON=$(get_context_specific_value 'archive' 'APP_MAIN_ICON') if [ -n "$APP_MAIN_ICON" ]; then icons_get_from_workdir 'APP_MAIN' fi ) # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-dorfromantik.sh0000755000000000000000000000356214471751340014665 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Dorfromantik # send your bug reports to contact@dotslashplay.it ### script_version=20231018.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='dorfromantik' GAME_NAME='Dorfromantik' ARCHIVE_BASE_0_NAME='setup_dorfromantik_1.0.5_(64bit)_(55407).exe' ARCHIVE_BASE_0_MD5='2d22a2a6d6d0e7b0527f48ae055ba138' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_dorfromantik_1.0.5_(64bit)_(55407)-1.bin' ARCHIVE_BASE_0_PART1_MD5='debd7fbad4a3a1aaed0f143ec7c2327c' ARCHIVE_BASE_0_SIZE='630000' ARCHIVE_BASE_0_VERSION='1.0.5-gog55407' ARCHIVE_BASE_0_URL='https://www.gog.com/en/game/dorfromantik' UNITY3D_NAME='dorfromantik' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Toukana Interactive/Dorfromantik' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data PKG='PKG_DATA' icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-down-in-bermuda.sh0000755000000000000000000000717014471751340015155 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Down in Bermuda # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210525.1 # Set game-specific variables GAME_ID='down-in-bermuda' GAME_NAME='Down in Bermuda ' ARCHIVE_BASE_0='setup_down_in_bermuda_1.6.3_(340)_(64bit)_(44306).exe' ARCHIVE_BASE_0_MD5='814b6cc189d0277899ac3dce355aec4f' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='1.6.3.340-gog44306' ARCHIVE_BASE_0_SIZE='490000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/down_in_bermuda' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='downinbermuda.exe monobleedingedge downinbermuda_data/managed galaxy64.dll galaxycsharpglue.dll unitycrashhandler64.exe unityplayer.dll' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='downinbermuda_data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='downinbermuda.exe' APP_MAIN_ICON='downinbermuda.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="${PKG_DATA_ID} wine glx" # Use a per-session dedicated file for logs APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a per-session dedicated file for logs mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Extract icons PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Clean up temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-dr-livingstone-i-presume.sh0000755000000000000000000000605714471751340017040 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Dr Livingstone, I Presume? # send your bug reports to contact@dotslashplay.it ### script_version=20230706.1 GAME_ID='dr-livingstone-i-presume' GAME_NAME='Dr Livingstone, I Presume?' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" # Archives ## Full game ARCHIVE_BASE_0='setup_dr_livingstone_i_presume_220419_0803_(55205).exe' ARCHIVE_BASE_0_MD5='d6fdb1ce7ee00f5068b1d93f4592dad0' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_dr_livingstone_i_presume_220419_0803_(55205)-1.bin' ARCHIVE_BASE_0_PART1_MD5='36b0f92cde1b8ccbd42f339fbc752ada' ARCHIVE_BASE_0_SIZE='5300000' ARCHIVE_BASE_0_VERSION='2022.04.19-gog55205' ARCHIVE_BASE_0_URL='https://www.gog.com/game/dr_livingstone_i_presume' ## Demo ## This installer is no longer available from gog.com ARCHIVE_BASE_DEMO_0='setup_dr_livingstone_i_presume_demo_210726_1631_(48828).exe' ARCHIVE_BASE_DEMO_0_MD5='57f69d1473e4c24706fe2cc70c56d62b' ARCHIVE_BASE_DEMO_0_TYPE='innosetup' ARCHIVE_BASE_DEMO_0_PART1='setup_dr_livingstone_i_presume_demo_210726_1631_(48828)-1.bin' ARCHIVE_BASE_DEMO_0_PART1_MD5='4adc9914d1629ff3849f9d1d1f139b5c' ARCHIVE_BASE_DEMO_0_SIZE='3800000' ARCHIVE_BASE_DEMO_0_VERSION='2021.07.26-gog48828' UNREALENGINE4_NAME='drlivingstone' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" engine ${UNREALENGINE4_NAME}/binaries ${UNREALENGINE4_NAME}/plugins ${UNREALENGINE4_NAME}.exe" CONTENT_GAME_DATA_FILES=" ${UNREALENGINE4_NAME}" WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=" users/\${USER}/AppData/Local/${UNREALENGINE4_NAME}/Saved" APP_MAIN_EXE="${UNREALENGINE4_NAME}.exe" APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=101' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPS_DEMO="$PKG_DATA_ID_DEMO" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' # Load common functions 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-dracula-1-the-resurrection.sh0000755000000000000000000001002014471751340017222 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine Le Gonidec # Copyright (c) 2018-2020, Mopi # 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. ### ### # Dracula: The Resurrection # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20201129.10 # Set game-specific variables GAME_ID='dracula-1-the-resurrection' GAME_NAME='Dracula: The Resurrection' ARCHIVES_LIST=' ARCHIVE_GOG_0' ARCHIVE_GOG_0='setup_dracula_the_resurrection_2.1.0.5.exe' ARCHIVE_GOG_0_URL='https://www.gog.com/game/dracula_trilogy' ARCHIVE_GOG_0_MD5='4f3ac9ea7b645ec3bc0ec2c9de24be79' ARCHIVE_GOG_0_SIZE='1400000' ARCHIVE_GOG_0_VERSION='1.0-gog2.1.0.5' ARCHIVE_GOG_0_TYPE='rar' ARCHIVE_GOG_0_PART1='setup_dracula_the_resurrection_2.1.0.5.bin' ARCHIVE_GOG_0_PART1_MD5='284f93ed3799267604cc1f25a2329699' ARCHIVE_GOG_0_PART1_TYPE='rar' ARCHIVE_DOC_DATA_PATH='game' ARCHIVE_DOC_DATA_FILES='*.pdf' ARCHIVE_GAME_BIN_PATH='game' ARCHIVE_GAME_BIN_FILES='dracula.exe *.dll' ARCHIVE_GAME_DATA_PATH='game' ARCHIVE_GAME_DATA_FILES='*.tst *.vr *.pcx *.wav *.lst *.4xm a18tst compiler.dat cursor1.gif cursor2.gif llload.bmp nomouse.com nomouse.pif nomouse.sp retour.gif signal.gif test.sav dracula.ico' DATA_FILES='./Saved_?.bin' APP_MAIN_TYPE='wine' APP_MAIN_EXE='dracula.exe' APP_MAIN_ICON='dracula.ico' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Run the game in a virtual WINE desktop to avoid messed up display APP_WINETRICKS="$APP_WINETRICKS vd=\$(xrandr|awk '/\\*/ {print \$1}')" # Set Window version to Windows 98, otherwise menu can not be opened in-game APP_WINETRICKS="$APP_WINETRICKS win98" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE_PART1" set_standard_permissions "$PLAYIT_WORKDIR/gamedata" tolower "$PLAYIT_WORKDIR/gamedata" prepare_package_layout # Extract icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary files rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-dracula-love-kills.sh0000755000000000000000000000402514471751340015653 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Dracula: Love Kills # send your bug reports to contact@dotslashplay.it ### script_version=20230328.2 GAME_ID='dracula-love-kills' GAME_NAME='Dracula: Love Kills' ARCHIVE_BASE_0='setup_dracula_love_kills_1.0_(31713).exe' ARCHIVE_BASE_0_MD5='df1dc685677ed169914c9a1d96f47e32' ARCHIVE_BASE_0_SIZE='470000' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='1.0-gog31713' ARCHIVE_BASE_0_URL='https://www.gog.com/game/dracula_love_kills' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' d3dx9_42.dll msvcr71.dll dracula_love_kills.exe' CONTENT_GAME_DATA_FILES=' 000 branding cursor shaders.0050 game.ini user.ini data.txt' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/Frogwares/Dracula. Love Kills' APP_MAIN_EXE='dracula_love_kills.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-dragon-age-origins.sh0000755000000000000000000001717414471751340015646 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Dragon Age: Origins # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220916.2 GAME_ID='dragon-age-origins' GAME_NAME='Dragon Age: Origins' ARCHIVE_BASE_0='setup_dragon_age_origins_ultimate_2.1.0.4.exe' ARCHIVE_BASE_0_MD5='2bfdbc94523ef4c21476f64ef8029479' ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS='--progress=1 --silent --lowercase --gog' ARCHIVE_BASE_0_PART1='setup_dragon_age_origins_ultimate_2.1.0.4-1.bin' ARCHIVE_BASE_0_PART1_MD5='b6e68b1b3b11fdddea809a5f11368036' ARCHIVE_BASE_0_PART1_TYPE='rar' ARCHIVE_BASE_0_PART2='setup_dragon_age_origins_ultimate_2.1.0.4-2.bin' ARCHIVE_BASE_0_PART2_MD5='71d813d6827941a90422a40088d64b78' ARCHIVE_BASE_0_PART3='setup_dragon_age_origins_ultimate_2.1.0.4-3.bin' ARCHIVE_BASE_0_PART3_MD5='2ff9cc2bb41435429ee6277106a6a568' ARCHIVE_BASE_0_PART4='setup_dragon_age_origins_ultimate_2.1.0.4-4.bin' ARCHIVE_BASE_0_PART4_MD5='a25c58b43a2e468fcf72446f57542115' ARCHIVE_BASE_0_PART5='setup_dragon_age_origins_ultimate_2.1.0.4-5.bin' ARCHIVE_BASE_0_PART5_MD5='4ce5f6dceb01c9a1fc85c759c436b7b2' ARCHIVE_BASE_0_PART6='setup_dragon_age_origins_ultimate_2.1.0.4-6.bin' ARCHIVE_BASE_0_PART6_MD5='e2d13b236af30f210e0eb65aec5d137e' ARCHIVE_BASE_0_VERSION='1.05-gog2.1.0.4' ARCHIVE_BASE_0_SIZE='39000000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/dragon_age_origins' ## Add an explicit dependency on unar. ## This should no longer be required once the following issue is fixed: ## https://forge.dotslashplay.it/play.it/scripts/-/issues/335 SCRIPT_DEPS="$SCRIPT_DEPS unar" CONTENT_PATH_DEFAULT='game' CONTENT_GAME_BIN_FILES=' bin_ship daoriginslauncher.exe' CONTENT_GAME_DATA_FILES=' addins data modules offers packages' CONTENT_DOC_DATA_FILES=' manual.pdf' CONTENT_DOC0_DATA_PATH="${CONTENT_PATH_DEFAULT}/docs" CONTENT_DOC0_DATA_FILES=' *' CONTENT_GAME_ENVIRONMENT_FILES=' addins/*/*/env packages/*/env' CONTENT_GAME_MOVIES_FILES=' addins/*/core/data/movies modules/*/data/movies packages/*/data/movies' CONTENT_GAME_L10N_DE_FILES=' */de-de */*_de-de*' CONTENT_GAME_L10N_EN_FILES=' */en-us */*_en-us*' CONTENT_GAME_L10N_FR_FILES=' */fr-fr */*_fr-fr*' CONTENT_GAME_L10N_RU_FILES=' */ru-ru */*_ru-ru*' CONTENT_GAME_L10N_PL_FILES=' */pl-pl */*_pl-pl*' CONTENT_GAME_L10N_CS_FILES=' */cs-cz */*_cs-cz*' CONTENT_GAME_L10N_ES_FILES=' */es-es */*_es-es*' CONTENT_GAME_L10N_HU_FILES=' */hu-hu */*_hu-hu*' CONTENT_GAME_L10N_IT_FILES=' */it-it */*_it-it*' CONTENT_SETTINGS_PATH="${CONTENT_PATH_DEFAULT}/../support/userdocs" CONTENT_SETTINGS_FILES=' *' CONTENT_PHYSX_PATH="${CONTENT_PATH_DEFAULT}/redist" CONTENT_PHYSX_FILES=' physx_9.09.0408_systemsoftware.exe' APP_WINE_LINK_DIRS=' userdata:users/${USER}/Documents/BioWare/Dragon Age' USER_PERSISTENT_DIRECTORIES=' userdata/characters userdata/settings' APP_MAIN_TYPE='wine' APP_MAIN_EXE='bin_ship/daorigins.exe' APP_MAIN_ICON="$APP_MAIN_EXE" APP_CONFIG_ID="${GAME_ID}-config" APP_CONFIG_NAME="$GAME_NAME - Configuration" APP_CONFIG_CAT='Settings' APP_CONFIG_TYPE='wine' APP_CONFIG_EXE='bin_ship/daoriginsconfig.exe' APP_CONFIG_ICON="$APP_CONFIG_EXE" PACKAGES_LIST='PKG_BIN PKG_L10N_DE PKG_L10N_EN PKG_L10N_FR PKG_L10N_RU PKG_L10N_PL PKG_L10N_CS PKG_L10N_ES PKG_L10N_HU PKG_L10N_IT PKG_ENVIRONMENT PKG_MOVIES PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_ENVIRONMENT_ID="${GAME_ID}-environment" PKG_ENVIRONMENT_DESCRIPTION='environment' PKG_MOVIES_ID="${GAME_ID}-movies" PKG_MOVIES_DESCRIPTION='movies' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_DE_ID="${PKG_L10N_ID}-de" PKG_L10N_DE_PROVIDE="$PKG_L10N_ID" PKG_L10N_DE_DESCRIPTION='German localization' PKG_L10N_DE_DEPS="$GAME_ID" PKG_L10N_EN_ID="${PKG_L10N_ID}-en" PKG_L10N_EN_PROVIDE="$PKG_L10N_ID" PKG_L10N_EN_DESCRIPTION='English localization' PKG_L10N_EN_DEPS="$GAME_ID" PKG_L10N_FR_ID="${PKG_L10N_ID}-fr" PKG_L10N_FR_PROVIDE="$PKG_L10N_ID" PKG_L10N_FR_DESCRIPTION='French localization' PKG_L10N_FR_DEPS="$GAME_ID" PKG_L10N_RU_ID="${PKG_L10N_ID}-ru" PKG_L10N_RU_PROVIDE="$PKG_L10N_ID" PKG_L10N_RU_DESCRIPTION='Russian localization' PKG_L10N_RU_DEPS="$GAME_ID" PKG_L10N_PL_ID="${PKG_L10N_ID}-pl" PKG_L10N_PL_PROVIDE="$PKG_L10N_ID" PKG_L10N_PL_DESCRIPTION='Polish localization' PKG_L10N_PL_DEPS="$GAME_ID" PKG_L10N_CS_ID="${PKG_L10N_ID}-cs" PKG_L10N_CS_PROVIDE="$PKG_L10N_ID" PKG_L10N_CS_DESCRIPTION='Czech localization' PKG_L10N_CS_DEPS="$GAME_ID" PKG_L10N_ES_ID="${PKG_L10N_ID}-es" PKG_L10N_ES_PROVIDE="$PKG_L10N_ID" PKG_L10N_ES_DESCRIPTION='Spanish localization' PKG_L10N_ES_DEPS="$GAME_ID" PKG_L10N_HU_ID="${PKG_L10N_ID}-hu" PKG_L10N_HU_PROVIDE="$PKG_L10N_ID" PKG_L10N_HU_DESCRIPTION='Hungarian localization' PKG_L10N_HU_DEPS="$GAME_ID" PKG_L10N_IT_ID="${PKG_L10N_ID}-it" PKG_L10N_IT_PROVIDE="$PKG_L10N_ID" PKG_L10N_IT_DESCRIPTION='Italian localization' PKG_L10N_IT_DEPS="$GAME_ID" PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_ENVIRONMENT_ID $PKG_MOVIES_ID $PKG_DATA_ID" # Install shipped build of PhysX APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Install shipped build of PhysX if [ ! -e physx/installed ]; then wine physx/physx_9.09.0408_systemsoftware.exe touch physx/installed fi' # Load common functions target_version='2.18' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" tolower . ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default content_inclusion 'SETTINGS' 'PKG_DATA' "${PATH_GAME}/userdata/settings" content_inclusion 'PHYSX' 'PKG_BIN' "${PATH_GAME}/physx" # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Print instructions common_packages='PKG_ENVIRONMENT PKG_MOVIES PKG_DATA PKG_BIN' case "${LANG%_*}" in ('fr') lang_string='version %s :' lang_de='allemande' lang_en='anglaise' lang_fr='française' lang_ru='russe' lang_pl='polonaise' lang_cs='tchèque' lang_es='espagnole' lang_hu='hongroise' lang_it='italienne' ;; ('en'|*) lang_string='%s version:' lang_de='German' lang_en='English' lang_fr='French' lang_ru='Russian' lang_pl='Polish' lang_cs='Czech' lang_es='Spanish' lang_hu='Hungarian' lang_it='Italian' ;; esac printf '\n' printf "$lang_string" "$lang_de" print_instructions $common_packages 'PKG_L10N_DE' printf "$lang_string" "$lang_en" print_instructions $common_packages 'PKG_L10N_EN' printf "$lang_string" "$lang_fr" print_instructions $common_packages 'PKG_L10N_FR' printf "$lang_string" "$lang_ru" print_instructions $common_packages 'PKG_L10N_RU' printf "$lang_string" "$lang_pl" print_instructions $common_packages 'PKG_L10N_PL' printf "$lang_string" "$lang_cs" print_instructions $common_packages 'PKG_L10N_CS' printf "$lang_string" "$lang_es" print_instructions $common_packages 'PKG_L10N_ES' printf "$lang_string" "$lang_hu" print_instructions $common_packages 'PKG_L10N_HU' printf "$lang_string" "$lang_it" print_instructions $common_packages 'PKG_L10N_IT' # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-dragonsphere.sh0000755000000000000000000000413614471751340014645 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Dragonsphere # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220425.4 # Set game-specific variables GAME_ID='dragonsphere' GAME_NAME='Dragonsphere' ARCHIVE_BASE_0='gog_dragonsphere_2.0.0.3.sh' ARCHIVE_BASE_0_MD5='9dd42821c144aa87fd01b595607471c9' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='91000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.3' ARCHIVE_BASE_0_URL='https://www.gog.com/game/dragonsphere' CONTENT_PATH_DEFAULT='data/noarch/data' ARCHIVE_GAME_MAIN_FILES=' GAME.GOG GAME.INS' ARCHIVE_GAME0_MAIN_PATH="${CONTENT_PATH_DEFAULT}/DRAGON" ARCHIVE_GAME0_MAIN_FILES='*' GAME_IMAGE='GAME.INS' APP_MAIN_TYPE='dosbox' APP_MAIN_EXE='MAINMENU.EXE' APP_MAIN_ICON='data/noarch/support/icon.png' PKG_MAIN_DEPS='dosbox' # Use persistent storage for user data CONFIG_FILES='./CONFIG.DRA' DATA_FILES='./SAVES.DIR ./DRAG*.SAV' # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" content_path=$(content_path_default) toupper "${PLAYIT_WORKDIR}/gamedata/${content_path}" prepare_package_layout # Include game icon icons_get_from_workdir 'APP_MAIN' # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-draugen.sh0000755000000000000000000000562714471751340013617 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Draugen # send your bug reports to contact@dotslashplay.it ### script_version=20230402.2 GAME_ID='draugen' GAME_NAME='Draugen' ARCHIVE_BASE_0='setup_draugen_1.1.0.10_(64bit)_(30252).exe' ARCHIVE_BASE_0_MD5='5ac0dd08f8d794d61158ef9ffeeebef3' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_draugen_1.1.0.10_(64bit)_(30252)-1.bin' ARCHIVE_BASE_0_PART1_MD5='aa703a920b67b4201aed1711dd7a14ad' ARCHIVE_BASE_0_PART2='setup_draugen_1.1.0.10_(64bit)_(30252)-2.bin' ARCHIVE_BASE_0_PART2_MD5='21e3d5b7c2fd029256762ff8ddf424a9' ARCHIVE_BASE_0_SIZE='12000000' ARCHIVE_BASE_0_VERSION='1.1.0.10-gog30252' ARCHIVE_BASE_0_URL='https://www.gog.com/game/draugen' UNREALENGINE4_NAME='draugen' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" engine ${UNREALENGINE4_NAME}/binaries ${UNREALENGINE4_NAME}/plugins ${UNREALENGINE4_NAME}.exe" CONTENT_GAME_DATA_FILES=" ${UNREALENGINE4_NAME}" HUGE_FILES_DATA=" ${UNREALENGINE4_NAME}/content/paks/${UNREALENGINE4_NAME}-windowsnoeditor.pak" WINE_DIRECT3D_RENDERER='dxvk' APP_WINE_LINK_DIRS=" userdata:users/\${USER}/AppData/Local/${UNREALENGINE4_NAME}/Saved" USER_PERSISTENT_DIRECTORIES=' userdata/Config/WindowsNoEditor userdata/SaveGames' APP_MAIN_EXE="${UNREALENGINE4_NAME}.exe" APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=101' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPS_ARCH='gst-plugins-base gst-plugins-good gst-libav' PKG_BIN_DEPS_DEB='gstreamer1.0-plugins-base, gstreamer1.0-plugins-good, gstreamer1.0-libav' PKG_BIN_DEPS_GENTOO='media-libs/gst-plugins-base media-plugins/gst-plugins-good media-libs/gst-plugins-libav' # The game will crash before loading the menu if PhysX is unavailable APP_WINETRICKS="$APP_WINETRICKS physx" # 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-dream-daddy.sh0000755000000000000000000000464414471751340014343 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=20230927.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' 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='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_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ARCHIVE_INNER_PATH="${PLAYIT_WORKDIR}/gamedata/Dream Daddy Linux/dreamdaddy-02142019-bin" ARCHIVE_INNER_EXTRACTOR='bsdtar' archive_extraction 'ARCHIVE_INNER' rm "$(archive_path 'ARCHIVE_INNER')" # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN32' launchers_write PKG='PKG_BIN64' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-dream.sh0000755000000000000000000000536314471751340013257 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Dream # send your bug reports to contact@dotslashplay.it ### script_version=20231108.4 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='dream' GAME_NAME='Dream' ARCHIVE_BASE_0_NAME='setup_dream_1.12_(20822).exe' ARCHIVE_BASE_0_MD5='a4e75ba9d21e146fff1a9cfca2674657' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_dream_1.12_(20822)-1.bin' ARCHIVE_BASE_0_PART1_MD5='944eee69b9e0a90a0d03dd2e83c2644e' ARCHIVE_BASE_0_SIZE='3100000' ARCHIVE_BASE_0_VERSION='1.12-gog20822' ARCHIVE_BASE_0_URL='https://www.gog.com/game/dream' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' binaries engine' CONTENT_GAME_DATA_FILES=' udkgame' USER_PERSISTENT_DIRECTORIES=' udkgame/config Saves' APP_MAIN_EXE='binaries/win32/dream.exe' ## The type must be set explicitly, or it will be wrongly identified as a Mono application. APP_MAIN_TYPE='wine' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Include Mono in the WINE prefix ARCHIVE_REQUIRED_MONO_NAME='wine-mono-8.0.0-x86.msi' ARCHIVE_REQUIRED_MONO_MD5='4fe5c683fcd9634c7f6571f252b3603c' ARCHIVE_REQUIRED_MONO_URL='https://dl.winehq.org/wine/wine-mono/8.0.0/' archive_initialize_required 'ARCHIVE_MONO' 'ARCHIVE_REQUIRED_MONO' mono_installer_source=$(archive_path 'ARCHIVE_MONO') mono_installer_destination="$(package_path 'PKG_BIN')$(path_game_data)/mono/wine-mono-8.0.0-x86.msi" install -D --mode=644 "$mono_installer_source" "$mono_installer_destination" WINE_DLLOVERRIDES_DEFAULT='winemenubuilder.exe,mshtml=' APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN')"' # Include Mono in the WINE prefix if [ ! -e .mono_installed ]; then $(wine_command) mono/wine-mono-8.0.0-x86.msi touch .mono_installed fi ' # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-dreamfall-chapters.sh0000755000000000000000000000477414471751340015732 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 HS-157 # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Dreamfall Chapters # send your bug reports to contact@dotslashplay.it ### script_version=20231107.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='dreamfall-chapters' GAME_NAME='Dreamfall Chapters' ARCHIVE_BASE_GOG_1='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='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='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' ## TODO: Add an explicit list of plugins to include. ARCHIVE_GAME_BIN_PATH_GOG='data/noarch/game' ARCHIVE_GAME_BIN_PATH_HUMBLE='.' ARCHIVE_GAME0_BIN_FILES=" ${UNITY3D_NAME}_Data/Plugins" PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" ## 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' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-dreaming-sarah.sh0000755000000000000000000000601614471751340015045 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Dreaming Sarah # send your bug reports to contact@dotslashplay.it ### script_version=20221210.2 GAME_ID='dreaming-sarah' GAME_NAME='Dreaming Sarah' ARCHIVE_BASE_32BIT_0='DreamingSarah-linux32_1.3.zip' ARCHIVE_BASE_32BIT_0_MD5='73682a545e979ad9a2b6123222ddb517' ARCHIVE_BASE_32BIT_0_SIZE='200000' ARCHIVE_BASE_32BIT_0_VERSION='1.3-humble1' ARCHIVE_BASE_32BIT_0_URL='https://www.humblebundle.com/store/dreaming-sarah' ARCHIVE_BASE_64BIT_0='DreamingSarah-linux64_1.3.zip' ARCHIVE_BASE_64BIT_0_MD5='a68f3956eb09ea7b34caa20f6e89b60c' ARCHIVE_BASE_64BIT_0_SIZE='200000' ARCHIVE_BASE_64BIT_0_VERSION='1.3-humble1' ARCHIVE_BASE_64BIT_0_URL='https://www.humblebundle.com/store/dreaming-sarah' CONTENT_PATH_DEFAULT_32BIT='DreamingSarah-linux32' CONTENT_PATH_DEFAULT_64BIT='DreamingSarah-linux64' CONTENT_GAME_BIN_FILES=' nw nacl_helper*' CONTENT_LIBS_BIN_PATH_32BIT="${CONTENT_PATH_DEFAULT_32BIT}/lib" CONTENT_LIBS_BIN_PATH_64BIT="${CONTENT_PATH_DEFAULT_64BIT}/lib" CONTENT_LIBS_BIN_FILES=' libffmpeg.so libnode.so libnw.so' CONTENT_GAME_DATA_FILES=' locales *.bin *.dat *.nw *.pak' APP_MAIN_TYPE='native' APP_MAIN_EXE='nw' PACKAGES_LIST='PKG_DATA PKG_BIN' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH_32BIT='32' PKG_BIN_ARCH_64BIT='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' ld-linux.so.2 ld-linux-x86-64.so.2 libasound.so.2 libatk-1.0.so.0 libcairo.so.2 libc.so.6 libcups.so.2 libdbus-1.so.3 libdl.so.2 libexpat.so.1 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgconf-2.so.4 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libnspr4.so libnss3.so libnssutil3.so libpango-1.0.so.0 libpangocairo-1.0.so.0 libpthread.so.0 librt.so.1 libsmime3.so libstdc++.so.6 libX11.so.6 libXcomposite.so.1 libXcursor.so.1 libXdamage.so.1 libXext.so.6 libXfixes.so.3 libXi.so.6 libXrandr.so.2 libXrender.so.1 libXss.so.1 libXtst.so.6' # Load common functions target_version='2.19' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-dropsy.sh0000755000000000000000000000572314471751340013507 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=20230228.4 GAME_ID='dropsy' GAME_NAME='Dropsy' ARCHIVE_BASE_0='gog_dropsy_2.5.0.6.sh' ARCHIVE_BASE_0_MD5='6739e9f516043ee90b033b55c3e3f35c' ARCHIVE_BASE_0_TYPE='mojosetup' 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' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN32_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins/x86" CONTENT_LIBS_BIN32_FILES=' ScreenSelector.so' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86" CONTENT_LIBS_BIN64_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_LIBS_BIN64_FILES=' ScreenSelector.so' CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data/Managed ${UNITY3D_NAME}_Data/Mono/etc ${UNITY3D_NAME}_Data/Resources ${UNITY3D_NAME}_Data/StreamingAssets ${UNITY3D_NAME}_Data/mainData ${UNITY3D_NAME}_Data/level? ${UNITY3D_NAME}_Data/level?? ${UNITY3D_NAME}_Data/*.assets ${UNITY3D_NAME}_Data/*.resource" USER_PERSISTENT_DIRECTORIES=' Save' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-duet.sh0000755000000000000000000000564514471751340013133 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Duet # send your bug reports to contact@dotslashplay.it ### script_version=20231111.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='duet' GAME_NAME='Duet' # This DRM-free build is no longer available for sale from humblebundle.com ARCHIVE_BASE_0_NAME='Duet-Build1006023-Linux64.zip' ARCHIVE_BASE_0_MD5='b9c34c29da94c199ee75a5e71272a1eb' ARCHIVE_BASE_0_SIZE='210000' ARCHIVE_BASE_0_VERSION='1.0-humble1006023' CONTENT_PATH_DEFAULT='.' CONTENT_LIBS_BIN_FILES=' libsfml-audio.so.2.3 libsfml-graphics.so.2.3 libsfml-system.so.2.3 libsfml-window.so.2.3' ## The game binary is linked against libsteam_api.so, so it can not be dropped. CONTENT_LIBS_BIN_FILES="${CONTENT_LIBS_BIN_FILES:-} libsteam_api.so" CONTENT_LIBS0_BIN_PATH='steam-runtime/amd64/usr/lib/x86_64-linux-gnu' CONTENT_LIBS0_BIN_FILES=' libjpeg.so.8 libjpeg.so.8.0.2' CONTENT_GAME_BIN_FILES=' Duet' CONTENT_GAME_DATA_FILES=' Media' APP_MAIN_EXE='Duet' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libFLAC.so.8 libfreetype.so.6 libgcc_s.so.1 libGL.so.1 libm.so.6 libogg.so.0 libopenal.so.1 libpthread.so.0 librt.so.1 libstdc++.so.6 libudev.so.0 libvorbisenc.so.2 libvorbisfile.so.3 libvorbis.so.0 libX11.so.6 libX11-xcb.so.1 libxcb-randr.so.0 libxcb.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Check for the presence of optional extra archives ARCHIVE_OPTIONAL_ICONS_0_NAME='duet_icons.tar.xz' ARCHIVE_OPTIONAL_ICONS_0_MD5='57d79a524801768a742405a7a5310e08' ARCHIVE_OPTIONAL_ICONS_0_URL='https://downloads.dotslashplay.it/games/duet' archive_initialize_optional \ 'ARCHIVE_ICONS' \ 'ARCHIVE_OPTIONAL_ICONS_0' # Extract game data archive_extraction_default if archive_is_available 'ARCHIVE_ICONS'; then archive_extraction 'ARCHIVE_ICONS' fi # Include game data if archive_is_available 'ARCHIVE_ICONS'; then CONTENT_ICONS_DATA_PATH='.' CONTENT_ICONS_DATA_FILES=' 16x16 32x32 48x48 128x128 256x256' content_inclusion 'ICONS_DATA' 'PKG_DATA' "$(path_icons)" fi content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-duke-nukem-3d.sh0000755000000000000000000000361314471751340014534 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Duke Nukem 3D # send your bug reports to contact@dotslashplay.it ### script_version=20230418.1 GAME_ID='duke-nukem-3d' GAME_NAME='Duke Nukem 3D' # This game installer is no longer available for sale from gog.com ARCHIVE_BASE_0='gog_duke_nukem_3d_atomic_edition_2.0.0.9.sh' ARCHIVE_BASE_0_MD5='a51283d3bbc2db62b75c6c62824f5e46' ARCHIVE_BASE_0_SIZE='63000' ARCHIVE_BASE_0_VERSION='1.5-gog2.0.0.9' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' *.BAT *.CFG *.CON *.DAT *.DMO *.DOC *.EXE *.GIF *.GRP *.H *.HLP *.INI *.MAP *.PCK *.RTS *.TXT' CONTENT_DOC_MAIN_FILES=' license.txt' APP_MAIN_EXE='DUKE3D.EXE' APP_MAIN_ICON='duke3d.ico' USER_PERSISTENT_FILES=' DUKE3D.GRP *.CFG *.SAV' # Enforce required audio setting APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Enforce required audio setting export DOSBOX_SBLASTER_IRQ=5' # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write # Build package packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-dungeons-2-a-chance-of-dragons.sh0000755000000000000000000000570214471751340017637 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # 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. ### ### # Dungeons 2 - A Chance of Dragons # build native Linux packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20201008.1 # Set game-specific variables GAME_ID='dungeons-2' GAME_NAME='Dungeons 2 - A Chance of Dragons' ARCHIVES_LIST=' ARCHIVE_GOG_0' ARCHIVE_GOG_0='gog_dungeons_2_a_chance_of_dragons_2.0.0.1.sh' ARCHIVE_GOG_0_URL='https://www.gog.com/game/dungeons_2_a_chance_of_dragons' ARCHIVE_GOG_0_MD5='d6fcaa7bc9051c8c67301a4af58a7632' ARCHIVE_GOG_0_SIZE='10000' ARCHIVE_GOG_0_VERSION='1.6.1.29-gog2.0.0.1' ARCHIVE_GOG_0_TYPE='mojosetup' ARCHIVE_GAME_MAIN_PATH='data/noarch/game' ARCHIVE_GAME_MAIN_FILES='./Dungeons2_Data' PACKAGES_LIST='PKG_MAIN' PKG_MAIN_ID="${GAME_ID}-a-chance-of-dragon" PKG_MAIN_DEPS="$GAME_ID" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout rm --recursive "$PLAYIT_WORKDIR/gamedata" # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-dungeons-2-song-of-sand-and-fire.sh0000755000000000000000000000574114471751340020124 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine Le Gonidec # 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. ### ### # Dungeons 2 - A Song of Sand and Fire # build native Linux packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20201008.1 # Set game-specific variables GAME_ID='dungeons-2' GAME_NAME='Dungeons 2 - A Song of Sand and Fire' ARCHIVES_LIST=' ARCHIVE_GOG_0' ARCHIVE_GOG_0='gog_dungeons_2_a_song_of_sand_and_fire_2.0.0.1.sh' ARCHIVE_GOG_0_URL='https://www.gog.com/game/dungeons_2_a_song_of_sand_and_fire' ARCHIVE_GOG_0_MD5='70e6beffef5e2197280fe7c9d8052ea5' ARCHIVE_GOG_0_SIZE='10000' ARCHIVE_GOG_0_VERSION='1.6.1.29-gog2.0.0.1' ARCHIVE_GOG_0_TYPE='mojosetup' ARCHIVE_GAME_MAIN_PATH='data/noarch/game' ARCHIVE_GAME_MAIN_FILES='./Dungeons2_Data' PACKAGES_LIST='PKG_MAIN' PKG_MAIN_ID="${GAME_ID}-a-song-of-sand-and-fire" PKG_MAIN_DEPS="$GAME_ID" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout rm --recursive "$PLAYIT_WORKDIR/gamedata" # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-dungeons-2.sh0000755000000000000000000000453614471751340014151 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Dungeons 2 # send your bug reports to contact@dotslashplay.it ### script_version=20231009.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='dungeons-2' GAME_NAME='Dungeons 2' ARCHIVE_BASE_0_NAME='gog_dungeons_2_2.0.0.1.sh' ARCHIVE_BASE_0_MD5='990a4ded53d43f28e4e16c0885f515cd' ARCHIVE_BASE_0_SIZE='5100000' ARCHIVE_BASE_0_VERSION='1.6.1.29-gog2.0.0.1' ARCHIVE_BASE_0_URL='https://www.gog.com/game/dungeons_2' UNITY3D_NAME='Dungeons2' ## TODO: Check if the Steam libraries could be dropped. UNITY3D_PLUGINS=' libCSteamworks.so libRakNet.so libsteam_api.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono mono server" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data *.block *.txt AssetBundles mapexports" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Set required execution permission on the shipped Mono binary chmod 755 'mono/bin/mono' ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-dungeons-and-lesbians.sh0000755000000000000000000000575714471751340016356 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Dungeons & Lesbians # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220727.1 GAME_ID='dungeons-and-lesbians' GAME_NAME='Dungeons & Lesbians' ARCHIVE_BASE_0='DungeonsAndLesbians-1.2-linux.tar.bz2' ARCHIVE_BASE_0_MD5='31015bbbc250043dca3e77c96941655b' ARCHIVE_BASE_0_SIZE='200000' ARCHIVE_BASE_0_VERSION='1.2-itch1' ARCHIVE_BASE_0_URL='https://noeybodys.itch.io/dungeonsandlesbians' CONTENT_PATH_DEFAULT='DungeonsAndLesbians-1.2-linux' ARCHIVE_GAME_BIN32_FILES=' lib/linux-i686 DungeonsAndLesbians.sh' ARCHIVE_GAME_BIN64_FILES=' lib/linux-x86_64' ARCHIVE_GAME_DATA_FILES=' lib/pythonlib2.7 game DungeonsAndLesbians.py renpy' APP_MAIN_TYPE='native' APP_MAIN_EXE='DungeonsAndLesbians.sh' APP_MAIN_ICONS_LIST='APP_MAIN_ICON_ICO APP_MAIN_ICON_PNG' APP_MAIN_ICON_PNG="${CONTENT_PATH_DEFAULT}/game/icon.png" APP_MAIN_ICON_ICO="${CONTENT_PATH_DEFAULT}/game/icon.ico" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Use persistent storage for user data DATA_DIRS='game/saves' # Load common functions target_version='2.17' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icon PKG='PKG_DATA' icons_get_from_workdir 'APP_MAIN' # Include game data prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Copy launcher script between the binaries packages application_exe=$(application_exe 'APP_MAIN') package_source='PKG_BIN32' package_source_path=$(package_get_path "$package_source") application_exe_source_path="${package_source_path}${PATH_GAME}/${application_exe}" package_destination='PKG_BIN64' package_destination_path=$(package_get_path "$package_destination") application_exe_destination_path="${package_destination_path}${PATH_GAME}/${application_exe}" mkdir --parents "$(dirname "$application_exe_destination_path")" cp "$application_exe_source_path" "$application_exe_destination_path" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-dust-an-elysian-tail.sh0000755000000000000000000000637414471751340016136 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # Dust: An Elysian Tail # send your bug reports to contact@dotslashplay.it ### script_version=20230101.1 GAME_ID='dust-an-elysian-tail' GAME_NAME='Dust: An Elysian Tail' ARCHIVE_BASE_GOG_0='gog_dust_an_elysian_tail_2.0.0.1.sh' ARCHIVE_BASE_GOG_0_MD5='57299e2e4af0283e68a7aa5e8b390697' ARCHIVE_BASE_GOG_0_TYPE='mojosetup' ARCHIVE_BASE_GOG_0_SIZE='1500000' ARCHIVE_BASE_GOG_0_VERSION='1.04-gog2.0.0.1' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/dust_an_elysian_tail' ARCHIVE_BASE_HUMBLE_0='dustaet_05042016-bin' ARCHIVE_BASE_HUMBLE_0_MD5='6844c82f233b47417620be0bef8b140c' ARCHIVE_BASE_HUMBLE_0_TYPE='mojosetup' ARCHIVE_BASE_HUMBLE_0_SIZE='1500000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.04-humble160504' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/dust-an-elysian-tail' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='data' CONTENT_GAME_MAIN_FILES=' Content data de es fr it ja DustAET.exe Dust An Elysian Tail.bmp monoconfig FNA.dll FNA.dll.config MonoGame.Framework.Net.dll' CONTENT_DOC_MAIN_FILES=' Linux.README' APP_MAIN_TYPE='mono' APP_MAIN_EXE='DustAET.exe' APP_MAIN_ICON='Dust An Elysian Tail.bmp' PACKAGES_LIST='PKG_MAIN' PKG_MAIN_DEPS='mono' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libopenal.so.1 libSDL2-2.0.so.0 libtheoradec.so.1 libvorbisfile.so.3' # Include shipped libraries that can not be replaced by system ones CONTENT_GAME_LIBS32_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/lib" CONTENT_GAME_LIBS32_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/lib" CONTENT_GAME_LIBS32_FILES=' libmojoshader.so libtheoraplay.so' CONTENT_GAME_LIBS64_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/lib64" CONTENT_GAME_LIBS64_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/lib64" CONTENT_GAME_LIBS64_FILES=' libmojoshader.so libtheoraplay.so' PACKAGES_LIST="$PACKAGES_LIST PKG_LIBS32 PKG_LIBS64" PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS32_ID="$PKG_LIBS_ID" PKG_LIBS32_ARCH='32' PKG_LIBS64_ID="$PKG_LIBS_ID" PKG_LIBS64_ARCH='64' PKG_MAIN_DEPS="$PKG_MAIN_DEPS $PKG_LIBS_ID" # Load common functions target_version='2.20' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Disable language override mono_launcher_tweaks() { cat <<- 'EOF' ## Work around terminfo Mono bug, ## cf. https://github.com/mono/mono/issues/6752 export TERM="${TERM%-256color}" EOF } # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_MAIN' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_MAIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-dustforce.sh0000755000000000000000000000743714471751340014171 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # Dustforce DX # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20200219.1 # Set game-specific variables GAME_ID='dustforce' GAME_NAME='Dustforce DX' ARCHIVE_GOG='gog_dustforce_dx_2.2.0.5.sh' ARCHIVE_GOG_URL='https://www.gog.com/game/dustforce_dx' ARCHIVE_GOG_MD5='5423718cf31f2602c9d0b30b79d1f409' ARCHIVE_GOG_SIZE='420000' ARCHIVE_GOG_VERSION='2014.12.22-gog2.2.0.5' ARCHIVE_DOC_DATA_PATH='data/noarch/game' ARCHIVE_DOC_DATA_FILES='Linux.README ReadMe.txt' ARCHIVE_GAME_BIN32_PATH='data/noarch/game' ARCHIVE_GAME_BIN32_FILES='Dustforce.bin.x86 lib' ARCHIVE_GAME_BIN64_PATH='data/noarch/game' ARCHIVE_GAME_BIN64_FILES='Dustforce.bin.x86_64 lib64' ARCHIVE_GAME_DATA_PATH='data/noarch/game' ARCHIVE_GAME_DATA_FILES='content Dustforce.png' APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32='Dustforce.bin.x86' APP_MAIN_EXE_BIN64='Dustforce.bin.x86_64' APP_MAIN_ICON='Dustforce.png' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID glibc libstdc++ glx libxrandr alsa libudev1" PKG_BIN32_DEPS_ARCH='lib32-libidn11' PKG_BIN32_DEPS_DEB='libidn11' PKG_BIN32_DEPS_GENTOO='net-dns/libidn[abi_x86_32]' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPS_ARCH='libidn11' PKG_BIN64_DEPS_DEB="$PKG_BIN32_DEPS_DEB" PKG_BIN64_DEPS_GENTOO='net-dns/libidn' # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout rm --recursive "$PLAYIT_WORKDIR/gamedata" # Get game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-earthlock.sh0000755000000000000000000001056714471751340014145 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Earthlock # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210413.5 # Set game-specific variables GAME_ID='earthlock' GAME_NAME='Earthlock' ARCHIVES_LIST=' ARCHIVE_BASE_0' ARCHIVE_BASE_0='setup_earthlock_1.1.0_(35125).exe' ARCHIVE_BASE_0_MD5='922c46185118046df2931fbd9e9d88c0' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_earthlock_1.1.0_(35125)-1.bin' ARCHIVE_BASE_0_PART1_MD5='4bc76160d2a6f1c097069f54a5009396' ARCHIVE_BASE_0_PART1_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='1.1.0-gog35125' ARCHIVE_BASE_0_SIZE='4200000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/earthlock' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='earthlock.exe earthlock_data/mono earthlock_data/plugins' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='earthlock_data' DATA_DIRS='./logs' APP_MAIN_TYPE='wine' APP_MAIN_EXE='earthlock.exe' APP_MAIN_ICON='earthlock.exe' # Use a per-session dedicated file for logs # shellcheck disable=SC2016 APP_MAIN_OPTIONS='-logFile ./logs/$(date +%F-%R).log' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="${PKG_DATA_ID} wine" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Use persistant storage for saved games and settings CONFIG_FILES="${CONFIG_FILES} ./userdata/Earthlock_Settings.efomsettings" DATA_FILES="${DATA_FILES} ./userdata/Earthlock_Save_*.efom" APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use persistant storage for saved games and settings userdata_path_prefix="$WINEPREFIX/drive_c/users/$USER/AppData/LocalLow/Snowcastle Games/Earthlock Enhanced Edition" userdata_path_persistent="$PATH_PREFIX/userdata" mkdir --parents "$userdata_path_persistent" if [ ! -h "$userdata_path_prefix" ]; then if [ -d "$userdata_path_prefix" ]; then # Migrate existing user data to the persistent path mv "$userdata_path_prefix"/* "$userdata_path_persistent" rmdir "$userdata_path_prefix" fi # Create link from prefix to persistent path mkdir --parents "$(dirname "$userdata_path_prefix")" ln --symbolic "$userdata_path_persistent" "$userdata_path_prefix" fi' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-earthworm-jim-1.sh0000755000000000000000000000630414471751340015106 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # 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. ### ### # Earthworm Jim # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20200204.2 # Set game-specific variables GAME_ID='earthworm-jim-1' GAME_NAME='Earthworm Jim' ARCHIVE_GOG='earthworm_jim_en_1_0_16595.sh' ARCHIVE_GOG_URL='https://www.gog.com/game/earthworm_jim_1_2' ARCHIVE_GOG_MD5='87b487f85654763347433dc0952b0118' ARCHIVE_GOG_VERSION='1.0-gog16595' ARCHIVE_GOG_SIZE='720000' ARCHIVE_GOG_TYPE='mojosetup' ARCHIVE_DOC_MAIN_PATH='data/noarch/data' ARCHIVE_DOC_MAIN_PATH='readme.txt' ARCHIVE_GAME_MAIN_PATH='data/noarch/data' ARCHIVE_GAME_MAIN_FILES='*.cfg *.dat *.exe *.gog *.hlp *.ico *.id *.inst' CONFIG_FILES='*.cfg' GAME_IMAGE='ewj1.inst' APP_MAIN_TYPE='dosbox' APP_MAIN_EXE='ewj1.exe' APP_MAIN_OPTIONS='320x224' APP_MAIN_ICON='data/noarch/support/icon.png' PACKAGES_LIST='PKG_MAIN' PKG_MAIN_DEPS='dosbox' # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" tolower "$PLAYIT_WORKDIR/gamedata" prepare_package_layout # Extract icons icons_get_from_workdir 'APP_MAIN' rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-edible-places.sh0000755000000000000000000000754714471751340014666 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # The Indifferent Wonder of an Edible Place # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20201212.2 # Set game-specific variables GAME_ID='edible-places' GAME_NAME='The Indifferent Wonder of an Edible Place' ARCHIVES_LIST=' ARCHIVE_ITCH_0' ARCHIVE_ITCH_0='Edible Places 01.6 (Linux).zip' ARCHIVE_ITCH_0_URL='https://studio-oleomingus.itch.io/the-indifferent-wonder-of-an-edible-place' ARCHIVE_ITCH_0_MD5='88359c14fec2b94dd06ed4306ef1b681' ARCHIVE_ITCH_0_SIZE='1300000' ARCHIVE_ITCH_0_VERSION='01.6-itch' ARCHIVE_ITCH_0_TYPE='zip' ARCHIVE_DOC_DATA_PATH='Edible Places 01.6 (Linux)' ARCHIVE_DOC_DATA_FILES='Readme.txt' ARCHIVE_GAME_BIN_PATH='Edible Places 01.6 (Linux)' ARCHIVE_GAME_BIN_FILES='Edible.x86_64 Edible_Data/Mono*/x86_64 Edible_Data/Plugins/x86_64 Edible_Data/Managed' ARCHIVE_GAME_DATA_PATH='Edible Places 01.6 (Linux)' ARCHIVE_GAME_DATA_FILES='Edible_Data' DATA_DIRS='./logs' APP_MAIN_TYPE='native' APP_MAIN_PRERUN='# Work around Unity3D poor support for non-US locales export LANG=C' APP_MAIN_EXE='Edible.x86_64' APP_MAIN_ICON='Edible_Data/Resources/UnityPlayer.png' # Use a per-session dedicated file for logs # shellcheck disable=SC2016 APP_MAIN_OPTIONS='-logFile ./logs/$(date +%F-%R).log' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID glibc libstdc++ gtk2 libgdk_pixbuf-2.0.so.0 libgobject-2.0.so.0 libglib-2.0.so.0" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-edna-and-harvey-harveys-new-eyes.sh0000755000000000000000000000447414471751340020345 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 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=20231005.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' 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' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/libs64" CONTENT_LIBS_BIN_FILES=' libavcodec.so.56 libavdevice.so.56 libavfilter.so.5 libavformat.so.56 libavutil.so.54 libswresample.so.1 libswscale.so.3' CONTENT_GAME_BIN_FILES=" $VISIONAIRE_NAME config.ini" CONTENT_GAME_DATA_FILES=' characters lua scenes videos data.vis' CONTENT_DOC_DATA_PATH="${CONTENT_PATH_DEFAULT}/documents" CONTENT_DOC_DATA_FILES=' licenses' APP_MAIN_EXE="$VISIONAIRE_NAME" APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libstdc++.so.6' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data PKG='PKG_DATA' icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-edna-and-harvey-the-breakout.sh0000755000000000000000000000442414471751340017517 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=20200216.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='edna-and-harvey-the-breakout' GAME_NAME='Edna & Harvey: The Breakout' ARCHIVE_BASE_0='edna_harvey_the_breakout_anniversary_edition_0_19120503_35770.sh' ARCHIVE_BASE_0_URL='https://www.gog.com/game/edna_harvey_the_breakout_anniversary_edition' ARCHIVE_BASE_0_MD5='bb6ed80ee6fdbd21c059351c48e5156e' ARCHIVE_BASE_0_SIZE='3696656' ARCHIVE_BASE_0_VERSION='0.19120503-gog35770' ARCHIVE_BASE_0_TYPE='mojosetup' 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_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data PKG='PKG_DATA' icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN32' launchers_write PKG='PKG_BIN64' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-eets-munchies.sh0000755000000000000000000000505514471751340014736 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Eets Munchies # send your bug reports to contact@dotslashplay.it ### script_version=20230901.1 GAME_ID='eets-munchies' GAME_NAME='Eets Munchies' ARCHIVE_BASE_32BIT_0='eets2-32x_linux_1394496804.tar' ARCHIVE_BASE_32BIT_0_MD5='cdbae24ea2579ff9169f2b3d68be8a09' ARCHIVE_BASE_32BIT_0_SIZE='740000' ARCHIVE_BASE_32BIT_0_VERSION='1.0-humble.2014.03.10' ARCHIVE_BASE_32BIT_0_URL='https://www.humblebundle.com/store/eets-munchies' ARCHIVE_BASE_64BIT_0='eets2-64x_linux_1394496804.tar' ARCHIVE_BASE_64BIT_0_MD5='ee7694ca24aabb4c3890123f8cb2474e' ARCHIVE_BASE_64BIT_0_SIZE='740000' ARCHIVE_BASE_64BIT_0_VERSION='1.0-humble.2014.03.10' ARCHIVE_BASE_64BIT_0_URL='https://www.humblebundle.com/store/eets-munchies' CONTENT_PATH_DEFAULT='eets2' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/bin/lib" CONTENT_LIBS_BIN_FILES_32BIT=' libfmodevent.so libfmodevent-4.44.18.so libfmodex.so libfmodex-4.44.18.so' CONTENT_LIBS_BIN_FILES_64BIT=' libfmodevent64.so libfmodevent64-4.44.18.so libfmodex64.so libfmodex64-4.44.18.so' CONTENT_GAME_BIN_FILES=' bin/eets2-bin' CONTENT_GAME_DATA_FILES=' Data *.json *.kwad *.lua *.png *.xpm' APP_MAIN_EXE='bin/eets2-bin' APP_MAIN_ICON='eets2.xpm' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH_32BIT='32' PKG_BIN_ARCH_64BIT='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 libSDL2-2.0.so.0 libstdc++.so.6' # Load common functions target_version='2.25' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game idons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-element4l.sh0000755000000000000000000000754114471751340014060 0ustar rootroot#!/bin/sh -e set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2018-2020, BetaRays # 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. ### ### # Element4l # build native packages from the original installers # send your bug reports to vv221@dotslashplay.it ### script_version=20190210.1 # Set game-specific variables GAME_ID='element4l' GAME_NAME='Element4l' ARCHIVE_PLAYISM='Element4l-WIN-1.2.3.zip' ARCHIVE_PLAYISM_URL='https://playism.com/product/element4l' ARCHIVE_PLAYISM_MD5='04f761ddf4e9e9b14cad67ae32c1598e' ARCHIVE_PLAYISM_SIZE='320000' ARCHIVE_PLAYISM_VERSION='1.2.3-playism' ARCHIVE_PLAYISM_TYPE='zip' ARCHIVE_GAME_BIN_PATH='Update-1.2.3-WIN' ARCHIVE_GAME_BIN_FILES='element4l.exe element4l_Data/Mono element4l_Data/Managed' ARCHIVE_GAME_DATA_PATH='Update-1.2.3-WIN' ARCHIVE_GAME_DATA_FILES='element4l_Data/Resources element4l_Data/level* element4l_Data/*.assets element4l_Data/sharedassets* element4l_Data/mainData element4l_Data/hints element4l_Data/replays' DATA_DIRS='./logs' DATA_FILES='./game_data.reg' APP_MAIN_TYPE='wine' APP_MAIN_EXE='element4l.exe' # shellcheck disable=SC2016 APP_MAIN_OPTIONS='-logFile ./logs/$(date +%F-%R).log' APP_MAIN_ICON='element4l.exe' # shellcheck disable=SC2016 APP_MAIN_PRERUN=' if [ -f "$WINEPREFIX/drive_c/$GAME_ID/game_data.reg" ]; then regedit "C:\\\\$GAME_ID\\\\game_data.reg" fi' # shellcheck disable=SC2016 APP_MAIN_POSTRUN='regedit -E "C:\\\\$GAME_ID\\\\game_data.reg" HKEY_CURRENT_USER\\\\Software\\\\I-Illusions\\\\element4l' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine alsa glx" # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout rm --recursive "$PLAYIT_WORKDIR/gamedata" # Extract icons PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Write launchers PKG='PKG_BIN' launcher_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-elephantasy.sh0000755000000000000000000000442114471751340014476 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Daguhh # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Elephantasy # send your bug reports to contact@dotslashplay.it ### script_version=20230328.2 GAME_ID='elephantasy' GAME_NAME='Elephantasy' ARCHIVE_BASE_0='Elephantasy Release Build_Itch.zip' ARCHIVE_BASE_0_MD5='d0a7deaccf9b5fbbd3f3c879adb61a6a' ARCHIVE_BASE_0_SIZE='35000' ARCHIVE_BASE_0_VERSION='1.6-itch.2021.04.24' ARCHIVE_BASE_0_URL='https://linker.itch.io/elephantasy' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' d3dx9_43.dll elephant.exe options.ini' CONTENT_GAME_DATA_FILES=' data.win' CONTENT_DOC_DATA_FILES=' README.txt' WINE_PERSISTENT_DIRECTORIES=' userdata:users/${USER}/Local Settings/Application Data/Elephant' APP_MAIN_EXE='elephant.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # The .zip archive contains a .exe file, # that is actually a cabinet archive. ARCHIVE_INNER_TYPE='cabinet' SCRIPT_DEPS="$SCRIPT_DEPS cabextract" # 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ## The .zip archive contains a .exe file, ## that is actually a cabinet archive. ARCHIVE_INNER="${PLAYIT_WORKDIR}/gamedata/Elephantasy.exe" archive_extraction 'ARCHIVE_INNER' rm "$ARCHIVE_INNER" # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-else-heart-break.sh0000755000000000000000000000512014471751340015271 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # else Heart.Break() # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220703.1 GAME_ID='else-heart-break' GAME_NAME='else Heart.Break()' ARCHIVE_BASE_0='ElseHeartbreakLinux.tgz' ARCHIVE_BASE_0_MD5='7030450cadac6234676967ae41f2a732' ARCHIVE_BASE_0_SIZE='1500000' ARCHIVE_BASE_0_VERSION='1.0.9-humble160129' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/else-heartbreak' UNITY3D_NAME='ElseHeartbreak' CONTENT_PATH_DEFAULT='ElseHeartbreakLinux' ARCHIVE_GAME_BIN_FILES=" ${UNITY3D_NAME} ${UNITY3D_NAME}/Mono ${UNITY3D_NAME}/Plugins" ARCHIVE_GAME_ASSETS_FILES=" ${UNITY3D_NAME}_Data/*.assets" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_TYPE='native' APP_MAIN_EXE="$UNITY3D_NAME" APP_MAIN_ICON="${UNITY3D_NAME}_Data/Resources/UnityPlayer.png" PACKAGES_LIST='PKG_ASSETS PKG_DATA PKG_BIN' PKG_ASSETS_ID="${GAME_ID}-assets" PKG_ASSETS_DESCRIPTION='assets' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_ASSETS_ID $PKG_DATA_ID libc.so.6 libstdc++.so.6 libgtk-x11-2.0.so.0 nss" # Use persistent storage for user data DATA_DIRS="${UNITY3D_NAME}_Data/Saves ${UNITY3D_NAME}_Data/InitData" # Use a dedicated log file for the current game session APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a dedicated log file for the current game session mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-empire-earth-1.sh0000755000000000000000000001231314471751340014700 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Empire Earth 1 # send your bug reports to contact@dotslashplay.it ### script_version=20230103.1 GAME_ID='empire-earth-1' GAME_NAME='Empire Earth' EXPANSION_ID='the-art-of-conquest' EXPANSION_NAME='The Art of Conquest' ARCHIVE_BASE_0='setup_empire_earth_gold_2.0.0.2974_(25522).exe' ARCHIVE_BASE_0_MD5='e8b22cdc9520aefab49e21349b20b731' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='710000' ARCHIVE_BASE_0_VERSION='2.0.0-gog25522' ARCHIVE_BASE_0_URL='https://www.gog.com/game/empire_earth_gold_edition' # Archive content CONTENT_PATH_DEFAULT='.' ## Empire Earth - base game CONTENT_GAME_BIN_PATH="${CONTENT_PATH_DEFAULT}/empire earth" CONTENT_GAME_BIN_FILES=' redist *.cfg *.dll *.exe *.inf' CONTENT_GAME_DATA_PATH="${CONTENT_PATH_DEFAULT}/empire earth" CONTENT_GAME_DATA_FILES=' data' CONTENT_DOC_DATA_FILES=' manual.pdf scenario_editor_manual.pdf technology_tree.pdf' ## The Art of Conquest expansion CONTENT_GAME_BIN_EXPANSION_PATH="${CONTENT_PATH_DEFAULT}/empire earth - the art of conquest" CONTENT_GAME_BIN_EXPANSION_FILES=' redist *.cfg *.dll *.exe *.inf' CONTENT_GAME_DATA_EXPANSION_PATH="${CONTENT_PATH_DEFAULT}/empire earth - the art of conquest" CONTENT_GAME_DATA_EXPANSION_FILES=' data' CONTENT_DOC_DATA_EXPANSION_FILES=' technology_tree_aoc.pdf manual_aoc.pdf' # Applications ## Empire Earth - base game APP_MAIN_EXE='empire earth.exe' APP_MAIN_ICON='empire earth/empire earth.exe' ### Run the game binary from its parent directory APP_MAIN_PRERUN='# Run the game binary from its parent directory cd "$(dirname "$APP_EXE")" APP_EXE=$(basename "$APP_EXE")' USER_PERSISTENT_DIRECTORIES=" ${GAME_ID}/data/Scenarios ${GAME_ID}/data/Saved Games ${GAME_ID}/Users" ## The Art of Conquest expansion APP_EXPANSION_ID="${GAME_ID}-${EXPANSION_ID}" APP_EXPANSION_NAME="$GAME_NAME - $EXPANSION_NAME" APP_EXPANSION_EXE='ee-aoc.exe' APP_EXPANSION_ICON='empire earth - the art of conquest/ee-aoc.exe' ### Run the game binary from its parent directory APP_EXPANSION_PRERUN='# Run the game binary from its parent directory cd "$(dirname "$APP_EXE")" APP_EXE=$(basename "$APP_EXE")' USER_PERSISTENT_DIRECTORIES="$USER_PERSISTENT_DIRECTORIES ${EXPANSION_ID}/data/Scenarios ${EXPANSION_ID}/data/Saved Games ${EXPANSION_ID}/Users" # Packages PACKAGES_LIST='PKG_BIN PKG_DATA PKG_BIN_EXPANSION PKG_DATA_EXPANSION' ## Empire Earth - base game PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ID="$GAME_ID" PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" ## The Art of Conquest expansion PKG_DATA_EXPANSION_ID="${GAME_ID}-${EXPANSION_ID}-data" PKG_DATA_EXPANSION_DESCRIPTION="$EXPANSION_NAME - data" PKG_BIN_EXPANSION_ID="${GAME_ID}-${EXPANSION_ID}" PKG_BIN_EXPANSION_ARCH='32' PKG_BIN_EXPANSION_DESCRIPTION="$EXPANSION_NAME" PKG_BIN_EXPANSION_DEPS="$PKG_DATA_EXPANSION_ID $PKG_BIN_ID" # Load common functions target_version='2.20' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion 'APP_MAIN' PKG='PKG_DATA_EXPANSION' icons_inclusion 'APP_EXPANSION' # Include game data game_id=$(game_id) path_game_data=$(path_game_data) path_documentation=$(path_documentation) content_inclusion 'GAME_BIN' 'PKG_BIN' "${path_game_data}/${game_id}" content_inclusion 'GAME_DATA' 'PKG_DATA' "${path_game_data}/${game_id}" content_inclusion 'DOC_DATA' 'PKG_DATA' "${path_documentation}/${game_id}" content_inclusion 'GAME_BIN_EXPANSION' 'PKG_BIN_EXPANSION' "${path_game_data}/${EXPANSION_ID}" content_inclusion 'GAME_DATA_EXPANSION' 'PKG_DATA_EXPANSION' "${path_game_data}/${EXPANSION_ID}" content_inclusion 'DOC_DATA_EXPANSION' 'PKG_DATA_EXPANSION' "${path_documentation}/${EXPANSION_ID}" # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' APP_MAIN_EXE="$(game_id)/$(application_exe 'APP_MAIN')" launchers_write 'APP_MAIN' PKG='PKG_BIN_EXPANSION' APP_EXPANSION_EXE="${EXPANSION_ID}/$(application_exe 'APP_EXPANSION')" ## Ensure the winecfg launcher is not written, ## it is already provided by the main game package. launcher_write_script_wine_winecfg() { true ; } launcher_write_desktop() { local application desktop_file application="$1" desktop_file=$(launcher_desktop_filepath "$application") mkdir --parents "$(dirname "$desktop_file")" launcher_desktop "$application" > "$desktop_file" } launchers_write 'APP_EXPANSION' # Build package write_metadata build_pkg # Print instructions print_instructions 'PKG_BIN' 'PKG_DATA' GAME_NAME="$EXPANSION_NAME" print_instructions 'PKG_BIN_EXPANSION' 'PKG_DATA_EXPANSION' # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-encodya.sh0000755000000000000000000000463614471751340013613 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Encodya # send your bug reports to contact@dotslashplay.it ### script_version=20230731.1 GAME_ID='encodya' GAME_NAME='Encodya' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" # Archives ## Full game (gog.com) ARCHIVE_BASE_0='encodya_1_1_46120.sh' ARCHIVE_BASE_0_MD5='6fdadc42c828896389de2a9fd3a355fb' ARCHIVE_BASE_0_SIZE='3300000' ARCHIVE_BASE_0_VERSION='1.1-gog46120' ARCHIVE_BASE_0_URL='https://www.gog.com/game/encodya' ## Demo (itch.io) ## This free demo has been removed from itch.io since the release of the full game. ARCHIVE_BASE_DEMO_0='ENCODYA_DemoV1linux.zip' ARCHIVE_BASE_DEMO_0_MD5='4b3dfbbd37585615791acf13b4bb7ecd' ARCHIVE_BASE_DEMO_0_SIZE='1100000' ARCHIVE_BASE_DEMO_0_VERSION='1-itch' UNITY3D_NAME='ENCODYA' UNITY3D_NAME_DEMO='ENCODYA_DemoV1' UNITY3D_PLUGINS=' abci.so libsteam_api.so UnityFbxSdkNative.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_PATH_DEFAULT_DEMO='ENCODYA_DemoV1' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPS_DEMO="$PKG_DATA_ID_DEMO" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libxml2.so.2 libz.so.1' # Load common functions target_version='2.25' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-endless-space-1.sh0000755000000000000000000000512314471751340015045 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Endless Space 1 # send your bug reports to contact@dotslashplay.it ### script_version=20230716.4 GAME_ID='endless-space-1' GAME_NAME='Endless Space' ARCHIVE_BASE_0='setup_endlesstm_space_-_definitive_edition_1.0.0._(64185).exe' ARCHIVE_BASE_0_MD5='84ccf58a734694a63db59e599344a254' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_endlesstm_space_-_definitive_edition_1.0.0._(64185)-1.bin' ARCHIVE_BASE_0_PART1_MD5='65a88affbdbff4aa78808b941184051b' ARCHIVE_BASE_0_SIZE='3600000' ARCHIVE_BASE_0_VERSION='1.1.59-gog64185' ARCHIVE_BASE_0_URL='https://www.gog.com/game/endless_space_definitive_edition' UNITY3D_NAME='endless space' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_data/plugins ${UNITY3D_NAME}.exe *.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data public public_xp1" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/Endless Space' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' deinterlace video/x-ms-asf' # The game engine expects write access to XML files. USER_PERSISTENT_FILES=' *.xml' # Skip playing the logo movie on launch, # as it prevents reaching the game menu. APP_MAIN_OPTIONS="${APP_MAIN_OPTIONS:-} -nologo" # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files rm --force --recursive \ '__redist' \ 'app' \ 'commonappdata' \ 'tmp' ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-english-country-tune.sh0000755000000000000000000000525514471751340016272 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # English Country Tune # build native packages from the original installers # send your bug reports to contatct@dotslashplay.it ### script_version=20220630.1 GAME_ID='english-country-tune' GAME_NAME='English Country Tune' ARCHIVE_BASE_0='EnglishCountryTune_Linux_1370040672.tar.gz' ARCHIVE_BASE_0_MD5='1097749402732c31348fd430b94e9350' ARCHIVE_BASE_0_SIZE='330000' ARCHIVE_BASE_0_VERSION='1.0-humble' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/english-country-tune' UNITY3D_NAME='English Country Tune' CONTENT_PATH_DEFAULT='English Country Tune' ARCHIVE_GAME_BIN32_FILES=' English?Country?Tune.x86 English?Country?Tune_Data/Mono/x86 English?Country?Tune_Data/Plugins/x86' ARCHIVE_GAME_BIN64_FILES=' English?Country?Tune.x86_64 English?Country?Tune_Data/Mono/x86_64 English?Country?Tune_Data/Plugins/x86_64' ARCHIVE_GAME_DATA_FILES=' English?Country?Tune_Data' APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32="${UNITY3D_NAME}.x86" APP_MAIN_EXE_BIN64="${UNITY3D_NAME}.x86_64" APP_MAIN_ICON="${UNITY3D_NAME}_Data/Resources/UnityPlayer.png" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6 libGLU.so.1" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Use a dedicated log file for the current game session APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a dedicated log file for the current game session mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-enigmatis.sh0000755000000000000000000001123014471751340014135 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Enigmatis series: # - Enigmatis 1 # - Enigmatis 2 # - Enigmatis 3 # send your bug reports to contact@dotslashplay.it ### script_version=20230819.2 GAME_ID_ENIGMATIS1='enigmatis-1' GAME_NAME_ENIGMATIS1='Enigmatis 1: The Ghosts of Maple Creek' GAME_ID_ENIGMATIS2='enigmatis-2' GAME_NAME_ENIGMATIS2='Enigmatis 2: The Mists of Ravenwood' GAME_ID_ENIGMATIS3='enigmatis-3' GAME_NAME_ENIGMATIS3='Enigmatis 3: The Shadow of Karkhala' # Archives ## Enigmatis 1 ARCHIVE_BASE_ENIGMATIS1_0='enigmatis_the_ghosts_of_maple_creek_en_gog_1_22618.sh' ARCHIVE_BASE_ENIGMATIS1_0_MD5='f689351491589ff01153d7e81200954c' ARCHIVE_BASE_ENIGMATIS1_0_SIZE='1000000' ARCHIVE_BASE_ENIGMATIS1_0_VERSION='1.0-gog22618' ARCHIVE_BASE_ENIGMATIS1_0_URL='https://www.gog.com/game/enigmatis_the_ghosts_of_maple_creek' ## Enigmatis 2 ARCHIVE_BASE_ENIGMATIS2_0='enigmatis_2_the_mists_of_ravenwood_en_gog_1_22643.sh' ARCHIVE_BASE_ENIGMATIS2_0_MD5='3b632c015135e9dd361c045de98efd34' ARCHIVE_BASE_ENIGMATIS2_0_SIZE='1700000' ARCHIVE_BASE_ENIGMATIS2_0_VERSION='1.0-gog22643' ARCHIVE_BASE_ENIGMATIS2_0_URL='https://www.gog.com/game/enigmatis_2_the_mists_of_ravenwood' ## Enigmatis 3 ARCHIVE_BASE_ENIGMATIS3_0='enigmatis_3_the_shadow_of_karkhala_en_gog_1_22690.sh' ARCHIVE_BASE_ENIGMATIS3_0_MD5='2a140d0ad6e3de74484d105c02959940' ARCHIVE_BASE_ENIGMATIS3_0_SIZE='3000000' ARCHIVE_BASE_ENIGMATIS3_0_VERSION='1.0-gog22690' ARCHIVE_BASE_ENIGMATIS3_0_URL='https://www.gog.com/game/enigmatis_3_the_shadow_of_karkhala' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN32_FILES=' *_i386' CONTENT_GAME_BIN64_FILES=' *_amd64' CONTENT_GAME_DATA_FILES=' *.cub *.json' # Applications APPLICATIONS_LIST='APP_MAIN' APP_MAIN_ICON='../support/icon.png' ## Enigmatis 1 APP_MAIN_EXE_BIN32_ENIGMATIS1='Enigmatis_TheGhostsOfMapleCreek_i386' APP_MAIN_EXE_BIN64_ENIGMATIS1='Enigmatis_TheGhostsOfMapleCreek_amd64' ## Enigmatis 2 APP_MAIN_EXE_BIN32_ENIGMATIS2='Enigmatis_TheMistsOfRavenwood_i386' APP_MAIN_EXE_BIN64_ENIGMATIS2='Enigmatis_TheMistsOfRavenwood_amd64' ## Enigmatis 3 APP_MAIN_EXE_BIN32_ENIGMATIS3='Enigmatis3_i386' APP_MAIN_EXE_BIN64_ENIGMATIS3='Enigmatis3_amd64' # Packages PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXext.so.6 libXinerama.so.1' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" ## Enigmatis 1 PKG_DATA_ID_ENIGMATIS1="${GAME_ID_ENIGMATIS1}-data" PKG_BIN_DEPS_ENIGMATIS1="$PKG_DATA_ID_ENIGMATIS1" PKG_BIN32_DEPS_ENIGMATIS1="$PKG_BIN_DEPS_ENIGMATIS1" KG_BIN64_DEPS_ENIGMATIS1="$PKG_BIN_DEPS_ENIGMATIS1" ## Enigmatis 2 PKG_DATA_ID_ENIGMATIS2="${GAME_ID_ENIGMATIS2}-data" PKG_BIN_DEPS_ENIGMATIS2="$PKG_DATA_ID_ENIGMATIS2" PKG_BIN32_DEPS_ENIGMATIS2="$PKG_BIN_DEPS_ENIGMATIS2" PKG_BIN64_DEPS_ENIGMATIS2="$PKG_BIN_DEPS_ENIGMATIS2" ## Enigmatis 3 PKG_DATA_ID_ENIGMATIS3="${GAME_ID_ENIGMATIS3}-data" PKG_BIN_DEPS_ENIGMATIS3="$PKG_DATA_ID_ENIGMATIS3" PKG_BIN32_DEPS_ENIGMATIS3="$PKG_BIN_DEPS_ENIGMATIS3" PKG_BIN64_DEPS_ENIGMATIS3="$PKG_BIN_DEPS_ENIGMATIS3" PKG_BIN_DEPENDENCIES_LIBRARIES_ENIGMATIS3="$PKG_BIN_DEPENDENCIES_LIBRARIES libidn.so.11" PKG_BIN32_DEPENDENCIES_LIBRARIES_ENIGMATIS3="$PKG_BIN_DEPENDENCIES_LIBRARIES_ENIGMATIS3" PKG_BIN64_DEPENDENCIES_LIBRARIES_ENIGMATIS3="$PKG_BIN_DEPENDENCIES_LIBRARIES_ENIGMATIS3" # 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction_default 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers APP_MAIN_EXE_BIN32=$(context_value 'APP_MAIN_EXE_BIN32') APP_MAIN_EXE_BIN64=$(context_value 'APP_MAIN_EXE_BIN64') for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-enter-the-gungeon.sh0000755000000000000000000000456314471751340015523 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Daguhh # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Enter the Gungeon # send your bug reports to contact@dotslashplay.it ### script_version=20231122.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='enter-the-gungeon' GAME_NAME='Enter the Gungeon' ARCHIVE_BASE_0_NAME='enter_the_gungeon_2_1_9_33951.sh' ARCHIVE_BASE_0_MD5='5d4c174aa3b9bb57faa19e44872794e5' ARCHIVE_BASE_0_SIZE='360000' ARCHIVE_BASE_0_VERSION='2.1.9-gog33951' ARCHIVE_BASE_0_URL='https://www.gog.com/game/enter_the_gungeon' UNITY3D_NAME='EtG' CONTENT_PATH_DEFAULT='data/noarch/game' ## TODO: Add an explicit list of plugins to include. CONTENT_GAME0_BIN32_FILES=" ${UNITY3D_NAME}_Data/Plugins/x86" CONTENT_GAME0_BIN64_FILES=" ${UNITY3D_NAME}_Data/Plugins/x86_64" PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" ## TODO: Complete the dependencies list. ## cf. https://forge.dotslashplay.it/play.it/scripts/-/snippets/28 PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libSDL2-2.0.so.0 libstdc++.so.6' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN32' launchers_write set_current_package 'PKG_BIN64' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-epistory-typing-chronicles.sh0000755000000000000000000000737414471751340017510 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Epistory - Typing Chronicles # send your bug reports to contact@dotslashplay.it ### script_version=20230625.4 GAME_ID='epistory-typing-chronicles' GAME_NAME='Epistory - Typing Chronicles' ARCHIVE_BASE_1='epistory_typing_chronicles_en_1_4_0_21518.sh' ARCHIVE_BASE_1_MD5='bf54d1235b4b02be0a90eeccce64e9a5' ARCHIVE_BASE_1_TYPE='mojosetup' ARCHIVE_BASE_1_SIZE='1300000' ARCHIVE_BASE_1_VERSION='1.4.0-gog21518' ARCHIVE_BASE_1_URL='https://www.gog.com/game/epistory_typing_chronicles' ARCHIVE_BASE_0='gog_epistory_typing_chronicles_2.2.0.3.sh' ARCHIVE_BASE_0_MD5='8db1f835a9189099e57c174ba2353f53' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='1300000' ARCHIVE_BASE_0_VERSION='1.3.5-gog2.2.0.3' UNITY3D_NAME='Epistory' UNITY3D_PLUGINS=' libfmod.so libfmodstudio.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Do not override the system locale, as it prevents the game from starting. launcher_unity3d_force_locale() { return 0 ; } # Link ScreenSelector.so in the game data path # as the game engine fails to find it otherwise, # even if it is in LD_LIBRARY_PATH. file_name='ScreenSelector.so' file_source="$(path_libraries)/${file_name}" file_destination_32="$(package_path 'PKG_BIN32')$(path_game_data)/$(unity3d_name)_Data/Plugins/x86/${file_name}" file_destination_64="$(package_path 'PKG_BIN64')$(path_game_data)/$(unity3d_name)_Data/Plugins/x86_64/${file_name}" mkdir --parents \ "$(dirname "$file_destination_32")" \ "$(dirname "$file_destination_64")" ln --symbolic "$file_source" "$file_destination_32" ln --symbolic "$file_source" "$file_destination_64" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages ## Disable the building of the building of the 64-bit package, ## as the 64-build of the game seems to trigger a severe memory leak that can lead to out-of-memory crashes. PACKAGES_LIST='PKG_BIN32 PKG_DATA' write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-equaboreal-1221.sh0000755000000000000000000000733214471751340014670 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # Equaboreal 12.21 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20201019.1 # Set game-specific variables GAME_ID='equaboreal-1221' GAME_NAME='Equaboreal 12.21' ARCHIVES_LIST=' ARCHIVE_ITCH_0' ARCHIVE_ITCH_0='Equaboreal_LINUX_1.02.zip' ARCHIVE_ITCH_0_URL='https://girldebord.itch.io/1221' ARCHIVE_ITCH_0_MD5='4ca58bf305ef445e3e0b8b5eb64fb319' ARCHIVE_ITCH_0_SIZE='700000' ARCHIVE_ITCH_0_VERSION='1.02-itch' ARCHIVE_ITCH_0_TYPE='zip' ARCHIVE_GAME_BIN_PATH='Equaboreal_LINUX_1.02' ARCHIVE_GAME_BIN_FILES='Equaboreal_1.02.x86_64 Equaboreal_1.02_Data/Mono* Equaboreal_1.02_Data/Managed Equaboreal_1.02_Data/Plugins UnityPlayer.so' ARCHIVE_GAME_DATA_PATH='Equaboreal_LINUX_1.02' ARCHIVE_GAME_DATA_FILES='Equaboreal_1.02_Data' DATA_DIRS='./logs' APP_MAIN_TYPE='native' APP_MAIN_PRERUN='# Work around Unity3D poor support for non-US locales export LANG=C' APP_MAIN_EXE='Equaboreal_1.02.x86_64' APP_MAIN_ICON='Equaboreal_1.02_Data/Resources/UnityPlayer.png' # Use a per-session dedicated file for logs # shellcheck disable=SC2016 APP_MAIN_OPTIONS='-logFile ./logs/$(date +%F-%R).log' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID glibc libstdc++" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" set_standard_permissions "$PLAYIT_WORKDIR/gamedata" prepare_package_layout # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-escape-goat-2.sh0000755000000000000000000000445514471751340014517 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Escape Goat 2 # send your bug reports to contact@dotslashplay.it ### script_version=20230125.2 GAME_ID='escape-goat-2' GAME_NAME='Escape Goat 2' ARCHIVE_BASE_0='gog_escape_goat_2_2.0.0.11.sh' ARCHIVE_BASE_0_MD5='50e77abfe8737c6d0e1e37e8ad2460cc' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='260000' ARCHIVE_BASE_0_VERSION='1.1.0-gog2.0.0.11' ARCHIVE_BASE_0_URL='https://www.gog.com/game/escape_goat_2' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' Content fr mono EscapeGoat2.exe Escape Goat 2.bmp Common.dll EG2.ICSharpCode.SharpZipLib.dll EG2.Newtonsoft.Json.dll EscapeGoat2.resources.dll Illuminant.dll MonoGame.Framework.dll Physics.dll SDL2-CS.dll SDL2-CS.dll.config Squared.*.dll' CONTENT_DOC_MAIN_FILES=' Linux.README ReadMe.txt' APP_MAIN_EXE='EscapeGoat2.exe' APP_MAIN_ICON='Escape Goat 2.bmp' PKG_MAIN_DEPS='mono' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libopenal.so.1 libSDL2-2.0.so.0' PKG_MAIN_DEPENDENCIES_MONO_LIBRARIES=' mscorlib.dll I18N.dll I18N.West.dll Mono.Posix.dll Mono.Security.dll System.dll System.Configuration.dll System.Core.dll System.Data.dll System.Drawing.dll System.Runtime.Serialization.dll System.Security.dll System.Xml.dll System.Xml.Linq.dll' # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-escape-goat.sh0000755000000000000000000000504514471751340014354 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Escape Goat # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220629.1 GAME_ID='escape-goat' GAME_NAME='Escape Goat' ARCHIVE_BASE_0='gog_escape_goat_2.0.0.8.sh' ARCHIVE_BASE_0_MD5='772eda5c48d59b7528a9d85b3f1f84e3' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='110000' ARCHIVE_BASE_0_VERSION='1.0.6-gog2.0.0.8' ARCHIVE_BASE_0_URL='https://www.gog.com/game/escape_goat' CONTENT_PATH_DEFAULT='data/noarch/game' ARCHIVE_DOC_DATA_FILES=' Linux.README ReadMe.txt' ARCHIVE_GAME_BIN32_FILES=' EscapeGoat.bin.x86 lib' ARCHIVE_GAME_BIN64_FILES=' EscapeGoat.bin.x86_64 lib64' ARCHIVE_GAME_DATA_FILES=' EscapeGoat.exe Escape?Goat.bmp Content fr mono Common.dll Lidgren.Network.dll MonoGame.Framework.dll Mono.Posix.dll Mono.Security.dll mscorlib.dll Physics.dll SDL2#.dll SDL2#.dll.config System.Configuration.dll System.Core.dll System.Data.dll System.dll System.Drawing.dll System.Runtime.Serialization.dll System.Security.dll System.Xml.dll' APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32='EscapeGoat.bin.x86' APP_MAIN_EXE_BIN64='EscapeGoat.bin.x86_64' APP_MAIN_ICON='Escape Goat.bmp' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-eschalon-book-1.sh0000755000000000000000000000403314471751340015042 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Eschalon: Book 1 # send your bug reports to contact@dotslashplay.it ### script_version=20230809.1 GAME_ID='eschalon-book-1' GAME_NAME='Eschalon: Book I' ARCHIVE_BASE_0='gog_eschalon_book_i_2.0.0.5.sh' ARCHIVE_BASE_0_MD5='36588478c59f0fdabf775415eeaf7c6a' ARCHIVE_BASE_0_SIZE='130000' ARCHIVE_BASE_0_VERSION='1.06-gog2.0.0.5' ARCHIVE_BASE_0_URL='https://www.gog.com/game/eschalon_book_i' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' Eschalon Book I' CONTENT_GAME_DATA_FILES=' data music sound gfx.pak' CONTENT_DOC_FILES=' license_full.txt' APP_MAIN_EXE='Eschalon Book I' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libfreetype.so.6 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libpthread.so.0 libstdc++.so.6 libX11.so.6 libXxf86vm.so.1' # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-ether-one.sh0000755000000000000000000000477614471751340014064 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Ether One # send your bug reports to contact@dotslashplay.it ### script_version=20230413.1 GAME_ID='ether-one' GAME_NAME='Ether One' ARCHIVE_BASE_0='setup_ether_one_redux_v01.06_(64bit)_(38324).exe' ARCHIVE_BASE_0_MD5='13f269e4f088c6a747f6848b678cdf46' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='3200000' ARCHIVE_BASE_0_VERSION='1.06-gog38324' ARCHIVE_BASE_0_URL='https://www.gog.com/game/ether_one' UNREALENGINE4_NAME='etherone' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" engine ${UNREALENGINE4_NAME}/binaries ${UNREALENGINE4_NAME}/plugins ${UNREALENGINE4_NAME}.exe" CONTENT_GAME_DATA_FILES=" ${UNREALENGINE4_NAME}" WINE_DIRECT3D_RENDERER='dxvk' APP_WINE_LINK_DIRS=" userdata:users/\${USER}/Documents/My Games/${UNREALENGINE4_NAME}/Saved" USER_PERSISTENT_DIRECTORIES=' userdata/Config/WindowsNoEditor userdata/SaveGames' APP_MAIN_EXE="${UNREALENGINE4_NAME}/binaries/win64/${UNREALENGINE4_NAME}-win64-shipping.exe" APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=IDICON_UE4GAME --language=1033' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPS_ARCH='gst-plugins-base gst-plugins-good gst-libav' PKG_BIN_DEPS_DEB='gstreamer1.0-plugins-base, gstreamer1.0-plugins-good, gstreamer1.0-libav' PKG_BIN_DEPS_GENTOO='media-libs/gst-plugins-base media-plugins/gst-plugins-good media-libs/gst-plugins-libav' # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-europa-universalis-2.sh0000755000000000000000000000540414471751340016157 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Europa Universalis 2 # send your bug reports to contact@dotslashplay.it ### script_version=20230730.2 GAME_ID='europa-universalis-2' GAME_NAME='Europa Universalis Ⅱ' ARCHIVE_BASE_0='setup_europa_universalis2_2.0.0.1.exe' ARCHIVE_BASE_0_MD5='eb19eab80b45105d571bf684e18118a4' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='1.09-gog2.0.0.1' ARCHIVE_BASE_0_SIZE='430000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/europa_universalis_ii' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' config *.cfg *.dll *.exe *.ini *.tlb' CONTENT_GAME_DATA_FILES=' ai avi db gfx map music scenarios sfx tutorial' CONTENT_DOC_DATA_FILES=' *.doc *.pdf *.txt' USER_PERSISTENT_DIRECTORIES=' config scenarios/save games' USER_PERSISTENT_FILES=' config.eu history.txt *.cfg *.ini' APP_MAIN_EXE='eu2.exe' APP_SETTINGS_ID="${GAME_ID}-settings" APP_SETTINGS_NAME="$GAME_NAME - Settings" APP_SETTINGS_CAT='Settings' APP_SETTINGS_EXE='eu2_settings.exe' APP_EDITOR_ID="${GAME_ID}-editor" APP_EDITOR_NAME="$GAME_NAME - Scenario editor" APP_EDITOR_EXE='scenario editor.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' application/x-id3' # Fix music playback SCRIPT_DEPS="${SCRIPT_DEPS:-} dos2unix unix2dos" # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Fix music playback config_file='music.ini' config_field='music' config_value="C:\\\\$(game_id)\\\\music" sed_pattern="s/^${config_field}=.*$/${config_field}=${config_value}/" dos2unix --quiet "$config_file" sed --in-place "$sed_pattern" "$config_file" unix2dos --quiet "$config_file" ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-evans-remains.sh0000755000000000000000000000601114471751340014726 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Evan's Remains # send your bug reports to contact@dotslashplay.it ### script_version=20230108.1 GAME_ID='evans-remains' GAME_NAME='Evan’s Remains' ARCHIVE_BASE_0='setup_evans_remains_1.0_(41967).exe' ARCHIVE_BASE_0_MD5='a91b5a8801daa0befc00e581e28d676a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='180000' ARCHIVE_BASE_0_VERSION='3.3.3-gog41967' ARCHIVE_BASE_0_URL='https://www.gog.com/game/evans_remains' CONTENT_PATH_DEFAULT='.' CONTENT_DOC_DATA_FILES=' license.txt' CONTENT_GAME_BIN_FILES=' evansremains.exe options.ini' CONTENT_GAME_DATA_FILES=' *.csv *.ttf data.win' APP_MAIN_EXE='evansremains.exe' APP_WINE_LINK_DIRS=' userdata:users/${USER}/Local Settings/Application Data/Evan_v_3_3_3' USER_PERSISTENT_FILES=' userdata/gainFlag.txt userdata/save.txt' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Work around the shipped icon not using a square ratio SCRIPT_DEPS="$SCRIPT_DEPS convert" # Load common functions target_version='2.20' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Work around the shipped icon not using a square ratio icon_source_exe="$APP_MAIN_EXE" icon_source_png='evansremains.exe_14_152_2057.png' icon_source_png_cropped='evansremains.exe_14_152_2057_cropped.png' icon_converted_128='evansremains_128.png' icon_converted_192='evansremains_192.png' icon_extract_png_from_file "$icon_source_exe" "$(dirname "$icon_source_png")" convert "$icon_source_png" -crop 149x149+1x0 "$icon_source_png_cropped" convert "$icon_source_png_cropped" -resize 128x128 "$icon_converted_128" convert "$icon_source_png_cropped" -resize 192x192 "$icon_converted_192" rm "$icon_source_png_cropped" "$icon_source_png" ) # Include icons ## Work around the shipped icon not using a square ratio APP_MAIN_ICON_128='evansremains_128.png' APP_MAIN_ICON_192='evansremains_192.png' APP_MAIN_ICONS_LIST=' APP_MAIN_ICON_128 APP_MAIN_ICON_192' PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-everspace.sh0000755000000000000000000000467014471751340014144 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Everspace # send your bug reports to contact@dotslashplay.it ### script_version=20230712.2 GAME_ID='everspace' GAME_NAME='Everspace' ARCHIVE_BASE_3='everspace_1_3_5_3655_32896.sh' ARCHIVE_BASE_3_MD5='55c9230b3805c54d13371f940860d4a9' ARCHIVE_BASE_3_SIZE='11000000' ARCHIVE_BASE_3_VERSION='1.3.5-gog32896' ARCHIVE_BASE_3_URL='https://www.gog.com/game/everspace' ARCHIVE_BASE_2='everspace_1_3_4_29339.sh' ARCHIVE_BASE_2_MD5='2010b839534fb5a265eea6116b9193ae' ARCHIVE_BASE_2_SIZE='11000000' ARCHIVE_BASE_2_VERSION='1.3.4-gog29339' ARCHIVE_BASE_1='everspace_1_3_3_25886.sh' ARCHIVE_BASE_1_MD5='df8f210059a515ef738f247bfcd61bb2' ARCHIVE_BASE_1_SIZE='11000000' ARCHIVE_BASE_1_VERSION='1.3.3-gog25886' ARCHIVE_BASE_0='everspace_en_1_3_2_3_22978.sh' ARCHIVE_BASE_0_MD5='4290b47c1396f140198f45a74bf53abf' ARCHIVE_BASE_0_SIZE='11000000' ARCHIVE_BASE_0_VERSION='1.3.2.3-gog22978' UNREALENGINE4_NAME='RSG' CONTENT_PATH_DEFAULT='data/noarch/game' APPLICATIONS_PREFIX_TYPE='none' APP_MAIN_EXE="${UNREALENGINE4_NAME}/Binaries/Linux/${UNREALENGINE4_NAME}-Linux-Shipping" APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6' # Load common functions target_version='2.25' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-everything-is-garbage.sh0000755000000000000000000000747314471751340016356 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # Everything is Garbage # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20201017.1 # Set game-specific variables GAME_ID='everything-is-garbage' GAME_NAME='Everything is Garbage' ARCHIVES_LIST=' ARCHIVE_ITCH_0' ARCHIVE_ITCH_0='Everything is Garbage Linux Post Jam.zip' ARCHIVE_ITCH_0_URL='https://vfqd.itch.io/everything-is-garbage' ARCHIVE_ITCH_0_MD5='0f59c7be925145ab2cf88fa7fb5d30af' ARCHIVE_ITCH_0_SIZE='100000' ARCHIVE_ITCH_0_VERSION='1.0-itch' ARCHIVE_ITCH_0_TYPE='zip' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='Everything?Is?Garbage.x86_64 Everything?Is?Garbage_Data/Mono*/x86_64 Everything?Is?Garbage_Data/Plugins/x86_64 Everything?Is?Garbage_Data/Managed LinuxPlayer_s.debug UnityPlayer_s.debug UnityPlayer.so' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='Everything?Is?Garbage_Data' DATA_DIRS='./logs' APP_MAIN_TYPE='native' APP_MAIN_PRERUN='# Work around Unity3D poor support for non-US locales export LANG=C' APP_MAIN_EXE='Everything Is Garbage.x86_64' APP_MAIN_ICON='Everything Is Garbage_Data/Resources/UnityPlayer.png' # Use a per-session dedicated file for logs # shellcheck disable=SC2016 APP_MAIN_OPTIONS='-logFile ./logs/$(date +%F-%R).log' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID glibc libstdc++" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" set_standard_permissions "$PLAYIT_WORKDIR/gamedata" prepare_package_layout # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-everything.sh0000755000000000000000000000466314471751340014355 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Everything # send your bug reports to contact@dotslashplay.it ### script_version=20221210.1 GAME_ID='everything' GAME_NAME='Everything' UNITY3D_NAME='Everything' ARCHIVE_BASE_0='Everything_DRMfree_Linux_106.zip' ARCHIVE_BASE_0_MD5='f5e05e94702e74c23524227e6d148159' ARCHIVE_BASE_0_SIZE='1700000' ARCHIVE_BASE_0_VERSION='1.06-humble170503' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/everything' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86 ${UNITY3D_NAME}.x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64 ${UNITY3D_NAME}.x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPENDENCIES_LIBRARIES=' ld-linux-x86-64.so.2 libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2 libz.so.1' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN32_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.19' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-evoland-1.sh0000755000000000000000000000563014471751340013752 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Evoland 1 # send your bug reports to contact@dotslashplay.it ### script_version=20230824.1 GAME_ID='evoland-1' GAME_NAME='Evoland' ARCHIVE_BASE_GOG_0='setup_evoland_1.1.2490_(20677).exe' ARCHIVE_BASE_GOG_0_MD5='97978ef959d097876142ae2c6ce765c2' ARCHIVE_BASE_GOG_0_TYPE='innosetup' ARCHIVE_BASE_GOG_0_SIZE='120000' ARCHIVE_BASE_GOG_0_VERSION='1.1.2490-gog20677' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/evoland' ## This DRM-free native Linux build is no longer available for sale from the Humble Store, ## they now only sell Steam keys for the Evoland "Legendary Edition" bundle. ARCHIVE_BASE_HUMBLE_0='Evoland.exe' ARCHIVE_BASE_HUMBLE_0_MD5='9585142f38d769d4ac9125f587d0c891' ARCHIVE_BASE_HUMBLE_0_TYPE='nullsoft-installer' ARCHIVE_BASE_HUMBLE_0_SIZE='110000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.1.2490-humble1' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' adobe air dinput8.dll evoland.exe pad.exe' CONTENT_GAME_DATA_FILES=' icons meta-inf mimetype game.dat' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/com.shirogames.evoland' APP_MAIN_EXE='evoland.exe' APP_MAIN_ICONS_LIST=' APP_MAIN_ICON_16 APP_MAIN_ICON_32 APP_MAIN_ICON_48 APP_MAIN_ICON_128' APP_MAIN_ICON_16='icons/evoicon16.png' APP_MAIN_ICON_32='icons/evoicon32.png' APP_MAIN_ICON_48='icons/evoicon48.png' APP_MAIN_ICON_128='icons/evoicon128.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Ensure easy upgrades from packages generated by pre-20201219.1 script PKG_DATA_PROVIDES=' evoland-data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Ensure easy upgrades from packages generated by pre-20201219.1 script PKG_BIN_PROVIDES=' evoland' # Load common functions target_version='2.25' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata" case "$(context_archive)" in ('ARCHIVE_BASE_HUMBLE_'*) tolower . ;; esac ) # Include game icon PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-evoland-2.sh0000755000000000000000000000647214471751340013760 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # Evoland 2, A Slight Case of Spacetime Continuum Disorder # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20201219.1 # Set game-specific variables GAME_ID='evoland-2' GAME_NAME='Evoland 2, A Slight Case of Spacetime Continuum Disorder' ARCHIVE_HUMBLE='Evoland2.zip' ARCHIVE_HUMBLE_MD5='0e34269cb7db3a6c065311eea90e651a' ARCHIVE_HUMBLE_SIZE='790000' ARCHIVE_HUMBLE_VERSION='1.0.9137-humble170116' ARCHIVE_GAME_BIN_PATH='Evoland2' ARCHIVE_GAME_BIN_FILES='Adobe?AIR Evoland2.exe gamePadConfig.txt pad.exe' ARCHIVE_GAME_DATA_PATH='Evoland2' ARCHIVE_GAME_DATA_FILES='game.dat icons META-INF mimetype res.pak' DATA_DIRS='./save' APP_MAIN_TYPE='wine' APP_MAIN_EXE='Evoland2.exe' APP_MAIN_ICON='Evoland2.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine glx" # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" set_standard_permissions "$PLAYIT_WORKDIR/gamedata" prepare_package_layout rm --recursive "$PLAYIT_WORKDIR/gamedata" # Extract icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-factory-town.sh0000755000000000000000000000350714471751340014621 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Factory Town # send your bug reports to contact@dotslashplay.it ### script_version=20230930.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='factory-town' GAME_NAME='Factory Town' ARCHIVE_BASE_0_NAME='setup_factory_town_1.13.3_(64bit)_(53563).exe' ARCHIVE_BASE_0_MD5='4b9199687bd79a1d8f7641bf4577a2dd' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='630000' ARCHIVE_BASE_0_VERSION='1.13.3-gog53563' ARCHIVE_BASE_0_URL='https://www.gog.com/game/factory_town' UNITY3D_NAME='factory town' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/82 Apps/Factory Town' ## Work around missing text. WINE_WINETRICKS_VERBS='arial' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-fall-of-porcupine.sh0000755000000000000000000000437514471751340015513 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Fall of Porcupine # send your bug reports to contact@dotslashplay.it ### script_version=20240119.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='fall-of-porcupine' GAME_NAME='Fall of Porcupine' ARCHIVE_BASE_0_NAME='setup_fall_of_porcupine_1.1.12_(65935).exe' ARCHIVE_BASE_0_MD5='6b3cb17a1f869630d16ca633dc176382' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_fall_of_porcupine_1.1.12_(65935)-1.bin' ARCHIVE_BASE_0_PART1_MD5='8a32270570176b36192ac3ff8bcf7715' ARCHIVE_BASE_0_SIZE='4168652' ARCHIVE_BASE_0_VERSION='1.1.12-gog65935' ARCHIVE_BASE_0_URL='https://www.gog.com/game/fall_of_porcupine' UNITY3D_NAME='fallofporcupine' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Buntspecht Film und Digitales GmbH/FallOfPorcupine' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data ## TODO: Investigate a hashsum mismatch during data extraction: ## Warning: Output checksum mismatch for fallofporcupine_data/sharedassets11.assets.ress: ## ├─ actual: MD5 6f4cb6264ae05e5a039650fb7fd2d078 ## └─ expected: MD5 2212bc181be9503f339e23573e1c0256 archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-fallout-classics.sh0000755000000000000000000001615314471751340015436 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2021 dany_wilde set -o errexit ### # Fallout classic games: # - Fallout 1 # - Fallout 2 # send your bug reports to contact@dotslashplay.it ### script_version=20230831.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID_FALLOUT1='fallout-1' GAME_NAME_FALLOUT1='Fallout' GAME_ID_FALLOUT2='fallout-2' GAME_NAME_FALLOUT2='Fallout 2' # Archives ## Fallout 1 ARCHIVE_BASE_FALLOUT1_EN_1='setup_fallout_1.2_(27130).exe' ARCHIVE_BASE_FALLOUT1_EN_1_MD5='2cd1bb09f241c286498ea834480852ec' ARCHIVE_BASE_FALLOUT1_EN_1_TYPE='innosetup' ARCHIVE_BASE_FALLOUT1_EN_1_PART1='setup_fallout_1.2_(27130)-1.bin' ARCHIVE_BASE_FALLOUT1_EN_1_PART1_MD5='b9a0a59bc1426df4cc9588fdd5a8d736' ARCHIVE_BASE_FALLOUT1_EN_1_SIZE='600000' ARCHIVE_BASE_FALLOUT1_EN_1_VERSION='1.2-gog27130' ARCHIVE_BASE_FALLOUT1_EN_1_URL='https://www.gog.com/game/fallout' ARCHIVE_BASE_FALLOUT1_FR_1='setup_fallout_1.2_(french)_(27130).exe' ARCHIVE_BASE_FALLOUT1_FR_1_MD5='2c0d7a347a903bb52ed1d70305038e9c' ARCHIVE_BASE_FALLOUT1_FR_1_TYPE='innosetup' ARCHIVE_BASE_FALLOUT1_FR_1_PART1='setup_fallout_1.2_(french)_(27130)-1.bin' ARCHIVE_BASE_FALLOUT1_FR_1_PART1_MD5='7db5f755168b89cc38b6e090130b0e1a' ARCHIVE_BASE_FALLOUT1_FR_1_SIZE='600000' ARCHIVE_BASE_FALLOUT1_FR_1_VERSION='1.2-gog27130' ARCHIVE_BASE_FALLOUT1_FR_1_URL='https://www.gog.com/game/fallout' ARCHIVE_BASE_FALLOUT1_EN_0='setup_fallout_2.1.0.18.exe' ARCHIVE_BASE_FALLOUT1_EN_0_MD5='47b7b3c059d92c0fd6db5881635277ea' ARCHIVE_BASE_FALLOUT1_EN_0_TYPE='innosetup' ARCHIVE_BASE_FALLOUT1_EN_0_SIZE='600000' ARCHIVE_BASE_FALLOUT1_EN_0_VERSION='1.2-gog2.1.0.18' ARCHIVE_BASE_FALLOUT1_FR_0='setup_fallout_french_2.1.0.18.exe' ARCHIVE_BASE_FALLOUT1_FR_0_MD5='12ba5bb0489b5bafb777c8d07717b020' ARCHIVE_BASE_FALLOUT1_FR_0_TYPE='innosetup' ARCHIVE_BASE_FALLOUT1_FR_0_SIZE='600000' ARCHIVE_BASE_FALLOUT1_FR_0_VERSION='1.2-gog2.1.0.18' ## Fallout 2 ARCHIVE_BASE_FALLOUT2_EN_1='setup_fallout2_2.1.0.18.exe' ARCHIVE_BASE_FALLOUT2_EN_1_MD5='b20e9a133c23bf308b8460272fd32d2b' ARCHIVE_BASE_FALLOUT2_EN_1_TYPE='innosetup' ARCHIVE_BASE_FALLOUT2_EN_1_SIZE='740000' ARCHIVE_BASE_FALLOUT2_EN_1_VERSION='1.3-gog2.1.0.18' ARCHIVE_BASE_FALLOUT2_EN_1_URL='https://www.gog.com/game/fallout_2' ARCHIVE_BASE_FALLOUT2_EN_0='setup_fallout2_2.1.0.17.exe' ARCHIVE_BASE_FALLOUT2_EN_0_MD5='b40a8f2e1ff9216e25b8f09577c27f33' ARCHIVE_BASE_FALLOUT2_EN_0_TYPE='innosetup' ARCHIVE_BASE_FALLOUT2_EN_0_SIZE='740000' ARCHIVE_BASE_FALLOUT2_EN_0_VERSION='1.3-gog2.1.0.17' ARCHIVE_BASE_FALLOUT2_FR_0='setup_fallout2_french_2.1.0.17.exe' ARCHIVE_BASE_FALLOUT2_FR_0_MD5='7df6f834b480873bea2f8593254b1960' ARCHIVE_BASE_FALLOUT2_FR_0_TYPE='innosetup' ARCHIVE_BASE_FALLOUT2_FR_0_SIZE='740000' ARCHIVE_BASE_FALLOUT2_FR_0_VERSION='1.3-gog2.1.0.17' ARCHIVE_BASE_FALLOUT2_FR_0_URL='https://www.gog.com/game/fallout_2' # Archives content ## Fallout 1 CONTENT_PATH_DEFAULT_FALLOUT1='.' CONTENT_PATH_DEFAULT_FALLOUT1_EN_0='app' CONTENT_PATH_DEFAULT_FALLOUT1_FR_0='app' CONTENT_GAME_BIN_FILES_FALLOUT1=' falloutw.exe f1_res.dll f1_res_config.exe' CONTENT_GAME_L10N_PATH_FALLOUT1='__support/app' CONTENT_GAME_L10N_PATH_FALLOUT1_EN_0='app' CONTENT_GAME_L10N_PATH_FALLOUT1_FR_0='app' CONTENT_GAME_L10N_FILES_FALLOUT1=' fallout.cfg f1_res.ini' CONTENT_GAME_DATA_FILES_FALLOUT1=' critter.dat master.dat data extras fallout.ico' CONTENT_DOC_L10N_FILES_FALLOUT1=' readme.txt manual.pdf' CONTENT_DOC_DATA_FILES_FALLOUT1=' refcard.pdf readme.rtf f1_res_readme.rtf' ## Fallout 2 CONTENT_PATH_DEFAULT_FALLOUT2='app' CONTENT_GAME_BIN_FILES_FALLOUT2=' fallout2.exe f2_res.dll f2_res_config.exe f2_res.ini' CONTENT_GAME_L10N_FILES_FALLOUT2=' critter.dat master.dat translations fallout2.cfg' CONTENT_GAME_DATA_FILES_FALLOUT2=' data extras fallout2.ico sound' CONTENT_DOC_L10N_FILES_FALLOUT2=' manual.pdf' CONTENT_DOC_DATA_FILES_FALLOUT2=' refcard.pdf readme.rtf f2_res_readme.rtf faq.txt licence.txt f2_res_change.log' # Launchers USER_PERSISTENT_FILES=' *.cfg *.ini' USER_PERSISTENT_DIRECTORIES=' data/savegame' ## Disable WINE csmt to avoid performance issues WINE_WINETRICKS_VERBS='csmt=off' APP_RES_CAT='Settings' ## Fallout 1 ## The resolution tweaking tool expects write access to the game binary. USER_PERSISTENT_FILES_FALLOUT1="${USER_PERSISTENT_FILES:-} falloutw.exe" APP_MAIN_EXE_FALLOUT1='falloutw.exe' APP_MAIN_ICON_FALLOUT1='fallout.ico' APP_RES_ID_FALLOUT1="${GAME_ID_FALLOUT1}-resolution" APP_RES_NAME_FALLOUT1="$GAME_NAME_FALLOUT1 - resolution" APP_RES_EXE_FALLOUT1='f1_res_config.exe' ## Fallout 2 APP_MAIN_EXE_FALLOUT2='fallout2.exe' APP_MAIN_ICON_FALLOUT2='fallout2.ico' APP_RES_ID_FALLOUT2="${GAME_ID_FALLOUT2}-resolution" APP_RES_NAME_FALLOUT2="$GAME_NAME_FALLOUT2 - resolution" APP_RES_EXE_FALLOUT2='f2_res_config.exe' # Packages PACKAGES_LIST='PKG_BIN PKG_L10N PKG_DATA' PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' ## Fallout 1 PKG_L10N_ID_FALLOUT1="${GAME_ID_FALLOUT1}-l10n" PKG_L10N_ID_FALLOUT1_EN="${PKG_L10N_ID_FALLOUT1}-en" PKG_L10N_ID_FALLOUT1_FR="${PKG_L10N_ID_FALLOUT1}-fr" PKG_L10N_PROVIDES_FALLOUT1=" $PKG_L10N_ID_FALLOUT1" ## Easier upgrade from packages generated with pre-20190116.1 scripts PKG_L10N_PROVIDES_FALLOUT1="${PKG_L10N_PROVIDES_FALLOUT1} fallout-l10n" PKG_DATA_ID_FALLOUT1="${GAME_ID_FALLOUT1}-data" ## Easier upgrade from packages generated with pre-20190116.1 scripts PKG_DATA_PROVIDES_FALLOUT1="${PKG_DATA_PROVIDES_FALLOUT1} fallout-data" PKG_BIN_DEPS_FALLOUT1="$PKG_L10N_ID_FALLOUT1 $PKG_DATA_ID_FALLOUT1" ## Easier upgrade from packages generated with pre-20190116.1 scripts PKG_BIN_PROVIDES_FALLOUT1="${PKG_BIN_PROVIDES_FALLOUT1} fallout" ## Fallout 2 PKG_L10N_ID_FALLOUT2="${GAME_ID_FALLOUT2}-l10n" PKG_L10N_ID_FALLOUT2_EN="${PKG_L10N_ID_FALLOUT2}-en" PKG_L10N_ID_FALLOUT2_FR="${PKG_L10N_ID_FALLOUT2}-fr" PKG_L10N_PROVIDES_FALLOUT2=" $PKG_L10N_ID_FALLOUT2" PKG_DATA_ID_FALLOUT2="${GAME_ID_FALLOUT2}-data" PKG_BIN_DEPS_FALLOUT2="$PKG_L10N_ID_FALLOUT2 $PKG_DATA_ID_FALLOUT2" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icons ## Fallout 1 - Drop the easter egg icon icon_extract_png_from_ico() { local file destinatopm file="$1" destination="$2" icon_convert_to_png "$file" "$destination" rm --force "${destination}/fallout-4.png" } PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-fallout-new-vegas.sh0000755000000000000000000002207314471751340015524 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Fallout: New Vegas # send your bug reports to contact@dotslashplay.it ### script_version=20230418.1 GAME_ID='fallout-new-vegas' GAME_NAME='Fallout: New Vegas' ARCHIVE_BASE_EN_1='setup_fallout_new_vegas_1.4.0.525(a)_(55068).exe' ARCHIVE_BASE_EN_1_MD5='2381656fd552e5b93c143336fedbc21d' ARCHIVE_BASE_EN_1_TYPE='innosetup' ARCHIVE_BASE_EN_1_PART1='setup_fallout_new_vegas_1.4.0.525(a)_(55068)-1.bin' ARCHIVE_BASE_EN_1_PART1_MD5='e0979d7e1d0145cd7bb6d1ad62419a17' ARCHIVE_BASE_EN_1_PART2='setup_fallout_new_vegas_1.4.0.525(a)_(55068)-2.bin' ARCHIVE_BASE_EN_1_PART2_MD5='730ae6ea0eb5d41773be6bb19bb15d57' ARCHIVE_BASE_EN_1_SIZE='9900000' ARCHIVE_BASE_EN_1_VERSION='1.4.0.525-gog55068' ARCHIVE_BASE_EN_1_URL='https://www.gog.com/game/fallout_new_vegas_ultimate_edition' ARCHIVE_BASE_FR_1='setup_fallout_new_vegas_1.4.0.525(a)_(french)_(55068).exe' ARCHIVE_BASE_FR_1_MD5='841d652c40c7c4bb54830ba768bf48a7' ARCHIVE_BASE_FR_1_TYPE='innosetup' ARCHIVE_BASE_FR_1_PART1='setup_fallout_new_vegas_1.4.0.525(a)_(french)_(55068)-1.bin' ARCHIVE_BASE_FR_1_PART1_MD5='054a674e5246f8b8c78c02f3ee2095dc' ARCHIVE_BASE_FR_1_PART2='setup_fallout_new_vegas_1.4.0.525(a)_(french)_(55068)-2.bin' ARCHIVE_BASE_FR_1_PART2_MD5='a3d4bbfd30d2d60389ed2d2b4b5aed07' ARCHIVE_BASE_FR_1_SIZE='10000000' ARCHIVE_BASE_FR_1_VERSION='1.4.0.525-gog55068' ARCHIVE_BASE_FR_1_URL='https://www.gog.com/game/fallout_new_vegas_ultimate_edition' ARCHIVE_BASE_EN_0='setup_fallout_new_vegas_1.4.0.525_(12010).exe' ARCHIVE_BASE_EN_0_MD5='be32894fe423302d299fa532e5641079' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_PART1='setup_fallout_new_vegas_1.4.0.525_(12010)-1.bin' ARCHIVE_BASE_EN_0_PART1_MD5='245661b2e1435c530763ae281ccecd9f' ARCHIVE_BASE_EN_0_PART2='setup_fallout_new_vegas_1.4.0.525_(12010)-2.bin' ARCHIVE_BASE_EN_0_PART2_MD5='705e7097b9c18836118c2e9eb42b19ed' ARCHIVE_BASE_EN_0_SIZE='11000000' ARCHIVE_BASE_EN_0_VERSION='1.4.0.525-gog12010' ARCHIVE_BASE_FR_0='setup_fallout_new_vegas_french_1.4.0.525_(12010).exe' ARCHIVE_BASE_FR_0_MD5='da79e8756efb16b211a76756cd8865b3' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_PART1='setup_fallout_new_vegas_french_1.4.0.525_(12010)-1.bin' ARCHIVE_BASE_FR_0_PART1_MD5='245661b2e1435c530763ae281ccecd9f' ARCHIVE_BASE_FR_0_PART2='setup_fallout_new_vegas_french_1.4.0.525_(12010)-2.bin' ARCHIVE_BASE_FR_0_PART2_MD5='e148a49b1bbcfa4b2662e45691ae606e' ARCHIVE_BASE_FR_0_SIZE='11000000' ARCHIVE_BASE_FR_0_VERSION='1.4.0.525-gog12010' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_EN_0='app' CONTENT_PATH_DEFAULT_FR_0='app' CONTENT_GAME_BIN_FILES=' *.dll falloutnv.exe geck.exe low.ini medium.ini high.ini veryhigh.ini' CONTENT_GAME_L10N_FILES=' falloutnvlauncher.exe fallout_default.ini data/credits.txt data/creditswacky.txt data/falloutnv.esm data/fallout?-?voices1.bsa data/video/fnvintro.bik' CONTENT_GAME_DLC1_FILES=' data/deadmoney*' CONTENT_GAME_DLC2_FILES=' data/honesthearts*' CONTENT_GAME_DLC3_FILES=' data/oldworldblues*' CONTENT_GAME_DLC4_FILES=' data/lonesomeroad*' CONTENT_GAME_DLC5_FILES=' data/gunrunnersarsenal*' CONTENT_GAME_DLC6_FILES=' data/caravanpack*' CONTENT_GAME_DLC7_FILES=' data/classicpack*' CONTENT_GAME_DLC8_FILES=' data/mercenarypack*' CONTENT_GAME_DLC9_FILES=' data/tribalpack*' CONTENT_GAME_DATA_FILES=' maintitle.wav geckicon.ico data falloutnv.ico' CONTENT_DOC_L10N_FILES=' *.txt' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/My Games/FalloutNV' APP_MAIN_EXE='falloutnvlauncher.exe' APP_MAIN_ICON='falloutnv.ico' APP_EDITOR_ID="${GAME_ID}-editor" APP_EDITOR_NAME="${GAME_NAME} - Editor" APP_EDITOR_EXE='geck.exe' APP_EDITOR_ICON='geckicon.ico' PACKAGES_LIST='PKG_BIN PKG_L10N PKG_DLC1 PKG_DLC2 PKG_DLC3 PKG_DLC4 PKG_DLC5 PKG_DLC6 PKG_DLC7 PKG_DLC8 PKG_DLC9 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_ID_EN="${PKG_L10N_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' PKG_BIN_ID="$GAME_ID" PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_L10N_ID $PKG_DATA_ID" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' application/x-id3' PKG_DLC1_ID="${GAME_ID}-dlc-dead-money" PKG_DLC1_ID_EN="${PKG_DLC1_ID}-en" PKG_DLC1_ID_FR="${PKG_DLC1_ID}-fr" PKG_DLC1_PROVIDES=" $PKG_DLC1_ID" PKG_DLC1_DESCRIPTION='Dead Money' PKG_DLC1_DESCRIPTION_EN="${PKG_DLC1_DESCRIPTION} - English version" PKG_DLC1_DESCRIPTION_FR="${PKG_DLC1_DESCRIPTION} - French version" PKG_DLC1_DEPS="$PKG_BIN_ID" PKG_DLC2_ID="${GAME_ID}-dlc-honest-hearts" PKG_DLC2_ID_EN="${PKG_DLC2_ID}-en" PKG_DLC2_ID_FR="${PKG_DLC2_ID}-fr" PKG_DLC2_PROVIDES=" $PKG_DLC2_ID" PKG_DLC2_DESCRIPTION='Honest Hearts' PKG_DLC2_DESCRIPTION_EN="${PKG_DLC2_DESCRIPTION} - English version" PKG_DLC2_DESCRIPTION_FR="${PKG_DLC2_DESCRIPTION} - French version" PKG_DLC2_DEPS="$PKG_BIN_ID" PKG_DLC3_ID="${GAME_ID}-dlc-old-world-blues" PKG_DLC3_ID_EN="${PKG_DLC3_ID}-en" PKG_DLC3_ID_FR="${PKG_DLC3_ID}-fr" PKG_DLC3_PROVIDES=" $PKG_DLC3_ID" PKG_DLC3_DESCRIPTION='Old World Blues' PKG_DLC3_DESCRIPTION_EN="${PKG_DLC3_DESCRIPTION} - English version" PKG_DLC3_DESCRIPTION_FR="${PKG_DLC3_DESCRIPTION} - French version" PKG_DLC3_DEPS="$PKG_BIN_ID" PKG_DLC4_ID="${GAME_ID}-dlc-lonesome-road" PKG_DLC4_ID_EN="${PKG_DLC4_ID}-en" PKG_DLC4_ID_FR="${PKG_DLC4_ID}-fr" PKG_DLC4_PROVIDES=" $PKG_DLC4_ID" PKG_DLC4_DESCRIPTION='Lonesome Road' PKG_DLC4_DESCRIPTION_EN="${PKG_DLC4_DESCRIPTION} - English version" PKG_DLC4_DESCRIPTION_FR="${PKG_DLC4_DESCRIPTION} - French version" PKG_DLC4_DEPS="$PKG_BIN_ID" PKG_DLC5_ID="${GAME_ID}-dlc-gun-runners-arsenal" PKG_DLC5_ID_EN="${PKG_DLC5_ID}-en" PKG_DLC5_ID_FR="${PKG_DLC5_ID}-fr" PKG_DLC5_PROVIDES=" $PKG_DLC5_ID" PKG_DLC5_DESCRIPTION='Gun Runnersʼ Arsenal' PKG_DLC5_DESCRIPTION_EN="${PKG_DLC5_DESCRIPTION} - English version" PKG_DLC5_DESCRIPTION_FR="${PKG_DLC5_DESCRIPTION} - French version" PKG_DLC5_DEPS="$PKG_BIN_ID" PKG_DLC6_ID="${GAME_ID}-dlc-caravan-pack" PKG_DLC6_ID_EN="${PKG_DLC6_ID}-en" PKG_DLC6_ID_FR="${PKG_DLC6_ID}-fr" PKG_DLC6_PROVIDES=" $PKG_DLC6_ID" PKG_DLC6_DEPS="$PKG_BIN_ID" PKG_DLC6_DESCRIPTION='Caravan Pack' PKG_DLC6_DESCRIPTION_EN="${PKG_DLC6_DESCRIPTION} - English version" PKG_DLC6_DESCRIPTION_FR="${PKG_DLC6_DESCRIPTION} - French version" PKG_DLC7_ID="${GAME_ID}-dlc-classic-pack" PKG_DLC7_ID_EN="${PKG_DLC7_ID}-en" PKG_DLC7_ID_FR="${PKG_DLC7_ID}-fr" PKG_DLC7_PROVIDES=" $PKG_DLC7_ID" PKG_DLC7_DESCRIPTION='Classic Pack' PKG_DLC7_DESCRIPTION_EN="${PKG_DLC7_DESCRIPTION} - English version" PKG_DLC7_DESCRIPTION_FR="${PKG_DLC7_DESCRIPTION} - French version" PKG_DLC7_DEPS="$PKG_BIN_ID" PKG_DLC8_ID="${GAME_ID}-dlc-mercenary-pack" PKG_DLC8_ID_EN="${PKG_DLC8_ID}-en" PKG_DLC8_ID_FR="${PKG_DLC8_ID}-fr" PKG_DLC8_PROVIDES=" $PKG_DLC8_ID" PKG_DLC8_DESCRIPTION='Mercenary Pack' PKG_DLC8_DESCRIPTION_EN="${PKG_DLC8_DESCRIPTION} - English version" PKG_DLC8_DESCRIPTION_FR="${PKG_DLC8_DESCRIPTION} - French version" PKG_DLC8_DEPS="$PKG_BIN_ID" PKG_DLC9_ID="${GAME_ID}-dlc-tribal-pack" PKG_DLC9_ID_EN="${PKG_DLC9_ID}-en" PKG_DLC9_ID_FR="${PKG_DLC9_ID}-fr" PKG_DLC9_PROVIDES=" $PKG_DLC9_ID" PKG_DLC9_DESCRIPTION='Tribal Pack' PKG_DLC9_DESCRIPTION_EN="${PKG_DLC9_DESCRIPTION} - English version" PKG_DLC9_DESCRIPTION_FR="${PKG_DLC9_DESCRIPTION} - French version" PKG_DLC9_DEPS="$PKG_BIN_ID" # Set required registry key installed_path="C:\\\\${GAME_ID}/" registry_dump_installed_path_file='registry-dumps/installed-path.reg' registry_dump_installed_path_content="Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\\Software\\Bethesda Softworks\\FalloutNV] \"Installed Path\"=\"${installed_path}\"" CONTENT_GAME_BIN_FILES="$CONTENT_GAME_BIN_FILES $registry_dump_installed_path_file" APP_REGEDIT="$APP_REGEDIT $registry_dump_installed_path_file" SCRIPT_DEPS="$SCRIPT_DEPS iconv" # 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Set required registry key mkdir --parents "$(dirname "$registry_dump_installed_path_file")" printf '%s' "$registry_dump_installed_path_content" | \ iconv \ --from-code=UTF-8 --to-code=UTF-16 \ --output="$registry_dump_installed_path_file" ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-fallout-tactics.sh0000755000000000000000000000715414471751340015265 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # Fallout Tactics # send your bug reports to contact@dotslashplay.it ### script_version=20230331.2 GAME_ID='fallout-tactics' GAME_NAME='Fallout Tactics' ARCHIVE_BASE_EN_0='setup_fallout_tactics_2.1.0.12.exe' ARCHIVE_BASE_EN_0_MD5='9cc1d9987d8a2fa6c1cc6cf9837758ad' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_SIZE='1900000' ARCHIVE_BASE_EN_0_VERSION='1.27-gog2.1.0.12' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/fallout_tactics' ARCHIVE_BASE_FR_0='setup_fallout_tactics_french_2.1.0.12.exe' ARCHIVE_BASE_FR_0_MD5='520c29934290910cdeecbc7fcca68f2b' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_SIZE='1900000' ARCHIVE_BASE_FR_0_VERSION='1.27-gog2.1.0.12' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/fallout_tactics' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' *.dll *.exe core/*.cfg' CONTENT_GAME_L10N_FILES=' tactics.cfg core/locale core/movie core/music/custom/readme.txt core/entities_0.bos core/gui_0.bos core/locale_0.bos core/loc-mis_*.bos core/mis-core_?.bos' CONTENT_GAME_DATA_FILES=' bitmaps miles fallouttactics.ico core/missions core/tables core/user core/*.bos core/game.pck' CONTENT_DOC_L10N_FILES=' readme.txt patch readme.txt fallout tactics_license.rtf' CONTENT_DOC_DATA_FILES=' *.pdf editor_readme.txt fallout editor end user license agreement.txt fot_hires_readme.rtf readme.rtf' USER_PERSISTENT_DIRECTORIES=' core/user' USER_PERSISTENT_FILES=' *.cfg core/*.cfg bos.exe ft tools.exe' APPLICATIONS_LIST='APP_MAIN APP_MAIN_RESOLUTION APP_TOOLS APP_TOOLS_RESOLUTION' APP_MAIN_EXE='bos.exe' APP_MAIN_ICON='fallouttactics.ico' APP_MAIN_RESOLUTION_ID="${GAME_ID}-hires" APP_MAIN_RESOLUTION_NAME="$GAME_NAME - HD patch" APP_MAIN_RESOLUTION_CAT='Settings' APP_MAIN_RESOLUTION_EXE='fot_hires_patch.exe' APP_MAIN_RESOLUTION_ICON='fallouttactics.ico' APP_TOOLS_ID="${GAME_ID}-tools" APP_TOOLS_NAME="$GAME_NAME - Toolbox" APP_TOOLS_EXE='ft tools.exe' APP_TOOLS_ICON='fallouttactics.ico' APP_TOOLS_RESOLUTION_ID="${APP_TOOLS_ID}-hires" APP_TOOLS_RESOLUTION_NAME="$APP_TOOLS_NAME - HD patch" APP_TOOLS_RESOLUTION_CAT='Settings' APP_TOOLS_RESOLUTION_EXE='fttools_hires_patch.exe' APP_TOOLS_RESOLUTION_ICON='fallouttactics.ico' PACKAGES_LIST='PKG_BIN PKG_L10N PKG_DATA' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_ID_EN="${PKG_L10N_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID $PKG_L10N_ID" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-fantasy-general.sh0000755000000000000000000000505014471751340015240 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # Fantasy General # send your bug reports to contact@dotslashplay.it ### script_version=20231108.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='fantasy-general' GAME_NAME='Fantasy General' ARCHIVE_BASE_EN_0_NAME='gog_fantasy_general_2.0.0.8.sh' ARCHIVE_BASE_EN_0_MD5='59b86b9115ae013d2e23a8b4b7b771fd' ARCHIVE_BASE_EN_0_SIZE='260000' ARCHIVE_BASE_EN_0_VERSION='1.0-gog2.0.0.8' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/fantasy_general' ARCHIVE_BASE_FR_0_NAME='gog_fantasy_general_french_2.0.0.8.sh' ARCHIVE_BASE_FR_0_MD5='1b188304b4cca838e6918ca6e2d9fe2b' ARCHIVE_BASE_FR_0_SIZE='240000' ARCHIVE_BASE_FR_0_VERSION='1.0-gog2.0.0.8' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/fantasy_general' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' dat exe music saves shp sound game.gog game.ins *.bat' CONTENT_DOC_MAIN_FILES=' *.txt' CONTENT_DOC0_MAIN_PATH="${CONTENT_PATH_DEFAULT}/../docs" CONTENT_DOC0_MAIN_FILES=' Fantasy General - Manual.pdf' USER_PERSISTENT_DIRECTORIES=' saves' USER_PERSISTENT_FILES=' dat/prefs.dat' GAME_IMAGE='game.ins' APP_MAIN_TYPE='dosbox' APP_MAIN_EXE='exe/barena.exe' APP_MAIN_ICON='../support/icon.png' ## Run the game binary from its parent directory. APP_MAIN_PRERUN='# Run the game binary from its parent directory APP_DIR=$(dirname "$APP_EXE") APP_EXE=$(basename "$APP_EXE") ' APP_MAIN_DOSBOX_PRERUN=' cd "$APP_DIR" ' PKG_MAIN_ID="$GAME_ID" PKG_MAIN_ID_EN="${GAME_ID}-en" PKG_MAIN_ID_FR="${GAME_ID}-fr" PKG_MAIN_PROVIDES=" $PKG_MAIN_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$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 icons_inclusion content_inclusion_default # Write launchers launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-far-from-noise.sh0000755000000000000000000000471214471751340015010 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi set -o errexit ### # Far From Noise # send your bug reports to contact@dotslashplay.it ### script_version=20230625.1 # Set game-specific variables GAME_ID='far-from-noise' GAME_NAME='Far From Noise' ARCHIVE_ITCH='Windows.zip' ARCHIVE_ITCH_URL='https://georgebatch.itch.io/far-from-noise' ARCHIVE_ITCH_MD5='7861db608070316a1a329fb140d90b8f' ARCHIVE_ITCH_SIZE='300000' ARCHIVE_ITCH_VERSION='1.0-itch1' ARCHIVE_GAME_BIN_PATH='Windows' ARCHIVE_GAME_BIN_FILES='FarFromNoise.exe FarFromNoise_Data/Plugins FarFromNoise_Data/Mono FarFromNoise_Data/Managed' ARCHIVE_GAME_DATA_PATH='Windows' ARCHIVE_GAME_DATA_FILES='FarFromNoise_Data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='FarFromNoise.exe' APP_MAIN_ICON='FarFromNoise.exe' PACKAGES_LIST='PKG_DATA PKG_BIN' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine glx" # Use persistent storage for saved games and settings DATA_DIRS="$CONFIG_DIRS ./registry-dumps" APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Set path for persistent dump of saved games and settings registry_dump_persistent="registry-dumps/persistent.reg"' APP_MAIN_POSTRUN="$APP_MAIN_POSTRUN"' # Dump saved games and settings regedit -E "$registry_dump_persistent" "HKEY_CURRENT_USER\Software\George Batchelor\Far from Noise"' APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Load dump of saved games and settings if [ -e "$registry_dump_persistent" ]; then regedit "$registry_dump_persistent" fi' # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout rm --recursive "$PLAYIT_WORKDIR/gamedata" # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-far-lone-sails.sh0000755000000000000000000000411414471751340014774 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # FAR: Lone Sails # send your bug reports to contact@dotslashplay.it ### script_version=20230410.1 GAME_ID='far-lone-sails' GAME_NAME='FAR: Lone Sails' ARCHIVE_BASE_0='setup_far_lone_sails_1.3_(56748).exe' ARCHIVE_BASE_0_MD5='f18af4cc8e730c58db71460b0dff9cae' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2700000' ARCHIVE_BASE_0_VERSION='1.3-gog56748' ARCHIVE_BASE_0_URL='https://www.gog.com/game/far_lone_sails' UNITY3D_NAME='farlonesails' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_data/plugins ${UNITY3D_NAME}.exe unitycrashhandler64.exe galaxy64.dll galaxycsharpglue.dll gameassembly.dll unityplayer.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/LocalLow/Okomotive/FarLoneSails' USER_PERSISTENT_DIRECTORIES=' userdata' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-farabel.sh0000755000000000000000000000452114471751340013556 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Farabel # send your bug reports to contact@dotslashplay.it ### script_version=20231115.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='farabel' GAME_NAME='Farabel' ARCHIVE_BASE_1_NAME='Farabel_Linux_1.2.1.zip' ARCHIVE_BASE_1_MD5='383d59983be2cedd151006d8f932e5ff' ARCHIVE_BASE_1_SIZE='430000' ARCHIVE_BASE_1_VERSION='1.2.1-humble181130' ARCHIVE_BASE_1_URL='https://www.humblebundle.com/store/farabel' ARCHIVE_BASE_0_NAME='Farabel1.2Linux.zip' ARCHIVE_BASE_0_MD5='f2bd82b7a9578e8d7f084286cdb5943f' ARCHIVE_BASE_0_SIZE='430000' ARCHIVE_BASE_0_VERSION='1.2-humble181031' UNITY3D_NAME='Farabel' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='Farabel' CONTENT_PATH_DEFAULT_0='.' FAKE_HOME_PERSISTENT_DIRECTORIES=' Frogames/Farabel' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN32' launchers_write set_current_package 'PKG_BIN64' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-fatal-fury-special.sh0000755000000000000000000000707714471751340015663 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2020, HS-157 # 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. ### ### # FATAL FURY SPECIAL # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20200725.1 # Set game-specific variables GAME_ID='fatal-fury-special' GAME_NAME="FATAL FURY SPECIAL" ARCHIVE_HUMBLE='FatalFurySpecial_jan2016.sh' ARCHIVE_HUMBLE_TYPE='mojosetup' ARCHIVE_HUMBLE_URL='https://www.humblebundle.com/store/fatal-fury-special' ARCHIVE_HUMBLE_MD5='b13a53d2944281ef2d139719ac727ef3' ARCHIVE_HUMBLE_VERSION='1.0-humblejan2016' ARCHIVE_HUMBLE_SIZE='43000' ARCHIVE_GAME_BIN32_PATH_HUMBLE='data/x86' ARCHIVE_GAME_BIN32_FILES='NeogeoEmu.bin.x86 lib' ARCHIVE_GAME_BIN64_PATH_HUMBLE='data/x86_64' ARCHIVE_GAME_BIN64_FILES='NeogeoEmu.bin.x86_64 lib64' ARCHIVE_GAME_DATA_PATH_HUMBLE='data/noarch' ARCHIVE_GAME_DATA_FILES='*' APP_MAIN_TYPE='native' APP_MAIN_ICON='FatalFurySpecial.png' APP_MAIN_EXE_BIN32='NeogeoEmu.bin.x86' APP_MAIN_EXE_BIN64='NeogeoEmu.bin.x86_64' DATA_FILES='*.ini *.rml *.txt' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID glibc libstdc++ sdl2 glx alsa libudev1" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout rm --recursive "$PLAYIT_WORKDIR/gamedata" # Extract icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-fear-equation.sh0000755000000000000000000000543014471751340014722 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Fear Equation # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220703.1 GAME_ID='fear-equation' GAME_NAME='Fear Equation' ARCHIVE_BASE_0='gog_fear_equation_2.1.0.2.sh' ARCHIVE_BASE_0_MD5='5bf5e55b87d8a9a2256a0a56531692c7' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='900000' ARCHIVE_BASE_0_VERSION='2.0.2-gog2.1.0.2' ARCHIVE_BASE_0_URL='https://www.gog.com/game/fear_equation' UNITY3D_NAME='FearEquation' CONTENT_PATH_DEFAULT='data/noarch/game' ARCHIVE_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86" ARCHIVE_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32="${UNITY3D_NAME}.x86" APP_MAIN_EXE_BIN64="${UNITY3D_NAME}.x86_64" APP_MAIN_ICON="${UNITY3D_NAME}_Data/Resources/UnityPlayer.png" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6 libGLU.so.1 xcursor" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Use a dedicated log file for the current game session APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a dedicated log file for the current game session mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Work around Unity3D poor support for non-US locales APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Work around Unity3D poor support for non-US locales export LANG=C' # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-feist.sh0000755000000000000000000000511014471751340013267 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Feist # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220629.1 GAME_ID='feist' GAME_NAME='Feist' ARCHIVE_BASE_0='gog_feist_2.4.0.7.sh' ARCHIVE_BASE_0_MD5='ce0b128c23defc946535ec180dcef121' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='470000' ARCHIVE_BASE_0_VERSION='1.1.2-gog2.4.0.7' ARCHIVE_BASE_0_URL='https://www.gog.com/game/feist' UNITY3D_NAME='Feist' CONTENT_PATH_DEFAULT='data/noarch/game' ARCHIVE_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86" ARCHIVE_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32="${UNITY3D_NAME}.x86" APP_MAIN_EXE_BIN64="${UNITY3D_NAME}.x86_64" APP_MAIN_ICON="${UNITY3D_NAME}_Data/Resources/UnityPlayer.png" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6 libGLU.so.1 xcursor" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Use a dedicated log file for the current game session APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a dedicated log file for the current game session mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-fez.sh0000755000000000000000000000533114471751340012746 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Fez # send your bug reports to contact@dotslashplay.it ### script_version=20230125.2 GAME_ID='fez' GAME_NAME='Fez' ARCHIVE_BASE_0='fez-11282016-bin' ARCHIVE_BASE_0_MD5='333d2e5f55adbd251b09e01d4da213c6' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='440000' ARCHIVE_BASE_0_VERSION='1.12-humble161128' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/fez' CONTENT_PATH_DEFAULT='data' CONTENT_GAME_MAIN_FILES=' Content gamecontrollerdb.txt monoconfig FEZ.bmp FEZ.exe Common.dll ContentSerialization.dll EasyStorage.dll FezEngine.dll FNA.dll FNA.dll.config SimpleDefinitionLanguage.dll XnaWordWrapCore.dll' CONTENT_DOC_MAIN_FILES=' Linux.README Changelog.txt README.txt' APP_MAIN_EXE='FEZ.exe' APP_MAIN_ICON='FEZ.bmp' PKG_MAIN_DEPS='mono' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libogg.so.0 libopenal.so.1 libSDL2-2.0.so.0 libvorbis.so.0 libvorbisfile.so.3' PKG_MAIN_DEPENDENCIES_MONO_LIBRARIES=' mscorlib.dll Mono.Posix.dll Mono.Security.dll System.dll System.Configuration.dll System.Core.dll System.Data.dll System.Drawing.dll System.IO.Compression.dll System.IO.Compression.FileSystem.dll System.Security.dll System.Xml.dll' # Include shipped libraries that can not be replaced by system ones CONTENT_LIBS_LIBS32_PATH="${CONTENT_PATH_DEFAULT}/lib" CONTENT_LIBS_LIBS32_FILES=' libmojoshader.so' CONTENT_LIBS_LIBS64_PATH="${CONTENT_PATH_DEFAULT}/lib64" CONTENT_LIBS_LIBS64_FILES=' libmojoshader.so' PACKAGES_LIST='PKG_MAIN PKG_LIBS32 PKG_LIBS64' PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS32_ID="$PKG_LIBS_ID" PKG_LIBS32_ARCH='32' PKG_LIBS64_ID="$PKG_LIBS_ID" PKG_LIBS64_ARCH='64' PKG_MAIN_DEPS="$PKG_MAIN_DEPS $PKG_LIBS_ID" # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-figment-1.sh0000755000000000000000000000431614471751340013753 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Figment 1 # send your bug reports to contact@dotslashplay.it ### script_version=20231015.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='figment-1' GAME_NAME='Figment' ARCHIVE_BASE_0_NAME='figment_1_1_8_24039.sh' ARCHIVE_BASE_0_MD5='c1da7eb0081fa3fc6140510cc725ee8e' ARCHIVE_BASE_0_SIZE='1100000' ARCHIVE_BASE_0_VERSION='1.1.8-gog24039' ARCHIVE_BASE_0_URL='https://www.gog.com/game/figment' UNITY3D_NAME='Figment' ## TODO: Check if we could drop the shipped Steam library. UNITY3D_PLUGINS=' libsteam_api.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' FAKE_HOME_PERSISTENT_DIRECTORIES=' My Games/Figment' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data PKG='PKG_DATA' icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN32' launchers_write PKG='PKG_BIN64' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-figment-2.sh0000755000000000000000000000375214471751340013757 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Mopi set -o errexit ### # Figment 2 # send your bug reports to contact@dotslashplay.it ### script_version=20230827.1 GAME_ID='figment-2' GAME_NAME='Figment 2: Creed Valley' ARCHIVE_BASE_0='setup_figment_2_creed_valley_1.0.11_(64bit)_(65124).exe' ARCHIVE_BASE_0_MD5='ab0bfda1b740dc5df208a4518658413d' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1600000' ARCHIVE_BASE_0_VERSION='1.0.11-gog65124' ARCHIVE_BASE_0_URL='https://www.gog.com/en/game/figment_creed_valley' UNITY3D_NAME='figment 2' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Bedtime Digital Games/Figment 2 users/${USER}/Documents/My Games/Figment 2' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.25' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files rm --recursive \ '__redist' \ 'app' \ 'commonappdata' \ 'tmp' ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-filament.sh0000755000000000000000000000660114471751340013762 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Filament # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20211229.3 # Set game-specific variables GAME_ID='filament' GAME_NAME='Filament' ARCHIVE_BASE_0='filament_1_0_2825_39570.sh' ARCHIVE_BASE_0_MD5='b4d3dfcdb34c007e3317ce474d105a89' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='1400000' ARCHIVE_BASE_0_VERSION='1.0.2825-gog39570' ARCHIVE_BASE_0_URL='https://www.gog.com/game/filament' CONTENT_PATH_DEFAULT='data/noarch/game' ARCHIVE_GAME_BIN_PATH="$CONTENT_PATH_DEFAULT" ARCHIVE_GAME_BIN_FILES=' Engine Filament/Binaries Filament/Plugins' ARCHIVE_GAME_DATA_PATH="$CONTENT_PATH_DEFAULT" ARCHIVE_GAME_DATA_FILES=' Filament/Content' APP_MAIN_TYPE='native' APP_MAIN_EXE='Filament/Binaries/Linux/Filament-Linux-Shipping' APP_MAIN_ICON='data/noarch/support/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6" # Load common functions target_version='2.14' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Include game icon PKG='PKG_DATA' icons_get_from_workdir 'APP_MAIN' # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-finding-paradise.sh0000755000000000000000000000603314471751340015366 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=20230209.1 GAME_ID='finding-paradise' GAME_NAME='Finding Paradise' ARCHIVE_BASE_1='finding_paradise_gog_3_lang_26461.sh' ARCHIVE_BASE_1_MD5='d5f8adf528d95845893b0d23dac449d6' ARCHIVE_BASE_1_TYPE='mojosetup' 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='finding_paradise_gog_3_lang_25982.sh' ARCHIVE_BASE_0_MD5='dbfe49910afb07109803ee24c796c868' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='310000' ARCHIVE_BASE_0_VERSION='3-gog25982' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN32_PATH='data/noarch/game/lib' CONTENT_LIBS_BIN32_FILES=' libruby.so.2.1' CONTENT_GAME_BIN32_FILES=' FindingParadise.x86' CONTENT_LIBS_BIN64_PATH='data/noarch/game/lib64' CONTENT_LIBS_BIN64_FILES=' libruby.so.2.1' CONTENT_GAME_BIN64_FILES=' FindingParadise.amd64' CONTENT_GAME_DATA_FILES=' Fonts mkxp mkxp.conf Audio.dat Finding Paradise.ini icon.png Finding Paradise.rgssad' APP_MAIN_EXE_BIN32='FindingParadise.x86' APP_MAIN_EXE_BIN64='FindingParadise.amd64' APP_MAIN_ICON='icon.png' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' 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_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-fire.sh0000755000000000000000000001203114471751340013102 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Fire # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210712.5 # Set game-specific variables GAME_ID='fire' GAME_NAME='Fire!' ARCHIVE_BASE_ZOOM_0='Puzzleventure-FIRE-1.1.tar.xz' ARCHIVE_BASE_ZOOM_0_MD5='3a51cae77402316fff25fae65aebf865' ARCHIVE_BASE_ZOOM_0_TYPE='tar' # The type declaration should be dropped with ./play.it 2.14 release 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='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' ARCHIVE_GAME_BIN32_PATH_ZOOM='Puzzleventure - FIRE' ARCHIVE_GAME_BIN32_PATH_HUMBLE='.' ARCHIVE_GAME_BIN32_FILES='Fire.x86 Fire_Data/Mono/x86 Fire_Data/Plugins/x86' ARCHIVE_GAME_BIN64_PATH_ZOOM='Puzzleventure - FIRE' ARCHIVE_GAME_BIN64_PATH_HUMBLE='.' ARCHIVE_GAME_BIN64_FILES='Fire.x86_64 Fire_Data/Mono/x86_64 Fire_Data/Plugins/x86_64' ARCHIVE_GAME_DATA_PATH_ZOOM='Puzzleventure - FIRE' ARCHIVE_GAME_DATA_PATH_HUMBLE='.' ARCHIVE_GAME_DATA_FILES='Fire_Data' APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32='Fire.x86' APP_MAIN_EXE_BIN64='Fire.x86_64' APP_MAIN_ICON='Fire_Data/Resources/UnityPlayer.png' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID glibc libstdc++ glx xcursor libxrandr gtk2 freetype libGLU.so.1 libX11.so.6 libgdk-x11-2.0.so.0 libgdk_pixbuf-2.0.so.0 libgobject-2.0.so.0 libglib-2.0.so.0" PKG_BIN32_DEPS_ARCH='lib32-libxext lib32-atk lib32-glib2 lib32-pango lib32-cairo lib32-fontconfig' PKG_BIN32_DEPS_DEB='libxext6, libatk1.0-0, libglib2.0-0, libpangoft2-1.0-0, libpangocairo-1.0-0, libcairo2, libpango-1.0-0, libfontconfig1' PKG_BIN32_DEPS_GENTOO='x11-libs/libXext[abi_x86_32] dev-libs/atk[abi_x86_32] dev-libs/glib[abi_x86_32] x11-libs/pango[abi_x86_32] x11-libs/cairo[abi_x86_32] media-libs/fontconfig[abi_x86_32]' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPS_ARCH='libxext atk glib2 pango cairo fontconfig' PKG_BIN64_DEPS_DEB="$PKG_BIN32_DEPS_DEB" PKG_BIN64_DEPS_GENTOO='x11-libs/libXext dev-libs/atk dev-libs/glib x11-libs/pango x11-libs/cairo media-libs/fontconfig' # Use a per-session dedicated file for logs APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a per-session dedicated file for logs mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-firewatch.sh0000755000000000000000000000361514471751340014141 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=20231111.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' 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_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libstdc++.so.6 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-fixfox.sh0000755000000000000000000000377314471751340013475 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # FixFox # send your bug reports to contact@dotslashplay.it ### script_version=20230405.1 GAME_ID='fixfox' GAME_NAME='FixFox' ARCHIVE_BASE_0='setup_fixfox_402_c39e385a_(61432).exe' ARCHIVE_BASE_0_MD5='4a2095116059e12d6c8fa7363cd30fdc' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='660000' ARCHIVE_BASE_0_VERSION='402-gog61432' ARCHIVE_BASE_0_URL='https://www.gog.com/game/fixfox' UNITY3D_NAME='fixfox' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_data/plugins ${UNITY3D_NAME}.exe monobleedingedge unitycrashhandler32.exe unityplayer.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/LocalLow/Rendlike/FixFox' USER_PERSISTENT_DIRECTORIES=' userdata' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-flashout-3d-enhanced-edition.sh0000755000000000000000000000430114471751340017503 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Flashout 3D: Enhanced Edition # send your bug reports to contact@dotslashplay.it ### script_version=20230213.1 GAME_ID='flashout-3d-enhanced-edition' GAME_NAME='Flashout 3D: Enhanced Edition' ARCHIVE_BASE_0='setup_flashout_3d_enhanced_edition_1.0.4_(58979).exe' ARCHIVE_BASE_0_MD5='f1a898a6f1a5d50f1f482170221557a5' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='830000' ARCHIVE_BASE_0_VERSION='1.0.4-gog58979' ARCHIVE_BASE_0_URL='https://www.gog.com/game/flashout_3d_enhanced_edition' UNITY3D_NAME='flashout3d-ee' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_data/mono ${UNITY3D_NAME}_data/plugins *.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" APP_MAIN_EXE="${UNITY3D_NAME}.exe" WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\Jujubee S.A.\Flashout3D-EE' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files rm --force --recursive \ 'commonappdata' \ 'tmp' ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-flat-kingdom.sh0000755000000000000000000000366014471751340014541 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi set -o errexit ### # Flat Kingdom # send your bug reports to contact@dotslashplay.it ### script_version=20230314.4 GAME_ID='flat-kingdom' GAME_NAME='Flat Kingdom' ARCHIVE_BASE_0='Flat Kingdom PC.zip' ARCHIVE_BASE_0_MD5='2b824a3f57dac2bda8d9b60efcc85ee7' ARCHIVE_BASE_0_SIZE='4400000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://gamesstarter.itch.io/flatkingdom' UNITY3D_NAME='Flat kingdom rework' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_Data/Mono ${UNITY3D_NAME}_Data/Plugins ${UNITY3D_NAME}.exe" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/LocalLow/Fat Panda/Flat Kingdom' USER_PERSISTENT_DIRECTORIES=' userdata' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-flatout-2.sh0000755000000000000000000000450314471751340013777 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # Flatout 2 # send your bug reports to contact@dotslashplay.it ### script_version=20231213.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='flatout-2' GAME_NAME='FlatOut 2' ARCHIVE_BASE_2_NAME='flatout_2_gog_3_23461.sh' ARCHIVE_BASE_2_MD5='5529dcd679eae03f23d9807efd22a182' ARCHIVE_BASE_2_SIZE='3800000' ARCHIVE_BASE_2_VERSION='1.2-gog23461' ARCHIVE_BASE_2_URL='https://www.gog.com/game/flatout_2' ARCHIVE_BASE_1_NAME='gog_flatout_2_2.1.0.6.sh' ARCHIVE_BASE_1_MD5='77cbd07105aa202ef808edebda15833a' ARCHIVE_BASE_1_SIZE='3400000' ARCHIVE_BASE_1_VERSION='1.2-gog2.1.0.6' ARCHIVE_BASE_0_NAME='gog_flatout_2_2.0.0.4.sh' ARCHIVE_BASE_0_MD5='cdc453f737159ac62bd9f59540002610' ARCHIVE_BASE_0_SIZE='3600000' ARCHIVE_BASE_0_VERSION='1.2-gog2.0.0.4' CONTENT_PATH_DEFAULT='data/noarch/prefix/drive_c/GOG Games/FlatOut 2' CONTENT_GAME_BIN_FILES=' flatout2.exe' CONTENT_GAME_DATA_FILES=' filesystem patch flatout2.ico *.bfs' CONTENT_DOC_DATA_FILES=' readme.htm *.pdf' USER_PERSISTENT_DIRECTORIES=' savegame' ## TODO: Check if this winetricks verb is required. WINE_WINETRICKS_VERBS='d3dx9' APP_MAIN_EXE='flatout2.exe' APP_MAIN_ICON='flatout2.ico' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Convert file paths to lower case. tolower . ) # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-florence.sh0000755000000000000000000000712214471751340013757 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Florence # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210525.1 # Set game-specific variables GAME_ID='florence' GAME_NAME='Florence' ARCHIVE_BASE_0='setup_florence_1.0.1.4373_(64bit)_(35616).exe' ARCHIVE_BASE_0_MD5='d9b406a2e56b740ce8c0ffd10990c15a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='1.0.1.4373-gog35616' ARCHIVE_BASE_0_SIZE='670000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/florence' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='florence.exe monobleedingedge florence_data/managed galaxy64.dll galaxycsharpglue.dll unitycrashhandler64.exe unityplayer.dll winpixeventruntime.dll' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='florence_data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='florence.exe' APP_MAIN_ICON='florence.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="${PKG_DATA_ID} wine glx" # Use a per-session dedicated file for logs APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a per-session dedicated file for logs mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Extract icons PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Clean up temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-flower.sh0000755000000000000000000000375014471751340013463 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Flower # send your bug reports to contact@dotslashplay.it ### script_version=20230409.1 GAME_ID='flower' GAME_NAME='Flower' ARCHIVE_BASE_0='setup_flower_1.45_(64bit)_(35425).exe' ARCHIVE_BASE_0_MD5='65076f1fc214fdadd4a0758235a0da20' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2300000' ARCHIVE_BASE_0_VERSION='1.45-gog35425' ARCHIVE_BASE_0_URL='https://www.gog.com/game/flower' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' fmod64.dll galaxy64.dll libscepad.dll winpixeventruntime.dll flower.exe' CONTENT_GAME_DATA_FILES=' data flower.xme font2.fnt menusystem.xme strings.xme' APP_WINE_LINK_DIRS=' userdata:users/${USER}/Documents/Flower' USER_PERSISTENT_DIRECTORIES=' userdata' APP_MAIN_EXE='flower.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Get icon PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-flux-caves.sh0000755000000000000000000000724114471751340014241 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # Flux Caves # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20201020.2 # Set game-specific variables GAME_ID='flux-caves' GAME_NAME='Flux Caves' ARCHIVES_LIST=' ARCHIVE_ITCH_0' ARCHIVE_ITCH_0='108_Linux_Full.zip' ARCHIVE_ITCH_0_URL='https://fubenalvo.itch.io/fluxcaves' ARCHIVE_ITCH_0_MD5='695038dfa472774ecfda4371100b2eb9' ARCHIVE_ITCH_0_SIZE='1100000' ARCHIVE_ITCH_0_VERSION='1.08-itch1' ARCHIVE_ITCH_0_TYPE='zip' ARCHIVE_GAME_BIN_PATH='108_Linux_Full' ARCHIVE_GAME_BIN_FILES='fluxcaves.x86_64 fluxcaves_Data/Mono*/x86_64 fluxcaves_Data/Plugins/x86_64 fluxcaves_Data/Managed' ARCHIVE_GAME_DATA_PATH='108_Linux_Full' ARCHIVE_GAME_DATA_FILES='fluxcaves_Data' DATA_DIRS='./logs' APP_MAIN_TYPE='native' APP_MAIN_PRERUN='# Work around Unity3D poor support for non-US locales export LANG=C' APP_MAIN_EXE='fluxcaves.x86_64' APP_MAIN_ICON='fluxcaves_Data/Resources/UnityPlayer.png' # Use a per-session dedicated file for logs # shellcheck disable=SC2016 APP_MAIN_OPTIONS='-logFile ./logs/$(date +%F-%R).log' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID glibc libstdc++ gtk2 freetype libgdk_pixbuf-2.0.so.0 libgobject-2.0.so.0 libglib-2.0.so.0" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-forced.sh0000755000000000000000000001017514471751340013426 0ustar rootroot#!/bin/sh -e set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # 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. ### ### # Forced # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20200212.1 # Set game-specific variables GAME_ID='forced' GAME_NAME='Forced' # This DRM-free archive does not seem to be available from humblebundle.com anymore ARCHIVE_HUMBLE='FORCED_Linux.zip' ARCHIVE_HUMBLE_MD5='039f971dc0ae0741e52865a9f23280d3' ARCHIVE_HUMBLE_SIZE='3800000' ARCHIVE_HUMBLE_VERSION='1.22-humble1' ARCHIVE_GAME_BIN32_PATH='FORCED_Linux/FORCED' ARCHIVE_GAME_BIN32_FILES='FORCED.x86 FORCED_Data/*/x86' ARCHIVE_GAME_BIN64_PATH='FORCED_Linux/FORCED' ARCHIVE_GAME_BIN64_FILES='FORCED.x86_64 FORCED_Data/*/x86_64' ARCHIVE_GAME_DATA_PATH='FORCED_Linux/FORCED' ARCHIVE_GAME_DATA_FILES='FORCED_Data' APP_MAIN_TYPE='native' APP_MAIN_PRERUN='# Work around the engine inability to handle non-US locales export LANG=C' APP_MAIN_EXE_BIN32='FORCED.x86' APP_MAIN_EXE_BIN64='FORCED.x86_64' APP_MAIN_OPTIONS='-logFile ./logs/$(date +%F-%R).log' APP_MAIN_ICON='FORCED_Data/Resources/UnityPlayer.png' DATA_DIRS='./logs ./FORCED_Data/Visual?Scripting' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID glibc libstdc++ glu glx xcursor gtk2" PKG_BIN32_DEPS_ARCH='lib32-libx11 lib32-libxext lib32-gdk-pixbuf2 lib32-glib2' PKG_BIN32_DEPS_DEB='libx11-6, libxext6, libgdk-pixbuf2.0-0, libglib2.0-0' PKG_BIN32_DEPS_GENTOO='x11-libs/libX11[abi_x86_32] x11-libs/libXext[abi_x86_32] x11-libs/gdk-pixbuf[abi_x86_32] dev-libs/glib[abi_x86_32]' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPS_ARCH='libx11 libxext gdk-pixbuf2 glib2' PKG_BIN64_DEPS_DEB="$PKG_BIN32_DEPS_DEB" PKG_BIN64_DEPS_GENTOO='x11-libs/libX11 x11-libs/libXext x11-libs/gdk-pixbuf dev-libs/glib' # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout rm --recursive "$PLAYIT_WORKDIR/gamedata" # Get game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-forgotton-anne.sh0000755000000000000000000001046714471751340015130 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # Forgotton Anne # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20200709.4 # Set game-specific variables GAME_ID='forgotton-anne' GAME_NAME='Forgotton Anne' ARCHIVES_LIST=' ARCHIVE_GOG_0' ARCHIVE_GOG_0='setup_forgotton_anne_5.5.3_(29552).exe' ARCHIVE_GOG_0_MD5='2f6b17e78651f6ccc9070705b879a6ae' ARCHIVE_GOG_0_TYPE='innosetup' ARCHIVE_GOG_0_URL='https://www.gog.com/game/forgotton_anne' ARCHIVE_GOG_0_VERSION='5.5.3-gog29552' ARCHIVE_GOG_0_SIZE='9500000' ARCHIVE_GOG_0_PART1='setup_forgotton_anne_5.5.3_(29552)-1.bin' ARCHIVE_GOG_0_PART1_MD5='8f6e836ff3519e4759af8c51ed89655d' ARCHIVE_GOG_0_PART1_TYPE='innosetup' ARCHIVE_GOG_0_PART2='setup_forgotton_anne_5.5.3_(29552)-2.bin' ARCHIVE_GOG_0_PART2_MD5='728970d510b82fc1d9d336c9e26fb8c3' ARCHIVE_GOG_0_PART2_TYPE='innosetup' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='*.dll forgottonanne.exe forgottonanne_data/monobleedingedge forgottonanne_data/plugins' ARCHIVE_GAME0_DATA_PATH='.' ARCHIVE_GAME0_DATA_FILES='forgottonanne_data' ARCHIVE_GAME1_DATA_PATH='app' ARCHIVE_GAME1_DATA_FILES='forgottonanne_data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='forgottonanne.exe' APP_MAIN_ICON='forgottonanne.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine glx" PKG_BIN_DEPS_ARCH='lib32-vulkan-icd-loader' PKG_BIN_DEPS_DEB='libvulkan1' PKG_BIN_DEPS_GENTOO='media-libs/vulkan-loader[abi_x86_32]' # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Enable dxvk patches in the WINE prefix case "$OPTION_PACKAGE" in ('deb') APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Install dxvk on first launch if [ ! -e dxvk_installed ]; then sleep 3s dxvk-setup install --development touch dxvk_installed fi' PKG_BIN_DEPS="$PKG_BIN_DEPS dxvk-wine32-development dxvk" ;; ('arch'|'gentoo') APP_WINETRICKS="$APP_WINETRICKS dxvk" PKG_BIN_DEPS="$PKG_BIN_DEPS winetricks" ;; esac # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Extract icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Clean up temporary files rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build packages write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-fossil-echo.sh0000755000000000000000000000510714471751340014376 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Fossil Echo # send your bug reports to contact@dotslashplay.it ### script_version=20230221.4 GAME_ID='fossil-echo' GAME_NAME='Fossil Echo' ARCHIVE_BASE_0='FossilEcho_setup.zip' ARCHIVE_BASE_0_MD5='079e62f826016c1d3edd35e8fe40bb3a' ARCHIVE_BASE_0_SIZE='2900000' ARCHIVE_BASE_0_VERSION='1.0-itch1' ARCHIVE_BASE_0_URL='https://awaceb.itch.io/fossilecho' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' datatypes.dll fmod.dll fmodstudio.dll fossilecho.exe' CONTENT_GAME_DATA_FILES=' content data level media' APP_WINE_LINK_DIRS=' saves:users/${USER}/Documents/SavedGames/fossilecho/saves' USER_PERSISTENT_DIRECTORIES=' data saves' APP_MAIN_TYPE='wine' APP_MAIN_EXE='fossilecho.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Install Microsoft XNA 4.0 runtime on first launch APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Do not disable mscoree library export WINEDLLOVERRIDES="winemenubuilder.exe,mshtml=" # Install Microsoft XNA 4.0 runtime on first launch if [ ! -e xna40_installed ]; then winetricks_wrapper xna40 touch xna40_installed fi' PKG_BIN_DEPS="$PKG_BIN_DEPS winetricks" # Ensure required write permissions on some paths USER_PERSISTENT_DIRECTORIES="$USER_PERSISTENT_DIRECTORIES level" # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' INNER_ARCHIVE="${PLAYIT_WORKDIR}/gamedata/FossilEcho_setup.exe" INNER_ARCHIVE_TYPE='innosetup' archive_extraction 'INNER_ARCHIVE' rm --force "$INNER_ARCHIVE" # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-fotonica.sh0000755000000000000000000000505714471751340013771 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Fotonica # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220629.1 GAME_ID='fotonica' GAME_NAME='Fotonica' ARCHIVE_BASE_0='FOTONICA_LINUX.tar.gz' ARCHIVE_BASE_0_MD5='33b8918b21c03ae0289e7050c661b534' ARCHIVE_BASE_0_SIZE='300000' ARCHIVE_BASE_0_VERSION='1.0-humble' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/fotonica' UNITY3D_NAME='FOTONICA' CONTENT_PATH_DEFAULT='FOTONICA' ARCHIVE_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86" ARCHIVE_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32="${UNITY3D_NAME}.x86" APP_MAIN_EXE_BIN64="${UNITY3D_NAME}.x86_64" APP_MAIN_ICON="${UNITY3D_NAME}_Data/Resources/UnityPlayer.png" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID libc.so.6 libGLU.so.1 xcursor libxrandr" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Use a dedicated log file for the current game session APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a dedicated log file for the current game session mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-four-sided-fantasy.sh0000755000000000000000000000766114471751340015676 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Four Sided Fantasy # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210517.5 # Set game-specific variables GAME_ID='four-sided-fantasy' GAME_NAME='Four Sided Fantasy' ARCHIVE_BASE_0='FourSidedFantasy.zip' ARCHIVE_BASE_0_MD5='3e6b74bb365bd75cf79f089ff9ddc619' ARCHIVE_BASE_0_SIZE='660000' ARCHIVE_BASE_0_VERSION='1.0-itch.2016.11.14' ARCHIVE_BASE_0_URL='https://serenity-forge.itch.io/four-sided-fantasy' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='FourSidedFantasy.exe FourSidedFantasy_Data/Mono FourSidedFantasy_Data/Plugins' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='FourSidedFantasy_Data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='FourSidedFantasy.exe' APP_MAIN_ICON='FourSidedFantasy.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="${PKG_DATA_ID} wine glx" # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Use persistent storage for game progress and settings REGISTRY_KEY='HKEY_CURRENT_USER\Software\AppDataLow\Software\LudoLand\Four Sided Fantasy' REGISTRY_DUMP='registry-dumps/persistent.reg' DATA_DIRS="${DATA_DIRS} ./$(dirname "$REGISTRY_DUMP")" APP_MAIN_PRERUN="$APP_MAIN_PRERUN # Set path for persistent dump of registry keys REGISTRY_KEY='$REGISTRY_KEY' REGISTRY_DUMP='$REGISTRY_DUMP'" APP_MAIN_POSTRUN="$APP_MAIN_POSTRUN"' # Dump registry keys wine regedit.exe -E "$REGISTRY_DUMP" "$REGISTRY_KEY"' APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Load dump of registry keys if [ -e "$REGISTRY_DUMP" ]; then wine regedit.exe "$REGISTRY_DUMP" fi' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-fox-and-flock.sh0000755000000000000000000000736214471751340014620 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Fox and Flock # send your bug reports to contact@dotslashplay.it ### script_version=20230711.1 GAME_ID='fox-and-flock' GAME_NAME='Fox & Flock' ARCHIVE_BASE_32BIT_0='ff-linux-32.zip' ARCHIVE_BASE_32BIT_0_MD5='6e0dee8044a05ee5bfef8a9885f3f456' ARCHIVE_BASE_32BIT_0_SIZE='320000' ARCHIVE_BASE_32BIT_0_VERSION='1.0.0-humble1' ARCHIVE_BASE_32BIT_0_URL='https://www.humblebundle.com/store/fox-flock' ARCHIVE_BASE_64BIT_0='ff-linux-64.zip' ARCHIVE_BASE_64BIT_0_MD5='d0c5d87d2415f4eb49c591612e877f42' ARCHIVE_BASE_64BIT_0_SIZE='310000' ARCHIVE_BASE_64BIT_0_VERSION='1.0.0-humble1' ARCHIVE_BASE_64BIT_0_URL='https://www.humblebundle.com/store/fox-flock' CONTENT_PATH_DEFAULT='Fox and Flock' CONTENT_GAME_BIN_FILES=' foxandflock nw.pak' CONTENT_LIBS_BIN_FILES=' libffmpegsumo.so' CONTENT_GAME_DATA_FILES=' dist locales icudtl.dat package.json' APP_MAIN_EXE='foxandflock' APP_MAIN_ICONS_LIST='APP_MAIN_ICON_128 APP_MAIN_ICON_256' APP_MAIN_ICON='dist/img/icon.png' APP_MAIN_ICON_128='dist/img/icon_128.png' APP_MAIN_ICON_256='dist/img/icon_256.png' PACKAGES_LIST='PKG_DATA PKG_BIN' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH_32BIT='32' PKG_BIN_ARCH_64BIT='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libasound.so.2 libcairo.so.2 libc.so.6 libdbus-1.so.3 libdl.so.2 libexpat.so.1 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgconf-2.so.4 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libnotify.so.4 libnspr4.so libnss3.so libnssutil3.so libpango-1.0.so.0 libpangocairo-1.0.so.0 libplc4.so libpthread.so.0 librt.so.1 libsmime3.so libstdc++.so.6 libX11.so.6 libXcomposite.so.1 libXcursor.so.1 libXdamage.so.1 libXext.so.6 libXfixes.so.3 libXi.so.6 libXrandr.so.2 libXrender.so.1 libXtst.so.6' # Convert icon to standard resolutions SCRIPT_DEPS="${SCRIPT_DEPS:-} convert" # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Link the shipped library into the game directory to avoid a crash on launch library_path_source="$(path_libraries)/libffmpegsumo.so" library_path_destination="$(package_get_path 'PKG_BIN')$(path_game_data)" mkdir --parents "$library_path_destination" ln --symbolic "$library_path_source" "$library_path_destination" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files find . -name '*.rsrc' -delete # Convert icon to standard resolutions icon_source=$(icon_path 'APP_MAIN_ICON') for icon_resolution in '128x128' '256x256'; do icon_destination=$(printf '%s' "$icon_source" | sed "s/\.png$/_${icon_resolution%x*}&/") convert "$icon_source" -resize "$icon_resolution" "$icon_destination" done rm "$icon_source" ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-fragments-of-euclid.sh0000755000000000000000000001042614471751340016016 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # Fragments of Euclid # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20201019.1 # Set game-specific variables GAME_ID='fragments-of-euclid' GAME_NAME='Fragments of Euclid' ARCHIVES_LIST=' ARCHIVE_ITCH_0' ARCHIVE_ITCH_0='fragments-of-euclid-linux.zip' ARCHIVE_ITCH_0_URL='https://nusan.itch.io/fragments-of-euclid' ARCHIVE_ITCH_0_MD5='2a786a3ffad74015842d85e74e2bee7f' ARCHIVE_ITCH_0_SIZE='250000' ARCHIVE_ITCH_0_VERSION='1.0-itch' ARCHIVE_ITCH_0_TYPE='zip' ARCHIVE_DOC_DATA_PATH='.' ARCHIVE_DOC_DATA_FILES='readme.txt' ARCHIVE_GAME_BIN32_PATH='.' ARCHIVE_GAME_BIN32_FILES='FragmentsOfEuclid.x86 FragmentsOfEuclid_Data/Mono/x86 FragmentsOfEuclid_Data/Plugins/x86' ARCHIVE_GAME_BIN64_PATH='.' ARCHIVE_GAME_BIN64_FILES='FragmentsOfEuclid.x86_64 FragmentsOfEuclid_Data/Mono/x86_64 FragmentsOfEuclid_Data/Plugins/x86_64' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='FragmentsOfEuclid_Data' DATA_DIRS='./logs' APP_MAIN_TYPE='native' APP_MAIN_PRERUN='# Work around Unity3D poor support for non-US locales export LANG=C' APP_MAIN_EXE_BIN32='FragmentsOfEuclid.x86' APP_MAIN_EXE_BIN64='FragmentsOfEuclid.x86_64' APP_MAIN_ICON='FragmentsOfEuclid_Data/Resources/UnityPlayer.png' # Use a per-session dedicated file for logs # shellcheck disable=SC2016 APP_MAIN_OPTIONS='-logFile ./logs/$(date +%F-%R).log' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID glibc libstdc++ libxrandr xcursor glx" PKG_BIN32_DEPS_ARCH='lib32-libx11' PKG_BIN32_DEPS_DEB='libx11-6' PKG_BIN32_DEPS_GENTOO='x11-libs/libX11[abi_x86_32]' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPS_ARCH='libx11' PKG_BIN64_DEPS_DEB="$PKG_BIN32_DEPS_DEB" PKG_BIN64_DEPS_GENTOO='x11-libs/libX11' # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" set_standard_permissions "$PLAYIT_WORKDIR/gamedata" prepare_package_layout # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-frail-hearts.sh0000755000000000000000000000613614471751340014547 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Frail Hearts # send your bug reports to contact@dotslashplay.it ### script_version=20230706.1 GAME_ID='frail-hearts' GAME_NAME='Frail Hearts: Versicorae Domlion' ARCHIVE_BASE_0='setup_frail_hearts_versicorae_domlion_1.1.1gog_(62511).exe' ARCHIVE_BASE_0_MD5='0079a30ca10ed1eecc3ca0676c6134f8' ARCHIVE_BASE_0_EXTRACTOR='innoextract' ## Do not convert file names to lowercase ARCHIVE_BASE_0_EXTRACTOR_OPTIONS=' ' ARCHIVE_BASE_0_SIZE='610000' ARCHIVE_BASE_0_VERSION='1.1.1-gog62511' ARCHIVE_BASE_0_URL='https://www.gog.com/game/frail_hearts_versicorae_domlion' CONTENT_PATH_DEFAULT='www' CONTENT_GAME_MAIN_FILES=' audio data fonts icon img js lib locales movies save www index.html translationengine.html greenworks.js package.json steam_appid.txt.txt' APPLICATIONS_LIST='APP_MAIN' APP_MAIN_ICON='icon/icon.png' PKG_MAIN_DEPS_ARCH='firefox python' PKG_MAIN_DEPS_DEB='firefox-esr | firefox, python3-minimal, libpython3-stdlib' PKG_MAIN_DEPS_GENTOO='|| ( www-client/firefox www-client/firefox-bin ) dev-lang/python' # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launcher_path=$(launcher_path 'APP_MAIN') mkdir --parents "$(dirname "$launcher_path")" { launcher_headers cat <<- EOF # Set the environment GAME_ID='$(game_id)' PATH_GAME='$(path_game_data)' EOF launcher_prefix_symlinks_functions launcher_prefix_symlinks_build cat <<- 'EOF' cd "$PATH_PREFIX" # Start local Web server WEB_HOST='localhost' WEB_PORT='8000' python3 -m http.server \ --directory "$PWD" \ --bind "$WEB_HOST" "$WEB_PORT" & WEB_PID=$! # Open URL from local Web server ( # Use a custom $HOME path, to avoid messing up with the user Firefox profiles export HOME="${PATH_PREFIX}/home" mkdir --parents "$HOME" WEB_PATH='/index.html' WEB_URL="http://${WEB_HOST}:${WEB_PORT}${WEB_PATH}" firefox -CreateProfile "$PREFIX_ID ${PWD}/firefox" firefox -kiosk -no-remote -profile "${PWD}/firefox" "$@" "$WEB_URL" ) # Stop local Web server kill -s TERM $WEB_PID EOF launcher_exit } | sed 's/ /\t/g' > "$launcher_path" chmod 755 "$launcher_path" launcher_write_desktop 'APP_MAIN' # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-fran-bow.sh0000755000000000000000000000370014471751340013673 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=20230818.1 GAME_ID='fran-bow' GAME_NAME='Fran Bow' ARCHIVE_BASE_0='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_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libssl.so.1.0.0 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 libz.so.1' # Load common functions 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-fruits-of-a-feather.sh0000755000000000000000000000364314471751340015736 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # Fruits of a Feather # send your bug reports to contact@dotslashplay.it ### script_version=20231016.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='fruits-of-a-feather' GAME_NAME='Fruits of a Feather' ARCHIVE_BASE_0='FruitsOfAFeather2.0_LINUX.zip' ARCHIVE_BASE_0_MD5='4eabeef1cfd27136a62730d5e5cf4d6f' ARCHIVE_BASE_0_SIZE='170000' ARCHIVE_BASE_0_VERSION='2.0-itch.2016.11.18' ARCHIVE_BASE_0_URL='https://samuraipunk.itch.io/feather' UNITY3D_NAME='FruitsofaFeather' UNITY3D_PLUGINS=' ScreenSelector.so sqlite3.so' CONTENT_PATH_DEFAULT='linux' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data PKG='PKG_DATA' icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-fugue.sh0000755000000000000000000000462414471751340013301 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Fugue # send your bug reports to contact@dotslashplay.it ### script_version=20231102.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='fugue' GAME_NAME='Fugue' ARCHIVE_BASE_0_NAME='fugue-linux-universal.zip' ARCHIVE_BASE_0_MD5='f950781fcb9db71a14d58199f984f770' ARCHIVE_BASE_0_SIZE='330000' ARCHIVE_BASE_0_VERSION='1.5-itch' ARCHIVE_BASE_0_URL='https://jimjastajay.itch.io/fugue' UNITY3D_NAME='Fugue' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='.' ## TODO: Check if the Steam libraries can be dropped. CONTENT_LIBS_BIN64_FILES=' libsteam_api.so' CONTENT_LIBS_BIN32_FILES=' libsteam_api64.so' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' launchers_write set_current_package 'PKG_BIN32' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-full-throttle-remastered.sh0000755000000000000000000000455614471751340017130 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 macaron # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Full Throttle Remastered # send your bug reports to contact@dotslashplay.it ### script_version=20230623.1 GAME_ID='full-throttle-remastered' GAME_NAME='Full Throttle Remastered' ARCHIVE_BASE_0='full_throttle_remastered_en_gog_3_20993.sh' ARCHIVE_BASE_0_MD5='2f4bf151e225e7dfa9bec31ed49b721c' ARCHIVE_BASE_0_SIZE='5400000' ARCHIVE_BASE_0_VERSION='1.0-gog20993' ARCHIVE_BASE_0_URL='https://www.gog.com/game/full_throttle_remastered' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_PATH='data/noarch/game/lib' CONTENT_LIBS_BIN_FILES=' libfmod.so.8' CONTENT_GAME_BIN_FILES=' Throttle gamecontrollerdb.txt' CONTENT_GAME_DATA_FILES=' full.data' CONTENT_DOC_DATA_FILES=' readme.txt' APP_MAIN_EXE='Throttle' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6' # Load common functions target_version='2.20' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' 2>/dev/null ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Restore the full data file from its parts mv 'full.data.split00' 'full.data' cat 'full.data.split01' >> 'full.data' rm 'full.data.split01' ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-gangsters-organized-crime.sh0000755000000000000000000000772314471751340017243 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright © 2015-2022, Antoine Le Gonidec # 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. ### ### # Gangsters: Organized Crime # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220118.2 # Set game-specific variables GAME_ID='gangsters-organized-crime' GAME_NAME='Gangsters: Organized Crime' ARCHIVE_BASE_0='setup_gangsters_2.0.0.15.exe' ARCHIVE_BASE_0_MD5='794561f7b449e3bfce82611f11f8bc9b' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='330000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.15' ARCHIVE_BASE_0_URL='https://www.gog.com/game/gangsters_organized_crime' CONTENT_PATH_DEFAULT='app' ARCHIVE_DOC_DATA_FILES=' *.pdf *.txt *.wri eula' ARCHIVE_GAME_BIN_FILES=' *.dll *.ini gangsters.exe' ARCHIVE_GAME_DATA_FILES=' data graphics help multiplayer?scenarios music samples scenarios sound tutorials video security.key' APP_MAIN_TYPE='wine' APP_MAIN_EXE='gangsters.exe' APP_MAIN_ICON='gangsters.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" PKG_BIN_DEPS_ARCH='lib32-gstreamer lib32-gst-plugins-base' PKG_BIN_DEPS_DEB='gstreamer1.0-plugins-base, gstreamer1.0-plugins-good' PKG_BIN_DEPS_GENTOO='media-libs/gst-plugins-base[abi_x86_32] media-libs/gst-plugins-good[abi_x86_32]' # Use persistent storage for user data DATA_DIRS='./multiplayer_saved_games ./saved_games' APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Work around ./play.it poor support for spaces in paths if [ ! -e "multiplayer saved games" ]; then ln --symbolic multiplayer_saved_games "multiplayer saved games" fi if [ ! -e "saved games" ]; then ln --symbolic saved_games "saved games" fi' # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "$PLAYIT_WORKDIR/gamedata" # Include game icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-garden-in.sh0000755000000000000000000000443314471751340014030 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Garden In # send your bug reports to contact@dotslashplay.it ### script_version=20230706.1 GAME_ID='garden-in' GAME_NAME='Garden In!' ARCHIVE_BASE_0='setup_garden_in_1.0.6.2_(64bit)_(63850).exe' ARCHIVE_BASE_0_MD5='1ed753d195f563e2a530f07743ae7a4f' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='780000' ARCHIVE_BASE_0_VERSION='1.0.6.2-gog63850' ARCHIVE_BASE_0_URL='https://www.gog.com/game/garden_in' UNREALENGINE4_NAME='gardenin' CONTENT_PATH_DEFAULT='windowsnoeditor' CONTENT_GAME_BIN_FILES=" engine ${UNREALENGINE4_NAME}/binaries ${UNREALENGINE4_NAME}/plugins ${UNREALENGINE4_NAME}.exe" CONTENT_GAME_DATA_FILES=" ${UNREALENGINE4_NAME}" WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=" users/\${USER}/AppData/Local/${UNREALENGINE4_NAME}/Saved" APP_MAIN_EXE="${UNREALENGINE4_NAME}.exe" APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=101' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_MOVIES_ID $PKG_DATA_ID" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' # Install required Microsoft Visual C++ libraries APP_WINETRICKS="${APP_WINETRICKS:-} vcrun2019" # 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-gathering-sky.sh0000755000000000000000000000751514471751340014744 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # Gathering Sky # send your bug reports to contact@dotslashplay.it ### script_version=20230812.1 GAME_ID='gathering-sky' GAME_NAME='Gathering Sky' ARCHIVE_BASE_0='GatheringSky_Linux_64bit.zip' ARCHIVE_BASE_0_MD5='c590edce835070a1ac2ae47ac620dc48' ARCHIVE_BASE_0_SIZE='1200000' ARCHIVE_BASE_0_VERSION='1.0-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/gathering-sky' CONTENT_PATH_DEFAULT='packr/linux/GatheringSky' CONTENT_GAME_DATA_FILES=' desktop-0.1.jar' CONTENT_GAME_BIN_SHIPPED_FILES=' config.json GatheringSky jre' # Launchers ## Common APPLICATIONS_LIST='APP_MAIN' ## Ensure settings can be stored APP_MAIN_PRERUN='# Ensure settings can be stored mkdir --parents "$HOME/.prefs" ' APP_MAIN_ICONS_LIST='APP_MAIN_ICON_16 APP_MAIN_ICON_32 APP_MAIN_ICON_128' APP_MAIN_ICON_16='../../../images/Icon_16.png' APP_MAIN_ICON_32='../../../images/Icon_32.png' APP_MAIN_ICON_128='../../../images/Icon_128.png' ## Using system-provided Java APP_MAIN_TYPE_BIN_SYSTEM='java' APP_MAIN_JAVA_OPTIONS_BIN_SYSTEM='-Xmx1G' APP_MAIN_EXE_BIN_SYSTEM='desktop-0.1.jar' ## Using shipped binaries APP_MAIN_EXE_BIN_SHIPPED='GatheringSky' # Packages ## Common PACKAGES_LIST='PKG_BIN_SHIPPED PKG_BIN_SYSTEM PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ID="$GAME_ID" ## Using system-provided Java PKG_BIN_SYSTEM_ID="${PKG_BIN_ID}-bin-system" PKG_BIN_SYSTEM_PROVIDES=" $PKG_BIN_ID" PKG_BIN_SYSTEM_DEPS="$PKG_DATA_ID" PKG_BIN_SYSTEM_DESCRIPTION='Using system-provided Java' ## Using shipped binaries PKG_BIN_SHIPPED_ARCH='64' PKG_BIN_SHIPPED_ID="${PKG_BIN_ID}-bin-shipped" PKG_BIN_SHIPPED_PROVIDES=" $PKG_BIN_ID" PKG_BIN_SHIPPED_DEPS="$PKG_DATA_ID" PKG_BIN_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' PKG_BIN_SYSTEM_DESCRIPTION='Using shipped binaries' # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data ## The archive includes the following entry, triggering an error during decompression: ## ?rwxr--r-- 2.0 unx 0 bl defN 14-May-31 03:43 / archive_extraction 'SOURCE_ARCHIVE' 2>/dev/null || true ARCHIVE_INNER="${PLAYIT_WORKDIR}/gamedata/GatheringSky.tar.gz" archive_extraction 'ARCHIVE_INNER' rm "$ARCHIVE_INNER" # Include game icon PKG='PKG_DATA' ARCHIVE_JAR="${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/desktop-0.1.jar" ARCHIVE_JAR_TYPE='zip' archive_extraction 'ARCHIVE_JAR' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN_SHIPPED' 'PKG_BIN_SYSTEM'; do launchers_write done # Build packages packages_generation # Print instructions case "${LANG%_*}" in ('fr') message='Utilisation des binaires fournis par %s :' bin_shipped='les développeurs' bin_system='le système' ;; ('en'|*) message='Using binaries provided by %s:' bin_shipped='the developers' bin_system='the system' ;; esac printf '\n' printf "$message" "$bin_shipped" print_instructions 'PKG_BIN_SHIPPED' 'PKG_DATA' printf "$message" "$bin_system" print_instructions 'PKG_BIN_SYSTEM' 'PKG_DATA' # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-gemcraft.sh0000755000000000000000000001161714471751340013756 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # 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. ### ### # GemCraft - Frostborn Wrath # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210325.1 # Set game-specific variables GAME_ID='gemcraft' GAME_NAME='GemCraft - Frostborn Wrath' ARCHIVES_LIST=' ARCHIVE_GOG_1 ARCHIVE_GOG_0' ARCHIVE_GOG_1='setup_gemcraft_-_frostborn_wrath_v.1.2.1a_(45694).exe' ARCHIVE_GOG_1_MD5='8b04168cdb93ed44440fe0ed4181085d' ARCHIVE_GOG_1_TYPE='innosetup' ARCHIVE_GOG_1_VERSION='1.2.1a-gog45694' ARCHIVE_GOG_1_SIZE='220000' ARCHIVE_GOG_1_URL='https://www.gog.com/game/gemcraft_frostborn_wrath' ARCHIVE_GOG_0='setup_gemcraft_-_frostborn_wrath_v.1.1.2b_(38400).exe' ARCHIVE_GOG_0_MD5='3810dc7a58febb3120047a0a041f1b60' ARCHIVE_GOG_0_TYPE='innosetup' ARCHIVE_GOG_0_VERSION='1.1.2b-gog38400' ARCHIVE_GOG_0_SIZE='220000' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='gemcraft?frostborn?wrath.exe adobe?air' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='*.swf meta-inf mimetype icons' APP_MAIN_TYPE='wine' APP_MAIN_EXE='gemcraft frostborn wrath.exe' APP_MAIN_ICON='icons/gcfw-icon-128x128tr.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="${PKG_DATA_ID} wine" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Store saved games in a persistent path DATA_DIRS="$DATA_DIRS ./saves" APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Store saved games in a persistent path saves_path_prefix="${WINEPREFIX}/drive_c/users/${USER}/My Documents/GCFW-backup1" saves_path_persistent="${PATH_PREFIX}/saves" if [ ! -h "$saves_path_prefix" ]; then if [ -d "$saves_path_prefix" ]; then # Migrate existing saved games to the persistent path mv "$saves_path_prefix"/* "$saves_path_persistent" rmdir "$saves_path_prefix" fi # Create link from prefix to persistent path mkdir --parents "$(dirname "$saves_path_prefix")" ln --symbolic "$saves_path_persistent" "$saves_path_prefix" fi' # Store settings in a persistent path CONFIG_DIRS="${CONFIG_DIRS} ./config" APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Store settings in a persistent path config_path_prefix="${WINEPREFIX}/drive_c/users/${USER}/Application Data/com.giab.games.gcfw/Local Store" config_path_persistent="${PATH_PREFIX}/config" if [ ! -h "$config_path_prefix" ]; then if [ -d "$config_path_prefix" ]; then # Migrate existing configuration to the persistent path mv "$config_path_prefix"/* "$config_path_persistent" rmdir "$config_path_prefix" fi # Create link from prefix to persistent path mkdir --parents "$(dirname "$config_path_prefix")" ln --symbolic "$config_path_persistent" "$config_path_prefix" fi' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-ghost-of-a-tale.sh0000755000000000000000000000511214471751340015046 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Ghost of a Tale # send your bug reports to contact@dotslashplay.it ### script_version=20230328.3 GAME_ID='ghost-of-a-tale' GAME_NAME='Ghost of a Tale' ARCHIVE_BASE_0='setup_ghost_of_a_tale_833_(28317).exe' ARCHIVE_BASE_0_MD5='ce98494f39f3908d33ef46e438d94da4' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_ghost_of_a_tale_833_(28317)-1.bin' ARCHIVE_BASE_0_PART1_MD5='e5a2d7c834572c438c324a5104692afb' ARCHIVE_BASE_0_SIZE='5000000' ARCHIVE_BASE_0_VERSION='8.33-gog28317' ARCHIVE_BASE_0_URL='https://www.gog.com/game/ghost_of_a_tale' UNITY3D_NAME='goat' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_data/mono ${UNITY3D_NAME}_data/plugins goat_clearpreferences.cmd goat_createreport.cmd unityplayer.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data icon.ico remote_config_cache_production_worldwide.json steam_appid.txt" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/My Games/Ghost of a Tale' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Set up a WINE virtual desktop on first launch, using the current desktop resolution PKG_BIN_DEPS="$PKG_BIN_DEPS xrandr sed" sed_expression='s/.*primary.* ([0-9]+x[0-9]+).*/\1/p' sed_options="--regexp-extended --silent --expression='$sed_expression'" APP_WINETRICKS="$APP_WINETRICKS vd=\$(LANG=C xrandr | sed $sed_options)" # 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-giana-sisters-twisted-dreams.sh0000755000000000000000000000773514471751340017677 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Giana Sisters Twisted Dreams # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210928.1 # Set game-specific variables GAME_ID='giana-sisters-twisted-dreams' GAME_NAME='Giana Sisters: Twisted Dreams' ARCHIVE_BASE_1='setup_giana_sisters_twisted_dreams_1.2.1_(19142).exe' ARCHIVE_BASE_1_MD5='e5605f4890984375192bd37545e51ff8' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_VERSION='1.2.1-gog19142' ARCHIVE_BASE_1_SIZE='2800000' ARCHIVE_BASE_1_URL='https://www.gog.com/game/giana_sisters_twisted_dreams' ARCHIVE_BASE_0='setup_giana_sisters_twisted_dreams_2.2.0.16.exe' ARCHIVE_BASE_0_MD5='31b2a0431cfd764198834faec314f0b2' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='1.0-gog2.2.0.16' ARCHIVE_BASE_0_SIZE='2900000' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES=' *.dll *.exe launcher' ARCHIVE_GAME0_DATA_PATH='.' ARCHIVE_GAME0_DATA_FILES=' bundles added_content data_common' ARCHIVE_GAME1_DATA_PATH='__support/app' ARCHIVE_GAME1_DATA_FILES='data_common' APP_WINETRICKS='xact wmp9' APP_MAIN_TYPE='wine' APP_MAIN_EXE='gsgameexe.exe' APP_MAIN_ICON='gsgameexe.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine winetricks" # Use persistent storage for user data APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/$(id -un)/My Documents/Giana Sisters - Twisted Dreams' DATA_DIRS="$DATA_DIRS ./userdata" # Keep compatibility with old archives ARCHIVE_GAME_BIN_PATH_0='app' ARCHIVE_GAME0_DATA_PATH_0='app' # Load common functions target_version='2.14' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "$PLAYIT_WORKDIR/gamedata" # Include game icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-giants-citizen-kabuto.sh0000755000000000000000000000646614471751340016407 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Giants: Citizen Kabuto # send your bug reports to contact@dotslashplay.it ### script_version=20230910.2 GAME_ID='giants-citizen-kabuto' GAME_NAME='Giants: Citizen Kabuto' ARCHIVE_BASE_0='setup_giants_2.1.0.4.exe' ARCHIVE_BASE_0_MD5='33015108ece9e52b1f525880f0867e11' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='1.4-gog2.1.0.4' ARCHIVE_BASE_0_SIZE='1600000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/giants_citizen_kabuto' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' eaxman.dll gs_ds.dll *.ini *.exe' CONTENT_GAME0_BIN_PATH="${CONTENT_PATH_DEFAULT}/__support/dx7" CONTENT_GAME0_BIN_FILES=' gg_dx7r.dll' CONTENT_GAME_DATA_FILES=' bin music stream streamenglish streamfrench streamgerman streamitalian streamspanish giants.ico language_setup.png' CONTENT_DOC_DATA_FILES=' manual.pdf *.txt' USER_PERSISTENT_DIRECTORIES=' savegame' USER_PERSISTENT_FILES=' *.ini' APP_MAIN_EXE='giants.exe' APP_MAIN_ICON='giants.ico' APP_L10N_ID="${GAME_ID}-language" APP_L10N_NAME="$GAME_NAME - Language setup" APP_L10N_EXE='language_setup.exe' APP_L10N_ICON='giants.ico' APP_L10N_CAT='Settings' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Set required registry keys destdir="C:\\\\${GAME_ID}" registry_dump_init_file='registry-dumps/init.reg' registry_dump_init_content='Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\PlanetMoon\Giants] "1.00.000"="" "DefPlayer"="Player" "DestDir"="'"${destdir}"'" "Language"="9" "SrcDir"="C:\\" [HKEY_CURRENT_USER\Software\PlanetMoon\Giants\IDs\Player] "GameOptions"=dword:00000bf3 "VideoDepth"=dword:00000020 "VideoDevGuid"=hex:e0,3d,e6,84,aa,46,cf,11,81,6f,00,00,c0,20,15,6e "VideoDrvGuid"=hex:3e,1e,b7,d7,d5,41,cf,11,f3,73,25,a2,0e,c2,cd,35' CONTENT_GAME_BIN_FILES="${CONTENT_GAME_BIN_FILES:-} $registry_dump_init_file" APP_REGEDIT="${APP_REGEDIT:-} $registry_dump_init_file" SCRIPT_DEPS="${SCRIPT_DEPS:-} iconv" # Load common functions target_version='2.25' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Set required registry keys mkdir --parents "$(dirname "$registry_dump_init_file")" printf '%s' "$registry_dump_init_content" | \ iconv --from-code=UTF-8 --to-code=UTF-16 --output="$registry_dump_init_file" ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game files content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-glittermitten-grove.sh0000755000000000000000000001015214471751340016172 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # Glittermitten Grove # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210509.1 # Set game-specific variables GAME_ID='glittermitten-grove' GAME_NAME='Glittermitten Grove' ARCHIVES_LIST=' ARCHIVE_ITCH_0' ARCHIVE_ITCH_0='GlittermittenGrove_linux_v131.zip' ARCHIVE_ITCH_0_URL='https://twinbeard.itch.io/glittermitten-grove' ARCHIVE_ITCH_0_MD5='ac9b4c6ce2b7ca921e080cee308bf952' ARCHIVE_ITCH_0_SIZE='860000' ARCHIVE_ITCH_0_VERSION='131-itch' ARCHIVE_ITCH_0_TYPE='zip' ARCHIVE_GAME_BIN32_PATH='GlittermittenGrove_linux_v131' ARCHIVE_GAME_BIN32_FILES='gmg.x86 gmg_Data/Mono*/x86 gmg_Data/Plugins/x86' ARCHIVE_GAME_BIN64_PATH='GlittermittenGrove_linux_v131' ARCHIVE_GAME_BIN64_FILES='gmg.x86_64 gmg_Data/Mono*/x86_64 gmg_Data/Plugins/x86_64' ARCHIVE_GAME_DATA_PATH='GlittermittenGrove_linux_v131' ARCHIVE_GAME_DATA_FILES='gmg_Data' DATA_DIRS='./logs' APP_MAIN_TYPE='native' APP_MAIN_PRERUN='# Work around Unity3D poor support for non-US locales export LANG=C' APP_MAIN_EXE_BIN32='gmg.x86' APP_MAIN_EXE_BIN64='gmg.x86_64' APP_MAIN_ICON='gmg_Data/Resources/UnityPlayer.png' # Use a per-session dedicated file for logs # shellcheck disable=SC2016 APP_MAIN_OPTIONS='-logFile ./logs/$(date +%F-%R).log' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID glibc libstdc++ glx xcursor libxrandr" PKG_BIN32_DEPS_ARCH='lib32-libx11' PKG_BIN32_DEPS_DEB='libx11-6' PKG_BIN32_DEPS_GENTOO='x11-libs/libX11[abi_x86_32]' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPS_ARCH='libx11' PKG_BIN64_DEPS_DEB="$PKG_BIN32_DEPS_DEB" PKG_BIN64_DEPS_GENTOO='x11-libs/libX11' # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-gnog.sh0000755000000000000000000000663214471751340013121 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # GNOG # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210920.2 # Set game-specific variables GAME_ID='gnog' GAME_NAME='GNOG' ARCHIVE_BASE_0='gnog-win.zip' ARCHIVE_BASE_0_URL='https://ko-op.itch.io/gnog' ARCHIVE_BASE_0_MD5='b3ec6cf96b200ef12604eaffb26e7753' ARCHIVE_BASE_0_SIZE='1800000' ARCHIVE_BASE_0_VERSION='1.0.6-itch.2019.08.13' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES=' *.dll *.exe gnog_data/mono gnog_data/plugins' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES=' gnog_data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='gnog.exe' APP_MAIN_ICON='gnog.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Use persistent storage for game data APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/AppData/LocalLow/KO_OP/GNOG' DATA_DIRS="$DATA_DIRS ./userdata" # Load common functions target_version='2.14' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" set_standard_permissions "$PLAYIT_WORKDIR/gamedata" tolower "$PLAYIT_WORKDIR/gamedata" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-gnomoria.sh0000755000000000000000000000551214471751340013776 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Gnomoria # send your bug reports to contact@dotslashplay.it ### script_version=20230207.2 GAME_ID='gnomoria' GAME_NAME='Gnomoria' ARCHIVE_BASE_0='gog_gnomoria_2.0.0.1.sh' ARCHIVE_BASE_0_MD5='3d0a9ed4fb45ff133b5a7410a2114455' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='230000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.1' ARCHIVE_BASE_0_URL='https://www.gog.com/game/gnomoria' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' Content Mod Files mono Gnomoria.exe Gnomoria.png FNA.dll FNA.dll.config gnomorialib.dll Steamworks.NET.dll' CONTENT_DOC_MAIN_FILES=' Linux.README' APP_MAIN_EXE='Gnomoria.exe' APP_MAIN_ICON='Gnomoria.png' PKG_MAIN_DEPS='mono' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libSDL2-2.0.so.0 libSDL2_image-2.0.so.0' PKG_MAIN_DEPENDENCIES_MONO_LIBRARIES=' mscorlib.dll Mono.Posix.dll Mono.Security.dll System.dll System.Configuration.dll System.Core.dll System.Data.dll System.Drawing.dll System.Security.dll System.Xml.dll' # Include shipped libraries that can not be replaced by system ones CONTENT_LIBS_LIBS32_PATH="${CONTENT_PATH_DEFAULT}/lib" CONTENT_LIBS_LIBS32_FILES=' libmojoshader.so libtheoraplay.so' CONTENT_LIBS_LIBS64_PATH="${CONTENT_PATH_DEFAULT}/lib64" CONTENT_LIBS_LIBS64_FILES=' libmojoshader.so libtheoraplay.so' PACKAGES_LIST='PKG_MAIN PKG_LIBS32 PKG_LIBS64' PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS_DEPENDENCIES_LIBRARIES=' libc.so.6 libm.so.6 libogg.so.0 libpthread.so.0 libtheoradec.so.1 libvorbis.so.0' PKG_LIBS32_ID="$PKG_LIBS_ID" PKG_LIBS32_ARCH='32' PKG_LIBS32_DEPENDENCIES_LIBRARIES="$PKG_LIBS_DEPENDENCIES_LIBRARIES" PKG_LIBS64_ID="$PKG_LIBS_ID" PKG_LIBS64_ARCH='64' PKG_LIBS64_DEPENDENCIES_LIBRARIES="$PKG_LIBS_DEPENDENCIES_LIBRARIES" PKG_MAIN_DEPS="$PKG_MAIN_DEPS $PKG_LIBS_ID" # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-goetia.sh0000755000000000000000000001202514471751340013430 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Goetia # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210815.3 # Set game-specific variables GAME_ID='goetia' GAME_NAME='Goetia' ARCHIVE_BASE_0='goetia_en_gog_1_18328.sh' ARCHIVE_BASE_0_MD5='13d620c4b7426cb755cba43d68cbbb1e' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='7000000' ARCHIVE_BASE_0_VERSION='1.0-gog18328' ARCHIVE_BASE_0_URL='https://www.gog.com/game/goetia' ARCHIVE_GAME_BIN32_PATH='data/noarch/game' ARCHIVE_GAME_BIN32_FILES=' Goetia.x86 Goetia_Data/Mono/x86 Goetia_Data/Plugins/x86' ARCHIVE_GAME_BIN64_PATH='data/noarch/game' ARCHIVE_GAME_BIN64_FILES=' Goetia.x86_64 Goetia_Data/Mono/x86_64 Goetia_Data/Plugins/x86_64' ARCHIVE_GAME_DATA_PATH='data/noarch/game' ARCHIVE_GAME_DATA_FILES=' Goetia_Data' APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32='Goetia.x86' APP_MAIN_EXE_BIN64='Goetia.x86_64' APP_MAIN_ICON='Goetia_Data/Resources/UnityPlayer.png' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID glibc libstdc++ glx xcursor libxrandr gtk2 libX11.so.6 libgdk_pixbuf-2.0.so.0 libgobject-2.0.so.0 libglib-2.0.so.0" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Start pulseaudio if it is available APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Start pulseaudio if it is available pulseaudio_is_available() { command -v pulseaudio >/dev/null 2>&1 } if pulseaudio_is_available; then if ! pulseaudio --check; then touch .stop_pulseaudio_on_exit fi pulseaudio --start fi' # Work around crash on launch related to libpulse # Some Unity3D games crash on launch if libpulse-simple.so.0 is available but pulseaudio is not running APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Work around crash on launch related to libpulse # Some Unity3D games crash on launch if libpulse-simple.so.0 is available but pulseaudio is not running LIBPULSE_NULL_LINK="${APP_LIBS:=libs}/libpulse-simple.so.0" if pulseaudio_is_available; then rm --force "$LIBPULSE_NULL_LINK" else mkdir --parents "$(dirname "$LIBPULSE_NULL_LINK")" ln --force --symbolic /dev/null "$LIBPULSE_NULL_LINK" fi' # Use a dedicated log file for the current game session APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a dedicated log file for the current game session mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Stop pulseaudio if it has been started for this game session APP_MAIN_POSTRUN="$APP_MAIN_POSTRUN"' # Stop pulseaudio if it has been started for this game session if [ -e .stop_pulseaudio_on_exit ]; then pulseaudio --kill rm .stop_pulseaudio_on_exit fi' # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-golden-treasure.sh0000755000000000000000000000444714471751340015271 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Golden Treasure # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220208.4 # Set game-specific variables GAME_ID='golden-treasure' GAME_NAME='Golden Treasure' ARCHIVE_BASE_0='gt1-pc-release.zip' ARCHIVE_BASE_0_MD5='97006803c1293df85b9ffe553b5785ff' ARCHIVE_BASE_0_SIZE='2400000' ARCHIVE_BASE_0_VERSION='1.1.3.190711-itch' ARCHIVE_BASE_0_URL='https://dreaming-door.itch.io/gt1' UNITY3D_NAME='Golden Treasure - The Great Green' CONTENT_PATH_DEFAULT='.' ARCHIVE_GAME_BIN_FILES=' UnityPlayer.dll Golden?Treasure?-?The?Great?Green.exe Golden?Treasure?-?The?Great?Green_Data/Plugins MonoBleedingEdge' ARCHIVE_GAME_DATA_FILES=' Golden?Treasure?-?The?Great?Green_Data' APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" APP_MAIN_ICON="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Use persistent storage for user data APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/LocalLow/Dreaming Door Studios/Golden Treasure - The Great Green' DATA_DIRS='userdata/Saves' # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Include game icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Delete temporary directories rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-gomo.sh0000755000000000000000000000731514471751340013127 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 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. ### ### # Gomo # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210725.2 # Set game-specific variables GAME_ID='gomo' GAME_NAME='Gomo' ARCHIVE_BASE_1='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='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' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='gomo.exe adobe?air gomo.swf' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='meta-inf movies music world' APP_MAIN_TYPE='wine' APP_MAIN_EXE='gomo.exe' APP_MAIN_ICON='gomo.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="${PKG_DATA_ID} wine" # Use persistent storage for saved progression APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/Application Data/Gomo' DATA_FILES="$DATA_FILES userdata/Local?Store/saves.dat" # Keep compatibility with old archives ARCHIVE_GAME_BIN_PATH_0='app' ARCHIVE_GAME_DATA_PATH_0='app' # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Extract icons PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Clean up temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "${PLAYIT_WORKDIR}" # Print instructions print_instructions exit 0 games/play-gone-home.sh0000755000000000000000000000563514471751340014047 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=20230325.6 GAME_ID='gone-home' GAME_NAME='Gone Home' ARCHIVE_BASE_1='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='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='.' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86" CONTENT_GAME_BIN32_FILES_0=" ${UNITY3D_NAME_0}.x86 ${UNITY3D_NAME_0}_Data/Mono/x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64" CONTENT_GAME_BIN64_FILES_0=" ${UNITY3D_NAME_0}.x86_64 ${UNITY3D_NAME_0}_Data/Mono/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" CONTENT_GAME_DATA_FILES_0=" ${UNITY3D_NAME_0}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-gorogoa.sh0000755000000000000000000000407314471751340013621 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Gorogoa # send your bug reports to contact@dotslashplay.it ### script_version=20230309.1 GAME_ID='gorogoa' GAME_NAME='Gorogoa' ARCHIVE_BASE_0='setup_gorogoa_1.1.0_(20406).exe' ARCHIVE_BASE_0_MD5='8238721619553923c75dafbcaec11018' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='550000' ARCHIVE_BASE_0_VERSION='1.1.0-gog20406' ARCHIVE_BASE_0_URL='https://www.gog.com/game/gorogoa' UNITY3D_NAME='gorogoa' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" unityplayer.dll ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_data/plugins ${UNITY3D_NAME}_data/mono" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" APP_WINE_LINK_DIRS=' galaxydata:users/${USER}/AppData/Local/GOG.com/Galaxy/Applications/50686913489464392/Storage' USER_PERSISTENT_DIRECTORIES=' galaxydata' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-graveyard-keeper.sh0000755000000000000000000000407614471751340015424 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Graveyard Keeper # send your bug reports to contact@dotslashplay.it ### script_version=20231112.3 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='graveyard-keeper' GAME_NAME='Graveyard Keeper' ARCHIVE_BASE_1_NAME='graveyard_keeper_1_405_55214.sh' ARCHIVE_BASE_1_MD5='6d5461b5f7571dd5bed0561d26f189b3' ARCHIVE_BASE_1_SIZE='1800000' ARCHIVE_BASE_1_VERSION='1.405-gog55214' ARCHIVE_BASE_1_URL='https://www.gog.com/game/graveyard_keeper' ARCHIVE_BASE_0_NAME='graveyard_keeper_1_402_51180.sh' ARCHIVE_BASE_0_MD5='4095c374cade58a5ce4f6a80377cbcb7' ARCHIVE_BASE_0_SIZE='1800000' ARCHIVE_BASE_0_VERSION='1.402-gog51180' UNITY3D_NAME='Graveyard Keeper' UNITY3D_PLUGINS=' sqlite3.so' ## The game crashes on launch if the steam_api library is not available. UNITY3D_PLUGINS="${UNITY3D_PLUGINS:-} libsteam_api.so" CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-greedcorp.sh0000755000000000000000000000507514471751340014141 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # GreedCorp # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220930.1 GAME_ID='greedcorp' GAME_NAME='GreedCorp' # This DRM-free archive is no longer available for sale from Humble Bundle. ARCHIVE_BASE_0='greedcorp_linux.tar.gz' ARCHIVE_BASE_0_MD5='c1cffb847bf65caf8abd4c589813884a' ARCHIVE_BASE_0_SIZE='210000' ARCHIVE_BASE_0_VERSION='1.0-humble' UNITY3D_NAME='GreedCorp' CONTENT_PATH_DEFAULT='GreedCorp' ARCHIVE_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86" ARCHIVE_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32="${UNITY3D_NAME}.x86" APP_MAIN_EXE_BIN64="${UNITY3D_NAME}.x86_64" APP_MAIN_ICON="${UNITY3D_NAME}_Data/Resources/UnityPlayer.png" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6 libGLU.so.1" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Use a dedicated log file for the current game session APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a dedicated log file for the current game session mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-grim-fandango-remastered.sh0000755000000000000000000000620714471751340017027 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Grim Fandango # send your bug reports to contact@dotslashplay.it ### script_version=20230623.1 GAME_ID='grim-fandango' GAME_NAME='Grim Fandango' ARCHIVE_BASE_0='gog_grim_fandango_remastered_2.3.0.7.sh' ARCHIVE_BASE_0_MD5='9c5d124c89521d254b0dc259635b2abe' ARCHIVE_BASE_0_EXTRACTOR='unzip' 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' PACKAGES_LIST='PKG_BIN PKG_MOVIES PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_MOVIES_ID="${GAME_ID}-movies" PKG_MOVIES_DESCRIPTION='movies' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_MOVIES_ID $PKG_DATA_ID" 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' # Work around a game crash on launch # if it exited without cleaning up its temporary files APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Work around a game crash on launch # if it exited without cleaning up its temporary files rm --force '\''c:\\temp\sector.txt'\' # 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 . "$PLAYIT_LIB2" # The game binary looks for libSDL2-2.0.so.1 instead of libSDL2-2.0.so.0 case "$OPTION_PACKAGE" in ('arch') library_source='/usr/lib32/libSDL2-2.0.so.0' ;; ('deb') library_source='/usr/lib/i386-linux-gnu/libSDL2-2.0.so.0' ;; ('gentoo'|'egentoo') library_source='/usr/lib/libSDL2-2.0.so.0' ;; esac library_destination="$(package_path 'PKG_BIN')$(path_libraries)/libSDL2-2.0.so.1" mkdir --parents "$(dirname "$library_destination")" ln --symbolic "$library_source" "$library_destination" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-grim-legends.sh0000755000000000000000000001047114471751340014540 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Grim Legends series: # - Grim Legends 1 # - Grim Legends 2 # - Grim Legends 3 # send your bug reports to contact@dotslashplay.it ### script_version=20230819.2 GAME_ID_BRIDE='grim-legends-1' GAME_NAME_BRIDE='Grim Legends: The Forsaken Bride' GAME_ID_SWAN='grim-legends-2' GAME_NAME_SWAN='Grim Legends 2: Song of the Dark Swan' GAME_ID_CITY='grim-legends-3' GAME_NAME_CITY='Grim Legends 3: The Dark City' # Archives ## Grim Legends 1 ARCHIVE_BASE_BRIDE_0='grim_legends_the_forsaken_bride_gog_1_25983.sh' ARCHIVE_BASE_BRIDE_0_MD5='3200efbc08fd59726bf9cedaadc8dee4' ARCHIVE_BASE_BRIDE_0_SIZE='2600000' ARCHIVE_BASE_BRIDE_0_VERSION='1.0-gog25983' ARCHIVE_BASE_BRIDE_0_URL='https://www.gog.com/game/grim_legends_the_forsaken_bride' ## Grim Legends 2 ARCHIVE_BASE_SWAN_0='grim_legends_2_song_of_the_dark_swan_gog_1_25983.sh' ARCHIVE_BASE_SWAN_0_MD5='6add597284fece79a12410cd50c914d8' ARCHIVE_BASE_SWAN_0_SIZE='2600000' ARCHIVE_BASE_SWAN_0_VERSION='1.0-gog25983' ARCHIVE_BASE_SWAN_0_URL='https://www.gog.com/game/grim_legends_2_song_of_the_dark_swan' ## Grim Legends 3 ARCHIVE_BASE_CITY_0='grim_legends_3_the_dark_city_gog_1_25984.sh' ARCHIVE_BASE_CITY_0_MD5='57cb3309f7207a6d2a1a7db811d63117' ARCHIVE_BASE_CITY_0_SIZE='1200000' ARCHIVE_BASE_CITY_0_VERSION='1.0-gog25984' ARCHIVE_BASE_CITY_0_URL='https://www.gog.com/game/grim_legends_3_the_dark_city' # Applications CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN32_FILES=' *_i386' CONTENT_GAME_BIN64_FILES=' *_amd64' CONTENT_GAME_DATA_FILES=' Game *.cub *.json' APP_MAIN_ICON='../support/icon.png' ## Grim Legends 1 APP_MAIN_EXE_BIN32_BRIDE='GrimLegends_TheForsakenBride_i386' APP_MAIN_EXE_BIN64_BRIDE='GrimLegends_TheForsakenBride_amd64' ## Grim Legends 2 APP_MAIN_EXE_BIN32_SWAN='GrimLegends_SongOfTheDarkSwan_i386' APP_MAIN_EXE_BIN64_SWAN='GrimLegends_SongOfTheDarkSwan_amd64' ## Grim Legends 3 APP_MAIN_EXE_BIN32_CITY='DarkCity_i386' APP_MAIN_EXE_BIN64_CITY='DarkCity_amd64' # Packages PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXext.so.6 libXinerama.so.1' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" ## Grim Legends 1 PKG_DATA_ID_BRIDE="${GAME_ID_BRIDE}-data" PKG_BIN_DEPS_BRIDE="$PKG_DATA_ID_BRIDE" PKG_BIN32_DEPS_BRIDE="$PKG_BIN_DEPS_BRIDE" PKG_BIN64_DEPS_BRIDE="$PKG_BIN_DEPS_BRIDE" ## Grim Legends 2 PKG_DATA_ID_SWAN="${GAME_ID_SWAN}-data" PKG_BIN_DEPS_SWAN="$PKG_DATA_ID_SWAN" PKG_BIN32_DEPS_SWAN="$PKG_BIN_DEPS_SWAN" PKG_BIN64_DEPS_SWAN="$PKG_BIN_DEPS_SWAN" ## Grim Legends 3 PKG_DATA_ID_CITY="${GAME_ID_CITY}-data" PKG_BIN_DEPS_CITY="$PKG_DATA_ID_CITY" PKG_BIN32_DEPS_CITY="$PKG_BIN_DEPS_CITY" PKG_BIN64_DEPS_CITY="$PKG_BIN_DEPS_CITY" PKG_BIN_DEPENDENCIES_LIBRARIES_CITY="$PKG_BIN_DEPENDENCIES_LIBRARIES libidn.so.11" PKG_BIN32_DEPENDENCIES_LIBRARIES_CITY="$PKG_BIN_DEPENDENCIES_LIBRARIES_CITY" PKG_BIN64_DEPENDENCIES_LIBRARIES_CITY="$PKG_BIN_DEPENDENCIES_LIBRARIES_CITY" # 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icons PKG='PKG_DATA' icons_inclusion # Include game content content_inclusion_default # Write launchers APP_MAIN_EXE_BIN32=$(context_value 'APP_MAIN_EXE_BIN32') APP_MAIN_EXE_BIN64=$(context_value 'APP_MAIN_EXE_BIN64') for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-grip.sh0000755000000000000000000000530214471751340013121 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Grip # send your bug reports to contact@dotslashplay.it ### script_version=20230331.2 GAME_ID='grip-game' GAME_NAME='Grip' ARCHIVE_BASE_0='setup_grip_1.5.3_v2_(50529).exe' ARCHIVE_BASE_0_MD5='1180ad9aae91fd168fb32d14c8516b05' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_grip_1.5.3_v2_(50529)-1.bin' ARCHIVE_BASE_0_PART1_MD5='ee3a558625e2a7d58f9be0bc9cbc6290' ARCHIVE_BASE_0_PART2='setup_grip_1.5.3_v2_(50529)-2.bin' ARCHIVE_BASE_0_PART2_MD5='427b9d550c93423010f688f3dd886704' ARCHIVE_BASE_0_SIZE='12000000' ARCHIVE_BASE_0_VERSION='1.5.3-gog50529' ARCHIVE_BASE_0_URL='https://www.gog.com/game/grip' UNREALENGINE4_NAME='grip' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" engine ${UNREALENGINE4_NAME}/binaries ${UNREALENGINE4_NAME}/plugins ${UNREALENGINE4_NAME}.exe" CONTENT_GAME_DATA_FILES=" ${UNREALENGINE4_NAME}" HUGE_FILES_DATA=" ${UNREALENGINE4_NAME}/content/paks/grip-windowsnoeditor.pak" WINE_DIRECT3D_RENDERER='dxvk' APP_WINE_LINK_DIRS=" userdata:users/\${USER}/AppData/Local/${UNREALENGINE4_NAME}/Saved" USER_PERSISTENT_DIRECTORIES=' userdata/Config/WindowsNoEditor userdata/SaveGames' APP_MAIN_EXE="${UNREALENGINE4_NAME}.exe" APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=101' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPS_ARCH='gst-plugins-base gst-plugins-good gst-libav' PKG_BIN_DEPS_DEB='gstreamer1.0-plugins-base, gstreamer1.0-plugins-good, gstreamer1.0-libav' PKG_BIN_DEPS_GENTOO='media-libs/gst-plugins-base media-plugins/gst-plugins-good media-libs/gst-plugins-libav' # 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-gris.sh0000755000000000000000000000417614471751340013134 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Gris # send your bug reports to contact@dotslashplay.it ### script_version=20230328.3 GAME_ID='gris' GAME_NAME='Gris' ARCHIVE_BASE_0='setup_gris_1.03_(28074).exe' ARCHIVE_BASE_0_MD5='04f25b3c789a549c0a9c4a94c6385aa0' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='3500000' ARCHIVE_BASE_0_VERSION='1.03-gog28074' ARCHIVE_BASE_0_URL='https://www.gog.com/game/gris' UNITY3D_NAME='gris' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_data/mono ${UNITY3D_NAME}_data/plugins ${UNITY3D_NAME}.exe unityplayer.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/LocalLow/nomada studio/GRIS' USER_PERSISTENT_FILES=' userdata/Save??/Persistent.gs userdata/Save??/Progress.gs' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' # Load common functions target_version='2.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 . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-grow-song-of-the-evertree.sh0000755000000000000000000000460414471751340017105 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Grow: Song of the Evertree # send your bug reports to contact@dotslashplay.it ### script_version=20230705.2 GAME_ID='grow-song-of-the-evertree' GAME_NAME='Grow: Song of the Evertree' ARCHIVE_BASE_0='setup_grow_song_of_the_evertree_1.0.6.3369_(64bit)_(54063).exe' ARCHIVE_BASE_0_MD5='a099df449e5f892ea7684b6a21868a2b' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_grow_song_of_the_evertree_1.0.6.3369_(64bit)_(54063)-1.bin' ARCHIVE_BASE_0_PART1_MD5='34d143e6eb44b5a3637419cb9245c5ad' ARCHIVE_BASE_0_SIZE='2600000' ARCHIVE_BASE_0_VERSION='1.0.6.3369-gog54063' ARCHIVE_BASE_0_URL='https://www.gog.com/game/grow_song_of_the_evertree' UNITY3D_NAME='grow' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_data/plugins monobleedingedge unityplayer.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/505 Games/Grow_ Song of The Evertree' APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files rm --recursive \ '__redist' \ 'app' \ 'commonappdata' \ 'tmp' ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-growbot.sh0000755000000000000000000000337014471751340013646 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Growbot # send your bug reports to contact@dotslashplay.it ### script_version=20231020.2 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='growbot' GAME_NAME='Growbot' ARCHIVE_BASE_0_NAME='growbot_1_6_55954.sh' ARCHIVE_BASE_0_MD5='f162fbd159809c37dd1aa9307d88eebd' ARCHIVE_BASE_0_SIZE='848320' ARCHIVE_BASE_0_VERSION='1.6-gog55954' ARCHIVE_BASE_0_URL='https://www.gog.com/game/growbot' UNITY3D_NAME='Growbot' ## The game crashes on launch if the Steam library is not included. UNITY3D_PLUGINS=' libsteam_api.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data PKG='PKG_DATA' icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-guide-of-the-butterfly.sh0000755000000000000000000000675414471751340016467 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Guide of the Butterfly # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210411.3 # Set game-specific variables GAME_ID='guide-of-the-butterfly' GAME_NAME='Guide of the Butterfly' ARCHIVES_LIST=' ARCHIVE_BASE_0' ARCHIVE_BASE_0='guide-of-the-butterfly-final.zip' ARCHIVE_BASE_0_URL='https://lparkermg.itch.io/guide-of-the-butterfly' ARCHIVE_BASE_0_MD5='a0d78bc3104d4d87350472dcfca458ec' ARCHIVE_BASE_0_SIZE='83000' ARCHIVE_BASE_0_VERSION='1.0.1-itch.2020.04.17' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='Guide_of_the_Butterfly.exe Guide_of_the_Butterfly_Data/Plugins Guide_of_the_Butterfly_Data/Managed UnityPlayer.dll MonoBleedingEdge UnityCrashHandler64.exe' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='Guide_of_the_Butterfly_Data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='Guide_of_the_Butterfly.exe' APP_MAIN_ICON='Guide_of_the_Butterfly.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" set_standard_permissions "$PLAYIT_WORKDIR/gamedata" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-gun-toting-cats.sh0000755000000000000000000000656614471751340015220 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # Gun-Toting Cats # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20201020.2 # Set game-specific variables GAME_ID='gun-toting-cats' GAME_NAME='Gun-Toting Cats' ARCHIVES_LIST=' ARCHIVE_ITCH_0' ARCHIVE_ITCH_0='(Linux) GTCats Prototype.zip' ARCHIVE_ITCH_0_URL='https://kit9studio.itch.io/gun-toting-cats' ARCHIVE_ITCH_0_MD5='4e020ea013b59e8c04a52e1f7e1e32a9' ARCHIVE_ITCH_0_SIZE='57000' ARCHIVE_ITCH_0_VERSION='1.8-itch' ARCHIVE_ITCH_0_TYPE='zip' ARCHIVE_DOC_DATA_PATH='.' ARCHIVE_DOC_DATA_FILES='licenses.txt' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='Gun-Toting?Cats?Prototype?1.8' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='data.pck' APP_MAIN_TYPE='native' APP_MAIN_EXE='Gun-Toting Cats Prototype 1.8' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID glibc libstdc++ glx libxrandr xcursor alsa" PKG_BIN_DEPS_ARCH='libx11' PKG_BIN_DEPS_DEB='libx11-6' PKG_BIN_DEPS_GENTOO='x11-libs/libX11' # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-habitat.sh0000755000000000000000000000465114471751340013602 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Habitat # send your bug reports to contact@dotslashplay.it ### script_version=20230105.2 GAME_ID='habitat' GAME_NAME='Habitat' UNITY3D_NAME='Habitat' ARCHIVE_BASE_0='Habitat_LinuxUniversal.zip' ARCHIVE_BASE_0_MD5='f845ef815eb821fdc6124f9cd1b5ca8f' ARCHIVE_BASE_0_SIZE='1600000' ARCHIVE_BASE_0_VERSION='1.0-humble160219' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/habitat' CONTENT_PATH_DEFAULT='Habitat_LinuxUniversal' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPENDENCIES_LIBRARIES=' ld-linux-x86-64.so.2 libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS_DEB" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN32_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.20' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-hacknet.sh0000755000000000000000000000771714471751340013611 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 VA # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Hacknet # send your bug reports to contact@dotslashplay.it ### script_version=20221210.2 GAME_ID='hacknet' GAME_NAME='Hacknet' ARCHIVE_BASE_0='hacknet_en_5_069_15083.sh' ARCHIVE_BASE_0_MD5='305d230cad47d696e4141320189cd4bc' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='350000' ARCHIVE_BASE_0_VERSION='5.069-gog15083' ARCHIVE_BASE_0_URL='https://www.gog.com/game/hacknet' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN32_FILES=' *.bin.x86' CONTENT_GAME_BIN64_FILES=' *.bin.x86_64' CONTENT_LIBS_BIN32_PATH="${CONTENT_PATH_DEFAULT}/lib" CONTENT_LIBS_BIN32_FILES=' libcef.so libCSteamworks.so libjpeg.so.62 libmojoshader.so libmono-2.0.so.1 libogg.so.0 libopenal.so.1 libpng15.so.15 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0 libsteam_api.so libtheoradec.so.1 libtheoraplay.so libvorbisfile.so.3 libvorbis.so.0 libXNAWebRenderer.so' CONTENT_LIBS_BIN64_PATH="${CONTENT_PATH_DEFAULT}/lib64" CONTENT_LIBS_BIN64_FILES=' libcef.so libCSteamworks.so libjpeg.so.62 libmojoshader.so libmono-2.0.so.1 libogg.so.0 libopenal.so.1 libpng15.so.15 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0 libsteam_api.so libtheoradec.so.1 libtheoraplay.so libvorbisfile.so.3 libvorbis.so.0 libXNAWebRenderer.so' CONTENT_GAME_DATA_FILES=' Content locales Extensions mono Hacknet.exe Hacknet.bmp icudtl.dat natives_blob.bin snapshot_blob.bin FNA.dll.config *.dll *.pak' APP_MAIN_EXE_BIN32='Hacknet.bin.x86' APP_MAIN_EXE_BIN64='Hacknet.bin.x86_64' APP_MAIN_ICON='../support/icon.png' USER_PERSISTENT_DIRECTORIES=' Content/People' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPENDENCIES_LIBRARIES=' ld-linux.so.2 ld-linux-x86-64.so.2 libasound.so.2 libatk-1.0.so.0 libcairo.so.2 libc.so.6 libcups.so.2 libdbus-1.so.3 libdl.so.2 libexpat.so.1 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgconf-2.so.4 libglib-2.0.so.0 libgmodule-2.0.so.0 libgobject-2.0.so.0 libm.so.6 libnspr4.so libnss3.so libnssutil3.so libpango-1.0.so.0 libpangocairo-1.0.so.0 libpthread.so.0 librt.so.1 libsmime3.so libstdc++.so.6 libX11.so.6 libXcomposite.so.1 libXcursor.so.1 libXdamage.so.1 libXext.so.6 libXfixes.so.3 libXi.so.6 libXrandr.so.2 libXrender.so.1 libXss.so.1 libXtst.so.6 libz.so.1' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN32_DEPENDENCIES_LIBRARIES" # Apply common tweaks for Mono games APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' ## Work around terminfo Mono bug, ## cf. https://github.com/mono/mono/issues/6752 export TERM="${TERM%-256color}" ## Work around Mono unpredictable behaviour with non-US locales export LANG=C' # Load common functions target_version='2.19' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Ensure that Chromium Embedded Framework is functional chmod 755 'cefprocess.bin.x86' 'cefprocess.bin.x86_64' ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-haimrik.sh0000755000000000000000000000374314471751340013613 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Haimrik # send your bug reports to contact@dotslashplay.it ### script_version=20230414.1 GAME_ID='haimrik' GAME_NAME='Haimrik' ARCHIVE_BASE_0='setup_haimrik_gog-1_(21463).exe' ARCHIVE_BASE_0_MD5='e3b7d537806906050fc4f4400162c9f1' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1400000' ARCHIVE_BASE_0_VERSION='1.0-gog21463' ARCHIVE_BASE_0_URL='https://www.gog.com/game/haimrik' UNITY3D_NAME='haimrik' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_data/mono ${UNITY3D_NAME}_data/plugins ${UNITY3D_NAME}.exe" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/LocalLow/Below The Game/Haimrik' USER_PERSISTENT_DIRECTORIES=' userdata' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-halcyon-6.sh0000755000000000000000000000433314471751340013763 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Halcyon 6 # send your bug reports to contact@dotslashplay.it ### script_version=20231108.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='halcyon-6' GAME_NAME='Halcyon 6' ## This DRM-free build is no longer available for sale from Humble Bundle. ARCHIVE_BASE_0_NAME='H6LINUX.zip' ARCHIVE_BASE_0_MD5='60ac71e3532c201024cf9a430e2746a1' ARCHIVE_BASE_0_VERSION='1.4.3.4-humble1' ARCHIVE_BASE_0_SIZE='1700000' UNITY3D_NAME='H6' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='H6LINUXGoG' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data ## Ignore extraction warnings due to extra "../" inner path component. archive_extraction_default 2>/dev/null || true # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' launchers_write set_current_package 'PKG_BIN32' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-hamilton-the-dating-sim.sh0000755000000000000000000000616214471751340016610 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=20230425.1 GAME_ID='hamilton-the-dating-sim' GAME_NAME='Hamilton: The Dating Sim' ARCHIVE_BASE_0='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' RENPY_NAME='HamiltonTheDatingSim' CONTENT_PATH_DEFAULT='HamiltonTheDatingSim-2.1.1-linux' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/lib/linux-x86_64" CONTENT_LIBS_BIN_FILES=' libGLEW.so.1.7 libavcodec.so.57 libavformat.so.57 libavresample.so.3 libavutil.so.55 libpng12.so.0 libpython2.7.so.1.0 libswresample.so.2 libswscale.so.4' CONTENT_GAME_BIN_FILES=" lib/linux-x86_64/lib/python2.7 lib/linux-x86_64/python lib/linux-x86_64/pythonw lib/linux-x86_64/zsync lib/linux-x86_64/zsyncmake lib/linux-x86_64/${RENPY_NAME}" CONTENT_GAME_DATA_FILES=" game renpy lib/pythonlib2.7 ${RENPY_NAME}.py" APP_MAIN_EXE="lib/linux-x86_64/${RENPY_NAME}" APP_MAIN_OPTIONS="-EO ${RENPY_NAME}.py" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libfreetype.so.6 libGL.so.1 libGLU.so.1 libjpeg.so.62 libm.so.6 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0 libSDL2_ttf-2.0.so.0 libutil.so.1 libX11.so.6 libXext.so.6 libXi.so.6 libXmu.so.6 libz.so.1' # 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 . "$PLAYIT_LIB2" # Use default Ren'Py icon if it is available launcher_desktop() { local application application="$1" local application_name application_icon application_category launcher_desktop_exec application_name=$(application_name "$application") application_category=$(application_category "$application") launcher_desktop_exec=$(launcher_desktop_exec "$application") cat <<- EOF [Desktop Entry] Version=1.0 Type=Application Name=$application_name Icon=renpy $launcher_desktop_exec Categories=$application_category EOF } # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-hammerwatch.sh0000755000000000000000000001105214471751340014457 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 mortalius # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Hammerwatch # send your bug reports to contact@dotslashplay.it ### script_version=20230101.2 GAME_ID='hammerwatch' GAME_NAME='Hammerwatch' ARCHIVE_BASE_GOG_0='gog_hammerwatch_2.1.0.7.sh' ARCHIVE_BASE_GOG_0_MD5='2d1f01b73f43e0b6399ab578c52c6cb6' ARCHIVE_BASE_GOG_0_TYPE='mojosetup' ARCHIVE_BASE_GOG_0_SIZE='230000' ARCHIVE_BASE_GOG_0_VERSION='1.32-gog2.1.0.7' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/hammerwatch' ARCHIVE_BASE_HUMBLE_1='hammerwatch_linux_141.zip' ARCHIVE_BASE_HUMBLE_1_MD5='a342298f2201a33a616e412b70c4a7f8' ARCHIVE_BASE_HUMBLE_1_SIZE='230000' ARCHIVE_BASE_HUMBLE_1_VERSION='1.41-humble180913' ARCHIVE_BASE_HUMBLE_1_URL='https://www.humblebundle.com/store/hammerwatch' ARCHIVE_BASE_HUMBLE_0='hammerwatch_linux1.32.zip' ARCHIVE_BASE_HUMBLE_0_MD5='c31f4053bcde3dc34bc8efe5f232c26e' ARCHIVE_BASE_HUMBLE_0_SIZE='230000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.32-humble160405' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='.' CONTENT_PATH_DEFAULT_HUMBLE_0='Hammerwatch' CONTENT_GAME_MAIN_FILES=' editor levels mono assets.bin Hammerwatch.exe FarseerPhysicsOTK.dll Lidgren.Network.dll Pngcs.dll SDL2-CS.dll SDL2-CS.dll.config ICSharpCode.SharpZipLib.dll Steamworks.NET.dll Steamworks.NET.dll.config TiltedEngine.dll' APP_MAIN_EXE='Hammerwatch.exe' APP_MAIN_ICON='Hammerwatch.exe' USER_PERSISTENT_FILES=' *.txt *.xml' USER_PERSISTENT_DIRECTORIES=' levels' PKG_MAIN_DEPS='mono' PKG_MAIN_DEPS_DEB='libmono-corlib4.5-cil, libmono-posix4.0-cil, libmono-security4.0-cil, libmono-system4.0-cil, libmono-system-core4.0-cil, libmono-system-configuration4.0-cil, libmono-system-data4.0-cil, libmono-system-drawing4.0-cil, libmono-system-runtime-serialization4.0-cil, libmono-system-security4.0-cil, libmono-system-xml4.0-cil, libmono-system-xml-linq4.0-cil' # Include shipped libraries that can not be replaced by system ones CONTENT_LIBS_LIBS32_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/lib" CONTENT_LIBS_LIBS32_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/lib" CONTENT_LIBS_LIBS32_PATH_HUMBLE_0="${CONTENT_PATH_DEFAULT_HUMBLE_0}/lib" CONTENT_LIBS_LIBS32_FILES=' libCSteamworks.so libfmod.so libfmod.so.6 libfmod.so.6.0 libsteam_api.so' CONTENT_LIBS_LIBS64_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/lib64" CONTENT_LIBS_LIBS64_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/lib64" CONTENT_LIBS_LIBS64_PATH_HUMBLE_0="${CONTENT_PATH_DEFAULT_HUMBLE_0}/lib64" CONTENT_LIBS_LIBS64_FILES=' libCSteamworks.so libfmod.so libfmod.so.6 libfmod.so.6.0 libsteam_api.so' PACKAGES_LIST='PKG_MAIN PKG_LIBS32 PKG_LIBS64' PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS32_ID="$PKG_LIBS_ID" PKG_LIBS32_ARCH='32' PKG_LIBS32_DEPENDENCIES_LIBRARIES=' ld-linux-x86-64.so.2 libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6' PKG_LIBS64_ID="$PKG_LIBS_ID" PKG_LIBS64_ARCH='64' PKG_LIBS64_DEPENDENCIES_LIBRARIES="$PKG_LIBS32_DEPENDENCIES_LIBRARIES" PKG_MAIN_DEPS="$PKG_MAIN_DEPS $PKG_LIBS_ID" # Copy the game binary in the prefix APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Copy the game binary in the prefix cp --remove-destination "${PATH_GAME}/${APP_EXE}" "$APP_EXE"' # Load common functions target_version='2.20' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Replace duplicated libraries with symbolic links rm \ 'lib/libfmod.so' 'lib/libfmod.so.6' \ 'lib64/libfmod.so' 'lib64/libfmod.so.6' ln --symbolic 'libfmod.so.6.0' 'lib/libfmod.so.6' ln --symbolic 'libfmod.so.6' 'lib/libfmod.so' ln --symbolic 'libfmod.so.6.0' 'lib64/libfmod.so.6' ln --symbolic 'libfmod.so.6' 'lib64/libfmod.so' ) # Include game icons icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-hand-of-fate.sh0000755000000000000000000000521414471751340014413 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 mortalius # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # Hand Of Fate # send your bug reports to contact@dotslashplay.it ### script_version=20231102.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='hand-of-fate' GAME_NAME='Hand Of Fate' ARCHIVE_BASE_2_NAME='hand_of_fate_1_3_20_25356.sh' ARCHIVE_BASE_2_MD5='f0a1b47a6e4b5cb7a9f1494b55982b54' ARCHIVE_BASE_2_SIZE='2800000' ARCHIVE_BASE_2_VERSION='1.3.20-gog25356' ARCHIVE_BASE_2_URL='https://www.gog.com/game/hand_of_fate' ARCHIVE_BASE_1_NAME='hand_of_fate_en_1_3_19_21087.sh' ARCHIVE_BASE_1_MD5='5895ccaf640afff877b6cab5fa348748' ARCHIVE_BASE_1_SIZE='2800000' ARCHIVE_BASE_1_VERSION='1.3.19-gog21087' ARCHIVE_BASE_0_NAME='gog_hand_of_fate_2.12.0.16.sh' ARCHIVE_BASE_0_MD5='54c61dce76b1281b4161d53d096d6ffe' ARCHIVE_BASE_0_SIZE='2800000' ARCHIVE_BASE_0_VERSION='1.3.17-gog2.12.0.16' UNITY3D_NAME='Hand of Fate' ## TODO: Check if the Steam libraries could be dropped. UNITY3D_PLUGINS=' libCSteamworks.so libsteam_api.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN32' launchers_write PKG='PKG_BIN64' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-hard-west.sh0000755000000000000000000001052614471751340014062 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Jacek Szafarkiewicz # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Hard West # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220627.1 GAME_ID='hard-west' GAME_NAME='Hard West' # Archives ## Hard West (base game) ARCHIVE_BASE_0='gog_hard_west_2.7.0.8.sh' ARCHIVE_BASE_0_MD5='de81eb547f089d8bdb96b7a2fe38e8c0' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='5700000' ARCHIVE_BASE_0_VERSION='1.5-gog2.7.0.8' ARCHIVE_BASE_0_URL='https://www.gog.com/game/hard_west' ## Scars of Freedom ARCHIVE_BASE_SCARSOFFREEDOM_0='gog_hard_west_scars_of_freedom_dlc_2.3.0.4.sh' ARCHIVE_BASE_SCARSOFFREEDOM_0_MD5='bb4368afaf670f0d8ebc09f7bb1f3713' ARCHIVE_BASE_SCARSOFFREEDOM_0_TYPE='mojosetup' ARCHIVE_BASE_SCARSOFFREEDOM_0_SIZE='200000' ARCHIVE_BASE_SCARSOFFREEDOM_0_URL='https://www.gog.com/game/hard_west_scars_of_freedom' UNITY3D_NAME='HardWest' CONTENT_PATH_DEFAULT='data/noarch/game' ARCHIVE_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86" ARCHIVE_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64" ARCHIVE_GAME_DATA_FILES=" Data Data_dlc1 ${UNITY3D_NAME}_Data" APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32="${UNITY3D_NAME}.x86" APP_MAIN_EXE_BIN64="${UNITY3D_NAME}.x86_64" APP_MAIN_ICON="${UNITY3D_NAME}_Data/Resources/UnityPlayer.png" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID libc.so.6 libGLU.so.1 libudev.so.1 xcursor libxrandr" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Start pulseaudio if it is available APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Start pulseaudio if it is available pulseaudio_is_available() { command -v pulseaudio >/dev/null 2>&1 } if pulseaudio_is_available; then if ! pulseaudio --check; then touch .stop_pulseaudio_on_exit fi pulseaudio --start fi' # Stop pulseaudio if it has been started for this game session APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Stop pulseaudio if it has been started for this game session if [ -e .stop_pulseaudio_on_exit ]; then pulseaudio --kill rm .stop_pulseaudio_on_exit fi' # Work around crash on launch related to libpulse APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Work around crash on launch related to libpulse # Some Unity3D games crash on launch if libpulse-simple.so.0 is available but pulseaudio is not running LIBPULSE_NULL_LINK="${APP_LIBS:=libs}/libpulse-simple.so.0" if pulseaudio_is_available; then rm --force "$LIBPULSE_NULL_LINK" else mkdir --parents "$(dirname "$LIBPULSE_NULL_LINK")" ln --force --symbolic /dev/null "$LIBPULSE_NULL_LINK" fi' # Use a dedicated log file for the current game session APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a dedicated log file for the current game session mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Load Scars of Freedom archive if it is available archive_initialize_optional \ 'ARCHIVE_SCARSOFFREEDOM' \ 'ARCHIVE_BASE_SCARSOFFREEDOM_0' # Extract game data extract_data_from "$SOURCE_ARCHIVE" if [ -n "$ARCHIVE_SCARSOFFREEDOM" ]; then ( ARCHIVE='ARCHIVE_SCARSOFFREEDOM' extract_data_from "$ARCHIVE_SCARSOFFREEDOM" ) fi prepare_package_layout # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-harry-potter-and-the-mysterious-thief-part1.sh0000755000000000000000000000571314471751340022507 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 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220805.2 GAME_ID='harry-potter-and-the-mysterious-thief-part1' GAME_NAME='Harry Potter and the Mysterious Thief Part 1' ARCHIVE_BASE_0='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' ARCHIVE_DOC_DATA_FILES=' README.html' ARCHIVE_GAME_BIN32_FILES=' lib/linux-i686 HarryPotterAndTheMysteriousThiefpartI.sh' ARCHIVE_GAME_BIN64_FILES=' lib/linux-x86_64' ARCHIVE_GAME_DATA_FILES=' lib/pythonlib2.7 game HarryPotterAndTheMysteriousThiefpartI.py renpy' APP_MAIN_TYPE='native' APP_MAIN_EXE='HarryPotterAndTheMysteriousThiefpartI.sh' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Use persistent storage for user data USER_PERSISTENT_DIRECTORIES=' game/saves' # Load common functions target_version='2.17' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game data prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Copy launcher script between the binaries packages application_exe=$(application_exe 'APP_MAIN') package_source='PKG_BIN32' package_source_path=$(package_get_path "$package_source") application_exe_source_path="${package_source_path}${PATH_GAME}/${application_exe}" package_destination='PKG_BIN64' package_destination_path=$(package_get_path "$package_destination") application_exe_destination_path="${package_destination_path}${PATH_GAME}/${application_exe}" mkdir --parents "$(dirname "$application_exe_destination_path")" cp "$application_exe_source_path" "$application_exe_destination_path" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-harry-potter-and-the-mysterious-thief-part2.sh0000755000000000000000000000626214471751340022510 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=20230425.1 GAME_ID='harry-potter-and-the-mysterious-thief-part2' GAME_NAME='Harry Potter and the Mysterious Thief Part 2' ARCHIVE_BASE_0='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' RENPY_NAME='HarryPotterandTheMysteriousThiefpart2' CONTENT_PATH_DEFAULT='HPatMTp2-linux' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/lib/linux-x86_64" CONTENT_LIBS_BIN_FILES=' libGLEW.so.1.7 libavcodec.so.57 libavformat.so.57 libavresample.so.3 libavutil.so.55 libpng12.so.0 libpython2.7.so.1.0 libswresample.so.2 libswscale.so.4' CONTENT_GAME_BIN_FILES=" lib/linux-x86_64/lib/python2.7 lib/linux-x86_64/python lib/linux-x86_64/pythonw lib/linux-x86_64/zsync lib/linux-x86_64/zsyncmake lib/linux-x86_64/${RENPY_NAME}" CONTENT_GAME_DATA_FILES=" game renpy lib/pythonlib2.7 ${RENPY_NAME}.py" APP_MAIN_EXE="lib/linux-x86_64/${RENPY_NAME}" APP_MAIN_OPTIONS="-EO ${RENPY_NAME}.py" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libfreetype.so.6 libGL.so.1 libGLU.so.1 libjpeg.so.62 libm.so.6 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0 libSDL2_ttf-2.0.so.0 libutil.so.1 libX11.so.6 libXext.so.6 libXi.so.6 libXmu.so.6 libz.so.1' # 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 . "$PLAYIT_LIB2" # Use default Ren'Py icon if it is available launcher_desktop() { local application application="$1" local application_name application_icon application_category launcher_desktop_exec application_name=$(application_name "$application") application_category=$(application_category "$application") launcher_desktop_exec=$(launcher_desktop_exec "$application") cat <<- EOF [Desktop Entry] Version=1.0 Type=Application Name=$application_name Icon=renpy $launcher_desktop_exec Categories=$application_category EOF } # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-harry-potter-and-the-transformency-spell.sh0000755000000000000000000001005314471751340022142 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # Harry Potter and the Transformency Spell # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20201009.1 # Set game-specific variables GAME_ID='harry-potter-and-the-transformency-spell' GAME_NAME='Harry Potter and the Transformency Spell' ARCHIVES_LIST=' ARCHIVE_ITCH_0' ARCHIVE_ITCH_0='eng_WizardLove_Exchange-linux.tar.bz2' ARCHIVE_ITCH_0_URL='https://rivarsstudio.itch.io/hpatts' ARCHIVE_ITCH_0_MD5='bde8b88d4de6ba7f5b35648a38f5b5c9' ARCHIVE_ITCH_0_SIZE='88000' ARCHIVE_ITCH_0_VERSION='1.0-itch' ARCHIVE_ITCH_0_TYPE='tar' ARCHIVE_DOC_DATA_PATH='WizardLove_Exchange-linux' ARCHIVE_DOC_DATA_FILES='README.html' ARCHIVE_GAME_BIN32_PATH='WizardLove_Exchange-linux' ARCHIVE_GAME_BIN32_FILES='lib/linux-i686 Wizard?Love?_?Exchange.sh' ARCHIVE_GAME_BIN64_PATH='WizardLove_Exchange-linux' ARCHIVE_GAME_BIN64_FILES='lib/linux-x86_64' ARCHIVE_GAME_DATA_PATH='WizardLove_Exchange-linux' ARCHIVE_GAME_DATA_FILES='lib/pythonlib2.7 game Wizard?Love?_?Exchange.py renpy' DATA_DIRS='game/saves' APP_MAIN_TYPE='native' APP_MAIN_EXE='Wizard Love _ Exchange.sh' APP_MAIN_ICON='game/images/icon.png' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID glibc libstdc++" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Copy launching script between the binaries packages LAUNCHER_SOURCE="${PKG_BIN32_PATH}${PATH_GAME}/$APP_MAIN_EXE" LAUNCHER_DESTINATION="${PKG_BIN64_PATH}${PATH_GAME}/$APP_MAIN_EXE" mkdir --parents "$(dirname "$LAUNCHER_DESTINATION")" cp "$LAUNCHER_SOURCE" "$LAUNCHER_DESTINATION" # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-hatoful-boyfriend.sh0000755000000000000000000000561614471751340015611 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 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220704.1 GAME_ID='hatoful-boyfriend' GAME_NAME='Hatoful Boyfriend' ARCHIVE_BASE_0='gog_hatoful_boyfriend_2.0.0.2.sh' ARCHIVE_BASE_0_MD5='8c0a236206aadabf7b4bfd785edce954' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='2600000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.2' ARCHIVE_BASE_0_URL='https://www.gog.com/game/hatoful_boyfriend' UNITY3D_NAME='hatoful' CONTENT_PATH_DEFAULT='data/noarch/game' ARCHIVE_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86" ARCHIVE_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32="${UNITY3D_NAME}.x86" APP_MAIN_EXE_BIN64="${UNITY3D_NAME}.x86_64" APP_MAIN_ICON="${UNITY3D_NAME}_Data/Resources/UnityPlayer.png" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6 libGLU.so.1 libxrandr xcursor" PKG_BIN32_DEPS_ARCH='wqy-microhei' PKG_BIN32_DEPS_DEB='fonts-wqy-microhei' PKG_BIN32_DEPS_GENTOO='media-fonts/wqy-microhei' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPS_ARCH="$PKG_BIN32_DEPS_ARCH" PKG_BIN64_DEPS_DEB="$PKG_BIN32_DEPS_DEB" PKG_BIN64_DEPS_GENTOO="$PKG_BIN32_DEPS_GENTOO" # Use a dedicated log file for the current game session APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a dedicated log file for the current game session mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-haven-moon.sh0000755000000000000000000000451214471751340014231 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Haven Moon # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220930.1 GAME_ID='haven-moon' GAME_NAME='Haven Moon' ARCHIVES_LIST='ARCHIVE_BASE_0' ARCHIVE_BASE_0='HavenMoon_LINUX.zip' ARCHIVE_BASE_0_MD5='2698639eaad59d4d01c10694bf63188e' ARCHIVE_BASE_0_SIZE='1200000' ARCHIVE_BASE_0_VERSION='1.0-humble161213' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/haven-moon' UNITY3D_NAME='HavenMoon' CONTENT_PATH_DEFAULT='HavenMoon_LINUX' ARCHIVE_GAME_BIN_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono ${UNITY3D_NAME}_Data/Plugins" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_TYPE='native' APP_MAIN_EXE="${UNITY3D_NAME}.x86" APP_MAIN_ICON="${UNITY3D_NAME}_Data/Resources/UnityPlayer.png" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID libc.so.6 libGL.so.1 xcursor libxrandr" # Use a dedicated log file for the current game session APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a dedicated log file for the current game session mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-haven-park.sh0000755000000000000000000000744014471751340014221 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Haven Park # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210826.5 # Set game-specific variables GAME_ID='haven-park' GAME_NAME='Haven Park' ARCHIVE_BASE_1='haven_park_1_0_8_49380.sh' ARCHIVE_BASE_1_MD5='9fe66fd96d55f019e7d8767b9dea8544' ARCHIVE_BASE_1_TYPE='mojosetup' ARCHIVE_BASE_1_VERSION='1.0.8-gog49380' ARCHIVE_BASE_1_SIZE='410000' ARCHIVE_BASE_1_URL='https://www.gog.com/game/haven_park' ARCHIVE_BASE_0='haven_park_1_0_5_49052.sh' ARCHIVE_BASE_0_MD5='0c4fc4383682e8fc06eb0355b5e391b6' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_VERSION='1.0.5-gog49052' ARCHIVE_BASE_0_SIZE='400000' ARCHIVE_GAME_BIN_PATH='data/noarch/game' ARCHIVE_GAME_BIN_FILES=' HavenPark.x86_64 UnityPlayer.so HavenPark_Data/MonoBleedingEdge HavenPark_Data/Plugins' ARCHIVE_GAME_DATA_PATH='data/noarch/game' ARCHIVE_GAME_DATA_FILES=' HavenPark_Data' APP_MAIN_TYPE='native' APP_MAIN_EXE='HavenPark.x86_64' APP_MAIN_ICON='HavenPark_Data/Resources/UnityPlayer.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID glibc libstdc++ libz.so.1" # Use a per-session dedicated file for logs APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a dedicated log file for the current game session mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Extract icons PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-headspun.sh0000755000000000000000000000503114471751340013766 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Headspun # send your bug reports to contact@dotslashplay.it ### script_version=20230220.2 GAME_ID='headspun' GAME_NAME='Headspun' ARCHIVE_BASE_0='headspun-dazed-edition-win.zip' ARCHIVE_BASE_0_MD5='0e0621486930ba3a0dda64727423c603' ARCHIVE_BASE_0_SIZE='4600000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://svperstring.itch.io/headspun-dazed-edition' UNITY3D_NAME='Headspun' CONTENT_PATH_DEFAULT='Headspun/Headspun' CONTENT_GAME_BIN_FILES=" MonoBleedingEdge ${UNITY3D_NAME}_Data/Plugins ${UNITY3D_NAME}_Data/Managed UnityPlayer.dll WinPixEventRuntime.dll UnityCrashHandler64.exe ${UNITY3D_NAME}.exe" CONTENT_GAME_DATA_FILES=" Subtitles Videos ${UNITY3D_NAME}_Data" USER_PERSISTENT_FILES=" ${UNITY3D_NAME}_Data/OptionsData.txt ${UNITY3D_NAME}_Data/PlayerData.txt" APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Ensure support for "video/quicktime, variant=(string)iso" media decoding PKG_BIN_DEPS_ARCH='gst-plugins-base gst-plugins-good gst-libav' PKG_BIN_DEPS_DEB='gstreamer1.0-plugins-base, gstreamer1.0-plugins-good, gstreamer1.0-libav' PKG_BIN_DEPS_GENTOO='media-libs/gst-plugins-base media-libs/gst-plugins-good media-plugins/gst-plugins-libav' # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" set_standard_permissions . ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-heavens-vault.sh0000755000000000000000000000521414471751340014744 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Heaven's Vault # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220905.3 GAME_ID='heavens-vault' GAME_NAME='Heavenʼs Vault' UNITY3D_NAME='heavensvault' ARCHIVE_BASE_0='setup_heavens_vault_1.11_(64bit)_(31262).exe' ARCHIVE_BASE_0_MD5='73476bbfccb0a97ec68fd403d23c85f0' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_heavens_vault_1.11_(64bit)_(31262)-1.bin' ARCHIVE_BASE_0_PART1_MD5='2f1dc13ab09f8fc592e1b8482ea5b0f4' ARCHIVE_BASE_0_SIZE='4300000' ARCHIVE_BASE_0_VERSION='1.11-gog31262' ARCHIVE_BASE_0_URL='https://www.gog.com/game/heavens_vault' CONTENT_PATH_DEFAULT='.' ARCHIVE_GAME_BIN_FILES=" ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_data/mono ${UNITY3D_NAME}_data/plugins unityplayer.dll" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" APP_MAIN_ICON="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Use persistent storage for user data APP_WINE_LINK_DIRS=" userdata:users/\${USER}/AppData/LocalLow/Inkle Ltd/Heaven's Vault" USER_PERSISTENT_FILES=' userdata/heavensVaultSave.json userdata/heavensVaultSave_Backup.json' # Load common functions target_version='2.17' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Use a Unity3D name not including tricky characters unity3d_name=$(unity3d_name) mv "heaven's vault.exe" "${unity3d_name}.exe" mv "heaven's vault_data" "${unity3d_name}_data" ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-helium-rain.sh0000755000000000000000000000665514471751340014406 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Helium Rain # send your bug reports to contact@dotslashplay.it ### script_version=20231213.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='helium-rain' GAME_NAME='Helium Rain' ARCHIVE_BASE_GOG_0_NAME='helium_rain_1_3_6_27662.sh' ARCHIVE_BASE_GOG_0_MD5='6e430338f7292ebe9c864603034fb9f1' ARCHIVE_BASE_GOG_0_SIZE='3930976' ARCHIVE_BASE_GOG_0_VERSION='1.3.6-gog27662' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/helium_rain' ARCHIVE_BASE_ITCH_0_NAME='helium-rain-linux.zip' ARCHIVE_BASE_ITCH_0_MD5='8d43439154be0d3de242b39f63decd7c' ARCHIVE_BASE_ITCH_0_SIZE='3930288' ARCHIVE_BASE_ITCH_0_VERSION='1.3.6-itch.2019.02.09' ARCHIVE_BASE_ITCH_0_URL='https://deimos-games.itch.io/helium-rain' UNREALENGINE4_NAME='HeliumRain' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_ITCH='.' APP_MAIN_EXE="${UNREALENGINE4_NAME}/Binaries/Linux/${UNREALENGINE4_NAME}-Linux-Shipping" APP_MAIN_ICON_GOG='../support/icon.png' APP_MAIN_ICONS_LIST_ITCH='APP_MAIN_ICON_ITCH_16 APP_MAIN_ICON_ITCH_24 APP_MAIN_ICON_ITCH_32 APP_MAIN_ICON_ITCH_64 APP_MAIN_ICON_ITCH_96 APP_MAIN_ICON_ITCH_128 APP_MAIN_ICON_ITCH_256 APP_MAIN_ICON_ITCH_512' APP_MAIN_ICON_ITCH_16='Icons/16x16.png' APP_MAIN_ICON_ITCH_24='Icons/24x24.png' APP_MAIN_ICON_ITCH_32='Icons/32x32.png' APP_MAIN_ICON_ITCH_64='Icons/64x64.png' APP_MAIN_ICON_ITCH_96='Icons/96x96.png' APP_MAIN_ICON_ITCH_128='Icons/128x128.png' APP_MAIN_ICON_ITCH_256='Icons/256x256.png' APP_MAIN_ICON_ITCH_512='Icons/512x512.png' ## The following hacks can not be avoided by forcing the use of system-provided SDL, ## because the game crashes on launch when it is used instead of the shipped SDL build. ### The game crashes on launch when the Wayland backend of SDL is used. APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' # The game crashes on launch when the Wayland backend of SDL is used if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' ### It seems that the shipped SDL build does not support the alsa backend. ### When it is used, no error is triggered but no sound is played either. APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' # The game does not output any sound when the ALSA backend of SDL is used if [ "${SDL_AUDIODRIVER:-}" = "alsa" ]; then unset SDL_AUDIODRIVER fi ' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-hellblade-senuas-sacrifice.sh0000755000000000000000000000767714471751340017337 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Hellblade: Senua's Sacrifice # send your bug reports to contact@dotslashplay.it ### script_version=20230401.2 GAME_ID='hellblade-senuas-sacrifice' GAME_NAME='Hellblade: Senuaʼs Sacrifice' ARCHIVE_BASE_1='setup_hellblade_senuas_sacrifice_1.03.1.202112071122_(52018).exe' ARCHIVE_BASE_1_MD5='56e77d9dfc1a2cc871488a9a92fc2280' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1='setup_hellblade_senuas_sacrifice_1.03.1.202112071122_(52018)-1.bin' ARCHIVE_BASE_1_PART1_MD5='0f8df5e451d8bbe1aea86947f271d2d6' ARCHIVE_BASE_1_PART2='setup_hellblade_senuas_sacrifice_1.03.1.202112071122_(52018)-2.bin' ARCHIVE_BASE_1_PART2_MD5='a06d8b220be8acd257c5f4b2a16332c6' ARCHIVE_BASE_1_PART3='setup_hellblade_senuas_sacrifice_1.03.1.202112071122_(52018)-3.bin' ARCHIVE_BASE_1_PART3_MD5='fd53c212060d9b76de3ad04465cdd980' ARCHIVE_BASE_1_PART4='setup_hellblade_senuas_sacrifice_1.03.1.202112071122_(52018)-4.bin' ARCHIVE_BASE_1_PART4_MD5='f8ed203da482970d81fa0c6e09471a14' ARCHIVE_BASE_1_SIZE='20000000' ARCHIVE_BASE_1_VERSION='1.03.1-gog52018' ARCHIVE_BASE_1_URL='https://www.gog.com/game/hellblade_senuas_sacrifice_pack' ARCHIVE_BASE_0='setup_hellblade_senuas_sacrifice_1.03_(25168).exe' ARCHIVE_BASE_0_MD5='0568c6e5c57dd64cc0a23a77fe54aafd' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_hellblade_senuas_sacrifice_1.03_(25168)-1.bin' ARCHIVE_BASE_0_PART1_MD5='b01d26d7555d26f2dc1cb8a361564cb7' ARCHIVE_BASE_0_PART2='setup_hellblade_senuas_sacrifice_1.03_(25168)-2.bin' ARCHIVE_BASE_0_PART2_MD5='8e7e4e73fa6a535a4856005be7ea8cbb' ARCHIVE_BASE_0_PART3='setup_hellblade_senuas_sacrifice_1.03_(25168)-3.bin' ARCHIVE_BASE_0_PART3_MD5='fcabee54e6f1072cbdbd46eb2a8ca0f8' ARCHIVE_BASE_0_PART4='setup_hellblade_senuas_sacrifice_1.03_(25168)-4.bin' ARCHIVE_BASE_0_PART4_MD5='6fce92bde8bb15b0e706a7030874a3a9' ARCHIVE_BASE_0_SIZE='23000000' ARCHIVE_BASE_0_VERSION='1.03-gog25168' UNREALENGINE4_NAME='hellbladegame' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" engine ${UNREALENGINE4_NAME}/binaries ${UNREALENGINE4_NAME}/plugins ${UNREALENGINE4_NAME}.exe" CONTENT_GAME_DATA_FILES=" ${UNREALENGINE4_NAME}" HUGE_FILES_DATA=" ${UNREALENGINE4_NAME}/content/paks/hellbladegame-windowsnoeditor.pak" WINE_DIRECT3D_RENDERER='vkd3d' APP_WINE_LINK_DIRS=" userdata:users/\${USER}/AppData/Local/${UNREALENGINE4_NAME}/Saved" USER_PERSISTENT_DIRECTORIES=' userdata/Config/WindowsNoEditor userdata/SaveGames' APP_MAIN_EXE="${UNREALENGINE4_NAME}.exe" APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=101' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPS_ARCH='gst-plugins-base gst-plugins-good gst-libav' PKG_BIN_DEPS_DEB='gstreamer1.0-plugins-base, gstreamer1.0-plugins-good, gstreamer1.0-libav' PKG_BIN_DEPS_GENTOO='media-libs/gst-plugins-base media-plugins/gst-plugins-good media-libs/gst-plugins-libav' # 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-helltaker.sh0000755000000000000000000000562114471751340014137 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Emmanuel Gil Peyrot # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Helltaker # send your bug reports to contact@dotslashplay.it ### script_version=20230324.1 GAME_ID='helltaker' GAME_NAME='Helltaker' ARCHIVE_BASE_0='helltaker_lnx.zip' ARCHIVE_BASE_0_MD5='114d9b631637057f1e0674615754bc50' ARCHIVE_BASE_0_SIZE='350000' ARCHIVE_BASE_0_VERSION='1.0-itch.2021.06.01' ARCHIVE_BASE_0_URL='https://vanripper.itch.io/helltaker' UNITY3D_NAME='helltaker_lnx' CONTENT_PATH_DEFAULT='.' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_LIBS_BIN_FILES=' ScreenSelector.so' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_Data/MonoBleedingEdge/x86_64 ${UNITY3D_NAME}.x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data/Managed ${UNITY3D_NAME}_Data/MonoBleedingEdge/etc ${UNITY3D_NAME}_Data/Resources ${UNITY3D_NAME}_Data/app.info ${UNITY3D_NAME}_Data/boot.config ${UNITY3D_NAME}_Data/globalgamemanagers ${UNITY3D_NAME}_Data/level? ${UNITY3D_NAME}_Data/level?? ${UNITY3D_NAME}_Data/*.assets ${UNITY3D_NAME}_Data/*.assets.resS ${UNITY3D_NAME}_Data/*.png ${UNITY3D_NAME}_Data/*.resource local localHM" ## Work around automatic application type detection failure, ## cf. https://forge.dotslashplay.it/play.it/scripts/-/merge_requests/1707 APP_MAIN_EXE="${UNITY3D_NAME}.x86_64" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-help-will-come-tomorrow.sh0000755000000000000000000000675314471751340016677 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # 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. ### ### # Help Will Come Tomorrow # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20211215.1 # Set game-specific variables GAME_ID='help-will-come-tomorrow' GAME_NAME='Help Will Come Tomorrow' ARCHIVE_BASE_0='help_will_come_tomorrow_2_2_46357.sh' ARCHIVE_BASE_0_MD5='571a9565aa3e6d9db9017ca51c916b3b' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='1600000' ARCHIVE_BASE_0_VERSION='2.2-gog46357' ARCHIVE_BASE_0_URL='https://www.gog.com/game/help_will_come_tomorrow' UNITY3D_NAME='Help Will Come Tomorrow' CONTENT_PATH_DEFAULT='data/noarch/game' ARCHIVE_GAME_BIN_PATH="$CONTENT_PATH_DEFAULT" ARCHIVE_GAME_BIN_FILES=' Help?Will?Come?Tomorrow.x86_64 Help?Will?Come?Tomorrow_Data/MonoBleedingEdge Help?Will?Come?Tomorrow_Data/Plugins' ARCHIVE_GAME_DATA_PATH="$CONTENT_PATH_DEFAULT" ARCHIVE_GAME_DATA_FILES=' Help?Will?Come?Tomorrow_Data' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6 libz.so.1 libgtk-x11-2.0.so.0 libgdk_pixbuf-2.0.so.0 libgobject-2.0.so.0 libglib-2.0.so.0" # Load common functions target_version='2.14' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-her-majestys-spiffing.sh0000755000000000000000000000467614471751340016413 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Her Majesty's Spiffing # send your bug reports to contact@dotslashplay.it ### script_version=20230325.4 GAME_ID='her-majestys-spiffing' GAME_NAME='Her Majestyʼs SPIFFING' ARCHIVE_BASE_0='HMS_Linux.zip' ARCHIVE_BASE_0_MD5='ca535505f238dad9bb90cedf19b06802' ARCHIVE_BASE_0_SIZE='3200000' ARCHIVE_BASE_0_VERSION='1.0-humble161207' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/her-majestys-spiffing' UNITY3D_NAME='hms' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='Linux' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-her-story.sh0000755000000000000000000000327314471751340014121 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Her Story # send your bug reports to contact@dotslashplay.it ### script_version=20231222.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='her-story' GAME_NAME='Her Story' ARCHIVE_BASE_0_NAME='setup_her_story_gog-1_(17775).exe' ARCHIVE_BASE_0_MD5='b987b276d64db2dd85a053a2883e2ded' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1595948' ARCHIVE_BASE_0_VERSION='1.0-gog17775' ARCHIVE_BASE_0_URL='https://www.gog.com/game/her_story' UNITY3D_NAME='herstory' CONTENT_PATH_DEFAULT='app' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Sam Barlow/HerStory' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-heroes-chronicles.sh0000755000000000000000000004346414471751340015607 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Heroes Chronicles series: # - Chapter 1 # - Chapter 2 # - Chapter 3 # - Chapter 4 # - Chapter 5 # - Chapter 6 # - Chapter 7 # - Chapter 8 # send your bug reports to contact@dotslashplay.it ### script_version=20230903.3 GAME_ID='heroes-chronicles' GAME_NAME='Heroes Chronicles' GAME_ID_CHAPTER1="${GAME_ID}-1" GAME_NAME_CHAPTER1="${GAME_NAME}: Chapter 1 - Warlords of the Wasteland" GAME_ID_CHAPTER2="${GAME_ID}-2" GAME_NAME_CHAPTER2="${GAME_NAME}: Chapter 2 - Conquest of the Underworld" GAME_ID_CHAPTER3="${GAME_ID}-3" GAME_NAME_CHAPTER3="${GAME_NAME}: Chapter 3 - Masters of the Elements" GAME_ID_CHAPTER4="${GAME_ID}-4" GAME_NAME_CHAPTER4="${GAME_NAME}: Chapter 4 - Clash of the Dragons" GAME_ID_CHAPTER5="${GAME_ID}-5" GAME_NAME_CHAPTER5="${GAME_NAME}: Chapter 5 - The World Tree" GAME_ID_CHAPTER6="${GAME_ID}-6" GAME_NAME_CHAPTER6="${GAME_NAME}: Chapter 6 - The Fiery Moon" GAME_ID_CHAPTER7="${GAME_ID}-7" GAME_NAME_CHAPTER7="${GAME_NAME}: Chapter 7 - Revolt of the Beastmasters" GAME_ID_CHAPTER8="${GAME_ID}-8" GAME_NAME_CHAPTER8="${GAME_NAME}: Chapter 8 - The Sword of Frost" # Archives ## Chapter 1 ARCHIVE_BASE_CHAPTER1_0='setup_heroes_chronicles_chapter1_2.1.0.42.exe' ARCHIVE_BASE_CHAPTER1_0_MD5='f584d6e11ed47d1d40e973a691adca5d' ARCHIVE_BASE_CHAPTER1_0_TYPE='innosetup' ARCHIVE_BASE_CHAPTER1_0_SIZE='500000' ARCHIVE_BASE_CHAPTER1_0_VERSION='1.0-gog2.1.0.42' ARCHIVE_BASE_CHAPTER1_0_URL='https://www.gog.com/game/heroes_chronicles_all_chapters' ## Chapter 2 ARCHIVE_BASE_CHAPTER2_0='setup_heroes_chronicles_chapter2_2.1.0.43.exe' ARCHIVE_BASE_CHAPTER2_0_MD5='0d240bc0309814ba251c2d9b557cf69f' ARCHIVE_BASE_CHAPTER2_0_TYPE='innosetup' ARCHIVE_BASE_CHAPTER2_0_SIZE='510000' ARCHIVE_BASE_CHAPTER2_0_VERSION='1.0-gog2.1.0.43' ARCHIVE_BASE_CHAPTER2_0_URL='https://www.gog.com/game/heroes_chronicles_all_chapters' ## Chapter 3 ARCHIVE_BASE_CHAPTER3_0='setup_heroes_chronicles_chapter3_2.1.0.41.exe' ARCHIVE_BASE_CHAPTER3_0_MD5='cb21751572960d47a259efc17b92c88c' ARCHIVE_BASE_CHAPTER3_0_TYPE='innosetup' ARCHIVE_BASE_CHAPTER3_0_SIZE='490000' ARCHIVE_BASE_CHAPTER3_0_VERSION='1.0-gog2.1.0.41' ARCHIVE_BASE_CHAPTER3_0_URL='https://www.gog.com/game/heroes_chronicles_all_chapters' ## Chapter 4 ARCHIVE_BASE_CHAPTER4_0='setup_heroes_chronicles_chapter4_2.1.0.42.exe' ARCHIVE_BASE_CHAPTER4_0_MD5='922291e16176cb4bd37ca88eb5f3a19e' ARCHIVE_BASE_CHAPTER4_0_TYPE='innosetup' ARCHIVE_BASE_CHAPTER4_0_SIZE='490000' ARCHIVE_BASE_CHAPTER4_0_VERSION='1.0-gog2.1.0.42' ARCHIVE_BASE_CHAPTER4_0_URL='https://www.gog.com/game/heroes_chronicles_all_chapters' ## Chapter 5 ARCHIVE_BASE_CHAPTER5_0='setup_heroes_chronicles_chapter5_2.1.0.42.exe' ARCHIVE_BASE_CHAPTER5_0_MD5='57b3ec588e627a2da30d3bc80ede5b1d' ARCHIVE_BASE_CHAPTER5_0_TYPE='innosetup' ARCHIVE_BASE_CHAPTER5_0_SIZE='470000' ARCHIVE_BASE_CHAPTER5_0_VERSION='1.0-gog2.1.0.42' ARCHIVE_BASE_CHAPTER5_0_URL='https://www.gog.com/game/heroes_chronicles_all_chapters' ## Chapter 6 ARCHIVE_BASE_CHAPTER6_0='setup_heroes_chronicles_chapter6_2.1.0.42.exe' ARCHIVE_BASE_CHAPTER6_0_MD5='64becfde1882eecd93fb02bf215eff11' ARCHIVE_BASE_CHAPTER6_0_TYPE='innosetup' ARCHIVE_BASE_CHAPTER6_0_SIZE='470000' ARCHIVE_BASE_CHAPTER6_0_VERSION='1.0-gog2.1.0.42' ARCHIVE_BASE_CHAPTER6_0_URL='https://www.gog.com/game/heroes_chronicles_all_chapters' ## Chapter 7 ARCHIVE_BASE_CHAPTER7_0='setup_heroes_chronicles_chapter7_2.1.0.42.exe' ARCHIVE_BASE_CHAPTER7_0_MD5='07c189a731886b2d3891ac1c65581d40' ARCHIVE_BASE_CHAPTER7_0_TYPE='innosetup' ARCHIVE_BASE_CHAPTER7_0_SIZE='500000' ARCHIVE_BASE_CHAPTER7_0_VERSION='1.0-gog2.1.0.42' ARCHIVE_BASE_CHAPTER7_0_URL='https://www.gog.com/game/heroes_chronicles_all_chapters' ## Chapter 8 ARCHIVE_BASE_CHAPTER8_0='setup_heroes_chronicles_chapter8_2.1.0.42.exe' ARCHIVE_BASE_CHAPTER8_0_MD5='2b3e4c366db0f7e3e8b15b0935aad528' ARCHIVE_BASE_CHAPTER8_0_TYPE='innosetup' ARCHIVE_BASE_CHAPTER8_0_SIZE='480000' ARCHIVE_BASE_CHAPTER8_0_VERSION='1.0-gog2.1.0.42' ARCHIVE_BASE_CHAPTER8_0_URL='https://www.gog.com/game/heroes_chronicles_all_chapters' CONTENT_INNER_PATH_CHAPTER1='warlords of the wasteland' CONTENT_INNER_PATH_CHAPTER2='conquest of the underworld' CONTENT_INNER_PATH_CHAPTER3='masters of the elements' CONTENT_INNER_PATH_CHAPTER4='clash of the dragons' CONTENT_INNER_PATH_CHAPTER5='the world tree' CONTENT_INNER_PATH_CHAPTER6='the fiery moon' CONTENT_INNER_PATH_CHAPTER7='revolt of the beastmasters' CONTENT_INNER_PATH_CHAPTER8='the sword of frost' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES_CHAPTER1=" ${CONTENT_INNER_PATH_CHAPTER1}/*.asi ${CONTENT_INNER_PATH_CHAPTER1}/*.dll ${CONTENT_INNER_PATH_CHAPTER1}/*.exe" CONTENT_GAME_BIN_FILES_CHAPTER2=" ${CONTENT_INNER_PATH_CHAPTER2}/*.asi ${CONTENT_INNER_PATH_CHAPTER2}/*.dll ${CONTENT_INNER_PATH_CHAPTER2}/*.exe" CONTENT_GAME_BIN_FILES_CHAPTER3=" ${CONTENT_INNER_PATH_CHAPTER3}/*.asi ${CONTENT_INNER_PATH_CHAPTER3}/*.dll ${CONTENT_INNER_PATH_CHAPTER3}/*.exe" CONTENT_GAME_BIN_FILES_CHAPTER4=" ${CONTENT_INNER_PATH_CHAPTER4}/*.asi ${CONTENT_INNER_PATH_CHAPTER4}/*.dll ${CONTENT_INNER_PATH_CHAPTER4}/*.exe" CONTENT_GAME_BIN_FILES_CHAPTER5=" ${CONTENT_INNER_PATH_CHAPTER5}/*.asi ${CONTENT_INNER_PATH_CHAPTER5}/*.dll ${CONTENT_INNER_PATH_CHAPTER5}/*.exe" CONTENT_GAME_BIN_FILES_CHAPTER6=" ${CONTENT_INNER_PATH_CHAPTER6}/*.asi ${CONTENT_INNER_PATH_CHAPTER6}/*.dll ${CONTENT_INNER_PATH_CHAPTER6}/*.exe" CONTENT_GAME_BIN_FILES_CHAPTER7=" ${CONTENT_INNER_PATH_CHAPTER7}/*.asi ${CONTENT_INNER_PATH_CHAPTER7}/*.dll ${CONTENT_INNER_PATH_CHAPTER7}/*.exe" CONTENT_GAME_BIN_FILES_CHAPTER8=" ${CONTENT_INNER_PATH_CHAPTER8}/*.asi ${CONTENT_INNER_PATH_CHAPTER8}/*.dll ${CONTENT_INNER_PATH_CHAPTER8}/*.exe" CONTENT_GAME_DATA_FILES_CHAPTER1=" ${CONTENT_INNER_PATH_CHAPTER1}/data ${CONTENT_INNER_PATH_CHAPTER1}/games ${CONTENT_INNER_PATH_CHAPTER1}/maps" CONTENT_GAME_DATA_FILES_CHAPTER2=" ${CONTENT_INNER_PATH_CHAPTER2}/data ${CONTENT_INNER_PATH_CHAPTER2}/games ${CONTENT_INNER_PATH_CHAPTER2}/maps" CONTENT_GAME_DATA_FILES_CHAPTER3=" ${CONTENT_INNER_PATH_CHAPTER3}/data ${CONTENT_INNER_PATH_CHAPTER3}/games ${CONTENT_INNER_PATH_CHAPTER3}/maps" CONTENT_GAME_DATA_FILES_CHAPTER4=" ${CONTENT_INNER_PATH_CHAPTER4}/data ${CONTENT_INNER_PATH_CHAPTER4}/games ${CONTENT_INNER_PATH_CHAPTER4}/maps" CONTENT_GAME_DATA_FILES_CHAPTER5=" ${CONTENT_INNER_PATH_CHAPTER5}/data ${CONTENT_INNER_PATH_CHAPTER5}/games ${CONTENT_INNER_PATH_CHAPTER5}/maps" CONTENT_GAME_DATA_FILES_CHAPTER6=" ${CONTENT_INNER_PATH_CHAPTER6}/data ${CONTENT_INNER_PATH_CHAPTER6}/games ${CONTENT_INNER_PATH_CHAPTER6}/maps" CONTENT_GAME_DATA_FILES_CHAPTER7=" ${CONTENT_INNER_PATH_CHAPTER7}/data ${CONTENT_INNER_PATH_CHAPTER7}/games ${CONTENT_INNER_PATH_CHAPTER7}/maps" CONTENT_GAME_DATA_FILES_CHAPTER8=" ${CONTENT_INNER_PATH_CHAPTER8}/data ${CONTENT_INNER_PATH_CHAPTER8}/games ${CONTENT_INNER_PATH_CHAPTER8}/maps" CONTENT_GAME_COMMON_FILES=' data mp3' CONTENT_DOC_DATA_PATH_CHAPTER1="${CONTENT_PATH_DEFAULT}/${CONTENT_INNER_PATH_CHAPTER1}" CONTENT_DOC_DATA_PATH_CHAPTER2="${CONTENT_PATH_DEFAULT}/${CONTENT_INNER_PATH_CHAPTER2}" CONTENT_DOC_DATA_PATH_CHAPTER3="${CONTENT_PATH_DEFAULT}/${CONTENT_INNER_PATH_CHAPTER3}" CONTENT_DOC_DATA_PATH_CHAPTER4="${CONTENT_PATH_DEFAULT}/${CONTENT_INNER_PATH_CHAPTER4}" CONTENT_DOC_DATA_PATH_CHAPTER5="${CONTENT_PATH_DEFAULT}/${CONTENT_INNER_PATH_CHAPTER5}" CONTENT_DOC_DATA_PATH_CHAPTER6="${CONTENT_PATH_DEFAULT}/${CONTENT_INNER_PATH_CHAPTER6}" CONTENT_DOC_DATA_PATH_CHAPTER7="${CONTENT_PATH_DEFAULT}/${CONTENT_INNER_PATH_CHAPTER7}" CONTENT_DOC_DATA_PATH_CHAPTER8="${CONTENT_PATH_DEFAULT}/${CONTENT_INNER_PATH_CHAPTER8}" CONTENT_DOC_DATA_FILES=' *.pdf *.txt' USER_PERSISTENT_DIRECTORIES_CHAPTER1=" ${CONTENT_INNER_PATH_CHAPTER1}/games ${CONTENT_INNER_PATH_CHAPTER1}/maps" USER_PERSISTENT_DIRECTORIES_CHAPTER2=" ${CONTENT_INNER_PATH_CHAPTER2}/games ${CONTENT_INNER_PATH_CHAPTER2}/maps" USER_PERSISTENT_DIRECTORIES_CHAPTER3=" ${CONTENT_INNER_PATH_CHAPTER3}/games ${CONTENT_INNER_PATH_CHAPTER3}/maps" USER_PERSISTENT_DIRECTORIES_CHAPTER4=" ${CONTENT_INNER_PATH_CHAPTER4}/games ${CONTENT_INNER_PATH_CHAPTER4}/maps" USER_PERSISTENT_DIRECTORIES_CHAPTER5=" ${CONTENT_INNER_PATH_CHAPTER5}/games ${CONTENT_INNER_PATH_CHAPTER5}/maps" USER_PERSISTENT_DIRECTORIES_CHAPTER6=" ${CONTENT_INNER_PATH_CHAPTER6}/games ${CONTENT_INNER_PATH_CHAPTER6}/maps" USER_PERSISTENT_DIRECTORIES_CHAPTER7=" ${CONTENT_INNER_PATH_CHAPTER7}/games ${CONTENT_INNER_PATH_CHAPTER7}/maps" USER_PERSISTENT_DIRECTORIES_CHAPTER8=" ${CONTENT_INNER_PATH_CHAPTER8}/games ${CONTENT_INNER_PATH_CHAPTER8}/maps" USER_PERSISTENT_FILES_CHAPTER1=" data/*.lod ${CONTENT_INNER_PATH_CHAPTER1}/data/*.lod" USER_PERSISTENT_FILES_CHAPTER2=" data/*.lod ${CONTENT_INNER_PATH_CHAPTER2}/data/*.lod" USER_PERSISTENT_FILES_CHAPTER3=" data/*.lod ${CONTENT_INNER_PATH_CHAPTER3}/data/*.lod" USER_PERSISTENT_FILES_CHAPTER4=" data/*.lod ${CONTENT_INNER_PATH_CHAPTER4}/data/*.lod" USER_PERSISTENT_FILES_CHAPTER5=" data/*.lod ${CONTENT_INNER_PATH_CHAPTER5}/data/*.lod" USER_PERSISTENT_FILES_CHAPTER6=" data/*.lod ${CONTENT_INNER_PATH_CHAPTER6}/data/*.lod" USER_PERSISTENT_FILES_CHAPTER7=" data/*.lod ${CONTENT_INNER_PATH_CHAPTER7}/data/*.lod" USER_PERSISTENT_FILES_CHAPTER8=" data/*.lod ${CONTENT_INNER_PATH_CHAPTER8}/data/*.lod" APP_MAIN_EXE_CHAPTER1="${CONTENT_INNER_PATH_CHAPTER1}/warlords.exe" APP_MAIN_EXE_CHAPTER2="${CONTENT_INNER_PATH_CHAPTER2}/underworld.exe" APP_MAIN_EXE_CHAPTER3="${CONTENT_INNER_PATH_CHAPTER3}/elements.exe" APP_MAIN_EXE_CHAPTER4="${CONTENT_INNER_PATH_CHAPTER4}/dragons.exe" APP_MAIN_EXE_CHAPTER5="${CONTENT_INNER_PATH_CHAPTER5}/worldtree.exe" APP_MAIN_EXE_CHAPTER6="${CONTENT_INNER_PATH_CHAPTER6}/fierymoon.exe" APP_MAIN_EXE_CHAPTER7="${CONTENT_INNER_PATH_CHAPTER7}/beastmaster.exe" APP_MAIN_EXE_CHAPTER8="${CONTENT_INNER_PATH_CHAPTER8}/sword.exe" ## Run the game binary from its parent directory APP_MAIN_PRERUN='# Run the game binary from its parent directory cd "$(dirname "$APP_EXE")" APP_EXE=$(basename "$APP_EXE") ' PACKAGES_LIST='PKG_COMMON PKG_DATA PKG_BIN' PKG_COMMON_ID="${GAME_ID}-common" PKG_COMMON_DESCRIPTION="data shared between all $GAME_NAME games" PKG_DATA_ID_CHAPTER1="${GAME_ID_CHAPTER1}-data" PKG_DATA_ID_CHAPTER2="${GAME_ID_CHAPTER2}-data" PKG_DATA_ID_CHAPTER3="${GAME_ID_CHAPTER3}-data" PKG_DATA_ID_CHAPTER4="${GAME_ID_CHAPTER4}-data" PKG_DATA_ID_CHAPTER5="${GAME_ID_CHAPTER5}-data" PKG_DATA_ID_CHAPTER6="${GAME_ID_CHAPTER6}-data" PKG_DATA_ID_CHAPTER7="${GAME_ID_CHAPTER7}-data" PKG_DATA_ID_CHAPTER8="${GAME_ID_CHAPTER8}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPS="$PKG_COMMON_ID" PKG_BIN_ARCH='32' PKG_BIN_DEPS_CHAPTER1="$PKG_DATA_ID_CHAPTER1" PKG_BIN_DEPS_CHAPTER2="$PKG_DATA_ID_CHAPTER2" PKG_BIN_DEPS_CHAPTER3="$PKG_DATA_ID_CHAPTER3" PKG_BIN_DEPS_CHAPTER4="$PKG_DATA_ID_CHAPTER4" PKG_BIN_DEPS_CHAPTER5="$PKG_DATA_ID_CHAPTER5" PKG_BIN_DEPS_CHAPTER6="$PKG_DATA_ID_CHAPTER6" PKG_BIN_DEPS_CHAPTER7="$PKG_DATA_ID_CHAPTER7" PKG_BIN_DEPS_CHAPTER8="$PKG_DATA_ID_CHAPTER8" # Set up a WINE virtual desktop on first launch, using the current desktop resolution sed_expression='s/.*primary.* ([0-9]+x[0-9]+).*/\\1/p' sed_options="--regexp-extended --silent --expression='$sed_expression'" WINE_WINETRICKS_VERBS="${WINE_WINETRICKS_VERBS:-} vd=\$(LANG=C xrandr | sed $sed_options)" PKG_BIN_DEPENDENCIES_COMMANDS="${PKG_BIN_DEPENDENCIES_COMMANDS:-} sed xrandr" # Allow to skip intro video on first launch + set default settings registry_dump_settings_file='registry-dumps/default-settings.reg' registry_dump_settings_content_common='"Animate SpellBook"=dword:00000001 "Autosave"=dword:00000001 "Bink Video"=dword:00000000 "Blackout Computer"=dword:00000000 "Combat Army Info Level"=dword:00000000 "Combat Auto Creatures"=dword:00000001 "Combat Auto Spells"=dword:00000001 "Combat Ballista"=dword:00000001 "Combat Catapult"=dword:00000001 "Combat First Aid Tent"=dword:00000001 "Combat Shade Level"=dword:00000000 "Combat Speed"=dword:00000000 "Computer Walk Speed"=dword:00000003 "First Time"=dword:00000000 "Last Music Volume"=dword:00000005 "Last Sound Volume"=dword:00000005 "Main Game Full Screen"=dword:00000001 "Main Game Show Menu"=dword:00000001 "Main Game X"=dword:0000000a "Main Game Y"=dword:0000000a "Move Reminder"=dword:00000001 "Music Volume"=dword:00000005 "Quick Combat"=dword:00000000 "Show Combat Grid"=dword:00000000 "Show Combat Mouse Hex"=dword:00000000 "Show Intro"=dword:00000001 "Show Route"=dword:00000001 "Sound Volume"=dword:00000005 "Test Blit"=dword:00000000 "Test Decomp"=dword:00000000 "Test Read"=dword:00000000 "Town Outlines"=dword:00000001 "Video Subtitles"=dword:00000001 "Walk Speed"=dword:00000002 "Window Scroll Speed"=dword:00000001' ## Multiple levels of escaping are required: ## - app_path_xxx declaration: "\\\\\\\\" → "\\\\" ## - registry_dump_settings_content_xxx declaration: "\\\\" → "\\" ## We want to get "\\" in the final .reg file. app_path_CHAPTER1="C:\\\\\\\\${GAME_ID_CHAPTER1}\\\\\\\\${CONTENT_INNER_PATH_CHAPTER1}\\\\\\\\" app_path_CHAPTER2="C:\\\\\\\\${GAME_ID_CHAPTER2}\\\\\\\\${CONTENT_INNER_PATH_CHAPTER2}\\\\\\\\" app_path_CHAPTER3="C:\\\\\\\\${GAME_ID_CHAPTER3}\\\\\\\\${CONTENT_INNER_PATH_CHAPTER3}\\\\\\\\" app_path_CHAPTER4="C:\\\\\\\\${GAME_ID_CHAPTER4}\\\\\\\\${CONTENT_INNER_PATH_CHAPTER4}\\\\\\\\" app_path_CHAPTER5="C:\\\\\\\\${GAME_ID_CHAPTER5}\\\\\\\\${CONTENT_INNER_PATH_CHAPTER5}\\\\\\\\" app_path_CHAPTER6="C:\\\\\\\\${GAME_ID_CHAPTER6}\\\\\\\\${CONTENT_INNER_PATH_CHAPTER6}\\\\\\\\" app_path_CHAPTER7="C:\\\\\\\\${GAME_ID_CHAPTER7}\\\\\\\\${CONTENT_INNER_PATH_CHAPTER7}\\\\\\\\" app_path_CHAPTER8="C:\\\\\\\\${GAME_ID_CHAPTER8}\\\\\\\\${CONTENT_INNER_PATH_CHAPTER8}\\\\\\\\" registry_dump_settings_content_CHAPTER1="Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\\Software\\New World Computing\\Heroes Chronicles\\Warlords] \"AppPath\"=\"${app_path_CHAPTER1}\" $registry_dump_settings_content_common" registry_dump_settings_content_CHAPTER2="Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\\Software\\New World Computing\\Heroes Chronicles\\Underworld] \"AppPath\"=\"${app_path_CHAPTER2}\" $registry_dump_settings_content_common" registry_dump_settings_content_CHAPTER3="Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\\Software\\New World Computing\\Heroes Chronicles\\Elements] \"AppPath\"=\"${app_path_CHAPTER3}\" $registry_dump_settings_content_common" registry_dump_settings_content_CHAPTER4="Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\\Software\\New World Computing\\Heroes Chronicles\\Dragons] \"AppPath\"=\"${app_path_CHAPTER4}\" $registry_dump_settings_content_common" registry_dump_settings_content_CHAPTER5="Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\\Software\\New World Computing\\Heroes Chronicles\\WorldTree] \"AppPath\"=\"${app_path_CHAPTER5}\" $registry_dump_settings_content_common" registry_dump_settings_content_CHAPTER6="Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\\Software\\New World Computing\\Heroes Chronicles\\FieryMoon] \"AppPath\"=\"${app_path_CHAPTER6}\" $registry_dump_settings_content_common" registry_dump_settings_content_CHAPTER7="Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\\Software\\New World Computing\\Heroes Chronicles\\Beastmaster] \"AppPath\"=\"${app_path_CHAPTER7}\" $registry_dump_settings_content_common" registry_dump_settings_content_CHAPTER8="Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\\Software\\New World Computing\\Heroes Chronicles\\Sword] \"AppPath\"=\"${app_path_CHAPTER8}\" $registry_dump_settings_content_common" CONTENT_GAME0_BIN_FILES=" $registry_dump_settings_file" APP_REGEDIT="${APP_REGEDIT:-} $registry_dump_settings_file" SCRIPT_DEPS="${SCRIPT_DEPS:-} iconv" # Load common functions target_version='2.25' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Use a common directory and symbolic links to handle data shared between all Heroes Chronicles games PATH_GAME_COMMON=$(path_game_data | sed "s;$(game_id)$;${GAME_ID};") PKG_DATA_POSTINST_RUN="${PKG_DATA_POSTINST_RUN:-} # Link common files shared by the games series ln --symbolic '${PATH_GAME_COMMON}/data' '$(path_game_data)' ln --symbolic '${PATH_GAME_COMMON}/mp3' '$(path_game_data)'" PKG_DATA_PRERM_RUN="${PKG_DATA_PRERM_RUN:-} # Delete links to common files shared by the games series rm '$(path_game_data)/data' rm '$(path_game_data)/mp3'" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Allow to skip intro video on first launch + set default settings registry_dump_settings_content=$(context_value 'registry_dump_settings_content') mkdir --parents "$(dirname "$registry_dump_settings_file")" printf '%s' "$registry_dump_settings_content" |iconv \ --from-code=UTF-8 --to-code=UTF-16 \ --output="$registry_dump_settings_file" ) # Include game icon PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion 'GAME_COMMON' 'PKG_COMMON' "$PATH_GAME_COMMON" content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers ## USER_PERSISTENT_FILES and USER_PERSISTENT_DIRECTORIES have no support for contextual value before ./play.it 2.26. ## cf. https://forge.dotslashplay.it/play.it/scripts/-/issues/452 USER_PERSISTENT_FILES=$(context_value 'USER_PERSISTENT_FILES') USER_PERSISTENT_DIRECTORIES=$(context_value 'USER_PERSISTENT_DIRECTORIES') PKG='PKG_BIN' launchers_write # Build package ( unset "GAME_ID_$(context_archive_suffix)" unset "GAME_NAME_$(context_archive_suffix)" packages_generation 'PKG_COMMON' ) packages_generation 'PKG_DATA' 'PKG_BIN' # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-heroes-of-might-and-magic-1.sh0000755000000000000000000000652614471751340017142 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Heroes of Might and Magic 1 # send your bug reports to contact@dotslashplay.it ### script_version=20230920.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='heroes-of-might-and-magic-1' GAME_NAME='Heroes of Might and Magic: A Strategic Quest' ARCHIVE_BASE_EN_1_NAME='setup_heroes_of_might_and_magic_1.2_(1.1)_(33754).exe' ARCHIVE_BASE_EN_1_MD5='f3100c6547ef1bb82af6dd6fec66bcbf' ARCHIVE_BASE_EN_1_TYPE='innosetup' ARCHIVE_BASE_EN_1_SIZE='630000' ARCHIVE_BASE_EN_1_VERSION='1.2-gog33754' ARCHIVE_BASE_EN_1_URL='https://www.gog.com/game/heroes_of_might_and_magic' ARCHIVE_BASE_FR_1_NAME='setup_heroes_of_might_and_magic_1.2_(1.1)_(french)_(33754).exe' ARCHIVE_BASE_FR_1_MD5='ed647dbfc98cd59dba885dc4fd005a62' ARCHIVE_BASE_FR_1_TYPE='innosetup' ARCHIVE_BASE_FR_1_SIZE='630000' ARCHIVE_BASE_FR_1_VERSION='1.2-gog33754' ARCHIVE_BASE_FR_1_URL='https://www.gog.com/game/heroes_of_might_and_magic' ARCHIVE_BASE_EN_0_NAME='setup_heroes_of_might_and_magic_2.3.0.45.exe' ARCHIVE_BASE_EN_0_MD5='2cae1821085090e30e128cd0a76b0d21' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_SIZE='530000' ARCHIVE_BASE_EN_0_VERSION='1.0-gog2.3.0.45' ARCHIVE_BASE_FR_0_NAME='setup_heroes_of_might_and_magic_french_2.3.0.45.exe' ARCHIVE_BASE_FR_0_MD5='9ec736a2a1b97dc36257f583f42864ac' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_SIZE='530000' ARCHIVE_BASE_FR_0_VERSION='1.0-gog2.3.0.45' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_EN_0='app' CONTENT_PATH_DEFAULT_FR_0='app' CONTENT_GAME_MAIN_FILES=' wail32.dll wing.32 data/campaign.hs data/heroes.agg data/standard.hs games maps/*.map *.exe *.cfg' CONTENT_GAME0_MAIN_PATH='sys' CONTENT_GAME0_MAIN_FILES=' wing32.dll' CONTENT_GAME_COMMON_FILES=' data homm1.gog maps/*.cmp' CONTENT_DOC_COMMON_FILES=' help *.pdf *.txt' GAME_IMAGE='homm1.gog' GAME_IMAGE_TYPE='iso' USER_PERSISTENT_DIRECTORIES=' games maps' USER_PERSISTENT_FILES=' *.cfg' APP_MAIN_EXE='heroes.exe' APP_MAIN_ICON='app/goggame-1207658748.ico' APP_MAIN_ICON_EN_0='goggame-1207658748.ico' APP_MAIN_ICON_FR_0='goggame-1207658748.ico' PACKAGES_LIST='PKG_MAIN PKG_COMMON' PKG_COMMON_ID="${GAME_ID}-common" PKG_COMMON_DESCRIPTION='common data' 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" PKG_MAIN_DESCRIPTION_EN='English version' PKG_MAIN_DESCRIPTION_FR='French version' PKG_MAIN_DEPS="$PKG_COMMON_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 . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icons PKG='PKG_COMMON' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_MAIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-heroes-of-might-and-magic-2.sh0000755000000000000000000001260214471751340017133 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2015 Antoine Le Gonidec set -o errexit ### # Heroes of Might and Magic 2 # send your bug reports to contact@dotslashplay.it ### script_version=20230916.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='heroes-of-might-and-magic-2' GAME_NAME='Heroes of Might and Magic Ⅱ: The Price of Loyalty' ARCHIVE_BASE_EN_2_NAME='setup_heroes_of_might_and_magic_2_gold_1.01_(2.1)_(33438).exe' ARCHIVE_BASE_EN_2_MD5='ff7738a587f10a16116743fe26267f65' ARCHIVE_BASE_EN_2_TYPE='innosetup' ARCHIVE_BASE_EN_2_SIZE='590000' ARCHIVE_BASE_EN_2_VERSION='2.1-gog33438' ARCHIVE_BASE_EN_2_URL='https://www.gog.com/game/heroes_of_might_and_magic_2_gold_edition' ARCHIVE_BASE_FR_2_NAME='setup_heroes_of_might_and_magic_2_gold_1.01_(2.1)_(french)_(33438).exe' ARCHIVE_BASE_FR_2_MD5='b4613fc6b238c83d37247851d5e5a27e' ARCHIVE_BASE_FR_2_TYPE='innosetup' ARCHIVE_BASE_FR_2_SIZE='510000' ARCHIVE_BASE_FR_2_VERSION='2.1-gog33438' ARCHIVE_BASE_FR_2_URL='https://www.gog.com/game/heroes_of_might_and_magic_2_gold_edition' ARCHIVE_BASE_EN_1_NAME='setup_heroes_of_might_and_magic_2_gold_1.0_hotfix_(29821).exe' ARCHIVE_BASE_EN_1_MD5='2dc1cb74c1e8de734fa97fc3d2484212' ARCHIVE_BASE_EN_1_TYPE='innosetup' ARCHIVE_BASE_EN_1_SIZE='480000' ARCHIVE_BASE_EN_1_VERSION='2.1-gog29821' ARCHIVE_BASE_FR_1_NAME='setup_heroes_of_might_and_magic_2_gold_1.0_hotfix_(french)_(29821).exe' ARCHIVE_BASE_FR_1_MD5='1b43a2ce13128d77e8f2e40e72635af1' ARCHIVE_BASE_FR_1_TYPE='innosetup' ARCHIVE_BASE_FR_1_SIZE='410000' ARCHIVE_BASE_FR_1_VERSION='2.1-gog29821' ARCHIVE_BASE_EN_0_NAME='setup_homm2_gold_2.1.0.29.exe' ARCHIVE_BASE_EN_0_MD5='b6785579d75e47936517a79374b17ebc' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_SIZE='480000' ARCHIVE_BASE_EN_0_VERSION='2.1-gog2.1.0.29' ARCHIVE_BASE_FR_0_NAME='setup_homm2_gold_french_2.1.0.29.exe' ARCHIVE_BASE_FR_0_MD5='c49d8f5d0f6d56e54cf6f9c7a526750f' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_SIZE='410000' ARCHIVE_BASE_FR_0_VERSION='2.1-gog2.1.0.29' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_EN_0='app' CONTENT_PATH_DEFAULT_FR_0='app' CONTENT_GAME_MAIN_FILES=' wing.32 homm2.gog homm2.ins homm2.inst data games journals maps sound *.exe *.cfg' CONTENT_GAME0_MAIN_PATH='sys' CONTENT_GAME0_MAIN_FILES=' wing32.dll' CONTENT_DOC_MAIN_FILES=' eula help readme.txt h2camp.txt polcamp.txt *.pdf' CONTENT_GAME_MUSIC_SW_PATH="${CONTENT_PATH_DEFAULT}/music/sw" CONTENT_GAME_MUSIC_SW_FILES=' *.ogg' CONTENT_GAME_MUSIC_POL_PATH="${CONTENT_PATH_DEFAULT}/music/pol" CONTENT_GAME_MUSIC_POL_FILES=' *.ogg' GAME_IMAGE='homm2.ins' GAME_IMAGE_TYPE='cdrom' USER_PERSISTENT_DIRECTORIES=' games maps' USER_PERSISTENT_FILES=' data/standard.hs *.cfg' APP_MAIN_EXE='heroes2.exe' APP_MAIN_ICON='app/goggame-1207658785.ico' APP_MAIN_ICON_EN_0='goggame-1207658785.ico' APP_MAIN_ICON_FR_0='goggame-1207658785.ico' APP_EDITOR_ID="${GAME_ID}-editor" APP_EDITOR_NAME="$GAME_NAME - editor" APP_EDITOR_EXE='editor2.exe' APP_EDITOR_ICON='app/goggame-1207658785.ico' APP_EDITOR_ICON_EN_0='goggame-1207658785.ico' APP_EDITOR_ICON_FR_0='goggame-1207658785.ico' PACKAGES_LIST='PKG_MAIN PKG_MUSIC_SW PKG_MUSIC_POL' PKG_MUSIC_ID="${GAME_ID}-music" PKG_MUSIC_SW_ID="${PKG_MUSIC_ID}-sw" PKG_MUSIC_SW_PROVIDES=" $PKG_MUSIC_ID" PKG_MUSIC_SW_DESCRIPTION='The Succession Wars music' PKG_MUSIC_POL_ID="${PKG_MUSIC_ID}-pol" PKG_MUSIC_POL_PROVIDES=" $PKG_MUSIC_ID" PKG_MUSIC_POL_DESCRIPTION='The Price of Loyalty music' 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" PKG_MAIN_DESCRIPTION_EN='English version' PKG_MAIN_DESCRIPTION_FR='French version' PKG_MAIN_DEPS="$PKG_MUSIC_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 . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Ensure consistent name for disk image disk_image_alternative_name='homm2.inst' if [ -e "$disk_image_alternative_name" ]; then mv "$disk_image_alternative_name" "$GAME_IMAGE" fi # Copy common music files shared between both soundtracks rm \ 'music/homm2_04.ogg' \ 'music/homm2_05.ogg' \ 'music/homm2_06.ogg' \ 'music/homm2_07.ogg' \ 'music/homm2_08.ogg' \ 'music/homm2_09.ogg' cp --link 'music'/*.ogg 'music/sw' cp --link 'music'/*.ogg 'music/pol' rm 'music'/*.ogg ) # Include game icons PKG='PKG_MAIN' icons_inclusion # Include game data content_inclusion 'GAME_MUSIC_SW' 'PKG_MUSIC_SW' "$(path_game_data)/music" content_inclusion 'GAME_MUSIC_POL' 'PKG_MUSIC_POL' "$(path_game_data)/music" content_inclusion_default # Write launchers PKG='PKG_MAIN' launchers_write # Build packages packages_generation # Print instructions printf '\n' printf '%s:' "$(package_description 'PKG_MUSIC_SW')" print_instructions 'PKG_MAIN' 'PKG_MUSIC_SW' printf '%s:' "$(package_description 'PKG_MUSIC_POL')" print_instructions 'PKG_MAIN' 'PKG_MUSIC_POL' # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-heroes-of-might-and-magic-3.sh0000755000000000000000000002122014471751340017130 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2015 Antoine Le Gonidec set -o errexit ### # Heroes of Might and Magic 3 # send your bug reports to contact@dotslashplay.it ### script_version=20231008.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='heroes-of-might-and-magic-3' GAME_NAME='Heroes of Might and Magic Ⅲ' # Archives ## gog.com installer, English ARCHIVE_BASE_EN_0_NAME='setup_heroes_of_might_and_magic_3_complete_4.0_(28740).exe' ARCHIVE_BASE_EN_0_MD5='8dcd6c4a8c72c65a6920665e28245c57' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_PART1_NAME='setup_heroes_of_might_and_magic_3_complete_4.0_(28740)-1.bin' ARCHIVE_BASE_EN_0_PART1_MD5='4285d54f27c40e815905c7069b6f9f84' ARCHIVE_BASE_EN_0_SIZE='1100000' ARCHIVE_BASE_EN_0_VERSION='4.0-gog28740' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/heroes_of_might_and_magic_3_complete_edition' ARCHIVE_BASE_OLDTEMPLATE_EN_1_NAME='setup_homm_3_complete_4.0_(10665).exe' ARCHIVE_BASE_OLDTEMPLATE_EN_1_MD5='0c97452fc4da4e8811173f21df873fab' ARCHIVE_BASE_OLDTEMPLATE_EN_1_TYPE='innosetup' ARCHIVE_BASE_OLDTEMPLATE_EN_1_SIZE='1100000' ARCHIVE_BASE_OLDTEMPLATE_EN_1_VERSION='4.0-gog10665' ARCHIVE_BASE_OLDTEMPLATE_EN_0_NAME='setup_homm3_complete_2.0.0.16.exe' ARCHIVE_BASE_OLDTEMPLATE_EN_0_MD5='263d58f8cc026dd861e9bbcadecba318' ARCHIVE_BASE_OLDTEMPLATE_EN_0_TYPE='innosetup' ARCHIVE_BASE_OLDTEMPLATE_EN_0_PART1_NAME='patch_heroes_of_might_and_magic_3_complete_2.0.1.17.exe' ARCHIVE_BASE_OLDTEMPLATE_EN_0_PART1_MD5='815b9c097cd57d0e269beb4cc718dad3' ARCHIVE_BASE_OLDTEMPLATE_EN_0_SIZE='1100000' ARCHIVE_BASE_OLDTEMPLATE_EN_0_VERSION='3.0-gog2.0.1.17' ## gog.com installer, French ARCHIVE_BASE_FR_0_NAME='setup_heroes_of_might_and_magic_3_complete_4.0_(french)_(28740).exe' ARCHIVE_BASE_FR_0_MD5='be4b59590146299dbe77bda7a4ea4178' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_PART1_NAME='setup_heroes_of_might_and_magic_3_complete_4.0_(french)_(28740)-1.bin' ARCHIVE_BASE_FR_0_PART1_MD5='88b71e0fd44e5be1ad6791e74120c61c' ARCHIVE_BASE_FR_0_SIZE='1100000' ARCHIVE_BASE_FR_0_VERSION='4.0-gog28740' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/heroes_of_might_and_magic_3_complete_edition' ARCHIVE_BASE_OLDTEMPLATE_FR_1_NAME='setup_homm_3_complete_french_4.0_(10665).exe' ARCHIVE_BASE_OLDTEMPLATE_FR_1_MD5='6c3ee33a531bd0604679581ab267d8a3' ARCHIVE_BASE_OLDTEMPLATE_FR_1_TYPE='innosetup' ARCHIVE_BASE_OLDTEMPLATE_FR_1_SIZE='1100000' ARCHIVE_BASE_OLDTEMPLATE_FR_1_VERSION='4.0-gog10665' ARCHIVE_BASE_OLDTEMPLATE_FR_0_NAME='setup_homm3_complete_french_2.1.0.20.exe' ARCHIVE_BASE_OLDTEMPLATE_FR_0_MD5='ca8e4726acd7b5bc13c782d59c5a459b' ARCHIVE_BASE_OLDTEMPLATE_FR_0_TYPE='innosetup' ARCHIVE_BASE_OLDTEMPLATE_FR_0_SIZE='1100000' ARCHIVE_BASE_OLDTEMPLATE_FR_0_VERSION='3.0-gog2.1.0.20' ## gog.com installer, Russian ARCHIVE_BASE_RU_0_NAME='setup_heroes_of_might_and_magic_3_complete_4.0_(russian)_(28740).exe' ARCHIVE_BASE_RU_0_MD5='33018e8355f59b9e532d7429e1aaeeae' ARCHIVE_BASE_RU_0_TYPE='innosetup' ARCHIVE_BASE_RU_0_PART1_NAME='setup_heroes_of_might_and_magic_3_complete_4.0_(russian)_(28740)-1.bin' ARCHIVE_BASE_RU_0_PART1_MD5='5d409ee2e2b3ec32fa9838ca1d601e02' ARCHIVE_BASE_RU_0_SIZE='1100000' ARCHIVE_BASE_RU_0_VERSION='4.0-gog28740' ARCHIVE_BASE_RU_0_URL='https://www.gog.com/game/heroes_of_might_and_magic_3_complete_edition' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_OLDTEMPLATE='app' CONTENT_GAME_BIN_WINE_FILES=' binkw32.dll ifc20.dll ifc21.dll mcp.dll mp3dec.asi mss32.dll smackw32.dll *.exe' CONTENT_GAME0_BIN_WINE_PATH_OLDTEMPLATE_EN_0='tmp' CONTENT_GAME0_BIN_WINE_FILES_OLDTEMPLATE_EN_0=' heroes3.exe' CONTENT_GAME_DATA_FILES=' data maps mp3' CONTENT_DOC_DATA_FILES=' eula *.cnt *.hlp *.pdf *.txt' USER_PERSISTENT_DIRECTORIES=' config games maps random_maps' USER_PERSISTENT_FILES=' data/*.lod' APP_MAIN_TYPE_BIN_VCMI='native' APP_MAIN_EXE_BIN_WINE='heroes3.exe' APP_MAIN_ICON='heroes3.exe' APP_EDITOR_MAP_ID="${GAME_ID}-map-editor" APP_EDITOR_MAP_EXE='h3maped.exe' APP_EDITOR_MAP_NAME="$GAME_NAME - map editor" APP_EDITOR_CAMPAIGN_ID="${GAME_ID}-campaign-editor" APP_EDITOR_CAMPAIGN_EXE='h3ccmped.exe' APP_EDITOR_CAMPAIGN_NAME="$GAME_NAME - campaign editor" PACKAGES_LIST='PKG_BIN_VCMI PKG_BIN_WINE PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_EN="${PKG_DATA_ID}-en" PKG_DATA_ID_FR="${PKG_DATA_ID}-fr" PKG_DATA_ID_RU="${PKG_DATA_ID}-ru" PKG_DATA_ID_OLDTEMPLATE_EN="$PKG_DATA_ID_EN" PKG_DATA_ID_OLDTEMPLATE_FR="$PKG_DATA_ID_FR" PKG_DATA_PROVIDES=" $PKG_DATA_ID" PKG_DATA_DESCRIPTION='data' PKG_BIN_ID="$GAME_ID" PKG_BIN_VCMI_ID="${PKG_BIN_ID}-vcmi" PKG_BIN_VCMI_PROVIDES=" $PKG_BIN_ID" PKG_BIN_VCMI_DEPS="$PKG_DATA_ID" PKG_BIN_VCMI_DEPENDENCIES_COMMANDS=' vcmilauncher' PKG_BIN_WINE_ID="${PKG_BIN_ID}-wine" PKG_BIN_WINE_ID_EN="${PKG_BIN_WINE_ID}-en" PKG_BIN_WINE_ID_FR="${PKG_BIN_WINE_ID}-fr" PKG_BIN_WINE_ID_RU="${PKG_BIN_WINE_ID}-ru" PKG_BIN_WINE_ID_OLDTEMPLATE_EN="$PKG_BIN_WINE_ID_EN" PKG_BIN_WINE_ID_OLDTEMPLATE_FR="$PKG_BIN_WINE_ID_FR" PKG_BIN_WINE_PROVIDES=" $PKG_BIN_ID" PKG_BIN_WINE_ARCH='32' PKG_BIN_WINE_DEPS="$PKG_DATA_ID" # Allow to skip intro video on first launch + set default settings registry_dump_settings_file='registry-dumps/default-settings.reg' registry_dump_settings_content='Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\Software\New World Computing\Heroes of Might and Magic® III\1.0] "Animate SpellBook"=dword:00000001 "Autosave"=dword:00000001 "Bink Video"=dword:00000001 "Blackout Computer"=dword:00000000 "Combat Army Info Level"=dword:00000000 "Combat Auto Creatures"=dword:00000001 "Combat Auto Spells"=dword:00000001 "Combat Ballista"=dword:00000001 "Combat Catapult"=dword:00000001 "Combat First Aid Tent"=dword:00000001 "Combat Shade Level"=dword:00000000 "Combat Speed"=dword:00000000 "Computer Walk Speed"=dword:00000003 "First Time"=dword:00000000 "Last Music Volume"=dword:00000005 "Last Sound Volume"=dword:00000005 "Main Game Full Screen"=dword:00000001 "Main Game Show Menu"=dword:00000001 "Main Game X"=dword:0000000a "Main Game Y"=dword:0000000a "Move Reminder"=dword:00000001 "Music Volume"=dword:00000005 "Network Default Name"="Player" "Quick Combat"=dword:00000000 "Show Combat Grid"=dword:00000000 "Show Combat Mouse Hex"=dword:00000000 "Show Intro"=dword:00000001 "Show Route"=dword:00000001 "Sound Volume"=dword:00000005 "Test Blit"=dword:00000000 "Test Decomp"=dword:00000000 "Test Read"=dword:00000000 "Town Outlines"=dword:00000001 "Video Subtitles"=dword:00000001 "Walk Speed"=dword:00000002 "Window Scroll Speed"=dword:00000001' CONTENT_GAME_BIN_WINE_FILES="${CONTENT_GAME_BIN_WINE_FILES:-} $registry_dump_settings_file" APP_REGEDIT="${APP_REGEDIT:-} $registry_dump_settings_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 . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ## For old gog.com English archive, get the patched .exe case "$(current_archive)" in ('ARCHIVE_OLDTEMPLATE_EN_0') archive_extraction 'SOURCE_ARCHIVE_PART1' ;; esac ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Allow to skip intro video on first launch + set default settings mkdir --parents "$(dirname "$registry_dump_settings_file")" printf '%s' "$registry_dump_settings_content" | \ iconv --from-code=UTF-8 --to-code=UTF-16 --output="$registry_dump_settings_file" ) # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN_WINE' launchers_write set_current_package 'PKG_BIN_VCMI' launcher_path=$(launcher_path 'APP_MAIN') mkdir --parents "$(dirname "$launcher_path")" { launcher_headers cat <<- EOF GAME_PATH="$(path_game_data)" EOF cat <<- 'EOF' VCMI_DATA="${XDG_DATA_HOME:="${HOME}/.local/share"}/vcmi" for directory in data maps mp3; do if [ ! -e "${VCMI_DATA}/${directory}" ]; then mkdir --parents "$VCMI_DATA" cp --recursive --remove-destination --symbolic-link "${GAME_PATH}/${directory}" "$VCMI_DATA" fi done vcmilauncher exit 0 EOF } >> "$launcher_path" chmod 755 "$launcher_path" launcher_write_desktop 'APP_MAIN' # Build packages packages_generation printf '\n' printf 'VCMI:' print_instructions 'PKG_DATA' 'PKG_BIN_VCMI' printf 'WINE:' print_instructions 'PKG_DATA' 'PKG_BIN_WINE' # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-hidden-paws.sh0000755000000000000000000000661614471751340014374 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Hidden Paws # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210818.2 # Set game-specific variables GAME_ID='hidden-paws' GAME_NAME='Hidden Paws' ARCHIVE_BASE_0='HiddenPaws.zip' ARCHIVE_BASE_0_MD5='ae78aab96f9cebf5ecee47846505acc0' ARCHIVE_BASE_0_SIZE='410000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://manichyena.itch.io/hidden-paws' ARCHIVE_GAME_BIN_PATH='HiddenPaws' ARCHIVE_GAME_BIN_FILES=' *.dll *.exe Mono HiddenPaws_Data/Plugins' ARCHIVE_GAME_DATA_PATH='HiddenPaws' ARCHIVE_GAME_DATA_FILES=' HiddenPaws_Data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='HiddenPaws.exe' APP_MAIN_ICON='HiddenPaws.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Use persistent storage for saved games APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/AppData/LocalLow/Manic Hyena/Hidden Paws' DATA_DIRS="$DATA_DIRS userdata/SaveGame" # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-hidden-through-time-legend-of-japan.sh0000755000000000000000000000615414471751340020760 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Hidden Through Time - Legends of Japan # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20211205.1 # Set game-specific variables GAME_ID='hidden-through-time' GAME_NAME='Hidden Through Time' EXPANSION_ID='legends-of-japan' EXPANSION_NAME='Legends of Japan' ARCHIVE_BASE_0='setup_hidden_through_time_-_legends_of_japan_1.0.7_(46929).exe' ARCHIVE_BASE_0_MD5='d05628b0410b21559e8aebc99e1543c6' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='7400' ARCHIVE_BASE_0_VERSION='1.0.7-gog46929' ARCHIVE_BASE_0_URL='https://www.gog.com/game/hidden_through_time_legends_of_japan' ARCHIVE_GAME_MAIN_PATH='.' ARCHIVE_GAME_MAIN_FILES='goggame-1366535676.info' PKG_MAIN_ID="${GAME_ID}-${EXPANSION_ID}" PKG_MAIN_DESCRIPTION="$EXPANSION_NAME" PKG_MAIN_DEPS="$GAME_ID" # Load common functions target_version='2.14' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "$PLAYIT_WORKDIR/gamedata" # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions GAME_NAME="$GAME_NAME - $EXPANSION_NAME" print_instructions exit 0 games/play-hidden-through-time-road-to-rome.sh0000755000000000000000000000612614471751340020335 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Hidden Through Time - Road to Rome # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20211205.2 # Set game-specific variables GAME_ID='hidden-through-time' GAME_NAME='Hidden Through Time' EXPANSION_ID='road-to-rome' EXPANSION_NAME='Road to Rome' ARCHIVE_BASE_0='setup_hidden_through_time_road_to_rome_1.0.7_(46929).exe' ARCHIVE_BASE_0_MD5='2e08360a0232df11d7016fe0ef2b5629' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='8200' ARCHIVE_BASE_0_VERSION='1.0.7-gog46929' ARCHIVE_BASE_0_URL='https://www.gog.com/game/hidden_through_time_road_to_rome' ARCHIVE_GAME_MAIN_PATH='.' ARCHIVE_GAME_MAIN_FILES='goggame-2008970480.info' PKG_MAIN_ID="${GAME_ID}-${EXPANSION_ID}" PKG_MAIN_DESCRIPTION="$EXPANSION_NAME" PKG_MAIN_DEPS="$GAME_ID" # Load common functions target_version='2.14' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "$PLAYIT_WORKDIR/gamedata" # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions GAME_NAME="$GAME_NAME - $EXPANSION_NAME" print_instructions exit 0 games/play-hidden-through-time-viking-tales.sh0000755000000000000000000000600514471751340020421 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # 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. ### ### # Hidden Through Time - Viking Tales # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20211029.1 # Set game-specific variables GAME_ID='hidden-through-time' GAME_NAME='Hidden Through Time' EXPANSION_ID='viking-tales' EXPANSION_NAME='Viking Tales' ARCHIVE_BASE_0='setup_hidden_through_time_-_viking_tales_1.0.7_(46929).exe' ARCHIVE_BASE_0_MD5='0367e7a34d784d6aca0f54e56bd0d47e' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='7200' ARCHIVE_BASE_0_VERSION='1.0.7-gog46929' ARCHIVE_BASE_0_URL='https://www.gog.com/game/hidden_through_time_viking_tales' ARCHIVE_GAME_MAIN_PATH='.' ARCHIVE_GAME_MAIN_FILES='goggame-1468030524.info' PKG_MAIN_ID="${GAME_ID}-${EXPANSION_ID}" PKG_MAIN_DESCRIPTION="$EXPANSION_NAME" PKG_MAIN_DEPS="$GAME_ID" # Load common functions target_version='2.14' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "$PLAYIT_WORKDIR/gamedata" # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-hidden-through-time.sh0000755000000000000000000000345314471751340016032 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 mortalius # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Hidden Through Time # send your bug reports to contact@dotslashplay.it ### script_version=20231102.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='hidden-through-time' GAME_NAME='Hidden Through Time' ARCHIVE_BASE_0_NAME='setup_hidden_through_time_1.0.7_(46929).exe' ARCHIVE_BASE_0_MD5='f64269fa2f3627fe5ad74cae5ff11869' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='520000' ARCHIVE_BASE_0_VERSION='1.0.7-gog46929' ARCHIVE_BASE_0_URL='https://www.gog.com/game/hidden_through_time' UNITY3D_NAME='hidden' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Crazy Monkey Studios/Hidden Through Time' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-higurashi-no-naku-koro-ni-hou-chapter-1-onikakushi.sh0000755000000000000000000001344214471751340023607 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine Le Gonidec # Copyright (c) 2020, Emmanuel Gil Peyrot # 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. ### ### # Higurashi no naku koro ni Hou - Chapter 1 Onikakushi # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20201203.6 # Set game-specific variables GAME_ID='higurashi-no-naku-koro-ni-hou-chapter-1-onikakushi' GAME_NAME='Higurashi no naku koro ni Hou - Chapter 1 Onikakushi' ARCHIVES_LIST=' ARCHIVE_GOG_0' ARCHIVE_GOG_0='higurashi_when_they_cry_hou_ch_1_onikakushi_1_0_bgm_sfx_update_28641.sh' ARCHIVE_GOG_0_MD5='501e514ef5accc565eac6e98c384e4aa' ARCHIVE_GOG_0_TYPE='mojosetup' ARCHIVE_GOG_0_VERSION='1.0-gog28641' ARCHIVE_GOG_0_SIZE='310000' ARCHIVE_GOG_0_URL='https://www.gog.com/game/higurashi_when_they_cry_hou_ch1_onikakushi' ARCHIVE_GAME_BIN32_PATH='data/noarch/game' ARCHIVE_GAME_BIN32_FILES='HigurashiEp01.x86 HigurashiEp01_Data/Mono/x86 HigurashiEp01_Data/Plugins/x86' ARCHIVE_GAME_BIN64_PATH='data/noarch/game' ARCHIVE_GAME_BIN64_FILES='HigurashiEp01.x86_64 HigurashiEp01_Data/Mono/x86_64 HigurashiEp01_Data/Plugins/x86_64' ARCHIVE_GAME_DATA_PATH='data/noarch/game' ARCHIVE_GAME_DATA_FILES='HigurashiEp01_Data' APP_MAIN_TYPE='native' #shellcheck disable=SC2016 APP_MAIN_PRERUN='# Work around Unity3D poor support for non-US locales export LANG=C' APP_MAIN_EXE_BIN32='HigurashiEp01.x86' APP_MAIN_EXE_BIN64='HigurashiEp01.x86_64' APP_MAIN_ICON='HigurashiEp01_Data/Resources/UnityPlayer.png' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID glibc libstdc++ glx xcursor libxrandr gtk2 libgdk_pixbuf-2.0.so.0 libgobject-2.0.so.0 libglib-2.0.so.0" PKG_BIN32_DEPS_ARCH='lib32-libx11' PKG_BIN32_DEPS_DEB='libx11-6' PKG_BIN32_DEPS_GENTOO='x11-libs/libX11[abi_x86_32]' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPS_ARCH='libx11' PKG_BIN64_DEPS_DEB="$PKG_BIN32_DEPS_DEB" PKG_BIN64_DEPS_GENTOO='x11-libs/libX11' # Use a per-session dedicated file for logs APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a per-session dedicated file for logs mkdir --parents logs if [ -z "$APP_OPTIONS" ]; then APP_OPTIONS="-logFile logs/$(date +%F-%R).log" elif [ -n "${APP_OPTIONS##* -logFile *}" ]; then APP_OPTIONS="$APP_OPTIONS -logFile logs/$(date +%F-%R).log" fi' # Work around crash on launch related to libpulse # shellcheck disable=SC1004 APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Start pulseaudio if it is available if command -v pulseaudio >/dev/null 2>&1; then PULSEAUDIO_IS_AVAILABLE=1 if pulseaudio --check; then KEEP_PULSEAUDIO_RUNNING=1 else KEEP_PULSEAUDIO_RUNNING=0 fi pulseaudio --start else PULSEAUDIO_IS_AVAILABLE=0 fi # Work around crash on launch related to libpulse # Some Unity3D games crash on launch if libpulse-simple.so.0 is available but pulseaudio is not running if [ $PULSEAUDIO_IS_AVAILABLE -eq 0 ]; then mkdir --parents "${APP_LIBS:=libs}" ln --force --symbolic /dev/null "$APP_LIBS/libpulse-simple.so.0" else if \ [ -h "${APP_LIBS:=libs}/libpulse-simple.so.0" ] && \ [ "$(realpath "$APP_LIBS/libpulse-simple.so.0")" = "/dev/null" ] then rm "$APP_LIBS/libpulse-simple.so.0" rmdir --ignore-fail-on-non-empty --parents "$APP_LIBS" fi fi' # shellcheck disable=SC1004 APP_MAIN_POSTRUN="$APP_MAIN_POSTRUN"' # Stop pulseaudio if it has specifically been started for the game if \ [ $PULSEAUDIO_IS_AVAILABLE -eq 1 ] && \ [ $KEEP_PULSEAUDIO_RUNNING -eq 0 ] then pulseaudio --kill fi' # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary files rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-hitman.sh0000755000000000000000000000470414471751340013445 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Hitman 1 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220704.1 GAME_ID='hitman' GAME_NAME='Hitman: Codename 47' ARCHIVE_BASE_0='setup_hitman_codename_47_b192_(17919).exe' ARCHIVE_BASE_0_MD5='018d8191bfa45c16995537e3a93f96bd' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='340000' ARCHIVE_BASE_0_VERSION='1.0b192-gog17919' ARCHIVE_BASE_0_URL='https://www.gog.com/game/hitman' CONTENT_PATH_DEFAULT='app' ARCHIVE_DOC_DATA_FILES=' *.pdf *.txt' ARCHIVE_GAME_BIN_FILES=' *.dlc *.dll *.exe *.ini' ARCHIVE_GAME_DATA_FILES=' repeat.* intro.zip optionsscreen.zip alllevels c0_* c1_* c2_* c3_* c4_* c5_* cutscenes music setup sounds' APP_MAIN_TYPE='wine' APP_MAIN_EXE='hitman.exe' APP_MAIN_ICON='hitman.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Use persistent storage for user data DATA_FILES='*.cfg *.ini *.sav' # Set up a WINE virtual desktop on first launch, using the current desktop resolution PKG_BIN_DEPS="$PKG_BIN_DEPS winetricks xrandr sed" sed_expression='s/.*primary.* ([0-9]+x[0-9]+).*/\1/p' sed_options="--regexp-extended --silent --expression='$sed_expression'" APP_WINETRICKS="$APP_WINETRICKS vd=\$(LANG=C xrandr | sed $sed_options)" # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-hive-time.sh0000755000000000000000000000652714471751340014061 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # Hive Time # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20201020.2 # Set game-specific variables GAME_ID='hive-time' GAME_NAME='Hive Time' ARCHIVES_LIST=' ARCHIVE_ITCH_0' ARCHIVE_ITCH_0='hive-time-linux-v1.1.zip' ARCHIVE_ITCH_0_URL='https://cheeseness.itch.io/hive-time' ARCHIVE_ITCH_0_MD5='5d63b490982d96620b0bbb7b6522be56' ARCHIVE_ITCH_0_SIZE='180000' ARCHIVE_ITCH_0_VERSION='1.1-itch' ARCHIVE_ITCH_0_TYPE='zip' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='hive-time_linux_v1.1.x86_64' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='json hive-time_linux_v1.1.pck fonts' APP_MAIN_TYPE='native' APP_MAIN_EXE='hive-time_linux_v1.1.x86_64' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID glibc libstdc++ glx xcursor" PKG_BIN_DEPS_ARCH='libx11 ' PKG_BIN_DEPS_DEB='libx11-6' PKG_BIN_DEPS_GENTOO='x11-libs/libX11' # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" set_standard_permissions "$PLAYIT_WORKDIR/gamedata" prepare_package_layout # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-hiveswap-act-1.sh0000755000000000000000000000424414471751340014715 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Hiveswap: Act 1 # send your bug reports to contact@dotslashplay.it ### script_version=20231109.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='hiveswap-act-1' GAME_NAME='Hiveswap: Act 1' ARCHIVE_BASE_0_NAME='hiveswap_act_1_en_gog_1_20238.sh' ARCHIVE_BASE_0_MD5='9ca40a38ee3de182cec967e3f6749be4' ARCHIVE_BASE_0_SIZE='4300000' ARCHIVE_BASE_0_VERSION='1.0-gog20238' ARCHIVE_BASE_0_URL='https://www.gog.com/game/hiveswap' UNITY3D_NAME='Hiveswap-Act1' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' launchers_write set_current_package 'PKG_BIN32' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-hoa.sh0000755000000000000000000000665114471751340012737 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Hoa # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210903.2 # Set game-specific variables GAME_ID='hoa' GAME_NAME='Hoa' ARCHIVE_BASE_0='setup_hoa_1.03_(49429).exe' ARCHIVE_BASE_0_MD5='d713ecdb56059e5b4ee430d2f0e2731d' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='3200000' ARCHIVE_BASE_0_VERSION='1.03-gog49429' ARCHIVE_BASE_0_URL='https://www.gog.com/game/hoa' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES=' hoa.exe fmodstudio.dll monobleedingedge unitycrashhandler32.exe unityplayer.dll xinputinterface32.dll' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES=' hoa_data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='hoa.exe' APP_MAIN_ICON='hoa.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="${PKG_DATA_ID} wine" # Use persistent storage for saved games APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/AppData/LocalLow/PMStudioGoG/Hoa' DATA_DIRS="$DATA_DIRS ./userdata" # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-hob.sh0000755000000000000000000000376414471751340012742 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Hob ### script_version=20230322.1 GAME_ID='hob-game' GAME_NAME='Hob' ARCHIVE_BASE_0='setup_hob_1.17.3.0_(16560).exe' ARCHIVE_BASE_0_MD5='e99ca23c70ea3bfd4335fee7ca5a618e' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_hob_1.17.3.0_(16560)-1.bin' ARCHIVE_BASE_0_PART1_MD5='25455a965280f7ac6f94f4ff7d96b852' ARCHIVE_BASE_0_SIZE='2800000' ARCHIVE_BASE_0_VERSION='1.17.3.0-gog16560' ARCHIVE_BASE_0_URL='https://www.gog.com/game/hob' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' *.cfg *.dll hob.exe hoblauncher.exe' CONTENT_GAME_DATA_FILES=' audiobanks media music paks' WINE_DIRECT3D_RENDERER='dxvk' APP_WINE_LINK_DIRS=' userdata:users/${USER}/Documents/My Games/Runic Games/HOB' USER_PERSISTENT_DIRECTORIES=' userdata' APP_MAIN_EXE='hob.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-hollow-knight.sh0000755000000000000000000001017214471751340014747 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2018 VA # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Hollow Knight # send your bug reports to contact@dotslashplay.it ### script_version=20230406.2 # Set game-specific variables GAME_ID='hollow-knight' GAME_NAME='Hollow Knight' ARCHIVE_BASE_3='hollow_knight_1_5_78_11833_51218.sh' ARCHIVE_BASE_3_MD5='ad36d98ec636b09796667f0b124ff5bb' ARCHIVE_BASE_3_TYPE='mojosetup' ARCHIVE_BASE_3_SIZE='7900000' ARCHIVE_BASE_3_VERSION='1.5.78-gog51218' ARCHIVE_BASE_3_URL='https://www.gog.com/game/hollow_knight' ARCHIVE_BASE_2='hollow_knight_1_4_3_2_23987.sh' ARCHIVE_BASE_2_MD5='520af5ebe8ac3977faaafc5d2ed8a779' ARCHIVE_BASE_2_TYPE='mojosetup' ARCHIVE_BASE_2_SIZE='7800000' ARCHIVE_BASE_2_VERSION='1.4.3.2-gog23987' ARCHIVE_BASE_1='hollow_knight_en_1_3_1_5_20240.sh' ARCHIVE_BASE_1_MD5='197d9ffc7e0be447849e22a04da836e4' ARCHIVE_BASE_1_TYPE='mojosetup' ARCHIVE_BASE_1_SIZE='7100000' ARCHIVE_BASE_1_VERSION='1.3.1.5-gog20240' ARCHIVE_BASE_0='gog_hollow_knight_2.1.0.2.sh' ARCHIVE_BASE_0_MD5='0d18baf29d5552dc094ca2bfe5fcaae6' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='9200000' ARCHIVE_BASE_0_VERSION='1.0.3.1-gog2.1.0.2' UNITY3D_NAME='Hollow Knight' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_LIBS_BIN_FILES=' ScreenSelector.so' CONTENT_LIBS0_BIN_FILES=' UnityPlayer.so' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME} ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/MonoBleedingEdge/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data/Managed ${UNITY3D_NAME}_Data/Mono/etc ${UNITY3D_NAME}_Data/MonoBleedingEdge/etc ${UNITY3D_NAME}_Data/Resources ${UNITY3D_NAME}_Data/StreamingAssets ${UNITY3D_NAME}_Data/globalgamemanagers ${UNITY3D_NAME}_Data/boot.config ${UNITY3D_NAME}_Data/app.info ${UNITY3D_NAME}_Data/level? ${UNITY3D_NAME}_Data/level?? ${UNITY3D_NAME}_Data/level??? ${UNITY3D_NAME}_Data/*.assets ${UNITY3D_NAME}_Data/*.assets.resS ${UNITY3D_NAME}_Data/*.json ${UNITY3D_NAME}_Data/*.resource" APP_MAIN_EXE="$UNITY3D_NAME" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' PKG_BIN_DEPENDENCIES_LIBRARIES_2=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN_DEPENDENCIES_LIBRARIES_1="$PKG_BIN_DEPENDENCIES_LIBRARIES_2" PKG_BIN_DEPENDENCIES_LIBRARIES_0="$PKG_BIN_DEPENDENCIES_LIBRARIES_2" # Ensure easy upgrade from packages generated using pre-20230406.2 game script PKG_DATA_PROVIDE='hollow-knight-assets' # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Enforce a consistent Unity3D name unity3d_name=$(unity3d_name) if [ -e 'hollow_knight.x86_64' ]; then mv 'hollow_knight.x86_64' "$unity3d_name" fi if [ -e 'hollow_knight_Data' ]; then mv 'hollow_knight_Data' "${unity3d_name}_Data" fi ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-horizon-zero-dawn.sh0000755000000000000000000002217614471751340015564 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Horizon Zero Dawn # send your bug reports to contact@dotslashplay.it ### script_version=20230901.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='horizon-zero-dawn' GAME_NAME='Horizon Zero Dawn' ARCHIVE_BASE_1_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037).exe' ARCHIVE_BASE_1_MD5='cbcd8e966a6ffd5881d9ad5f21896171' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-1.bin' ARCHIVE_BASE_1_PART1_MD5='9a34a22b24fb0f0e44c17afccec79fdf' ARCHIVE_BASE_1_PART2_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-2.bin' ARCHIVE_BASE_1_PART2_MD5='0e961289ae2e6a84440d354d98a74325' ARCHIVE_BASE_1_PART3_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-3.bin' ARCHIVE_BASE_1_PART3_MD5='f7c23754103e3bcf02eec7216b9e94e3' ARCHIVE_BASE_1_PART4_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-4.bin' ARCHIVE_BASE_1_PART4_MD5='4ed606b3ac83c644dab85bbc1938057a' ARCHIVE_BASE_1_PART5_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-5.bin' ARCHIVE_BASE_1_PART5_MD5='0a08cc1604d50b5c971bfaa80008c9d9' ARCHIVE_BASE_1_PART6_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-6.bin' ARCHIVE_BASE_1_PART6_MD5='8d7b79803c494726889d1a21ae55ae63' ARCHIVE_BASE_1_PART7_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-7.bin' ARCHIVE_BASE_1_PART7_MD5='81bdcd0eb672b0e600af02724745a942' ARCHIVE_BASE_1_PART8_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-8.bin' ARCHIVE_BASE_1_PART8_MD5='1643dff8d1c8e52506e48549554a14da' ARCHIVE_BASE_1_PART9_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-9.bin' ARCHIVE_BASE_1_PART9_MD5='7a7133c16ac38ce9b4e9abfddea62f89' ARCHIVE_BASE_1_PART10_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-10.bin' ARCHIVE_BASE_1_PART10_MD5='f9df3bdac52376d3054f379e2792307c' ARCHIVE_BASE_1_PART11_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-11.bin' ARCHIVE_BASE_1_PART11_MD5='f4b7607bec174dad7f8452d6c5b0009a' ARCHIVE_BASE_1_PART12_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-12.bin' ARCHIVE_BASE_1_PART12_MD5='7681476938581baf216a54aa45d98fc4' ARCHIVE_BASE_1_PART13_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-13.bin' ARCHIVE_BASE_1_PART13_MD5='ea24163717d52a3b1df0673711088143' ARCHIVE_BASE_1_PART14_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-14.bin' ARCHIVE_BASE_1_PART14_MD5='550d3b76dfa565f632b0eddea24bbcf3' ARCHIVE_BASE_1_PART15_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-15.bin' ARCHIVE_BASE_1_PART15_MD5='581a66858d19636df0e073929c778f0a' ARCHIVE_BASE_1_PART16_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-16.bin' ARCHIVE_BASE_1_PART16_MD5='057b513a63935e79e20b6fad76d1e05d' ARCHIVE_BASE_1_PART17_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-17.bin' ARCHIVE_BASE_1_PART17_MD5='67b713b3f6482b43a493f724c3d99e71' ARCHIVE_BASE_1_PART18_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-18.bin' ARCHIVE_BASE_1_PART18_MD5='91eedb3db10cdaaa63f930891a3780f2' ARCHIVE_BASE_1_SIZE='76000000' ARCHIVE_BASE_1_VERSION='1.11.7517962-gog53037' ARCHIVE_BASE_1_URL='https://www.gog.com/game/horizon_zero_dawn_complete_edition' ARCHIVE_BASE_0_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600).exe' ARCHIVE_BASE_0_MD5='f14a4c244306f169896e168f99d7a719' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-1.bin' ARCHIVE_BASE_0_PART1_MD5='26260f87628d433912c4155481e7aa48' ARCHIVE_BASE_0_PART2_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-2.bin' ARCHIVE_BASE_0_PART2_MD5='4dedb5420d45ff65ce0ddd857d2a6cad' ARCHIVE_BASE_0_PART3_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-3.bin' ARCHIVE_BASE_0_PART3_MD5='79aee3ddc0ce308683a6715521b0daa2' ARCHIVE_BASE_0_PART4_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-4.bin' ARCHIVE_BASE_0_PART4_MD5='e2386e5e027c44e9f923fb027ad0f391' ARCHIVE_BASE_0_PART5_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-5.bin' ARCHIVE_BASE_0_PART5_MD5='032be65a01c84f934edfbfa326258e90' ARCHIVE_BASE_0_PART6_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-6.bin' ARCHIVE_BASE_0_PART6_MD5='3b42edf5efe308cf3c1db72bc1ef9021' ARCHIVE_BASE_0_PART7_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-7.bin' ARCHIVE_BASE_0_PART7_MD5='f6216943ef02d605752a1156b0559df3' ARCHIVE_BASE_0_PART8_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-8.bin' ARCHIVE_BASE_0_PART8_MD5='703d33ab31b1ce23587cae3f8eef1453' ARCHIVE_BASE_0_PART9_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-9.bin' ARCHIVE_BASE_0_PART9_MD5='27f01f0545e732d61a9ceb05495ab9ef' ARCHIVE_BASE_0_PART10_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-10.bin' ARCHIVE_BASE_0_PART10_MD5='25c10d76ad8399802cdec42230a129bf' ARCHIVE_BASE_0_PART11_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-11.bin' ARCHIVE_BASE_0_PART11_MD5='7daf2cf2f17e5bd5aa22707dc690fc4f' ARCHIVE_BASE_0_PART12_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-12.bin' ARCHIVE_BASE_0_PART12_MD5='5a23643c5a474808503cb30d057010f8' ARCHIVE_BASE_0_PART13_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-13.bin' ARCHIVE_BASE_0_PART13_MD5='98bab66a848465dab195fe2c292a5283' ARCHIVE_BASE_0_PART14_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-14.bin' ARCHIVE_BASE_0_PART14_MD5='e9817e15706c72ad447881898abe0379' ARCHIVE_BASE_0_PART15_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-15.bin' ARCHIVE_BASE_0_PART15_MD5='f456a7bfed43b135fb8682481e284cb1' ARCHIVE_BASE_0_PART16_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-16.bin' ARCHIVE_BASE_0_PART16_MD5='398b6c64e1087a6f3deab3104c10a153' ARCHIVE_BASE_0_PART17_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-17.bin' ARCHIVE_BASE_0_PART17_MD5='9d0616c36329c3346bad3bdf55ead984' ARCHIVE_BASE_0_SIZE='71000000' ARCHIVE_BASE_0_VERSION='1.10.6278995-gog44600' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' localcachedx12 tools *.dll *.exe' CONTENT_GAME_L10N_EN_FILES=' packed_dx12/initial_english.bin packed_dx12/remainder_english.bin packed_dx12/dlc1_english.bin' CONTENT_GAME_L10N_FR_FILES=' packed_dx12/initial_french.bin packed_dx12/remainder_french.bin packed_dx12/dlc1_french.bin' CONTENT_GAME_MOVIES_FILES=' movies' CONTENT_GAME_DATA_FILES=' packed_dx12/fgrwin32.bin packed_dx12/patch.bin' CONTENT_GAME_DATA_DLC1_FILES=' packed_dx12/dlc1.bin' HUGE_FILES_DATA=' packed_dx12/initial.bin packed_dx12/remainder.bin' WINE_DIRECT3D_RENDERER='vkd3d' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/Horizon Zero Dawn' WINE_WINETRICKS_VERBS='mfc140' APP_MAIN_EXE='horizonzerodawn.exe' PACKAGES_LIST='PKG_BIN PKG_L10N_EN PKG_L10N_FR PKG_MOVIES PKG_DATA_DLC1 PKG_DATA' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_EN_ID="${PKG_L10N_ID}-en" PKG_L10N_FR_ID="${PKG_L10N_ID}-fr" PKG_L10N_EN_PROVIDE="$PKG_L10N_ID" PKG_L10N_FR_PROVIDE="$PKG_L10N_ID" PKG_L10N_EN_DESCRIPTION='English localization' PKG_L10N_FR_DESCRIPTION='French localization' PKG_MOVIES_ID="${GAME_ID}-movies" PKG_MOVIES_DESCRIPTION='movies' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DLC1_ID="${PKG_DATA_ID}-dlc1" PKG_DATA_DLC1_DESCRIPTION="$PKG_DATA_DESCRIPTION - dlc1" PKG_DATA_DEPS="$PKG_DATA_DEPS $PKG_DATA_DLC1_ID" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_L10N_ID $PKG_MOVIES_ID $PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions case "${LANG%_*}" in ('fr') message='version %s :' lang_en='anglaise' lang_fr='française' ;; ('en'|*) message='%s version:' lang_en='English' lang_fr='French' ;; esac printf '\n' ## English localization printf "$message" "$lang_en" print_instructions $(packages_get_list | sed 's/PKG_L10N_FR//') ## French localization printf "$message" "$lang_fr" print_instructions $(packages_get_list | sed 's/PKG_L10N_EN//') # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-hot-pot-panic.sh0000755000000000000000000000653114471751340014647 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Hot Pot Panic # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210331.1 # Set game-specific variables GAME_ID='hot-pot-panic' GAME_NAME='Hot Pot Panic' ARCHIVE_ITCH='hot_pot_panic_win_1.zip' ARCHIVE_ITCH_URL='https://keanerie.itch.io/hot-pot-panic' ARCHIVE_ITCH_MD5='b4d30e19a87fa7353e588eb449becd19' ARCHIVE_ITCH_SIZE='53000' ARCHIVE_ITCH_VERSION='1.0-itch' ARCHIVE_GAME_BIN_PATH='hot_pot_panic_win_1' ARCHIVE_GAME_BIN_FILES='hot_pot_panic.exe hot_pot_panic_Data/Managed hot_pot_panic_Data/Mono UnityPlayer.dll' ARCHIVE_GAME_DATA_PATH='hot_pot_panic_win_1' ARCHIVE_GAME_DATA_FILES='hot_pot_panic_Data Subtitles Videos' APP_MAIN_TYPE='wine' APP_MAIN_EXE='hot_pot_panic.exe' APP_MAIN_ICON='hot_pot_panic.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" set_standard_permissions "$PLAYIT_WORKDIR/gamedata" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-hot-tin-roof.sh0000755000000000000000000000551314471751340014511 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Hot Tin Roof # build native Linux packages from the original installers # send your bug reports to vv221@dotslashplay.it ### script_version=20220705.1 GAME_ID='hot-tin-roof' GAME_NAME='Hot Tin Roof: The Cat That Wore a Fedora' ARCHIVE_BASE_0='gog_hot_tin_roof_the_cat_that_wore_a_fedora_2.4.0.7.sh' ARCHIVE_BASE_0_MD5='487857998159f763d2b9ff9d42caca70' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='770000' ARCHIVE_BASE_0_VERSION='1.3-gog2.4.0.7' ARCHIVE_BASE_0_URL='https://www.gog.com/game/hot_tin_roof_the_cat_that_wore_a_fedora' UNITY3D_NAME='HotTinRoof' CONTENT_PATH_DEFAULT='data/noarch/game' ARCHIVE_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86" ARCHIVE_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32="${UNITY3D_NAME}.x86" APP_MAIN_EXE_BIN64="${UNITY3D_NAME}.x86_64" APP_MAIN_ICON="${UNITY3D_NAME}_Data/Resources/UnityPlayer.png" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID libc.so.6 libGLU.so.1 xcursor" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Use a dedicated log file for the current game session APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a dedicated log file for the current game session mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Work around Unity3D poor support for non-US locales APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Work around Unity3D poor support for non-US locales export LANG=C' # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-hotline-miami-1.sh0000755000000000000000000000542014471751340015053 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Daguhh # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Hotline Miami 1 # send your bug reports to contact@dotslashplay.it ### script_version=20230918.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='hotline-miami-1' GAME_NAME='Hotline Miami 1' ARCHIVE_BASE_HUMBLE_0_NAME='HotlineMiami_linux_1392944501.tar.gz' ARCHIVE_BASE_HUMBLE_0_MD5='f68e5680f7f54f12b313cb533af53548' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0-humble.2014-02-20' ARCHIVE_BASE_HUMBLE_0_SIZE='590000' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/hotline-miami' ARCHIVE_BASE_GOG_0_NAME='gog_hotline_miami_2.0.0.4.sh' ARCHIVE_BASE_GOG_0_MD5='ce95f10b1cba248b531228936c491eb4' ARCHIVE_BASE_GOG_0_VERSION='1.0-gog2.0.0.4' ARCHIVE_BASE_GOG_0_SIZE='540000' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/hotline_miami' CONTENT_PATH_DEFAULT_HUMBLE='.' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_GAME_BIN_FILES=' hotline_launcher Hotline' CONTENT_GAME_DATA_FILES=' *.ogg *.wad' APP_MAIN_EXE='hotline_launcher' ## Only the GOG.com archive provides a game icon. APP_MAIN_ICON_GOG='../support/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libCgGL.so libCg.so libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libogg.so.0 libopenal.so.1 libpthread.so.0 librt.so.1 libstdc++.so.6 libvorbisfile.so.3 libvorbis.so.0 libX11.so.6 libX11-xcb.so.1 libxcb.so.1 libXext.so.6 libXi.so.6 libXrandr.so.2 libXrender.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Set execution permissions on all binaries chmod 755 'Hotline' ) # Include game icons ## Only the GOG.com archive provides a game icon. case "$(context_archive)" in ('ARCHIVE_BASE_GOG_'*) PKG='PKG_DATA' icons_inclusion ;; esac # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-hounds-of-valor.sh0000755000000000000000000000370514471751340015210 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Hounds of Valor # send your bug reports to contact@dotslashplay.it ### script_version=20231102.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='hounds-of-valor' GAME_NAME='Hounds of Valor' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" ARCHIVE_BASE_DEMO_0_NAME='HoundsOfValor_Demo_v05_Linux.zip' ARCHIVE_BASE_DEMO_0_MD5='713a46b42dfb304f44b2b1dc456223c5' ARCHIVE_BASE_DEMO_0_SIZE='630000' ARCHIVE_BASE_DEMO_0_VERSION='0.5-itch1' ARCHIVE_BASE_DEMO_0_URL='https://dogatworkgames.itch.io/houndsofvalor' UNITY3D_NAME='HoundsLinux' CONTENT_PATH_DEFAULT='.' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ID_DEMO="$GAME_ID_DEMO" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPS_DEMO="$PKG_DATA_ID_DEMO" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-hugo-1.sh0000755000000000000000000000377614471751340013275 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Anna Lea set -o errexit ### # Hugo I: Hugoʼs House of Horrors # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20221203.1 # Set game-specific variables GAME_ID='hugo-1' GAME_NAME='Hugo I: Hugoʼs House of Horrors' ARCHIVE_BASE_0='the_hugo_trilogy_en_gog_2_19789.sh' ARCHIVE_BASE_0_MD5='48a853bb5936e29bf22cb1d4ae8fcfdb' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='100000' ARCHIVE_BASE_0_VERSION='2-gog19789' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_hugo_trilogy' ARCHIVE_DOC0_MAIN_PATH='data/noarch/docs' ARCHIVE_DOC0_MAIN_FILES='*.txt' ARCHIVE_DOC1_MAIN_PATH='data/noarch/data/hwin_1/' ARCHIVE_DOC1_MAIN_FILES='*.txt' ARCHIVE_GAME_MAIN_PATH='data/noarch/data/hwin_1' ARCHIVE_GAME_MAIN_FILES='*.bsf *.dat' APP_MAIN_TYPE='scummvm' APP_MAIN_SCUMMID='hugo1' APP_MAIN_ICON='data/noarch/support/icon.png' PACKAGES_LIST='PKG_MAIN' PKG_MAIN_DEPS='scummvm' # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" tolower "$PLAYIT_WORKDIR/gamedata" prepare_package_layout # Get icon PKG='PKG_MAIN' icons_get_from_workdir 'APP_MAIN' # Clean up temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "${PLAYIT_WORKDIR}" # Print instructions print_instructions exit 0 games/play-huniepop.sh0000755000000000000000000000505014471751340014007 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # HuniePop # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220630.1 GAME_ID='huniepop' GAME_NAME='HuniePop' ARCHIVE_BASE_1='gog_huniepop_2.0.0.3.sh' ARCHIVE_BASE_1_MD5='d229aea2b601137537f7be46c7327660' ARCHIVE_BASE_1_TYPE='mojosetup' ARCHIVE_BASE_1_SIZE='940000' ARCHIVE_BASE_1_VERSION='1.2.0-gog2.0.0.3' ARCHIVE_BASE_1_URL='https://www.gog.com/game/huniepop' ARCHIVE_BASE_0='gog_huniepop_2.0.0.2.sh' ARCHIVE_BASE_0_MD5='020cd6a015bd79a907f6c607102d797a' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='940000' ARCHIVE_BASE_0_VERSION='1.2.0-gog2.0.0.2' UNITY3D_NAME='HuniePop' CONTENT_PATH_DEFAULT='data/noarch/game' ARCHIVE_GAME_BIN_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono ${UNITY3D_NAME}_Data/Plugins" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_TYPE='native' APP_MAIN_EXE="${UNITY3D_NAME}.x86" APP_MAIN_ICON="${UNITY3D_NAME}_Data/Resources/UnityPlayer.png" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6 libGLU.so.1 xcursor" PKG_BIN_DEPS_ARCH='lsb-release' # Use a dedicated log file for the current game session APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a dedicated log file for the current game session mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-i-have-no-mouth-and-i-must-scream.sh0000755000000000000000000000766614471751340020340 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # 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=20230910.2 GAME_ID='i-have-no-mouth-and-i-must-scream' GAME_NAME='I Have No Mouth And I Must Scream' ARCHIVE_BASE_EN_0='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='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='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='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_L10N PKG_MAIN' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_ID_EN="${PKG_L10N_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_ID}-fr" PKG_L10N_ID_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" PKG_MAIN_DEPS="$PKG_L10N_ID" # Older gog.com archives require to get files from an inner archive SCRIPT_DEPS_INNERARCHIVE="${SCRIPT_DEPS:-} unar" # Load common functions target_version='2.25' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$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 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Older gog.com archives require to get files from an inner archive case "$(context_archive)" in ('ARCHIVE_BASE_INNERARCHIVE_'*) ARCHIVE_INNER='NoMouth.dat' ARCHIVE_INNER_TYPE='rar' archive_extraction 'ARCHIVE_INNER' rm "$ARCHIVE_INNER" ;; 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 icons PKG='PKG_MAIN' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_MAIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-iconoclasts.sh0000755000000000000000000000717714471751340014515 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Iconoclasts # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20211223.4 # Set game-specific variables GAME_ID='iconoclasts' GAME_NAME='Iconoclasts' ARCHIVE_BASE_0='iconoclasts_1_15_chinese_24946.sh' ARCHIVE_BASE_0_MD5='f93af13b81659e76a953dfff584d6fc9' ARCHIVE_BASE_0_VERSION='1.15-gog.24946' ARCHIVE_BASE_0_SIZE='190000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/iconoclasts' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_GAME_BIN32_PATH='data/noarch/game' ARCHIVE_GAME_BIN32_FILES=' bin32' ARCHIVE_GAME_BIN64_PATH='data/noarch/game' ARCHIVE_GAME_BIN64_FILES=' bin64' ARCHIVE_GAME_DATA_PATH='data/noarch/game' ARCHIVE_GAME_DATA_FILES=' data Assets.dat gamecontrollerdb.txt icon.bmp' APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32='bin32/Chowdren' APP_MAIN_EXE_BIN64='bin64/Chowdren' APP_MAIN_ICON='icon.bmp' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID libc.so.6 libGL.so.1" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Use persistent storage for user data CONFIG_FILES='./lang.cfg ./data/settings' DATA_FILES='./data/point ./data/save*' # Load common functions target_version='2.14' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-if-not-us.sh0000755000000000000000000000610014471751340013776 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # If Not Us # send your bug reports to contact@dotslashplay.it ### script_version=20230915.1 GAME_ID='if-not-us' GAME_NAME='If Not Us' ARCHIVE_BASE_32BIT_0='if not us - Linux32.zip' ARCHIVE_BASE_32BIT_0_MD5='e18811fde9e2a096cca93ac990764255' ARCHIVE_BASE_32BIT_0_SIZE='240000' ARCHIVE_BASE_32BIT_0_VERSION='1.0-itch' ARCHIVE_BASE_32BIT_0_URL='https://ub4q.itch.io/ifnotus' ARCHIVE_BASE_64BIT_0='if not us - Linux64.zip' ARCHIVE_BASE_64BIT_0_MD5='216690ba3a752f8a5548e38b933f7bc4' ARCHIVE_BASE_64BIT_0_SIZE='240000' ARCHIVE_BASE_64BIT_0_VERSION='1.0-itch' ARCHIVE_BASE_64BIT_0_URL='https://ub4q.itch.io/ifnotus' CONTENT_PATH_DEFAULT='.' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/lib" CONTENT_LIBS_BIN_FILES=' libffmpeg.so libnode.so libnw.so' CONTENT_GAME_BIN_FILES=' chromedriver if not us minidump_stackwalk nacl_helper nacl_helper_bootstrap nacl_irt_x86_64.nexe nwjc payload pnacl snapshot_blob.bin' CONTENT_GAME_DATA_FILES=' Gallery locales icudtl.dat natives_blob.bin nw_100_percent.pak nw_200_percent.pak nw_material_100_percent.pak nw_material_200_percent.pak resources.pak' CONTENT_DOC_DATA_FILES=' credits.html' APP_MAIN_EXE='if not us' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH_32BIT='32' PKG_BIN_ARCH_64BIT='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libasound.so.2 libatk-1.0.so.0 libcairo.so.2 libc.so.6 libcups.so.2 libdbus-1.so.3 libdl.so.2 libexpat.so.1 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgconf-2.so.4 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libnspr4.so libnss3.so libnssutil3.so libpango-1.0.so.0 libpangocairo-1.0.so.0 libpthread.so.0 librt.so.1 libsmime3.so libstdc++.so.6 libX11.so.6 libXcomposite.so.1 libXcursor.so.1 libXdamage.so.1 libXext.so.6 libXfixes.so.3 libXi.so.6 libXrandr.so.2 libXrender.so.1 libXss.so.1 libXtst.so.6' # Load common functions target_version='2.25' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game files content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-impossible-creatures.sh0000755000000000000000000000612014471751340016320 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2015 Antoine Le Gonidec set -o errexit ### # Impossible Creatures # send your bug reports to contact@dotslashplay.it ### script_version=20230418.1 GAME_ID='impossible-creatures' GAME_NAME='Impossible Creatures' ARCHIVE_BASE_EN_0='setup_impossible_creatures_2.2.0.5.exe' ARCHIVE_BASE_EN_0_MD5='1b7223749a9f1fef2aac8213db2023da' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_SIZE='1400000' ARCHIVE_BASE_EN_0_VERSION='1.1.3-gog2.2.0.5' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/impossible_creatures' ARCHIVE_BASE_FR_0='setup_impossible_creatures_french_2.2.0.5.exe' ARCHIVE_BASE_FR_0_MD5='ff7366c991de12339c0063817b2194da' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_SIZE='1500000' ARCHIVE_BASE_FR_0_VERSION='1.1.3-gog2.2.0.5' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/impossible_creatures' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' drivers rdnplugins rdntools *.asi *.dll *.exe *.flt *.ini *.m3d' CONTENT_GAME_L10N_FILES=' locale movies' CONTENT_GAME_DATA_FILES=' data datasrc ic insect rankedgaming rdnmod sdk ebusetup.sem ic_stats.ico *.module *.sga' CONTENT_DOC_DATA_FILES=' news.txt' CONTENT_DOC0_DATA_PATH="${CONTENT_PATH_DEFAULT}/docs" CONTENT_DOC0_DATA_FILES='*' CONTENT_DOC1_DATA_PATH="${CONTENT_PATH_DEFAULT}/documents" CONTENT_DOC1_DATA_FILES='*' APP_MAIN_EXE='ic.exe' APP_EDIT_ID="${GAME_ID}-mission-editor" APP_EDIT_NAME="$GAME_NAME - Mission editor" APP_EDIT_EXE='missioneditor.exe' APP_CONFIG_ID="${GAME_ID}-configuration" APP_CONFIG_NAME="$GAME_NAME - Configuration" APP_CONFIG_CAT='Settings' APP_CONFIG_EXE='icconfig.exe' USER_PERSISTENT_DIRECTORIES=' playback profiles screenshots stats' USER_PERSISTENT_FILES=' *.ini' PACKAGES_LIST='PKG_BIN PKG_L10N PKG_DATA' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_ID_EN="${PKG_L10N_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID $PKG_L10N_ID" # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-inbento.sh0000755000000000000000000000411614471751340013620 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Mopi set -o errexit ### # inbento # send your bug reports to contact@dotslashplay.it ### script_version=20230706.1 GAME_ID='inbento' GAME_NAME='inbento' ARCHIVE_BASE_0='setup_inbento_1.1.1_(63470).exe' ARCHIVE_BASE_0_MD5='5f9d0f77c7a0361e1b75c37d9741b814' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='130000' ARCHIVE_BASE_0_VERSION='1.1.1-gog63470' ARCHIVE_BASE_0_URL='https://www.gog.com/en/game/inbento' UNITY3D_NAME='inbento' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_data/plugins monobleedingedge unityplayer.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Afterburn/inbento' APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files rm --recursive \ '__redist' \ 'app' \ 'commonappdata' \ 'tmp' ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-indiana-jones-and-the-fate-of-atlantis.sh0000755000000000000000000000631214471751340021353 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 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220831.1 GAME_ID='indiana-jones-and-the-fate-of-atlantis' GAME_NAME='Indiana Jones and the Fate of Atlantis' ARCHIVE_BASE_EN_1='indiana_jones_and_the_fate_of_atlantis_en_gog_2_20145.sh' ARCHIVE_BASE_EN_1_MD5='f7c093e148b001520809032095d7e8d7' ARCHIVE_BASE_EN_1_TYPE='mojosetup' 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='indiana_jones_and_the_fate_of_atlantis_fr_gog_2_20145.sh' ARCHIVE_BASE_FR_1_MD5='edbfebcf9daa23e329e41ccf9c89286c' ARCHIVE_BASE_FR_1_TYPE='mojosetup' 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='gog_indiana_jones_and_the_fate_of_atlantis_2.2.0.27.sh' ARCHIVE_BASE_EN_0_MD5='d56a5850b9d1d4f82eebc282ef7fb52b' ARCHIVE_BASE_EN_0_TYPE='mojosetup' ARCHIVE_BASE_EN_0_SIZE='250000' ARCHIVE_BASE_EN_0_VERSION='1.0-gog2.2.0.27' ARCHIVE_BASE_FR_0='gog_indiana_jones_and_the_fate_of_atlantis_french_2.2.0.27.sh' ARCHIVE_BASE_FR_0_MD5='0da3a8b3d0505c86a9f863c27debbca7' ARCHIVE_BASE_FR_0_TYPE='mojosetup' ARCHIVE_BASE_FR_0_SIZE='99000' ARCHIVE_BASE_FR_0_VERSION='1.0-gog2.2.0.27' CONTENT_PATH_DEFAULT='data/noarch/data' ARCHIVE_GAME_MAIN_FILES=' atlantis.000 atlantis.001 monster.sou' ARCHIVE_DOC_MAIN_PATH="${CONTENT_PATH_DEFAULT}/../docs" ARCHIVE_DOC_MAIN_FILES=' *.pdf *.txt' ARCHIVE_DOC0_MAIN_PATH_EN="${ARCHIVE_DOC_MAIN_PATH}/english" ARCHIVE_DOC0_MAIN_PATH_FR="${ARCHIVE_DOC_MAIN_PATH}/french" ARCHIVE_DOC0_MAIN_FILES=' *.pdf' APP_MAIN_TYPE='scummvm' APP_MAIN_SCUMMID='scumm:atlantis' APP_MAIN_ICON='../support/icon.png' PKG_MAIN_ID="$GAME_ID" PKG_MAIN_ID_EN="${GAME_ID}-en" PKG_MAIN_ID_FR="${GAME_ID}-fr" PKG_MAIN_PROVIDE="$PKG_MAIN_ID" PKG_MAIN_DEPS='scummvm' # Load common functions target_version='2.17' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" tolower . ) # Include game icons icons_inclusion # Include game data prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-indiana-jones-and-the-last-crusade.sh0000755000000000000000000000331614471751340020605 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=20231004.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data icons_inclusion content_inclusion_default # Write launchers launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-indivisible.sh0000755000000000000000000000534714471751340014472 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Indivisible # send your bug reports to contact@dotslashplay.it ### script_version=20230623.1 GAME_ID='indivisible' GAME_NAME='Indivisible' ARCHIVE_BASE_0='indivisible_42940_39272.sh' ARCHIVE_BASE_0_MD5='7328915691beb21dc77494faf915cfbe' ARCHIVE_BASE_0_SIZE='6300000' ARCHIVE_BASE_0_VERSION='42940-gog39272' ARCHIVE_BASE_0_URL='https://www.gog.com/game/indivisible' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_PATH='data/noarch/game/lib/x86_64-pc-linux-gnu' CONTENT_LIBS_BIN_FILES=' libavcodec.so.57 libavfilter.so.6 libavformat.so.57 libavutil.so.55 libdiscord-rpc.so libGalaxy64.so libSDL2_locale.so.0 libswresample.so.2 libswscale.so.4 libvpx.so.5' CONTENT_GAME_BIN_FILES=' Indivisible.x86_64-pc-linux-gnu' CONTENT_GAME_DATA_FILES=' pkgs' CONTENT_DOC_DATA_FILES=' LICENSES.md' APP_MAIN_EXE='Indivisible.x86_64-pc-linux-gnu' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' ld-linux-x86-64.so.2 libc.so.6 libdl.so.2 libFAudio.so.0 libgcc_s.so.1 libGL.so.1 libm.so.6 libogg.so.0 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libSDL_kitchensink.so.1 libstdc++.so.6 libvorbisenc.so.2 libvorbisfile.so.3 libvorbis.so.0' # Use shipped build of libSDL_kitchensink.so.1, # to avoid a symbol lookup error: # undefined symbol: Kit_GetPlayerVideoDataOGL PKG_BIN_DEPENDENCIES_LIBRARIES=$( printf '%s' "$PKG_BIN_DEPENDENCIES_LIBRARIES" | \ grep --invert-match --fixed-strings --line-regexp 'libSDL_kitchensink.so.1' ) CONTENT_LIBS_BIN_FILES="$CONTENT_LIBS_BIN_FILES libSDL_kitchensink.so.1" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-infinium-strike.sh0000755000000000000000000000463014471751340015300 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Infinium Strike # send your bug reports to contact@dotslashplay.it ### script_version=20231102.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='infinium-strike' GAME_NAME='Infinium Strike' ARCHIVE_BASE_1_NAME='gog_infinium_strike_2.1.0.3.sh' ARCHIVE_BASE_1_MD5='c19f2032aae3011dc38cc85e7153fb44' ARCHIVE_BASE_1_SIZE='2500000' ARCHIVE_BASE_1_VERSION='1.0.5-gog2.1.0.3' ARCHIVE_BASE_1_URL='https://www.gog.com/game/infinium_strike' ARCHIVE_BASE_0_NAME='gog_infinium_strike_2.1.0.2.sh' ARCHIVE_BASE_0_MD5='57725aad8ba419d80788412f8f33f030' ARCHIVE_BASE_0_SIZE='2500000' ARCHIVE_BASE_0_VERSION='1.0.5-gog2.1.0.2' UNITY3D_NAME='InfiniumStrike' ## TODO: Check if the Steam libraries can be dropped. UNITY3D_PLUGINS=' libCSteamworks.so libsteam_api.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_DOC_DATA_FILES=' InfiniumStrikeReadMe.txt' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Drop unused 64-bit libraries. rm --recursive \ "$(unity3d_name)_Data/Mono/x86_64" \ "$(unity3d_name)_Data/Plugins/x86_64" ) # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-inner-space.sh0000755000000000000000000000366514471751340014376 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Inner Space # send your bug reports to contact@dotslashplay.it ### script_version=20231109.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='inner-space' GAME_NAME='Inner Space' ## This game is no longer available as a DRM-free build from Humble Store, ## they now only sell Steam keys. ARCHIVE_BASE_0_NAME='InnerSpace_v1.2_Linux.zip' ARCHIVE_BASE_0_MD5='10f0c5247a1404f9f40ee8cd01ab9b66' ARCHIVE_BASE_0_SIZE='2000000' ARCHIVE_BASE_0_VERSION='1.2-humble180610' UNITY3D_NAME='InnerSpace' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='IS_180416_01_LIN_DRMFREE' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-inner.sh0000755000000000000000000000673714471751340013310 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # Inner # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210411.2 # Set game-specific variables GAME_ID='inner' GAME_NAME='Inner' ARCHIVES_LIST=' ARCHIVE_BASE_0' ARCHIVE_BASE_0='INNER_Linux.zip' ARCHIVE_BASE_0_MD5='f5232090f849f8fbb23c609b4ca28a0e' ARCHIVE_BASE_0_SIZE='140000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='INNER.x86_64 INNER_Data/Mono* INNER_Data/Managed INNER_Data/Plugins' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='INNER_Data' DATA_DIRS='./logs' APP_MAIN_TYPE='native' APP_MAIN_PRERUN='# Work around Unity3D poor support for non-US locales export LANG=C' APP_MAIN_EXE='INNER.x86_64' APP_MAIN_ICON='INNER_Data/Resources/UnityPlayer.png' # Use a per-session dedicated file for logs # shellcheck disable=SC2016 APP_MAIN_OPTIONS='-logFile ./logs/$(date +%F-%R).log' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID glibc libstdc++" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" set_standard_permissions "$PLAYIT_WORKDIR/gamedata" prepare_package_layout # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-inspector-waffles.sh0000755000000000000000000000452314471751340015617 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=20230409.1 GAME_ID='inspector-waffles' GAME_NAME='Inspector Waffles' ARCHIVE_BASE_0='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='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_data/plugins ${UNITY3D_NAME}.exe monobleedingedge unitycrashhandler32.exe galaxy.dll galaxycsharpglue.dll unityplayer.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/LocalLow/Goloso Games/Inspector Waffles' USER_PERSISTENT_DIRECTORIES=' userdata' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPS_ARCH='lib32-gst-plugins-good lib32-gst-libav' PKG_BIN_DEPS_DEB='gstreamer1.0-plugins-good, gstreamer1.0-libav' PKG_BIN_DEPS_GENTOO='media-libs/gst-plugins-good[abi_x86_32] media-plugins/gst-plugins-libav[abi_x86_32]' # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-interrogation.sh0000755000000000000000000000525514471751340015053 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Interrogation # send your bug reports to contact@dotslashplay.it ### script_version=20231113.5 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='interrogation' GAME_NAME='Interrogation: You Will Be Deceived' ARCHIVE_BASE_0_NAME='interrogation_you_will_be_deceived_1_1_9_a1704342_39945.sh' ARCHIVE_BASE_0_MD5='6e5c4d0ed24129d10a7781d034665b89' ARCHIVE_BASE_0_SIZE='630000' ARCHIVE_BASE_0_VERSION='1.1.9.a1704342-gog39954' ARCHIVE_BASE_0_URL='https://www.gog.com/game/interrogation_you_will_be_deceived' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_FILES=' libfmod.so libfmodstudio.so' ## The game binary is linked against libGalaxy64.so. CONTENT_LIBS_BIN_FILES="${CONTENT_LIBS_BIN_FILES:-} libGalaxy64.so" CONTENT_GAME_BIN_FILES=' Interrogation.x86_64' CONTENT_GAME_DATA_FILES=' banks game.*' CONTENT_DOC_FILES=' licenses.html' APP_MAIN_EXE='Interrogation.x86_64' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" ## A link to libfmod.so.12 is omitted, the shipped libfmod.so is probably used for it. 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 libstdc++.so.6 libX11.so.6 libXext.so.6 libXi.so.6' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # The game engine looks for some libraries in a hardcoded path libraries_source=$(path_libraries) libraries_destination="$(package_path 'PKG_BIN')$(path_game_data)" mkdir --parents "$libraries_destination" for library_file in \ 'libfmod.so' \ 'libfmodstudio.so' do ln --symbolic "${libraries_source}/${library_file}" "$libraries_destination" done # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-intrusion-2.sh0000755000000000000000000000730714471751340014360 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Intrusion 2 # send your bug reports to contact@dotslashplay.it ### script_version=20231017.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='intrusion-2' GAME_NAME='Intrusion 2' ARCHIVE_BASE_0_NAME='intrusion2-1370288626-bin' ARCHIVE_BASE_0_MD5='de6a30d7fb3d117065f11743b4f0a13a' ARCHIVE_BASE_0_SIZE='87000' ARCHIVE_BASE_0_VERSION='1.024-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/intrusion-2' FAKE_HOME_PERSISTENT_DIRECTORIES=' intrusion2' APP_MAIN_EXE='intrusion-2' PKG_MAIN_ARCH='32' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libatk-1.0.so.0 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgthread-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libSM.so.6 libssl3.so libstdc++.so.6 libX11.so.6 libXext.so.6 libXinerama.so.1 libXt.so.6 libXtst.so.6' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Check for the presence of extra required archives ARCHIVE_REQUIRED_GSTREAMER_NAME='gstreamer0.10.tar.gz' ARCHIVE_REQUIRED_GSTREAMER_MD5='dcd836dfd0dfdf9882557b5a13f89a3c' ARCHIVE_REQUIRED_GSTREAMER_URL='https://downloads.dotslashplay.it/resources/gstreamer/' ARCHIVE_REQUIRED_GST_PLUGINS_BASE_NAME='gst-plugins-base0.10.tar.gz' ARCHIVE_REQUIRED_GST_PLUGINS_BASE_MD5='13e30627414178684de753e5f6105a43' ARCHIVE_REQUIRED_GST_PLUGINS_BASE_URL='https://downloads.dotslashplay.it/resources/gstreamer/' archive_initialize_required \ 'ARCHIVE_GSTREAMER' \ 'ARCHIVE_REQUIRED_GSTREAMER' archive_initialize_required \ 'ARCHIVE_GST_PLUGINS_BASE' \ 'ARCHIVE_REQUIRED_GST_PLUGINS_BASE' # Check for the presence of extra optional archives ARCHIVE_OPTIONAL_ICONS_NAME='intrusion-2_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5='f31db2695382a996934f8f8dbb7c0f56' ARCHIVE_OPTIONAL_ICONS_URL='https://downloads.dotslashplay.it/games/intrusion-2/' archive_initialize_optional \ 'ARCHIVE_ICONS' \ 'ARCHIVE_OPTIONAL_ICONS' # Extract game data archive_extraction 'ARCHIVE_GSTREAMER' archive_extraction 'ARCHIVE_GST_PLUGINS_BASE' if archive_is_available 'ARCHIVE_ICONS'; then archive_extraction 'ARCHIVE_ICONS' fi # Include game data CONTENT_GSTREAMER_PATH='gstreamer0.10' CONTENT_GSTREAMER_FILES=' libgstreamer-0.10.so.0 libgstreamer-0.10.so.0.30.0' CONTENT_GST_PLUGINS_BASE_PATH='gst-plugins-base0.10' CONTENT_GST_PLUGINS_BASE_FILES=' libgstinterfaces-0.10.so.0 libgstinterfaces-0.10.so.0.25.0' content_inclusion 'GSTREAMER' "$(current_package)" "$(path_libraries)" content_inclusion 'GST_PLUGINS_BASE' "$(current_package)" "$(path_libraries)" if archive_is_available 'ARCHIVE_ICONS'; then CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 64x64' content_inclusion 'ICONS' "$(current_package)" "$(path_icons)" fi install -D --mode=755 \ "$(archive_path "$(current_archive)")" \ "$(package_path "$(current_package)")$(path_game_data)/intrusion-2" rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-invisible-inc-expansions.sh0000755000000000000000000000346714471751340017112 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 ahub # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Invisible Inc expansions: # - Contingency Plan # send your bug reports to contact@dotslashplay.it ### script_version=20230414.1 GAME_ID='invisible-inc' GAME_NAME='Invisible Inc.' EXPANSION_ID_CONTINGENCY='contingency-plan' EXPANSION_NAME_CONTINGENCY='Contigency Plan' ARCHIVE_BASE_0='invisible_inc_contingency_plan_dlc_en_n_a_15873.sh' ARCHIVE_BASE_0_MD5='adfe52f0e0c3400c3026fca66acf5acb' ARCHIVE_BASE_0_SIZE='2700' ARCHIVE_BASE_0_VERSION='1.0-gog15873' ARCHIVE_BASE_0_URL='https://www.gog.com/game/invisible_inc_contingency_plan' CONTENT_GAME_MAIN_PATH='data/noarch/game' CONTENT_GAME_MAIN_FILES=' *' PKG_MAIN_ID_CONTINGENCY="${GAME_ID}-${EXPANSION_ID_CONTINGENCY}" PKG_MAIN_DESCRIPTION_CONTINGENCY="$EXPANSION_NAME_CONTINGENCY" PKG_MAIN_DEPS="$GAME_ID" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-invisible-inc.sh0000755000000000000000000000714714471751340014724 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Invisible Inc. # send your bug reports to contact@dotslashplay.it ### script_version=20230108.1 GAME_ID='invisible-inc' GAME_NAME='Invisible Inc.' ARCHIVE_BASE_2='invisible_inc_en_281021_22858.sh' ARCHIVE_BASE_2_MD5='bfb1493931172a9f71c95a6861af97ee' ARCHIVE_BASE_2_TYPE='mojosetup' ARCHIVE_BASE_2_SIZE='1200000' ARCHIVE_BASE_2_VERSION='2021.10.28-gog22858' ARCHIVE_BASE_2_URL='https://www.gog.com/game/invisible_inc' ARCHIVE_BASE_1='invisible_inc_en_8_07_2017_15873.sh' ARCHIVE_BASE_1_MD5='b3acb8f72cf01f71b0ddcb4355543a16' ARCHIVE_BASE_1_TYPE='mojosetup' ARCHIVE_BASE_1_SIZE='1200000' ARCHIVE_BASE_1_VERSION='2017.07.08-gog15873' ARCHIVE_BASE_0='gog_invisible_inc_2.6.0.11.sh' ARCHIVE_BASE_0_MD5='97e6efdc9237ec17deb02b5cf5185cf5' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='1200000' ARCHIVE_BASE_0_VERSION='2016.04.13-gog2.6.0.11' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN32_PATH='data/noarch/game/lib32' CONTENT_LIBS_BIN32_FILES=' libfmodevent-4.44.47.so libfmodevent.so libfmodex-4.44.47.so libfmodex.so' CONTENT_LIBS_BIN64_PATH='data/noarch/game/lib64' CONTENT_LIBS_BIN64_FILES=' libfmodevent64-4.44.47.so libfmodevent64.so libfmodex64-4.44.47.so libfmodex64.so' CONTENT_GAME_BIN32_FILES=' InvisibleInc32' CONTENT_GAME_BIN64_FILES=' InvisibleInc64' CONTENT_GAME_DATA_FILES=' *.kwad *.lua hashes.dat scripts.zip' CONTENT_DOC_DATA_FILES=' LICENSE' APP_MAIN_EXE_BIN32='InvisibleInc32' APP_MAIN_EXE_BIN64='InvisibleInc64' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libstdc++.so.6' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN32_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.20' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Load icons archive if available ARCHIVE_OPTIONAL_ICONS='invisible-inc_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_URL='https://downloads.dotslashplay.it/resources/invisible-inc/' ARCHIVE_OPTIONAL_ICONS_MD5='37a62fed1dc4185e95db3e82e6695c1d' CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 16x16 32x32 64x64 128x128 256x256' archive_initialize_optional \ 'ARCHIVE_ICONS' \ 'ARCHIVE_OPTIONAL_ICONS' # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons ## Use original game icon if provided, ## falls back on GOG-provided icon. if [ -n "$ARCHIVE_ICONS" ]; then archive_extraction 'ARCHIVE_ICONS' content_inclusion 'ICONS' 'PKG_DATA' "$(path_icons)" else PKG='PKG_DATA' icons_inclusion fi # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-iratus.sh0000755000000000000000000000750614471751340013477 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright © 2015-2022, Antoine Le Gonidec # 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. ### ### # Iratus # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220103.3 # Set game-specific variables GAME_ID='iratus' GAME_NAME='Iratus: Lord of the Dead' # Archives ## The "language-specific" installers actually include all languages. ## There is no need to build distinct packages for each one. ARCHIVE_BASE_EN_0='iratus_lord_of_the_dead_linux_181_13_00_48040.sh' ARCHIVE_BASE_EN_0_MD5='e238fdf4277942c22805409a4d347635' ARCHIVE_BASE_EN_0_TYPE='mojosetup' ARCHIVE_BASE_EN_0_SIZE='3400000' ARCHIVE_BASE_EN_0_VERSION='181.03.00-gog48040' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/iratus_lord_of_the_dead' ARCHIVE_BASE_FR_0='iratus_lord_of_the_dead_french_linux_181_03_00_45013.sh' ARCHIVE_BASE_FR_0_MD5='9dd7899c4f5254bb555219530a32dc95' ARCHIVE_BASE_FR_0_TYPE='mojosetup' ARCHIVE_BASE_FR_0_SIZE='3400000' ARCHIVE_BASE_FR_0_VERSION='181.03.00-gog48040' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/iratus_lord_of_the_dead' UNITY3D_NAME='Iratus' CONTENT_PATH_DEFAULT='data/noarch/game' ARCHIVE_GAME_BIN_FILES=" ${UNITY3D_NAME} ${UNITY3D_NAME}_Data/Mono ${UNITY3D_NAME}_Data/Plugins" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_EXE="$UNITY3D_NAME" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6 libz.so.1 libgtk-x11-2.0.so.0 libgdk_pixbuf-2.0.so.0 libgobject-2.0.so.0 libglib-2.0.so.0" # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-iris-and-the-giant.sh0000755000000000000000000000424614471751340015552 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Iris and the Giant # send your bug reports to contact@dotslashplay.it ### script_version=20231103.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='iris-and-the-giant' GAME_NAME='Iris and the Giant' ARCHIVE_BASE_0_NAME='iris_and_the_giant_1_1_1_2_37953.sh' ARCHIVE_BASE_0_MD5='da4767fb2bdcc4d4146958b449de06b4' ARCHIVE_BASE_0_SIZE='530000' ARCHIVE_BASE_0_VERSION='1.1.1.2-gog37953' ARCHIVE_BASE_0_URL='https://www.gog.com/game/iris_and_the_giant_deckbuilding_roguelike' UNITY3D_NAME='Iris and the Giant' ## TODO: Check if the Steam library can be dropped. UNITY3D_PLUGINS=' libsteam_api.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-irony-curtain.sh0000755000000000000000000000765614471751340015001 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Irony Curtain: From Matryoshka with Love # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20201130.1 # Set game-specific variables GAME_ID='irony-curtain' GAME_NAME='Irony Curtain: From Matryoshka with Love' ARCHIVES_LIST=' ARCHIVE_GOG_0' ARCHIVE_GOG_0='irony_curtain_from_matryoshka_with_love_1_0_5_30562.sh' ARCHIVE_GOG_0_URL='https://www.gog.com/game/irony_curtain_from_matryoshka_with_love' ARCHIVE_GOG_0_MD5='ad996313d86b3f0dff3a8b8e0e8d0357' ARCHIVE_GOG_0_SIZE='2400000' ARCHIVE_GOG_0_VERSION='1.0.5-gog30562' ARCHIVE_GOG_0_TYPE='mojosetup' ARCHIVE_GAME_BIN32_PATH='data/noarch/game' ARCHIVE_GAME_BIN32_FILES='IronyCurtain_i386' ARCHIVE_GAME_BIN64_PATH='data/noarch/game' ARCHIVE_GAME_BIN64_FILES='IronyCurtain_amd64' ARCHIVE_GAME_DATA_PATH='data/noarch/game' ARCHIVE_GAME_DATA_FILES='game.json game.sparkconfig Icon.ico linux' APP_MAIN_TYPE='native' 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_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID glibc libstdc++ glx" PKG_BIN32_DEPS_ARCH='lib32-libx11' PKG_BIN32_DEPS_DEB='libx11-6' PKG_BIN32_DEPS_GENTOO='x11-libs/libX11[abi_x86_32]' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPS_ARCH='libx11' PKG_BIN64_DEPS_DEB="$PKG_BIN32_DEPS_DEB" PKG_BIN64_DEPS_GENTOO='x11-libs/libX11' # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" set_standard_permissions "$PLAYIT_WORKDIR/gamedata" prepare_package_layout # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-itorah.sh0000755000000000000000000000416614471751340013455 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Itorah # send your bug reports to contact@dotslashplay.it ### script_version=20230321.1 GAME_ID='itorah' GAME_NAME='Itorah' ARCHIVE_BASE_0='setup_itorah_1.1.0.0_(64bit)_(55208).exe' ARCHIVE_BASE_0_MD5='bb342c5fad11d52235e78a4de89899af' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_itorah_1.1.0.0_(64bit)_(55208)-1.bin' ARCHIVE_BASE_0_PART1_MD5='dd70af89b506ef5276b5cc1921b44462' ARCHIVE_BASE_0_SIZE='4100000' ARCHIVE_BASE_0_VERSION='1.1.0.0-gog55208' ARCHIVE_BASE_0_URL='https://www.gog.com/game/itorah' UNITY3D_NAME='itorah' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" monobleedingedge unityplayer.dll ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_data/plugins" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/LocalLow/Grimbart Tales/Itorah/Itorah' USER_PERSISTENT_DIRECTORIES=' userdata' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-jars.sh0000755000000000000000000000341114471751340013116 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Jars # send your bug reports to contact@dotslashplay.it ### script_version=20231003.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='jars' GAME_NAME='Jars' ARCHIVE_BASE_0='jars_1_0_1018_50865.sh' ARCHIVE_BASE_0_MD5='436d039e8cecdbddc1942f642813a652' ARCHIVE_BASE_0_SIZE='620000' ARCHIVE_BASE_0_VERSION='1.0.1018-gog50865' ARCHIVE_BASE_0_URL='https://www.gog.com/game/jars' UNITY3D_NAME='Jars' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Drop Steam libraries rm --recursive "$(unity3d_name)_Data/Plugins" ) # Include game data PKG='PKG_DATA' icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-jazzpunk.sh0000755000000000000000000000653714471751340014047 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Jazzpunk # send your bug reports to contact@dotslashplay.it ### script_version=20231117.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='jazzpunk' GAME_NAME='Jazzpunk' ## This DRM-free build is no longer available for sale from Humble Bundle ARCHIVE_BASE_0_NAME='Jazzpunk-Oct-30-2017-Linux.zip' ARCHIVE_BASE_0_MD5='e8ecf692ded05cea80701d417fa565c1' ARCHIVE_BASE_0_SIZE='2800000' ARCHIVE_BASE_0_VERSION='2017.10.30-humble1' ARCHIVE_BASE_MULTIARCH_0_NAME='Jazzpunk-July6-2014-Linux.zip' ARCHIVE_BASE_MULTIARCH_0_MD5='50ad5722cafe16dc384e83a4a4e19480' ARCHIVE_BASE_MULTIARCH_0_SIZE='1600000' ARCHIVE_BASE_MULTIARCH_0_VERSION='2014.07.06-humble1' UNITY3D_NAME='Jazzpunk' UNITY3D_PLUGINS=' ScreenSelector.so' ## The game does not start if the CSteamworks library is not provided. UNITY3D_PLUGINS="${UNITY3D_PLUGINS:-} libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='.' PACKAGES_LIST=' PKG_BIN32 PKG_DATA' PACKAGES_LIST_MULTIARCH=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Check for the presence of optional extra archives ARCHIVE_OPTIONAL_ICONS_0_NAME='jazzpunk_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_0_MD5='d1fe700322ad08f9ac3dec1c29512f94' ARCHIVE_OPTIONAL_ICONS_0_URL='https://downloads.dotslashplay.it/games/jazzpunk' archive_initialize_optional \ 'ARCHIVE_ICONS' \ 'ARCHIVE_OPTIONAL_ICONS' # Extract game data archive_extraction_default if archive_is_available 'ARCHIVE_ICONS'; then archive_extraction 'ARCHIVE_ICONS' fi # Include game data if archive_is_available 'ARCHIVE_ICONS'; then CONTENT_ICONS_DATA_PATH='.' CONTENT_ICONS_DATA_FILES=' 16x16 32x32 48x48 128x128 256x256' content_inclusion 'ICONS_DATA' 'PKG_DATA' "$(path_icons)" else set_current_package 'PKG_DATA' icons_inclusion fi content_inclusion_default # Write launchers case "$(current_archive)" in ('ARCHIVE_BASE_MULTIARCH_'*) set_current_package 'PKG_BIN32' launchers_write set_current_package 'PKG_BIN64' launchers_write ;; (*) set_current_package 'PKG_BIN32' launchers_write ;; esac # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-jenny-leclue-detectivu.sh0000755000000000000000000000525414471751340016552 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 - Detectivu # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220403.4 # Set game-specific variables GAME_ID='jenny-leclue-detectivu' GAME_NAME='Jenny LeClue - Detectivú' ARCHIVE_BASE_1='jenny_leclue_detectivu_2_2_1_47129.sh' ARCHIVE_BASE_1_MD5='bb03cb3d7c6abf4be7060ed4cf126b2e' ARCHIVE_BASE_1_TYPE='mojosetup' 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='jenny_leclue_detectivu_2_1_1_42681.sh' ARCHIVE_BASE_0_MD5='21c681f13664bbb1259f4807cc388742' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='1900000' ARCHIVE_BASE_0_VERSION='2.1.1-gog42681' UNITY3D_NAME='Jenny LeClue - Detectivu' CONTENT_PATH_DEFAULT='data/noarch/game' ARCHIVE_GAME_BIN32_FILES=' Jenny?LeClue?-?Detectivu.x86 Jenny?LeClue?-?Detectivu_Data/MonoBleedingEdge/x86 Jenny?LeClue?-?Detectivu_Data/Plugins/x86' ARCHIVE_GAME_BIN64_FILES=' Jenny?LeClue?-?Detectivu.x86_64 Jenny?LeClue?-?Detectivu_Data/MonoBleedingEdge/x86_64 Jenny?LeClue?-?Detectivu_Data/Plugins/x86_64' ARCHIVE_GAME_DATA_FILES=' Jenny?LeClue?-?Detectivu_Data' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6 libgtk-x11-2.0.so.0 libz.so.1 libgdk_pixbuf-2.0.so.0 libgobject-2.0.so.0 libglib-2.0.so.0" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-jotun.sh0000755000000000000000000000651014471751340013321 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Jotun # send your bug reports to contact@dotslashplay.it ### script_version=20230625.2 GAME_ID='jotun' GAME_NAME='Jotun' ARCHIVE_BASE_0='jotun_12_09_2019_32415.sh' ARCHIVE_BASE_0_MD5='67b9b5ee91016014cb02be170a3a295a' ARCHIVE_BASE_0_SIZE='4100000' ARCHIVE_BASE_0_VERSION='2019.09.12-gog32415' ARCHIVE_BASE_0_URL='https://www.gog.com/game/jotun' ARCHIVE_BASE_OLD_2='gog_jotun_2.3.0.5.sh' ARCHIVE_BASE_OLD_2_MD5='e79a13252802fe4fe008e817aa2d4f43' ARCHIVE_BASE_OLD_2_SIZE='4200000' ARCHIVE_BASE_OLD_2_VERSION='2017.07.27-gog2.3.0.5' ARCHIVE_BASE_OLD_1='gog_jotun_2.2.0.4.sh' ARCHIVE_BASE_OLD_1_MD5='451d27e2e3747ed137e6ec5f3956c5da' ARCHIVE_BASE_OLD_1_SIZE='4200000' ARCHIVE_BASE_OLD_1_VERSION='2016.12.21-gog2.2.0.4' ARCHIVE_BASE_OLD_0='gog_jotun_2.1.0.2.sh' ARCHIVE_BASE_OLD_0_MD5='3f6976f56a4da1d6f274407b1342de7f' ARCHIVE_BASE_OLD_0_SIZE='4200000' ARCHIVE_BASE_OLD_0_VERSION='1.0-gog2.1.0.2' UNITY3D_NAME='Jotun' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN_DEPENDENCIES_LIBRARIES_OLD=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN32_DEPENDENCIES_LIBRARIES_OLD="$PKG_BIN_DEPENDENCIES_LIBRARIES_OLD" PKG_BIN64_DEPENDENCIES_LIBRARIES_OLD="$PKG_BIN_DEPENDENCIES_LIBRARIES_OLD" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-journey-of-a-roach.sh0000755000000000000000000000447514471751340015577 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Journey of a Roach # send your bug reports to contact@dotslashplay.it ### script_version=20231103.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='journey-of-a-roach' GAME_NAME='Journey of a Roach' ARCHIVE_BASE_GOG_0_NAME='setup_journey_of_a_roach_2.1.0.5.exe' ARCHIVE_BASE_GOG_0_MD5='98b4f1c3efc2a789530ffc1f8f1c2b92' ARCHIVE_BASE_GOG_0_TYPE='innosetup' ARCHIVE_BASE_GOG_0_SIZE='1600000' ARCHIVE_BASE_GOG_0_VERSION='1.30.011-gog2.1.0.5' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/journey_of_a_roach' ARCHIVE_BASE_HUMBLE_0_NAME='JoaR_1.3_PC_Full_Multi_Daedalic_ESD.exe' ARCHIVE_BASE_HUMBLE_0_MD5='e349a84f7b8ac095b06edea521cade8f' ARCHIVE_BASE_HUMBLE_0_TYPE='innosetup' ARCHIVE_BASE_HUMBLE_0_SIZE='1600000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.30.011-humble160915' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/journey-of-a-roach' UNITY3D_NAME='joar' CONTENT_PATH_DEFAULT='app' CONTENT_DOC_DATA_PATH="${CONTENT_PATH_DEFAULT}/documents" ## TODO: This glob should be replaced with an explicit list of files. CONTENT_DOC_DATA_FILES=' *' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Local Settings/Application Data/Daedalic Entertainment/Journey of a Roach' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-journey-to-the-savage-planet.sh0000755000000000000000000000542114471751340017600 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Journey to the Savage Planet # send your bug reports to contact@dotslashplay.it ### script_version=20230322.1 GAME_ID='journey-to-the-savage-planet' GAME_NAME='Journey to the Savage Planet' ARCHIVE_BASE_0='setup_journey_to_the_savage_planet_1.0.10_(44657).exe' ARCHIVE_BASE_0_MD5='d70cddb3d207b8f557ce6dfddc90c9eb' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_journey_to_the_savage_planet_1.0.10_(44657)-1.bin' ARCHIVE_BASE_0_PART1_MD5='0ae4643eb7a58450449c4fec4a0aea75' ARCHIVE_BASE_0_PART2='setup_journey_to_the_savage_planet_1.0.10_(44657)-2.bin' ARCHIVE_BASE_0_PART2_MD5='155d3018829b5e4875a445d221dae8c0' ARCHIVE_BASE_0_SIZE='6500000' ARCHIVE_BASE_0_VERSION='1.0.10-gog44657' ARCHIVE_BASE_0_URL='https://www.gog.com/game/journey_to_the_savage_planet' UNREALENGINE4_NAME='towers' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" engine ${UNREALENGINE4_NAME}/binaries ${UNREALENGINE4_NAME}/plugins ${UNREALENGINE4_NAME}.exe" CONTENT_GAME_DATA_FILES=" ${UNREALENGINE4_NAME}" WINE_DIRECT3D_RENDERER='dxvk' APP_WINE_LINK_DIRS=" userdata:users/\${USER}/AppData/Local/${UNREALENGINE4_NAME}/Saved" USER_PERSISTENT_DIRECTORIES=' userdata/Config/WindowsNoEditor userdata/SaveGames' APP_MAIN_EXE="${UNREALENGINE4_NAME}.exe" APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=101' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPS_ARCH='gst-plugins-base gst-plugins-good gst-libav' PKG_BIN_DEPS_DEB='gstreamer1.0-plugins-base, gstreamer1.0-plugins-good, gstreamer1.0-libav' PKG_BIN_DEPS_GENTOO='media-libs/gst-plugins-base media-plugins/gst-plugins-good media-libs/gst-plugins-libav' # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-julia-among-the-stars.sh0000755000000000000000000000746414471751340016306 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=20230205.2 GAME_ID='julia-among-the-stars' GAME_NAME='J.U.L.I.A Among the Stars' ARCHIVE_BASE_0='gog_j_u_l_i_a_among_the_stars_2.0.0.1.sh' ARCHIVE_BASE_0_MD5='58becebfaf5a3705fe3f34d5531298d3' ARCHIVE_BASE_0_TYPE='mojosetup' 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' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN32_PATH='data/noarch/game/lib' CONTENT_LIBS_BIN32_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_GAME_BIN32_FILES=' julia' CONTENT_LIBS_BIN64_PATH='data/noarch/game/lib64' CONTENT_LIBS_BIN64_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_GAME_BIN64_FILES=' julia64' CONTENT_GAME_DATA_FILES=' DLC *.dcp' APP_MAIN_EXE_BIN32='julia' APP_MAIN_EXE_BIN64='julia64' APP_MAIN_OPTIONS='-ignore _sd' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPENDENCIES_LIBRARIES=' 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_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN32_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons ## Load the optional icons pack if it is provided ARCHIVE_OPTIONAL_ICONS='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' archive_initialize_optional \ 'ARCHIVE_ICONS' \ 'ARCHIVE_OPTIONAL_ICONS' if [ -n "$ARCHIVE_ICONS" ]; then ## Include the original icons from the ./play.it-provided archive… archive_extraction 'ARCHIVE_ICONS' content_inclusion 'ICONS' 'PKG_DATA' "$(path_icons)" else ## …or fall back to the GOG-provided icon. PKG='PKG_DATA' icons_inclusion fi # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-just-cause-2.sh0000755000000000000000000001410514471751340014403 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 HS-157 # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Just Cause 2 # send your bug reports to contact@dotslashplay.it ### script_version=20231005.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='just-cause-2' GAME_NAME='Just Cause 2' ARCHIVE_BASE_0_NAME='setup_just_cause_2_-_complete_edition_1.0.0.2_(50335).exe' ARCHIVE_BASE_0_MD5='32cc043750be9e09354a3605f05f7de4' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_just_cause_2_-_complete_edition_1.0.0.2_(50335)-1.bin' ARCHIVE_BASE_0_PART1_MD5='4f100ae3a4ba93b72de4247aa7a61f29' ARCHIVE_BASE_0_PART2_NAME='setup_just_cause_2_-_complete_edition_1.0.0.2_(50335)-2.bin' ARCHIVE_BASE_0_PART2_MD5='338797d683e65f69c834731f41855a12' ARCHIVE_BASE_0_SIZE='9100000' ARCHIVE_BASE_0_VERSION='1.0.0.2-gog50335' ARCHIVE_BASE_0_URL='https://www.gog.com/game/just_cause_2_complete_edition' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' *.dll *.exe' CONTENT_GAME_L10N_EN_FILES=' sound/fmod/dialog_mission?specific_eng.fsb sound/fmod/dialog_pa_eng.fsb' CONTENT_GAME_L10N_FR_FILES=' sound/fmod/dialog_mission?specific_fre.fsb sound/fmod/dialog_pa_fre.fsb' CONTENT_DOC_L10N_EN_FILES=' jc2 readme_en.rtf' CONTENT_DOC_L10N_FR_FILES=' jc2 readme_fr.rtf' CONTENT_GAME_DATA_FILES=' archives_win32 dlc dx10_shaders_f.shader_bundle dx10_specialshaders_f.shader_bundle sound/fmod/cutscenes_common.fsb sound/fmod/music_common.fsb sound/fmod/music_stereo.fsb' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/Square Enix/Just Cause 2 users/${USER}/Documents/My Games/Just Cause 2' ## Work around a failure to start the game. WINE_WINETRICKS_VERBS='d3dcompiler_47' APP_MAIN_EXE='justcause2.exe' ## Switch French keyboard layout to us-azerty to provide direct access to digits. ## TODO: Check that this works expected on Wayland (it probably does not). APP_MAIN_PRERUN='# Switch French keyboard layout to us-azerty to provide direct access to digits. KEYBOARD_RESTORE_VARIANT=0 KEYBOARD_LAYOUT=$(LANG=C setxkbmap -query | awk "/layout:/ {print \$2}") if [ "$KEYBOARD_LAYOUT" = "fr" ]; then KEYBOARD_VARIANT=$(LANG=C setxkbmap -query | awk "/variant:/ {print \$2}") if [ "$KEYBOARD_VARIANT" != "us-azerty" ]; then KEYBOARD_RESTORE_VARIANT=1 setxkbmap -variant us-azerty fi fi ' APP_MAIN_POSTRUN='# Restore the keyboard variant, if it has previously been switched to us-azerty. if [ $KEYBOARD_RESTORE_VARIANT -eq 1 ]; then setxkbmap -variant "$KEYBOARD_VARIANT" fi ' PACKAGES_LIST='PKG_BIN PKG_L10N_EN PKG_L10N_FR PKG_DATA' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_EN_ID="${PKG_L10N_ID}-en" PKG_L10N_FR_ID="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_EN_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_FR_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_EN_DESCRIPTION='English localization' PKG_L10N_FR_DESCRIPTION='French localization' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID $PKG_L10N_ID" ## Switch French keyboard layout to us-azerty to provide direct access to digits. PKG_BIN_DEPENDENCIES_COMMANDS=' setxkbmap' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Set game language ## English l10n_conf_file_en="$(package_path 'PKG_L10N_EN')$(path_game_data)/goggame-1833855510.info" mkdir --parents "$(dirname "$l10n_conf_file_en")" ## TODO: Check if we can drop some fields. cat > "$l10n_conf_file_en" << EOF { "clientId": "54243798143089551", "gameId": "1833855510", "language": "English", "languages": [ "en-US" ], "name": "Just Cause 2 - Complete Edition", "playTasks": [ { "category": "game", "isPrimary": true, "languages": [ "en-US", "ru-RU", "es-ES", "it-IT", "de-DE", "fr-FR", "pl-PL" ], "name": "Just Cause 2 - Complete Edition", "path": "JustCause2.exe", "type": "FileTask" } ], "rootGameId": "1833855510", "version": 1 } EOF ## French l10n_conf_file_fr="$(package_path 'PKG_L10N_FR')$(path_game_data)/goggame-1833855510.info" mkdir --parents "$(dirname "$l10n_conf_file_fr")" ## TODO: Check if we can drop some fields. cat > "$l10n_conf_file_fr" << EOF { "clientId": "54243798143089551", "gameId": "1833855510", "language": "French", "languages": [ "fr-FR" ], "name": "Just Cause 2 - Complete Edition", "playTasks": [ { "category": "game", "isPrimary": true, "languages": [ "en-US", "ru-RU", "es-ES", "it-IT", "de-DE", "fr-FR", "pl-PL" ], "name": "Just Cause 2 - Complete Edition", "path": "JustCause2.exe", "type": "FileTask" } ], "rootGameId": "1833855510", "version": 1 } EOF # Extract game data archive_extraction_default # Include game data PKG='PKG_DATA' icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation case "${LANG%_*}" in ('fr') lang_string='version %s :' lang_en='anglaise' lang_fr='française' ;; ('en'|*) lang_string='%s version:' lang_en='English' lang_fr='French' ;; esac printf '\n' printf "$lang_string" "$lang_en" print_instructions 'PKG_L10N_EN' 'PKG_DATA' 'PKG_BIN' printf "$lang_string" "$lang_fr" print_instructions 'PKG_L10N_FR' 'PKG_DATA' 'PKG_BIN' # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-just-one-must-choose.sh0000755000000000000000000000466014471751340016176 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Just one, must choose # send your bug reports to contact@dotslashplay.it ### script_version=20221129.2 GAME_ID='just-one-must-choose' GAME_NAME='Just one, must choose' ARCHIVE_BASE_0='Just one, must choose - Linux.zip' ARCHIVE_BASE_0_MD5='1a93360c282cee3b8e11a6f04698a2dd' ARCHIVE_BASE_0_SIZE='5100' ARCHIVE_BASE_0_VERSION='1.0-itch.2019.08.04' ARCHIVE_BASE_0_URL='https://gooonzalo.itch.io/just-one-must-choose' CONTENT_PATH_DEFAULT='application.linux64' CONTENT_GAME_MAIN_FILES=' source lib' APP_MAIN_TYPE='java' APP_MAIN_EXE='Only_One' APP_MAIN_JAVA_OPTIONS='-Djna.nosys=true -Djava.library.path="lib" -cp "lib/Only_One.jar:lib/core.jar:lib/jogl-all.jar:lib/gluegen-rt.jar:lib/jogl-all-natives-linux-amd64.jar:lib/gluegen-rt-natives-linux-amd64.jar"' PKG_MAIN_DEPS='java' # Load common functions target_version='2.19' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # The launcher target is not a .jar archive launcher_target_presence_check() { true ; } java_launcher_run() { local application application="$1" cat <<- EOF # Run the game cd "\$PATH_PREFIX" $(application_prerun "$application") $(launcher_native_libraries_paths) ## Do not exit on application failure, ## to ensure post-run commands are run. set +o errexit java \$JAVA_OPTIONS "\$APP_EXE" \$APP_OPTIONS "\$@" game_exit_status=\$? set -o errexit $(application_postrun "$application") EOF } # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" set_standard_permissions . ) # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-jydge.sh0000755000000000000000000000351114471751340013262 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Jydge # send your bug reports to contact@dotslashplay.it ### script_version=20230216.2 GAME_ID='jydge' GAME_NAME='JYDGE' ARCHIVE_BASE_0='JYDGE' ARCHIVE_BASE_0_MD5='3b8c8a14b7d7bc7c059c479910eb449d' ARCHIVE_BASE_0_TYPE='zip' ARCHIVE_BASE_0_SIZE='310000' ARCHIVE_BASE_0_VERSION='1.2.0.6-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/jydge' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' JYDGE' CONTENT_GAME_DATA_FILES=' *.pak *.xml' APP_MAIN_EXE='JYDGE' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 libSDL2-2.0.so.0 libstdc++.so.6' # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-kathy-rain.sh0000755000000000000000000000423314471751340014231 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Kathy Rain # send your bug reports to contact@dotslashplay.it ### script_version=20230416.1 GAME_ID='kathy-rain' GAME_NAME='Kathy Rain' ARCHIVE_BASE_0='kathy_rain_director_s_cut_v_1_0_3_5225_53868.sh' ARCHIVE_BASE_0_MD5='0bcbe5aa3508431c685b8ecd1617d560' ARCHIVE_BASE_0_SIZE='850000' ARCHIVE_BASE_0_VERSION='1.0.3.5225-gog53868' ARCHIVE_BASE_0_URL='https://www.gog.com/game/kathy_rain_directors_cut' UNITY3D_NAME='KathyRainDirectorsCut' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.x64 ${UNITY3D_NAME}_Data/MonoBleedingEdge/x86_64 UnityPlayer.so" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_EXE="${UNITY3D_NAME}.x64" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' # Load common functions target_version='2.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 . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted Unity3D plugins rm --recursive "$(unity3d_name)_Data/Plugins" ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-kentucky-route-zero.sh0000755000000000000000000000444614471751340016136 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=20230822.2 GAME_ID='kentucky-route-zero' GAME_NAME='Kentucky Route Zero' ARCHIVE_BASE_0='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_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.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 . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-kerbal-space-program.sh0000755000000000000000000000566414471751340016171 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Kerbal Space Program # send your bug reports to contact@dotslashplay.it ### script_version=20231111.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='kerbal-space-program' GAME_NAME='Kerbal Space Program' ARCHIVE_BASE_3_NAME='kerbal_space_program_1_10_1_02939_41941.sh' ARCHIVE_BASE_3_MD5='fe71449cc6478ae7cbfbf0a718c9daa3' ARCHIVE_BASE_3_SIZE='4000000' ARCHIVE_BASE_3_VERSION='1.10.1.02939-gog41941' ARCHIVE_BASE_3_URL='https://www.gog.com/game/kerbal_space_program' ARCHIVE_BASE_2_NAME='kerbal_space_program_1_10_0_02917_39410.sh' ARCHIVE_BASE_2_MD5='40d7ea6e6c112a95954b3178030599b0' ARCHIVE_BASE_2_SIZE='4000000' ARCHIVE_BASE_2_VERSION='1.10.0.02917-gog39410' ARCHIVE_BASE_1_NAME='kerbal_space_program_1_9_1_02788_36309.sh' ARCHIVE_BASE_1_MD5='6157d3ebad90960893e4aa177b8518de' ARCHIVE_BASE_1_SIZE='3700000' ARCHIVE_BASE_1_VERSION='1.9.1.02788-gog36309' ARCHIVE_BASE_0_NAME='kerbal_space_program_1_8_1_02694_33460.sh' ARCHIVE_BASE_0_MD5='195abb84de4a916192190858d0796c50' ARCHIVE_BASE_0_SIZE='3400000' ARCHIVE_BASE_0_VERSION='1.8.1.02694-gog33460' UNITY3D_NAME='KSP' UNITY3D_PLUGINS=' libkeyboard.so liblingoona.grammar.kerbal.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME0_DATA_FILES=' GameData Internals Missions Parts Resources Ships saves sounds *.cfg' CONTENT_DOC_DATA_FILES=' LegalNotice.txt readme.txt' USER_PERSISTENT_DIRECTORIES=' saves sounds' USER_PERSISTENT_FILES=' *.cfg *.mu' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-kero-blaster.sh0000755000000000000000000000414214471751340014553 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Kero Blaster # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20221203.1 # Set game-specific variables GAME_ID='kero-blaster' GAME_NAME='Kero Blaster' # Archives ## The following archive used to be sold from Playism store, ## before it closed down in favour of Steam. ARCHIVE_BASE_0='KeroBlaster_EN_v1501a.zip' ARCHIVE_BASE_0_MD5='c6ba58d37b5344d08c7d9a94506266b0' ARCHIVE_BASE_0_SIZE='20000' ARCHIVE_BASE_0_VERSION='1.501-playism1501a' CONTENT_PATH_DEFAULT='KeroBlasterEn' ARCHIVE_DOC_DATA_FILES='ReadmeEn.txt' ARCHIVE_GAME_BIN_FILES='KeroBlaster.exe' ARCHIVE_GAME_DATA_FILES='rsc_k' APP_MAIN_TYPE='wine' APP_MAIN_EXE='KeroBlaster.exe' APP_MAIN_ICON='KeroBlaster.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" PKG_BIN_DEPS_ARCH='lib32-mpg123 lib32-alsa-lib' # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icons PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-kind-words.sh0000755000000000000000000000406114471751340014242 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi set -o errexit ### # Kind Words # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220417.1 # Set game-specific variables GAME_ID='kind-words' GAME_NAME='Kind Words' ARCHIVE_BASE_1='kind-words-linux-64-67.zip' ARCHIVE_BASE_1_MD5='c4cfc5e184cba2bb19964ae429c92966' ARCHIVE_BASE_1_SIZE='290000' ARCHIVE_BASE_1_VERSION='2022.04.01-itch.67' ARCHIVE_BASE_1_URL='https://popcannibal.itch.io/kindwords' ARCHIVE_BASE_0='kind-words-linux-64-66.zip' ARCHIVE_BASE_0_MD5='e15ca776e2c5da2f3e33f03aea754730' ARCHIVE_BASE_0_SIZE='290000' ARCHIVE_BASE_0_VERSION='2021.09.10-itch.66' UNITY3D_NAME='Kind Words' CONTENT_PATH_DEFAULT='.' ARCHIVE_GAME_BIN_FILES=' Kind?Words.x86_64 Kind?Words_Data/MonoBleedingEdge Kind?Words_Data/Plugins UnityPlayer.so' ARCHIVE_GAME_DATA_FILES=' Kind?Words_Data' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6" # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-king-of-the-monsters.sh0000755000000000000000000000677414471751340016156 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2020, HS-157 # 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. ### ### # KING OF THE MONSTERS # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20200927.1 # Set game-specific variables GAME_ID='king-of-the-monsters' GAME_NAME="KING OF THE MONSTERS" ARCHIVE_HUMBLE='KingOfTheMonsters_jan2016.sh' ARCHIVE_HUMBLE_TYPE='mojosetup' ARCHIVE_HUMBLE_MD5='7a82ccaada86bd1c4637f0e088afbfa3' ARCHIVE_HUMBLE_VERSION='1.0-humblejan2016' ARCHIVE_HUMBLE_SIZE='36000' ARCHIVE_GAME_BIN32_PATH_HUMBLE='data/x86' ARCHIVE_GAME_BIN32_FILES='NeogeoEmu.bin.x86 lib' ARCHIVE_GAME_BIN64_PATH_HUMBLE='data/x86_64' ARCHIVE_GAME_BIN64_FILES='NeogeoEmu.bin.x86_64 lib64' ARCHIVE_GAME_DATA_PATH_HUMBLE='data/noarch' ARCHIVE_GAME_DATA_FILES='*' APP_MAIN_TYPE='native' APP_MAIN_ICON='KingOfTheMonsters.png' APP_MAIN_EXE_BIN32='NeogeoEmu.bin.x86' APP_MAIN_EXE_BIN64='NeogeoEmu.bin.x86_64' DATA_FILES='*.ini *.rml *.txt' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID glibc libstdc++ sdl2 glx alsa libudev1" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout rm --recursive "$PLAYIT_WORKDIR/gamedata" # Extract icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-kingdom-new-lands.sh0000755000000000000000000000526514471751340015506 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 mortalius # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Kingdom New Lands # send your bug reports to contact@dotslashplay.it ### script_version=20221210.1 GAME_ID='kingdom-new-lands' GAME_NAME='Kingdom New Lands' UNITY3D_NAME='Kingdom' ARCHIVE_BASE_1='kingdom_new_lands_en_1_2_8_19096.sh' ARCHIVE_BASE_1_MD5='3499d709e78410ef7f447c12e3c66039' ARCHIVE_BASE_1_VERSION='1.2.8-gog19096' ARCHIVE_BASE_1_SIZE='450000' ARCHIVE_BASE_1_TYPE='mojosetup' ARCHIVE_BASE_1_URL='https://www.gog.com/game/kingdom_new_lands' ARCHIVE_BASE_0='gog_kingdom_new_lands_2.6.0.8.sh' ARCHIVE_BASE_0_MD5='0d662366f75d5da214e259d792e720eb' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='420000' ARCHIVE_BASE_0_VERSION='1.2.3-gog2.6.0.8' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86 ${UNITY3D_NAME}.x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64 ${UNITY3D_NAME}.x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPENDENCIES_LIBRARIES=' ld-linux-x86-64.so.2 libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN32_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.19' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-kings-bounty-the-legend.sh0000755000000000000000000000571014471751340016626 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # King's Bounty: The Legend # send your bug reports to contact@dotslashplay.it ### script_version=20230331.3 GAME_ID='kings-bounty-the-legend' GAME_NAME='Kingʼs Bounty: The Legend' ARCHIVE_BASE_EN_0='setup_kings_bounty_the_legend_1.7_(15542).exe' ARCHIVE_BASE_EN_0_MD5='f7a9defe0fd96a7f8d6dff6ed7828242' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_PART1='setup_kings_bounty_the_legend_1.7_(15542)-1.bin' ARCHIVE_BASE_EN_0_PART1_MD5='04fb818107e4bfe7aeae449778e88dd9' ARCHIVE_BASE_EN_0_SIZE='6000000' ARCHIVE_BASE_EN_0_VERSION='1.7-gog15542' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/kings_bounty_the_legend' ARCHIVE_BASE_FR_0='setup_kings_bounty_the_legend_french_1.7_(15542).exe' ARCHIVE_BASE_FR_0_MD5='646fdfacadc498826be127fe6703f259' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_PART1='setup_kings_bounty_the_legend_french_1.7_(15542)-1.bin' ARCHIVE_BASE_FR_0_PART1_MD5='907882679fb7050e172994d36730454a' ARCHIVE_BASE_FR_0_SIZE='6000000' ARCHIVE_BASE_FR_0_VERSION='1.7-gog15542' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/kings_bounty_the_legend' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' *.dll kb.exe data/default.ini data/game.ini data/fonts.cfg' CONTENT_GAME_L10N_FILES=' data/app.ini data/loc_data.kfs sessions/base/loc_ses.kfs' CONTENT_GAME_DATA_FILES=' curver.txt data sessions' CONTENT_DOC_L10N_FILES=' readme.rtf manual.pdf' USER_PERSISTENT_FILES=' data/*.ini data/fonts.cfg' WINE_DIRECT3D_RENDERER='dxvk' APP_MAIN_EXE='kb.exe' PACKAGES_LIST='PKG_BIN PKG_L10N PKG_DATA' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_ID_EN="${PKG_L10N_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_DESCRIPTION_BASE_EN='English localization' PKG_L10N_DESCRIPTION_BASE_FR='French localization' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_L10N_ID $PKG_DATA_ID" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-kingsway.sh0000755000000000000000000000702514471751340014020 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Kingsway # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210525.3 # Set game-specific variables GAME_ID='kingsway' GAME_NAME='Kingsway' ARCHIVE_BASE_0='setup_kingsway_1.1.3_(13864).exe' ARCHIVE_BASE_0_MD5='f1f02c073faa80cd2f2b6c8571032ad2' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='1.1.3-gog13864' ARCHIVE_BASE_0_SIZE='64000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/kingsway' ARCHIVE_GAME_BIN_PATH='app' ARCHIVE_GAME_BIN_FILES='kingsway.exe' ARCHIVE_GAME_DATA_PATH='app' ARCHIVE_GAME_DATA_FILES='data.win music' APP_MAIN_TYPE='wine' APP_MAIN_EXE='kingsway.exe' APP_MAIN_ICON='kingsway.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="${PKG_DATA_ID} wine glx" # Use persistent storage for saved games and settings APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/Local Settings/Application Data/Kingsway' CONFIG_FILES="$CONFIG_FILES"' userdata/settings.dat' DATA_FILES="$DATA_FILES"' userdata/profile.pr userdata/player*.pl userdata/world*.wr' # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Extract icons PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Clean up temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-knights-of-pen-and-paper.sh0000755000000000000000000000517714471751340016670 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Knights of Pen and Paper # send your bug reports to contact@dotslashplay.it ### script_version=20231017.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='knights-of-pen-and-paper' GAME_NAME='Knights of Pen and Paper' # Archives ## Kinghts of Pen and Paper (base game) ARCHIVE_BASE_0_NAME='gog_knights_of_pen_and_paper_1_edition_2.0.0.1.sh' ARCHIVE_BASE_0_MD5='1f387b78bfe426b9396715fbfe3499b9' ARCHIVE_BASE_0_VERSION='2.34c-gog2.0.0.1' ARCHIVE_BASE_0_SIZE='120000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/knights_of_pen_and_paper_1_deluxier_edition' ## Deluxier Edition ## TODO: The expansion content should be installed using a dedicated package. ARCHIVE_OPTIONAL_DELUXIER_0_NAME='gog_knights_of_pen_and_paper_1_deluxier_edition_upgrade_2.0.0.1.sh' ARCHIVE_OPTIONAL_DELUXIER_0_MD5='b3033693afd93cc885883aede7ede4b0' UNITY3D_NAME='knightspp' ## TODO: Check if the Steam libraries can be dropped. UNITY3D_PLUGINS=' libCSteamworks.so libsteam_api.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Check for the presence of optional extra archives archive_initialize_optional \ 'ARCHIVE_DELUXIER' \ 'ARCHIVE_OPTIONAL_DELUXIER_0' # Extract game data archive_extraction_default if archive_is_available 'ARCHIVE_DELUXIER' ; then archive_extraction 'ARCHIVE_DELUXIER' fi # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-kraken-academy.sh0000755000000000000000000000551514471751340015042 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Kraken Academy # send your bug reports to contact@dotslashplay.it ### script_version=20230406.1 GAME_ID='kraken-academy' GAME_NAME='Kraken Academy' ARCHIVE_BASE_0='kraken_academy_1_0_12_1_51227.sh' ARCHIVE_BASE_0_MD5='8f5a82e43e81913a0181029d968e13f5' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='330000' ARCHIVE_BASE_0_VERSION='1.0.12.1-gog51227' ARCHIVE_BASE_0_URL='https://www.gog.com/game/kraken_academy' UNITY3D_NAME='Kraken Academy' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins" CONTENT_LIBS_BIN_FILES=' libfmodstudio.so libresonanceaudio.so' CONTENT_LIBS0_BIN_FILES=' GameAssembly.so UnityPlayer.so' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data/il2cpp_data ${UNITY3D_NAME}_Data/Resources ${UNITY3D_NAME}_Data/StreamingAssets ${UNITY3D_NAME}_Data/app.info ${UNITY3D_NAME}_Data/boot.config ${UNITY3D_NAME}_Data/data.unity3d ${UNITY3D_NAME}_Data/*.json ${UNITY3D_NAME}_Data/*.resource" USER_PERSISTENT_DIRECTORIES=" ${UNITY3D_NAME}_Data/StreamingAssets/Saves" APP_MAIN_EXE="$UNITY3D_NAME" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6' # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Link GameAssembly.so in the game data path # as the game engine fails to find it otherwise, # even if it is in LD_LIBRARY_PATH. file_name='GameAssembly.so' file_source="$(path_libraries)/${file_name}" file_destination="$(package_path 'PKG_BIN')$(path_game_data)/${file_name}" mkdir --parents "$(dirname "$file_destination")" ln --symbolic "$file_source" "$file_destination" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-kyn.sh0000755000000000000000000000442714471751340012770 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Kyn # send your bug reports to contact@dotslashplay.it ### script_version=20231005.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='kyn' GAME_NAME='Kyn' ## This DRM-free installer is no longer available for sale from gog.com ARCHIVE_BASE_0_NAME='setup_kyn_update_4_(17655).exe' ARCHIVE_BASE_0_MD5='ca2a665c27ef02f0bfa4e72dc368952c' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_kyn_update_4_(17655)-1.bin' ARCHIVE_BASE_0_PART1_MD5='8c6c13b15a4d39ac9389c7c4f9ce6760' ARCHIVE_BASE_0_SIZE='7900000' ARCHIVE_BASE_0_VERSION='1.0.4-gog17655' ARCHIVE_BASE_RAR_0_NAME='setup_kyn_2.1.0.4.exe' ARCHIVE_BASE_RAR_0_MD5='a40cb85cdd40b7464eec92b2b9166f84' ARCHIVE_BASE_RAR_0_EXTRACTOR='innoextract' ARCHIVE_BASE_RAR_0_EXTRACTOR_OPTIONS='--lowercase --gog' ARCHIVE_BASE_RAR_0_PART1_NAME='setup_kyn_2.1.0.4-1.bin' ARCHIVE_BASE_RAR_0_PART1_MD5='4cfdca351969f2570a3657c772fd492e' ARCHIVE_BASE_RAR_0_PART1_EXTRACTOR='unar' ARCHIVE_BASE_RAR_0_SIZE='7900000' ARCHIVE_BASE_RAR_0_VERSION='1.0-gog2.1.0.4' UNITY3D_NAME='kyn' CONTENT_PATH_DEFAULT='app' CONTENT_PATH_DEFAULT_RAR='game' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Tangrin Entertainment/Kyn' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data PKG='PKG_DATA' icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-la-mulana.sh0000755000000000000000000000470014471751340014030 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # La-Mulana # send your bug reports to contact@dotslashplay.it ### script_version=20230216.2 GAME_ID='la-mulana' GAME_NAME='La•Mulana' ## This DRM-free build is no longer available for sale from Humble Bundle, ## they now only sell Steam keys instead. ARCHIVE_BASE_0='20170404_LaMulana_Linux.zip' ARCHIVE_BASE_0_MD5='e7a597ea2588ae975a7cc7b59c17d50d' ARCHIVE_BASE_0_SIZE='120000' ARCHIVE_BASE_0_VERSION='1.6.6-humble180409' CONTENT_PATH_DEFAULT='data' CONTENT_GAME_BIN_PATH='data/x86' CONTENT_GAME_BIN_FILES=' LaMulana.bin.x86' CONTENT_GAME_DATA_PATH='data/noarch' CONTENT_GAME_DATA_FILES=' data *.bmp *.png' CONTENT_DOC_DATA_PATH='data/noarch' CONTENT_DOC_DATA_FILES=' README.linux' CONTENT_DOC0_DATA_PATH='.' CONTENT_DOC0_DATA_FILES=' License Manual ReadMe_??.txt' APP_MAIN_EXE='LaMulana.bin.x86' APP_MAIN_ICON='noarch/Icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 libSDL2-2.0.so.0 libstdc++.so.6' # The .zip archive includes a MojoSetup installer. SCRIPT_DEPS="$SCRIPT_DEPS bsdtar" # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' INNER_ARCHIVE="${PLAYIT_WORKDIR}/gamedata/LaMulanaSetup-2017-01-27.sh" INNER_ARCHIVE_TYPE='mojosetup' archive_extraction 'INNER_ARCHIVE' rm "$INNER_ARCHIVE" # Include game icons PKG='PKG_DATA' icons_inclusion # Include game content content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-lacuna-a-scifi-noir-adventure.sh0000755000000000000000000000420714471751340017677 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Lacuna – A Sci-Fi Noir Adventure # send your bug reports to contact@dotslashplay.it ### script_version=20230415.1 GAME_ID='lacuna-a-scifi-noir-adventure' GAME_NAME='Lacuna – A Sci-Fi Noir Adventure' ARCHIVE_BASE_0='setup_lacuna__a_sci-fi_noir_adventure_1.3.1.1_(56313).exe' ARCHIVE_BASE_0_MD5='7607b7e96cc2db16eb3a35cb4d6bdb91' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2000000' ARCHIVE_BASE_0_VERSION='1.3.1.1-gog56313' ARCHIVE_BASE_0_URL='https://www.gog.com/game/lacuna_a_scifi_noir_adventure' UNITY3D_NAME='lacuna' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_data/plugins ${UNITY3D_NAME}.exe monobleedingedge unityplayer.dll unitycrashhandler64.exe" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/LocalLow/DigiTales Interactive/Lacuna' USER_PERSISTENT_DIRECTORIES=' userdata' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-lake-ridden.sh0000755000000000000000000001164214471751340014343 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Lake Ridden # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210413.7 # Set game-specific variables GAME_ID='lake-ridden' GAME_NAME='Lake Ridden' ARCHIVES_LIST=' ARCHIVE_BASE_1 ARCHIVE_BASE_0' ARCHIVE_BASE_1='setup_lake_ridden_1.7.1853_(64bit)_(45634).exe' ARCHIVE_BASE_1_MD5='e5629cee62ab9e90c59a079697674fa4' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='2700000' ARCHIVE_BASE_1_VERSION='1.7.1853-gog45634' ARCHIVE_BASE_1_URL='https://www.gog.com/game/lake_ridden' ARCHIVE_BASE_0='setup_lake_ridden_1.6.1526_(64bit)_(25884).exe' ARCHIVE_BASE_0_MD5='12b62c3399e51b27b5f91d9276d1aabe' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2100000' ARCHIVE_BASE_0_VERSION='1.6.1526-gog25884' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='*.dll *.exe monobleedingedge lakeridden_data/plugins lakeridden_data/mono' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='lakeridden_data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='lakeridden.exe' APP_MAIN_ICON='lakeridden.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Use persistent storage for game settings REGISTRY_KEY='HKEY_CURRENT_USER\Software\Midnight Hub\Lake Ridden' REGISTRY_DUMP='registry-dumps/settings.reg' CONFIG_DIRS="${CONFIG_DIRS} ./$(dirname "$REGISTRY_DUMP")" APP_MAIN_PRERUN="$APP_MAIN_PRERUN # Set path for persistent dump of registry keys REGISTRY_KEY='$REGISTRY_KEY' REGISTRY_DUMP='$REGISTRY_DUMP'" APP_MAIN_POSTRUN="$APP_MAIN_POSTRUN"' # Dump registry keys regedit -E "$REGISTRY_DUMP" "$REGISTRY_KEY"' APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Load dump of registry keys if [ -e "$REGISTRY_DUMP" ]; then wine regedit.exe "$REGISTRY_DUMP" fi' # Use persistent storage for game progress DATA_FILES="${DATA_FILES} ./userdata/save.json" APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use persistent storage for game progress userdata_path_prefix="$WINEPREFIX/drive_c/users/$USER/AppData/LocalLow/Midnight Hub/Lake Ridden" userdata_path_persistent="$PATH_PREFIX/userdata" mkdir --parents "$userdata_path_persistent" if [ ! -h "$userdata_path_prefix" ]; then if [ -d "$userdata_path_prefix" ]; then # Migrate existing user data to the persistent path mv "$userdata_path_prefix"/* "$userdata_path_persistent" rmdir "$userdata_path_prefix" fi # Create link from prefix to persistent path mkdir --parents "$(dirname "$userdata_path_prefix")" ln --symbolic "$userdata_path_persistent" "$userdata_path_prefix" fi' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-lamplight-city.sh0000755000000000000000000000336214471751340015113 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=20230322.1 GAME_ID='lamplight-city' GAME_NAME='Lamplight City' ARCHIVE_BASE_0='lamplight_city_1_10_51705.sh' ARCHIVE_BASE_0_MD5='f9fc7cf3f123e79628a570222e08a054' ARCHIVE_BASE_0_TYPE='mojosetup' 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_TYPE='scummvm' APP_MAIN_SCUMMID='ags:lamplightcity' APP_MAIN_ICON='../../support/icon.png' PKG_MAIN_DEPS='scummvm' # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-last-day-of-june.sh0000755000000000000000000000416614471751340015246 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Last Day of June # send your bug reports to contact@dotslashplay.it ### script_version=20230418.3 GAME_ID='last-day-of-june' GAME_NAME='Last Day of June' ARCHIVE_BASE_0='setup_last_day_of_june_gog-1_(19137).exe' ARCHIVE_BASE_0_MD5='0f86fdc764cea5ccdd6087226d225e43' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='3100000' ARCHIVE_BASE_0_VERSION='1.0-gog19137' ARCHIVE_BASE_0_URL='https://www.gog.com/game/last_day_of_june' UNITY3D_NAME='car_20170817_23824_fullgame' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_data/mono ${UNITY3D_NAME}_data/plugins ${UNITY3D_NAME}.exe" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Ovosonico/Last Day of June' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' # Load common functions target_version='2.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 . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-later-daters.sh0000755000000000000000000000673614471751340014563 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Later Daters # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210901.2 # Set game-specific variables GAME_ID='later-daters' GAME_NAME='Later Daters' ARCHIVE_BASE_0='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' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES=' later?daters.exe monobleedingedge unitycrashhandler64.exe unityplayer.dll' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES=' later?daters_data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='later daters.exe' APP_MAIN_ICON='later daters.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="${PKG_DATA_ID} wine" # Use persistent storage for saved games APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/AppData/LocalLow/Bloom Digital/Later Daters' DATA_DIRS="$DATA_DIRS ./userdata" # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-layers-of-fear.sh0000755000000000000000000000417214471751340015000 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Layers of Fear # send your bug reports to contact@dotslashplay.it ### script_version=20231109.4 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='layers-of-fear' GAME_NAME='Layers of Fear' ARCHIVE_BASE_1_NAME='gog_layers_of_fear_2.3.0.5.sh' ARCHIVE_BASE_1_MD5='faf72f04f53be0523053eb7ba0f2bb05' ARCHIVE_BASE_1_SIZE='4000000' ARCHIVE_BASE_1_VERSION='1.1.0-gog2.3.0.5' ARCHIVE_BASE_1_URL='https://www.gog.com/game/layers_of_fear' ARCHIVE_BASE_0_NAME='gog_layers_of_fear_2.3.0.4.sh' ARCHIVE_BASE_0_MD5='4bc354869662ee68938c8955f08dd276' ARCHIVE_BASE_0_SIZE='4000000' ARCHIVE_BASE_0_VERSION='1.1.0-gog2.3.0.4' UNITY3D_NAME='LOF' UNITY3D_PLUGINS=' libMouseCursorPlugin.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-legend-of-grimrock.sh0000755000000000000000000000464114471751340015640 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Legend of Grimrock # send your bug reports to contact@dotslashplay.it ### script_version=20231108.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='legend-of-grimrock' GAME_NAME='Legend of Grimrock' ARCHIVE_BASE_0_NAME='gog_legend_of_grimrock_2.1.0.5.sh' ARCHIVE_BASE_0_MD5='b63089766247484f5d2b214d924425f6' ARCHIVE_BASE_0_SIZE='690000' ARCHIVE_BASE_0_VERSION='1.3.7-gog2.1.0.5' ARCHIVE_BASE_0_URL='https://www.gog.com/game/legend_of_grimrock' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN64_FILES=' Grimrock.bin.x86_64' CONTENT_GAME_BIN32_FILES=' Grimrock.bin.x86' CONTENT_GAME_DATA_FILES=' grimrock.dat grimrock.png' CONTENT_DOC_DATA_FILES=' README.linux' APP_MAIN_EXE_BIN32='Grimrock.bin.x86' APP_MAIN_EXE_BIN64='Grimrock.bin.x86_64' APP_MAIN_ICON='grimrock.png' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libfreeimage.so.3 libfreetype.so.6 libgcc_s.so.1 libGL.so.1 libminizip.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libstdc++.so.6 libvorbisfile.so.3 libX11.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' launchers_write set_current_package 'PKG_BIN32' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-legend-of-keepers.sh0000755000000000000000000000466714471751340015471 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Legend of Keepers ### script_version=20231225.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='legend-of-keepers' GAME_NAME='Legend of Keepers: Career of a Dungeon Manager' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO='Legend of Keepers: Prologue' ARCHIVE_BASE_0_NAME='legend_of_keepers_career_of_a_dungeon_manager_1_1_0_2_57134.sh' ARCHIVE_BASE_0_MD5='a1d7f09037caaa7212cfd8a61a992289' ARCHIVE_BASE_0_SIZE='1113810' ARCHIVE_BASE_0_VERSION='1.1.0.2-gog57134' ARCHIVE_BASE_0_URL='https://www.gog.com/game/legend_of_keepers_career_of_a_dungeon_master' ARCHIVE_BASE_DEMO_0_NAME='legend_of_keepers_prologue_0_9_2_1_44469.sh' ARCHIVE_BASE_DEMO_0_MD5='af73802b552219f834b53734b955906b' ARCHIVE_BASE_DEMO_0_SIZE='1012855' ARCHIVE_BASE_DEMO_0_VERSION='0.9.2.1-gog44469' ARCHIVE_BASE_DEMO_0_URL='https://www.gog.com/game/legend_of_keepers_prologue' UNITY3D_NAME='LegendOfKeepers' UNITY3D_NAME_DEMO='LegendOfKeepersPrologue' ## TODO: Check if the Steam library is required. UNITY3D_PLUGINS=' libEOSSDK-Linux-Shipping.so libfmodstudioL.so libfmodstudio.so libresonanceaudio.so libsteam_api.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPS_DEMO="$PKG_DATA_ID_DEMO" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-lego-batman-1.sh0000755000000000000000000000426614471751340014514 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Lego Batman 1 # send your bug reports to contact@dotslashplay.it ### script_version=20230930.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='lego-batman-1' GAME_NAME='Lego Batman: The Videogame' ARCHIVE_BASE_0_NAME='setup_lego_batman_1.0_(18156).exe' ARCHIVE_BASE_0_MD5='4d77c482455866c160b0b17f88e9aff0' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_lego_batman_1.0_(18156)-1.bin' ARCHIVE_BASE_0_PART1_MD5='49153c984f14b57c846d20cc038d117a' ARCHIVE_BASE_0_SIZE='4500000' ARCHIVE_BASE_0_VERSION='1.0-gog18156' ARCHIVE_BASE_0_URL='https://www.gog.com/game/lego_batman_the_videogame' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' *.exe binkw32.dll language_setup.ini' CONTENT_GAME_DATA_FILES=' *.dat language_setup.png audio movies' CONTENT_DOC_DATA_FILES=' eula.rtf readme.rtf' APP_MAIN_EXE='legobatman.exe' APP_LANGUAGE_ID="${GAME_ID}-language-setup" APP_LANGUAGE_NAME="$GAME_NAME - Language setup" APP_LANGUAGE_CAT='Settings' APP_LANGUAGE_EXE='language_setup.exe' APP_LANGUAGE_ICON='language_setup.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-lego-harry-potter-years-1-4.sh0000755000000000000000000000472514471751340017174 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Lego Harry Potter: Years 1-4 # send your bug reports to contact@dotslashplay.it ### script_version=20230930.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='lego-harry-potter-years-1-4' GAME_NAME='Lego Harry Potter: Years 1-4' ARCHIVE_BASE_0='setup_lego_harry_potter_1-4_1.0_(17966).exe' ARCHIVE_BASE_0_MD5='21ddbc82a225687a69044e9baee7109b' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_lego_harry_potter_1-4_1.0_(17966)-1.bin' ARCHIVE_BASE_0_PART1_MD5='ab78edad26acef08eb3a656dfbdf476e' ARCHIVE_BASE_0_PART2='setup_lego_harry_potter_1-4_1.0_(17966)-2.bin' ARCHIVE_BASE_0_PART2_MD5='0ebb7b7a5772245258e53092c25a4708' ARCHIVE_BASE_0_SIZE='6300000' ARCHIVE_BASE_0_VERSION='1.0.0389-gog17966' ARCHIVE_BASE_0_URL='https://www.gog.com/game/lego_harry_potter_years_14' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' legoharrypotter.exe language_setup.exe language_setup.ini language_setup.png' CONTENT_GAME_DATA_FILES=' game.dat game1.dat game2.dat game3.dat game4.dat game5.dat game6.dat' CONTENT_DOC_DATA_PATH="${CONTENT_PATH_DEFAULT}/docs" CONTENT_DOC_DATA_FILES=' *' APP_MAIN_EXE='legoharrypotter.exe' APP_LANGUAGE_ID="${GAME_ID}-language-setup" APP_LANGUAGE_NAME="$GAME_NAME - Language setup" APP_LANGUAGE_CAT='Settings' APP_LANGUAGE_EXE='language_setup.exe' APP_LANGUAGE_ICON='language_setup.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-leisure-suit-larry-1.sh0000755000000000000000000000433414471751340016103 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Anna Lea # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Leisure Suit Larry 1 # send your bug reports to contact@dotslashplay.it ### script_version=20231002.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='leisure-suit-larry-1' GAME_NAME='Leisure Suit Larry 1: In the Land of the Lounge Lizards' ARCHIVE_BASE_AGI_0='leisure_suit_larry_en_gog_2_20270.sh' ARCHIVE_BASE_AGI_0_MD5='bfd706b6e10333f538e30df3ccc572a4' ARCHIVE_BASE_AGI_0_SIZE='94000' ARCHIVE_BASE_AGI_0_VERSION='2-gog20270' ARCHIVE_BASE_AGI_0_URL='https://www.gog.com/game/leisure_suit_larry' ARCHIVE_BASE_SCI_0='leisure_suit_larry_vga_en_gog_2_20240.sh' ARCHIVE_BASE_SCI_0_MD5='40b241062ea3945e20e2d3c8fc811e0c' ARCHIVE_BASE_SCI_0_SIZE='97000' ARCHIVE_BASE_SCI_0_VERSION='2-gog20240' ARCHIVE_BASE_SCI_0_URL='https://www.gog.com/game/leisure_suit_larry' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES_AGI=' vol.* object *dir words.tok' CONTENT_GAME_MAIN_FILES_SCI=' *.bat *.drv *.exe *.hlp *.txt resource.* version' CONTENT_DOC_MAIN_PATH='data/noarch/docs' CONTENT_DOC_MAIN_FILES=' *.pdf lsl1?answers.txt lsl1?vga?answers.txt' APP_MAIN_SCUMMID_AGI='lsl1' APP_MAIN_SCUMMID_SCI='lsl1sci' APP_MAIN_ICON='../support/icon.png' PKG_MAIN_ID="$GAME_ID" PKG_MAIN_PROVIDES=" $PKG_MAIN_ID" PKG_MAIN_ID_AGI="${PKG_MAIN_ID}-agi" PKG_MAIN_ID_SCI="${PKG_MAIN_ID}-sci" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data icons_inclusion content_inclusion_default # Write launchers launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-leisure-suit-larry-2.sh0000755000000000000000000000644314471751340016107 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 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. ### ### # Leisure Suit Larry 2: Looking For Love (In Several Wrong Places) # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210622.1 # Set game-specific variables GAME_ID='leisure-suit-larry-2' GAME_NAME='Leisure Suit Larry 2: Looking For Love (In Several Wrong Places)' ARCHIVE_BASE_0='leisure_suit_larry_2_en_gog_2_20240.sh' ARCHIVE_BASE_0_MD5='087013fa8383ffa303dda015c5ea6249' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='96000' ARCHIVE_BASE_0_VERSION='2-gog20240' ARCHIVE_BASE_0_URL='https://www.gog.com/game/leisure_suit_larry' ARCHIVE_DOC_MAIN_PATH='data/noarch/docs' ARCHIVE_DOC_MAIN_FILES='*.pdf' ARCHIVE_GAME_MAIN_PATH='data/noarch/data' ARCHIVE_GAME_MAIN_FILES='*' APP_MAIN_TYPE='scummvm' APP_MAIN_SCUMMID='lsl2' APP_MAIN_ICON='data/noarch/support/icon.png' PACKAGES_LIST='PKG_MAIN' PKG_MAIN_DEPS='scummvm' # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" tolower "$PLAYIT_WORKDIR/gamedata" prepare_package_layout # Get game icon PKG='PKG_MAIN' icons_get_from_workdir 'APP_MAIN' # Clean up temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "${PLAYIT_WORKDIR}" # Print instructions print_instructions exit 0 games/play-leisure-suit-larry-3.sh0000755000000000000000000000666414471751340016115 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 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. ### ### # Leisure Suit Larry 3 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210815.2 # Set game-specific variables GAME_ID='leisure-suit-larry-3' GAME_NAME='Leisure Suit Larry 3: Passionate Patti in Pursuit of the Pulsating Pectorals!' ARCHIVE_BASE_0='leisure_suit_larry_3_en_gog_2_20240.sh' ARCHIVE_BASE_0_MD5='a0c5e4997f682e3a6c91a19a41a5bdac' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='99000' ARCHIVE_BASE_0_VERSION='1.021-gog20240' ARCHIVE_BASE_0_URL='https://www.gog.com/game/leisure_suit_larry' ARCHIVE_DOC0_MAIN_PATH='data/noarch/docs' ARCHIVE_DOC0_MAIN_FILES='*.pdf' ARCHIVE_DOC1_MAIN_PATH='data/noarch/data' ARCHIVE_DOC1_MAIN_FILES='lsl3?answers.txt' ARCHIVE_GAME_MAIN_PATH='data/noarch/data' ARCHIVE_GAME_MAIN_FILES=' *.com *.drv *.exe *.hlp *.inf *.pif *.scr lsl3sg.* install.txt readme.txt resource.*' APP_MAIN_TYPE='scummvm' APP_MAIN_SCUMMID='lsl3' APP_MAIN_ICON='data/noarch/support/icon.png' PACKAGES_LIST='PKG_MAIN' PKG_MAIN_DEPS='scummvm' # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" tolower "$PLAYIT_WORKDIR/gamedata" prepare_package_layout # Get game icon PKG='PKG_MAIN' icons_get_from_workdir 'APP_MAIN' # Clean up temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "${PLAYIT_WORKDIR}" # Print instructions print_instructions exit 0 games/play-leisure-suit-larry-5.sh0000755000000000000000000000640114471751340016104 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 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. ### ### # Leisure Suit Larry 5 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210815.1 # Set game-specific variables GAME_ID='leisure-suit-larry-5' GAME_NAME='Leisure Suit Larry 5: Passionate Patti Does a Little Undercover Work!' ARCHIVE_BASE_0='leisure_suit_larry_5_en_gog_2_20240.sh' ARCHIVE_BASE_0_MD5='534a263fffc8cd919e38ae92e131ec22' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='110000' ARCHIVE_BASE_0_VERSION='1.000-gog20240' ARCHIVE_BASE_0_URL='https://www.gog.com/game/leisure_suit_larry' ARCHIVE_DOC_MAIN_PATH='data/noarch/docs' ARCHIVE_DOC_MAIN_FILES='*.pdf' ARCHIVE_GAME_MAIN_PATH='data/noarch/data' ARCHIVE_GAME_MAIN_FILES='*' APP_MAIN_TYPE='scummvm' APP_MAIN_SCUMMID='lsl5' APP_MAIN_ICON='data/noarch/support/icon.png' PACKAGES_LIST='PKG_MAIN' PKG_MAIN_DEPS='scummvm' # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" tolower "$PLAYIT_WORKDIR/gamedata" prepare_package_layout # Get game icon PKG='PKG_MAIN' icons_get_from_workdir 'APP_MAIN' # Clean up temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "${PLAYIT_WORKDIR}" # Print instructions print_instructions exit 0 games/play-leisure-suit-larry-6.sh0000755000000000000000000000426614471751340016114 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Anna Lea # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Leisure Suit Larry 6 # send your bug reports to contact@dotslashplay.it ### script_version=20231123.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='leisure-suit-larry-6' GAME_NAME='Leisure Suit Larry 6: Shape Up Or Slip Out' ARCHIVE_BASE_SVGA_0_NAME='gog_leisure_suit_larry_6_2.0.0.1.sh' ARCHIVE_BASE_SVGA_0_MD5='09f667d1230974bd6321bde648de687b' ARCHIVE_BASE_SVGA_0_SIZE='550000' ARCHIVE_BASE_SVGA_0_VERSION='1.000.000-gog2.0.0.1' ARCHIVE_BASE_SVGA_0_URL='https://www.gog.com/game/leisure_suit_larry' ARCHIVE_BASE_VGA_0_NAME='leisure_suit_larry_6_vga_en_gog_2_20240.sh' ARCHIVE_BASE_VGA_0_MD5='d5e1973d126bc7750550729cbec4379f' ARCHIVE_BASE_VGA_0_SIZE='610000' ARCHIVE_BASE_VGA_0_VERSION='1.000.000-gog20240' ARCHIVE_BASE_VGA_0_URL='https://www.gog.com/game/leisure_suit_larry' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' AUD PATCHES SFX RESOURCE.* *.COM *.DRV *.ERR *.EXE *.HLP *.SCR *.TXT README VERSION' CONTENT_DOC_MAIN_PATH='data/noarch/docs' CONTENT_DOC_MAIN_FILES=' *.pdf' APP_MAIN_SCUMMID_SVGA='lsl6hires' APP_MAIN_SCUMMID_VGA='lsl6' APP_MAIN_ICON='../support/icon.png' PKG_MAIN_ID="$GAME_ID" PKG_MAIN_PROVIDES=" $PKG_MAIN_ID" PKG_MAIN_ID_SVGA="${PKG_MAIN_ID}-svga" PKG_MAIN_ID_VGA="${PKG_MAIN_ID}-vga" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data icons_inclusion content_inclusion_default # Write launchers launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-leisure-suit-larry-7.sh0000755000000000000000000000457114471751340016114 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Leisure Suit Larry 7 # send your bug reports to contact@dotslashplay.it ### script_version=20230216.1 GAME_ID='leisure-suit-larry-7' GAME_NAME='Leisure Suit Larry 7: Love for Sail!' ARCHIVE_BASE_EN_0='leisure_suit_larry_love_for_sail_en_gog_1_20744.sh' ARCHIVE_BASE_EN_0_MD5='38862663d3dd9298acdf3fcc5f4bd88d' ARCHIVE_BASE_EN_0_TYPE='mojosetup' ARCHIVE_BASE_EN_0_SIZE='680000' ARCHIVE_BASE_EN_0_VERSION='1.0-gog20744' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/leisure_suit_larry_love_for_sail' ARCHIVE_BASE_FR_0='leisure_suit_larry_love_for_sail_fr_gog_1_20744.sh' ARCHIVE_BASE_FR_0_MD5='1386fa634b48ecb5af83fdab12e99c2d' ARCHIVE_BASE_FR_0_TYPE='mojosetup' ARCHIVE_BASE_FR_0_SIZE='630000' ARCHIVE_BASE_FR_0_VERSION='1.0-gog20744' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/leisure_suit_larry_love_for_sail' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' drivers movie music patches version resource.??? *.000 *.bmp *.csc *.dll *.err *.exe *.inf' CONTENT_DOC_MAIN_FILES=' manual.pdf' APP_MAIN_TYPE='scummvm' APP_MAIN_SCUMMID='sci:lsl7' APP_MAIN_ICON='lsl7.ico' PKG_MAIN_ID="$GAME_ID" PKG_MAIN_ID_GOG_EN="${GAME_ID}-en" PKG_MAIN_ID_GOG_FR="${GAME_ID}-fr" PKG_MAIN_PROVIDE="$PKG_MAIN_ID" PKG_MAIN_DEPS='scummvm' # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract data from game archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" tolower . ) # Include game icons icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-lennas-inception.sh0000755000000000000000000001127714471751340015436 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Lenna's Inception # send your bug reports to contact@dotslashplay.it ### script_version=20230101.1 GAME_ID='lennas-inception' GAME_NAME='Lennaʼs Inception' ARCHIVE_BASE_1='lennas-inception-linux-amd64-stable.zip' ARCHIVE_BASE_1_MD5='5f7ff7b389777b00519144df1cc98cc9' ARCHIVE_BASE_1_VERSION='1.1.5-itch.2020.11.22' ARCHIVE_BASE_1_SIZE='310000' ARCHIVE_BASE_1_URL='https://tccoxon.itch.io/lennas-inception' ARCHIVE_BASE_0='lennas-inception-linux-amd64-stable.zip' ARCHIVE_BASE_0_MD5='e701126a913c2c63c89e79875dd89e86' ARCHIVE_BASE_0_VERSION='1.0.10-itch1' ARCHIVE_BASE_0_SIZE='310000' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES=' assets launch-config.json lib' CONTENT_DOC_MAIN_FILES=' COPYRIGHT.txt README.txt' APP_MAIN_TYPE='java' APP_MAIN_EXE='lib/libloader.jar' APP_MAIN_JAVA_OPTIONS='-Dsun.java2d.opengl=True -Djava.library.path=./lib -Xms1024m -Xmx3072m' APP_MAIN_ICON='icon.png' # Since this game seems to be broken on OpenJDK ≥ 11, we build an extra package allowing to use the shipped OpenJDK 1.8 CONTENT_GAME_BIN_SHIPPED_FILES=' launch-config.json jre' PACKAGES_LIST='PKG_MAIN PKG_BIN_SYSTEM PKG_BIN_SHIPPED' PKG_BIN_ID="${GAME_ID}-bin" PKG_BIN_PROVIDE="$PKG_BIN_ID" PKG_BIN_SYSTEM_ID="${PKG_BIN_ID}-system" PKG_BIN_SYSTEM_PROVIDE="$PKG_BIN_PROVIDE" PKG_BIN_SYSTEM_DESCRIPTION='Using system-provided Java' PKG_BIN_SYSTEM_DEPS='java' PKG_BIN_SHIPPED_ID="${PKG_BIN_ID}-shipped" PKG_BIN_SHIPPED_PROVIDE="$PKG_BIN_PROVIDE" PKG_BIN_SHIPPED_DESCRIPTION='Using shipped Java binaries' PKG_BIN_SHIPPED_ARCH='64' PKG_BIN_SHIPPED_DEPENDENCIES_LIBRARIES=' ld-linux-x86-64.so.2 libasound.so.2 libatk-1.0.so.0 libavcodec.so.53 libavcodec.so.54 libavformat.so.53 libavformat.so.54 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 libgif.so.4 libgio-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgthread-2.0.so.0 libgtk-x11-2.0.so.0 libjpeg.so.62 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpng12.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libthread_db.so.1 libX11.so.6 libXext.so.6 libXi.so.6 libxml2.so.2 libXrender.so.1 libxslt.so.1 libXtst.so.6 libXxf86vm.so.1 libz.so.1' PKG_MAIN_DEPS="$PKG_BIN_ID" # Extract game icon from the .jar archive SCRIPT_DEPS="$SCRIPT_DEPS unzip" # Load common functions target_version='2.20' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Enforce minimal permissions on all files set_standard_permissions . chmod 755 'jre/bin/java' # Extract game icon from the .jar archive unzip -q -d . 'assets/lennasinception.jar' "$APP_MAIN_ICON" ) # Include game icon icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN_SYSTEM' launchers_write 'APP_MAIN' ## Use shipped Java binary instead of system-provided one java_launcher_run() { local application application="$1" cat <<- EOF # Run the game cd "\$PATH_PREFIX" $(application_prerun "$application") $(launcher_native_libraries_paths) ## Do not exit on application failure, ## to ensure post-run commands are run. set +o errexit ## Use shipped Java binary instead of system-provided one ./jre/bin/java \$JAVA_OPTIONS -jar "\$APP_EXE" \$APP_OPTIONS "\$@" game_exit_status=\$? set -o errexit $(application_postrun "$application") EOF } PKG='PKG_BIN_SHIPPED' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Print instructions case "${LANG%_*}" in ('fr') message='Utilisation des binaires fournis par %s :' bin_shipped='les développeurs' bin_system='le système' ;; ('en'|*) message='Using binaries provided by %s:' bin_shipped='the developers' bin_system='the system' ;; esac printf '\n' printf "$message" "$bin_system" print_instructions 'PKG_MAIN' 'PKG_BIN_SYSTEM' printf "$message" "$bin_shipped" print_instructions 'PKG_MAIN' 'PKG_BIN_SHIPPED' # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-letters-a-written-adventure.sh0000755000000000000000000000411314471751340017544 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=20230324.1 GAME_ID='letters-a-written-adventure' GAME_NAME='Letters - a written adventure' ARCHIVE_BASE_0='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='.' CONTENT_GAME_BIN_FILES=" monobleedingedge unityplayer.dll ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_data/plugins" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/LocalLow/5amGames/Letters' USER_PERSISTENT_DIRECTORIES=' userdata' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-liar-liar-2.sh0000755000000000000000000000602614471751340014177 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 2 # send your bug reports to contact@dotslashplay.it ### script_version=20230425.1 GAME_ID='liar-liar-2' GAME_NAME='Liar Liar 2: Pants on Fire' ARCHIVE_BASE_0='liarliar2-all.zip' ARCHIVE_BASE_0_MD5='6450f265d59ece46331070a2e0a14121' ARCHIVE_BASE_0_SIZE='110000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://tokimekiwaku.itch.io/liar-liar-2' RENPY_NAME='liar liar 2' CONTENT_PATH_DEFAULT='liarliar2-all' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/lib/linux-x86_64" CONTENT_LIBS_BIN_FILES=' libavcodec.so.54 libavformat.so.54 libavresample.so.1 libavutil.so.52 libGLEW.so.1.7 libpng12.so.0 libpython2.7.so.1.0 libswscale.so.2' CONTENT_GAME_BIN_FILES=" lib/linux-x86_64/lib/python2.7 lib/linux-x86_64/python lib/linux-x86_64/pythonw lib/linux-x86_64/zsync lib/linux-x86_64/zsyncmake lib/linux-x86_64/${RENPY_NAME}" CONTENT_GAME_DATA_FILES=" game renpy lib/pythonlib2.7 ${RENPY_NAME}.py" CONTENT_DOC_DATA_FILES=' README.html' APP_MAIN_EXE="lib/linux-x86_64/${RENPY_NAME}" APP_MAIN_OPTIONS='-EO *.py' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libfreetype.so.6 libGL.so.1 libGLU.so.1 libjpeg.so.62 libm.so.6 libpthread.so.0 librt.so.1 libSDL-1.2.so.0 libSDL_image-1.2.so.0 libSDL_ttf-2.0.so.0 libutil.so.1 libX11.so.6 libXext.so.6 libXi.so.6 libXmu.so.6 libz.so.1' # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Use default Ren'Py icon if it is available launcher_desktop() { local application application="$1" local application_name application_icon application_category launcher_desktop_exec application_name=$(application_name "$application") application_category=$(application_category "$application") launcher_desktop_exec=$(launcher_desktop_exec "$application") cat <<- EOF [Desktop Entry] Version=1.0 Type=Application Name=$application_name Icon=renpy $launcher_desktop_exec Categories=$application_category EOF } # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-liar-liar.sh0000755000000000000000000000757114471751340014046 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # Liar Liar # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20201007.1 # Set game-specific variables GAME_ID='liar-liar' GAME_NAME='Liar Liar' ARCHIVES_LIST=' ARCHIVE_ITCH_0' ARCHIVE_ITCH_0='liarliar1.0-all.zip' ARCHIVE_ITCH_0_URL='https://tokimekiwaku.itch.io/liar-liar' ARCHIVE_ITCH_0_MD5='192d7cef446bb6d9ce01e3678889bbbd' ARCHIVE_ITCH_0_SIZE='96000' ARCHIVE_ITCH_0_VERSION='1.0-itch' ARCHIVE_ITCH_0_TYPE='zip' ARCHIVE_DOC_DATA_PATH='liarliar1.0-all' ARCHIVE_DOC_DATA_FILES='README.html' ARCHIVE_GAME_BIN32_PATH='liarliar1.0-all' ARCHIVE_GAME_BIN32_FILES='lib/linux-i686 liar?liar.sh' ARCHIVE_GAME_BIN64_PATH='liarliar1.0-all' ARCHIVE_GAME_BIN64_FILES='lib/linux-x86_64' ARCHIVE_GAME_DATA_PATH='liarliar1.0-all' ARCHIVE_GAME_DATA_FILES='lib/pythonlib2.7 game liar?liar.py renpy' DATA_DIRS='game/saves' APP_MAIN_TYPE='native' APP_MAIN_EXE='liar liar.sh' APP_MAIN_ICON='liarliar1.0-all/liar liar.exe' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID glibc libstdc++" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Copy launching script between the binaries packages LAUNCHER_SOURCE="${PKG_BIN32_PATH}${PATH_GAME}/$APP_MAIN_EXE" LAUNCHER_DESTINATION="${PKG_BIN64_PATH}${PATH_GAME}/$APP_MAIN_EXE" mkdir --parents "$(dirname "$LAUNCHER_DESTINATION")" cp "$LAUNCHER_SOURCE" "$LAUNCHER_DESTINATION" # Get icon PKG='PKG_DATA' icons_get_from_workdir 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-lieve-oma.sh0000755000000000000000000000454414471751340014045 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Lieve Oma # send your bug reports to contact@dotslashplay.it ### script_version=20231103.1 PLAYIT_COMPATIBILITY_LEVEL='2.7' GAME_ID='lieve-oma' GAME_NAME='Lieve Oma' ARCHIVE_BASE_0_NAME='Lieve Oma Linux Universal.zip' ARCHIVE_BASE_0_MD5='b33c1f38503a221ce82139a5435c3577' ARCHIVE_BASE_0_SIZE='770000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://vltmn.itch.io/lieve-oma' UNITY3D_NAME='Lieve Oma' ## TODO: Check if the Steam libraries can be dropped. UNITY3D_PLUGINS=' libCSteamworks.so libsteam_api.so ScreenSelector.so' CONTENT_PATH_DEFAULT='Lieve Oma Linux Universal' ## Yes, .png, not a typo. Don’t ask. CONTENT_DOC_DATA_FILES=' README.png' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' launchers_write set_current_package 'PKG_BIN32' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-life-is-strange.sh0000755000000000000000000001022414471751340015150 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=20231017.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' 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' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' binaries engine' 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' CONTENT_GAME_DATA_FILES=' lifeisstrangegame' 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_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ID="$GAME_ID" PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_EPISODE2_ID="${GAME_ID}-episode-2" PKG_EPISODE2_DESCRIPTION='Episode 2' PKG_EPISODE2_DEPS="$PKG_BIN_ID" PKG_EPISODE3_ID="${GAME_ID}-episode-3" PKG_EPISODE3_DESCRIPTION='Episode 3' PKG_EPISODE3_DEPS="$PKG_BIN_ID" PKG_EPISODE4_ID="${GAME_ID}-episode-4" PKG_EPISODE4_DESCRIPTION='Episode 4' PKG_EPISODE4_DEPS="$PKG_BIN_ID" PKG_EPISODE5_ID="${GAME_ID}-episode-5" PKG_EPISODE5_DESCRIPTION='Episode 5' PKG_EPISODE5_DEPS="$PKG_BIN_ID" PKG_EXTRA_ID="${GAME_ID}-extra" PKG_EXTRA_DESCRIPTION='Extra' PKG_EXTRA_DEPS="$PKG_BIN_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 . "$PLAYIT_LIB2" # Check for the presence of extra required archives ## 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/' archive_initialize_required \ 'ARCHIVE_FIXED_DLL' \ 'ARCHIVE_REQUIRED_FIXED_DLL' # Extract game data archive_extraction_default # Include game icons set_current_package 'PKG_DATA' icons_inclusion 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 set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-lilas-sky-ark.sh0000755000000000000000000000375414471751340014654 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Lila's Sky Ark # send your bug reports to contact@dotslashplay.it ### script_version=20230709.1 GAME_ID='lilas-sky-ark' GAME_NAME='Lilaʼs Sky Ark' ARCHIVE_BASE_0='lila_s_sky_ark_1_0_4_1_61980.sh' ARCHIVE_BASE_0_MD5='25500814b0f4031829004488aca809ba' ARCHIVE_BASE_0_SIZE='340000' ARCHIVE_BASE_0_VERSION='1.0.4.1-gog61980' ARCHIVE_BASE_0_URL='https://www.gog.com/game/lilas_sky_ark' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' SkyArk.x86_64' CONTENT_GAME_DATA_FILES=' SkyArk.pck' APP_MAIN_EXE='SkyArk.x86_64' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libGL.so.1 libm.so.6 libpthread.so.0 libX11.so.6 libXcursor.so.1 libXext.so.6 libXinerama.so.1 libXi.so.6 libXrandr.so.2 libXrender.so.1' # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-lilly-looking-through.sh0000755000000000000000000000462114471751340016426 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 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220701.1 GAME_ID='lilly-looking-through' GAME_NAME='Lilly Looking Through' ARCHIVE_BASE_0='setup_lilly_looking_through_1.1.50_(21178).exe' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_MD5='a3318d6a5a5abfe946293c9e745f1fd9' 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='.' ARCHIVE_GAME_BIN_FILES=' adobe?air lillylookingthrough.exe lilly.swf' ARCHIVE_GAME_DATA_FILES=' meta-inf mimetype pkmedia' APP_MAIN_TYPE='wine' APP_MAIN_EXE='lillylookingthrough.exe' APP_MAIN_ICON='app/goggame-1207659903.ico' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # icotool is used for icon .ico → .png conversion SCRIPT_DEPS="$SCRIPT_DEPS icotool" # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Work around "insufficient image data" issue with convert from imagemagick icon_extract_png_from_ico() { local source_file destination_directory source_file="$1" destination_directory="$2" icotool --extract --output="$destination_directory" "$source_file" 2>/dev/null } # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Include game icon PKG='PKG_DATA' icons_get_from_workdir 'APP_MAIN' # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-limbo.sh0000755000000000000000000000457214471751340013272 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Limbo # send your bug reports to contact@dotslashplay.it ### script_version=20230901.1 GAME_ID='limbo' GAME_NAME='Limbo' ARCHIVE_BASE_1='Limbo-Linux-2014-06-18.zip' ARCHIVE_BASE_1_MD5='5bb49941722ff6d4d6a494e064fd197e' ARCHIVE_BASE_1_SIZE='190000' ARCHIVE_BASE_1_VERSION='1.3-humble2' ARCHIVE_BASE_1_URL='https://www.humblebundle.com/store/limbo' ARCHIVE_BASE_0='Limbo-Linux-2014-06-18.sh' ARCHIVE_BASE_0_MD5='9b453abcb859c31cc645a7207de08329' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='120000' ARCHIVE_BASE_0_VERSION='1.3-humble1' CONTENT_PATH_DEFAULT='data' CONTENT_GAME_BIN_FILES=' limbo' CONTENT_GAME_DATA_FILES=' data settings.txt limbo.png *.pkg' CONTENT_DOC_DATA_FILES=' README-linux.txt' USER_PERSISTENT_FILES=' settings.txt' APP_MAIN_EXE_BIN='limbo' APP_MAIN_ICON='limbo.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 libSDL2-2.0.so.0 libstdc++.so.6' # Load common functions target_version='2.25' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' case "$(context_archive)" in ('ARCHIVE_BASE_1') ARCHIVE_INNER="${PLAYIT_WORKDIR}/gamedata/Limbo-Linux-2014-06-18.sh" archive_extraction 'ARCHIVE_INNER' rm "$ARCHIVE_INNER" ;; esac # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-litil-divil.sh0000755000000000000000000000463014471751340014405 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Litil Divil # send your bug reports to contact@dotslashplay.it ### script_version=20231109.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='litil-divil' GAME_NAME='Litil Divil' ARCHIVE_BASE_1_NAME='gog_litil_divil_2.0.0.22.sh' ARCHIVE_BASE_1_MD5='89a1a0cedbf13d8e6aed285780b69def' ARCHIVE_BASE_1_SIZE='45000' ARCHIVE_BASE_1_VERSION='1.0-gog2.0.0.22' ARCHIVE_BASE_1_URL='https://www.gog.com/game/litil_divil' ARCHIVE_BASE_0_NAME='gog_litil_divil_2.0.0.21.sh' ARCHIVE_BASE_0_MD5='1258be406cb4b40c912c4846df2ac92b' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='44000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.21' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' data gfx *.cfg *.exe' CONTENT_DOC_MAIN_FILES=' config.doc' CONTENT_DOC0_MAIN_PATH="${CONTENT_PATH_DEFAULT}/../docs" CONTENT_DOC0_MAIN_FILES=' *.txt *.pdf' USER_PERSISTENT_FILES=' divils.cfg' GAME_IMAGE='data' GAME_IMAGE_TYPE='cdrom' APP_MAIN_EXE='data/divil.exe' APP_MAIN_OPTIONS='c:' APP_MAIN_ICON='../support/icon.png' ## Run the game binary from the CD-ROM directory. APP_MAIN_PRERUN='# Run the game binary from the CD-ROM directory APP_EXE=$(basename "$APP_EXE") ' APP_MAIN_DOSBOX_PRERUN=' d: ' APP_CONFIG_ID="${GAME_ID}-config" APP_CONFIG_NAME="$GAME_NAME - configuration" APP_CONFIG_CAT='Settings' APP_CONFIG_EXE='config.exe' APP_CONFIG_ICON='../support/icon.png' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$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 icons_inclusion content_inclusion_default # Write launchers launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-little-big-adventure-1.sh0000755000000000000000000000517714471751340016357 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Dominique Derrier # SPDX-FileCopyrightText: © 2020 macaron # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Little Big Adventure 1 # send your bug reports to contact@dotslashplay.it ### script_version=20230420.1 GAME_ID='little-big-adventure-1' GAME_NAME='Little Big Adventure' ARCHIVE_BASE_1='setup_little_big_adventure_1.0_(28186).exe' ARCHIVE_BASE_1_MD5='43d4926dc8a56a95800e746ac9797201' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='510000' ARCHIVE_BASE_1_VERSION='1.0-gog28186' ARCHIVE_BASE_1_URL='https://www.gog.com/game/little_big_adventure' ARCHIVE_BASE_0='setup_lba_2.1.0.22.exe' ARCHIVE_BASE_0_MD5='c40177522adcbe50ea52590be57045f8' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='510000' ARCHIVE_BASE_0_VERSION='1.0-gog2.1.0.22' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_MAIN_FILES=' VOX SETUP.LST LBA.DAT LBA.GOG SETSOUND.BAT SAMPLE.* *.CFG *.DLL *.EXE *.HQR *.INI' CONTENT_DOC_MAIN_FILES=' *.PDF *.TXT' GAME_IMAGE='LBA.DAT' USER_PERSISTENT_FILES=' *.CFG *.INI *.LBA' APP_MAIN_EXE='RELENT.EXE' APP_MAIN_ICON='APP/GOGGAME-1207658971.ICO' APP_MAIN_ICON_0='GOGGAME-1207658971.ICO' APP_SETUP_ID="${GAME_ID}-setup" APP_SETUP_NAME="$GAME_NAME - Setup" APP_SETUP_EXE='SETUP.EXE' APP_SETUP_CAT='Settings' APP_SETUP_ICON='APP/GOGGAME-1207658971.ICO' APP_SETUP_ICON_0='GOGGAME-1207658971.ICO' # Ensure easy upgrade from packages generated with pre-20200210.3 scripts PKG_MAIN_PROVIDES="$PKG_MAIN_PROVIDES little-big-adventure-1-data" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Convert all file names to upper case toupper . ) # Include game icons icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-little-big-adventure-2.sh0000755000000000000000000000543114471751340016351 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Andrey Butirsky # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2020 macaron set -o errexit ### # Little Big Adventure 2 # send your bug reports to contact@dotslashplay.it ### script_version=20230420.1 GAME_ID='little-big-adventure-2' GAME_NAME='Little Big Adventure 2' ARCHIVE_BASE_1='setup_little_big_adventure_2_1.0_(28192).exe' ARCHIVE_BASE_1_MD5='80b95bb8faa2353284b321748021da16' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='750000' ARCHIVE_BASE_1_VERSION='1.0-gog28192' ARCHIVE_BASE_1_URL='https://www.gog.com/game/little_big_adventure_2' ARCHIVE_BASE_0='setup_lba2_2.1.0.8.exe' ARCHIVE_BASE_0_MD5='9909163b7285bd37417f6d3c1ccfa3ee' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='750000' ARCHIVE_BASE_0_VERSION='1.0-gog2.1.0.8' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_MAIN_FILES=' DRIVERS LBA2.DAT LBA2.GOG LBA2.OGG *.BAT *.CFG *.DOS *.EXE *.INI *.HQR *.ILE *.OBL' CONTENT_DOC_MAIN_FILES=' *.PDF *.TXT' GAME_IMAGE='LBA2.DAT' USER_PERSISTENT_FILES=' *.CFG' USER_PERSISTENT_DIRECTORIES=' SAVE' APP_MAIN_EXE='LBA2.EXE' APP_MAIN_ICON='APP/GOGGAME-1207658974.ICO' APP_MAIN_ICON_0='GOGGAME-1207658974.ICO' ## Force application type, as LBA2.EXE is detected as a Windows executable. APP_MAIN_TYPE='dosbox' APP_SETUP_ID="${GAME_ID}-setup" APP_SETUP_NAME="$GAME_NAME - Setup" APP_SETUP_EXE='SETUP.EXE' APP_SETUP_CAT='Settings' APP_SETUP_ICON='APP/GOGGAME-1207658974.ICO' APP_SETUP_ICON_0='GOGGAME-1207658974.ICO' # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Convert all file names to upper case toupper . # Store voices outside of the game image sed_pattern='s/\(FlagKeepVoice:\) OFF/\1 ON/' sed --in-place "$sed_pattern" 'LBA2.CFG' ) # Include game icons icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-little-bug.sh0000755000000000000000000000751514471751340014240 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Little Bug # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210814.2 # Set game-specific variables GAME_ID='little-bug' GAME_NAME='Little Bug' ARCHIVE_BASE_0='little_bug_v1_1_4_26003.sh' ARCHIVE_BASE_0_MD5='3bbc574d9b8a0279cb023184cb81dd63' ARCHIVE_BASE_0_SIZE='670000' ARCHIVE_BASE_0_VERSION='1.1.4-gog26003' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_URL='https://www.gog.com/game/little_bug' ARCHIVE_GAME_BIN_PATH='data/noarch/game' ARCHIVE_GAME_BIN_FILES=' Little?Bug.x86 Little?Bug_Data/Mono Little?Bug_Data/Plugins' ARCHIVE_GAME_DATA_PATH='data/noarch/game' ARCHIVE_GAME_DATA_FILES='Little?Bug_Data' APP_MAIN_TYPE='native' APP_MAIN_EXE='Little Bug.x86' APP_MAIN_ICON='Little Bug_Data/Resources/UnityPlayer.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID glibc libstdc++ gtk2 libz.so.1 libgdk_pixbuf-2.0.so.0 libgdk_pixbuf-2.0.so.0 libgobject-2.0.so.0 libglib-2.0.so.0" # Use a per-session dedicated file for logs APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a per-session dedicated file for logs mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Work around Unity3D poor support for non-US locales APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Work around Unity3D poor support for non-US locales export LANG=C' # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" set_standard_permissions "${PLAYIT_WORKDIR}/gamedata" prepare_package_layout # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-little-misfortune.sh0000755000000000000000000000674514471751340015662 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Little Misfortune # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210525.1 # Set game-specific variables GAME_ID='little-misfortune' GAME_NAME='Little Misfortune' ARCHIVE_BASE_0='little_misfortune_1_0_32530.sh' ARCHIVE_BASE_0_MD5='30f94ffdab5d210d3782c9e348f6f36b' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='6400000' ARCHIVE_BASE_0_VERSION='1.0-gog32530' ARCHIVE_BASE_0_URL='https://www.gog.com/game/little_misfortune' ARCHIVE_GAME_BIN_PATH='data/noarch/game' ARCHIVE_GAME_BIN_FILES='Little?Misfortune.x86_64 Little?Misfortune_Data/Managed Little?Misfortune_Data/MonoBleedingEdge' ARCHIVE_GAME_DATA_PATH='data/noarch/game' ARCHIVE_GAME_DATA_FILES='Little?Misfortune_Data' APP_MAIN_TYPE='native' APP_MAIN_EXE='Little Misfortune.x86_64' APP_MAIN_ICON='data/noarch/support/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="${PKG_DATA_ID} glibc libstdc++ openal glx" PKG_BIN_DEPS_ARCH='libx11' PKG_BIN_DEPS_DEB='libx11-6' PKG_BIN_DEPS_GENTOO='x11-libs/libX11' # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon icons_get_from_workdir 'APP_MAIN' # Clean up temporary directories rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-little-nightmares-1.sh0000755000000000000000000001164314471751340015757 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Little Nightmares 1 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210501.4 # Set game-specific variables GAME_ID='little-nightmares-1' GAME_NAME='Little Nightmares 1' ARCHIVES_LIST=' ARCHIVE_BASE_0' ARCHIVE_BASE_0='setup_little_nightmares_1.0.43.1_(18471).exe' ARCHIVE_BASE_0_MD5='6e1ac1107650aeb03abc17cf0e614e4c' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_little_nightmares_1.0.43.1_(18471)-1.bin' ARCHIVE_BASE_0_PART1_MD5='0732121bf0da7db6dc6f5e5a3bc8705b' ARCHIVE_BASE_0_PART1_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='1.0.43.1-gog18471' ARCHIVE_BASE_0_SIZE='9500000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/little_nightmares' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='atlas/binaries engine' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='atlas/content' APP_MAIN_TYPE='wine' APP_MAIN_EXE='atlas/binaries/win64/littlenightmares.exe' APP_MAIN_ICON='atlas/binaries/win64/littlenightmares.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Use persistent storage for user data CONFIG_DIRS="${CONFIG_DIRS} ./atlas/Saved/Config" DATA_DIRS="${DATA_DIRS} ./atlas/Saved/SaveGames" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Enable dxvk patches in the WINE prefix APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Install dxvk on first launch if [ ! -e dxvk_installed ]; then # Wait a bit to ensure there is no lingering wine process sleep 1s if \ command -v dxvk-setup >/dev/null 2>&1 && \ command -v wine-development >/dev/null 2>&1 then dxvk-setup install --development touch dxvk_installed elif command -v winetricks >/dev/null 2>&1; then winetricks dxvk touch dxvk_installed else message="\\033[1;33mWarning:\\033[0m\\n" message="${message}DXVK patches could not be installed in the WINE prefix.\\n" message="${message}The game might run with display or performance issues.\\n" printf "\\n${message}\\n" fi # Wait a bit to ensure there is no lingering wine process sleep 1s fi' case "$OPTION_PACKAGE" in ('deb') # Debian-based distributions should use repositories-provided dxvk # winetricks is used as a fallback for branches not having access to dxvk-setup extra_dependencies='dxvk-wine64-development | winetricks, dxvk | winetricks' if [ -n "$PKG_BIN_DEPS_DEB" ]; then PKG_BIN_DEPS_DEB="${PKG_BIN_DEPS_DEB}, ${extra_dependencies}" else PKG_BIN_DEPS_DEB="$extra_dependencies" fi ;; (*) # Default is to use winetricks PKG_BIN_DEPS="${PKG_BIN_DEPS} winetricks" ;; esac # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-lo-fi-room.sh0000755000000000000000000001064714471751340014150 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # Lo-Fi Room # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20201006.4 # Set game-specific variables GAME_ID='lo-fi-room' GAME_NAME='Lo-Fi Room' ARCHIVES_LIST=' ARCHIVE_ITCH_0' ARCHIVE_ITCH_0='lofiroom.tar.xz' ARCHIVE_ITCH_0_URL='https://bearmask.itch.io/lofi-room' ARCHIVE_ITCH_0_MD5='c9f0f9d43e7ca81ec372784692a60432' ARCHIVE_ITCH_0_SIZE='140000' ARCHIVE_ITCH_0_VERSION='1.0-itch' ARCHIVE_ITCH_0_TYPE='tar' ARCHIVE_GAME_BIN_PATH='linux' ARCHIVE_GAME_BIN_FILES='lofi_room_linux.x86_64 lofi_room_linux_Data/MonoBleedingEdge/x86_64 lofi_room_linux_Data/Managed lofi_room_linux_Data/Plugins' ARCHIVE_GAME_DATA_PATH='linux' ARCHIVE_GAME_DATA_FILES='lofi_room_linux_Data' DATA_DIRS='./logs' APP_MAIN_TYPE='native' APP_MAIN_PRERUN='# Work around Unity3D poor support for non-US locales export LANG=C' APP_MAIN_EXE='lofi_room_linux.x86_64' APP_MAIN_ICON='lofi_room_linux_Data/Resources/UnityPlayer.png' # Use a per-session dedicated file for logs # shellcheck disable=SC2016 APP_MAIN_OPTIONS='-logFile ./logs/$(date +%F-%R).log' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID glibc libstdc++" # Find the keyboard layout and changes it to qwerty if it needs to be PKG_MAIN_DEPS_ARCH="$PKG_MAIN_DEPS_ARCH xorg-setxkbmap" PKG_MAIN_DEPS_DEB="$PKG_MAIN_DEPS_DEB, x11-xkb-utils" PKG_MAIN_DEPS_GENTOO="$PKG_MAIN_DEPS_GENTOO x11-apps/setxkbmap" APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Find the keyboard layout and changes it to qwerty if it needs to be KEYBOARD_LAYOUT=$(LANG=C setxkbmap -query | sed --silent "s/^layout: *\\([^ ]\\+\\)$/\\1/p") RESTORE_KEYMAP=0 if [ $KEYBOARD_LAYOUT = fr ]; then KEYBOARD_VARIANT=$(LANG=C setxkbmap -query | sed --silent "s/^variant: *\\([^ ]\\+\\)$/\\1/p") setxkbmap us RESTORE_KEYMAP=1 fi' APP_MAIN_POSTRUN="$APP_MAIN_POSTRUN"' # Restore the keyboard layout if it has been changed earlier if [ $RESTORE_KEYMAP -eq 1 ]; then setxkbmap $KEYBOARD_LAYOUT -variant $KEYBOARD_VARIANT fi' # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-location-withheld.sh0000755000000000000000000000373714471751340015610 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Location Withheld # send your bug reports to contact@dotslashplay.it ### script_version=20230803.3 GAME_ID='location-withheld' GAME_NAME='Location Withheld' ARCHIVE_BASE_0='Location Withheld.rar' ARCHIVE_BASE_0_MD5='c3e0eb2553b736cdf29aa9a9455b3f43' ARCHIVE_BASE_0_SIZE='2100000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://bryce-bucher.itch.io/location-withheld' UNITY3D_NAME='Location Withheld' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" Mono ${UNITY3D_NAME}.exe *.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Bryce Bucher/Location Withheld' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-lonesome-village.sh0000755000000000000000000000331514471751340015424 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Lonesome Village # send your bug reports to contact@dotslashplay.it ### script_version=20231018.4 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='lonesome-village' GAME_NAME='Lonesome Village' ARCHIVE_BASE_0_NAME='setup_lonesome_village_1.0_(59798).exe' ARCHIVE_BASE_0_MD5='85470a092929916f3ed0917b5eca2f41' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='4469668' ARCHIVE_BASE_0_VERSION='1.0.1.6-gog59798' ARCHIVE_BASE_0_URL='https://www.gog.com/game/lonesome_village' UNITY3D_NAME='lonesome village' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Ogre Pixel/Lonesome Village' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data PKG='PKG_DATA' icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-long-live-the-queen.sh0000755000000000000000000000574714471751340015762 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Long Live the Queen # send your bug reports to contact@dotslashplay.it ### script_version=20231114.3 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='long-live-the-queen' GAME_NAME='Long Live the Queen' ARCHIVE_BASE_0_NAME='gog_long_live_the_queen_2.4.0.11.sh' ARCHIVE_BASE_0_MD5='654ccbbdde2071c4f13b5f80378582c2' ARCHIVE_BASE_0_SIZE='63000' ARCHIVE_BASE_0_VERSION='1.3.23.4-gog2.4.0.11' ARCHIVE_BASE_0_URL='https://www.gog.com/game/long_live_the_queen' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/lib/linux-x86/lib" CONTENT_LIBS_BIN_FILES=' libavcodec.so.52 libavformat.so.52 libavutil.so.50 libGLEW.so.1.5 libpython2.6.so.1.0 libswscale.so.0' CONTENT_GAME_BIN_FILES=' lib/linux-x86/lib/python2.6 lib/linux-x86/python.real' CONTENT_GAME_DATA_FILES=' common game renpy LongLiveTheQueen.py' CONTENT_FONTS_PATH="${CONTENT_PATH_DEFAULT}/game" CONTENT_FONTS_FILES=' DejaVuSans-Oblique.ttf' CONTENT_DOC_DATA_FILES=' LICENSE.txt' APP_MAIN_EXE='lib/linux-x86/python.real' APP_MAIN_OPTIONS='-OO LongLiveTheQueen.py' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libEGL.so.1 libfreetype.so.6 libfribidi.so.0 libGL.so.1 libGLU.so.1 libm.so.6 libpthread.so.0 libSDL-1.2.so.0 libSDL_ttf-2.0.so.0 libutil.so.1 libX11.so.6 libXext.so.6 libXi.so.6 libXmu.so.6 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Link fonts to the game directory, or the engine would fail to find them. PATH_FONTS="$(option_value 'prefix')/share/fonts/truetype/$(game_id)" game_data_path="$(package_path 'PKG_DATA')$(path_game_data)/game" mkdir --parents "$game_data_path" ln --symbolic \ "${PATH_FONTS}/DejaVuSans-Oblique.ttf" \ "$game_data_path" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Add required execution permissions chmod 755 'lib/linux-x86/python.real' ) # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion 'FONTS' 'PKG_DATA' "$PATH_FONTS" content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-loom.sh0000755000000000000000000000612014471751340013125 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # Loom # build native packages from the original installers # send your bug reports to mopi@dotslashplay.it ### script_version=20200209.1 # Set game-specific variables GAME_ID='loom' GAME_NAME='Loom' ARCHIVE_GOG='loom_en_gog_2_20099.sh' ARCHIVE_GOG_URL='https://www.gog.com/game/loom' ARCHIVE_GOG_MD5='225706d082ebf907170ca899fe1dbe1c' ARCHIVE_GOG_SIZE='390000' ARCHIVE_GOG_VERSION='1.0-gog20099' ARCHIVE_GOG_TYPE='mojosetup' ARCHIVE_DOC_MAIN_PATH='data/noarch/docs' ARCHIVE_DOC_MAIN_FILES='*.pdf *.txt' ARCHIVE_GAME_MAIN_PATH='data/noarch/data' ARCHIVE_GAME_MAIN_FILES='*.lfl disk01.lec cdda.sou' APP_MAIN_TYPE='scummvm' APP_MAIN_SCUMMID='loom' APP_MAIN_ICON='data/noarch/support/icon.png' PACKAGES_LIST='PKG_MAIN' PKG_MAIN_DEPS='scummvm' # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" tolower "$PLAYIT_WORKDIR/gamedata" prepare_package_layout # Get icon icons_get_from_workdir 'APP_MAIN' rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-lords-of-xulima.sh0000755000000000000000000000534214471751340015206 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Lords of Xulima # send your bug reports to contact@dotslashplay.it ### script_version=20230819.1 GAME_ID='lords-of-xulima' GAME_NAME='Lords of Xulima' ARCHIVE_BASE_0='gog_lords_of_xulima_2.3.0.9.sh' ARCHIVE_BASE_0_MD5='480abf8d929da622eacd69595a4ebc80' ARCHIVE_BASE_0_SIZE='1700000' ARCHIVE_BASE_0_VERSION='2.1.1-gog2.3.0.9' ARCHIVE_BASE_0_URL='https://www.gog.com/game/lords_of_xulima' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/Linux/lib" CONTENT_LIBS_BIN_FILES=' libmonoboehm-2.0.a libmonoboehm-2.0.so.1 libmono-profiler-aot.so.0.0.0 libmono-profiler-cov.so.0.0.0 libmono-profiler-iomap.so.0.0.0 libmono-profiler-log.so.0.0.0 libmonosgen-2.0.so.1 libmonosgen-2.0.so.1.0.0 libMonoPosixHelper.so libMonoSupportW.so' CONTENT_LIBS0_BIN_FILES=' libbass.so' CONTENT_GAME_BIN_FILES=' Linux/etc/mono Linux/lib/mono *.conf *.config *.cpp *.dll *.exe *.hqx *.manifest LOXLinux MusicPlayer' CONTENT_GAME_DATA_FILES=' DXApp_* SOL_* Cinematic CSteamworks.bundle Manual Resources *.dx* *.fx *.glsl *.icns *.jx* *.sqlite *.suo *.ttf *.txt SOL' FAKE_HOME_PERSISTENT_DIRECTORIES=' My Games/Lords of Xulima' APP_MAIN_EXE='LOXLinux' APP_MAIN_OPTIONS='--gc=sgen' APP_MAIN_ICON='LoX.exe' ## Apply common Mono workarounds APP_MAIN_PRERUN=' ## Work around terminfo Mono bug, ## cf. https://github.com/mono/mono/issues/6752 export TERM="${TERM%-256color}" ## Work around Mono unpredictable behaviour with non-US locales export LANG=C' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgdiplus.so libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' # Load common functions 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-lorelai.sh0000755000000000000000000001013014471751340013602 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Lorelai # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210518.4 # Set game-specific variables GAME_ID='lorelai' GAME_NAME='Lorelai' ARCHIVE_BASE_0='setup_lorelai_1.1.0a_(40070).exe' ARCHIVE_BASE_0_MD5='41931b22bd91c8a61835f1ab5b317b38' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_lorelai_1.1.0a_(40070)-1.bin' ARCHIVE_BASE_0_PART1_MD5='3c93e5c60612965bd44ddc2480c57987' ARCHIVE_BASE_0_PART1_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='1.1.0a-gog40070' ARCHIVE_BASE_0_SIZE='11000000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/lorelai' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='lorelai.exe lorelai_data/mono lorelai_data/plugins' ARCHIVE_GAME_DATA_ASSETS_PATH='.' ARCHIVE_GAME_DATA_ASSETS_FILES='lorelai_data/sharedassets*.assets*' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='lorelai_data lorelai_icon2.ico ost' APP_MAIN_TYPE='wine' APP_MAIN_EXE='lorelai.exe' APP_MAIN_ICON='lorelai_icon2.ico' PACKAGES_LIST='PKG_BIN PKG_DATA_ASSETS PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_ASSETS_ID="${PKG_DATA_ID}-sharedassets" PKG_DATA_ASSETS_DESCRIPTION="${PKG_DATA_DESCRIPTION} - shared assets" PKG_DATA_DEPS="${PKG_DATA_DEPS} ${PKG_DATA_ASSETS_ID}" PKG_BIN_ARCH='64' PKG_BIN_DEPS="${PKG_DATA_ID} wine" # Use a per-session dedicated file for logs APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a per-session dedicated file for logs mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Use persistent storage for saved games APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/AppData/LocalLow/Harvester Games/Lorelai' DATA_FILES="${DATA_FILES} userdata/*.save" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-loria-demo.sh0000755000000000000000000000731714471751340014220 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # 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. ### ### # Loria # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210613.1 # Set game-specific variables GAME_ID='loria-demo' GAME_NAME='Loria (demo)' ARCHIVE_BASE_0='loria_demo_1_2_0_31834.sh' ARCHIVE_BASE_0_MD5='aeb232dd39397e509b0fab8033108cf4' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='950000' ARCHIVE_BASE_0_VERSION='1.2.0-gog31834' ARCHIVE_BASE_0_URL='https://www.gog.com/game/loria_demo' ARCHIVE_GAME_BIN_PATH='data/noarch/game' ARCHIVE_GAME_BIN_FILES='Loria.x86_64 Loria_Data/MonoBleedingEdge Loria_Data/Plugins' ARCHIVE_GAME_DATA_PATH='data/noarch/game' ARCHIVE_GAME_DATA_FILES='Loria_Data' APP_MAIN_TYPE='native' APP_MAIN_EXE='Loria.x86_64' APP_MAIN_ICON='Loria_Data/Resources/UnityPlayer.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="${PKG_DATA_ID} glibc libstdc++ gtk2 libz.so.1 libgdk_pixbuf-2.0.so.0 libgobject-2.0.so.0 libglib-2.0.so.0" # Work around Unity3D poor support for non-US locales APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Work around Unity3D poor support for non-US locales export LANG=C' # Use a per-session dedicated file for logs APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a per-session dedicated file for logs mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-loria.sh0000755000000000000000000000727214471751340013276 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # 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. ### ### # Loria # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210613.1 # Set game-specific variables GAME_ID='loria' GAME_NAME='Loria' ARCHIVE_BASE_0='loria_1_2_0_31834.sh' ARCHIVE_BASE_0_MD5='3e23b2eeb0df168e73e47c70813e1a75' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='1200000' ARCHIVE_BASE_0_VERSION='1.2.0-gog31834' ARCHIVE_BASE_0_URL='https://www.gog.com/game/loria' ARCHIVE_GAME_BIN_PATH='data/noarch/game' ARCHIVE_GAME_BIN_FILES='Loria.x86_64 Loria_Data/MonoBleedingEdge Loria_Data/Plugins' ARCHIVE_GAME_DATA_PATH='data/noarch/game' ARCHIVE_GAME_DATA_FILES='Loria_Data' APP_MAIN_TYPE='native' APP_MAIN_EXE='Loria.x86_64' APP_MAIN_ICON='Loria_Data/Resources/UnityPlayer.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="${PKG_DATA_ID} glibc libstdc++ gtk2 libz.so.1 libgdk_pixbuf-2.0.so.0 libgobject-2.0.so.0 libglib-2.0.so.0" # Work around Unity3D poor support for non-US locales APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Work around Unity3D poor support for non-US locales export LANG=C' # Use a per-session dedicated file for logs APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a per-session dedicated file for logs mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-lost-ruins.sh0000755000000000000000000000343514471751340014304 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Lost Ruins # send your bug reports to contact@dotslashplay.it ### script_version=20231219.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='lost-ruins' GAME_NAME='Lost Ruins' ARCHIVE_BASE_0_NAME='lost_ruins_1_0_9a_48364.sh' ARCHIVE_BASE_0_MD5='ae4fabbe98718fad2c02712e4104ee6b' ARCHIVE_BASE_0_SIZE='497160' ARCHIVE_BASE_0_VERSION='1.0.9a-gog48364' ARCHIVE_BASE_0_URL='https://www.gog.com/game/lost_ruins' UNITY3D_NAME='LostRuins' ## TODO: Check if the Steam library is required. UNITY3D_PLUGINS=' libsteam_api.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-lost-words.sh0000755000000000000000000000451314471751340014300 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Mopi set -o errexit ### # Lost Words: Beyond the Page # send your bug reports to contact@dotslashplay.it ### script_version=20230706.1 GAME_ID='lost-words' GAME_NAME='Lost Words: Beyond the Page' ARCHIVE_BASE_0='setup_lost_words_beyond_the_page_release_2021-04-23_8_(64bit)_(46551).exe' ARCHIVE_BASE_0_MD5='0c36cfe013e3196442d77a128a38aa9f' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_lost_words_beyond_the_page_release_2021-04-23_8_(64bit)_(46551)-1.bin' ARCHIVE_BASE_0_PART1_MD5='c632a4a1f22c8f2587e1d224547f00eb' ARCHIVE_BASE_0_SIZE='5000000' ARCHIVE_BASE_0_VERSION='2021.04.23.8-gog46551' ARCHIVE_BASE_0_URL='https://www.gog.com/en/game/lost_words_beyond_the_page' UNITY3D_NAME='lost words' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_data/plugins *.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Fourth State/Lost Words' APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files rm --recursive \ '__redist' \ 'app' \ 'commonappdata' \ 'tmp' ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-lovers-in-a-dangerous-spacetime.sh0000755000000000000000000000534414471751340020257 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # Lovers in a Dangerous Spacetime # send your bug reports to contact@dotslashplay.it ### script_version=20230105.2 GAME_ID='lovers-in-a-dangerous-spacetime' GAME_NAME='Lovers in a Dangerous Spacetime' UNITY3D_NAME='LoversInADangerousSpacetime' ARCHIVE_BASE_1='LoversInADangerousSpacetime-1.4.5_Linux.zip' ARCHIVE_BASE_1_MD5='67b6bc5ba5590fb50e95996b267f8c60' ARCHIVE_BASE_1_SIZE='880000' ARCHIVE_BASE_1_VERSION='1.4.5-humble180427' ARCHIVE_BASE_1_URL='https://www.humblebundle.com/store/lovers-in-a-dangerous-spacetime' ARCHIVE_BASE_0='LoversInADangerousSpacetime-1.4.4_Linux.zip' ARCHIVE_BASE_0_MD5='38927a73e1fe84620ebc876f8f039adb' ARCHIVE_BASE_0_SIZE='880000' ARCHIVE_BASE_0_VERSION='1.4.4-humble160908' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPENDENCIES_LIBRARIES=' ld-linux.so.2 ld-linux-x86-64.so.2 libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN32_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.20' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-lumini.sh0000755000000000000000000000634514471751340013465 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Lumini # send your bug reports to contact@dotslashplay.it ### script_version=20231103.7 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='lumini' GAME_NAME='Lumini' ## This game is no longer available for sale from humblebundle.com. ARCHIVE_BASE_0_NAME='Lumini_DRMfree_Linux.zip' ARCHIVE_BASE_0_MD5='7d70f1824be9ab701cf9d52fb12a039a' ARCHIVE_BASE_0_SIZE='4700000' ARCHIVE_BASE_0_VERSION='1.0-humble1' UNITY3D_NAME='lumini' UNITY3D_PLUGINS=' libfmod.so libfmodstudio.so ScreenSelector.so' CONTENT_PATH_DEFAULT='.' CONTENT_GAME0_DATA_FILES=' SavesDir' USER_PERSISTENT_DIRECTORIES=' SavesDir' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Merge assets directories for the 32-bit and 64-bit builds. mkdir "$(unity3d_name)_Data" cp --link --recursive --update 'lumini_Linux64_Data/'* "$(unity3d_name)_Data" cp --link --recursive --update 'lumini_Linux32_Data/'* "$(unity3d_name)_Data" rm --recursive 'lumini_Linux64_Data' 'lumini_Linux32_Data' ## Rename the binaries. mv 'lumini_Linux64.x86_64' "$(unity3d_name).x86_64" mv 'lumini_Linux32.x86' "$(unity3d_name).x86" ## Delete files that are not used by the Linux build. rm \ "$(unity3d_name)_Data/Mono/"*/*.dll \ "$(unity3d_name)_Data/Mono/"*/*.dll.meta ## Delete duplicated libraries. rm \ "$(unity3d_name)_Data/Mono/"*/libfmod.so \ "$(unity3d_name)_Data/Mono/"*/libfmodstudio.so \ "$(unity3d_name)_Data/Mono/"*/ScreenSelector.so ## These directories must be deleted to prevent an error during the inclusion of Unity3D plugins. rm --recursive "$(unity3d_name)_Data/Plugins/"*.bundle/ ) # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' launchers_write set_current_package 'PKG_BIN32' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-lumino-city.sh0000755000000000000000000000665714471751340014447 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright © 2015-2022, Antoine Le Gonidec # Copyright © 2016-2022, Mopi # 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. ### ### # Lumino City # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220118.1 # Set game-specific variables GAME_ID='lumino-city' GAME_NAME='Lumino City' ARCHIVE_BASE_0='setup_lumino_city_1.0_(21180).exe' ARCHIVE_BASE_0_MD5='32f0e9251c7936180321f30811bab8d9' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='930000' ARCHIVE_BASE_0_VERSION='1.0-gog21180' ARCHIVE_BASE_0_URL='https://www.gog.com/game/lumino_city' CONTENT_PATH_DEFAULT='.' ARCHIVE_GAME_BIN_FILES=' lumino?city.exe adobe?air' ARCHIVE_GAME_DATA_FILES=' *.swf meta-inf mimetype assets luminocitysoundtrack' APP_MAIN_TYPE='wine' APP_MAIN_EXE='lumino city.exe' APP_MAIN_ICON='goggame-1207667103.ico' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Use persistent storage for user data APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/AppData/Roaming/com.stateofplaygames.LuminoCity/Local Store' DATA_FILES='userdata/Save_*' # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Include game icon PKG='PKG_DATA' icons_get_from_workdir 'APP_MAIN' # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-lumo.sh0000755000000000000000000000517114471751340013140 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Lumo # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220630.2 GAME_ID='lumo' GAME_NAME='Lumo' ARCHIVE_BASE_0='gog_lumo_2.3.0.4.sh' ARCHIVE_BASE_0_MD5='76cf720f68446eca8d89dc58cc9c4f7b' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='3400000' ARCHIVE_BASE_0_VERSION='1.7018-gog2.3.0.4' ARCHIVE_BASE_0_URL='https://www.gog.com/game/lumo' UNITY3D_NAME='Lumo' CONTENT_PATH_DEFAULT='data/noarch/game' ARCHIVE_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86" ARCHIVE_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32="${UNITY3D_NAME}.x86" APP_MAIN_EXE_BIN64="${UNITY3D_NAME}.x86_64" APP_MAIN_ICON="${UNITY3D_NAME}_Data/Resources/UnityPlayer.png" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID libc.so.6 libGL.so.1 xcursor libxrandr" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Use persistent storage for user data DATA_DIRS='./tdi' # Use a dedicated log file for the current game session APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a dedicated log file for the current game session mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-luna-the-shadow-dust.sh0000755000000000000000000000512314471751340016136 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Luna The Shadow Dust # send your bug reports to contact@dotslashplay.it ### script_version=20231018.2 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='luna-the-shadow-dust' GAME_NAME='LUNA The Shadow Dust' ARCHIVE_BASE_0_NAME='luna_the_shadow_dust_1_0_2_36448.sh' ARCHIVE_BASE_0_MD5='394463d5b600dbf8fe0619d5ffe944f1' ARCHIVE_BASE_0_SIZE='789052' ARCHIVE_BASE_0_VERSION='1.0.2-gog36448' ARCHIVE_BASE_0_URL='https://www.gog.com/game/luna_the_shadow_dust' UNITY3D_NAME='Luna' UNITY3D_PLUGINS=' libfmodL.so libfmod.so libfmodstudioL.so libfmodstudio.so libgvraudio.so libresonanceaudio.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' ## The game crashes on launch when the Wayland backend of SDL is used, ## even when forcing the use of system SDL. APP_MAIN_PRERUN='# The game crashes on launch when the Wayland backend of SDL is used if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' ## PKG_BIN64 must be listed before PKG_BIN32, ## because some 64-bit plugins are included at the root of the Plugins directory. PACKAGES_LIST='PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data PKG='PKG_DATA' icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN64' launchers_write PKG='PKG_BIN32' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-luna.sh0000755000000000000000000000624714471751340013130 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # Luna # build native Linux packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20201123.1 # Set game-specific variables GAME_ID='luna' GAME_NAME='Luna' ARCHIVE_ITCH='Luna.zip' ARCHIVE_ITCH_URL='https://funomena.itch.io/luna' ARCHIVE_ITCH_MD5='05dbd9bf3b74d53159fa41bdbc7c26d7' ARCHIVE_ITCH_SIZE='2300000' ARCHIVE_ITCH_VERSION='1.0-itch' ARCHIVE_GAME_BIN_PATH='Luna' ARCHIVE_GAME_BIN_FILES='Luna.exe UnityPlayer.dll Luna_Data/Managed Luna_Data/Mono Luna_Data/Plugins' ARCHIVE_GAME_DATA_PATH='Luna' ARCHIVE_GAME_DATA_FILES='Luna_Data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='Luna.exe' APP_MAIN_ICON='Luna.exe' PACKAGES_LIST='PKG_DATA PKG_BIN' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-lyne.sh0000755000000000000000000000436714471751340013141 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Lyne # send your bug reports to contact@dotslashplay.it ### script_version=20231111.4 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='lyne' GAME_NAME='Lyne' ARCHIVE_BASE_0_NAME='LYNE_120_lin.zip' ARCHIVE_BASE_0_MD5='f05951586a5b8cf42e20e0e6f04e65da' ARCHIVE_BASE_0_SIZE='110000' ARCHIVE_BASE_0_VERSION='1.2.0.30-humble171211' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/lyne' UNITY3D_NAME='LYNE' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='LYNE_120_lin' CONTENT_DOC_DATA_FILES=' readme.txt' ## Force windowed mode to prevent mouse input problems. APP_MAIN_OPTIONS='-screen-fullscreen 0' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' launchers_write set_current_package 'PKG_BIN32' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-lynn-the-girl-drawn-on-puzzles.sh0000755000000000000000000000340214471751340020105 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Lynn, The Girl Drawn On Puzzles # send your bug reports to contact@dotslashplay.it ### script_version=20231019.2 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='lynn-the-girl-drawn-on-puzzles' GAME_NAME='Lynn, The Girl Drawn On Puzzles' ARCHIVE_BASE_0_NAME='setup_lynn__the_girl_drawn_on_puzzles_1.0.01_(64bit)_(66351).exe' ARCHIVE_BASE_0_MD5='2bf80a446117e86f15a95b74612dd7c3' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='945180' ARCHIVE_BASE_0_VERSION='1.0.01-gog66351' ARCHIVE_BASE_0_URL='https://www.gog.com/game/lynn_the_girl_drawn_on_puzzles' UNITY3D_NAME='lynn' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/boing/lynn' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data PKG='PKG_DATA' icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-mable-and-the-wood.sh0000755000000000000000000000402614471751340015526 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Mable and the Wood # send your bug reports to contact@dotslashplay.it ### script_version=20230818.1 GAME_ID='mable-and-the-wood' GAME_NAME='Mable & the Wood' ARCHIVE_BASE_0='mable_the_wood_1_7_37606.sh' ARCHIVE_BASE_0_MD5='d88e40a5927c67c3974becd19d64c940' ARCHIVE_BASE_0_SIZE='570000' ARCHIVE_BASE_0_VERSION='1.7-gog37606' ARCHIVE_BASE_0_URL='https://www.gog.com/game/mable_the_wood' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' Mable_PC' CONTENT_GAME_DATA_FILES=' assets' USER_PERSISTENT_FILES=' assets/config.ini' APP_MAIN_EXE='Mable_PC' APP_MAIN_ICON='assets/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libcurl-gnutls.so.4 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libpthread.so.0 librt.so.1 libssl.so.1.0.0 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 libz.so.1' # Load common functions 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-machinarium.sh0000755000000000000000000000634714471751340014467 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Machinarium # send your bug reports to contact@dotslashplay.it ### script_version=20230119.1 GAME_ID='machinarium' GAME_NAME='Machinarium' # Archives ## GOG native Linux build, ## that is still sold but no longer officially supported. ARCHIVE_BASE_GOG_0='gog_machinarium_2.0.0.2.sh' ARCHIVE_BASE_GOG_0_MD5='4a66896935fbf29f4816e615748bb679' ARCHIVE_BASE_GOG_0_TYPE='mojosetup' ARCHIVE_BASE_GOG_0_SIZE='370000' ARCHIVE_BASE_GOG_0_VERSION='1.0-gog2.0.0.2' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/machinarium_collectors_edition' ## Humble Bundle native Linux build, ## that is no longer available for sale. ARCHIVE_BASE_HUMBLE_0='machinarium_20121106-ubuntu_i386.deb' ARCHIVE_BASE_HUMBLE_0_MD5='4f0ab314a75aad77a9c6dd92110f8a48' ARCHIVE_BASE_HUMBLE_0_SIZE='360000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0-humble1' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='opt/machinarium' CONTENT_GAME_BIN_FILES=' Machinarium' CONTENT_GAME_DATA_FILES=' 00 01 10 11' APP_MAIN_EXE='Machinarium' APP_MAIN_ICONS_LIST_GOG='APP_MAIN_ICON_GOG' APP_MAIN_ICON_GOG='../support/icon.png' APP_MAIN_ICONS_LIST_HUMBLE='APP_MAIN_ICON_HUMBLE_16 APP_MAIN_ICON_HUMBLE_32 APP_MAIN_ICON_HUMBLE_64' APP_MAIN_ICON_HUMBLE_16='../../usr/share/icons/hicolor/16x16/apps/machinarium.png' APP_MAIN_ICON_HUMBLE_32='../../usr/share/icons/hicolor/32x32/apps/machinarium.png' APP_MAIN_ICON_HUMBLE_64='../../usr/share/icons/hicolor/64x64/apps/machinarium.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libglib-2.0.so.0 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libnspr4.so libnss3.so libpango-1.0.so.0 libpangocairo-1.0.so.0 libplc4.so libplds4.so libpthread.so.0 libsmime3.so libssl3.so libstdc++.so.6 libX11.so.6 libXext.so.6 libXrender.so.1 libXt.so.6' # Load common functions target_version='2.19' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' APP_MAIN_ICONS_LIST=$(get_context_specific_value 'archive' 'APP_MAIN_ICONS_LIST') icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-man-o-war-corsair.sh0000755000000000000000000001157014471751340015422 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Man O' War: Corsair # send your bug reports to contact@dotslashplay.it ### script_version=20231011.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='man-o-war-corsair' GAME_NAME='Man Oʼ War: Corsair - Warhammer Naval Battles' ARCHIVE_BASE_1_NAME='setup_man_o_war_corsair_-_warhammer_naval_battles_1.4.4_(38991).exe' ARCHIVE_BASE_1_MD5='c0b70c63edcc3ca8d8209a9ccb7c9d9e' ARCHIVE_BASE_1_PART1_NAME='setup_man_o_war_corsair_-_warhammer_naval_battles_1.4.4_(38991)-1.bin' ARCHIVE_BASE_1_PART1_MD5='69c15c6e3b8238b585c8760327756ab7' ARCHIVE_BASE_1_PART2_NAME='setup_man_o_war_corsair_-_warhammer_naval_battles_1.4.4_(38991)-2.bin' ARCHIVE_BASE_1_PART2_MD5='31aa85d6f8c39625e0dfac46b82928b5' ARCHIVE_BASE_1_PART3_NAME='setup_man_o_war_corsair_-_warhammer_naval_battles_1.4.4_(38991)-3.bin' ARCHIVE_BASE_1_PART3_MD5='1676e6583b9331b9ba7ad029e4009a46' ARCHIVE_BASE_1_PART4_NAME='setup_man_o_war_corsair_-_warhammer_naval_battles_1.4.4_(38991)-4.bin' ARCHIVE_BASE_1_PART4_MD5='9c0637c0277adea7705ef713e924a7ac' ARCHIVE_BASE_1_SIZE='30000000' ARCHIVE_BASE_1_VERSION='1.4.4-gog38991' ARCHIVE_BASE_1_URL='https://www.gog.com/game/man_o_war_corsair' ARCHIVE_BASE_0_NAME='setup_man_o_war_corsair_-_warhammer_naval_battles_1.4.2_(29576).exe' ARCHIVE_BASE_0_MD5='296429ab49c28df62ff38235564e36e8' ARCHIVE_BASE_0_PART1_NAME='setup_man_o_war_corsair_-_warhammer_naval_battles_1.4.2_(29576)-1.bin' ARCHIVE_BASE_0_PART1_MD5='8c3b24d21c951f6ad9b7699eda024de1' ARCHIVE_BASE_0_PART2_NAME='setup_man_o_war_corsair_-_warhammer_naval_battles_1.4.2_(29576)-2.bin' ARCHIVE_BASE_0_PART2_MD5='516a671f6a45d9c03e29f13d51271a78' ARCHIVE_BASE_0_PART3_NAME='setup_man_o_war_corsair_-_warhammer_naval_battles_1.4.2_(29576)-3.bin' ARCHIVE_BASE_0_PART3_MD5='38c58a508879661063ca5e9bbea541ab' ARCHIVE_BASE_0_PART4_NAME='setup_man_o_war_corsair_-_warhammer_naval_battles_1.4.2_(29576)-4.bin' ARCHIVE_BASE_0_PART4_MD5='1f02de3d92681a080808446636116c6c' ARCHIVE_BASE_0_SIZE='30000000' ARCHIVE_BASE_0_VERSION='1.4.2-gog29576' UNITY3D_NAME='manowarcorsair' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MODELS_LAND_FILES=' mowdata/landmodels-*' CONTENT_GAME_MODELS_FILES=' mowdata/charactermodels-* mowdata/shipmodels-* mowdata/flyermodels* mowdata/seamonstermodels*' CONTENT_GAME_TERRAIN1_FILES=' mowdata/terrain-top* mowdata/terrain-mid*' CONTENT_GAME_TERRAIN2_FILES=' mowdata/terrain-bot* mowdata/terrainshaders*' CONTENT_GAME0_DATA_FILES=' mowdata' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Local Settings/Application Data/EvilTwinArtworks/ManOWarCorsair' ## The single quote in the key name must be escaped twice. WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\Evil Twin Artworks\Man O'"'\\''"' War: Corsair' APP_MAIN_OPTIONS='-force-opengl' PACKAGES_LIST='PKG_BIN PKG_MODELS_LAND PKG_MODELS PKG_TERRAIN1 PKG_TERRAIN2 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_MODELS_ID="${PKG_DATA_ID}-models" PKG_MODELS_DESCRIPTION="$PKG_DATA_DESCRIPTION - models" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_MODELS_ID" ## Ensure smooth upgrades from packages generated with pre-20231011.1 scripts. PKG_MODELS_PROVIDES=' man-o-war-corsair-models' PKG_MODELS_LAND_ID="${PKG_MODELS_ID}-land" PKG_MODELS_LAND_DESCRIPTION="$PKG_MODELS_DESCRIPTION - land" PKG_MODELS_DEPS="${PKG_MODELS_DEPS:-} $PKG_MODELS_LAND_ID" ## Ensure smooth upgrades from packages generated with pre-20231011.1 scripts. PKG_MODELS_LAND_PROVIDES=' man-o-war-corsair-models-land' PKG_TERRAIN_ID="${PKG_DATA_ID}-terrain" PKG_TERRAIN1_ID="${PKG_TERRAIN_ID}-1" PKG_TERRAIN2_ID="${PKG_TERRAIN_ID}-2" PKG_TERRAIN_DESCRIPTION='terrain' PKG_TERRAIN1_DESCRIPTION="$PKG_TERRAIN_DESCRIPTION - part 1" PKG_TERRAIN2_DESCRIPTION="$PKG_TERRAIN_DESCRIPTION - part 2" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_TERRAIN1_ID $PKG_TERRAIN2_ID" ## Ensure smooth upgrades from packages generated with pre-20231011.1 scripts. PKG_TERRAIN1_PROVIDES=' man-o-war-corsair-terrain-1' PKG_TERRAIN2_PROVIDES=' man-o-war-corsair-terrain-2' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data PKG='PKG_DATA' icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-maniac-mansion.sh0000755000000000000000000000615614471751340015062 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2020, macaron # 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. ### ### # Maniac Mansion # build native packages from the original installers # send your bug reports to vv221@dotslashplay.it ### script_version=20200209.1 # Set game-specific variables GAME_ID='maniac-mansion' GAME_NAME='Maniac Mansion' ARCHIVE_GOG='maniac_mansion_en_gog_3_17899.sh' ARCHIVE_GOG_URL='https://www.gog.com/game/maniac_mansion' ARCHIVE_GOG_MD5='508b5f4e9b399ded9140dddfc3679a7e' ARCHIVE_GOG_SIZE='89000' ARCHIVE_GOG_VERSION='1.0-gog17899' ARCHIVE_GOG_TYPE='mojosetup' ARCHIVE_DOC_MAIN_PATH='data/noarch/docs' ARCHIVE_DOC_MAIN_FILES='*.pdf *.txt' ARCHIVE_GAME_MAIN_PATH='data/noarch/data' ARCHIVE_GAME_MAIN_FILES='*.lfl' APP_MAIN_TYPE='scummvm' APP_MAIN_SCUMMID='maniac' APP_MAIN_ICON='data/noarch/support/icon.png' PACKAGES_LIST='PKG_MAIN' PKG_MAIN_DEPS='scummvm' # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" tolower "$PLAYIT_WORKDIR/gamedata" prepare_package_layout # Get icon icons_get_from_workdir 'APP_MAIN' rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-marble-age.sh0000755000000000000000000000652314471751340014162 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Marble Age # send your bug reports to contact@dotslashplay.it ### script_version=20211221.1 # Set game-specific variables GAME_ID='marble-age' GAME_NAME='Marble Age' ARCHIVE_BASE_0='marble_age_remastered_1_08_45107.sh' ARCHIVE_BASE_0_MD5='20b437b0204fbb0f88d0de65e8801b46' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='300000' ARCHIVE_BASE_0_VERSION='1.08-gog45107' ARCHIVE_BASE_0_URL='https://www.gog.com/game/marble_age_remastered' UNITY3D_NAME='Marble Age Remastered' CONTENT_PATH_DEFAULT='data/noarch/game' ARCHIVE_GAME_BIN_PATH="$CONTENT_PATH_DEFAULT" ARCHIVE_GAME_BIN_FILES=' Marble?Age?Remastered Marble?Age?Remastered_Data/MonoBleedingEdge UnityPlayer.so' ARCHIVE_GAME_DATA_PATH="$CONTENT_PATH_DEFAULT" ARCHIVE_GAME_DATA_FILES=' Marble?Age?Remastered_Data' APP_MAIN_EXE='Marble Age Remastered' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6" # Load common functions target_version='2.14' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-maries-room.sh0000755000000000000000000000636614471751340014425 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Marie’s Room # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210520.1 # Set game-specific variables GAME_ID='maries-room' GAME_NAME='Marieʼs Room' ARCHIVE_BASE_0='MariesRoom.zip' ARCHIVE_BASE_0_MD5='4c7375a2fcf5bdd49405f4ddd9ce5770' ARCHIVE_BASE_0_SIZE='1000000' ARCHIVE_BASE_0_VERSION='1.0-itch.2018.05.17' ARCHIVE_BASE_0_URL='https://kennyguillaume.itch.io/maries-room' ARCHIVE_GAME_BIN_PATH='MariesRoom/MariesRoom_Game_x64' ARCHIVE_GAME_BIN_FILES='Engine MariesRoom.exe' ARCHIVE_GAME_DATA_PATH='MariesRoom/MariesRoom_Game_x64' ARCHIVE_GAME_DATA_FILES='MariesRoom' APP_MAIN_TYPE='wine' APP_MAIN_EXE='MariesRoom.exe' APP_MAIN_ICON='MariesRoom.exe' PACKAGES_LIST='PKG_DATA PKG_BIN' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="${PKG_DATA_ID} wine" # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-mark-of-the-ninja-expansions.sh0000755000000000000000000000464114471751340017561 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Mark of the Ninja expansions: # - Special Edition # send your bug reports to contact@dotslashplay.it ### script_version=20230902.1 GAME_ID='mark-of-the-ninja' GAME_NAME='Mark of the Ninja' EXPANSION_ID='special-edition' EXPANSION_NAME='Special Edition' ## This Linux build is no longer available for sale from GOG, they now only sell a Windows build. ARCHIVE_BASE_0='gog_mark_of_the_ninja_special_edition_dlc_2.0.0.4.sh' ARCHIVE_BASE_0_MD5='bbce70b80932ec9c14fbedf0b6b33eb1' ARCHIVE_BASE_0_SIZE='250000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.4' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN32_FILES=' ninja-bin32' CONTENT_GAME_BIN64_FILES=' ninja-bin64' CONTENT_GAME_DATA_FILES=' dlc' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-${EXPANSION_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_PROVIDES=" $GAME_ID" PKG_BIN32_PROVIDES="$PKG_BIN_PROVIDES" PKG_BIN64_PROVIDES="$PKG_BIN_PROVIDES" PKG_BIN_DEPS="$PKG_DATA_ID ${GAME_ID}-libs ${GAME_ID}-data" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 libSDL-1.2.so.0 libstdc++.so.6' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.25' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-mark-of-the-ninja.sh0000755000000000000000000001030614471751340015367 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Mark of the Ninja # send your bug reports to contact@dotslashplay.it ### script_version=20230905.1 GAME_ID='mark-of-the-ninja' GAME_NAME='Mark of the Ninja' ## This Linux build is no longer available for sale from GOG, they now only sell a Windows build. ARCHIVE_BASE_GOG_0='gog_mark_of_the_ninja_2.0.0.4.sh' ARCHIVE_BASE_GOG_0_MD5='126ded567b38580f574478fd994e3728' ARCHIVE_BASE_GOG_0_TYPE='mojosetup' ARCHIVE_BASE_GOG_0_SIZE='2200000' ARCHIVE_BASE_GOG_0_VERSION='1.0-gog2.0.0.4' ## This game is no longer available for sale from Humble Store. ARCHIVE_BASE_HUMBLE_0='markoftheninja_linux38_1380755375.zip' ARCHIVE_BASE_HUMBLE_0_MD5='7871a48068ef43e93916325eedd6913e' ARCHIVE_BASE_HUMBLE_0_SIZE='2300000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0-humble130310' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='.' CONTENT_LIBS_LIBS32_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/bin/lib32" CONTENT_LIBS_LIBS32_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/bin/lib32" CONTENT_LIBS_LIBS32_FILES=' libfmodevent.so libfmodevent-4.44.14.so libfmodex.so libfmodex-4.44.14.so' CONTENT_LIBS_LIBS64_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/bin/lib64" CONTENT_LIBS_LIBS64_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/bin/lib64" CONTENT_LIBS_LIBS64_FILES=' libfmodevent64.so libfmodevent64-4.44.14.so libfmodex64.so libfmodex64-4.44.14.so' CONTENT_GAME_BIN32_FILES=' bin/ninja-bin32' CONTENT_GAME_BIN64_FILES=' bin/ninja-bin64' CONTENT_GAME_DATA_FILES=' data data-pc bin/*.xpm' CONTENT_DOC_DATA_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/bin" CONTENT_DOC_DATA_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/bin" CONTENT_DOC_DATA_FILES=' motn_readme.txt' APP_MAIN_EXE_BIN32='bin/ninja-bin32' APP_MAIN_EXE_BIN64='bin/ninja-bin64' APP_MAIN_ICON='bin/motn_icon.xpm' ## Run the game binary from its parent directory APP_MAIN_PRERUN='# Run the game binary from its parent directory cd "$(dirname "$APP_EXE")" APP_EXE=$(basename "$APP_EXE") ' ## Work around a rendering failure with sdl12-compat ## cf. https://github.com/libsdl-org/sdl12-compat/issues/315 APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Work around a rendering failure with sdl12-compat # cf. https://github.com/libsdl-org/sdl12-compat/issues/315 export SDL12COMPAT_OPENGL_SCALING=0 ' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_LIBS32 PKG_LIBS64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS32_ID="$PKG_LIBS_ID" PKG_LIBS64_ID="$PKG_LIBS_ID" PKG_LIBS32_ARCH='32' PKG_LIBS64_ARCH='64' PKG_LIBS_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 libstdc++.so.6' PKG_LIBS32_DEPENDENCIES_LIBRARIES="$PKG_LIBS_DEPENDENCIES_LIBRARIES" PKG_LIBS64_DEPENDENCIES_LIBRARIES="$PKG_LIBS_DEPENDENCIES_LIBRARIES" PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_LIBS_ID $PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 libSDL-1.2.so.0 libstdc++.so.6' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.25' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-master-of-orion-2.sh0000755000000000000000000000716514471751340015351 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Master of Orion 2 # send your bug reports to contact@dotslashplay.it ### script_version=20230103.1 GAME_ID='master-of-orion-2' GAME_NAME='Master of Orion Ⅱ: Battle at Antares' ARCHIVE_BASE_EN_0='gog_master_of_orion_2_2.0.0.6.sh' ARCHIVE_BASE_EN_0_MD5='51529fd6734bc12f1ac36fea5fc547f8' ARCHIVE_BASE_EN_0_TYPE='mojosetup' ARCHIVE_BASE_EN_0_SIZE='350000' ARCHIVE_BASE_EN_0_VERSION='1.31-gog2.0.0.6' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/master_of_orion_1_2' ARCHIVE_BASE_FR_0='gog_master_of_orion_2_french_2.0.0.6.sh' ARCHIVE_BASE_FR_0_MD5='06d643ee04387914738707d435e8f7a6' ARCHIVE_BASE_FR_0_TYPE='mojosetup' ARCHIVE_BASE_FR_0_SIZE='370000' ARCHIVE_BASE_FR_0_VERSION='1.31-gog2.0.0.6' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/master_of_orion_1_2' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_DOC_L10N_FILES=' *.TXT' CONTENT_GAME_L10N_FILES=' *.BAT *.COM *.DLL *.SET ANWINFIN.LBX CMBTSHP.LBX COUNCIL.LBX DIPLOMAT.LBX DIPLOMSF.LBX DIPLOMSG.LBX DIPLOMSI.LBX DIPLOMSS.LBX ESTRFREN.LBX ESTRGERM.LBX ESTRITAL.LBX ESTRPOLI.LBX ESTRSPAN.LBX EVENTMSF.LBX EVENTMSG.LBX EVENTMSI.LBX EVENTMSS.LBX FILEDATA.LBX FONTSF.LBX FONTSG.LBX FONTSI.LBX FONTSS.LBX FRECRDTS.LBX FRE_HELP.LBX FRESKLLS.LBX FRETECD.LBX GERCRDTS.LBX GER_HELP.LBX GERSKLLS.LBX GERTECD.LBX HELP.LBX HERODATF.LBX HERODATG.LBX HERODATI.LBX HERODATS.LBX HESTRNGS.LBX HFSTRNGS.LBX HGSTRNGS.LBX HISTRNGS.LBX HSSTRNGS.LBX IFONTS.LBX INSTALL.LBX ITACRDTS.LBX ITA_HELP.LBX ITASKLLS.LBX ITATECD.LBX LANGUAGE.INI LOSERFIN.LBX MAINFREN.LBX MAINGERM.LBX MAINITAL.LBX MAINSPAN.LBX ORION2.EXE ORION95.EXE RSTRING1.LBX RSTRING2.LBX RSTRING3.LBX RSTRING4.LBX RSTRINGS.LBX SIMTEX.LBX SPACRDTS.LBX SPA_HELP.LBX SPASKLLS.LBX SPATECD.LBX STREAMHD.LBX TANM_114.LBX WARNING.LBX' CONTENT_GAME_MAIN_FILES=' *.AD *.BNK *.CAT *.DIG *.EXE *.INI *.LBX *.LST *.MDI *.MT *.OPL' CONTENT_DOC_MAIN_PATH='data/noarch/docs' CONTENT_DOC_MAIN_FILES=' *.pdf' APP_MAIN_EXE='ORION2.EXE' APP_MAIN_ICON='../support/icon.png' USER_PERSISTENT_FILES=' MOX.SET SOUND.LBX *.INI *.GAM' PACKAGES_LIST='PKG_L10N PKG_MAIN' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_ID_EN="${PKG_L10N_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDE="$PKG_L10N_ID" PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' PKG_MAIN_DEPS="$PKG_L10N_ID dosbox" # Load common functions target_version='2.20' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" toupper . ) # Include game icons PKG='PKG_MAIN' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Enforce consistent usage of uppercase/lowercase package_path=$(package_path 'PKG_L10N') path_documentation=$(path_documentation) tolower "${package_path}${path_documentation}" # Write launchers PKG='PKG_MAIN' launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-mechanika.sh0000755000000000000000000000752514471751340014111 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=20230625.2 GAME_ID='mechanika' GAME_NAME='MechaNika' ARCHIVE_BASE_32BIT_0='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='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_SHIPPED PKG_BIN_SYSTEM PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ID="$GAME_ID" ## Using system-provided Java PKG_BIN_SYSTEM_ID="${PKG_BIN_ID}-bin-system" PKG_BIN_SYSTEM_PROVIDES=" $PKG_BIN_ID" PKG_BIN_SYSTEM_DEPS="$PKG_DATA_ID java" PKG_BIN_SYSTEM_DESCRIPTION='Using system-provided Java' ## Using shipped binaries PKG_BIN_SHIPPED_ARCH_32BIT='32' PKG_BIN_SHIPPED_ARCH_64BIT='64' PKG_BIN_SHIPPED_ID="${PKG_BIN_ID}-bin-shipped" PKG_BIN_SHIPPED_PROVIDES=" $PKG_BIN_ID" PKG_BIN_SHIPPED_DEPS="$PKG_DATA_ID" PKG_BIN_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' PKG_BIN_SYSTEM_DESCRIPTION='Using shipped binaries' # 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ARCHIVE_JAVA="${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/MechaNika.jar" ARCHIVE_JAVA_TYPE='zip' archive_extraction 'ARCHIVE_JAVA' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN_SHIPPED' 'PKG_BIN_SYSTEM'; do launchers_write done # Build packages write_metadata build_pkg # Print instructions case "${LANG%_*}" in ('fr') message='Utilisation des binaires fournis par %s :' bin_shipped='les développeurs' bin_system='le système' ;; ('en'|*) message='Using binaries provided by %s:' bin_shipped='the developers' bin_system='the system' ;; esac printf '\n' printf "$message" "$bin_shipped" print_instructions 'PKG_BIN_SHIPPED' 'PKG_DATA' printf "$message" "$bin_system" print_instructions 'PKG_BIN_SYSTEM' 'PKG_DATA' # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-melodys-escape.sh0000755000000000000000000001256214471751340015100 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Melody's Escape # send your bug reports to contact@dotslashplay.it ### script_version=20230209.1 GAME_ID='melodys-escape' GAME_NAME='Melodyʼs Escape' ARCHIVE_BASE_0='Melodys_Escape_Linux.zip' ARCHIVE_BASE_0_MD5='4d463482418c2d9917c56df3bbde6eea' ARCHIVE_BASE_0_SIZE='60000' ARCHIVE_BASE_0_VERSION='1.0-humble160601' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/melodys-escape' CONTENT_PATH_DEFAULT="Melody's Escape" CONTENT_GAME_MAIN_FILES=' BundledMusic Calibration Content Mods mono MelodysEscape.exe Bass.Net.Linux.dll FNA.dll FNA.dll.config MelodyEngine.dll MelodyReactor.dll tar-cs.dll' CONTENT_DOC_MAIN_FILES=' Licenses README.txt' APP_MAIN_EXE='MelodysEscape.exe' PKG_MAIN_DEPS='mono' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libopenal.so.1 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0' PKG_MAIN_DEPENDENCIES_MONO_LIBRARIES=' mscorlib.dll Mono.Posix.dll Mono.Security.dll System.dll System.Configuration.dll System.Core.dll System.Data.dll System.Drawing.dll System.Runtime.Serialization.dll System.Security.dll System.Xml.dll' # Patch shipped libraries, to ensure they work with system-provided Mono SCRIPT_DEPS="$SCRIPT_DEPS xdelta3" # Include shipped libraries that can not be replaced by system ones CONTENT_LIBS_LIBS32_PATH="${CONTENT_PATH_DEFAULT}/lib" CONTENT_LIBS_LIBS32_FILES=' libbass.so libbassmix.so libmojoshader.so' CONTENT_LIBS0_LIBS32_PATH="${CONTENT_PATH_DEFAULT}/BassPlugins" CONTENT_LIBS0_LIBS32_FILES=' libbassflac.so' CONTENT_LIBS_LIBS64_PATH='lib64' CONTENT_LIBS_LIBS64_FILES=' libbass.so libbassmix.so libmojoshader.so' CONTENT_LIBS0_LIBS64_PATH='BassPlugins' CONTENT_LIBS0_LIBS64_FILES=' libbassflac.so' PACKAGES_LIST='PKG_MAIN PKG_LIBS32 PKG_LIBS64' PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS32_ID="$PKG_LIBS_ID" PKG_LIBS64_ID="$PKG_LIBS_ID" PKG_LIBS32_ARCH='32' PKG_LIBS64_ARCH='64' PKG_LIBS_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libm.so.6 libpthread.so.0 librt.so.1' PKG_LIBS32_DEPENDENCIES_LIBRARIES="$PKG_LIBS_DEPENDENCIES_LIBRARIES" PKG_LIBS64_DEPENDENCIES_LIBRARIES="$PKG_LIBS_DEPENDENCIES_LIBRARIES" PKG_MAIN_DEPS="$PKG_MAIN_DEPS $PKG_LIBS_ID" # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Check for presence of required library patches ARCHIVE_REQUIRED_LIB_PATCHES='melodys-escape_lib-patches.tar.gz' ARCHIVE_REQUIRED_LIB_PATCHES_MD5='6aee21776f44df0d927babcddfa3c386' ARCHIVE_REQUIRED_LIB_PATCHES_URL='https://downloads.dotslashplay.it/games/melodys-escape/' archive_initialize_required \ 'ARCHIVE_LIB_PATCHES' \ 'ARCHIVE_REQUIRED_LIB_PATCHES' # Check for presence of optional 64-bit libraries ARCHIVE_OPTIONAL_LIB64='melodys-escape_lib64.tar.gz' ARCHIVE_OPTIONAL_LIB64_MD5='a77c6b3acd5910bd874a1ca4b7d0c53c' ARCHIVE_OPTIONAL_LIB64_URL='https://downloads.dotslashplay.it/games/melodys-escape/' archive_initialize_optional \ 'ARCHIVE_LIB64' \ 'ARCHIVE_OPTIONAL_LIB64' if [ -z "$ARCHIVE_LIB64" ]; then # Exclude 64-bit libraries from the packages to generate # if the archive has not been provided. PACKAGES_LIST='PKG_MAIN PKG_LIBS32' fi # Link libbassflac.so in the game data path # as the game engine fails to find it otherwise, # even if it is in LD_LIBRARY_PATH. file_name='libbassflac.so' file_source="$(path_libraries)/${file_name}" for file_destination in \ "$(package_path 'PKG_LIBS32')$(path_game_data)/BassPlugins/${file_name}" \ "$(package_path 'PKG_LIBS64')$(path_game_data)/BassPlugins/${file_name}" do mkdir --parents "$(dirname "$file_destination")" ln --symbolic "$file_source" "$file_destination" done # Extract game data archive_extraction 'SOURCE_ARCHIVE' archive_extraction 'ARCHIVE_LIB_PATCHES' if [ -n "$ARCHIVE_LIB64" ]; then archive_extraction 'ARCHIVE_LIB64' fi ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Patch shipped libraries, to ensure they work with system-provided Mono for file in 'MelodyReactor.dll' 'MelodysEscape.exe'; do patch="${PLAYIT_WORKDIR}/gamedata/${file}.delta" xdelta3 decode -f -s "$file" "$patch" "$file" rm "$patch" done ) # Include game icons ARCHIVE_OPTIONAL_ICONS='melodys-escape_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5='656fce13728d399e557fd72c3a6bc244' ARCHIVE_OPTIONAL_ICONS_URL='https://downloads.dotslashplay.it/games/melodys-escape/' CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 16x16 32x32 48x48 64x64 128x128 256x256' archive_initialize_optional \ 'ARCHIVE_ICONS' \ 'ARCHIVE_OPTIONAL_ICONS' if [ -n "$ARCHIVE_ICONS" ]; then archive_extraction 'ARCHIVE_ICONS' content_inclusion 'ICONS' 'PKG_MAIN' "$(path_icons)" fi # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-memoranda.sh0000755000000000000000000000465214471751340014132 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=20230818.1 GAME_ID='memoranda' GAME_NAME='Memoranda' ARCHIVE_BASE_0='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 Mesa-related startup crash APP_MAIN_PRERUN='# Work around Mesa-related startup crash # cf. https://gitlab.freedesktop.org/mesa/mesa/issues/1310 export radeonsi_sync_compile=true ' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libssl.so.1.0.0 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 libz.so.1' # Load common functions 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icons PKG='PKG_DATA' ## Build 512×512 icon from the 1024×1024 provided one APP_MAIN_ICONS_LIST="$(application_icons_list 'APP_MAIN') APP_MAIN_ICON_512" APP_MAIN_ICON_512='assets/icon_512.png' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" convert "$APP_MAIN_ICON" -resize 512 "$APP_MAIN_ICON_512" ) icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-mesmer.sh0000755000000000000000000000470614471751340013457 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Mesmer # send your bug reports to contact@dotslashplay.it ### script_version=20230427.1 GAME_ID='mesmer' GAME_NAME='Mesmer' ARCHIVE_BASE_0='mesmer_1_0_4_42663.sh' ARCHIVE_BASE_0_MD5='c0209877a3fd4748f9717578678499e5' ARCHIVE_BASE_0_SIZE='3900000' ARCHIVE_BASE_0_VERSION='1.0.4-gog42663' ARCHIVE_BASE_0_URL='https://www.gog.com/game/mesmer' UNITY3D_NAME='Mesmer' UNITY3D_PLUGINS=' libStandaloneFileBrowser.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}_Data/MonoBleedingEdge/x86 ${UNITY3D_NAME}.x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}_Data/MonoBleedingEdge/x86_64 ${UNITY3D_NAME}.x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-3.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-metal-slug-2.sh0000755000000000000000000000703314471751340014374 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2020, HS-157 # 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. ### ### # METAL SLUG 2 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20200930.1 # Set game-specific variables GAME_ID='metal-slug-2' GAME_NAME='METAL SLUG 2' ARCHIVE_HUMBLE='MetalSlug2_jan2016.sh' ARCHIVE_HUMBLE_TYPE='mojosetup' ARCHIVE_HUMBLE_URL='https://www.humblebundle.com/store/metal-slug-2' ARCHIVE_HUMBLE_MD5='c6ee0e16787b4ec5d497f96f9474ce80' ARCHIVE_HUMBLE_VERSION='1.0-humblejan2016' ARCHIVE_HUMBLE_SIZE='49000' ARCHIVE_GAME_BIN32_PATH_HUMBLE='data/x86' ARCHIVE_GAME_BIN32_FILES='NeogeoEmu.bin.x86 lib' ARCHIVE_GAME_BIN64_PATH_HUMBLE='data/x86_64' ARCHIVE_GAME_BIN64_FILES='NeogeoEmu.bin.x86_64 lib64' ARCHIVE_GAME_DATA_PATH_HUMBLE='data/noarch' ARCHIVE_GAME_DATA_FILES='*' APP_MAIN_TYPE='native' APP_MAIN_ICON='MetalSlug2.png' APP_MAIN_EXE_BIN32='NeogeoEmu.bin.x86' APP_MAIN_EXE_BIN64='NeogeoEmu.bin.x86_64' DATA_FILES='*.ini *.rml *.txt' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID glibc libstdc++ sdl2 glx alsa libudev1" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout rm --recursive "$PLAYIT_WORKDIR/gamedata" # Extract icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-metal-slug-3.sh0000755000000000000000000000614514471751340014400 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Metal Slug 3 # send your bug reports to contact@dotslashplay.it ### script_version=20230930.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='metal-slug-3' GAME_NAME='Metal Slug 3' ## This game used to be available DRM-free from humblebundle.com, ## but they dropped it in favour of a Windows-only Steam key. ARCHIVE_BASE_1='MetalSlug3_jan2016.sh' ARCHIVE_BASE_1_MD5='a6854b31e7757f447c9c05281b28f57a' ARCHIVE_BASE_1_SIZE='110000' ARCHIVE_BASE_1_VERSION='1.0-humble1601' ARCHIVE_BASE_0='MetalSlug3-Linux-2014-06-09.sh' ARCHIVE_BASE_0_MD5='a8a3aee4e3438d2d6d5bab23236e43a3' ARCHIVE_BASE_0_SIZE='83000' ARCHIVE_BASE_0_VERSION='1.0-humble140609' CONTENT_PATH_DEFAULT='data' CONTENT_LIBS_BIN32_PATH="${CONTENT_PATH_DEFAULT}/x86/lib" CONTENT_LIBS_BIN32_FILES=' libRocketControls.so.1 libRocketCore.so.1 libRocketDebugger.so.1' CONTENT_LIBS_BIN64_PATH="${CONTENT_PATH_DEFAULT}/x86_64/lib64" CONTENT_LIBS_BIN64_FILES=' libRocketControls.so.1 libRocketCore.so.1 libRocketDebugger.so.1' CONTENT_GAME_BIN32_PATH="${CONTENT_PATH_DEFAULT}/x86" CONTENT_GAME_BIN32_FILES=' NeogeoEmu.bin.x86' CONTENT_GAME_BIN64_PATH="${CONTENT_PATH_DEFAULT}/x86_64" CONTENT_GAME_BIN64_FILES=' NeogeoEmu.bin.x86_64' CONTENT_GAME_DATA_PATH="${CONTENT_PATH_DEFAULT}/noarch" CONTENT_GAME_DATA_FILES=' *.brm *.dat *.ini *.png *.rcss *.rml *.tga *.ttf *.txt *.xor *.wav *.zip' APP_MAIN_EXE_BIN32='NeogeoEmu.bin.x86' APP_MAIN_EXE_BIN32_0='MetalSlug3.bin.x86' APP_MAIN_EXE_BIN64='NeogeoEmu.bin.x86_64' APP_MAIN_EXE_BIN64_0='MetalSlug3.bin.x86_64' APP_MAIN_ICON='noarch/MetalSlug3.png' APP_MAIN_ICON_0='icon.png' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libfreetype.so.6 libgcc_s.so.1 libm.so.6 libpthread.so.0 libSDL2-2.0.so.0 libstdc++.so.6' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN32' launchers_write PKG='PKG_BIN64' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-mhakna-gramura-and-fairy-bell.sh0000755000000000000000000000740114471751340017641 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Mhakna Gramura and Fairy Bell # send your bug reports to contact@dotslashplay.it ### script_version=20230316.3 GAME_ID='mhakna-gramura-and-fairy-bell' GAME_NAME='Mhakna Gramura and Fairy Bell' ARCHIVE_BASE_0='mhakna_gramura_and_fairy_bell_gog_1_26679.sh' ARCHIVE_BASE_0_MD5='f54f86a4496b682ef7e7fb251d50c350' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='2000000' ARCHIVE_BASE_0_VERSION='1.0-gog.26679' ARCHIVE_BASE_0_URL='https://www.gog.com/game/mhakna_gramura_and_fairy_bell' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN32_PATH="${CONTENT_PATH_DEFAULT}/lib/linux-i686" CONTENT_LIBS_BIN32_FILES=' libavcodec.so.57 libavformat.so.57 libavresample.so.3 libavutil.so.55 libfreetype.so.6 libGLEW.so.1.7 libpng12.so.0 libpython2.7.so.1.0 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0 libSDL2_ttf-2.0.so.0 libswresample.so.2 libswscale.so.4' CONTENT_LIBS_BIN64_PATH="${CONTENT_PATH_DEFAULT}/lib/linux-x86_64" CONTENT_LIBS_BIN64_FILES=' libavcodec.so.57 libavformat.so.57 libavresample.so.3 libavutil.so.55 libfreetype.so.6 libGLEW.so.1.7 libpng12.so.0 libpython2.7.so.1.0 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0 libSDL2_ttf-2.0.so.0 libswresample.so.2 libswscale.so.4' CONTENT_GAME_BIN32_FILES=' lib/linux-i686/eggs lib/linux-i686/lib lib/linux-i686/fairybell lib/linux-i686/python lib/linux-i686/pythonw lib/linux-i686/zsync lib/linux-i686/zsyncmake' CONTENT_GAME_BIN64_FILES=' lib/linux-x86_64/eggs lib/linux-x86_64/lib lib/linux-x86_64/fairybell lib/linux-x86_64/python lib/linux-x86_64/pythonw lib/linux-x86_64/zsync lib/linux-x86_64/zsyncmake' CONTENT_GAME_DATA_FILES=' game renpy lib/pythonlib2.7 fairybell.py' APP_MAIN_EXE_BIN32='lib/linux-i686/fairybell' APP_MAIN_EXE_BIN64='lib/linux-x86_64/fairybell' APP_MAIN_OPTIONS='-EO fairybell.py' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libGL.so.1 libGLU.so.1 libjpeg.so.62 libm.so.6 libpthread.so.0 librt.so.1 libutil.so.1 libX11.so.6 libXext.so.6 libXi.so.6 libXmu.so.6 libz.so.1' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Use default Ren'Py icon # This will show as a generic icon if Ren'Py is not installed. launcher_desktop() { local application application="$1" cat <<- EOF [Desktop Entry] Version=1.0 Type=Application Name=$(application_name "$application") Icon=renpy $(launcher_desktop_exec "$application") Categories=$(application_category "$application") EOF } # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-mimo.sh0000755000000000000000000000721514471751340013126 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # Mimo # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20201020.2 # Set game-specific variables GAME_ID='mimo' GAME_NAME='Mimo' ARCHIVES_LIST=' ARCHIVE_ITCH_0' ARCHIVE_ITCH_0='MIMO_Linux.zip' ARCHIVE_ITCH_0_URL='https://bebadboi.itch.io/mimo' ARCHIVE_ITCH_0_MD5='41fb3512abe6df5eae803faa0d1484c8' ARCHIVE_ITCH_0_SIZE='300000' ARCHIVE_ITCH_0_VERSION='1.01-itch1' ARCHIVE_ITCH_0_TYPE='zip' ARCHIVE_GAME_BIN_PATH='MIMO_Linux' ARCHIVE_GAME_BIN_FILES='MIMO.x86_64 MIMO_Data/Mono*/x86_64 MIMO_Data/Plugins/x86_64 MIMO_Data/Managed' ARCHIVE_GAME_DATA_PATH='MIMO_Linux' ARCHIVE_GAME_DATA_FILES='MIMO_Data' DATA_DIRS='./logs' APP_MAIN_TYPE='native' APP_MAIN_PRERUN='# Work around Unity3D poor support for non-US locales export LANG=C' APP_MAIN_EXE='MIMO.x86_64' APP_MAIN_ICON='MIMO_Data/Resources/UnityPlayer.png' # Use a per-session dedicated file for logs # shellcheck disable=SC2016 APP_MAIN_OPTIONS='-logFile ./logs/$(date +%F-%R).log' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID glibc libstdc++ gtk2 freetype libgdk_pixbuf-2.0.so.0 libgobject-2.0.so.0 libglib-2.0.so.0" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" set_standard_permissions "$PLAYIT_WORKDIR/gamedata" prepare_package_layout # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-mind-path-to-thalamus.sh0000755000000000000000000000652614471751340016306 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # MIND: Path to Thalamus # build native packages from the original installers # send your bug reports to vv221@dotslashplay.it ### script_version=20190521.1 # Set game-specific variables GAME_ID='mind-path-to-thalamus' GAME_NAME='MIND: Path to thalamus' ARCHIVE_GOG='gog_mind_path_to_thalamus_enhanced_edition_2.1.0.4.sh' ARCHIVE_GOG_MD5='fbd4fe06a4f4d46236d84a95a9af8f47' ARCHIVE_GOG_VERSION='2016.06.17-gog2.1.0.4' ARCHIVE_GOG_SIZE='8000000' ARCHIVE_DOC_PATH='data/noarch/docs' ARCHIVE_DOC_FILES='*' ARCHIVE_GAME_BIN_PATH='data/noarch/game' ARCHIVE_GAME_BIN_FILES='Engine/Binaries Mind_Pathtothalamus/Binaries' ARCHIVE_GAME_DATA_PATH='data/noarch/game' ARCHIVE_GAME_DATA_FILES='Mind_Pathtothalamus Engine' APP_MAIN_TYPE='native' APP_MAIN_EXE='Mind_Pathtothalamus/Binaries/Linux/Mind_Pathtothalamus' APP_MAIN_ICON='data/noarch/support/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID glibc libstdc++ openal" # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_DATA' icons_get_from_workdir 'APP_MAIN' rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-minecraft-4k.sh0000755000000000000000000000454714471751340014456 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Minecraft 4K # send your bug reports to contact@dotslashplay.it ### script_version=20230623.2 GAME_ID='minecraft-4k' GAME_NAME='Minecraft 4K' ARCHIVE_BASE_0='4K.exe' ARCHIVE_BASE_0_MD5='c566f5be102e1e1afc153690e47173e5' ARCHIVE_BASE_0_EXTRACTOR='unzip' ARCHIVE_BASE_0_SIZE='20' ARCHIVE_BASE_0_VERSION='1.0-archiveorg180513' ARCHIVE_BASE_0_URL='https://archive.org/details/Minecraft4K' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES=' M.class' APP_MAIN_TYPE='java' APP_MAIN_EXE='M' PKG_MAIN_DEPS='java' # 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 . "$PLAYIT_LIB2" # The launcher target is not a .jar archive launcher_target_presence_check() { true ; } java_launcher_run() { local application application="$1" cat <<- 'EOF' # Run the game cd "$PATH_PREFIX" EOF # Set loading paths for libraries native_launcher_libraries application_prerun "$application" cat <<- 'EOF' ## Do not exit on application failure, ## to ensure post-run commands are run. set +o errexit ## Silence ShellCheck false-positive ## Double quote to prevent globbing and word splitting. # shellcheck disable=SC2086 java $JAVA_OPTIONS "$APP_EXE" $APP_OPTIONS "$@" game_exit_status=$? set -o errexit EOF application_postrun "$application" } # Extract game data ## Errors during the data extraction from the archive are expected, ## they should be ignored. archive_extraction 'SOURCE_ARCHIVE' 2>/dev/null || true # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-mini-metro.sh0000755000000000000000000000435014471751340014242 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2020 Alarig Le Lay set -o errexit ### # Mini Metro # send your bug reports to contact@dotslashplay.it ### script_version=20230726.2 GAME_ID='mini-metro' GAME_NAME='Mini Metro' ARCHIVE_BASE_1='MiniMetro-release-53-linux.tar.gz' ARCHIVE_BASE_1_MD5='67f52adb9cacd494bb79c76cfb36931d' ARCHIVE_BASE_1_SIZE='330000' ARCHIVE_BASE_1_VERSION='53-humble1' ARCHIVE_BASE_1_URL='https://www.humblebundle.com/store/mini-metro' ARCHIVE_BASE_0='MiniMetro-release-50a-linux.tar.gz' ARCHIVE_BASE_0_MD5='93577776ea002a6e0a8dc482486ff174' ARCHIVE_BASE_0_SIZE='320000' ARCHIVE_BASE_0_VERSION='50a-humble1' UNITY3D_NAME='Mini Metro' UNITY3D_PLUGINS=' libminimetrox.so' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME} ${UNITY3D_NAME}_Data/MonoBleedingEdge UnityPlayer.so" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_EXE="$UNITY3D_NAME" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-minit.sh0000755000000000000000000000407614471751340013307 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Minit # send your bug reports to contact@dotslashplay.it ### script_version=20230818.1 GAME_ID='minit' GAME_NAME='Minit' ARCHIVE_BASE_0='minit_linux.zip' ARCHIVE_BASE_0_MD5='9d27bfb55e24e0749637d6d97a8b3c71' ARCHIVE_BASE_0_SIZE='130000' ARCHIVE_BASE_0_VERSION='1.0.0-itch1' ARCHIVE_BASE_0_URL='https://devolverdigital.itch.io/minit' CONTENT_PATH_DEFAULT='minit' CONTENT_GAME_BIN_FILES=' runner' CONTENT_GAME_DATA_FILES=' assets' APP_MAIN_EXE='runner' APP_MAIN_ICON='assets/icon.png' ## Work around Mesa-related startup crash APP_MAIN_PRERUN='# Work around Mesa-related startup crash # cf. https://gitlab.freedesktop.org/mesa/mesa/issues/1310 export radeonsi_sync_compile=true ' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libssl.so.1.0.0 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 libz.so.1' # Load common functions 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-minute-of-islands.sh0000755000000000000000000000442014471751340015516 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Mopi set -o errexit ### # Minute of Islands # send your bug reports to contact@dotslashplay.it ### script_version=20230716.2 GAME_ID='minute-of-islands' GAME_NAME='Minute of Islands' ARCHIVE_BASE_0='setup_minute_of_islands_1.0_(64bit)_(46572).exe' ARCHIVE_BASE_0_MD5='637bf2569af75d362de916fdf4ed570a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_minute_of_islands_1.0_(64bit)_(46572)-1.bin' ARCHIVE_BASE_0_PART1_MD5='612f7cd620f9055a8f45b408b06a0a8e' ARCHIVE_BASE_0_SIZE='2400000' ARCHIVE_BASE_0_VERSION='1.0-gog46572' ARCHIVE_BASE_0_URL='https://www.gog.com/game/minute_of_islands' UNITY3D_NAME='minute of islands' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_data/plugins monobleedingedge *.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Studio Fizbin/Minute of Islands' APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files rm --recursive \ '__redist' \ 'app' \ 'commonappdata' \ 'tmp' ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-mirrors-edge.sh0000755000000000000000000000762314471751340014567 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Mirror's Edge # send your bug reports to contact@dotslashplay.it ### script_version=20230811.1 GAME_ID='mirrors-edge' GAME_NAME='Mirrorʼs Edge' ARCHIVE_BASE_2='setup_mirrors_edge_1.01_jpfix_(41238).exe' ARCHIVE_BASE_2_MD5='58078b7594476adf72d58dc01e024327' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_PART1='setup_mirrors_edge_1.01_jpfix_(41238)-1.bin' ARCHIVE_BASE_2_PART1_MD5='9a202aeca8eaa63d18c24fcdc62a7890' ARCHIVE_BASE_2_PART2='setup_mirrors_edge_1.01_jpfix_(41238)-2.bin' ARCHIVE_BASE_2_PART2_MD5='3ee19c143f7d85e5393fc51d705ed61c' ARCHIVE_BASE_2_PART3='setup_mirrors_edge_1.01_jpfix_(41238)-3.bin' ARCHIVE_BASE_2_PART3_MD5='2a961e5b6f2ce2ef42169c0a023e5c4c' ARCHIVE_BASE_2_SIZE='12000000' ARCHIVE_BASE_2_VERSION='1.01-gog41238' ARCHIVE_BASE_2_URL='https://www.gog.com/game/mirrors_edge' ARCHIVE_BASE_1='setup_mirrors_edge_1.01_(40566).exe' ARCHIVE_BASE_1_MD5='f0faffb76a2b46c3aca8342265a5f41b' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1='setup_mirrors_edge_1.01_(40566)-1.bin' ARCHIVE_BASE_1_PART1_MD5='cdfea6d6412de910eae6748eeb6af54e' ARCHIVE_BASE_1_PART2='setup_mirrors_edge_1.01_(40566)-2.bin' ARCHIVE_BASE_1_PART2_MD5='6b4a66c9ac31c8c2f4e647957c64370a' ARCHIVE_BASE_1_PART3='setup_mirrors_edge_1.01_(40566)-3.bin' ARCHIVE_BASE_1_PART3_MD5='8529e17c8faa54be07219106ffe00774' ARCHIVE_BASE_1_SIZE='12000000' ARCHIVE_BASE_1_VERSION='1.01-gog40566' ARCHIVE_BASE_0='setup_mirrors_edge_2.0.0.3.exe' ARCHIVE_BASE_0_MD5='89381d67169f5c6f8f300e172a64f99c' ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS='--gog' ARCHIVE_BASE_0_PART1='setup_mirrors_edge_2.0.0.3-1.bin' ARCHIVE_BASE_0_PART1_MD5='406b99108e1edd17fc60435d1f2c27f9' ARCHIVE_BASE_0_PART1_TYPE='rar' ARCHIVE_BASE_0_PART2='setup_mirrors_edge_2.0.0.3-2.bin' ARCHIVE_BASE_0_PART2_MD5='18f2bd62201904c8e98a4b805a90ab2d' ARCHIVE_BASE_0_PART2_TYPE='rar' ARCHIVE_BASE_0_SIZE='7700000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.3' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='game' CONTENT_GAME_BIN_FILES=' binaries engine' CONTENT_GAME_L10N_FILES=' tdgame/localization tdgame/cookedpc/audio/??? tdgame/cookedpc/startup_???.upk tdgame/cookedpc/ts_loc_???.upk tdgame/cookedpc/ui/ui_fonts_final_???.upk tdgame/cookedpc/maps/sp??/*_loc_???.upk' CONTENT_GAME_MAPS_FILES=' tdgame/cookedpc/maps' CONTENT_GAME_DATA_FILES=' me_icon.ico tdgame' USER_PERSISTENT_DIRECTORIES=' tdgame/config tdgame/savefiles' APP_WINETRICKS='physx' APP_MAIN_TYPE='wine' APP_MAIN_EXE='binaries/mirrorsedge.exe' APP_MAIN_ICON='me_icon.ico' PACKAGES_LIST='PKG_BIN PKG_L10N PKG_MAPS PKG_DATA' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_DESCRIPTION='localizations' PKG_MAPS_ID="${GAME_ID}-maps" PKG_MAPS_DESCRIPTION='maps' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_L10N_ID $PKG_MAPS_ID $PKG_DATA_ID" # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icon PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-mobius.sh0000755000000000000000000000755714471751340013474 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Mobius # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210518.3 # Set game-specific variables GAME_ID='mobius' GAME_NAME='Mobius' ARCHIVE_BASE_0='Mobius v1.1.zip' ARCHIVE_BASE_0_MD5='d1d9ddf376bddb431f7d11d21b2de6e7' ARCHIVE_BASE_0_SIZE='70000' ARCHIVE_BASE_0_VERSION='1.0-itch.2019.02.17' ARCHIVE_BASE_0_URL='https://papercookies.itch.io/mobius' ARCHIVE_GAME_BIN_PATH='Mobius v1.1' ARCHIVE_GAME_BIN_FILES='Mobius.exe UnityPlayer.dll Mono UnityCrashHandler64.exe' ARCHIVE_GAME_DATA_PATH='Mobius v1.1' ARCHIVE_GAME_DATA_FILES='Mobius_Data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='Mobius.exe' APP_MAIN_ICON='Mobius.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="${PKG_DATA_ID} wine" # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" set_standard_permissions "${PLAYIT_WORKDIR}/gamedata" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Use persistent storage for game progress and settings REGISTRY_KEY='HKEY_CURRENT_USER\Software\Adam Pype\Mobius' REGISTRY_DUMP='registry-dumps/persistent.reg' CONFIG_DIRS="${CONFIG_DIRS} ./$(dirname "$REGISTRY_DUMP")" APP_MAIN_PRERUN="$APP_MAIN_PRERUN # Set path for persistent dump of registry keys REGISTRY_KEY='$REGISTRY_KEY' REGISTRY_DUMP='$REGISTRY_DUMP'" APP_MAIN_POSTRUN="$APP_MAIN_POSTRUN"' # Dump registry keys wine regedit.exe -E "$REGISTRY_DUMP" "$REGISTRY_KEY"' APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Load dump of registry keys if [ -e "$REGISTRY_DUMP" ]; then wine regedit.exe "$REGISTRY_DUMP" fi' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-momodora-reverie-under-the-moonlight.sh0000755000000000000000000000526114471751340021327 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # Momodora: Reverie Under the Moonlight # send your bug reports to contact@dotslashplay.it ### script_version=20230818.1 GAME_ID='momodora-reverie-under-the-moonlight' GAME_NAME='Momodora: Reverie Under the Moonlight' ARCHIVE_BASE_2='momodora_reverie_under_the_moonlight_1_063_43451.sh' ARCHIVE_BASE_2_MD5='b10b3d929d6ccac6249581cefcc43285' ARCHIVE_BASE_2_SIZE='330000' ARCHIVE_BASE_2_VERSION='1.063-gog43451' ARCHIVE_BASE_2_URL='https://www.gog.com/game/momodora_reverie_under_the_moonlight' ARCHIVE_BASE_1='momodora_reverie_under_the_moonlight_1_062_24682.sh' ARCHIVE_BASE_1_MD5='9da233f084d0a86e4068ca90c89e4f05' ARCHIVE_BASE_1_SIZE='330000' ARCHIVE_BASE_1_VERSION='1.062-gog24682' ARCHIVE_BASE_0='momodora_reverie_under_the_moonlight_en_20180418_20149.sh' ARCHIVE_BASE_0_MD5='5ec0d0e8475ced69fbaf3881652d78c1' ARCHIVE_BASE_0_SIZE='330000' ARCHIVE_BASE_0_VERSION='1.02a-gog20149' CONTENT_PATH_DEFAULT='data/noarch/game/GameFiles' CONTENT_GAME_BIN_FILES=' MomodoraRUtM' CONTENT_GAME_DATA_FILES=' assets' CONTENT_DOC_DATA_PATH='data/noarch/game' CONTENT_DOC_DATA_FILES=' Installation Notes.pdf Update.txt' USER_PERSISTENT_FILES=' assets/*.ini' APP_MAIN_PRERUN='export LANG=C' APP_MAIN_EXE='MomodoraRUtM' APP_MAIN_ICON='assets/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libcurl.so.4+CURL_OPENSSL_3 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libssl.so.1.0.0 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 libz.so.1' # Load common functions 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-mon-cuties-for-all.sh0000755000000000000000000000765414471751340015611 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # Mon-cuties for All # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20200925.1 # Set game-specific variables GAME_ID='mon-cuties-for-all' GAME_NAME='Mon-cuties for All' ARCHIVES_LIST=' ARCHIVE_ITCH_0' ARCHIVE_ITCH_0='Mon-cuties-0.5-pc.zip' ARCHIVE_ITCH_0_MD5='5100ee55608ea481ee820e12f6bda4c9' ARCHIVE_ITCH_0_URL='https://reineworks.itch.io/moncuties-for-all' ARCHIVE_ITCH_0_SIZE='440000' ARCHIVE_ITCH_0_VERSION='0.5-itch1' ARCHIVE_ITCH_0_TYPE='zip' ARCHIVE_DOC_DATA_PATH='Mon-cuties-0.5-pc' ARCHIVE_DOC_DATA_FILES='README.html' ARCHIVE_GAME_BIN32_PATH='Mon-cuties-0.5-pc' ARCHIVE_GAME_BIN32_FILES='lib/linux-i686 Mon-cuties.sh' ARCHIVE_GAME_BIN64_PATH='Mon-cuties-0.5-pc' ARCHIVE_GAME_BIN64_FILES='lib/linux-x86_64' ARCHIVE_GAME_DATA_PATH='Mon-cuties-0.5-pc' ARCHIVE_GAME_DATA_FILES='lib/pythonlib2.7 game Mon-cuties.py renpy' DATA_DIRS='game/saves' APP_MAIN_TYPE='native' APP_MAIN_EXE='Mon-cuties.sh' APP_MAIN_ICON='Mon-cuties-0.5-pc/Mon-cuties.exe' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID glibc libstdc++" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Copy launching script between the binaries packages LAUNCHER_SOURCE="${PKG_BIN32_PATH}${PATH_GAME}/$APP_MAIN_EXE" LAUNCHER_DESTINATION="${PKG_BIN64_PATH}${PATH_GAME}/$APP_MAIN_EXE" mkdir --parents "$(dirname "$LAUNCHER_DESTINATION")" cp "$LAUNCHER_SOURCE" "$LAUNCHER_DESTINATION" # Get icon PKG='PKG_DATA' icons_get_from_workdir 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-monad.sh0000755000000000000000000000620514471751340013261 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Monad # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210411.2 # Set game-specific variables GAME_ID='monad' GAME_NAME='Monad' ARCHIVES_LIST=' ARCHIVE_BASE_0' ARCHIVE_BASE_0='monad-win64.zip' ARCHIVE_BASE_0_MD5='43f7b632cbd1d622859305b4b7d4839e' ARCHIVE_BASE_0_SIZE='15000' ARCHIVE_BASE_0_VERSION='1.0-itch.2019.07.31' ARCHIVE_BASE_0_URL='https://shinyogre.itch.io/monad' ARCHIVE_DOC_MAIN_PATH='monad-win' ARCHIVE_DOC_MAIN_FILES='license.txt' ARCHIVE_GAME_MAIN_PATH='monad-win' ARCHIVE_GAME_MAIN_FILES='*.dll monad.exe game.ico' APP_MAIN_TYPE='wine' APP_MAIN_EXE='monad.exe' APP_MAIN_ICON='game.ico' PACKAGES_LIST='PKG_MAIN' PKG_MAIN_ARCH='64' PKG_MAIN_DEPS='wine' # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" set_standard_permissions "$PLAYIT_WORKDIR/gamedata" prepare_package_layout # Get icon icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-monster-prom.sh0000755000000000000000000001151214471751340014622 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Monster Prom # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220331.3 # Set game-specific variables GAME_ID='monster-prom' GAME_NAME='Monster Prom' ARCHIVE_BASE_11='monster_prom_6_4b_53339.sh' ARCHIVE_BASE_11_MD5='27e03a4921ee67aa1284e9de2c5d2160' ARCHIVE_BASE_11_TYPE='mojosetup' ARCHIVE_BASE_11_SIZE='3100000' ARCHIVE_BASE_11_VERSION='6.4b-gog53339' ARCHIVE_BASE_11_URL='https://www.gog.com/game/monster_prom' ARCHIVE_BASE_10='monster_prom_5_16_45016.sh' ARCHIVE_BASE_10_MD5='58e9029453111916107341867d2c8327' ARCHIVE_BASE_10_TYPE='mojosetup' ARCHIVE_BASE_10_SIZE='3000000' ARCHIVE_BASE_10_VERSION='5.16-gog45016' ARCHIVE_BASE_9='monster_prom_5_7_42255.sh' ARCHIVE_BASE_9_MD5='59a60a6941773d48cca441501507209d' ARCHIVE_BASE_9_TYPE='mojosetup' ARCHIVE_BASE_9_SIZE='2500000' ARCHIVE_BASE_9_VERSION='5.7-gog42255' ARCHIVE_BASE_8='monster_prom_4_80_36450.sh' ARCHIVE_BASE_8_MD5='5847214b0bcf816d03e165a16d0c19c4' ARCHIVE_BASE_8_TYPE='mojosetup' ARCHIVE_BASE_8_SIZE='2400000' ARCHIVE_BASE_8_VERSION='4.80-gog36450' ARCHIVE_BASE_7='monster_prom_4_79_36279.sh' ARCHIVE_BASE_7_MD5='c1d893075a21af380031c953e856bd7c' ARCHIVE_BASE_7_TYPE='mojosetup' ARCHIVE_BASE_7_SIZE='2400000' ARCHIVE_BASE_7_VERSION='4.79-gog36279' ARCHIVE_BASE_6='monster_prom_4_77_36137.sh' ARCHIVE_BASE_6_MD5='87a05cfec3a314c4a6ea1047154958cf' ARCHIVE_BASE_6_TYPE='mojosetup' ARCHIVE_BASE_6_SIZE='2400000' ARCHIVE_BASE_6_VERSION='4.77-gog36137' ARCHIVE_BASE_5='monster_prom_4_68_35225.sh' ARCHIVE_BASE_5_MD5='c48257dadd81ac089b10567733beea48' ARCHIVE_BASE_5_TYPE='mojosetup' ARCHIVE_BASE_5_SIZE='2200000' ARCHIVE_BASE_5_VERSION='4.68-gog35225' ARCHIVE_BASE_4='monster_prom_4_61_33782.sh' ARCHIVE_BASE_4_MD5='0ed680d8cf93810c80f2c2f02ce16ae6' ARCHIVE_BASE_4_TYPE='mojosetup' ARCHIVE_BASE_4_SIZE='2200000' ARCHIVE_BASE_4_VERSION='4.61-gog33782' ARCHIVE_BASE_3='monster_prom_4_57_33526.sh' ARCHIVE_BASE_3_MD5='62a6e7d2bf6dc9ede39ec014cd73aaf4' ARCHIVE_BASE_3_TYPE='mojosetup' ARCHIVE_BASE_3_SIZE='2200000' ARCHIVE_BASE_3_VERSION='4.57-gog33526' ARCHIVE_BASE_2='monster_prom_4_44_30880.sh' ARCHIVE_BASE_2_MD5='feea2789e951c992e714a0d01afb7348' ARCHIVE_BASE_2_TYPE='mojosetup' ARCHIVE_BASE_2_SIZE='2000000' ARCHIVE_BASE_2_VERSION='4.44-gog30880' ARCHIVE_BASE_1='monster_prom_4_38b_30736.sh' ARCHIVE_BASE_1_MD5='4dc9b48a90220ecc0fcd91e44f640320' ARCHIVE_BASE_1_TYPE='mojosetup' ARCHIVE_BASE_1_SIZE='2000000' ARCHIVE_BASE_1_VERSION='4.38b-gog30736' ARCHIVE_BASE_0='monster_prom_2_44_26055.sh' ARCHIVE_BASE_0_MD5='c558e2ba0540ba6651a35a3a5e2a146b' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='1400000' ARCHIVE_BASE_0_VERSION='2.44-gog26055' UNITY3D_NAME='MonsterProm' CONTENT_PATH_DEFAULT='data/noarch/game' ARCHIVE_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86" ARCHIVE_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data UserData" DATA_DIRS='./UserData' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID libxrandr alsa libc.so.6 libstdc++.so.6 libGL.so.1 libX11.so.6 libgtk-x11-2.0.so.0 libgdk_pixbuf-2.0.so.0 libgobject-2.0.so.0 libglib-2.0.so.0" PKG_BIN32_DEPS_ARCH='lib32-libxext lib32-gtk3' PKG_BIN32_DEPS_DEB='libxext6, libgtk-3-0' PKG_BIN32_DEPS_GENTOO='x11-libs/libXext[abi_x86_32] x11-libs/gtk+:3[abi_x86_32]' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPS_ARCH='libxext gtk3' PKG_BIN64_DEPS_DEB="$PKG_BIN32_DEPS_DEB" PKG_BIN64_DEPS_GENTOO='x11-libs/libXext x11-libs/gtk+:3' # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-monster-sanctuary.sh0000755000000000000000000001010114471751340015647 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # Monster Sanctuary # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20201129.1 # Set game-specific variables GAME_ID='monster-sanctuary' GAME_NAME='Monster Sanctuary' ARCHIVES_LIST=' ARCHIVE_ITCH_0' ARCHIVE_ITCH_0='Monster Sanctuary v0_2_8 Linux.zip' ARCHIVE_ITCH_0_URL='https://sersch.itch.io/monster-sanctuary' ARCHIVE_ITCH_0_MD5='5f0712a8799d24c357769afa0faa06ae' ARCHIVE_ITCH_0_SIZE='150000' ARCHIVE_ITCH_0_VERSION='0.2.8-itch' ARCHIVE_ITCH_0_TYPE='zip' ARCHIVE_GAME_BIN32_PATH='Monster Sanctuary v0_2_8 Linux' ARCHIVE_GAME_BIN32_FILES='Monster?Sanctuary.x86 Monster?Sanctuary_Data/Mono/x86 Monster?Sanctuary_Data/Plugins/x86' ARCHIVE_GAME_BIN64_PATH='Monster Sanctuary v0_2_8 Linux' ARCHIVE_GAME_BIN64_FILES='Monster?Sanctuary.x86_64 Monster?Sanctuary_Data/Mono/x86_64 Monster?Sanctuary_Data/Plugins/x86_64' ARCHIVE_GAME_DATA_PATH='Monster Sanctuary v0_2_8 Linux' ARCHIVE_GAME_DATA_FILES='Monster?Sanctuary_Data' DATA_DIRS='./logs' APP_MAIN_TYPE='native' APP_MAIN_PRERUN='# Work around Unity3D poor support for non-US locales export LANG=C' APP_MAIN_EXE_BIN32='Monster Sanctuary.x86' APP_MAIN_EXE_BIN64='Monster Sanctuary.x86_64' APP_MAIN_ICON='Monster Sanctuary_Data/Resources/UnityPlayer.png' # Use a per-session dedicated file for logs # shellcheck disable=SC2016 APP_MAIN_OPTIONS='-logFile ./logs/$(date +%F-%R).log' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID glibc libstdc++ gtk2 libgdk_pixbuf-2.0.so.0 libgobject-2.0.so.0 libglib-2.0.so.0" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-monstrata-fracture.sh0000755000000000000000000000706714471751340016013 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Monstrata Fracture # send your bug reports to contact@dotslashplay.it ### script_version=20231127.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='monstrata-fracture' GAME_NAME='Monstrata Fracture' ARCHIVE_BASE_1_NAME='monstrata-fracture-win-linux.zip' ARCHIVE_BASE_1_MD5='9839d978298251f296febd5bc9a9b550' ARCHIVE_BASE_1_SIZE='250000' ARCHIVE_BASE_1_VERSION='1.2.11-itch1' ARCHIVE_BASE_1_URL='https://astralore.itch.io/monstrata-fracture' ARCHIVE_BASE_0_NAME='monstrata-fracture-win-osx-linux.zip' ARCHIVE_BASE_0_MD5='7fa34744e2ff3ad7b745909ebfea51fc' ARCHIVE_BASE_0_SIZE='270000' ARCHIVE_BASE_0_VERSION='1.2.11-itch1' CONTENT_PATH_DEFAULT_1='Monstrata-1.2.11-pc' CONTENT_PATH_DEFAULT_0='Monstrata-1.2.11-market' CONTENT_LIBS_BIN_FILES=' libavcodec.so.57 libavformat.so.57 libavresample.so.3 libavutil.so.55 libGLEW.so.1.7 libpython2.7.so.1.0 libswresample.so.2 libswscale.so.4' CONTENT_LIBS_BIN32_PATH_1="${CONTENT_PATH_DEFAULT_1}/lib/linux-x86" CONTENT_LIBS_BIN32_PATH_0="${CONTENT_PATH_DEFAULT_0}/lib/linux-x86" CONTENT_LIBS_BIN64_PATH_1="${CONTENT_PATH_DEFAULT_1}/lib/linux-x86_64" CONTENT_LIBS_BIN64_PATH_0="${CONTENT_PATH_DEFAULT_0}/lib/linux-x86_64" CONTENT_LIBS_BIN32_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_LIBS_BIN64_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_GAME_BIN32_FILES=' lib/linux-i686/eggs lib/linux-i686/lib lib/linux-i686/Monstrata lib/linux-i686/python lib/linux-i686/pythonw lib/linux-i686/zsync lib/linux-i686/zsyncmake' CONTENT_GAME_BIN64_FILES=' lib/linux-x86_64/eggs lib/linux-x86_64/lib lib/linux-x86_64/Monstrata lib/linux-x86_64/python lib/linux-x86_64/pythonw lib/linux-x86_64/zsync lib/linux-x86_64/zsyncmake' CONTENT_GAME_DATA_FILES=' game renpy lib/pythonlib2.7 Monstrata.py' CONTENT_DOC_DATA_FILES=' credits.txt' APP_MAIN_EXE_BIN64='lib/linux-x86_64/Monstrata' APP_MAIN_EXE_BIN32='lib/linux-i686/Monstrata' APP_MAIN_OPTIONS='-EO Monstrata.py' APP_MAIN_ICON='Monstrata.exe' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libGL.so.1 libGLU.so.1 libm.so.6 libpng12.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 libutil.so.1 libX11.so.6 libXext.so.6 libXi.so.6 libXmu.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN32' launchers_write set_current_package 'PKG_BIN64' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-moon-hunters.sh0000755000000000000000000000432014471751340014615 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Moon Hunters # send your bug reports to contact@dotslashplay.it ### script_version=20231109.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='moon-hunters' GAME_NAME='Moon Hunters' ARCHIVE_BASE_0_NAME='MoonHunters.DRMFree.Linux.2.0.3483.zip' ARCHIVE_BASE_0_MD5='ce446f42f52e8ecc3bc0d7f174d514e6' ARCHIVE_BASE_0_SIZE='1900000' ARCHIVE_BASE_0_VERSION='2.0.3483-humble171230' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/moon-hunters' UNITY3D_NAME='MoonHunters' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='.' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' launchers_write set_current_package 'PKG_BIN32' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-morphopolis.sh0000755000000000000000000000507214471751340014537 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Morphopolis # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220701.1 GAME_ID='morphopolis' GAME_NAME='Morphopolis' ARCHIVE_BASE_0='setup_morphopolis_1.0_(22453).exe' ARCHIVE_BASE_0_MD5='325f1bbbcc1c7a657530d70db9f1bb1a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1200000' ARCHIVE_BASE_0_VERSION='1.0-gog22453' ARCHIVE_BASE_0_URL='https://www.gog.com/game/morphopolis' CONTENT_PATH_DEFAULT='.' ARCHIVE_GAME_BIN_FILES=' irrklang.dll project.exe app.config.txt app.icf' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES=' anims *.xml font sounds textures' APP_MAIN_TYPE='wine' APP_MAIN_EXE='project.exe' APP_MAIN_ICON='app/goggame-1559432711.ico' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Use persistent storage for user data APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' saves:users/$(id -un)/Application Data/Morphopolis' DATA_DIRS="$DATA_DIRS ./saves" CONFIG_FILES='./app.config.txt' # icotool is used for icon .ico → .png conversion SCRIPT_DEPS="$SCRIPT_DEPS icotool" # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Work around "insufficient image data" issue with convert from imagemagick icon_extract_png_from_ico() { local source_file destination_directory source_file="$1" destination_directory="$2" icotool --extract --output="$destination_directory" "$source_file" 2>/dev/null } # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Include game icon PKG='PKG_DATA' icons_get_from_workdir 'APP_MAIN' # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-mortal-kombat-1.sh0000755000000000000000000000622014471751340015067 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # 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. ### ### # Mortal Kombat # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210328.2 # Set game-specific variables GAME_ID='mortal-kombat-1' GAME_NAME='Mortal Kombat' ARCHIVES_LIST=' ARCHIVE_GOG_0' ARCHIVE_GOG_0='setup_mortal_kombat_2.0.0.2.exe' ARCHIVE_GOG_0_MD5='c4b310a87a7fc021c424e550e979e018' ARCHIVE_GOG_0_TYPE='innosetup' ARCHIVE_GOG_0_VERSION='1.0-gog2.0.0.2' ARCHIVE_GOG_0_SIZE='37000' ARCHIVE_GOG_0_URL='https://www.gog.com/game/mortal_kombat_123' ARCHIVE_GAME_MAIN_PATH='app/mk1' ARCHIVE_GAME_MAIN_FILES='graphics sfx *.bat *.dig *.dat *.drv *.exe *.gra *.ini *.lst *.mk1 *.pif' CONFIG_FILES='./*.ini' DATA_FILES='./cmos.mk1' APP_MAIN_TYPE='dosbox' APP_MAIN_EXE='mk1.exe' APP_MAIN_ICON='app/goggame-1207667043.ico' PACKAGES_LIST='PKG_MAIN' PKG_MAIN_DEPS='dosbox' # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Extract icons icons_get_from_workdir 'APP_MAIN' # Clean up temporary files rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-mortal-kombat-2.sh0000755000000000000000000000627714471751340015104 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # 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. ### ### # Mortal Kombat # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210329.1 # Set game-specific variables GAME_ID='mortal-kombat-2' GAME_NAME='Mortal Kombat Ⅱ' ARCHIVES_LIST=' ARCHIVE_GOG_0' ARCHIVE_GOG_0='setup_mortal_kombat2_2.0.0.2.exe' ARCHIVE_GOG_0_MD5='fd66922a3c5551077020ba6df2b2446f' ARCHIVE_GOG_0_TYPE='innosetup' ARCHIVE_GOG_0_VERSION='1.0-gog2.0.0.2' ARCHIVE_GOG_0_SIZE='38000' ARCHIVE_GOG_0_URL='https://www.gog.com/game/mortal_kombat_123' ARCHIVE_DOC_MAIN_PATH='app/mk2' ARCHIVE_DOC_MAIN_FILES='readme.txt' ARCHIVE_GAME_MAIN_PATH='app/mk2' ARCHIVE_GAME_MAIN_FILES='fx sound cmos *.bat *.bin *.drv *.exe *.gra *.ini' CONFIG_FILES='./*.ini' DATA_FILES='./cmos' APP_MAIN_TYPE='dosbox' APP_MAIN_EXE='mk2.exe' APP_MAIN_ICON='app/goggame-1207667053.ico' PACKAGES_LIST='PKG_MAIN' PKG_MAIN_DEPS='dosbox' # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Extract icons icons_get_from_workdir 'APP_MAIN' # Clean up temporary files rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-mortal-kombat-3.sh0000755000000000000000000000704214471751340015074 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # 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. ### ### # Mortal Kombat 3 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210329.3 # Set game-specific variables GAME_ID='mortal-kombat-3' GAME_NAME='Mortal Kombat Ⅲ' ARCHIVES_LIST=' ARCHIVE_GOG_0' ARCHIVE_GOG_0='setup_mortal_kombat3_2.0.0.2.exe' ARCHIVE_GOG_0_MD5='e9703877b5bd2dfde5b2d65b8586aa6d' ARCHIVE_GOG_0_TYPE='innosetup' ARCHIVE_GOG_0_VERSION='1.0-gog2.0.0.2' ARCHIVE_GOG_0_SIZE='87000' ARCHIVE_GOG_0_URL='https://www.gog.com/game/mortal_kombat_123' ARCHIVE_GAME_MAIN_PATH='app/mk3' ARCHIVE_GAME_MAIN_FILES='drivers image *.asg *.bat *.dat *.exe *.ftr *.ini *.mk3' CONFIG_FILES='./*.ini' DATA_FILES='./*.dat' GAME_IMAGE='image/mk3.cue' APP_MAIN_TYPE='dosbox' APP_MAIN_EXE='mk3.exe' APP_MAIN_ICON='app/goggame-1207667063.ico' PACKAGES_LIST='PKG_MAIN' PKG_MAIN_DEPS='dosbox' # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Extract icons icons_get_from_workdir 'APP_MAIN' # Clean up temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Ensure case consistency between the disk image table of contents and the actual filenames DISK_IMAGE="${PKG_MAIN_PATH}${PATH_GAME}/${GAME_IMAGE}" pattern='MK3\.GOG' replacement='mk3.gog' expression="s/${pattern}/${replacement}/" pattern='Track' replacement='track' expression="${expression};s/${pattern}/${replacement}/g" sed --in-place --expression="$expression" "$DISK_IMAGE" # Write launchers launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-mousecraft.sh0000755000000000000000000000513514471751340014334 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # MouseCraft # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220630.2 GAME_ID='mousecraft' GAME_NAME='MouseCraft' ARCHIVE_BASE_0='gog_mousecraft_2.1.0.7.sh' ARCHIVE_BASE_0_MD5='5d99353d6ef0db693cc3a492cfb8ae4c' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='870000' ARCHIVE_BASE_0_VERSION='1.20-gog2.1.0.7' ARCHIVE_BASE_0_URL='https://www.gog.com/game/mousecraft' UNITY3D_NAME='MouseCraft' CONTENT_PATH_DEFAULT='data/noarch/game' ARCHIVE_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86" ARCHIVE_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32="${UNITY3D_NAME}.x86" APP_MAIN_EXE_BIN64="${UNITY3D_NAME}.x86_64" APP_MAIN_ICON="${UNITY3D_NAME}_Data/Resources/UnityPlayer.png" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6 libGLU.so.1" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Use a dedicated log file for the current game session APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a dedicated log file for the current game session mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-multiwinia.sh0000755000000000000000000000532614471751340014350 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Multiwinia # send your bug reports to contact@dotslashplay.it ### script_version=20230817.1 GAME_ID='multiwinia' GAME_NAME='Multiwinia' ARCHIVE_BASE_0='gog_multiwinia_2.0.0.5.sh' ARCHIVE_BASE_0_MD5='ec7f0cc245b4fb4bf85cba5fc4a536ba' ARCHIVE_BASE_0_SIZE='66000' ARCHIVE_BASE_0_VERSION='1.3.1-gog2.0.0.5' ARCHIVE_BASE_0_URL='https://www.gog.com/game/multiwinia' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN32_PATH="${CONTENT_PATH_DEFAULT}/lib" CONTENT_LIBS_BIN32_FILE=' libpng12.so.0 libpng12.so.0.50.0' CONTENT_GAME_BIN32_FILES=' multiwinia.bin.x86' CONTENT_LIBS_BIN64_PATH="${CONTENT_PATH_DEFAULT}/lib64" CONTENT_LIBS_BIN64_FILE=' libpng12.so.0 libpng12.so.0.50.0' CONTENT_GAME_BIN64_FILES=' multiwinia.bin.x86_64' CONTENT_GAME_DATA_FILES=' *.dat multiwinia.png' CONTENT_DOC_DATA_PATH="${CONTENT_PATH_DEFAULT}/docs" CONTENT_DOC_DATA_FILES=' readme.txt manual.pdf' APP_MAIN_EXE_BIN32='multiwinia.bin.x86' APP_MAIN_EXE_BIN64='multiwinia.bin.x86_64' APP_MAIN_ICON='multiwinia.png' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libogg.so.0 libopenal.so.1 libpthread.so.0 libSDL-1.2.so.0 libstdc++.so.6 libvorbisfile.so.3 libvorbis.so.0 libz.so.1' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.25' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-murder-by-numbers.sh0000755000000000000000000000433214471751340015541 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Murder by Numbers # send your bug reports to contact@dotslashplay.it ### script_version=20230328.3 GAME_ID='murder-by-numbers' GAME_NAME='Murder by Numbers' ARCHIVE_BASE_0='setup_murder_by_numbers_1.26_(39758).exe' ARCHIVE_BASE_0_MD5='46ad317048a0f9d51d2811ec4bb104ff' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='950000' ARCHIVE_BASE_0_VERSION='1.26-gog39758' ARCHIVE_BASE_0_URL='https://www.gog.com/game/murder_by_numbers' UNITY3D_NAME='murderbynumbers' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" monobleedingedge ${UNITY3D_NAME}_data/plugins ${UNITY3D_NAME}.exe unitycrashhandler32.exe unityplayer.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/LocalLow/Mediatonic/Murder by Numbers' USER_PERSISTENT_FILES=' userdata/MemoryProgress.txt userdata/settings.txt' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-murder-mystery-machine.sh0000755000000000000000000000421314471751340016572 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Murder Mystery Machine # send your bug reports to contact@dotslashplay.it ### script_version=20230411.1 GAME_ID='murder-mystery-machine' GAME_NAME='Murder Mystery Machine' ARCHIVE_BASE_0='setup_murder_mystery_machine_1.0.3_(52168).exe' ARCHIVE_BASE_0_MD5='69ded10c35ef888f13823fe5ebc8d2ac' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2800000' ARCHIVE_BASE_0_VERSION='1.0.3-gog52168' ARCHIVE_BASE_0_URL='https://www.gog.com/game/murder_mystery_machine' UNITY3D_NAME='murdermysterymachine' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_data/plugins ${UNITY3D_NAME}.exe monobleedingedge unitycrashhandler32.exe unityplayer.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" WINE_DIRECT3D_RENDERER='dxvk' APP_WINE_LINK_DIRS=' userdata;users/${USER}/AppData/LocalLow/Blazing Griffin/Murder Mystery Machine' USER_PERSISTENT_DIRECTORIES=' userdata' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-museum-of-mechanics-lockpicking.sh0000755000000000000000000000744314471751340020330 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # Museum of Mechanics: Lockpicking # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20201130.5 # Set game-specific variables GAME_ID='museum-of-mechanics-lockpicking' GAME_NAME='Museum of Mechanics: Lockpicking' ARCHIVES_LIST=' ARCHIVE_ITCH_0' ARCHIVE_ITCH_0='museum-of-mechanics-lockpicking-linux.zip' ARCHIVE_ITCH_0_URL='https://dimbulbgames.itch.io/museum-of-mechanics-lockpicking' ARCHIVE_ITCH_0_MD5='6e47b913932abbba3d132c9d849b79fd' ARCHIVE_ITCH_0_SIZE='160000' ARCHIVE_ITCH_0_VERSION='1.0-itch' ARCHIVE_ITCH_0_TYPE='zip' ARCHIVE_GAME_BIN_PATH='Museum of Mechanics - Linux' ARCHIVE_GAME_BIN_FILES='Museum_Of_Mechanics.x86_64 UnityPlayer.so Museum_Of_Mechanics_Data/MonoBleedingEdge' ARCHIVE_GAME_DATA_PATH='Museum of Mechanics - Linux' ARCHIVE_GAME_DATA_FILES='Museum_Of_Mechanics_Data' DATA_DIRS='./logs' APP_MAIN_TYPE='native' APP_MAIN_PRERUN='# Work around Unity3D poor support for non-US locales export LANG=C' APP_MAIN_EXE='Museum_Of_Mechanics.x86_64' APP_MAIN_ICON='Museum_Of_Mechanics_Data/Resources/UnityPlayer.png' # Use a per-session dedicated file for logs # shellcheck disable=SC2016 APP_MAIN_OPTIONS='-logFile ./logs/$(date +%F-%R).log' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID glibc libstdc++" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" set_standard_permissions "$PLAYIT_WORKDIR/gamedata" prepare_package_layout # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-mushroom-11.sh0000755000000000000000000000745514471751340014263 0ustar rootroot#!/bin/sh -e set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # 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. ### ### # Mushroom 11 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20200122.3 # Set game-specific variables GAME_ID='mushroom-11' GAME_NAME='Mushroom 11' ARCHIVE_HUMBLE='Mushroom_11_v1.07b4_Humble_Linux.zip' ARCHIVE_HUMBLE_URL='https://www.humblebundle.com/store/mushroom-11' ARCHIVE_HUMBLE_MD5='0c257b149a3636ba839fba4cffe7b3db' ARCHIVE_HUMBLE_SIZE='480000' ARCHIVE_HUMBLE_VERSION='1.07b4-humble1' ARCHIVE_GAME_BIN32_PATH='.' ARCHIVE_GAME_BIN32_FILES='Mushroom_11.x86 Mushroom_11_Data/*/x86' ARCHIVE_GAME_BIN64_PATH='.' ARCHIVE_GAME_BIN64_FILES='Mushroom_11.x86_64 Mushroom_11_Data/*/x86_64' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='Mushroom_11_Data' DATA_DIRS='./logs' APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32='Mushroom_11.x86' APP_MAIN_EXE_BIN64='Mushroom_11.x86_64' # shellcheck disable=SC2016 APP_MAIN_OPTIONS='-logFile ./logs/$(date +%F-%R).log' APP_MAIN_ICON='Mushroom_11_Data/Resources/UnityPlayer.png' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID glibc libstdc++ glu glx xcursor gtk2 alsa" PKG_BIN32_DEPS_ARCH='lib32-libx11' PKG_BIN32_DEPS_DEB='libx11-6' PKG_BIN32_DEPS_GENTOO='x11-libs/libX11[abi_x86_32]' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPS_ARCH='libx11' PKG_BIN64_DEPS_DEB="$PKG_BIN32_DEPS_DEB" PKG_BIN64_DEPS_GENTOO='x11-libs/libX11' # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout rm --recursive "$PLAYIT_WORKDIR/gamedata" # Get game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-mutazione.sh0000755000000000000000000000410714471751340014175 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Mutazione # send your bug reports to contact@dotslashplay.it ### script_version=20230411.1 GAME_ID='mutazione' GAME_NAME='Mutazione' ARCHIVE_BASE_1='mutazione_1_84_2_58889.sh' ARCHIVE_BASE_1_MD5='62907ada1a1e09f64f93cafa3db87aaa' ARCHIVE_BASE_1_TYPE='mojosetup' ARCHIVE_BASE_1_SIZE='2600000' ARCHIVE_BASE_1_VERSION='1.84.2-gog58889' ARCHIVE_BASE_1_URL='https://www.gog.com/game/mutazione' UNITY3D_NAME='mutazione' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/MonoBleedingEdge/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-my-brother-rabbit.sh0000755000000000000000000000775414471751340015526 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # My Brother Rabbit # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210509.1 # Set game-specific variables GAME_ID='my-brother-rabbit' GAME_NAME='My Brother Rabbit' ARCHIVES_LIST=' ARCHIVE_GOG_0' ARCHIVE_GOG_0='my_brother_rabbit_gog_2_23945.sh' ARCHIVE_GOG_0_URL='https://www.gog.com/game/my_brother_rabbit' ARCHIVE_GOG_0_MD5='e8dd42bb3ac4e10c56cd5da36cb60c99' ARCHIVE_GOG_0_SIZE='870000' ARCHIVE_GOG_0_VERSION='2-gog23945' ARCHIVE_GOG_0_TYPE='mojosetup' ARCHIVE_DOC_DATA_PATH='data/noarch/docs' ARCHIVE_DOC_DATA_FILES='*' ARCHIVE_GAME_BIN32_PATH='data/noarch/game' ARCHIVE_GAME_BIN32_FILES='MyBrotherRabbit_i386' ARCHIVE_GAME_BIN64_PATH='data/noarch/game' ARCHIVE_GAME_BIN64_FILES='MyBrotherRabbit_amd64' ARCHIVE_GAME_DATA_PATH='data/noarch/game' ARCHIVE_GAME_DATA_FILES='game.json game.sparkconfig linux' CONFIG_FILES='./game.sparkconfig' APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32='MyBrotherRabbit_i386' APP_MAIN_EXE_BIN64='MyBrotherRabbit_amd64' APP_MAIN_ICON='data/noarch/support/icon.png' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID glibc libstdc++ glx" PKG_BIN32_DEPS_ARCH='lib32-libx11 lib32-libidn11' PKG_BIN32_DEPS_DEB='libx11-6, libdn11' PKG_BIN32_DEPS_GENTOO='x11-libs/libX11[abi_x86_32] net-dns/libidn[abi_x86_32]' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPS_ARCH='libx11 libidn11' PKG_BIN64_DEPS_DEB="$PKG_BIN32_DEPS_DEB" PKG_BIN64_DEPS_GENTOO='x11-libs/libX11 net-dns/libidn' # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get game icon PKG='PKG_DATA' icons_get_from_workdir 'APP_MAIN' # Clean up temporary files rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-my-memory-of-us.sh0000755000000000000000000000475014471751340015150 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # My Memory of Us # send your bug reports to contact@dotslashplay.it ### script_version=20230328.3 GAME_ID='my-memory-of-us' GAME_NAME='My Memory of Us' ARCHIVE_BASE_0='setup_my_memory_of_us_1.13057.1_(64bit)_(25548).exe' ARCHIVE_BASE_0_MD5='44d0900cd3677e8811eea558ed237c56' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_my_memory_of_us_1.13057.1_(64bit)_(25548)-1.bin' ARCHIVE_BASE_0_PART1_MD5='a2e2e199681aaa136cc109df60b6eefc' ARCHIVE_BASE_0_SIZE='5000000' ARCHIVE_BASE_0_VERSION='1.13057.1-gog25548' ARCHIVE_BASE_0_URL='https://www.gog.com/game/my_memory_of_us' UNITY3D_NAME='mmou' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_data/plugins ${UNITY3D_NAME}_data/mono ${UNITY3D_NAME}.exe galaxy64.dll galaxycsharpglue.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\Juggler Games\My Memory of Us' APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/LocalLow/Juggler Games/My Memory of Us' USER_PERSISTENT_DIRECTORIES=' userdata/PERSISTENT_SAVES userdata/SAVES' USER_PERSISTENT_FILES=' userdata/Savvy.dat' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' # Load common functions target_version='2.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 . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-my-rabbits-are-gone.sh0000755000000000000000000000470214471751340015727 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # My Rabbits Are Gone # send your bug reports to contact@dotslashplay.it ### script_version=20230818.1 GAME_ID='my-rabbits-are-gone' GAME_NAME='Oh Jeez, Oh No, My Rabbits Are Gone !!!' ARCHIVE_BASE_1='oh-jeez-oh-no-my-rabbits-are-gone-linux.zip' ARCHIVE_BASE_1_MD5='5fd3335ca1a517bd733d2692bda6dd35' ARCHIVE_BASE_1_SIZE='210000' ARCHIVE_BASE_1_VERSION='1.3.1.2a-itch1' ARCHIVE_BASE_1_URL='https://studionevermore.itch.io/oh-jeez-oh-no-my-rabbits-are-gone' ARCHIVE_BASE_0='MyRabbitsAreGone1.1.0.5ItchLinux.zip' ARCHIVE_BASE_0_MD5='4666fb50124c7076b1a9e493b5ff4883' ARCHIVE_BASE_0_SIZE='640000' ARCHIVE_BASE_0_VERSION='1.1.5-itch1' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' MyRabbitsAreGone' CONTENT_GAME_DATA_FILES=' assets' USER_PERSISTENT_FILES=' assets/options.ini' APP_MAIN_EXE='MyRabbitsAreGone' APP_MAIN_ICON='assets/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES_COMMON=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 libz.so.1' PKG_BIN_DEPENDENCIES_LIBRARIES=" $PKG_BIN_DEPENDENCIES_LIBRARIES_COMMON libcurl.so.4 libssl.so.1.1" PKG_BIN_DEPENDENCIES_LIBRARIES_0=" $PKG_BIN_DEPENDENCIES_LIBRARIES_COMMON libcurl-gnutls.so.4 libssl.so.1.0.0" # Load common functions 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-my-time-at-portia.sh0000755000000000000000000001021414471751340015435 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # My Time at Portia # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20211012.3 # Set game-specific variables GAME_ID='my-time-at-portia' GAME_NAME='My Time at Portia' ARCHIVE_BASE_0='setup_my_time_at_portia_2.0.141235_(64bit)_(41960).exe' ARCHIVE_BASE_0_MD5='9f21752466f3ce96719cfea66bce05d5' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_my_time_at_portia_2.0.141235_(64bit)_(41960)-1.bin' ARCHIVE_BASE_0_PART1_MD5='881179a255b81a165411ca88fc99dcc7' ARCHIVE_BASE_0_PART1_TYPE='innosetup' ARCHIVE_BASE_0_PART2='setup_my_time_at_portia_2.0.141235_(64bit)_(41960)-2.bin' ARCHIVE_BASE_0_PART2_MD5='b84720aea74b713c8738197872f4add0' ARCHIVE_BASE_0_PART2_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='9800000' ARCHIVE_BASE_0_VERSION='2.0.141235-gog41960' ARCHIVE_BASE_0_URL='https://www.gog.com/game/my_time_at_portia' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES=' unityplayer.dll portia.exe portia_data/mono portia_data/plugins' ARCHIVE_GAME_DATA_ASSETBUNDLES_PATH='.' ARCHIVE_GAME_DATA_ASSETBUNDLES_FILES='portia_data/streamingassets/assetbundles' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='portia_data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='portia.exe' APP_MAIN_ICON='portia.exe' PACKAGES_LIST='PKG_BIN PKG_DATA_ASSETBUNDLES PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_ASSETBUNDLES_ID="${PKG_DATA_ID}-asssetbundles" PKG_DATA_DESCRIPTION="$PKG_DATA_DESCRIPTION - asset bundles" PKG_DATA_DEPS="$PKG_DATA_DEPS $PKG_DATA_ASSETBUNDLES_ID" PKG_BIN_ARCH='64' PKG_BIN_DEPS="${PKG_DATA_ID} wine" # Use persistent storage for saved games APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/AppData/LocalLow/Pathea Games/My Time at Portia' DATA_DIRS="$DATA_DIRS ./userdata" # Load common functions target_version='2.14' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "$PLAYIT_WORKDIR/gamedata" # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-nanotale-typing-chronicles.sh0000755000000000000000000000455014471751340017424 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Nanotale - Typing Chronicles # send your bug reports to contact@dotslashplay.it ### script_version=20230811.2 GAME_ID='nanotale-typing-chronicles' GAME_NAME='Nanotale - Typing Chronicles' ARCHIVE_BASE_1='nanotale_typing_chronicles_1_96_51035.sh' ARCHIVE_BASE_1_MD5='fee2152ca68930869172c1bb6785d37d' ARCHIVE_BASE_1_SIZE='5200000' ARCHIVE_BASE_1_VERSION='1.96-gog51035' ARCHIVE_BASE_1_URL='https://www.gog.com/game/nanotale_typing_chronicles' ARCHIVE_BASE_0='nanotale_typing_chronicles_1_95_50826.sh' ARCHIVE_BASE_0_MD5='a77a001896b0c742feddd24ce594bc3e' ARCHIVE_BASE_0_SIZE='4600000' ARCHIVE_BASE_0_VERSION='1.95-gog50826' UNITY3D_NAME='Nanotale' UNITY3D_PLUGINS=' libfmodstudioL.so libfmodstudio.so libresonanceaudio.so sqlite3.so UnityFbxSdkNative.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_Data/MonoBleedingEdge ${UNITY3D_NAME} UnityPlayer.so" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_EXE="$UNITY3D_NAME" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icon PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-nebuchadnezzar.sh0000755000000000000000000000445614471751340015174 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Nebuchadnezzar # send your bug reports to contact@dotslashplay.it ### script_version=20230814.1 GAME_ID='nebuchadnezzar' GAME_NAME='Nebuchadnezzar' ARCHIVE_BASE_0='nebuchadnezzar_1_4_11_63946.sh' ARCHIVE_BASE_0_MD5='7f4bb453c7fb510fd10c125ec17dcd53' ARCHIVE_BASE_0_SIZE='1600000' ARCHIVE_BASE_0_VERSION='1.4.11-gog63946' ARCHIVE_BASE_0_URL='https://www.gog.com/game/nebuchadnezzar' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' binary/linux/nebuchadnezzar' CONTENT_GAME_DATA_FILES=' data' APP_MAIN_EXE='binary/linux/nebuchadnezzar' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' liballegro.so.5.2 liballegro_acodec.so.5.2 liballegro_audio.so.5.2 liballegro_font.so.5.2 liballegro_image.so.5.2 liballegro_primitives.so.5.2 liballegro_ttf.so.5.2 libc.so.6 libgcc_s.so.1 liblua5.3.so.0 libm.so.6 libpng16.so.16 libpthread.so.0 libstdc++.so.6' # Run the game binary from its parent directory APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' # Run the game binary from its parent directory cd "$(dirname "$APP_EXE")" APP_EXE=$(basename "$APP_EXE") ' # Load common functions target_version='2.25' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-neon-code.sh0000755000000000000000000000763714471751340014044 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # Neon Code # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20201020.1 # Set game-specific variables GAME_ID='neon-code' GAME_NAME='Neon Code' ARCHIVES_LIST=' ARCHIVE_ITCH_0' ARCHIVE_ITCH_0='NeonCode_0_89_Linux.zip' ARCHIVE_ITCH_0_URL='https://fubenalvo.itch.io/neoncode' ARCHIVE_ITCH_0_MD5='dbcf301048b76c443bb746c0b337692b' ARCHIVE_ITCH_0_SIZE='4300000' ARCHIVE_ITCH_0_VERSION='0.89-itch' ARCHIVE_ITCH_0_TYPE='zip' ARCHIVE_GAME_BIN32_PATH='NeonCode_0_89_Linux' ARCHIVE_GAME_BIN32_FILES='NeonCode.x86 NeonCode_Data/Mono*/x86 NeonCode_Data/Plugins/x86' ARCHIVE_GAME_BIN64_PATH='NeonCode_0_89_Linux' ARCHIVE_GAME_BIN64_FILES='NeonCode.x86_64 NeonCode_Data/Mono*/x86_64 NeonCode_Data/Plugins/x86_64' ARCHIVE_GAME_DATA_PATH='NeonCode_0_89_Linux' ARCHIVE_GAME_DATA_FILES='NeonCode_Data' DATA_DIRS='./logs' APP_MAIN_TYPE='native' APP_MAIN_PRERUN='# Work around Unity3D poor support for non-US locales export LANG=C' APP_MAIN_EXE_BIN32='NeonCode.x86' APP_MAIN_EXE_BIN64='NeonCode.x86_64' APP_MAIN_ICON='NeonCode_Data/Resources/UnityPlayer.png' # Use a per-session dedicated file for logs # shellcheck disable=SC2016 APP_MAIN_OPTIONS='-logFile ./logs/$(date +%F-%R).log' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID glibc libstdc++ gtk2 libgdk_pixbuf-2.0.so.0 libgobject-2.0.so.0 libglib-2.0.so.0" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-neon-drive.sh0000755000000000000000000000527414471751340014236 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Neon Drive # build native packages from the original installers # send your bug reports to contatct@dotslashplay.it ### script_version=20220630.2 GAME_ID='neon-drive' GAME_NAME='neon Drive' ARCHIVE_BASE_1='NeonDrive_V1.5_Linux.zip' ARCHIVE_BASE_1_MD5='1fcbd5dc69cc08899b792b9f4c0d7075' ARCHIVE_BASE_1_SIZE='500000' ARCHIVE_BASE_1_VERSION='1.5-humble170831' ARCHIVE_BASE_1_URL='https://www.humblebundle.com/store/neon-drive' ARCHIVE_BASE_0='NeonDrive_V1.4__Linux.rar' ARCHIVE_BASE_0_MD5='86627f5639234614b036666de4223a15' ARCHIVE_BASE_0_SIZE='490000' ARCHIVE_BASE_0_VERSION='1.4-humble1' UNITY3D_NAME='Neon Drive' CONTENT_PATH_DEFAULT='.' ARCHIVE_GAME_BIN32_FILES=' Neon?Drive.x86 Neon?Drive_Data/Mono/x86 Neon?Drive_Data/Plugins/x86' ARCHIVE_GAME_BIN64_FILES=' Neon?Drive.x86_64 Neon?Drive_Data/Mono/x86_64 Neon?Drive_Data/Plugins/x86_64' ARCHIVE_GAME_DATA_FILES=' Neon?Drive_Data' APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32="${UNITY3D_NAME}.x86" APP_MAIN_EXE_BIN64="${UNITY3D_NAME}.x86_64" APP_MAIN_ICON="${UNITY3D_NAME}_Data/Resources/UnityPlayer.png" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID libc.so.6 libGL.so.1 xcursor libxrandr" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Use a dedicated log file for the current game session APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a dedicated log file for the current game session mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-neurodeck-psychological-deckbuilder.sh0000755000000000000000000000426314471751340021255 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Neurodeck: Psychological Deckbuilder # send your bug reports to contact@dotslashplay.it ### script_version=20230411.1 GAME_ID='neurodeck-psychological-deckbuilder' GAME_NAME='Neurodeck: Psychological Deckbuilder' ARCHIVE_BASE_1='neurodeck_psychological_deckbuilder_1_5_3_49984.sh' ARCHIVE_BASE_1_MD5='609908c4cfa583e4fc6d6b3c1764f91b' ARCHIVE_BASE_1_TYPE='mojosetup' ARCHIVE_BASE_1_SIZE='690000' ARCHIVE_BASE_1_VERSION='1.5.3-gog49984' ARCHIVE_BASE_1_URL='https://www.gog.com/game/neurodeck_psychological_deckbuilder' UNITY3D_NAME='Neurodeck' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/MonoBleedingEdge/x86_64 ${UNITY3D_NAME}_Data/Plugins UnityPlayer.so" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-3.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-never-alone.sh0000755000000000000000000000441314471751340014375 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2018 BetaRays set -o errexit ### # Never Alone # send your bug reports to contact@dotslashplay.it ### script_version=20231111.4 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='never-alone' GAME_NAME='Never Alone' ARCHIVE_BASE_0_NAME='NeverAlone_ArcticCollection_Linux.1.04.tar.gz' ARCHIVE_BASE_0_MD5='3da062abaaa9e3e6ff97d4c82c8ea3c3' ARCHIVE_BASE_0_SIZE='4900000' ARCHIVE_BASE_0_VERSION='1.04-humble161008' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/never-alone-arctic-collection' UNITY3D_NAME='Never_Alone' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='NeverAlone_ArcticCollection_Linux.1.04' CONTENT_GAME0_BIN_FILES=" ${UNITY3D_NAME}.x64" CONTENT_GAME_VIDEOS_FILES=" ${UNITY3D_NAME}_Data/StreamingAssets/Videos" APP_MAIN_EXE="${UNITY3D_NAME}.x64" PACKAGES_LIST=' PKG_BIN PKG_VIDEOS PKG_DATA' PKG_VIDEOS_ID="$GAME_ID-videos" PKG_VIDEOS_DESCRIPTION='videos' PKG_DATA_ID="$GAME_ID-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID $PKG_VIDEOS_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-neverending-nightmares.sh0000755000000000000000000000406714471751340016632 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Anna Lea # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Neverending Nightmares # send your bug reports to contact@dotslashplay.it ### script_version=20230819.2 GAME_ID='neverending-nightmares' GAME_NAME='Neverending Nightmares' ARCHIVE_BASE_0='neverending_nightmares_3_3_22468_41851.sh' ARCHIVE_BASE_0_MD5='4ab28bf5862dc35e6a821e1aabc3e41a' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='390000' ARCHIVE_BASE_0_VERSION='3.3.22468-gog41851' ARCHIVE_BASE_0_URL='https://www.gog.com/game/neverending_nightmares' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_FILES=' OpenAL-MOB.so' CONTENT_GAME_BIN_FILES=' nightmare' CONTENT_GAME_DATA_FILES=' controller.vdf *.itap' APP_MAIN_EXE='nightmare' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libasound.so.2 libc.so.6 libcurl.so.4 libGL.so.1 libGLU.so.1 libgtk-x11-2.0.so.0 libidn.so.11 libopenal.so.1 libstdc++.so.6 libudev.so.1 libuuid.so.1' # Load common functions 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-neverwinter-nights-1-enhanced-edition.sh0000755000000000000000000002340414471751340021357 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2021 Christian Stalp # SPDX-FileCopyrightText: © 2023 Jacek Szafarkiewicz set -o errexit ### # Neverwinter Nights 1 Enhanced Edition # send your bug reports to contact@dotslashplay.it ### script_version=20231116.3 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='neverwinter-nights-1-enhanced-edition' GAME_NAME='Neverwinter Nights: Enhanced Edition' ARCHIVE_BASE_5_NAME='neverwinter_nights_enhanced_edition_87_8193_35_40_65678.sh' ARCHIVE_BASE_5_MD5='c1191f9e19f1da52f1424025017cf56f' ARCHIVE_BASE_5_SIZE='6253452' ARCHIVE_BASE_5_VERSION='87.8193.35.40-gog65678' ARCHIVE_BASE_5_URL='https://www.gog.com/game/neverwinter_nights_enhanced_edition_pack' ARCHIVE_BASE_5_FR_0_NAME='neverwinter_nights_enhanced_edition_french_87_8193_35_40_65678.sh' ARCHIVE_BASE_5_FR_0_MD5='319194e7a229b24b19f7454d8ed860d6' ARCHIVE_BASE_5_FR_0_SIZE='6253452' ARCHIVE_BASE_5_FR_0_VERSION='87.8193.35.40-gog65678' ARCHIVE_BASE_5_FR_0_URL='https://www.gog.com/game/neverwinter_nights_enhanced_edition_pack' ARCHIVE_BASE_5_PL_0_NAME='neverwinter_nights_enhanced_edition_polish_87_8193_35_40_65678.sh' ARCHIVE_BASE_5_PL_0_MD5='d4c3d4c4af501424a60bf9e09e5a2f01' ARCHIVE_BASE_5_PL_0_SIZE='6253452' ARCHIVE_BASE_5_PL_0_VERSION='87.8193.35.40-gog65678' ARCHIVE_BASE_5_PL_0_URL='https://www.gog.com/game/neverwinter_nights_enhanced_edition_pack' ARCHIVE_BASE_5_OPTIONAL_L10N_DE='neverwinter_nights_enhanced_edition_german_extras_87_8193_35_40_65678.sh' ARCHIVE_BASE_5_OPTIONAL_L10N_DE_MD5='596b075b63b8f9f76bbf1eeaa8150cfb' ARCHIVE_BASE_5_OPTIONAL_L10N_DE_SIZE='892816' ARCHIVE_BASE_5_OPTIONAL_L10N_DE_URL='https://www.gog.com/game/neverwinter_nights_enhanced_edition_german_extras' ARCHIVE_BASE_5_OPTIONAL_L10N_FR='neverwinter_nights_enhanced_edition_french_extras_87_8193_35_40_65678.sh' ARCHIVE_BASE_5_OPTIONAL_L10N_FR_MD5='88b889d8eefadfde33d0fad8bac1b9be' ARCHIVE_BASE_5_OPTIONAL_L10N_FR_SIZE='833404' ARCHIVE_BASE_5_OPTIONAL_L10N_FR_URL='https://www.gog.com/game/neverwinter_nights_enhanced_edition_french_extras' ARCHIVE_BASE_5_OPTIONAL_L10N_PL='neverwinter_nights_enhanced_edition_polish_extras_87_8193_35_40_65678.sh' ARCHIVE_BASE_5_OPTIONAL_L10N_PL_MD5='c78a405c135ffad7e126bd44113ecc86' ARCHIVE_BASE_5_OPTIONAL_L10N_PL_SIZE='833404' ARCHIVE_BASE_5_OPTIONAL_L10N_PL_URL='https://www.gog.com/game/neverwinter_nights_enhanced_edition_polish_extras' ARCHIVE_BASE_4_NAME='neverwinter_nights_enhanced_edition_85_8193_33_50393.sh' ARCHIVE_BASE_4_MD5='4e6c4f7bd75791a9c726b7b573cfafe5' ARCHIVE_BASE_4_SIZE='6300000' ARCHIVE_BASE_4_VERSION='85.8193.33-gog50393' ARCHIVE_BASE_4_FR_0_NAME='neverwinter_nights_enhanced_edition_french_85_8193_33_50393.sh' ARCHIVE_BASE_4_FR_0_MD5='19b036e3c07fd4aa9a835de05b4aea1f' ARCHIVE_BASE_4_FR_0_SIZE='6200000' ARCHIVE_BASE_4_FR_0_VERSION='85.8193.33-gog50393' ARCHIVE_BASE_4_OPTIONAL_L10N_DE='neverwinter_nights_enhanced_edition_german_extras_85_8193_33_50393.sh' ARCHIVE_BASE_4_OPTIONAL_L10N_DE_MD5='d20a22fc2dfdeca4bb71bb7fd7e13a82' ARCHIVE_BASE_4_OPTIONAL_L10N_DE_SIZE='900000' ARCHIVE_BASE_4_OPTIONAL_L10N_FR='neverwinter_nights_enhanced_edition_french_extras_85_8193_33_50393.sh' ARCHIVE_BASE_4_OPTIONAL_L10N_FR_MD5='f39ecc55b15740322d8ae860ccfecbc5' ARCHIVE_BASE_4_OPTIONAL_L10N_FR_SIZE='840000' ARCHIVE_BASE_3_NAME='neverwinter_nights_enhanced_edition_83_8193_23_47201.sh' ARCHIVE_BASE_3_MD5='b85d2ea70aa6dba1096e97e944d98141' ARCHIVE_BASE_3_SIZE='6300000' ARCHIVE_BASE_3_VERSION='83.8193.23-gog47201' ARCHIVE_BASE_2_NAME='neverwinter_nights_enhanced_edition_82_8193_20_1_43497.sh' ARCHIVE_BASE_2_MD5='c80e73f0305ad99355cc089c632b8b0c' ARCHIVE_BASE_2_SIZE='6200000' ARCHIVE_BASE_2_VERSION='82.8193.20.1-gog43497' ARCHIVE_BASE_1_NAME='neverwinter_nights_enhanced_edition_81_8193_16_41300.sh' ARCHIVE_BASE_1_MD5='a52646002ab14c452731b0636fdc8278' ARCHIVE_BASE_1_SIZE='6200000' ARCHIVE_BASE_1_VERSION='81.8193.16-gog41300' ARCHIVE_BASE_1_FR_0_NAME='neverwinter_nights_enhanced_edition_french_81_8193_16_41300.sh' ARCHIVE_BASE_1_FR_0_MD5='67f42c1a1604a26fdbcd0cbc800856f5' ARCHIVE_BASE_1_FR_0_SIZE='6200000' ARCHIVE_BASE_1_FR_0_VERSION='81.8193.16-gog41300' ARCHIVE_BASE_1_OPTIONAL_L10N_DE='neverwinter_nights_enhanced_edition_german_extras_81_8193_16_41300.sh' ARCHIVE_BASE_1_OPTIONAL_L10N_DE_MD5='1e81fcf9d40bcf23dec0a77069222a52' ARCHIVE_BASE_1_OPTIONAL_L10N_DE_SIZE='900000' ARCHIVE_BASE_1_OPTIONAL_L10N_FR='neverwinter_nights_enhanced_edition_french_extras_81_8193_16_41300.sh' ARCHIVE_BASE_1_OPTIONAL_L10N_FR_MD5='1fe0cc196c146834ff186935ae2d3d66' ARCHIVE_BASE_1_OPTIONAL_L10N_FR_SIZE='840000' ARCHIVE_BASE_0_NAME='neverwinter_nights_enhanced_edition_80_8193_9_37029.sh' ARCHIVE_BASE_0_MD5='fb98f859b5f5516fc7df8b00c7264c07' ARCHIVE_BASE_0_VERSION='80.8193.9-gog37029' ARCHIVE_BASE_0_SIZE='5000000' ARCHIVE_BASE_0_OPTIONAL_L10N_FR='neverwinter_nights_enhanced_edition_french_extras_80_8193_9_37029.sh' ARCHIVE_BASE_0_OPTIONAL_L10N_FR_MD5='5e0564a161259b003c7dc0f8d8aa743f' ARCHIVE_BASE_0_OPTIONAL_L10N_FR_SIZE='840000' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' bin/linux-x86' CONTENT_GAME_L10N_DE_FILES=' lang/de/data' CONTENT_GAME_L10N_FR_FILES=' lang/fr/data' CONTENT_GAME_L10N_PL_FILES=' lang/pl/data' ## The English localization is provided in the base package, so it can always be used as a fallback. CONTENT_GAME_DATA_FILES=' data ovr lang/en/data' CONTENT_DOC_L10N_DE_PATH="${CONTENT_PATH_DEFAULT}/lang" CONTENT_DOC_L10N_DE_FILES=' de/docs' CONTENT_DOC_L10N_FR_PATH="${CONTENT_PATH_DEFAULT}/lang" CONTENT_DOC_L10N_FR_FILES=' fr/docs' CONTENT_DOC_L10N_PL_PATH="${CONTENT_PATH_DEFAULT}/lang" CONTENT_DOC_L10N_PL_FILES=' pl/docs' CONTENT_DOC_DATA_PATH="${CONTENT_PATH_DEFAULT}/lang" CONTENT_DOC_DATA_FILES=' en/docs' APP_MAIN_EXE='bin/linux-x86/nwmain-linux' APP_MAIN_ICON='bin/win32/nwmain.exe' ## Run the game binary from its parent directory APP_MAIN_PRERUN='# Run the game binary from its parent directory cd "$(dirname "$APP_EXE")" APP_EXE=$(basename "$APP_EXE") ' APP_SERVER_ID="${GAME_ID}-server" APP_SERVER_NAME="${GAME_NAME} - server" APP_SERVER_EXE='bin/linux-x86/nwserver-linux' APP_SERVER_ICON='bin/win32/nwserver.exe' ## Run the game binary from its parent directory APP_SERVER_PRERUN='# Run the game binary from its parent directory cd "$(dirname "$APP_EXE")" APP_EXE=$(basename "$APP_EXE") ' PACKAGES_LIST=' PKG_BIN PKG_L10N_DE PKG_L10N_FR PKG_L10N_PL PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_DE_ID="${PKG_L10N_ID}-de" PKG_L10N_FR_ID="${PKG_L10N_ID}-fr" PKG_L10N_PL_ID="${PKG_L10N_ID}-pl" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_DE_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_FR_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_PL_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_DE_DESCRIPTION='German localization' PKG_L10N_FR_DESCRIPTION='French localization' PKG_L10N_PL_DESCRIPTION='Polish localization' PKG_L10N_DEPS="$GAME_ID" PKG_L10N_DE_DEPS="$PKG_L10N_DEPS" PKG_L10N_FR_DEPS="$PKG_L10N_DEPS" PKG_L10N_PL_DEPS="$PKG_L10N_DEPS" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libstdc++.so.6' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Force the use of system-provided SDL APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN') # Force the use of the system SDL library export SDL_DYNAMIC_API='$(path_libraries_system)/libSDL2-2.0.so.0' " # Check for the presence of optional extra archives archive_prefix=$(current_archive | grep --only-matching '^ARCHIVE_BASE_[0-9]*') ## German localization if [ -n "$(get_value "${archive_prefix}_OPTIONAL_L10N_DE")" ]; then archive_initialize_optional \ 'ARCHIVE_L10N_DE' \ "${archive_prefix}_OPTIONAL_L10N_DE" fi ## French localization if [ -n "$(get_value "${archive_prefix}_OPTIONAL_L10N_FR")" ]; then archive_initialize_optional \ 'ARCHIVE_L10N_FR' \ "${archive_prefix}_OPTIONAL_L10N_FR" fi ## Polish localization if [ -n "$(get_value "${archive_prefix}_OPTIONAL_L10N_PL")" ]; then archive_initialize_optional \ 'ARCHIVE_L10N_PL' \ "${archive_prefix}_OPTIONAL_L10N_PL" fi # Extract game data archive_extraction 'SOURCE_ARCHIVE' ## German localization if archive_is_available 'ARCHIVE_L10N_DE'; then archive_extraction 'ARCHIVE_L10N_DE' fi ## French localization if archive_is_available 'ARCHIVE_L10N_FR'; then archive_extraction 'ARCHIVE_L10N_FR' fi ## Polish localization if archive_is_available 'ARCHIVE_L10N_PL'; then archive_extraction 'ARCHIVE_L10N_PL' fi # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation case "${LANG%_*}" in ('fr') message='version %s :' lang_en='anglaise' lang_de='allemande' lang_fr='française' lang_pl='polonaise' ;; ('en'|*) message='%s version:' lang_en='English' lang_de='German' lang_fr='French' lang_pl='Polish' ;; esac printf '\n' printf "$message" "$lang_en" print_instructions 'PKG_DATA' 'PKG_BIN' printf "$message" "$lang_de" print_instructions 'PKG_L10N_DE' 'PKG_DATA' 'PKG_BIN' printf "$message" "$lang_fr" print_instructions 'PKG_L10N_FR' 'PKG_DATA' 'PKG_BIN' printf "$message" "$lang_pl" print_instructions 'PKG_L10N_PL' 'PKG_DATA' 'PKG_BIN' # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-neverwinter-nights-1.sh0000755000000000000000000002707014471751340016166 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Neverwinter Nights 1 # send your bug reports to contact@dotslashplay.it ### script_version=20231007.2 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='neverwinter-nights-1' GAME_NAME='Neverwinter Nights' ARCHIVE_BASE_DE_0_NAME='setup_nwn_diamond_german_2.1.0.21.exe' ARCHIVE_BASE_DE_0_MD5='63a32f4fdb2939e73ac40d80f5798e28' ARCHIVE_BASE_DE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_DE_0_EXTRACTOR_OPTIONS='--progress=1 --silent --lowercase --gog' ARCHIVE_BASE_DE_0_PART1_NAME='setup_nwn_diamond_german_2.1.0.21-1.bin' ARCHIVE_BASE_DE_0_PART1_MD5='e6c50d030b046c05ccf87601844ccc23' ARCHIVE_BASE_DE_0_PART1_TYPE='rar' ARCHIVE_BASE_DE_0_SIZE='4400000' ARCHIVE_BASE_DE_0_VERSION='1.68-gog2.1.0.21' ARCHIVE_BASE_DE_0_URL='https://www.gog.com/game/neverwinter_nights_enhanced_edition_pack' ARCHIVE_BASE_EN_0_NAME='setup_nwn_diamond_2.1.0.21.exe' ARCHIVE_BASE_EN_0_MD5='cd809b9d22022adb01b0d1d70c5afa8e' ARCHIVE_BASE_EN_0_EXTRACTOR='innoextract' ARCHIVE_BASE_EN_0_EXTRACTOR_OPTIONS='--progress=1 --silent --lowercase --gog' ARCHIVE_BASE_EN_0_PART1_NAME='setup_nwn_diamond_2.1.0.21-1.bin' ARCHIVE_BASE_EN_0_PART1_MD5='ce60bf104cc6082fe79d6f0bd7b48f51' ARCHIVE_BASE_EN_0_PART1_TYPE='rar' ARCHIVE_BASE_EN_0_SIZE='5100000' ARCHIVE_BASE_EN_0_VERSION='1.69-gog2.1.0.21' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/neverwinter_nights_enhanced_edition_pack' ARCHIVE_BASE_ES_0_NAME='setup_nwn_diamond_spanish_2.1.0.21.exe' ARCHIVE_BASE_ES_0_MD5='70448f984b66a814bda712ecfef5977e' ARCHIVE_BASE_ES_0_EXTRACTOR='innoextract' ARCHIVE_BASE_ES_0_EXTRACTOR_OPTIONS='--progress=1 --silent --lowercase --gog' ARCHIVE_BASE_ES_0_PART1_NAME='setup_nwn_diamond_spanish_2.1.0.21-1.bin' ARCHIVE_BASE_ES_0_PART1_MD5='3b6dee19655a1280273c5d0652f74ab5' ARCHIVE_BASE_ES_0_PART1_TYPE='rar' ARCHIVE_BASE_ES_0_SIZE='4400000' ARCHIVE_BASE_ES_0_VERSION='1.68-gog2.1.0.21' ARCHIVE_BASE_ES_0_URL='https://www.gog.com/game/neverwinter_nights_enhanced_edition_pack' ARCHIVE_BASE_FR_0_NAME='setup_nwn_diamond_french_2.1.0.21.exe' ARCHIVE_BASE_FR_0_MD5='caadc0f809e10ddf781cacbebd1b25d9' ARCHIVE_BASE_FR_0_EXTRACTOR='innoextract' ARCHIVE_BASE_FR_0_EXTRACTOR_OPTIONS='--progress=1 --silent --lowercase --gog' ARCHIVE_BASE_FR_0_PART1_NAME='setup_nwn_diamond_french_2.1.0.21-1.bin' ARCHIVE_BASE_FR_0_PART1_MD5='aeb4b99635bdc046560477b2b11307e3' ARCHIVE_BASE_FR_0_PART1_TYPE='rar' ARCHIVE_BASE_FR_0_SIZE='4300000' ARCHIVE_BASE_FR_0_VERSION='1.68-gog2.1.0.21' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/neverwinter_nights_enhanced_edition_pack' ARCHIVE_BASE_PL_0_NAME='setup_nwn_diamond_polish_2.1.0.21.exe' ARCHIVE_BASE_PL_0_MD5='5779b5c690984a79c617efc7649e66a3' ARCHIVE_BASE_PL_0_EXTRACTOR='innoextract' ARCHIVE_BASE_PL_0_EXTRACTOR_OPTIONS='--progress=1 --silent --lowercase --gog' ARCHIVE_BASE_PL_0_PART1_NAME='setup_nwn_diamond_polish_2.1.0.21-1.bin' ARCHIVE_BASE_PL_0_PART1_MD5='540c20cd68079c7a214af65296b4a8b1' ARCHIVE_BASE_PL_0_PART1_TYPE='rar' ARCHIVE_BASE_PL_0_SIZE='4400000' ARCHIVE_BASE_PL_0_VERSION='1.68-gog2.1.0.21' ARCHIVE_BASE_PL_0_URL='https://www.gog.com/game/neverwinter_nights_enhanced_edition_pack' CONTENT_PATH_DEFAULT='game' CONTENT_LIBS_BIN_PATH='lib' CONTENT_LIBS_BIN_FILES=' libtxc_dxtn.so' CONTENT_LIBS0_BIN_PATH='miles' CONTENT_LIBS0_BIN_FILES=' libmss.so libmss.so.6 libmss.so.6.5.2 mssdsp.flt mssmp3.asi msssoft.m3d' CONTENT_GAME_BIN_FILES=' dmclient fixinstall nwmain nwserver nwn.ini' CONTENT_GAME_BIN_PATH='.' CONTENT_GAME_BIN_FILES=' dmclient fixinstall nwmain nwserver nwn.ini' CONTENT_GAME0_BIN_PATH='support/app' CONTENT_GAME0_BIN_FILES=' nwncdkey.ini' CONTENT_GAME1_BIN_PATH='.' CONTENT_GAME1_BIN_FILES=' nwmovies nwmovies_install.pl' CONTENT_GAME_L10N_FILES=' *.key *.tlk movies/Chap?_Chap?.bik movies/credits.bik movies/ending.bik movies/prelude.bik movies/prelude_chap1.bik movies/XP?_*.bik data/*convo.bif data/models_??.bif data/music*.bif data/templates.bif data/*voicesets.bif data/xp1_sounds*.bif data/xp2_german.bif data/xp2_french.bif data/xp2_polish.bif' CONTENT_DOC_L10N_PATH="${CONTENT_PATH_DEFAULT}/docs" CONTENT_DOC_L10N_FILES=' *.pdf *.rtf *.txt' CONTENT_GAME_DATA_FILES=' ambient dmvault hak localvault modules music nwm override texturepacks movies/*.bik data/*.bif' CONTENT_GAME0_DATA_PATH='.' CONTENT_GAME0_DATA_FILES=' override' CONTENT_DOC_DATA_PATH='.' CONTENT_DOC_DATA_FILES=' *.txt' USER_PERSISTENT_DIRECTORIES=' portraits saves servervault' USER_PERSISTENT_FILES=' *.ini' APP_MAIN_EXE='nwmain' APP_MAIN_ICON='nwn.exe' ## Apply required SDL tweaks APP_MAIN_PRERUN=' export SDL_MOUSE_RELATIVE=0 export SDL_VIDEO_X11_DGAMOUSE=0 ' PACKAGES_LIST='PKG_BIN PKG_L10N PKG_DATA' PACKAGES_LIST_NWMOVIES="PKG_NWMOVIES $PACKAGES_LIST" PKG_NWMOVIES_ID="${GAME_ID}-nwmovies" PKG_NWMOVIES_DESCRIPTION='NWMovies' PKG_NWMOVIES_ARCH='32' PKG_NWMOVIES_DEPS="$GAME_ID" PKG_NWMOVIES_DEPENDENCIES_COMMANDS=' mpv' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_ID_DE="${PKG_L10N_ID}-de" PKG_L10N_ID_ES="${PKG_L10N_ID}-es" PKG_L10N_ID_EN="${PKG_L10N_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_ID}-fr" PKG_L10N_ID_PL="${PKG_L10N_ID}-pl" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_DESCRIPTION_DE='German localization' PKG_L10N_DESCRIPTION_ES='Spanish localization' PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' PKG_L10N_DESCRIPTION_PL='Polish localization' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID $PKG_L10N_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libGL.so.1 libGLU.so.1 libm.so.6 libpthread.so.0 libSDL-1.2.so.0' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Check for the presence of extra required archives ARCHIVE_REQUIRED_LINUX_COMMON_NAME='nwn-linux-common.tar.gz' ARCHIVE_REQUIRED_LINUX_COMMON_URL='https://downloads.dotslashplay.it/games/neverwinter-nights-1/' ARCHIVE_REQUIRED_LINUX_COMMON_MD5='9aa7dae2ba9111c96b10679fa085c66e' case "$(package_version)" in ('1.69-'*) ARCHIVE_REQUIRED_LINUX_NAME='nwn-linux-1.69.2023-10-07.tar.xz' ARCHIVE_REQUIRED_LINUX_URL='https://downloads.dotslashplay.it/games/neverwinter-nights-1/' ARCHIVE_REQUIRED_LINUX_MD5='8ea69b40842f9721051d4ddd6510d3b2' ;; ('1.68-'*) ARCHIVE_REQUIRED_LINUX_NAME='nwn-linux-1.68.2023-10-07.tar.xz' ARCHIVE_REQUIRED_LINUX_URL='https://downloads.dotslashplay.it/games/neverwinter-nights-1/' ARCHIVE_REQUIRED_LINUX_MD5='12ff7f8604d04194b87cf70832bb86fa' ;; esac archive_initialize_required \ 'ARCHIVE_LINUX_COMMON' \ 'ARCHIVE_REQUIRED_LINUX_COMMON' archive_initialize_required \ 'ARCHIVE_LINUX' \ 'ARCHIVE_REQUIRED_LINUX' # Check for the presence of extra optional archives ARCHIVE_OPTIONAL_NWMOVIES_NAME='nwmovies-mpv.tar.gz' ARCHIVE_OPTIONAL_NWMOVIES_URL='https://sites.google.com/site/gogdownloader/nwmovies-mpv.tar.gz' ARCHIVE_OPTIONAL_NWMOVIES_MD5='71f3d88db1cd75665b62b77f7604dce1' archive_initialize_optional \ 'ARCHIVE_NWMOVIES' \ 'ARCHIVE_OPTIONAL_NWMOVIES' # Check for the presence of NWMovies build dependencies ## TODO: The library should provide a function to check the presence of a list of compilation headers. ## TODO: The library should provide a function to check if a given optional archive has been provided. if [ -n "$(archive_path 'ARCHIVE_NWMOVIES' 2>/dev/null || true)" ]; then case "${LANG%_*}" in ('fr') message='Contrôle de la présence des dépendances requises pour la compilation de NWMovies…' ;; ('en'|*) message='Check for the presence of NWMovies build dependencies…' ;; esac printf '%s\n' "$message" tests_directory="${PLAYIT_WORKDIR}/tests" mkdir --parents "$tests_directory" test_source="${tests_directory}/build-deps.c" test_binary="${tests_directory}/build-deps.so" cat > "$test_source" <<-EOF #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include int main () { return 0; } EOF gcc -shared -Wall -fPIC -ldl -m32 "$test_source" -o "$test_binary" rm --recursive "$tests_directory" fi # Extract game data archive_extraction_default archive_extraction 'ARCHIVE_LINUX_COMMON' archive_extraction 'ARCHIVE_LINUX' ## TODO: The library should provide a function to check if a given optional archive has been provided. if [ -n "$(archive_path 'ARCHIVE_NWMOVIES' 2>/dev/null || true)" ]; then archive_extraction 'ARCHIVE_NWMOVIES' fi ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Fixe case issues with some files. if [ -e 'dialog.TLK' ]; then mv 'dialog.TLK' 'dialog.tlk' fi if [ -e 'dialogF.TLK' ]; then mv 'dialogF.TLK' 'dialogf.tlk' fi for tiles in 'a' 'b' 'c'; do if [ -e "texturepacks/Tiles_TP${tiles}.ERF" ]; then mv "texturepacks/Tiles_TP${tiles}.ERF" "texturepacks/Tiles_Tp${tiles}.erf" fi done ) # Build the NWMovies video player ## TODO: The library should provide a function to check if a given optional archive has been provided. if [ -n "$(archive_path 'ARCHIVE_NWMOVIES' 2>/dev/null || true)" ]; then ( cd "${PLAYIT_WORKDIR}/gamedata/nwmovies" case "${LANG%_*}" in ('fr') message='Construction du lecteur vidéo NWMovies…' ;; ('en'|*) message='Building NWMovies video player…' ;; esac printf '%s\n' "$message" sed --in-place 's/mpv /mpv --fs --no-osc /' 'nwplaymovie' chmod 755 'nwmovies_install.pl' export CFLAGS='-w' ./nwmovies_install.pl build >/dev/null 2>&1 nwmovies_build_status=$? if [ $nwmovies_build_status -ne 0 ]; then exit 1 fi ) fi # Include game data PKG='PKG_DATA' icons_inclusion ## TODO: The library should provide a function to check if a given optional archive has been provided. if [ -n "$(archive_path 'ARCHIVE_NWMOVIES' 2>/dev/null || true)" ]; then PACKAGES_LIST="$PACKAGES_LIST_NWMOVIES" install -D --mode=644 \ --target-directory="$(package_path 'PKG_NWMOVIES')$(path_libraries)" \ "${PLAYIT_WORKDIR}/gamedata/nwmovies/nwmovies.so" \ "${PLAYIT_WORKDIR}/gamedata/nwmovies/libdis/libdisasm.so" install -D --mode=755 \ "${PLAYIT_WORKDIR}/gamedata/nwmovies/nwplaymovie" \ "$(package_path 'PKG_NWMOVIES')$(path_game_data)/nwplaymovie" install -D --mode=644 \ "${PLAYIT_WORKDIR}/gamedata/nwmovies/nwmovies.README.txt" \ "$(package_path 'PKG_NWMOVIES')$(path_documentation)/nwmovies.README.txt" rm --recursive "${PLAYIT_WORKDIR}/gamedata/nwmovies" ## NWMovies look for some libraries in hardcoded paths. mkdir --parents "$(package_path 'PKG_NWMOVIES')$(path_game_data)/nwmovies/libdis" ln --symbolic \ "$(path_libraries)/libdisasm.so" \ "$(package_path 'PKG_NWMOVIES')$(path_game_data)/nwmovies/libdis/libdisasm.so" fi content_inclusion_default # Write launchers APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN')"' # Play videos using NWMovies, if it is available nwmovies_library="'"$(path_libraries)"'/nwmovies.so" if [ -e "$nwmovies_library" ]; then export LD_PRELOAD="$nwmovies_library" fi ' PKG='PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-niche.sh0000755000000000000000000000530014471751340013244 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Niche # send your bug reports to contact@dotslashplay.it ### script_version=20230419.3 GAME_ID='niche' GAME_NAME='Niche' ARCHIVE_BASE_1='niche_1_2_3_33448.sh' ARCHIVE_BASE_1_MD5='8ed3cd1d2f8e1cb48aec5bde8ab321e8' ARCHIVE_BASE_1_SIZE='1100000' ARCHIVE_BASE_1_VERSION='1.2.3-gog33448' ARCHIVE_BASE_1_URL='https://www.gog.com/game/niche' ARCHIVE_BASE_0='niche_en_1_1_4_21609.sh' ARCHIVE_BASE_0_MD5='01ab13fbb61095366732686216d99978' ARCHIVE_BASE_0_SIZE='1100000' ARCHIVE_BASE_0_VERSION='1.1.4-gog21609' UNITY3D_NAME='Niche' ## The game crashes on launch if libCSteamworks.so is not available. ## libsteam_api.so is required by libCSteamworks.so. UNITY3D_PLUGINS=' libCSteamworks.so libsteam_api.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-night-in-the-woods.sh0000755000000000000000000001003214471751340015600 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # Night in the Woods # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20201009.1 # Set game-specific variables GAME_ID='night-in-the-woods' GAME_NAME='Night in the Woods' ARCHIVES_LIST=' ARCHIVE_ITCH_0' ARCHIVE_ITCH_0='night-in-the-woods-linux.zip' ARCHIVE_ITCH_0_URL='https://finji.itch.io/night-in-the-woods' ARCHIVE_ITCH_0_MD5='d51538671aa56a49964984f17a27a69c' ARCHIVE_ITCH_0_SIZE='6100000' ARCHIVE_ITCH_0_VERSION='406-itch' ARCHIVE_ITCH_0_TYPE='zip' ARCHIVE_DOC_DATA_PATH='.' ARCHIVE_DOC_DATA_FILES='README.png' ARCHIVE_GAME_BIN32_PATH='.' ARCHIVE_GAME_BIN32_FILES='Night?in?the?Woods.x86 Night?in?the?Woods_Data/Mono/x86 Night?in?the?Woods_Data/Plugins/x86' ARCHIVE_GAME_BIN64_PATH='.' ARCHIVE_GAME_BIN64_FILES='Night?in?the?Woods.x86_64 Night?in?the?Woods_Data/Mono/x86_64 Night?in?the?Woods_Data/Plugins/x86_64' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='Night?in?the?Woods_Data' DATA_DIRS='./logs' APP_MAIN_TYPE='native' APP_MAIN_PRERUN='# Work around Unity3D poor support for non-US locales export LANG=C' APP_MAIN_EXE_BIN32='Night in the Woods.x86' APP_MAIN_EXE_BIN64='Night in the Woods.x86_64' APP_MAIN_ICON='Night in the Woods_Data/Resources/UnityPlayer.png' # Use a per-session dedicated file for logs # shellcheck disable=SC2016 APP_MAIN_OPTIONS='-logFile ./logs/$(date +%F-%R).log' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID glibc libstdc++" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-nightmares-from-the-deep.sh0000755000000000000000000001121714471751340016755 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Nightmares From the Deep series: # - Nightmares From the Deep 1 # - Nightmares From the Deep 2 # - Nightmares From the Deep 3 # send your bug reports to contact@dotslashplay.it ### script_version=20230818.2 GAME_ID='nightmares-from-the-deep' GAME_ID_EPISODE1="${GAME_ID}-1" GAME_ID_EPISODE2="${GAME_ID}-2" GAME_ID_EPISODE3="${GAME_ID}-3" GAME_NAME='Nightmares From the Deep' GAME_NAME_EPISODE1="${GAME_NAME}: The Cursed Heart" GAME_NAME_EPISODE2="${GAME_NAME} 2: The Sirenʼs Call" GAME_NAME_EPISODE3="${GAME_NAME} 3: Davy Jones" # Archives ## This installer used to be sold by gog.com, ## but has been dropped from their store on 2022-01-30. ARCHIVE_BASE_EPISODE1_0='nightmares_from_the_deep_the_cursed_heart_en_gog_1_22620.sh' ARCHIVE_BASE_EPISODE1_0_MD5='9978e7f6b340574f855d530c65752bab' ARCHIVE_BASE_EPISODE1_0_SIZE='1000000' ARCHIVE_BASE_EPISODE1_0_VERSION='1.0-gog22620' ## This installer used to be sold by gog.com, ## but has been dropped from their store on 2022-01-30. ARCHIVE_BASE_EPISODE2_0='nightmares_from_the_deep_2_the_siren_s_call_en_gog_1_22645.sh' ARCHIVE_BASE_EPISODE2_0_MD5='668260739c20276cfaac8dc3c6efdbb6' ARCHIVE_BASE_EPISODE2_0_SIZE='1200000' ARCHIVE_BASE_EPISODE2_0_VERSION='1.0-gog22645' ## This installer used to be sold by gog.com, ## but has been dropped from their store on 2022-01-30. ARCHIVE_BASE_EPISODE3_0='nightmares_from_the_deep_3_davy_jones_en_gog_1_22689.sh' ARCHIVE_BASE_EPISODE3_0_MD5='e5d0d8122840ba20e5d23d4c0524b6b0' ARCHIVE_BASE_EPISODE3_0_SIZE='1500000' ARCHIVE_BASE_EPISODE3_0_VERSION='1.0-gog22689' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN32_FILES=' NightmaresFromTheDeep_*_i386' CONTENT_GAME_BIN64_FILES=' NightmaresFromTheDeep_*_amd64' CONTENT_GAME_DATA_FILES=' Game out Game.cub Game_en.cub game.json' APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32_EPISODE1='NightmaresFromTheDeep_TheCursedHeart_i386' APP_MAIN_EXE_BIN64_EPISODE1='NightmaresFromTheDeep_TheCursedHeart_amd64' APP_MAIN_EXE_BIN32_EPISODE2='NightmaresFromTheDeep_TheSirensCall_i386' APP_MAIN_EXE_BIN64_EPISODE2='NightmaresFromTheDeep_TheSirensCall_amd64' APP_MAIN_EXE_BIN32_EPISODE3='NightmaresFromTheDeep_DavyJones_i386' APP_MAIN_EXE_BIN64_EPISODE3='NightmaresFromTheDeep_DavyJones_amd64' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' 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_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS_EPISODE1="$PKG_DATA_ID_EPISODE1" PKG_BIN_DEPS_EPISODE2="$PKG_DATA_ID_EPISODE2" PKG_BIN_DEPS_EPISODE3="$PKG_DATA_ID_EPISODE3" PKG_BIN32_DEPS_EPISODE1="$PKG_BIN_DEPS_EPISODE1" PKG_BIN32_DEPS_EPISODE2="$PKG_BIN_DEPS_EPISODE2" PKG_BIN32_DEPS_EPISODE3="$PKG_BIN_DEPS_EPISODE3" PKG_BIN64_DEPS_EPISODE1="$PKG_BIN_DEPS_EPISODE1" PKG_BIN64_DEPS_EPISODE2="$PKG_BIN_DEPS_EPISODE2" PKG_BIN64_DEPS_EPISODE3="$PKG_BIN_DEPS_EPISODE3" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXext.so.6 libXinerama.so.1' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN_DEPENDENCIES_LIBRARIES_EPISODE1="$PKG_BIN_DEPENDENCIES_LIBRARIES libidn.so.11" PKG_BIN32_DEPENDENCIES_LIBRARIES_EPISODE1="$PKG_BIN_DEPENDENCIES_LIBRARIES_EPISODE1" PKG_BIN64_DEPENDENCIES_LIBRARIES_EPISODE1="$PKG_BIN_DEPENDENCIES_LIBRARIES_EPISODE1" # 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers APP_MAIN_EXE_BIN32=$(context_value 'APP_MAIN_EXE_BIN32') APP_MAIN_EXE_BIN64=$(context_value 'APP_MAIN_EXE_BIN64') for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-nihilumbra.sh0000755000000000000000000001074714471751340014323 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Nihilumbra # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210527.7 # Set game-specific variables GAME_ID='nihilumbra' GAME_NAME='Nihilumbra' ARCHIVE_BASE_32BIT_0='Nihilumbra-1.35-linux32.tar.gz' ARCHIVE_BASE_32BIT_0_MD5='24ba59112bdb95b05651ebe48ec5882d' ARCHIVE_BASE_32BIT_0_SIZE='2400000' ARCHIVE_BASE_32BIT_0_VERSION='1.35-humble150122' ARCHIVE_BASE_32BIT_0_URL='https://www.humblebundle.com/store/nihilumbra' ARCHIVE_BASE_64BIT_0='Nihilumbra-1.35-linux64.tar.gz' ARCHIVE_BASE_64BIT_0_MD5='18aa096020cedea4f208ca55f7e5c85f' ARCHIVE_BASE_64BIT_0_SIZE='2400000' ARCHIVE_BASE_64BIT_0_VERSION='1.35-humble150122' ARCHIVE_BASE_64BIT_0_URL='https://www.humblebundle.com/store/nihilumbra' ARCHIVE_GAME_BIN_PATH_32BIT='Nihilumbra-1.35-linux32' ARCHIVE_GAME_BIN_PATH_64BIT='Nihilumbra-1.35-linux64' ARCHIVE_GAME_BIN_FILES='Nihilumbra Nihilumbra_Data/Mono Nihilumbra_Data/Plugins' ARCHIVE_GAME_DATA_PATH_32BIT='Nihilumbra-1.35-linux32' ARCHIVE_GAME_DATA_PATH_64BIT='Nihilumbra-1.35-linux64' ARCHIVE_GAME_DATA_FILES='icon*.png icon*.xpm Nihilumbra_Data' APP_MAIN_TYPE='native' APP_MAIN_EXE='Nihilumbra' APP_MAIN_ICONS_LIST='APP_MAIN_ICON_32 APP_MAIN_ICON_48_PNG APP_MAIN_ICON_48_XPM APP_MAIN_ICON_64 APP_MAIN_ICON_128' APP_MAIN_ICON_32='icon32x32.png' APP_MAIN_ICON_48_PNG='icon48x48.png' APP_MAIN_ICON_48_XPM='icon48x48.xpm' APP_MAIN_ICON_64='icon64x64.png' APP_MAIN_ICON_128='icon128x128.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH_32BIT='32' PKG_BIN_ARCH_64BIT='64' PKG_BIN_DEPS="${PKG_DATA_ID} glibc libstdc++ glx xcursor libxrandr gtk2 freetype libGLU.so.1 libX11.so.6" # Use a per-session dedicated file for logs APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a per-session dedicated file for logs mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Work around Unity3D poor support for non-US locales APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Work around Unity3D poor support for non-US locales export LANG=C' # Load common functions target_version='2.14' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" set_standard_permissions "${PLAYIT_WORKDIR}/gamedata" prepare_package_layout # Get game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-nine-noir-lives.sh0000755000000000000000000000551214471751340015201 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Nine Noir Lives # send your bug reports to contact@dotslashplay.it ### script_version=20231126.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion ## Demo - Delete the broken 256×256 icon. case "$(current_archive)" in ('ARCHIVE_BASE_DEMO_'*) 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 set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-no-mans-sky.sh0000755000000000000000000000501214471751340014332 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # No Man's Sky # send your bug reports to contact@dotslashplay.it ### script_version=20230731.3 GAME_ID='no-mans-sky' GAME_NAME='No Manʼs Sky' ARCHIVE_BASE_0='setup_no_mans_sky_experimental_54853_(34267).exe' ARCHIVE_BASE_0_MD5='c9a4884cf0158412f5feb2f34006b69d' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_no_mans_sky_experimental_54853_(34267)-1.bin' ARCHIVE_BASE_0_PART1_MD5='60db3050ffeb6db013c1170e6641d734' ARCHIVE_BASE_0_PART2='setup_no_mans_sky_experimental_54853_(34267)-2.bin' ARCHIVE_BASE_0_PART2_MD5='91569361327142cc6855b46450f0f44b' ARCHIVE_BASE_0_PART3='setup_no_mans_sky_experimental_54853_(34267)-3.bin' ARCHIVE_BASE_0_PART3_MD5='a75187db1de93e9bd66fa0b7d1ac7ef7' ARCHIVE_BASE_0_VERSION='54853-gog34267' ARCHIVE_BASE_0_SIZE='9600000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/no_mans_sky' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' binaries languagesetup.exe' CONTENT_GAME_DATA_FILES=' gamedata' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/HelloGames/NMS' USER_PERSISTENT_DIRECTORIES=' binaries/settings' APP_MAIN_EXE='binaries/nms.exe' APP_LANGUAGE_ID="${GAME_ID}-language-selector" APP_LANGUAGE_NAME="$GAME_NAME - Language Selector" APP_LANGUAGE_CAT='Settings' APP_LANGUAGE_EXE='languagesetup.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-no-pineapple-left-behind.sh0000755000000000000000000000454314471751340016734 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # No Pineapple Left Behind # send your bug reports to contact@dotslashplay.it ### script_version=20231109.4 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='no-pineapple-left-behind' GAME_NAME='No Pineapple Left Behind' ARCHIVE_BASE_0_NAME='gog_no_pineapple_left_behind_2.4.0.7.sh' ARCHIVE_BASE_0_MD5='8134abbdbc068f3305a54a41f32820bc' ARCHIVE_BASE_0_SIZE='7100000' ARCHIVE_BASE_0_VERSION='1.1.0-gog2.4.0.7' ARCHIVE_BASE_0_URL='https://www.gog.com/game/no_pineapple_left_behind' UNITY3D_NAME='nplb' ## The game does not start if the CSteamworks library is not provided. UNITY3D_PLUGINS=' libCSteamworks.so libsteam_api.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' launchers_write set_current_package 'PKG_BIN32' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-noctropolis.sh0000755000000000000000000000376514471751340014546 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Noctropolis # send your bug reports to contact@dotslashplay.it ### script_version=20230207.1 GAME_ID='noctropolis' GAME_NAME='Noctropolis' ARCHIVE_BASE_0='noctropolis_en_1_0_16066.sh' ARCHIVE_BASE_0_MD5='08bc9c0135daa87ffa4059706442687b' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='640000' ARCHIVE_BASE_0_VERSION='1.0-gog16066' ARCHIVE_BASE_0_URL='https://www.gog.com/game/noctropolis' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' noctropolis' CONTENT_GAME_DATA_FILES=' DARK DE ES FR' CONTENT_DOC_DATA_FILES=' LICENSE.ogg-vorbis.txt README.txt README-SDL.txt' APP_MAIN_EXE='noctropolis' PACKAGES_LIST='PKG_DATA PKG_BIN' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 libSDL2-2.0.so.0 libSDL2_mixer-2.0.so.0 libstdc++.so.6 libz.so.1' # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-noita.sh0000755000000000000000000000571714471751340013304 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Noita # send your bug reports to contact@dotslashplay.it ### script_version=20240110.6 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='noita' GAME_NAME='Noita' ARCHIVE_BASE_0_NAME='setup_noita_20231221-_050_(69862).exe' ARCHIVE_BASE_0_MD5='106a6244f5d69eccfb690e2a5d5e3100' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1446784' ARCHIVE_BASE_0_VERSION='2023.12.21-gog69862' ARCHIVE_BASE_0_URL='https://www.gog.com/game/noita' CONTENT_PATH_DEFAULT='.' ## TODO: Check if the Galaxy library is required. CONTENT_GAME_BIN_FILES=' tools_modding fmod.dll fmodstudio.dll galaxy.dll lua51.dll msvcp120.dll msvcr120.dll sdl2.dll noita.exe noita_dev.exe config.xml' CONTENT_GAME_DATA_FILES=' data mods' CONTENT_DOC_DATA_FILES=' licenses _branch.txt _release_notes.txt _version_hash.txt readme.txt screenshot_paths.txt' USER_PERSISTENT_DIRECTORIES=' mods' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Nolla_Games_Noita' ## The game will fail to start unless Microsoft Visual C++ 2013 libraries are available. WINE_WINETRICKS_VERBS='vcrun2013' APP_MAIN_EXE='noita.exe' APP_MAIN_ICON='data/icon.bmp' ## The game crashes on launch when the Wayland backend of SDL is used. APP_MAIN_PRERUN='# The game crashes on launch when the Wayland backend of SDL is used if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Convert icon to standard resolutions 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Convert icon to standard resolutions. icon_source=$(icon_path 'APP_MAIN_ICON') convert "$icon_source" -resize 64x64 'icon_64.png' convert "$icon_source" -resize 96x96 'icon_96.png' ) # Include game data ## Convert icon to standard resolutions. APP_MAIN_ICON_64='icon_64.png' APP_MAIN_ICON_96='icon_96.png' APP_MAIN_ICONS_LIST="$(application_icons_list 'APP_MAIN') APP_MAIN_ICON_64 APP_MAIN_ICON_96" set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-nonsense-at-nightfall.sh0000755000000000000000000000775714471751340016400 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Nonsense at Nightfall # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210401.1 # Set game-specific variables GAME_ID='nonsense-at-nightfall' GAME_NAME='Nonsense at Nightfall' ARCHIVE_ITCH='Nonsense at Nightfall.zip' ARCHIVE_ITCH_URL='https://siegfriedcroes.itch.io/nonsense-at-nightfall' ARCHIVE_ITCH_MD5='0fc2ea596776428f659a15acfb20dba6' ARCHIVE_ITCH_SIZE='41000' ARCHIVE_ITCH_VERSION='1.0-itch' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='Nonsense?at?Nightfall.exe Nonsense?at?Nightfall_Data/Managed MonoBleedingEdge UnityCrashHandler32.exe UnityPlayer.dll' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='Nonsense?at?Nightfall_Data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='Nonsense at Nightfall.exe' APP_MAIN_ICON='Nonsense at Nightfall.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" set_standard_permissions "$PLAYIT_WORKDIR/gamedata" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Use persistent storage for game settings REGISTRY_KEY='HKEY_CURRENT_USER\Software\Siegfried Croes\Nonsense at Nightfall' REGISTRY_DUMP='registry-dumps/settings.reg' CONFIG_DIRS="${CONFIG_DIRS} ./$(dirname "$REGISTRY_DUMP")" APP_MAIN_PRERUN="$APP_MAIN_PRERUN # Set path for persistent dump of registry keys REGISTRY_KEY='$REGISTRY_KEY' REGISTRY_DUMP='$REGISTRY_DUMP'" APP_MAIN_POSTRUN="$APP_MAIN_POSTRUN"' # Dump registry keys regedit -E "$REGISTRY_DUMP" "$REGISTRY_KEY"' APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Load dump of registry keys if [ -e "$REGISTRY_DUMP" ]; then wine regedit.exe "$REGISTRY_DUMP" fi' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-norco.sh0000755000000000000000000000474514471751340013312 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Mopi set -o errexit ### # Norco # send your bug reports to contact@dotslashplay.it ### script_version=20230709.2 GAME_ID='norco' GAME_NAME='Norco' ARCHIVE_BASE_0='setup_norco_v1.4.4_(64bit)_(60635).exe' ARCHIVE_BASE_0_MD5='5bfcef9964c93e24752a8e85af5df3fd' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='3400000' ARCHIVE_BASE_0_VERSION='1.4.4-gog60635' ARCHIVE_BASE_0_URL='https://www.gog.com/en/game/norco' UNITY3D_NAME='norco' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_data/plugins *.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/GeographyOfRobots/norco' APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Set up a WINE virtual desktop on first launch, using the current desktop resolution ## This seems to prevent focus issues leading to the inability to interact with some in-game menus. PKG_BIN_DEPS="${PKG_BIN_DEPS:-} xrandr sed" sed_expression='s/.*primary.* ([0-9]+x[0-9]+).*/\1/p' sed_options="--regexp-extended --silent --expression='$sed_expression'" APP_WINETRICKS="${APP_WINETRICKS:-} vd=\$(LANG=C xrandr | sed $sed_options)" # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files rm --recursive \ '__redist' \ 'app' \ 'commonappdata' \ 'tmp' ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-nowhere-prophet.sh0000755000000000000000000000572614471751340015320 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Nowhere Prophet # send your bug reports to contact@dotslashplay.it ### script_version=20230129.1 GAME_ID='nowhere-prophet' GAME_NAME='Nowhere Prophet' UNITY3D_NAME='NowhereProphet' ARCHIVE_BASE_0='nowhere_prophet_1_07_013_ichcha_49715.sh' ARCHIVE_BASE_0_MD5='a88b8aaf466ffffb0f9515b5e53d2366' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='660000' ARCHIVE_BASE_0_VERSION='1.07.013-gog49715' ARCHIVE_BASE_0_URL='https://www.gog.com/game/nowhere_prophet' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN32_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins/x86" CONTENT_LIBS_BIN32_FILES=' ScreenSelector.so' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/MonoBleedingEdge/x86" CONTENT_LIBS_BIN64_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_LIBS_BIN64_FILES=' ScreenSelector.so' CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/MonoBleedingEdge/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data/Managed ${UNITY3D_NAME}_Data/MonoBleedingEdge/etc ${UNITY3D_NAME}_Data/Resources ${UNITY3D_NAME}_Data/StreamingAssets ${UNITY3D_NAME}_Data/boot.config ${UNITY3D_NAME}_Data/globalgamemanagers ${UNITY3D_NAME}_Data/ScreenSelector.png ${UNITY3D_NAME}_Data/level? ${UNITY3D_NAME}_Data/*.assets ${UNITY3D_NAME}_Data/*.assets.resS ${UNITY3D_NAME}_Data/*.resource" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPENDENCIES_LIBRARIES=' ld-linux-x86-64.so.2 libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN32_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-nyx-quest.sh0000755000000000000000000000403614471751340014140 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Nyx Quest # send your bug reports to contact@dotslashplay.it ### script_version=20230404.1 GAME_ID='nyx-quest' GAME_NAME='NyxQuest: Kindred Spirits' ARCHIVE_BASE_0='setup_nyxquest_kindred_spirits_1.3_(36614).exe' ARCHIVE_BASE_0_MD5='eb9e6d7fd8136bbf581ab350fe7bb85b' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='160000' ARCHIVE_BASE_0_VERSION='1.3-gog36614' ARCHIVE_BASE_0_URL='https://www.gog.com/game/nyxquest_kindred_spirits' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' devil.dll openal32.dll wrap_oal.dll nyxquest.exe' CONTENT_GAME_DATA_FILES=' datapc nyx_icon.ico' CONTENT_DOC_DATA_FILES=' manual.pdf' APP_WINE_LINK_DIRS=' userdata:users/${USER}/Documents/Over the Top Games/NyxQuest' USER_PERSISTENT_DIRECTORIES=' userdata' APP_MAIN_EXE='nyxquest.exe' APP_MAIN_ICON='nyx_icon.ico' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-oceans-heart.sh0000755000000000000000000000673514471751340014544 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Ocean's Heart # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20211202.1 # Set game-specific variables GAME_ID='oceans-heart' GAME_NAME='Ocean’s Heart' ARCHIVE_BASE_0='setup_oceans_heart_1.0.2(6)_(64bit)_(46977).exe' ARCHIVE_BASE_0_MD5='38550d8340ea0a7ad61b41aeabd13c3d' ARCHIVE_BASE_0_SIZE='250000' ARCHIVE_BASE_0_VERSION='1.0.2.6-gog46977' ARCHIVE_BASE_0_URL='https://www.gog.com/game/oceans_heart' ARCHIVE_DOC_DATA_PATH='.' ARCHIVE_DOC_DATA_FILES=' license.solarus.txt license.txt' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES=' oceans-heart.exe *.dll' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES=' data.solarus' APP_MAIN_TYPE='wine' APP_MAIN_EXE='oceans-heart.exe' APP_MAIN_ICON='oceans-heart.exe' PACKAGES_LIST='PKG_DATA PKG_BIN' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Use persistent storage for game progress APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/AppData/Roaming/OceansHeart' DATA_DIRS="$DATA_DIRS ./userdata" # Load common functions target_version='2.14' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-octodad-dadliest-catch.sh0000755000000000000000000000432114471751340016444 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2018 BetaRays set -o errexit ### # Octodad Dadliest Catch # send your bug reports to contact@dotslashplay.it ### script_version=20230625.1 GAME_ID='octodad-dadliest-catch' GAME_NAME='Octodad Dadliest Catch' ARCHIVE_BASE_0='OctodadDadliestCatch1.2.19351.tar.gz' ARCHIVE_BASE_0_MD5='df1ded6c02d856a23c2dba919c3be40a' ARCHIVE_BASE_0_SIZE='3000000' ARCHIVE_BASE_0_VERSION='1.2.19351-humble170512' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/octodad-dadliest-catch' CONTENT_PATH_DEFAULT='Octodad Dadliest Catch' CONTENT_LIBS_BIN_FILES=' libfmodevent-4.44.30.so libfmodex-4.44.30.so' CONTENT_GAME_BIN_FILES=' OctodadDadliestCatch' CONTENT_GAME_DATA_FILES=' Content icon_512x512.png' USER_PERSISTENT_FILES=' *.odad *.txt *.xml' APP_MAIN_EXE='OctodadDadliestCatch' APP_MAIN_ICON='icon_512x512.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6' # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-oddworld-abes-oddysee.sh0000755000000000000000000000443314471751340016344 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Oddworld: Abe's Oddysee # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220705.1 GAME_ID='oddworld-abes-oddysee' GAME_NAME='Oddworld: Abeʼs Oddysee' ARCHIVE_BASE_1='setup_abes_oddysee_1.0_(19071).exe' ARCHIVE_BASE_1_MD5='1c60cd9f43cc6392fc7c5185580eb048' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='650000' ARCHIVE_BASE_1_VERSION='1.0-gog19071' ARCHIVE_BASE_1_URL='https://www.gog.com/game/oddworld_abes_oddysee' ARCHIVE_BASE_0='setup_abes_oddysee_2.0.0.4.exe' ARCHIVE_BASE_0_MD5='c22a44d208e524dc2760ea6ce57829d5' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='660000' ARCHIVE_BASE_0_VERSION='2.1-gog2.0.0.4' CONTENT_PATH_DEFAULT='app' ARCHIVE_DOC_DATA_FILES=' *.txt *.pdf' ARCHIVE_GAME_BIN_FILES=' abewin.exe' ARCHIVE_GAME_DATA_FILES=' *.ddv *.lvl' APP_MAIN_TYPE='wine' APP_MAIN_EXE='abewin.exe' APP_MAIN_ICON='abewin.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Use persistent storage for user data DATA_DIRS='save' DATA_FILES='*.ini' # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-old-mans-journey.sh0000755000000000000000000000672114471751340015371 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Old Man's Journey # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210818.3 # Set game-specific variables GAME_ID='old-mans-journey' GAME_NAME='Old Man’s Journey' ARCHIVE_BASE_0='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' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES=' *.dll *.exe Old?Mans?Journey_Data/Mono Old?Mans?Journey_Data/Plugins' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES=' Old?Mans?Journey_Data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='Old Mans Journey.exe' APP_MAIN_ICON='Old Mans Journey.exe' PACKAGES_LIST='PKG_DATA PKG_BIN' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Use persistent storage for game progress APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/AppData/LocalLow/Broken Rules/Old Man' DATA_DIRS="$DATA_DIRS ./userdata" # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-old-world.sh0000755000000000000000000000720314471751340014065 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Old World # send your bug reports to contact@dotslashplay.it ### script_version=20230213.1 GAME_ID='old-world' GAME_NAME='Old World' ARCHIVE_BASE_3='setup_old_world_63874_(64bit)_(60139).exe' ARCHIVE_BASE_3_MD5='b437df7671daf99926d7bcff6843348e' ARCHIVE_BASE_3_TYPE='innosetup' ARCHIVE_BASE_3_PART1='setup_old_world_63874_(64bit)_(60139)-1.bin' ARCHIVE_BASE_3_PART1_MD5='9dc2fcaec2c5e31c5c7256ec978ff5de' ARCHIVE_BASE_3_PART2='setup_old_world_63874_(64bit)_(60139)-2.bin' ARCHIVE_BASE_3_PART2_MD5='8aec1dbb9dea13dc7a9dcf818c51b22c' ARCHIVE_BASE_3_SIZE='7900000' ARCHIVE_BASE_3_VERSION='1.0.63874-gog60139' ARCHIVE_BASE_3_URL='https://www.gog.com/game/old_world' ARCHIVE_BASE_2='setup_old_world_62874_(64bit)_(58888).exe' ARCHIVE_BASE_2_MD5='3a99a52001d9a8c610b761a0dbd0eaa8' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_PART1='setup_old_world_62874_(64bit)_(58888)-1.bin' ARCHIVE_BASE_2_PART1_MD5='6d31bb8588a9a470f8b0fc8560b01d5e' ARCHIVE_BASE_2_PART2='setup_old_world_62874_(64bit)_(58888)-2.bin' ARCHIVE_BASE_2_PART2_MD5='2ced4111b8b6fd2e33e4b76301055bb1' ARCHIVE_BASE_2_SIZE='7900000' ARCHIVE_BASE_2_VERSION='1.0.62874-gog58888' ARCHIVE_BASE_1='setup_old_world_62798_(64bit)_(58769).exe' ARCHIVE_BASE_1_MD5='4d733db625917e8a837be046ec899749' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1='setup_old_world_62798_(64bit)_(58769)-1.bin' ARCHIVE_BASE_1_PART1_MD5='91d87895e8ffbc1b8d84096df5dc3efb' ARCHIVE_BASE_1_PART2='setup_old_world_62798_(64bit)_(58769)-2.bin' ARCHIVE_BASE_1_PART2_MD5='8e2d4632a8bd92ecf58d8f167740c255' ARCHIVE_BASE_1_SIZE='7900000' ARCHIVE_BASE_1_VERSION='1.0.62798-gog58769' ARCHIVE_BASE_0='setup_old_world_62443_(64bit)_(58285).exe' ARCHIVE_BASE_0_MD5='9d4c86d9c1de385ed3dcf61faf0fd3c9' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_old_world_62443_(64bit)_(58285)-1.bin' ARCHIVE_BASE_0_PART1_MD5='f1e9ae7126b81bd023e48003642ae310' ARCHIVE_BASE_0_PART2='setup_old_world_62443_(64bit)_(58285)-2.bin' ARCHIVE_BASE_0_PART2_MD5='1b676c5d29f196efbab51fdac0cade5a' ARCHIVE_BASE_0_SIZE='7900000' ARCHIVE_BASE_0_VERSION='1.0.62443-gog58285' UNITY3D_NAME='oldworld' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_data/plugins monobleedingedge *.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data reference" APP_MAIN_EXE="${UNITY3D_NAME}.exe" APP_WINE_LINK_DIRS=' userdata:users/${USER}/Documents/My Games/OldWorld' USER_PERSISTENT_DIRECTORIES=' userdata' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-one-eyed-lee-and-the-dinner-party.sh0000755000000000000000000000777114471751340020374 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # One Eyed Lee and the Dinner Party # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20200925.3 # Set game-specific variables GAME_ID='one-eyed-lee-and-the-dinner-party' GAME_NAME='One Eyed Lee and the Dinner Party' ARCHIVES_LIST=' ARCHIVE_ITCH_0' ARCHIVE_ITCH_0='One-EyedLeeandtheDinnerParty LINUX.bz2' ARCHIVE_ITCH_0_MD5='786e5ab1fec14f0319c9c3dd3a746cac' ARCHIVE_ITCH_0_TYPE='tar' ARCHIVE_ITCH_0_URL='https://darkchibishadow.itch.io/one-eyed-lee-and-the-dinner-party' ARCHIVE_ITCH_0_SIZE='520000' ARCHIVE_ITCH_0_VERSION='1.0-itch1' ARCHIVE_GAME_BIN32_PATH='One-EyedLeeandtheDinnerParty-1.0-linux' ARCHIVE_GAME_BIN32_FILES='lib/linux-i686 One-EyedLeeandtheDinnerParty.sh' ARCHIVE_GAME_BIN64_PATH='One-EyedLeeandtheDinnerParty-1.0-linux' ARCHIVE_GAME_BIN64_FILES='lib/linux-x86_64' ARCHIVE_GAME_DATA_PATH='One-EyedLeeandtheDinnerParty-1.0-linux' ARCHIVE_GAME_DATA_FILES='lib/pythonlib2.7 game One-EyedLeeandtheDinnerParty.py renpy' APP_MAIN_TYPE='native' APP_MAIN_EXE='One-EyedLeeandtheDinnerParty.sh' APP_MAIN_ICON='game/icon.ico' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID glibc libstdc++" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Copy launching script between the binaries packages LAUNCHER_SOURCE="${PKG_BIN32_PATH}${PATH_GAME}/$APP_MAIN_EXE" LAUNCHER_DESTINATION="${PKG_BIN64_PATH}${PATH_GAME}/$APP_MAIN_EXE" mkdir --parents "$(dirname "$LAUNCHER_DESTINATION")" cp "$LAUNCHER_SOURCE" "$LAUNCHER_DESTINATION" # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-one-eyed-lee-prologue.sh0000755000000000000000000000763614471751340016276 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # One Eyed Lee : Prologue # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20200925.1 # Set game-specific variables GAME_ID='one-eyed-lee-prologue' GAME_NAME='One Eyed Lee : Prologue' ARCHIVES_LIST=' ARCHIVE_ITCH_0' ARCHIVE_ITCH_0='One-Eyed Lee Prologue PC.zip' ARCHIVE_ITCH_0_MD5='d3c2ca1ef052cd59dd3619ea2c1cde96' ARCHIVE_ITCH_0_TYPE='zip' ARCHIVE_ITCH_0_URL='https://darkchibishadow.itch.io/one-eyed-lee-prologue' ARCHIVE_ITCH_0_SIZE='350000' ARCHIVE_ITCH_0_VERSION='1.0-itch1' ARCHIVE_GAME_BIN32_PATH='oneeyedleeprologue-1.0-pc' ARCHIVE_GAME_BIN32_FILES='lib/linux-i686 oneeyedleeprologue.sh' ARCHIVE_GAME_BIN64_PATH='oneeyedleeprologue-1.0-pc' ARCHIVE_GAME_BIN64_FILES='lib/linux-x86_64' ARCHIVE_GAME_DATA_PATH='oneeyedleeprologue-1.0-pc' ARCHIVE_GAME_DATA_FILES='lib/pythonlib2.7 game log.txt oneeyedleeprologue.py renpy' DATA_DIRS='game/saves' APP_MAIN_TYPE='native' APP_MAIN_EXE='oneeyedleeprologue.sh' APP_MAIN_ICON='game/icon.ico' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID glibc libstdc++" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Copy launching script between the binaries packages LAUNCHER_SOURCE="${PKG_BIN32_PATH}${PATH_GAME}/$APP_MAIN_EXE" LAUNCHER_DESTINATION="${PKG_BIN64_PATH}${PATH_GAME}/$APP_MAIN_EXE" mkdir --parents "$(dirname "$LAUNCHER_DESTINATION")" cp "$LAUNCHER_SOURCE" "$LAUNCHER_DESTINATION" # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-one-hand-clapping.sh0000755000000000000000000000424214471751340015446 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Mopi set -o errexit ### # One Hand Clapping # send your bug reports to contact@dotslashplay.it ### script_version=20230706.1 GAME_ID='one-hand-clapping' GAME_NAME='One Hand Clapping' ARCHIVE_BASE_0='setup_one_hand_clapping_1.0.41_release_(54430).exe' ARCHIVE_BASE_0_MD5='039da011a24466dc791b91c34ba1f6a3' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='950000' ARCHIVE_BASE_0_VERSION='1.0.41-gog54430' ARCHIVE_BASE_0_URL='https://www.gog.com/game/one_hand_clapping' UNITY3D_NAME='one hand clapping' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_data/plugins monobleedingedge unityplayer.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Bad Dream Games/One Hand Clapping' APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files rm --recursive \ '__redist' \ 'app' \ 'commonappdata' \ 'tmp' ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-order-of-the-thorne.sh0000755000000000000000000000627514471751340015762 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Order of the Thorne # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220901.1 GAME_ID='order-of-the-thorne' GAME_NAME='Order of the Thorne: The Kingʼs Challenge' ARCHIVE_BASE_0='gog_order_of_the_thorne_the_king_s_challenge_2.0.0.1.sh' ARCHIVE_BASE_0_MD5='16dde031dcfb730be1d94bde77306b0d' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='790000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.1' ARCHIVE_BASE_0_URL='https://www.gog.com/game/order_of_the_thorne_the_kings_challenge' CONTENT_PATH_DEFAULT='data/noarch/game' ARCHIVE_GAME_BIN32_SHIPPED_FILES=' ags-setup.x86 OotTTKC.bin.x86 lib' ARCHIVE_GAME_BIN64_SHIPPED_FILES=' ags-setup.x86_64 OotTTKC.bin.x86_64 lib64' ARCHIVE_GAME_DATA_FILES=' acsetup.cfg agsgame.dat modules.lst *.vox' ARCHIVE_DOC_DATA_FILES=' licenses' APP_MAIN_ICONS_LIST='APP_MAIN_ICON' APP_MAIN_ICON='oott-tkc.png' APP_SCUMMVM_TYPE='scummvm' APP_SCUMMVM_SCUMMID='ags:oott' APP_SHIPPED_TYPE='native' APP_SHIPPED_LIB_BIN32_SHIPPED='lib' APP_SHIPPED_LIB_BIN64_SHIPPED='lib64' APP_SHIPPED_EXE_BIN32_SHIPPED='OotTTKC.bin.x86' APP_SHIPPED_EXE_BIN64_SHIPPED='OotTTKC.bin.x86_64' PACKAGES_LIST='PKG_BIN_SCUMMVM PKG_BIN32_SHIPPED PKG_BIN64_SHIPPED PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ID="$GAME_ID" PKG_BIN_SCUMMVM_ID="${PKG_BIN_ID}-scummvm" PKG_BIN_SCUMMVM_PROVIDE="$PKG_BIN_ID" PKG_BIN_SCUMMVM_DEPS="$PKG_DATA_ID scummvm" PKG_BIN32_SHIPPED_ARCH='32' PKG_BIN32_SHIPPED_ID="${PKG_BIN_ID}-shipped" PKG_BIN32_SHIPPED_PROVIDE="$PKG_BIN_ID" PKG_BIN32_SHIPPED_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6" PKG_BIN64_SHIPPED_ARCH='64' PKG_BIN64_SHIPPED_ID="$PKG_BIN32_SHIPPED_ID" PKG_BIN64_SHIPPED_PROVIDE="$PKG_BIN_ID" PKG_BIN64_SHIPPED_DEPS="$PKG_BIN32_SHIPPED_DEPS" # Load common functions target_version='2.17' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion 'APP_MAIN' # Include game data prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN_SCUMMVM' launchers_write 'APP_SCUMMVM' PKG='PKG_BIN32_SHIPPED' launchers_write 'APP_SHIPPED' PKG='PKG_BIN64_SHIPPED' launchers_write 'APP_SHIPPED' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions printf '\n' printf 'ScummVM:' print_instructions 'PKG_DATA' 'PKG_BIN_SCUMMVM' printf 'Shipped engine:' print_instructions 'PKG_DATA' 'PKG_BIN32_SHIPPED' 'PKG_BIN64_SHIPPED' exit 0 games/play-ori-and-the-blind-forest.sh0000755000000000000000000000633714471751340016666 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2021 Thomas Vasileiou set -o errexit ### # Ori and the Blind Forest # send your bug reports to contact@dotslashplay.it ### script_version=20231005.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='ori-and-the-blind-forest' GAME_NAME='Ori and the Blind Forest' ARCHIVE_BASE_1_NAME='setup_ori_and_the_blind_forest_definitive_edition_1.0_(28474).exe' ARCHIVE_BASE_1_MD5='510199277acd79e434ceaccf9b28a71c' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_ori_and_the_blind_forest_definitive_edition_1.0_(28474)-1.bin' ARCHIVE_BASE_1_PART1_MD5='44382e02153ed54ab4ed182c252fe9f5' ARCHIVE_BASE_1_PART2_NAME='setup_ori_and_the_blind_forest_definitive_edition_1.0_(28474)-2.bin' ARCHIVE_BASE_1_PART2_MD5='c8c12108e5e7cebd46a7a78c995a5f1a' ARCHIVE_BASE_1_SIZE='11000000' ARCHIVE_BASE_1_VERSION='1.0-gog28474' ARCHIVE_BASE_1_URL='https://www.gog.com/game/ori_and_the_blind_forest_definitive_edition' ARCHIVE_BASE_0_NAME='setup_ori_and_the_blind_forest_de_2.0.0.2.exe' ARCHIVE_BASE_0_MD5='1dedfb0663ebbe82d051a62dc68149b5' ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS='--lowercase --gog' ARCHIVE_BASE_0_PART1_NAME='setup_ori_and_the_blind_forest_de_2.0.0.2-1.bin' ARCHIVE_BASE_0_PART1_MD5='d5ec4ea264c372a4fdd52b5ecbd9efe6' ARCHIVE_BASE_0_PART1_EXTRACTOR='unar' ARCHIVE_BASE_0_PART2_NAME='setup_ori_and_the_blind_forest_de_2.0.0.2-2.bin' ARCHIVE_BASE_0_PART2_MD5='94c3d33701eadca15df9520de55f6f03' ARCHIVE_BASE_0_SIZE='11000000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.2' UNITY3D_NAME='oride' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='game' ARCHIVE_GAME_DATA_ASSETS_FILES=" ${UNITY3D_NAME}_data/*.assets ${UNITY3D_NAME}_data/*.assets.ress" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Local Settings/Application Data/Ori and the Blind Forest DE' APP_MAIN_OPTIONS='-force-d3d9' PACKAGES_LIST='PKG_BIN PKG_DATA_ASSETS PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_ASSETS_ID="${PKG_DATA_ID}-assets" PKG_DATA_ASSETS_DESCRIPTION="$PKG_DATA_DESCRIPTION - assets" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_ASSETS_ID" ## Ensure easy upgrade from packages generated using pre-20211129.5 game script PKG_DATA_ASSETS_PROVIDES=' ori-and-the-blind-forest-assets' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data PKG='PKG_DATA' icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-orwell-1.sh0000755000000000000000000000700414471751340013623 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Orwell 1 # send your bug reports to contact@dotslashplay.it ### script_version=20231109.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='orwell-1' GAME_NAME='Orwell' ARCHIVE_BASE_2_NAME='orwell_1_4_7424_39231.sh' ARCHIVE_BASE_2_MD5='8ac1915d9de7532717730b7f33a544b9' ARCHIVE_BASE_2_SIZE='570000' ARCHIVE_BASE_2_VERSION='1.4.7424.gog39231' ARCHIVE_BASE_2_URL='https://www.gog.com/game/orwell' ARCHIVE_BASE_1_NAME='orwell_en_1_21_21014.sh' ARCHIVE_BASE_1_MD5='8fcd84cd3989175d1da377c78e1b4ff2' ARCHIVE_BASE_1_SIZE='360000' ARCHIVE_BASE_1_VERSION='1.21-gog21014' ARCHIVE_BASE_0_NAME='gog_orwell_2.0.0.1.sh' ARCHIVE_BASE_0_MD5='471470546952015fce024bdcb5431a07' ARCHIVE_BASE_0_SIZE='630000' ARCHIVE_BASE_0_VERSION='1.1-gog2.0.0.1' UNITY3D_NAME='Orwell' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_DOC_DATA_FILES=' *.txt' FAKE_HOME_PERSISTENT_DIRECTORIES=' My Games/Orwell' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Check for the presence of optional extra archives ## The original game icon is not provided by the GOG installer for Orwell 1.4. ## Other archives can use the default icon paht for Unity3D games. case "$(context_archive)" in ('ARCHIVE_BASE_2') ARCHIVE_OPTIONAL_ICONS_NAME='orwell-1_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5='acb6711e5f6b26828097b2828f74e522' ARCHIVE_OPTIONAL_ICONS_URL='https://downloads.dotslashplay.it/games/orwell-1/' archive_initialize_optional \ 'ARCHIVE_ICONS' \ 'ARCHIVE_OPTIONAL_ICONS' ;; esac # Extract game data archive_extraction_default ## TODO: The library should provide a function to check if a given optional archive has been provided. if [ -n "$(archive_path 'ARCHIVE_ICONS' 2>/dev/null || true)" ]; then archive_extraction 'ARCHIVE_ICONS' fi # Include game data ## The original game icon is not provided by the GOG installer for Orwell 1.4. ## Other archives can use the default icon path for Unity3D games. ## TODO: The library should provide a function to check if a given optional archive has been provided. if [ -n "$(archive_path 'ARCHIVE_ICONS' 2>/dev/null || true)" ]; then CONTENT_ICONS_DATA_PATH='.' CONTENT_ICONS_DATA_FILES=' 128x128' content_inclusion 'ICONS_DATA' 'PKG_DATA' "$(path_icons)" else case "$(context_archive)" in ('ARCHIVE_BASE_2') APP_MAIN_ICON='../support/icon.png' ;; esac PKG='PKG_DATA' icons_inclusion fi content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-orwell-2.sh0000755000000000000000000000461714471751340013633 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Orwell 2 # send your bug reports to contact@dotslashplay.it ### script_version=20230105.3 GAME_ID='orwell-2' GAME_NAME='Orwell: Ignorance is Strength' UNITY3D_NAME='Ignorance' ARCHIVE_BASE_1='orwell_ignorance_is_strength_en_1_1_6771_23686_22333.sh' ARCHIVE_BASE_1_MD5='a69fb6e02fdce982cb3a56b2b32a70e6' ARCHIVE_BASE_1_TYPE='mojosetup' ARCHIVE_BASE_1_SIZE='730000' ARCHIVE_BASE_1_VERSION='1.1.6771.23686-gog22333' ARCHIVE_BASE_1_URL='https://www.gog.com/game/orwell_ignorance_is_strength' ARCHIVE_BASE_0='orwell_ignorance_is_strength_en_1_11_21014.sh' ARCHIVE_BASE_0_MD5='3d50e953ad7029ac9a292bcc9b137426' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='730000' ARCHIVE_BASE_0_VERSION='1.1.6717.28986-gog21014' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono ${UNITY3D_NAME}_Data/Plugins" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" CONTENT_DOC_DATA_FILES=' *.txt' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' ld-linux-x86-64.so.2 libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions target_version='2.20' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game data PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-osmos.sh0000755000000000000000000000457214471751340013330 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Osmos # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220705.1 GAME_ID='osmos' GAME_NAME='Osmos' ARCHIVE_BASE_0='Osmos_1.6.1.tar.gz' ARCHIVE_BASE_0_MD5='ed2cb029c20c25de719c28062e6fc9cf' ARCHIVE_BASE_0_SIZE='32000' ARCHIVE_BASE_0_VERSION='1.6.1-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/osmos' CONTENT_PATH_DEFAULT='Osmos' ARCHIVE_DOC_DATA_FILES=' *.txt *.html' ARCHIVE_GAME_BIN32_FILES=' Osmos.bin32' ARCHIVE_GAME_BIN64_FILES=' Osmos.bin64' ARCHIVE_GAME_DATA_FILES=' *.cfg *.loc Fonts Icons Sounds Textures' APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32='Osmos.bin32' APP_MAIN_EXE_BIN64='Osmos.bin64' for icon_size in 16 22 32 36 48 64 72 96 128 192 256; do APP_MAIN_ICONS_LIST="$APP_MAIN_ICONS_LIST APP_MAIN_ICON_${icon_size}" export APP_MAIN_ICON_${icon_size}="Icons/${icon_size}x${icon_size}.png" done PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID libc.so.6 libopenal.so.1 libGLU.so.1 libvorbisfile.so.3" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Use persistent storage for user data DATA_FILES='*.cfg' # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-our-life-beginning-and-always.sh0000755000000000000000000000442614471751340017704 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Our Life: Beginnings & Always # send your bug reports to contact@dotslashplay.it ### script_version=20230409.1 GAME_ID='our-life-beginning-and-always' GAME_NAME='Our Life: Beginnings & Always' ARCHIVE_BASE_0='our_life_beginnings_always_1_6_2_59318.sh' ARCHIVE_BASE_0_MD5='543ec491817a024342902bd379d56fe6' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='860000' ARCHIVE_BASE_0_VERSION='1.6.2-gog59318' ARCHIVE_BASE_0_URL='https://www.gog.com/game/our_life_beginnings_always' RENPY_NAME='OurLife' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/lib/linux-x86_64" CONTENT_LIBS_BIN_FILES=' librenpython.so' CONTENT_GAME_BIN_FILES=" lib/linux-x86_64/python lib/linux-x86_64/pythonw lib/linux-x86_64/zsync lib/linux-x86_64/zsyncmake lib/linux-x86_64/${RENPY_NAME}" CONTENT_GAME_DATA_FILES=" game renpy lib/python2.7 ${RENPY_NAME}.py" APP_MAIN_EXE="lib/linux-x86_64/${RENPY_NAME}" APP_MAIN_ICON='icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libGL.so.1 libm.so.6 libpthread.so.0 libutil.so.1' # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-out-of-line.sh0000755000000000000000000000435014471751340014320 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Out of Line # send your bug reports to contact@dotslashplay.it ### script_version=20230328.3 GAME_ID='out-of-line' GAME_NAME='Out of Line' ARCHIVE_BASE_0='setup_out_of_line_1.0.1.2_(50411).exe' ARCHIVE_BASE_0_MD5='5cf39c90da563dc21776536b1904b0df' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1500000' ARCHIVE_BASE_0_VERSION='1.0.1.2-gog50411' ARCHIVE_BASE_0_URL='https://www.gog.com/game/out_of_line' UNITY3D_NAME='out of line' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" monobleedingedge ${UNITY3D_NAME}_data/plugins ${UNITY3D_NAME}.exe unitycrashhandler64.exe unityplayer.dll winpixeventruntime.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/LocalLow/Nerd Monkeys/Out of Line' USER_PERSISTENT_FILES=' userdata/achievements.save userdata/gamesave.save userdata/options.save' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' # Load common functions target_version='2.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 . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-out-there.sh0000755000000000000000000000717414471751340014105 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Out There # send your bug reports to contact@dotslashplay.it ### script_version=20231005.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='out-there' GAME_NAME='Out There: Ω Edition' ARCHIVE_BASE_LINUX_0_NAME='OutThere2-4-2Linux.zip' ARCHIVE_BASE_LINUX_0_MD5='8ea51a42c9ad221e3d258e404c7106b0' ARCHIVE_BASE_LINUX_0_SIZE='340000' ARCHIVE_BASE_LINUX_0_VERSION='2.4.2-humble170213' ARCHIVE_BASE_LINUX_0_URL='https://www.humblebundle.com/store/out-there-edition' ## Support for the Windows version is included because of poor mouse support in the Linux build. ARCHIVE_BASE_WINDOWS_0_NAME='OutThere2-4-2.zip' ARCHIVE_BASE_WINDOWS_0_MD5='8b23dde3778ade4db73a3ed76c4134cd' ARCHIVE_BASE_WINDOWS_0_SIZE='300000' ARCHIVE_BASE_WINDOWS_0_VERSION='2.4.2-humble170213' ARCHIVE_BASE_WINDOWS_0_URL='https://www.humblebundle.com/store/out-there-edition' UNITY3D_NAME_LINUX='OutThereOmega' UNITY3D_NAME_WINDOWS='outthereomega' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Local Settings/Application Data/MiClos Studio/OutThereOmegaEdition' PACKAGES_LIST_LINUX='PKG_LINUX_BIN32 PKG_LINUX_BIN64 PKG_DATA' PACKAGES_LIST_WINDOWS='PKG_WINDOWS_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_LINUX="${PKG_DATA_ID}-linux" PKG_DATA_ID_WINDOWS="${PKG_DATA_ID}-windows" PKG_DATA_PROVIDES=" $PKG_DATA_ID" PKG_DATA_DESCRIPTION='data' PKG_BIN_ID="$GAME_ID" PKG_LINUX_BIN_ID="${PKG_BIN_ID}-linux" PKG_LINUX_BIN32_ID="$PKG_LINUX_BIN_ID" PKG_LINUX_BIN64_ID="$PKG_LINUX_BIN_ID" PKG_LINUX_BIN_PROVIDES=" $PKG_BIN_ID" PKG_LINUX_BIN32_PROVIDES="$PKG_LINUX_BIN_PROVIDES" PKG_LINUX_BIN64_PROVIDES="$PKG_LINUX_BIN_PROVIDES" PKG_LINUX_BIN32_ARCH='32' PKG_LINUX_BIN64_ARCH='64' PKG_LINUX_BIN_DEPS="$PKG_DATA_ID" PKG_LINUX_BIN32_DEPS="$PKG_LINUX_BIN_DEPS" PKG_LINUX_BIN64_DEPS="$PKG_LINUX_BIN_DEPS" PKG_LINUX_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_LINUX_BIN32_DEPENDENCIES_LIBRARIES="$PKG_LINUX_BIN_DEPENDENCIES_LIBRARIES" PKG_LINUX_BIN64_DEPENDENCIES_LIBRARIES="$PKG_LINUX_BIN_DEPENDENCIES_LIBRARIES" PKG_WINDOWS_BIN_ID="${PKG_BIN_ID}-windows" PKG_WINDOWS_BIN_PROVIDES=" $PKG_BIN_ID" PKG_WINDOWS_BIN_ARCH='32' PKG_WINDOWS_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete Apple archives junk find . -name '*.rsrc' -delete ) # Include game data PKG='PKG_DATA' icons_inclusion content_inclusion_default # Write launchers case "$(context_archive)" in ('ARCHIVE_BASE_LINUX_'*) PKG='PKG_BIN32' launchers_write PKG='PKG_BIN64' launchers_write ;; ('ARCHIVE_BASE_WINDOWS_'*) PKG='PKG_BIN' launchers_write ;; esac # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-overboard.sh0000755000000000000000000000407114471751340014145 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Overboard # send your bug reports to contact@dotslashplay.it ### script_version=20230409.1 GAME_ID='overboard' GAME_NAME='Overboard!' ARCHIVE_BASE_0='setup_overboard_1.3.1_(64bit)_(48184).exe' ARCHIVE_BASE_0_MD5='7b8ad8c5b7325f9d7904880c1b72d064' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='210000' ARCHIVE_BASE_0_VERSION='1.3.1-gog48184' ARCHIVE_BASE_0_URL='https://www.gog.com/game/overboard' UNITY3D_NAME='overboard!' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_data/plugins ${UNITY3D_NAME}.exe monobleedingedge unitycrashhandler64.exe galaxy64.dll galaxycsharpglue.dll unityplayer.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/LocalLow/Inkle Ltd/Overboard!' USER_PERSISTENT_DIRECTORIES=' userdata' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-overgrowth.sh0000755000000000000000000000527414471751340014376 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Overgrowth # send your bug reports to contact@dotslashplay.it ### script_version=20230930.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='overgrowth' GAME_NAME='Overgrowth' ARCHIVE_BASE_0='overgrowth-1.4.0_build-5584-linux64.zip' ARCHIVE_BASE_0_MD5='748f6888386d842193218c53396ac844' ARCHIVE_BASE_0_SIZE='22000000' ARCHIVE_BASE_0_VERSION='1.4.0.5584-humble' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/overgrowth' CONTENT_PATH_DEFAULT='Overgrowth' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/lib64" ## The game binary is linked against libsteam_api.so. CONTENT_LIBS_BIN_FILES=' libsteam_api.so' CONTENT_GAME_BIN_FILES=' Overgrowth.bin.x86_64' CONTENT_GAME_TEXTURES_TERRAIN_FILES=' Data/Textures/Terrain' CONTENT_GAME_TEXTURES_FILES=' Data/Textures' CONTENT_GAME_DATA_FILES=' Data' USER_PERSISTENT_DIRECTORIES=' Data/Levels Data/Mods Data/Scripts' APP_MAIN_EXE='Overgrowth.bin.x86_64' APP_MAIN_ICON='Data/Textures/ui/ogicon.png' PACKAGES_LIST='PKG_BIN PKG_TEXTURES_TERRAIN PKG_TEXTURES PKG_DATA' PKG_TEXTURES_TERRAIN_ID="${GAME_ID}-textures-terrain" PKG_TEXTURES_TERRAIN_DESCRIPTION='textures - terrain' PKG_TEXTURES_ID="${GAME_ID}-textures" PKG_TEXTURES_DESCRIPTION='textures' PKG_TEXTURES_DEPS="$PKG_TEXTURES_TERRAIN_ID" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPS="$PKG_TEXTURES_ID" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libfreeimage.so.3 libgcc_s.so.1 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libopenal.so.1 libpthread.so.0 libSDL2-2.0.so.0 libSDL2_net-2.0.so.0 libstdc++.so.6 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN32' launchers_write PKG='PKG_BIN64' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-overload.sh0000755000000000000000000000441014471751340013772 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Overload # send your bug reports to contact@dotslashplay.it ### script_version=20230713.1 GAME_ID='overload' GAME_NAME='Overload' ARCHIVE_BASE_0='overload_1_1_1886_38734.sh' ARCHIVE_BASE_0_MD5='63a7aa141098ec0b15ce1e01eec21f6b' ARCHIVE_BASE_0_SIZE='7300000' ARCHIVE_BASE_0_VERSION='1.1-gog38734' ARCHIVE_BASE_0_URL='https://www.gog.com/game/overload' UNITY3D_NAME='Overload' ## The game fails to start if libCSteamworks.so is not found, ## and libsteam_api.so is a requirement of libCSteamworks.so. UNITY3D_PLUGINS=' libCSteamworks.so libsteam_api.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_DOC_DATA_FILES=' Licenses.txt ReadMe.txt' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN32_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.25' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icon PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build package packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-owlboy.sh0000755000000000000000000001031314471751340013471 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Owlboy # send your bug reports to contact@dotslashplay.it ### script_version=20230129.1 GAME_ID='owlboy' GAME_NAME='Owlboy' ARCHIVE_BASE_0='owlboy-01302020-bin' ARCHIVE_BASE_0_MD5='0d8d67c79b9359ee4b79913b6b640465' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='550000' ARCHIVE_BASE_0_VERSION='1.3.7013.40718-humble200130' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/owlboy' ARCHIVE_BASE_MULTIARCH_3='owlboy-03152019-bin' ARCHIVE_BASE_MULTIARCH_3_MD5='2966b183f43f220ade646cb3f7872c49' ARCHIVE_BASE_MULTIARCH_3_TYPE='mojosetup' ARCHIVE_BASE_MULTIARCH_3_SIZE='550000' ARCHIVE_BASE_MULTIARCH_3_VERSION='1.3.7013.40178-humble190325' ARCHIVE_BASE_MULTIARCH_2='owlboy-12292017.bin' ARCHIVE_BASE_MULTIARCH_2_MD5='c2e99502013c7d2529bc2aefb6416dcf' ARCHIVE_BASE_MULTIARCH_2_TYPE='mojosetup' ARCHIVE_BASE_MULTIARCH_2_SIZE='570000' ARCHIVE_BASE_MULTIARCH_2_VERSION='1.3.6564.30139-humble1' ARCHIVE_BASE_MULTIARCH_1='owlboy-11022017-bin' ARCHIVE_BASE_MULTIARCH_1_MD5='d3a1e4753a604431c58eb1ea26c35543' ARCHIVE_BASE_MULTIARCH_1_TYPE='mojosetup' ARCHIVE_BASE_MULTIARCH_1_SIZE='570000' ARCHIVE_BASE_MULTIARCH_1_VERSION='1.3.6515.19883-humble171102' ARCHIVE_BASE_MULTIARCH_0='owlboy-05232017-bin' ARCHIVE_BASE_MULTIARCH_0_MD5='f35fba69fadffbf498ca8a38dbceeac1' ARCHIVE_BASE_MULTIARCH_0_TYPE='mojosetup' ARCHIVE_BASE_MULTIARCH_0_SIZE='570000' ARCHIVE_BASE_MULTIARCH_0_VERSION='1.2.6382.15868-humble1' CONTENT_PATH_DEFAULT='data' CONTENT_GAME_MAIN_FILES=' content monoconfig monomachineconfig Owlboy.bmp Owlboy.exe FNA.dll FNA.dll.config GamedevUtility.dll MoonSharp.Interpreter.dll SharpFont.dll SharpFont.dll.config TimSort.dll' CONTENT_DOC_MAIN_FILES=' Linux.README' USER_PERSISTENT_FILES=' content/fonts/*.ini content/localizations/*/speechbubbleconfig.ini' APP_MAIN_EXE='Owlboy.exe' APP_MAIN_ICON='Owlboy.bmp' PKG_MAIN_DEPS='mono' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libFAudio.so.0 libfreetype.so.6 libGL.so.1 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0 libudev.so.1' PKG_MAIN_DEPENDENCIES_MONO_LIBRARIES=' mscorlib.dll Mono.Posix.dll Mono.Security.dll System.dll System.Configuration.dll System.Core.dll System.Data.dll System.Design.dll System.Drawing.dll System.Management.dll System.Numerics.dll System.Runtime.Serialization.dll System.Security.dll System.Transactions.dll System.Xml.dll' # Include shipped libraries that can not be replaced by system ones CONTENT_LIBS_LIBS32_PATH="${CONTENT_PATH_DEFAULT}/lib" CONTENT_LIBS_LIBS32_FILES=' libmojoshader.so libXNAFileDialog.so' CONTENT_LIBS_LIBS64_PATH="${CONTENT_PATH_DEFAULT}/lib64" CONTENT_LIBS_LIBS64_FILES=' libmojoshader.so libXNAFileDialog.so' PACKAGES_LIST='PKG_MAIN PKG_LIBS64' PACKAGES_LIST_MULTIARCH='PKG_MAIN PKG_LIBS32 PKG_LIBS64' PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS32_ID="$PKG_LIBS_ID" PKG_LIBS32_ARCH='32' PKG_LIBS64_ID="$PKG_LIBS_ID" PKG_LIBS64_ARCH='64' PKG_MAIN_DEPS="$PKG_MAIN_DEPS $PKG_LIBS_ID" # Convert .ini files to Unix-style line separators SCRIPT_DEPS="$SCRIPT_DEPS find dos2unix" # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Convert .ini files to Unix-style line separators find . -type f -name '*.ini' \ -exec dos2unix --quiet '{}' + ) # Include game icon icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-oxenfree.sh0000755000000000000000000000532314471751340013776 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 set -o errexit ### # Oxenfree # send your bug reports to contact@dotslashplay.it ### script_version=20230930.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='oxenfree' GAME_NAME='Oxenfree' ARCHIVE_BASE_GOG_1='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='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' ARCHIVE_BASE_ITCH_0='oxenfree-release-linux.zip' ARCHIVE_BASE_ITCH_0_MD5='54469a9bf98bc08125e69fc4612f390b' ARCHIVE_BASE_ITCH_0_SIZE='3000000' ARCHIVE_BASE_ITCH_0_VERSION='2.7.1f8-20190208' ARCHIVE_BASE_ITCH_0_URL='https://night-school-studio.itch.io/oxenfree' 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_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN32' launchers_write PKG='PKG_BIN64' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-pacapong.sh0000755000000000000000000000365414471751340013760 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Pacapong # send your bug reports to contact@dotslashplay.it ### script_version=20230818.1 GAME_ID='pacapong' GAME_NAME='Pacapong' ARCHIVE_BASE_0='pacapong_linux.zip' ARCHIVE_BASE_0_MD5='658c091abea7305cd0a33d367c251cc3' ARCHIVE_BASE_0_SIZE='8800' ARCHIVE_BASE_0_VERSION='1.0-itch1' ARCHIVE_BASE_0_URL='https://kingpenguin.itch.io/pacapong' CONTENT_PATH_DEFAULT='pacapong' CONTENT_GAME_BIN_FILES=' runner' CONTENT_GAME_DATA_FILES=' assets' APP_MAIN_EXE='runner' APP_MAIN_ICON='assets/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libssl.so.1.0.0 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 libz.so.1' # Load common functions 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-pan-pan.sh0000755000000000000000000000424214471751340013514 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Pan-Pan # send your bug reports to contact@dotslashplay.it ### script_version=20231109.3 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='pan-pan' GAME_NAME='Pan-Pan' ARCHIVE_BASE_1_NAME='gog_pan_pan_2.1.0.3.sh' ARCHIVE_BASE_1_MD5='8ed86bee78bd42b531d2969c898d0dc4' ARCHIVE_BASE_1_SIZE='120000' ARCHIVE_BASE_1_VERSION='1.0.3-gog2.1.0.3' ARCHIVE_BASE_1_URL='https://www.gog.com/game/panpan' ARCHIVE_BASE_0_NAME='gog_pan_pan_2.1.0.2.sh' ARCHIVE_BASE_0_MD5='a258086331e913f8cf8110983da234d1' ARCHIVE_BASE_0_SIZE='120000' ARCHIVE_BASE_0_VERSION='1.0.3-gog2.1.0.2' UNITY3D_NAME='PAN-PAN' ## The game does not start if the CSteamworks library is not provided. UNITY3D_PLUGINS=' libCSteamworks.so libsteam_api.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-pandemonium.sh0000755000000000000000000000416014471751340014475 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Emmanuel Gil Peyrot # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Pandemonium # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220701.1 GAME_ID='pandemonium' GAME_NAME='Pandemonium!' ARCHIVE_BASE_0='setup_pandemonium_2.0.0.15.exe' ARCHIVE_BASE_0_MD5='dee53eb1c87be925d64e75ea01eca74f' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.15' ARCHIVE_BASE_0_SIZE='130000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/pandemonium' CONTENT_PATH_DEFAULT='app' ARCHIVE_GAME_BIN_FILES=' *.bat *.cnf *.exe *.dll' ARCHIVE_GAME_DATA_FILES=' *.pkg' APP_MAIN_TYPE='wine' APP_MAIN_EXE='pandy.exe' APP_MAIN_ICON='app/gfw_high.ico' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine libGL.so.1" # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( content_path=$(content_path_default) cd "${PLAYIT_WORKDIR}/gamedata/${content_path}" mv pandy3.exe pandy.exe mv full3.cnf resource.cnf ) prepare_package_layout # Include game icon PKG='PKG_DATA' icons_get_from_workdir 'APP_MAIN' # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-panmorphia.sh0000755000000000000000000000727014471751340014324 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # Panmorphia # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20201023.1 # Set game-specific variables GAME_ID='panmorphia' GAME_NAME='Panmorphia' ARCHIVES_LIST=' ARCHIVE_ITCH_0' ARCHIVE_ITCH_0='Panmorphia_LinuxNew.zip' ARCHIVE_ITCH_0_URL='https://lkmad.itch.io/panmorphia' ARCHIVE_ITCH_0_MD5='09b08b517c792ca4ea4f0ccf5151fd95' ARCHIVE_ITCH_0_SIZE='250000' ARCHIVE_ITCH_0_VERSION='1.0-itch' ARCHIVE_ITCH_0_TYPE='zip' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='Panmorphia.x86_64 Panmorphia_Data/Mono*/x86_64 Panmorphia_Data/Plugins/x86_64 Panmorphia_Data/Managed' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='Panmorphia_Data' DATA_DIRS='./logs' APP_MAIN_TYPE='native' APP_MAIN_PRERUN='# Work around Unity3D poor support for non-US locales export LANG=C' APP_MAIN_EXE='Panmorphia.x86_64' APP_MAIN_ICON='Panmorphia_Data/Resources/UnityPlayer.png' # Use a per-session dedicated file for logs # shellcheck disable=SC2016 APP_MAIN_OPTIONS='-logFile ./logs/$(date +%F-%R).log' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID glibc libstdc++ gtk2 libgdk_pixbuf-2.0.so.0 libgobject-2.0.so.0 libglib-2.0.so.0" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" set_standard_permissions "$PLAYIT_WORKDIR/gamedata" prepare_package_layout # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-paper-sorcerer.sh0000755000000000000000000000450514471751340015115 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Paper Sorcerer # send your bug reports to contact@dotslashplay.it ### script_version=20221210.1 GAME_ID='paper-sorcerer' GAME_NAME='Paper Sorcerer' UNITY3D_NAME='PaperSorcererLinux' ARCHIVE_BASE_0='PaperSorcerer2.5Linux.tar.bz2' ARCHIVE_BASE_0_MD5='243a14601379175b840e6878b211fe1a' ARCHIVE_BASE_0_SIZE='450000' ARCHIVE_BASE_0_VERSION='2.5-humble150512' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/paper-sorcerer' CONTENT_PATH_DEFAULT='PaperSorcerer2.5Linux' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}.x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}.x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPENDENCIES_LIBRARIES=' ld-linux-x86-64.so.2 libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXext.so.6' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN32_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.19' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-papetura.sh0000755000000000000000000000664514471751340014014 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Papetura # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210903.1 # Set game-specific variables GAME_ID='papetura' GAME_NAME='Papetura' ARCHIVE_BASE_0='setup_papetura_1.1a_(49052).exe' ARCHIVE_BASE_0_MD5='d87f9c1f11d2c86b47d0df52feda06ef' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2200000' ARCHIVE_BASE_0_VERSION='1.1a-gog49052' ARCHIVE_BASE_0_URL='https://www.gog.com/game/papetura' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES=' papetura.exe mono unitycrashhandler32.exe unityplayer.dll' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES=' papetura_data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='papetura.exe' APP_MAIN_ICON='papetura.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="${PKG_DATA_ID} wine" # Use persistent storage for saved games APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/AppData/LocalLow/Petums/Papetura' DATA_DIRS="$DATA_DIRS ./userdata" # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-papo-and-yo.sh0000755000000000000000000000505314471751340014307 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Papo and Yo # send your bug reports to contact@dotslashplay.it ### script_version=20221210.2 GAME_ID='papo-and-yo' GAME_NAME='Papo and Yo' ARCHIVE_BASE_0='PapoYo_linux_1389070953.sh' ARCHIVE_BASE_0_MD5='d8222b87222f4eb05025584bf923da41' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='2000000' ARCHIVE_BASE_0_VERSION='2014010601-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/papo-yo' CONTENT_PATH_DEFAULT='data/noarch' CONTENT_GAME_BIN_PATH='data/x86' CONTENT_GAME_BIN_FILES=' Binaries/Linux/steam_appid.txt Binaries/Linux/PYGame-Linux' CONTENT_LIBS_BIN_PATH='data/x86/Binaries/Linux/lib' CONTENT_LIBS_BIN_FILES=' libsteam_api.so libPhysXCooking.so libPhysXCore.so libtcmalloc.so.0' CONTENT_GAME_DATA_FILES=' Engine PYGame PapoYoIcon.bmp PapoYoIcon.png' CONTENT_DOC_DATA_FILES=' about.html BuildVersion.txt README.linux UpdateLog.txt' APP_MAIN_EXE='Binaries/Linux/PYGame-Linux' APP_MAIN_ICON='PapoYoIcon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' ld-linux.so.2 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' # Run the game binary from its parent directory APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Run the game binary from its parent directory cd "$(dirname "$APP_EXE")" APP_EXE=$(basename "$APP_EXE")' # Load common functions target_version='2.19' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-paradise-killer.sh0000755000000000000000000000476514471751340015244 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Paradise Killer # send your bug reports to contact@dotslashplay.it ### script_version=20230319.1 GAME_ID='paradise-killer' GAME_NAME='Paradise Killer' ARCHIVE_BASE_0='setup_paradise_killer_1.2.04.0_(53942).exe' ARCHIVE_BASE_0_MD5='1d7daf90ae9ddb2516af904154fcec13' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_paradise_killer_1.2.04.0_(53942)-1.bin' ARCHIVE_BASE_0_PART1_MD5='c52a3990f84a9daf47e5e27f2fc68d24' ARCHIVE_BASE_0_SIZE='2200000' ARCHIVE_BASE_0_VERSION='1.2.04.0-gog53942' ARCHIVE_BASE_0_URL='https://www.gog.com/game/paradise_killer' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' paradisekiller.exe paradisekiller/binaries paradisekiller/plugins engine' CONTENT_GAME_DATA_FILES=' paradisekiller' WINE_DIRECT3D_RENDERER='dxvk' APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/Local/ParadiseKiller/Saved' USER_PERSISTENT_DIRECTORIES=' userdata/Config/WindowsNoEditor userdata/SaveGames' APP_MAIN_EXE='paradisekiller.exe' APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=101' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPS_ARCH='gst-plugins-base gst-plugins-good gst-libav' PKG_BIN_DEPS_DEB='gstreamer1.0-plugins-base, gstreamer1.0-plugins-good, gstreamer1.0-libav' PKG_BIN_DEPS_GENTOO='media-libs/gst-plugins-base media-libs/gst-plugins-good media-plugins/gst-plugins-libav' # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-paramedium-1.sh0000755000000000000000000000646514471751340014455 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # Paramedium : A Noise in the Attic # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20201102.1 # Set game-specific variables GAME_ID='paramedium-1' GAME_NAME='Paramedium : A Noise in the Attic' ARCHIVE_ITCH='Paramedium1.rar' ARCHIVE_ITCH_URL='https://dinmoney.itch.io/paramedium' ARCHIVE_ITCH_MD5='7ce9c2a4779fde265a90975ab461b605' ARCHIVE_ITCH_SIZE='540000' ARCHIVE_ITCH_VERSION='1.3-itch' ARCHIVE_GAME_BIN_PATH='Paramedium1.3' ARCHIVE_GAME_BIN_FILES='Paramedium_Data/Plugins Paramedium_Data/Mono UnityPlayer.dll Paramedium.exe' ARCHIVE_GAME_DATA_PATH='Paramedium1.3' ARCHIVE_GAME_DATA_FILES='Paramedium_Data' APP_WINETRICKS='arial' APP_MAIN_TYPE='wine' APP_MAIN_EXE='Paramedium.exe' APP_MAIN_ICON='Paramedium.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID wine winetricks" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-particulars.sh0000755000000000000000000000465214471751340014520 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Particulars # build native packages from the original installers # send your bug reports to contatct@dotslashplay.it ### script_version=20220630.1 GAME_ID='particulars' GAME_NAME='Particulars' ARCHIVE_BASE_0='particulars_lin_latest1416421559.zip' ARCHIVE_BASE_0_MD5='b7b269b8e33d682a2fca5c548928dabf' ARCHIVE_BASE_0_SIZE='1400000' ARCHIVE_BASE_0_VERSION='1.0.0.2-humble141119' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/particulars' UNITY3D_NAME='p_1-0-0-2' CONTENT_PATH_DEFAULT='particulars_1.0.0.2_lin' ARCHIVE_DOC_DATA_FILES=' readme.txt release_notes.txt licenses' ARCHIVE_GAME_BIN_FILES=" ${UNITY3D_NAME} ${UNITY3D_NAME}_Data/Mono ${UNITY3D_NAME}_Data/Plugins libsteam_api.so libSteamworksNative.so" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_TYPE='native' APP_MAIN_EXE="$UNITY3D_NAME" APP_MAIN_ICON="${UNITY3D_NAME}_Data/Resources/UnityPlayer.png" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID libc.so.6 libGLU.so.1 xcursor libxrandr" # Use a dedicated log file for the current game session APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a dedicated log file for the current game session mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-pavilion.sh0000755000000000000000000000453114471751340014004 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi set -o errexit ### # Pavilion # send your bug reports to contact@dotslashplay.it ### script_version=20230625.1 # Set game-specific variables GAME_ID='pavilion' GAME_NAME='Pavilion' ARCHIVE_HUMBLE='Pavilion_Linux_v1.31' ARCHIVE_HUMBLE_URL='https://www.humblebundle.com/store/pavilion' ARCHIVE_HUMBLE_MD5='82fb0659f230ab2b01e79aeb80df1ec3' ARCHIVE_HUMBLE_SIZE='1900000' ARCHIVE_HUMBLE_VERSION='1.31-humble1' ARCHIVE_HUMBLE_TYPE='zip' ARCHIVE_DOC_PATH='Pavilion Linux(v1.31)' ARCHIVE_DOC_FILES='RELEASE_NOTES.txt' ARCHIVE_GAME_BIN_PATH='Pavilion Linux(v1.31)' ARCHIVE_GAME_BIN_FILES='pavilion.x86 pavilion_Data/Mono pavilion_Data/Plugins' ARCHIVE_GAME_DATA_PATH='Pavilion Linux(v1.31)' ARCHIVE_GAME_DATA_FILES='pavilion_Data' DATA_DIRS='./logs' APP_MAIN_TYPE='native' APP_MAIN_EXE='pavilion.x86' APP_MAIN_ICON='pavilion_Data/Resources/UnityPlayer.png' # Common Unity3D tweaks APP_MAIN_PRERUN='# Work around Unity3D poor support for non-US locales export LANG=C' # Use a per-session dedicated file for logs # shellcheck disable=SC2016 APP_MAIN_OPTIONS='-logFile ./logs/$(date +%F-%R).log' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_LIGHTING_ID $PKG_DATA_ID glibc libstdc++ glx libudev1 xcursor libxrandr alsa" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary files rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-peck-n-run.sh0000755000000000000000000000726614471751340014152 0ustar rootroot#!/bin/sh -e set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # Peck N Run # build native Linux packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20201017.2 # Set game-specific variables GAME_ID='peck-n-run' GAME_NAME='Peck N Run' ARCHIVE_ITCH='peck-n-run-windows-release.zip' ARCHIVE_ITCH_URL='https://spiltmilkstudios.itch.io/peck-n-run' ARCHIVE_ITCH_MD5='2b355dea05894f71c248cf0a4583cfb0' ARCHIVE_ITCH_SIZE='410000' ARCHIVE_ITCH_VERSION='1.10-itch' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='PeckNRun.exe PeckNRun_Data/Plugins PeckNRun_Data/Managed MonoBleedingEdge UnityCrashHandler32.exe UnityPlayer.dll' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='PeckNRun_Data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='PeckNRun.exe' APP_MAIN_ICON='PeckNRun.exe' PACKAGES_LIST='PKG_DATA PKG_BIN' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Enable dxvk patches in the WINE prefix case "$OPTION_PACKAGE" in ('deb') APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Install dxvk on first launch if [ ! -e dxvk_installed ]; then sleep 3s dxvk-setup install --development touch dxvk_installed fi' PKG_BIN_DEPS="$PKG_BIN_DEPS dxvk-wine32-development dxvk" ;; ('arch'|'gentoo') APP_WINETRICKS="$APP_WINETRICKS dxvk" PKG_BIN_DEPS="$PKG_BIN_DEPS winetricks" ;; esac # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-pendula-swing.sh0000755000000000000000000000417514471751340014744 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Pendula Swing # send your bug reports to contact@dotslashplay.it ### script_version=20230811.3 GAME_ID='pendula-swing' GAME_NAME='Pendula Swing: The Complete Journey' ARCHIVE_BASE_0='PendulaSwingTheCompleJourney.zip' ARCHIVE_BASE_0_MD5='afbec54341d36c29baa08feb538b9613' ARCHIVE_BASE_0_SIZE='3500000' ARCHIVE_BASE_0_VERSION='3.1.4-itch.2020.06.08' ARCHIVE_BASE_0_URL='https://valiant-game-studio.itch.io/pendula-swing-the-complete-journey' UNITY3D_NAME='PendulaSwing' CONTENT_PATH_DEFAULT='Build' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_Data/Plugins MonoBleedingEdge UnityPlayer.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Valiant Game Studio/PendulaSwing' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icon PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-perimeter.sh0000755000000000000000000000702414471751340014157 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # 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. ### ### # Perimeter # build native packages from the original installers # send your bug reports to vv221@dotslashplay.it ### script_version=20191003.1 # Set game-specific variables GAME_ID='perimeter' GAME_NAME='Perimeter' ARCHIVE_GOG='setup_perimeter_1.03_(19064).exe' ARCHIVE_GOG_URL='https://www.gog.com/game/perimeter' ARCHIVE_GOG_TYPE='innosetup' ARCHIVE_GOG_MD5='a65c86a8de9b938bc070bcbe5900aef2' ARCHIVE_GOG_VERSION='1.03-gog19064' ARCHIVE_GOG_SIZE='3800000' ARCHIVE_GOG_PART1='setup_perimeter_1.03_(19064)-1.bin' ARCHIVE_GOG_PART1_TYPE='innosetup' ARCHIVE_GOG_PART1_MD5='ba08f50e95ce6424d214f57383d338c8' ARCHIVE_DOC_DATA_PATH='app' ARCHIVE_DOC_DATA_FILES='manual.pdf readme.txt' ARCHIVE_GAME0_BIN_PATH='app' ARCHIVE_GAME0_BIN_FILES='*.exe binkw32.dll' ARCHIVE_GAME1_BIN_PATH='app/__support/app' ARCHIVE_GAME1_BIN_FILES='*' ARCHIVE_GAME_DATA_PATH='app' ARCHIVE_GAME_DATA_FILES='perimeter.ico cache_font resource scripts' CONFIG_FILES='./*.ini resource/*.ini' DATA_DIRS='resource/saves' APP_MAIN_TYPE='wine' APP_MAIN_EXE='perimeter.exe' APP_MAIN_ICON='perimeter.ico' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine glx xcursor" # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout rm --recursive "$PLAYIT_WORKDIR/gamedata" # Extract icons PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-phoning-home.sh0000755000000000000000000001055014471751340014551 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Phoning Home # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210906.1 # Set game-specific variables GAME_ID='phoning-home' GAME_NAME='Phoning Home' ARCHIVE_BASE_0='setup_phoning_home_1.4.1_(21995).exe' ARCHIVE_BASE_0_MD5='8e3f9102af055a2efc1355156ac0e64a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_phoning_home_1.4.1_(21995)-1.bin' ARCHIVE_BASE_0_PART1_MD5='ff6b6b6b4aea7335addd43fe611adec4' ARCHIVE_BASE_0_PART1_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='6200000' ARCHIVE_BASE_0_VERSION='1.4.1-gog21995' ARCHIVE_BASE_0_URL='https://www.gog.com/game/phoning_home' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES=' phoninghome.exe phoninghome_data/plugins phoninghome_data/mono' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='phoninghome_data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='phoninghome.exe' APP_MAIN_ICON='phoninghome.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Install required font # Without it, resolution options in the game menu are not shown APP_WINETRICKS="${APP_WINETRICKS} arial" PKG_BIN_DEPS="${PKG_BIN_DEPS} winetricks" # Use persistent storage for user data APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/AppData/LocalLow/Ion Lands/Phoning Home' DATA_FILES="${DATA_FILES} ./userdata/*.phsg" # Use persistent storage for game settings REGISTRY_KEY='HKEY_CURRENT_USER\Software\Ion Lands\Phoning Home' REGISTRY_DUMP='registry-dumps/settings.reg' CONFIG_DIRS="${CONFIG_DIRS} ./$(dirname "$REGISTRY_DUMP")" APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Set path for persistent dump of registry keys REGISTRY_KEY="'"$REGISTRY_KEY"'" REGISTRY_DUMP="'"$REGISTRY_DUMP"'" # Load dump of registry keys if [ -e "$REGISTRY_DUMP" ]; then wine regedit.exe "$REGISTRY_DUMP" fi' APP_MAIN_POSTRUN="$APP_MAIN_POSTRUN"' # Dump registry keys wine regedit.exe -E "$REGISTRY_DUMP" "$REGISTRY_KEY"' # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-pid.sh0000755000000000000000000000411414471751340012734 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Pid # send your bug reports to contact@dotslashplay.it ### script_version=20231104.1 GAME_ID='pid' GAME_NAME='Pid' ARCHIVE_BASE_1='setup_pid_gog-1_(18421).exe' ARCHIVE_BASE_1_MD5='d6cd6899df3b2ad13071f58d0362ab3a' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='1300000' ARCHIVE_BASE_1_VERSION='1.0-gog18421' ARCHIVE_BASE_1_URL='https://www.gog.com/game/pid' ARCHIVE_BASE_0='setup_pid_2.2.0.8.exe' ARCHIVE_BASE_0_MD5='02ebb3db7572b1e6c28dce439a76df9a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1300000' ARCHIVE_BASE_0_VERSION='1.0-gog2.2.0.8' UNITY3D_NAME='pid' CONTENT_PATH_DEFAULT='app' ARCHIVE_GAME_BIN_FILES=" ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_data/mono" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" DATA_DIRS='saves' APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" APP_MAIN_ICON="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game data prepare_package_layout rm --recursive "${PLAYIT_WORKDIR}/gamedata" PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-pier-solar.sh0000755000000000000000000000531014471751340014234 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 HS-157 # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Pier Solar and the Great Architects # send your bug reports to contact@dotslashplay.it ### script_version=20231108.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='pier-solar' GAME_NAME='Pier Solar and the Great Architects' ARCHIVE_BASE_GOG_0_NAME='gog_pier_solar_and_the_great_architects_2.1.0.4.sh' ARCHIVE_BASE_GOG_0_MD5='2de03fb6d69944e3f204d5ae45147a3e' ARCHIVE_BASE_GOG_0_SIZE='2400000' ARCHIVE_BASE_GOG_0_VERSION='1.3.2-gog2.1.0.4' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/pier_solar_and_the_great_architects' ARCHIVE_BASE_HUMBLE_0_NAME='PierSolar_linux.zip' ARCHIVE_BASE_HUMBLE_0_MD5='e5ceda3a75cab3fe9b1ad1cbaf2d4a1d' ARCHIVE_BASE_HUMBLE_0_SIZE='2400000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.3.2-humble1' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/pier-solar-and-the-great-architects-special-edition' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='PierSolar_linux' CONTENT_GAME_BIN64_FILES=' pshd.linux64' CONTENT_GAME_BIN32_FILES=' pshd.linux32' CONTENT_GAME_DATA_FILES=' data icon.png' CONTENT_GAME_DOC_FILES=' README.txt' APP_MAIN_EXE_BIN64='pshd.linux64' APP_MAIN_EXE_BIN32='pshd.linux32' APP_MAIN_ICON='icon.png' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" ## TODO: Update the list of required native libraries. PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libGL.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' launchers_write set_current_package 'PKG_BIN32' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-pikuniku.sh0000755000000000000000000000702114471751340014017 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2018-2020, BetaRays # 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. ### ### # Pikuniku # build native packages from the original installers # send your bug reports to vv221@dotslashplay.it ### script_version=20200705.1 # Set game-specific variables GAME_ID='pikuniku' GAME_NAME='Pikuniku' ARCHIVE_ITCH='Pikuniku_Linux.zip' ARCHIVE_ITCH_URL='https://devolverdigital.itch.io/pikuniku' ARCHIVE_ITCH_MD5='93faafa1fe66c8038c61c87364caf121' ARCHIVE_ITCH_SIZE='350000' ARCHIVE_ITCH_VERSION='1.0.5-itch' ARCHIVE_ITCH_TYPE='zip' ARCHIVE_GAME_BIN32_PATH='.' ARCHIVE_GAME_BIN32_FILES='Pikuniku.x86 Pikuniku_Data/Mono/x86 Pikuniku_Data/Plugins/x86' ARCHIVE_GAME_BIN64_PATH='.' ARCHIVE_GAME_BIN64_FILES='Pikuniku.x86_64 Pikuniku_Data/Mono/x86_64 Pikuniku_Data/Plugins/x86_64' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='Pikuniku_Data' APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32='Pikuniku.x86' APP_MAIN_EXE_BIN64='Pikuniku.x86_64' APP_MAIN_ICON='Pikuniku_Data/Resources/UnityPlayer.png' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID glx xcursor glibc libstdc++ libxrandr gtk2" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout rm --recursive "$PLAYIT_WORKDIR/gamedata" # Extract icons PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launcher_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-pilgrims.sh0000755000000000000000000000415714471751340014015 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Hoël Bézier # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Pilgrims # send your bug reports to contact@dotslashplay.it ### script_version=20231128.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='pilgrims' GAME_NAME='Pilgrims' ARCHIVE_BASE_0_NAME='pilgrims_1_0_8_274_43259.sh' ARCHIVE_BASE_0_MD5='9ca019527382dd91d565ae90c2f4c59e' ARCHIVE_BASE_0_SIZE='548596' ARCHIVE_BASE_0_VERSION='1.0.8.274-gog43259' ARCHIVE_BASE_0_URL='https://www.gog.com/game/pilgrims' UNITY3D_NAME='Pilgrims' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME0_BIN_FILES=" ${UNITY3D_NAME}.x86" APP_MAIN_EXE="${UNITY3D_NAME}.x86" PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-pine.sh0000755000000000000000000000477614471751340013131 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Pine # send your bug reports to contact@dotslashplay.it ### script_version=20230324.1 GAME_ID='pine' GAME_NAME='Pine' ARCHIVE_BASE_0='pine_patch_13_ef57f2e2_41600.sh' ARCHIVE_BASE_0_MD5='0b5efc1376e27b95eed1380eb32ecb34' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='2600000' ARCHIVE_BASE_0_VERSION='1.13-gog41600' ARCHIVE_BASE_0_URL='https://www.gog.com/game/pine' UNITY3D_NAME='Pine' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins" CONTENT_LIBS_BIN_FILES=' libfmodstudioL.so libfmodstudio.so libresonanceaudio.so' CONTENT_GAME_BIN_FILES=" UnityPlayer.so ${UNITY3D_NAME}_Data/MonoBleedingEdge/x86_64 ${UNITY3D_NAME}.x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data/Managed ${UNITY3D_NAME}_Data/MonoBleedingEdge/etc ${UNITY3D_NAME}_Data/Resources ${UNITY3D_NAME}_Data/StreamingAssets ${UNITY3D_NAME}_Data/app.info ${UNITY3D_NAME}_Data/boot.config ${UNITY3D_NAME}_Data/globalgamemanagers ${UNITY3D_NAME}_Data/level? ${UNITY3D_NAME}_Data/level?? ${UNITY3D_NAME}_Data/*.assets ${UNITY3D_NAME}_Data/*.assets.resS ${UNITY3D_NAME}_Data/*.png ${UNITY3D_NAME}_Data/*.resource" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-pink-heaven.sh0000755000000000000000000000353214471751340014370 0ustar rootroot#!/bin/sh # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Pink Heaven # send your bug reports to contact@dotslashplay.it ### script_version=20230625.1 GAME_ID='pink-heaven' GAME_NAME='Pink Heaven' ## This archive is no longer available from the Playism store, ## as they turned into yet another Steam keys reseller. ARCHIVE_BASE_0='PinkHeavenEn-v1430a.zip' ARCHIVE_BASE_0_MD5='7d1b3e193a5ba9618cba1ffb0c977762' ARCHIVE_BASE_0_SIZE='15000' ARCHIVE_BASE_0_VERSION='1.43-playism1430a' CONTENT_PATH_DEFAULT='PinkHeavenEn' CONTENT_GAME_BIN_FILES=' PinkHeaven.exe' CONTENT_GAME_DATA_FILES=' rsc_p' CONTENT_DOC_DATA_FILES=' ReadmeEn.txt' APP_MAIN_EXE='PinkHeaven.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-pink-hour.sh0000755000000000000000000000351414471751340014077 0ustar rootroot#!/bin/sh # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Pink Hour # send your bug reports to contact@dotslashplay.it ### script_version=20230625.1 GAME_ID='pink-hour' GAME_NAME='Pink Hour' ## This archive is no longer available from the Playism store, ## as they turned into yet another Steam keys reseller. ARCHIVE_BASE_0='PinkHourEn-v1430a.zip' ARCHIVE_BASE_0_MD5='7cd38735bf02634474eb8bf5a39439b2' ARCHIVE_BASE_0_SIZE='15000' ARCHIVE_BASE_0_VERSION='1.43-playism1430a' CONTENT_PATH_DEFAULT='PinkHourEn' CONTENT_GAME_BIN_FILES=' PinkHour.exe' CONTENT_GAME_DATA_FILES=' rsc_p' CONTENT_DOC_DATA_FILES=' ReadmeEn.txt' APP_MAIN_EXE='PinkHour.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-pinstripe.sh0000755000000000000000000000713614471751340014204 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Pinstripe # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210709.3 # Set game-specific variables GAME_ID='pinstripe' GAME_NAME='Pinstripe' ARCHIVE_BASE_0='pinstripe_en_2_0_2_21609.sh' ARCHIVE_BASE_0_MD5='369f761e1cb1159838a2ae8f82313a92' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='1500000' ARCHIVE_BASE_0_VERSION='2.1.0-gog21609' ARCHIVE_BASE_0_URL='https://www.gog.com/game/pinstripe' ARCHIVE_GAME_BIN_PATH='data/noarch/game' ARCHIVE_GAME_BIN_FILES='Pinstripe.x86 Pinstripe_Data/*/x86' ARCHIVE_GAME_DATA_PATH='data/noarch/game' ARCHIVE_GAME_DATA_FILES='Pinstripe_Data' APP_MAIN_TYPE='native' APP_MAIN_EXE='Pinstripe.x86' APP_MAIN_ICON='Pinstripe_Data/Resources/UnityPlayer.png' PACKAGES_LIST='PKG_DATA PKG_BIN' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID glibc libstdc++ glx xcursor libxrandr libudev1 gtk2 libX11.so.6 libgdk_pixbuf-2.0.so.0 libgobject-2.0.so.0 libglib-2.0.so.0" # Use a per-session dedicated file for logs APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a per-session dedicated file for logs mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-pirates-gold.sh0000755000000000000000000000443714471751340014562 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Pirates Gold # send your bug reports to contact@dotslashplay.it ### script_version=20221217.4 GAME_ID='pirates-gold' GAME_NAME='Pirates Gold' ARCHIVE_BASE_1='gog_pirates_gold_2.0.0.9.sh' ARCHIVE_BASE_1_MD5='1eec642e9d7337b9456775d110760a80' ARCHIVE_BASE_1_TYPE='mojosetup' ARCHIVE_BASE_1_SIZE='39000' ARCHIVE_BASE_1_VERSION='1.0-gog2.0.0.9' ARCHIVE_BASE_1_URL='https://www.gog.com/game/pirates_gold_plus' ARCHIVE_BASE_0='gog_pirates_gold_2.0.0.8.sh' ARCHIVE_BASE_0_MD5='ea602d91950cffa615abae567f498989' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='39000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.8' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' DATA.DAT MPS PIRATESC PIRATESG.CD' CONTENT_DOC_MAIN_PATH='data/noarch/docs' CONTENT_DOC_MAIN_FILES=' flags.pdf manual.pdf' GAME_IMAGE='DATA.DAT' GAME_IMAGE_TYPE='iso' APP_MAIN_TYPE='dosbox' APP_MAIN_PRERUN='d: cd PIRATESG.CD lh cdpatch %1' APP_MAIN_EXE='PIRATESG.EXE' APP_MAIN_OPTION='%2 %3 %4 %5' APP_MAIN_POSTRUN='cdpatch x' APP_MAIN_ICON='../support/icon.png' PKG_MAIN_DEPS='dosbox' # Load common functions target_version='2.19' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers ## Bypass the binary presence check, ## the game binary is included in the disk image. launcher_target_presence_check() { true ; } launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-pirates.sh0000755000000000000000000000343614471751340013635 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Pirates # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220709.1 GAME_ID='pirates' GAME_NAME='Pirates!' ARCHIVE_BASE_0='gog_pirates_2.0.0.8.sh' ARCHIVE_BASE_0_MD5='885cdb8f2119a278fb15a32cafad64a8' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='12000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.8' ARCHIVE_BASE_0_URL='https://www.gog.com/game/pirates_gold_plus' CONTENT_PATH_DEFAULT='data/noarch/classic/Pirates!' ARCHIVE_GAME_MAIN_FILES=' *' APP_MAIN_TYPE='dosbox' APP_MAIN_EXE='pir.exe' APP_MAIN_ICON="${CONTENT_PATH_DEFAULT}/../../support/icon.png" PKG_MAIN_DEPS='dosbox' # Use persistent storage for user data DATA_FILES='disks' # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Include game icon icons_get_from_workdir 'APP_MAIN' # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-pixel-piracy.sh0000755000000000000000000000505414471751340014572 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 mortalius # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Pixel Piracy # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220706.1 GAME_ID='pixel-piracy' GAME_NAME='Pixel Piracy' ARCHIVE_BASE_GOG_0='gog_pixel_piracy_2.5.0.9.sh' ARCHIVE_BASE_GOG_0_MD5='b689db9e42afa0a83d364f95cfb4d6bf' ARCHIVE_BASE_GOG_0_TYPE='mojosetup' ARCHIVE_BASE_GOG_0_SIZE='290000' ARCHIVE_BASE_GOG_0_VERSION='1.1.21-gog2.5.0.9' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/pixel_piracy' # This DRM-free archive is no longer sold by Humble Bundle ARCHIVE_BASE_HUMBLE_0='pixelpiracy_Linux1.1.21.zip' ARCHIVE_BASE_HUMBLE_0_MD5='18fb2d3f8adf6f320d507653298dc504' ARCHIVE_BASE_HUMBLE_0_SIZE='290000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.1.21-humble150612' UNITY3D_NAME='linux' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='Linux' ARCHIVE_GAME_BIN_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono ${UNITY3D_NAME}_Data/Plugins" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_TYPE='native' APP_MAIN_EXE="${UNITY3D_NAME}.x86" APP_MAIN_ICON="${UNITY3D_NAME}_Data/Resources/UnityPlayer.png" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6 libGLU.so.1 libSDL2-2.0.so.0 xcursor libxrandr" # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' content_path=$(content_path_default) set_standard_permissions "${PLAYIT_WORKDIR}/gamedata/${content_path}" prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-pixross.sh0000755000000000000000000000673014471751340013675 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Pixross # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210724.1 # Set game-specific variables GAME_ID='pixross' GAME_NAME='Pixross' ARCHIVE_BASE_0='Pixross-1.3.0 (Linux).zip' ARCHIVE_BASE_0_MD5='c0dbe9011d184404c4e85f080f417161' ARCHIVE_BASE_0_TYPE='zip' ARCHIVE_BASE_0_SIZE='82000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://kenney.itch.io/pixross' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='Pixross.x86_64' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='Pixross_Data' APP_MAIN_TYPE='native' APP_MAIN_EXE='Pixross.x86_64' APP_MAIN_ICON='Pixross_Data/Resources/UnityPlayer.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="${PKG_DATA_ID} glibc" # Use a per-session dedicated file for logs APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a per-session dedicated file for logs mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" set_standard_permissions "$PLAYIT_WORKDIR/gamedata" prepare_package_layout # Get game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "${PLAYIT_WORKDIR}" # Print instructions print_instructions exit 0 games/play-planet-alpha.sh0000755000000000000000000000507414471751340014534 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Planet Alpha # send your bug reports to contact@dotslashplay.it ### script_version=20230415.1 GAME_ID='planet-alpha' GAME_NAME='Planet Alpha' ARCHIVE_BASE_0='setup_planet_alpha_1.0.5.1_(64bit)_(29703).exe' ARCHIVE_BASE_0_MD5='34accc9442958f022da8a71965bf2fcd' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_planet_alpha_1.0.5.1_(64bit)_(29703)-1.bin' ARCHIVE_BASE_0_PART1_MD5='8e8b478e391a70f6e45e97b6def77155' ARCHIVE_BASE_0_SIZE='8700000' ARCHIVE_BASE_0_VERSION='1.0.5.1-gog29703' ARCHIVE_BASE_0_URL='https://www.gog.com/game/planet_alpha' UNREALENGINE4_NAME='planetalpha' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" engine ${UNREALENGINE4_NAME}/binaries ${UNREALENGINE4_NAME}/plugins ${UNREALENGINE4_NAME}.exe" CONTENT_GAME_DATA_FILES=" ${UNREALENGINE4_NAME}" WINE_DIRECT3D_RENDERER='dxvk' APP_WINE_LINK_DIRS=" userdata:users/\${USER}/AppData/Local/${UNREALENGINE4_NAME}/Saved" USER_PERSISTENT_DIRECTORIES=' userdata/Config/WindowsNoEditor userdata/SaveGames' APP_MAIN_EXE="${UNREALENGINE4_NAME}/binaries/win64/${UNREALENGINE4_NAME}-win64-shipping.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPS_ARCH='gst-plugins-base gst-plugins-good gst-libav' PKG_BIN_DEPS_DEB='gstreamer1.0-plugins-base, gstreamer1.0-plugins-good, gstreamer1.0-libav' PKG_BIN_DEPS_GENTOO='media-libs/gst-plugins-base media-plugins/gst-plugins-good media-libs/gst-plugins-libav' # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-plant-daddy.sh0000755000000000000000000000443614471751340014370 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Plant Daddy # send your bug reports to contact@dotslashplay.it ### script_version=20231002.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='plant-daddy' GAME_NAME='Plant Daddy' ARCHIVE_BASE_2='plantdaddy-linux-1.2.2.zip' ARCHIVE_BASE_2_MD5='e64ec41dec67d889cfac4763147af384' ARCHIVE_BASE_2_SIZE='130000' ARCHIVE_BASE_2_VERSION='1.2.2-itch1' ARCHIVE_BASE_2_URL='https://overfull.itch.io/plantdaddy' ARCHIVE_BASE_1='plantdaddy-linux-1.2.1.zip' ARCHIVE_BASE_1_MD5='1a863b49a4fe6e4c5ad136d808912058' ARCHIVE_BASE_1_SIZE='140000' ARCHIVE_BASE_1_VERSION='1.2.1-itch1' ARCHIVE_BASE_0='plantdaddy-linux-1.2.0.zip' ARCHIVE_BASE_0_MD5='b626d5a0512cc0334749de3ec137c492' ARCHIVE_BASE_0_SIZE='140000' ARCHIVE_BASE_0_VERSION='1.2.0-itch1' UNITY3D_NAME='plantdaddy' UNITY3D_NAME_0='plantdaddy-linux-1.2' UNITY3D_PLUGINS=' libStandaloneFileBrowser.so' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES_0=" ${UNITY3D_NAME}_Data/MonoBleedingEdge UnityPlayer.so plantdaddy-linux-1.2.0" APP_MAIN_EXE_0='plantdaddy-linux-1.2.0' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-3.so.0 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data PKG='PKG_DATA' icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-please-fix-the-road.sh0000755000000000000000000000526614471751340015727 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Mopi set -o errexit ### # Please Fix The Road # send your bug reports to contact@dotslashplay.it ### script_version=20230309.2 GAME_ID='please-fix-the-road' GAME_NAME='Please Fix the Road' ARCHIVE_BASE_0='please_fix_the_road_1_1_7_56794.sh' ARCHIVE_BASE_0_MD5='090724f6715935a3db3c012e2969538e' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='480000' ARCHIVE_BASE_0_VERSION='1.1.7-gog56794' ARCHIVE_BASE_0_URL='https://www.gog.com/en/game/please_fix_the_road' UNITY3D_NAME='Please Fix The Road' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins" ## Include libsteam_api.so to avoid game crashes. CONTENT_LIBS_BIN_FILES=' lib_burst_generated.so libsteam_api.so' CONTENT_LIBS0_BIN_FILES=" UnityPlayer.so" CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/MonoBleedingEdge/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data/Managed ${UNITY3D_NAME}_Data/MonoBleedingEdge/etc ${UNITY3D_NAME}_Data/Resources ${UNITY3D_NAME}_Data/StreamingAssets ${UNITY3D_NAME}_Data/globalgamemanagers ${UNITY3D_NAME}_Data/boot.config ${UNITY3D_NAME}_Data/app.info ${UNITY3D_NAME}_Data/level? ${UNITY3D_NAME}_Data/level?? ${UNITY3D_NAME}_Data/*.assets ${UNITY3D_NAME}_Data/*.assets.resS ${UNITY3D_NAME}_Data/*.resource ${UNITY3D_NAME}_Data/*.json" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-pokemon-insurgence.sh0000755000000000000000000000417114471751340015773 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Pokemon Insurgence # send your bug reports to contact@dotslashplay.it ### script_version=20230425.1 GAME_ID='pokemon-insurgence' GAME_NAME='Pokemon Insurgence' ARCHIVE_BASE_0='Pokemon Insurgence 1.2.5 Core.zip' ARCHIVE_BASE_0_MD5='d992c31fe67ffc0a72c4274caaa4a977' ARCHIVE_BASE_0_SIZE='840000' ARCHIVE_BASE_0_VERSION='1.2.5-insurgence1' ARCHIVE_BASE_0_URL='https://p-insurgence.com/' CONTENT_PATH_DEFAULT='Pokemon Insurgence 1.2.5 Core' CONTENT_GAME_BIN_FILES=' Game.exe Game.ini *.dll' CONTENT_GAME_DATA_FILES=' Audio Data Egglocke Eggs Fonts Graphics Game.rgssad' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Saved Games/Pokemon Insurgence' APP_MAIN_EXE='Game.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' audio/mpeg, mpegversion=(int)1, layer=(int)3' # Ensure availability of fonts expected by the game engine APP_WINETRICKS="$APP_WINETRICKS arial" # 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-political-animals.sh0000755000000000000000000000542614471751340015571 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Political Animals # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220630.1 GAME_ID='political-animals' GAME_NAME='Political Animals' ARCHIVE_BASE_0='gog_political_animals_2.1.0.4.sh' ARCHIVE_BASE_0_MD5='efaab47c43abc738d1dfd358c0894d4d' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='830000' ARCHIVE_BASE_0_VERSION='0080-gog2.1.0.4' ARCHIVE_BASE_0_URL='https://www.gog.com/game/political_animals' UNITY3D_NAME='PoliticalAnimals' CONTENT_PATH_DEFAULT='data/noarch/game' ARCHIVE_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86" ARCHIVE_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32="${UNITY3D_NAME}.x86" APP_MAIN_EXE_BIN64="${UNITY3D_NAME}.x86_64" APP_MAIN_ICON="${UNITY3D_NAME}_Data/Resources/UnityPlayer.png" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID libGLU.so.1 xcursor" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Use a dedicated log file for the current game session APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a dedicated log file for the current game session mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Work around Unity3D poor support for non-US locales APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Work around Unity3D poor support for non-US locales export LANG=C' # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-poly-bridge.sh0000755000000000000000000000513514471751340014401 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Poly Bridge # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220706.1 GAME_ID='poly-bridge' GAME_NAME='Poly Bridge' # This DRM-free archive is no longer sold by Humble Bundle ARCHIVE_BASE_0='polybridge-105-linux.zip' ARCHIVE_BASE_0_MD5='cb7644e3ee055addaa4e7a8a727282cb' ARCHIVE_BASE_0_SIZE='260000' ARCHIVE_BASE_0_VERSION='105-humble180330' UNITY3D_NAME='polybridge' CONTENT_PATH_DEFAULT='polybridge-105-linux' ARCHIVE_DOC_DATA_FILES=' *.pdf' ARCHIVE_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86" ARCHIVE_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32="${UNITY3D_NAME}.x86" APP_MAIN_EXE_BIN64="${UNITY3D_NAME}.x86_64" APP_MAIN_ICON="${UNITY3D_NAME}_Data/Resources/UnityPlayer.png" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID libc.so.6 libGL.so.1 xcursor libxrandr" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Use a dedicated log file for the current game session APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a dedicated log file for the current game session mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-pony-island.sh0000755000000000000000000000443714471751340014425 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Pony Island # build native packages from the original installers # send your bug reports to contatct@dotslashplay.it ### script_version=20220701.1 GAME_ID='pony-island' GAME_NAME='Pony Island' ARCHIVE_BASE_0='ponyisland_linux_v1.20.zip' ARCHIVE_BASE_0_MD5='30c4f063e360de53cdb6a945df82cca4' ARCHIVE_BASE_0_SIZE='360000' ARCHIVE_BASE_0_VERSION='1.20-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/pony-island' UNITY3D_NAME='PonyIsland' CONTENT_PATH_DEFAULT='Linux' ARCHIVE_GAME_BIN_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono ${UNITY3D_NAME}_Data/Plugins" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_TYPE='native' APP_MAIN_EXE="${UNITY3D_NAME}.x86" APP_MAIN_ICON="${UNITY3D_NAME}_Data/Resources/UnityPlayer.png" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID libGLU.so.1 xcursor libxrandr" # Use a dedicated log file for the current game session APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a dedicated log file for the current game session mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-populous-1.sh0000755000000000000000000000613214471751340014206 0ustar rootroot#!/bin/sh -e set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2018-2020, BetaRays # 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. ### ### # Populous # build native packages from the original installers # send your bug reports to vv221@dotslashplay.it ### script_version=20190726.1 # Set game-specific variables GAME_ID='populous-1' GAME_NAME='Populous: Promised Lands' ARCHIVE_GOG='setup_populous_promised_lands_2.0.0.3.exe' ARCHIVE_GOG_URL='https://www.gog.com/game/populous' ARCHIVE_GOG_MD5='4c1844f4077b46925a57abca8111f26a' ARCHIVE_GOG_VERSION='1.0-gog2.0.0.3' ARCHIVE_GOG_SIZE='28000' ARCHIVE_GOG_TYPE='innosetup' ARCHIVE_DOC_MAIN_PATH='app' ARCHIVE_DOC_MAIN_FILES='*.pdf' ARCHIVE_GAME_MAIN_PATH='app' ARCHIVE_GAME_MAIN_FILES='populous.exe data gfw_high.ico' DATA_DIRS='./data' APP_MAIN_TYPE='dosbox' APP_MAIN_EXE='populous.exe' APP_MAIN_ICON='gfw_high.ico' PACKAGES_LIST='PKG_MAIN' PKG_MAIN_DEPS='dosbox' # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Extract icons icons_get_from_package 'APP_MAIN' rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers launcher_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-populous-2.sh0000755000000000000000000000617414471751340014215 0ustar rootroot#!/bin/sh -e set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2018-2020, BetaRays # 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. ### ### # Populous 2 # build native packages from the original installers # send your bug reports to vv221@dotslashplay.it ### script_version=20190726.1 # Set game-specific variables GAME_ID='populous-2' GAME_NAME='Populous 2' ARCHIVE_GOG='setup_populous2_2.0.0.2.exe' ARCHIVE_GOG_URL='https://www.gog.com/game/populous_2' ARCHIVE_GOG_MD5='4f3b46cbadcd44821c212d96ef02cec5' ARCHIVE_GOG_VERSION='1.0-gog2.0.0.2' ARCHIVE_GOG_SIZE='31000' ARCHIVE_GOG_TYPE='innosetup' ARCHIVE_DOC_MAIN_PATH='app' ARCHIVE_DOC_MAIN_FILES='*.pdf' ARCHIVE_GAME_MAIN_PATH='app' ARCHIVE_GAME_MAIN_FILES='pop2.exe intro.exe data sound gfw_high.ico' DATA_DIRS='./data ./sound ./popsave' APP_MAIN_TYPE='dosbox' APP_MAIN_PRERUN='intro.exe' APP_MAIN_EXE='pop2.exe' APP_MAIN_ICON='gfw_high.ico' PACKAGES_LIST='PKG_MAIN' PKG_MAIN_DEPS='dosbox' # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout rm --recursive "$PLAYIT_WORKDIR/gamedata" # Extract game icon icons_get_from_package 'APP_MAIN' # Write launchers launcher_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-populous-3.sh0000755000000000000000000000672314471751340014216 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Emmanuel Gil Peyrot # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Populous 3 # send your bug reports to contact@dotslashplay.it ### script_version=20230322.1 GAME_ID='populous-3' GAME_NAME='Populous: The Beginning' ARCHIVE_BASE_1='setup_populous_the_beginning_1.02_depfix2_(48318).exe' ARCHIVE_BASE_1_MD5='12cb9973783ad50789b7531e60bfcb24' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='510000' ARCHIVE_BASE_1_VERSION='1.02-gog48318' ARCHIVE_BASE_1_URL='https://www.gog.com/game/populous_the_beginning' ARCHIVE_BASE_0='setup_populous_the_beginning_2.0.0.5.exe' ARCHIVE_BASE_0_MD5='7e4545d04a3d00193507aa82dea14e50' ARCHIVE_BASE_0_VERSION='1.02-gog2.0.0.2' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='430000' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_BIN_FILES=' *.dll *.exe' CONTENT_GAME_DATA_FILES=' data fmv language levels levluw objects rddata sound' CONTENT_DOC_DATA_FILES=' *.pdf *.txt' USER_PERSISTENT_DIRECTORIES=' SAVE' APP_MAIN_EXE='poptb.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Set up a WINE virtual desktop on first launch, using the current desktop resolution PKG_BIN_DEPS="$PKG_BIN_DEPS xrandr sed" sed_expression='s/.*primary.* ([0-9]+x[0-9]+).*/\1/p' sed_options="--regexp-extended --silent --expression='$sed_expression'" APP_WINETRICKS="$APP_WINETRICKS vd=\$(LANG=C xrandr | sed $sed_options)" # Set required registry keys registry_dump_init_file='registry-dumps/init.reg' registry_dump_init_content='Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\Software\Bullfrog Productions Ltd\Populous: The Beginning] "BuildTypeCode"=dword:00000001 "InstallDirectory"="\\'"$GAME_ID"'" "InstallDrive"="C:" "InstallPath"="C:\\'"$GAME_ID"'" "Language"=dword:00000009 "Version"="1.01"' CONTENT_GAME_BIN_FILES="$CONTENT_GAME_BIN_FILES $registry_dump_init_file" APP_REGEDIT="$APP_REGEDIT $registry_dump_init_file" SCRIPT_DEPS="$SCRIPT_DEPS iconv" # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files rm --force --recursive \ '__redist' \ 'commonappdata' \ 'tmp' # Set required registry keys mkdir --parents "$(dirname "$registry_dump_init_file")" printf '%s' "$registry_dump_init_content" | \ iconv \ --from-code=UTF-8 --to-code=UTF-16 \ --output="$registry_dump_init_file" ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-potion-craft.sh0000755000000000000000000000532714471751340014574 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Potion Craft # send your bug reports to contact@dotslashplay.it ### script_version=20230705.2 GAME_ID='potion-craft' GAME_NAME='Potion Craft: Alchemy simulator' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" # Archives ## Full game ARCHIVE_BASE_0='setup_potion_craft_alchemist_simulator_1.0_(64bit)_(60776).exe' ARCHIVE_BASE_0_MD5='fa4aeefeba0f8cec711f4e22f9369e6c' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1200000' ARCHIVE_BASE_0_VERSION='1.0.2-gog60776' ARCHIVE_BASE_0_URL='https://www.gog.com/game/potion_craft_alchemist_simulator' ## Demo ### This installer is no longer available from gog.com ARCHIVE_BASE_DEMO_0='setup_potion_craft_demo_21.01.30_(46141).exe' ARCHIVE_BASE_DEMO_0_MD5='ce1bfadccaf2821692dd61e74bdb1e1a' ARCHIVE_BASE_DEMO_0_TYPE='innosetup' ARCHIVE_BASE_DEMO_0_SIZE='1400000' ARCHIVE_BASE_DEMO_0_VERSION='2021.01.30-gog46141' UNITY3D_NAME='potion craft' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_data/plugins monobleedingedge unityplayer.dll unitycrashhandler64.exe" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/niceplay games/Potion Craft' APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPS_DEMO="$PKG_DATA_ID_DEMO" # 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files rm --recursive \ '__redist' \ 'app' \ 'commonappdata' \ 'tmp' ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-prison-architect.sh0000755000000000000000000000645514471751340015450 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Prison Architect # send your bug reports to contact@dotslashplay.it ### script_version=20231123.4 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='prison-architect' GAME_NAME='Prison Architect' ARCHIVE_BASE_GOG_0_NAME='prison_architect_clink_1_02_30664.sh' ARCHIVE_BASE_GOG_0_MD5='f261f6121e3fe9ae5023624098d3946d' ARCHIVE_BASE_GOG_0_SIZE='390000' ARCHIVE_BASE_GOG_0_VERSION='1.02-gog30664' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/prison_architect' ## This DRM-free archive is no longer available for sell from humblebundle.com, ## they now only sell a Steam key. ARCHIVE_BASE_HUMBLE_0_NAME='prisonarchitect-clink_1.02-linux.tar.gz' ARCHIVE_BASE_HUMBLE_0_MD5='ecf4cf68e10069c3c2cb99bcc52ef417' ARCHIVE_BASE_HUMBLE_0_SIZE='390000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.02-humble1' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='prisonarchitect-clink_1.0-linux' CONTENT_LIBS_BIN_FILES=' libpops_api.so' CONTENT_LIBS_BIN64_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/lib64" CONTENT_LIBS_BIN64_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/lib64" CONTENT_LIBS_BIN64_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_LIBS_BIN32_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/lib" CONTENT_LIBS_BIN32_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/lib" CONTENT_LIBS_BIN32_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_GAME_BIN64_FILES=' PrisonArchitect.x86_64' CONTENT_GAME_BIN32_FILES=' PrisonArchitect.i686' CONTENT_GAME_DATA_FILES=' *.dat' APP_MAIN_EXE_BIN32='PrisonArchitect.i686' APP_MAIN_EXE_BIN64='PrisonArchitect.x86_64' APP_MAIN_ICON_GOG='../support/icon.png' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libpthread.so.0 libresolv.so.2 libSDL2-2.0.so.0 libstdc++.so.6 libuuid.so.1 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data case "$(current_archive)" in ('ARCHIVE_BASE_GOG_'*) set_current_package 'PKG_DATA' icons_inclusion ;; ('ARCHIVE_BASE_HUMBLE_'*) ## No icon is included in the humblebundle.com archive. ;; esac content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' launchers_write set_current_package 'PKG_BIN32' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-privateer-1.sh0000755000000000000000000000476714471751340014335 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Privateer # send your bug reports to contact@dotslashplay.it ### script_version=20230101.1 GAME_ID='privateer-1' GAME_NAME='Privateer' ARCHIVE_BASE_1='setup_wing_commander_privateer_1.0_(28045).exe' ARCHIVE_BASE_1_MD5='482b990445b335ecf7f47ee18efccc14' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='180000' ARCHIVE_BASE_1_VERSION='1.0-gog28045' ARCHIVE_BASE_1_URL='https://www.gog.com/game/wing_commander_privateer' ARCHIVE_BASE_0='setup_wing_commander_privateer_2.0.0.9.exe' ARCHIVE_BASE_0_MD5='53c77040cba69a642ec1302b5cf231b5' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='190000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.9' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_MAIN_FILES=' GAME.GOG *.CFG *.DAT *.EXE *.NDA *.OVL *.PAK *.VDA' CONTENT_DOC_MAIN_FILES=' *.PDF' GAME_IMAGE='GAME.GOG' GAME_IMAGE_TYPE='iso' CONFIG_FILES='./*.CFG' DATA_FILES='./*.IFF' APP_MAIN_EXE='PRIV.EXE' APP_MAIN_ICON='APP/GOGGAME-1207658938.ICO' APP_MAIN_ICON_0='GFW_HIGH.ICO' APP_RF_ID="${GAME_ID}-righteous-fire" APP_RF_NAME="${GAME_NAME} - Righteous Fire" APP_RF_EXE='PRIV.EXE' APP_RF_EXE_OPTIONS='r' APP_RF_ICON='APP/GOGGAME-1207658938.ICO' APP_RF_ICON_0='GFW_HIGH.ICO' PKG_MAIN_DEPS='dosbox' # Work around sound issues in the intro video APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Work around sound issues in the intro video export DOSBOX_SBLASTER_IRQ=5' # Load common functions target_version='2.20' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" toupper . ) # Include game icons icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-project-feline.sh0000755000000000000000000000546214471751340015075 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Project Feline # send your bug reports to contact@dotslashplay.it ### script_version=20230108.1 GAME_ID='project-feline' GAME_NAME='Project Feline' ## This game archive used to be available from itch.io, ## but the developer decided to drop Linux support. ARCHIVE_BASE_0='feline-linux.zip' ARCHIVE_BASE_0_MD5='5d59dd8b486c250f7ee918d31fee3c69' ARCHIVE_BASE_0_SIZE='870000' ARCHIVE_BASE_0_VERSION='0.10.0-itch.2020.12.13' CONTENT_PATH_DEFAULT='Feline_0.10.0_Linux' CONTENT_LIBS_BIN_PATH='Feline_0.10.0_Linux/Engine/Binaries/ThirdParty/PhysX3/Linux/x86_64-unknown-linux-gnu' CONTENT_LIBS_BIN_FILES=' libAPEX_ClothingPROFILE.so libApexCommonPROFILE.so libApexFrameworkPROFILE.so libAPEX_LegacyPROFILE.so libApexSharedPROFILE.so libNvParameterizedPROFILE.so libRenderDebugPROFILE.so' CONTENT_GAME_BIN_FILES=' Feline/Binaries/Linux/Feline' CONTENT_GAME_DATA_FILES=' Feline/Content' APP_MAIN_EXE='Feline/Binaries/Linux/Feline' USER_PERSISTENT_DIRECTORIES=' Feline/Saved/Config' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' ld-linux-x86-64.so.2 libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1' # Load common functions target_version='2.20' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Include game icon from an optional archive ARCHIVE_OPTIONAL_ICONS='project-feline_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_URL='https://downloads.dotslashplay.it/games/project-feline/' ARCHIVE_OPTIONAL_ICONS_MD5='a92f62d8bc80aa93c7d69ca1021f677a' CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 256x256' archive_initialize_optional \ 'ARCHIVE_ICONS' \ 'ARCHIVE_OPTIONAL_ICONS' if [ -n "$ARCHIVE_ICONS" ]; then archive_extraction 'ARCHIVE_ICONS' content_inclusion 'ICONS' 'PKG_DATA' "$(path_icons)" fi # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-proteus.sh0000755000000000000000000000440414471751340013663 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Proteus # send your bug reports to contact@dotslashplay.it ### script_version=20230208.1 GAME_ID='proteus' GAME_NAME='Proteus' ARCHIVE_BASE_0='proteus-05162014-bin' ARCHIVE_BASE_0_MD5='8a5911751382bcfb91483f52f781e283' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_VERSION='1.0-humble140516' ARCHIVE_BASE_0_SIZE='130000' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/proteus' CONTENT_PATH_DEFAULT='data' CONTENT_GAME_MAIN_FILES=' resources Proteus.exe Proteus.png KopiLua.dll KopiLuaDll.dll KopiLuaInterface.dll SDL2-CS.dll SDL2-CS.dll.config Tao.OpenGl.dll Tao.OpenGl.dll.config Tianxia.dll Wuwei.dll' CONTENT_DOC_MAIN_FILES=' Linux.README' APP_MAIN_EXE='Proteus.exe' APP_MAIN_ICON='Proteus.png' PACKAGES_LIST='PKG_MAIN' PKG_MAIN_DEPS='mono' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0 libSDL2_mixer-2.0.so.0 libstdc++.so.6 libz.so.1' PKG_MAIN_DEPENDENCIES_MONO_LIBRARIES=' mscorlib.dll Mono.Posix.dll Mono.Security.dll System.dll System.Configuration.dll System.Core.dll System.Data.dll System.Drawing.dll System.Security.dll System.Xml.dll' # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-psychonauts.sh0000755000000000000000000000471414471751340014546 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Psychonauts # send your bug reports to contact@dotslashplay.it ### script_version=20230414.1 GAME_ID='psychonauts' GAME_NAME='Psychonauts' ARCHIVE_BASE_0='gog_psychonauts_2.0.0.4.sh' ARCHIVE_BASE_0_MD5='7fc85f71494ff5d37940e9971c0b0c55' ARCHIVE_BASE_0_SIZE='5200000' ARCHIVE_BASE_0_VERSION='1.04-gog2.0.0.4' ARCHIVE_BASE_0_URL='https://www.gog.com/game/psychonauts' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' Psychonauts DisplaySettings.ini' CONTENT_GAME_DATA_FILES=' icon.bmp PsychonautsData2.pkg psychonauts.png WorkResource' CONTENT_DOC_DATA_PATH='data/noarch/docs' CONTENT_DOC_DATA_FILES=' Psychonauts Manual Win.pdf' CONTENT_DOC0_DATA_PATH="${CONTENT_PATH_DEFAULT}/Documents" CONTENT_DOC0_DATA_FILES=' *' USER_PERSISTENT_FILES=' DisplaySettings.ini psychonauts.ini' APP_MAIN_EXE='Psychonauts' APP_MAIN_ICONS_LIST='APP_MAIN_ICON_PNG APP_MAIN_ICON_BMP' APP_MAIN_ICON_PNG='psychonauts.png' APP_MAIN_ICON_BMP='icon.bmp' PACKAGES_LIST='PKG_DATA PKG_BIN' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 libSDL-1.2.so.0 libstdc++.so.6' # Ensure easy upgrade from packages generated using pre-20211124.2 game script PKG_DATA_PROVIDE='psychonauts-sounds' # 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-puddle.sh0000755000000000000000000000534114471751340013440 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Puddle # send your bug reports to contact@dotslashplay.it ### script_version=20230730.2 GAME_ID='puddle' GAME_NAME='Puddle' ARCHIVE_BASE_0='setup_puddle_2.1.0.6.exe' ARCHIVE_BASE_0_MD5='e1773a7bd360125ad67ce864963be586' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='1.0-gog2.1.0.6' ARCHIVE_BASE_0_SIZE='700000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/puddle' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' *.exe *.dll' CONTENT_GAME_DATA_FILES=' data de es fr it' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/Puddle' APP_MAIN_EXE='launcher.exe' APP_MAIN_ICON='puddle.exe' ## Type must be set explicitly, ## or it will be wrongly identified as a Mono application. APP_MAIN_TYPE='wine' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.25' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Include Mono in the WINE prefix ARCHIVE_REQUIRED_MONO='wine-mono-8.0.0-x86.msi' ARCHIVE_REQUIRED_MONO_MD5='4fe5c683fcd9634c7f6571f252b3603c' ARCHIVE_REQUIRED_MONO_URL='https://dl.winehq.org/wine/wine-mono/8.0.0/' archive_initialize_required 'ARCHIVE_MONO' 'ARCHIVE_REQUIRED_MONO' mono_installer_source=$(archive_find_path 'ARCHIVE_MONO') mono_installer_destination="$(package_path 'PKG_BIN')$(path_game_data)/mono/wine-mono-8.0.0-x86.msi" install -D --mode=644 "$mono_installer_source" "$mono_installer_destination" WINE_DLLOVERRIDES_DEFAULT='winemenubuilder.exe,mshtml=' APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' # Include Mono in the WINE prefix if [ ! -e .mono_installed ]; then $(wine_command) mono/wine-mono-8.0.0-x86.msi touch .mono_installed fi ' # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-pulse.sh0000755000000000000000000000357614471751340013323 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Pulse # send your bug reports to contact@dotslashplay.it ### script_version=20231109.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='pulse' GAME_NAME='Pulse' ARCHIVE_BASE_0_NAME='Pulse_Linux.zip' ARCHIVE_BASE_0_MD5='1ab2d48c55e88b1bc56cbcdfb72f09e9' ARCHIVE_BASE_0_SIZE='1900000' ARCHIVE_BASE_0_VERSION='1.0-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/pulse' UNITY3D_NAME='Pulse' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='Pulse - Linux' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-puzzle-agent-1.sh0000755000000000000000000001031114471751340014737 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Puzzle Agent # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210928.3 # Set game-specific variables GAME_ID='puzzle-agent-1' GAME_NAME='Puzzle Agent' ARCHIVE_BASE_1='setup_puzzle_agent_1.0_(21444).exe' ARCHIVE_BASE_1_MD5='b986c9a9ed5bce6f8329cc76965ee295' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='260000' ARCHIVE_BASE_1_VERSION='1.0-gog21444' ARCHIVE_BASE_1_URL='https://www.gog.com/game/puzzle_agent' ARCHIVE_BASE_0='setup_puzzle_agent_2.0.0.3.exe' ARCHIVE_BASE_0_MD5='68155b4aff9aa9e28c107f5b2ff994b5' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='260000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.3' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES=' fmodex.dll grickle101.exe steam_api.dll' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='pack' APP_MAIN_TYPE='wine' APP_MAIN_EXE='grickle101.exe' APP_MAIN_ICON='grickle101.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine libGL.so.1" # Use persistent storage for user data APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/$(id -un)/My Documents/Telltale Games/puzzle-agent' DATA_DIRS="$DATA_DIRS ./userdata" # Set up a WINE virtual desktop on first launch, using the current desktop resolution sed_expression='s/.*primary.* ([0-9]+x[0-9]+).*/\1/p' sed_options="--regexp-extended --silent --expression='${sed_expression}'" APP_WINETRICKS="${APP_WINETRICKS} vd=\$(LANG=C xrandr | sed ${sed_options})" PKG_BIN_DEPS="${PKG_BIN_DEPS} winetricks xrandr sed" # Keep compatibility with old archives ARCHIVE_GAME_BIN_PATH_0='app' ARCHIVE_GAME_DATA_PATH_0='app' # Ensure smooth upgrade from previous game id PKG_BIN_PROVIDE='puzzle-agent' PKG_DATA_PROVIDE='puzzle-agent-data' # Load common functions target_version='2.14' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "$PLAYIT_WORKDIR/gamedata" # Include game icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-puzzle-agent-2.sh0000755000000000000000000000674214471751340014755 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Puzzle Agent 2 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210708.2 # Set game-specific variables GAME_ID='puzzle-agent-2' GAME_NAME='Puzzle Agent 2' ARCHIVE_BASE_0='setup_puzzle_agent_2_1.0_(21444).exe' ARCHIVE_BASE_0_MD5='f3065abf496f53be933c2ab8a2b70dd7' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='410000' ARCHIVE_BASE_0_VERSION='1.0-gog21444' ARCHIVE_BASE_0_URL='https://www.gog.com/game/puzzle_agent_2' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='fmodex.dll grickle102.exe' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='pack' APP_MAIN_TYPE='wine' APP_MAIN_EXE='grickle102.exe' APP_MAIN_ICON='grickle102.exe' PACKAGES_LIST='PKG_DATA PKG_BIN' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine glx" # Use persistent storage for saved games and settings APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/My Documents/Telltale Games/puzzle-agent-2' CONFIG_FILES="$CONFIG_FILES userdata/prefs.prop" DATA_FILES="$DATA_FILES userdata/*.save" # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-qube-1.sh0000755000000000000000000001074314471751340013257 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2018-2021, BetaRays # 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. ### ### # Q.U.B.E. # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210508.3 # Set game-specific variables GAME_ID='qube-1' GAME_NAME='Q.U.B.E.' ARCHIVE_BASE_0='QUBE-Linux-2015052901.sh' ARCHIVE_BASE_0_MD5='5da6f592bad4aa71c6e2a469f7435453' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_VERSION='2.8-humble2015052901' ARCHIVE_BASE_0_SIZE='1300000' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/qube-directors-cut' ARCHIVE_DOC_DATA_PATH='data/noarch' ARCHIVE_DOC_DATA_FILES='README.linux UpdateLog.txt BuildVersion.txt' ARCHIVE_GAME_BIN_PATH='data/x86' ARCHIVE_GAME_BIN_FILES='Binaries/Linux/QUBEGame-Linux Binaries/Linux/lib/libPhysX*.so* Binaries/Linux/lib/libsteam_api.so Binaries/Linux/lib/libtcmalloc.so.0' ARCHIVE_GAME_DATA_PATH='data/noarch' ARCHIVE_GAME_DATA_FILES='QUBEGame Engine QUBEIcon.*' APP_MAIN_TYPE='native' APP_MAIN_EXE='Binaries/Linux/QUBEGame-Linux' APP_MAIN_ICON='QUBEIcon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="${PKG_DATA_ID} glibc libstdc++ glx libSDL2-2.0.so.0 libopenal.so.1 libvorbisfile.so.3 libasound.so.2" PKG_BIN_DEPS_DEB='libogg0' PKG_BIN_DEPS_ARCH='lib32-libogg' PKG_BIN_DEPS_GENTOO='media-libs/libogg[abi_x86_32]' # Run the game binary from its directory APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Run the game binary from its directory cd "$(dirname "$APP_EXE")" APP_EXE=$(basename "$APP_EXE")' # Use persistent storage for saved games DATA_FILES="${DATA_FILES} Binaries/Linux/SaveGame.bin" # Include shipped SDL2_Mixer library # The game ships a patched SDL2_Mixer that has an additional symbol: MinorityMix_SetPosition, the SDL2_Mixer source code has no reference to it (only Mix_SetPosition) and online searching only shows similar problems with other Unreal Engine games. It might be possible to fix this using preloading or using an SDL2_Mixer wrapper instead. Analysis of the binary's MinorityMix_SetPosition function is welcome. ARCHIVE_GAME_BIN_FILES="${ARCHIVE_GAME_BIN_FILES} Binaries/Linux/lib/libSDL2_mixer-2.0.so.0" # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-qube-2.sh0000755000000000000000000000546014471751340013260 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Q.U.B.E. 2 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220710.1 GAME_ID='qube-2' GAME_NAME='Q.U.B.E. 2' ARCHIVE_BASE_1='setup_q.u.b.e._2_1.8_(64bit)_(33108).exe' ARCHIVE_BASE_1_MD5='38e53c42845f1ea44ca2939d2d48571b' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1='setup_q.u.b.e._2_1.8_(64bit)_(33108)-1.bin' ARCHIVE_BASE_1_PART1_MD5='838dbb204cd6eca9488d502ec16f28d0' ARCHIVE_BASE_1_PART1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='3800000' ARCHIVE_BASE_1_VERSION='1.8-gog33108' ARCHIVE_BASE_1_URL='https://www.gog.com/game/qube_2' ARCHIVE_BASE_0='setup_q.u.b.e._2_1.6_with_overlay_(64bit)_(23818).exe' ARCHIVE_BASE_0_MD5='b62f5e18bff2e9abcb591e1921538989' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_q.u.b.e._2_1.6_with_overlay_(64bit)_(23818)-1.bin' ARCHIVE_BASE_0_PART1_MD5='7a397b6e7c20a13c00af2ee964952609' ARCHIVE_BASE_0_PART1_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='3700000' ARCHIVE_BASE_0_VERSION='1.6-gog23818' CONTENT_PATH_DEFAULT='.' ARCHIVE_GAME_BIN_FILES=' qube/binaries qube/plugins engine' ARCHIVE_GAME_DATA_FILES=' qube/content' APP_MAIN_TYPE='wine' APP_MAIN_EXE='qube/binaries/win64/qube-win64-shipping.exe' APP_MAIN_ICON='qube/binaries/win64/qube-win64-shipping.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID wine libGL.so.1 libopenal.so.1" PKG_BIN_POSTINST_RUN_GENTOO=' ewarn "You might need to compile wine with the openal or faudio USE flag"' # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" case "$OPTION_PACKAGE" in ('gentoo'|'egentoo') PKG_BIN_POSTINST_RUN="$PKG_BIN_POSTINST_RUN_GENTOO" ;; esac # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-quench.sh0000755000000000000000000000662614471751340013455 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Quench # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210920.1 # Set game-specific variables GAME_ID='quench' GAME_NAME='Quench' ARCHIVE_BASE_0='quench-win.zip' ARCHIVE_BASE_0_MD5='51acb509e73ab3a9dd2183554f094cf2' ARCHIVE_BASE_0_SIZE='1000000' ARCHIVE_BASE_0_VERSION='1.1.0-itch.2019.08.16' ARCHIVE_BASE_0_URL='https://axoninteractive.itch.io/quench' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES=' *.dll *.exe Mono Quench_Data/Plugins' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES=' Quench_Data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='Quench.exe' APP_MAIN_ICON='Quench.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Use persistent storage for user data APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/AppData/LocalLow/Axon Interactive/Quench' DATA_DIRS="$DATA_DIRS ./userdata" # Load common functions target_version='2.14' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" set_standard_permissions "$PLAYIT_WORKDIR/gamedata" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-quern.sh0000755000000000000000000001226714471751340013322 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2020, Antoine "vv221/vv222" Le Gonidec # 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. ### ### # Quern - Undying Thoughts # This scripts builds native Linux packages from the original installer. # Send your bug reports to ### script_version=20210509.1 GAME_ID='quern' GAME_NAME='Quern - Undying Thoughts' ARCHIVE_GOG='quern_undying_thoughts_en_1_2_0_19570.sh' ARCHIVE_GOG_URL='https://www.gog.com/game/quern_undying_thoughts' ARCHIVE_GOG_MD5='b26bcebf9d441b900b1c165b62951016' ARCHIVE_GOG_TYPE='mojosetup' ARCHIVE_GOG_SIZE=4300000 ARCHIVE_GOG_VERSION='1.2.0-gog19570' ARCHIVE_DOC_DATA_PATH='data/noarch/support' ARCHIVE_DOC_DATA_FILES='./support_notice.txt' ARCHIVE_GAME_BIN32_PATH='data/noarch/game' ARCHIVE_GAME_BIN32_FILES='Quern.x86 Quern_Data/Mono/x86 Quern_Data/Plugins/x86' ARCHIVE_GAME_BIN64_PATH='data/noarch/game' ARCHIVE_GAME_BIN64_FILES='Quern.x86_64 Quern_Data/Mono/x86_64 Quern_Data/Plugins/x86_64' ARCHIVE_GAME_DATA_PATH='data/noarch/game' ARCHIVE_GAME_DATA_FILES='Quern_Data' DATA_DIRS='./logs' APP_MAIN_TYPE='native' APP_MAIN_PRERUN='# Start pulseaudio if it is available if command -v pulseaudio >/dev/null 2>&1; then PULSEAUDIO_IS_AVAILABLE=1 if pulseaudio --check; then KEEP_PULSEAUDIO_RUNNING=1 else KEEP_PULSEAUDIO_RUNNING=0 fi pulseaudio --start else PULSEAUDIO_IS_AVAILABLE=0 fi' # shellcheck disable=SC1004 APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Work around crash on launch related to libpulse # Some Unity3D games crash on launch if libpulse-simple.so.0 is available but pulseaudio is not running if [ $PULSEAUDIO_IS_AVAILABLE -eq 0 ]; then mkdir --parents "${APP_LIBS:=libs}" ln --force --symbolic /dev/null "$APP_LIBS/libpulse-simple.so.0" else if \ [ -h "${APP_LIBS:=libs}/libpulse-simple.so.0" ] && \ [ "$(realpath "$APP_LIBS/libpulse-simple.so.0")" = "/dev/null" ] then rm "$APP_LIBS/libpulse-simple.so.0" rmdir --ignore-fail-on-non-empty --parents "$APP_LIBS" fi fi' APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Work around Unity3D poor support for non-US locales export LANG=C' # shellcheck disable=SC1004 APP_MAIN_POSTRUN='# Stop pulseaudio if it has specifically been started for the game if \ [ $PULSEAUDIO_IS_AVAILABLE -eq 1 ] && \ [ $KEEP_PULSEAUDIO_RUNNING -eq 0 ] then pulseaudio --kill fi' APP_MAIN_EXE_BIN32='Quern.x86' APP_MAIN_EXE_BIN64='Quern.x86_64' APP_MAIN_ICON='Quern_Data/Resources/UnityPlayer.png' # Use a per-session dedicated file for logs APP_MAIN_OPTIONS='-logFile ./logs/$(date +%F-%R).log' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID glibc libstdc++ glx xcursor libxrandr gtk2" PKG_BIN32_DEPS_ARCH='lib32-libx11' PKG_BIN32_DEPS_DEB='libx11-6' PKG_BIN32_DEPS_GENTOO='x11-libs/libX11[abi_x86_32]' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_DATA_ID glibc libstdc++ glx xcursor libxrandr gtk2" PKG_BIN64_DEPS_ARCH='libx11' PKG_BIN64_DEPS_DEB="$PKG_BIN32_DEPS_DEB" PKG_BIN64_DEPS_GENTOO='x11-libs/libX11' # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" # Prepare package prepare_package_layout rm --recursive "$PLAYIT_WORKDIR/gamedata" # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-quiet-as-a-stone.sh0000755000000000000000000000643614471751340015265 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Quiet as a Stone # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210417.3 # Set game-specific variables GAME_ID='quiet-as-a-stone' GAME_NAME='Quiet as a Stone' ARCHIVES_LIST=' ARCHIVE_BASE_0' ARCHIVE_BASE_0='quietasastone-win64.zip' ARCHIVE_BASE_0_MD5='72cd64e689dd398afaa9909abb15cb15' ARCHIVE_BASE_0_SIZE='1500000' ARCHIVE_BASE_0_VERSION='0.6.1-itch.2019.07.19' ARCHIVE_BASE_0_URL='https://distantlantern.itch.io/quietasastone' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='*.dll *.exe QuietasaStone_Data/Plugins Mono' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='QuietasaStone_Data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='QuietasaStone.exe' APP_MAIN_ICON='QuietasaStone.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-race-the-sun-sunrise.sh0000755000000000000000000000600614471751340016143 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # 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. ### ### # Race The Sun - Sunrise # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20211124.1 # Set game-specific variables GAME_ID='race-the-sun' GAME_NAME='Race The Sun' EXPANSION_ID='sunrise' EXPANSION_NAME='Sunrise' ARCHIVE_BASE_GOG_0='gog_race_the_sun_sunrise_dlc_2.0.0.1.sh' ARCHIVE_BASE_GOG_0_MD5='5af9dee7941f63c310d83ac771d26884' ARCHIVE_BASE_GOG_0_TYPE='mojosetup' ARCHIVE_BASE_GOG_0_SIZE='1100' ARCHIVE_BASE_GOG_0_VERSION='1.0-gog2.0.0.1' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/sunrise' ARCHIVE_GAME_MAIN_PATH='data/noarch/game' ARCHIVE_GAME_MAIN_FILES='SunriseDLC' PKG_MAIN_ID="${GAME_ID}-${EXPANSION_ID}" PKG_MAIN_DESCRIPTION="$EXPANSION_NAME" PKG_MAIN_DEPS="$GAME_ID" # Load common functions target_version='2.14' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Clean up temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions GAME_NAME="$GAME_NAME - $EXPANSION_NAME" print_instructions exit 0 games/play-race-the-sun.sh0000755000000000000000000000520514471751340014455 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Race The Sun # send your bug reports to contact@dotslashplay.it ### script_version=20231104.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='race-the-sun' GAME_NAME='Race The Sun' ARCHIVE_BASE_GOG_0_NAME='gog_race_the_sun_2.4.0.8.sh' ARCHIVE_BASE_GOG_0_MD5='e3f4e66a5fafe966000ab4e0dcfb7aeb' ARCHIVE_BASE_GOG_0_SIZE='200000' ARCHIVE_BASE_GOG_0_VERSION='1.51-gog2.4.0.8' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/race_the_sun' ARCHIVE_BASE_HUMBLE_0_NAME='RaceTheSunLINUX_1.50.zip' ARCHIVE_BASE_HUMBLE_0_MD5='e225afb660090b9aa8281574b658accf' ARCHIVE_BASE_HUMBLE_0_SIZE='190000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.50-humble170131' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/race-the-sun' UNITY3D_NAME='RaceTheSun' ## TODO: Check if the Steam libraries can be dropped. UNITY3D_PLUGINS=' libCSteamworks.so libsteam_api.so ScreenSelector.so' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='RaceTheSunLINUX_1.50' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' launchers_write set_current_package 'PKG_BIN32' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-rakuen.sh0000755000000000000000000000644014471751340013451 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=20231114.11 PLAYIT_COMPATIBILITY_LEVEL='2.27' 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_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' 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" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$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 set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' launchers_write set_current_package 'PKG_BIN32' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-ravenous-devils.sh0000755000000000000000000000501114471751340015303 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Ravenous Devils # send your bug reports to contact@dotslashplay.it ### script_version=20230319.1 GAME_ID='ravenous-devils' GAME_NAME='Ravenous Devils' ARCHIVE_BASE_1='setup_ravenous_devils_1.0.2_(64bit)_(59454).exe' ARCHIVE_BASE_1_MD5='efe01e3e15054928ea1b91777d0481bf' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='1800000' ARCHIVE_BASE_1_VERSION='1.0.2-gog59454' ARCHIVE_BASE_1_URL='https://www.gog.com/game/ravenous_devils' ARCHIVE_BASE_0='setup_ravenous_devils_1.0.1_(64bit)_(55400).exe' ARCHIVE_BASE_0_MD5='e18ae8a3932ebcfeaa742cd9f849af4c' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1800000' ARCHIVE_BASE_0_VERSION='1.0.1-gog55400' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' ravenous_devils.exe ravenous_devils/binaries ravenous_devils/plugins engine' CONTENT_GAME_DATA_FILES=' ravenous_devils' WINE_DIRECT3D_RENDERER='dxvk' APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/Local/Ravenous_Devils/Saved' USER_PERSISTENT_DIRECTORIES=' userdata/Config/WindowsNoEditor userdata/SaveGames' APP_MAIN_EXE='ravenous_devils.exe' APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=101 --language=1033' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Install required Microsoft Visual C++ 2015-2019 libraries APP_WINETRICKS='vcrun2019' PKG_BIN_DEPS="$PKG_BIN_DEPS winetricks" # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-realmyst-masterpiece-edition.sh0000755000000000000000000000774414471751340017764 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # 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. ### ### # realMyst: Masterpiece Edition # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210511.3 # Set game-specific variables GAME_ID='realmyst-masterpiece-edition' GAME_NAME='realMyst: Masterpiece Edition' ARCHIVE_BASE_0='setup_real_myst_masterpiece_edition_2.2_rev_10535_(64bit)_(23829).exe' ARCHIVE_BASE_0_MD5='fcb23e0256ab826e9a2ba9cad00d9a66' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_real_myst_masterpiece_edition_2.2_rev_10535_(64bit)_(23829)-1.bin' ARCHIVE_BASE_0_PART1_MD5='038b24ec51a18b325574293d7f2d0ec2' ARCHIVE_BASE_0_PART1_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='2.2.10535-gog23829' ARCHIVE_BASE_0_SIZE='2800000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/real_myst_masterpiece_edition' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='realmyst.exe realmyst_data/mono' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='realmyst_data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='realmyst.exe' APP_MAIN_ICON='realmyst.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="${PKG_DATA_ID} wine glx" # Use persistent storage for user data CONFIG_FILES="${DATA_FILES} ./userdata/*.ini" DATA_FILES="${DATA_DIRS} ./userdata/*.sav ./userdata/*.png" APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/AppData/LocalLow/Cyan Worlds/realMyst' # Use a per-session dedicated file for logs APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a per-session dedicated file for logs mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Extract icons PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Clean up temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-reassembly.sh0000755000000000000000000000515214471751340014331 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 BetaRays # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Reassembly # send your bug reports to contact@dotslashplay.it ### script_version=20230818.1 GAME_ID='reassembly' GAME_NAME='Reassembly' ARCHIVE_BASE_GOG_0='reassembly_2019_4_04_28550.sh' ARCHIVE_BASE_GOG_0_MD5='640cc7849af45fb221f349b9d901b9ab' ARCHIVE_BASE_GOG_0_SIZE='120000' ARCHIVE_BASE_GOG_0_VERSION='2019.03.30-gog28550' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/reassembly' ARCHIVE_BASE_HUMBLE_0='anisopteragames_Reassembly_2019_04_11.tar.gz' ARCHIVE_BASE_HUMBLE_0_MD5='ae516da186f0a2c6799eb8059a51337d' ARCHIVE_BASE_HUMBLE_0_SIZE='120000' ARCHIVE_BASE_HUMBLE_0_VERSION='2019.03.30-humble1' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/reassembly' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='Reassembly' CONTENT_LIBS_BIN_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/linux/linux64" CONTENT_LIBS_BIN_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/linux/linux64" CONTENT_LIBS_BIN_FILES=' libGLEW.so.1.13' CONTENT_GAME_BIN_FILES=' linux/ReassemblyRelease64' CONTENT_GAME_DATA_FILES=' data linux/reassembly_icon.png' CONTENT_DOC_DATA_FILES=' *.txt' APP_MAIN_EXE='linux/ReassemblyRelease64' APP_MAIN_ICON='linux/reassembly_icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libcurl.so.4+CURL_OPENSSL_3 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0 libSDL2_ttf-2.0.so.0 libstdc++.so.6 libvorbisfile.so.3 libz.so.1' # Load common functions 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-rebel-galaxy.sh0000755000000000000000000001075314471751340014542 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # 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. ### ### # Rebel Galaxy # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210519.2 # Set game-specific variables GAME_ID='rebel-galaxy' GAME_NAME='Rebel Galaxy' ARCHIVE_BASE_0='setup_rebel_galaxy_1.08(hotifx2)_(23097).exe' ARCHIVE_BASE_0_MD5='9746494be23b83bc2a44d8da6cb6e311' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_rebel_galaxy_1.08(hotifx2)_(23097)-1.bin' ARCHIVE_BASE_0_PART1_MD5='e8e5d4450b5ad8f9cc757cc4153ba13c' ARCHIVE_BASE_0_PART1_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='1.08-gog23097' ARCHIVE_BASE_0_SIZE='2500000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/rebel_galaxy' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='*.cfg *.dll *.exe __redist/msvc2012/vcredist_x86.exe' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='media music paks video' APP_MAIN_TYPE='wine' APP_MAIN_EXE='rebelgalaxygog.exe' APP_MAIN_ICON='rebelgalaxygog.exe' APP_SETTINGS_ID="${GAME_ID}-settings" APP_SETTINGS_NAME="${GAME_NAME} - Settings" APP_SETTINGS_CAT='Settings' APP_SETTINGS_TYPE='wine' APP_SETTINGS_EXE='goglauncher.exe' APP_SETTINGS_ICON='goglauncher.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="${PKG_DATA_ID} wine glx" # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Extract icons PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' 'APP_SETTINGS' icons_move_to 'PKG_DATA' # Clean up temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Use persistent storage for user data APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/My Documents/My Games/Double Damage Games/RebelGalaxy' DATA_DIRS="${DATA_DIRS} ./userdata" # Generate minimal settings file # The game will crash on launch when trying to run it with Direct3D11 settings_file="$(package_get_path 'PKG_BIN')${PATH_GAME}/userdata/local_settings.txt" mkdir --parents "$(dirname "$settings_file")" cat > "$settings_file" << EOF [SETTINGS] OPENGL:1 DX11:0 [/SETTINGS] EOF # Microsoft Visual C++ 2012 Runtime is required by the settings window APP_SETTINGS_PRERUN="$APP_SETTINGS_PRERUN"' # Microsoft Visual C++ 2012 Runtime is required by the settings window if [ ! -e vcrun2012_installed ]; then wine __redist/msvc2012/vcredist_x86.exe touch vcrun2012_installed fi' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' 'APP_SETTINGS' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-regency-solitaire.sh0000755000000000000000000000521514471751340015610 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Regency Solitaire # send your bug reports to contact@dotslashplay.it ### script_version=20231001.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='regency-solitaire' GAME_NAME='Regency Solitaire' ARCHIVE_BASE_0='RegencySolitaireV117b_1472495785.tar.gz' ARCHIVE_BASE_0_MD5='15e8377d2cac99a52407cb399bd1ee7c' ARCHIVE_BASE_0_SIZE='71000' ARCHIVE_BASE_0_VERSION='1.17b-humble160829' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/regency-solitaire' ARCHIVE_ICONS_PATH='.' CONTENT_PATH_DEFAULT='RegencySolitaireV117b' CONTENT_GAME_BIN_FILES=' RegencySolitaire' CONTENT_GAME_DATA_FILES=' data' APP_MAIN_EXE='RegencySolitaire' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libGL.so.1 libGLU.so.1 libm.so.6 libpthread.so.0 libstdc++.so.6' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ARCHIVE_OPTIONAL_ICONS_0_NAME='regency-solitaire_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_0_MD5='01a7c7b168e2cb315d2058ff5e6a53aa' ARCHIVE_OPTIONAL_ICONS_0_URL='https://downloads.dotslashplay.it/games/regency-solitaire/' archive_initialize_optional \ 'ARCHIVE_ICONS' \ 'ARCHIVE_OPTIONAL_ICONS' ## TODO: The library should provide a function to check if a given optional archive has been provided. if [ -n "$(archive_path 'ARCHIVE_ICONS' 2>/dev/null || true)" ]; then archive_extraction 'ARCHIVE_ICONS' fi # Include game data ## TODO: The library should provide a function to check if a given optional archive has been provided. if [ -n "$(archive_path 'ARCHIVE_ICONS' 2>/dev/null || true)" ]; then CONTENT_ICONS_DATA_PATH='.' CONTENT_ICONS_DATA_FILES=' 16x16 32x32 48x48 256x256' content_inclusion 'ICONS_DATA' 'PKG_DATA' "$(path_icons)" fi content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-republique.sh0000755000000000000000000000512414471751340014337 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Republique # send your bug reports to contact@dotslashplay.it ### script_version=20231009.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='republique' GAME_NAME='République' ## This game is no longer available for sale from gog.com ARCHIVE_BASE_0_NAME='setup_republique_remastered_33555_(18824).exe' ARCHIVE_BASE_0_MD5='e1c57ea3489a5ffd222990ab28a9ffe7' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_republique_remastered_33555_(18824)-1.bin' ARCHIVE_BASE_0_PART1_MD5='f8d81dd49c0a17e772601880c1d76058' ARCHIVE_BASE_0_PART2_NAME='setup_republique_remastered_33555_(18824)-2.bin' ARCHIVE_BASE_0_PART2_MD5='485f3c68ca8bf61e328f2e659afc59b2' ARCHIVE_BASE_0_SIZE='7800000' ARCHIVE_BASE_0_VERSION='1.0-gog18824' ARCHIVE_BASE_RAR_0_NAME='setup_republique_remastered_2.2.0.4.exe' ARCHIVE_BASE_RAR_0_MD5='e2a15feb5b9217bebf0fec26e2a81869' ARCHIVE_BASE_RAR_0_EXTRACTOR='innoextract' ARCHIVE_BASE_RAR_0_EXTRACTOR_OPTIONS='--lowercase --gog' ARCHIVE_BASE_RAR_0_PART1_NAME='setup_republique_remastered_2.2.0.4-1.bin' ARCHIVE_BASE_RAR_0_PART1_MD5='b7a869b84db07e5981b9eb8be9ff2bda' ARCHIVE_BASE_RAR_0_PART1_EXTRACTOR='unar' ARCHIVE_BASE_RAR_0_PART2_NAME='setup_republique_remastered_2.2.0.4-2.bin' ARCHIVE_BASE_RAR_0_PART2_MD5='604d6b34fa4b2cc24f79659922f188e2' ARCHIVE_BASE_RAR_0_SIZE='7800000' ARCHIVE_BASE_RAR_0_VERSION='1.0-gog2.2.0.4' UNITY3D_NAME='republique' CONTENT_PATH_DEFAULT='app' USER_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Camouflaj/R__publique' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data PKG='PKG_DATA' icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-restless-soul.sh0000755000000000000000000000335614471751340015013 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Restless Soul # send your bug reports to contact@dotslashplay.it ### script_version=20231129.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='restless-soul' GAME_NAME='Restless Soul' ARCHIVE_BASE_0_NAME='restless_soul_1_0_61980.sh' ARCHIVE_BASE_0_MD5='c1a4ed609a1fd4562e26cd7410b1ee19' ARCHIVE_BASE_0_SIZE='244188' ARCHIVE_BASE_0_VERSION='1.0-gog61980' ARCHIVE_BASE_0_URL='https://www.gog.com/game/restless_soul' UNITY3D_NAME='linux' UNITY3D_PLUGINS=' lib_burst_generated.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-retour-sur-lile-mysterieuse.sh0000755000000000000000000001204314471751340017606 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Retour sur l'Ile Mystérieuse # send your bug reports to contact@dotslashplay.it ### script_version=20231005.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='retour-sur-lile-mysterieuse' GAME_NAME='Retour sur l’Île Mystérieuse' 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=' *.dll game.exe' 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_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_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" 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_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID $PKG_L10N_ID" # 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 . "$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' 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 PKG='PKG_DATA' icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation common_packages='PKG_BIN PKG_DATA' case "${LANG%_*}" 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-retrace.sh0000755000000000000000000000640414471751340013611 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # Retrace # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20201019.1 # Set game-specific variables GAME_ID='retrace' GAME_NAME='Retrace' ARCHIVE_ITCH='retrace-win.zip' ARCHIVE_ITCH_URL='https://spiderlilystudios.itch.io/retrace' ARCHIVE_ITCH_MD5='a953b09f1e1226ac24998ea68cacfe0e' ARCHIVE_ITCH_SIZE='190000' ARCHIVE_ITCH_VERSION='1.0-itch' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='options.ini Retrace.exe' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='audiogroup1.dat audiogroup2.dat data data.win fonts' CONFIG_FILES='./options.ini' APP_MAIN_TYPE='wine' APP_MAIN_EXE='Retrace.exe' APP_MAIN_ICON='Retrace.exe' PACKAGES_LIST='PKG_DATA PKG_BIN' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" set_standard_permissions "$PLAYIT_WORKDIR/gamedata" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-retro-city-rampage.sh0000755000000000000000000000464414471751340015703 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Retro City Rampage # send your bug reports to contact@dotslashplay.it ### script_version=20231001.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='retro-city-rampage' GAME_NAME='Retro City Rampage' ARCHIVE_BASE_32BIT_0_NAME='retrocityrampage-1.0-linux.i386.bin' ARCHIVE_BASE_32BIT_0_MD5='35c776fa33af850158b0d6a886dfe2a0' ARCHIVE_BASE_32BIT_0_EXTRACTOR='bsdtar' ARCHIVE_BASE_32BIT_0_SIZE='17000' ARCHIVE_BASE_32BIT_0_VERSION='1.53-humble1' ARCHIVE_BASE_32BIT_0_URL='https://www.humblebundle.com/store/retro-city-rampage-dx' ARCHIVE_BASE_64BIT_0='retrocityrampage-1.0-linux.x86_64.bin' ARCHIVE_BASE_64BIT_0_MD5='4fc25ab742d5bd389bd4a76eb6ec987f' ARCHIVE_BASE_64BIT_0_EXTRACTOR='bsdtar' ARCHIVE_BASE_64BIT_0_SIZE='17000' ARCHIVE_BASE_64BIT_0_VERSION='1.53-humble1' ARCHIVE_BASE_64BIT_0_URL='https://www.humblebundle.com/store/retro-city-rampage-dx' CONTENT_PATH_DEFAULT='data' CONTENT_GAME_BIN_FILES=' retrocityrampage' CONTENT_GAME_DATA_FILES=' audio_music_Linux.bap audio_sfx_Linux.bap gamedata_sdl.bfp icon.png' USER_PERSISTEN_FILES=' rcr_sdl.cfg *.rsv' APP_MAIN_EXE='retrocityrampage' APP_MAIN_ICON='icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH_32BIT='32' PKG_BIN_ARCH_64BIT='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-reventure.sh0000755000000000000000000000663514471751340014211 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Reventure # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20211205.1 # Set game-specific variables GAME_ID='reventure' GAME_NAME='Reventure' ARCHIVE_BASE_0='setup_reventure_1.9.5_(46279).exe' ARCHIVE_BASE_0_MD5='66132b685451666250710036296edfa0' ARCHIVE_BASE_0_SIZE='390000' ARCHIVE_BASE_0_VERSION='1.9.5-gog46279' ARCHIVE_BASE_0_URL='https://www.gog.com/game/reventure' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES=' reventure.exe monobleedingedge unitycrashhandler32.exe unityplayer.dll' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES=' reventure_data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='reventure.exe' APP_MAIN_ICON='reventure.exe' PACKAGES_LIST='PKG_DATA PKG_BIN' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Use persistent storage for game progress APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/AppData/LocalLow/Pixelatto/Reventure' DATA_DIRS="$DATA_DIRS ./userdata" # Load common functions target_version='2.14' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-rime.sh0000755000000000000000000000471214471751340013120 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Rime # send your bug reports to contact@dotslashplay.it ### script_version=20230821.1 GAME_ID='rime' GAME_NAME='RiME' ARCHIVE_BASE_1='setup_rime_1.04_(a)_(40568).exe' ARCHIVE_BASE_1_MD5='04c89d5de10df3c16c5e9b3512d559aa' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1='setup_rime_1.04_(a)_(40568)-1.bin' ARCHIVE_BASE_1_PART1_MD5='aa40d7bf862088c92b9a0dbe09c42012' ARCHIVE_BASE_1_PART2='setup_rime_1.04_(a)_(40568)-2.bin' ARCHIVE_BASE_1_PART2_MD5='c9cad9754731585b3e68a305eef4bd01' ARCHIVE_BASE_1_SIZE='7800000' ARCHIVE_BASE_1_VERSION='1.04-gog40568' ARCHIVE_BASE_1_URL='https://www.gog.com/game/rime' ARCHIVE_BASE_0='setup_rime_152498_signed_(14865).exe' ARCHIVE_BASE_0_MD5='303d41314564c753fcef92260c3e20f8' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_rime_152498_signed_(14865)-1.bin' ARCHIVE_BASE_0_PART1_MD5='ea9fc9eeaeeb2d7c58eab42cef31bb2e' ARCHIVE_BASE_0_PART2='setup_rime_152498_signed_(14865)-2.bin' ARCHIVE_BASE_0_PART2_MD5='b65792a122d267cc799e9b044605c1a1' ARCHIVE_BASE_0_SIZE='8000000' ARCHIVE_BASE_0_VERSION='1.04-gog14865' UNREALENGINE4_NAME='sirengame' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' APP_MAIN_EXE='sirengame/binaries/win64/rime.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.25' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-rimworld.sh0000755000000000000000000000374114471751340014024 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 HS-157 # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Rimworld # send your bug reports to contact@dotslashplay.it ### script_version=20231108.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='rimworld' GAME_NAME='Rimworld' ARCHIVE_BASE_0_NAME='RimWorld1-1-2654Linux.zip' ARCHIVE_BASE_0_MD5='4391d550e8da14b7826a63dbd75cbc44' ARCHIVE_BASE_0_SIZE='350000' ARCHIVE_BASE_0_VERSION='1.1.2654-1' ARCHIVE_BASE_0_URL='https://rimworldgame.com/getmygame/' UNITY3D_NAME='RimWorldLinux' ## TODO: Add an explicit list of Unity3D plugins to include. CONTENT_PATH_DEFAULT='RimWorld1-1-2654Linux' CONTENT_GAME0_BIN_FILES=" ${UNITY3D_NAME}_Data/Plugins" CONTENT_GAME0_DATA_FILES=' Data/Core' USER_PERSISTENT_DIRECTORIES=' Mods' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" ## TODO: Add a list of required native 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 . "$PLAYIT_LIB2" # Extract game data ## Errors during the game data extraction from the archive are expected, they should be ignored. archive_extraction_defayt 2>/dev/null || true # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-risk-of-rain.sh0000755000000000000000000000475014471751340014467 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Risk of Rain # send your bug reports to contact@dotslashplay.it ### script_version=20230818.1 GAME_ID='risk-of-rain' GAME_NAME='Risk of Rain' ARCHIVE_BASE_GOG_1='gog_risk_of_rain_2.1.0.6.sh' ARCHIVE_BASE_GOG_1_MD5='423ea26f877eb8f0d72e04dffffbf81a' ARCHIVE_BASE_GOG_1_SIZE='180000' ARCHIVE_BASE_GOG_1_VERSION='1.2.8-gog2.1.0.6' ARCHIVE_BASE_GOG_1_URL='https://www.gog.com/game/risk_of_rain' ARCHIVE_BASE_GOG_0='gog_risk_of_rain_2.1.0.5.sh' ARCHIVE_BASE_GOG_0_MD5='34f8e1e2dddc6726a18c50b27c717468' ARCHIVE_BASE_GOG_0_SIZE='180000' ARCHIVE_BASE_GOG_0_VERSION='1.2.8-gog2.1.0.5' ARCHIVE_BASE_HUMBLE_0='Risk_of_Rain_v1.3.0_DRM-Free_Linux_.zip' ARCHIVE_BASE_HUMBLE_0_MD5='21eb80a7b517d302478c4f86dd5ea9a2' ARCHIVE_BASE_HUMBLE_0_SIZE='100000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.3.0-humble160519' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/risk-of-rain' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='.' CONTENT_GAME_BIN_FILES=' Risk_of_Rain' CONTENT_GAME_DATA_FILES=' assets' APP_MAIN_EXE='Risk_of_Rain' APP_MAIN_ICON='assets/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libcurl.so.4+CURL_OPENSSL_3 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libssl.so.1.0.0 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 libz.so.1' # Load common functions 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-road-96.sh0000755000000000000000000000522714471751340013347 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Road 96 # send your bug reports to contact@dotslashplay.it ### script_version=20230709.1 GAME_ID='road-96' GAME_NAME='Road 96' ARCHIVE_BASE_0='setup_road_96_1.04_(64bit)_(51993).exe' ARCHIVE_BASE_0_MD5='f0d88097b5e6c44687e073c4abef816b' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_road_96_1.04_(64bit)_(51993)-1.bin' ARCHIVE_BASE_0_PART1_MD5='608d310ebb3154a0e85bad40175f9189' ARCHIVE_BASE_0_PART2='setup_road_96_1.04_(64bit)_(51993)-2.bin' ARCHIVE_BASE_0_PART2_MD5='f0d523facddf8c40c18fd6b1721a8855' ARCHIVE_BASE_0_SIZE='14000000' ARCHIVE_BASE_0_VERSION='1.04-gog51993' ARCHIVE_BASE_0_URL='https://www.gog.com/game/road_96' UNITY3D_NAME='road 96' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_data/plugins baselib.dll gameassembly.dll unityplayer.dll" CONTENT_GAME_DATA_RESOURCES_FILES=" ${UNITY3D_NAME}_data/*.ress" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/DigixArt/Road 96' APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA_RESOURCES PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_RESOURCES_ID="${PKG_DATA_ID}-resources" PKG_DATA_RESOURCES_DESCRIPTION="$PKG_DATA_DESCRIPTION - resources" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_RESOURCES_ID" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files rm --recursive \ '__redist' \ 'app' \ 'commonappdata' \ 'tmp' ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-robin-hood-the-legend-of-sherwood.sh0000755000000000000000000002015314471751340020465 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2017-2020, Jacek Szafarkiewicz # Copyright (c) 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. ### ### # Robin Hood: The Legend of Sherwood # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210623.26 # Set game-specific variables GAME_ID='robin-hood-the-legend-of-sherwood' GAME_NAME='Robin Hood: The Legend of Sherwood' ARCHIVE_BASE_EN_0='setup_robin_hood_-_the_legend_of_sherwood_1.1_hotfix_(24778).exe' ARCHIVE_BASE_EN_0_MD5='a52ed21f93f17457a3a137b54ee60919' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_SIZE='1100000' ARCHIVE_BASE_EN_0_VERSION='1.1-gog24778' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/robin_hood' ARCHIVE_BASE_EN_0_PART1='setup_robin_hood_-_the_legend_of_sherwood_1.1_hotfix_(24778)-1.bin' ARCHIVE_BASE_EN_0_PART1_MD5='6fbcea908c83933326294c0706838da5' ARCHIVE_BASE_EN_0_PART1_TYPE='innosetup' ARCHIVE_BASE_FR_0='setup_robin_hood_-_the_legend_of_sherwood_1.1_hotfix_(french)_(24778).exe' ARCHIVE_BASE_FR_0_MD5='2f945bd2a1d70c1c9ff3b9938e1adf9a' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_SIZE='1100000' ARCHIVE_BASE_FR_0_VERSION='1.1-gog24778' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/robin_hood' ARCHIVE_BASE_FR_0_PART1='setup_robin_hood_-_the_legend_of_sherwood_1.1_hotfix_(french)_(24778)-1.bin' ARCHIVE_BASE_FR_0_PART1_MD5='060df1c05868593a59ccc4ca2832cf36' ARCHIVE_BASE_FR_0_PART1_TYPE='innosetup' ARCHIVE_BASE_DE_0='setup_robin_hood_-_the_legend_of_sherwood_1.1_hotfix_(german)_(24778).exe' ARCHIVE_BASE_DE_0_MD5='cdba08e0613408bc3709f387144c7a1d' ARCHIVE_BASE_DE_0_TYPE='innosetup' ARCHIVE_BASE_DE_0_SIZE='1100000' ARCHIVE_BASE_DE_0_VERSION='1.1-gog24778' ARCHIVE_BASE_DE_0_URL='https://www.gog.com/game/robin_hood' ARCHIVE_BASE_DE_0_PART1='setup_robin_hood_-_the_legend_of_sherwood_1.1_hotfix_(german)_(24778)-1.bin' ARCHIVE_BASE_DE_0_PART1_MD5='6291dbee561468bb4fbb769aaf74eb36' ARCHIVE_BASE_DE_0_PART1_TYPE='innosetup' ARCHIVE_BASE_PL_0='setup_robin_hood_-_the_legend_of_sherwood_1.1_hotfix_(polish)_(24778).exe' ARCHIVE_BASE_PL_0_MD5='42066791c34c3ff6f6b9a1404f7afb1e' ARCHIVE_BASE_PL_0_TYPE='innosetup' ARCHIVE_BASE_PL_0_SIZE='1100000' ARCHIVE_BASE_PL_0_VERSION='1.1-gog24778' ARCHIVE_BASE_PL_0_URL='https://www.gog.com/game/robin_hood' ARCHIVE_BASE_PL_0_PART1='setup_robin_hood_-_the_legend_of_sherwood_1.1_hotfix_(polish)_(24778)-1.bin' ARCHIVE_BASE_PL_0_PART1_MD5='dc4bf92553c3a6e436b8d79c99a6287c' ARCHIVE_BASE_PL_0_PART1_TYPE='innosetup' ARCHIVE_BASE_ES_0='setup_robin_hood_-_the_legend_of_sherwood_1.1_hotfix_(spanish)_(24778).exe' ARCHIVE_BASE_ES_0_MD5='7db0f8d9c40bb398acb406224a225eb9' ARCHIVE_BASE_ES_0_TYPE='innosetup' ARCHIVE_BASE_ES_0_SIZE='1100000' ARCHIVE_BASE_ES_0_VERSION='1.1-gog24778' ARCHIVE_BASE_ES_0_URL='https://www.gog.com/game/robin_hood' ARCHIVE_BASE_ES_0_PART1='setup_robin_hood_-_the_legend_of_sherwood_1.1_hotfix_(spanish)_(24778)-1.bin' ARCHIVE_BASE_ES_0_PART1_MD5='e9ba8791951285a814ef86fcf3b8614f' ARCHIVE_BASE_ES_0_PART1_TYPE='innosetup' ARCHIVE_BASE_EN_OLDPATH_1='setup_robin_hood_-_the_legend_of_sherwood_1.1_(17797).exe' ARCHIVE_BASE_EN_OLDPATH_1_MD5='e8808cdafc7ea75cbcfaa850275b3dd6' ARCHIVE_BASE_EN_OLDPATH_1_TYPE='innosetup' ARCHIVE_BASE_EN_OLDPATH_1_SIZE='1200000' ARCHIVE_BASE_EN_OLDPATH_1_VERSION='1.1-gog17797' ARCHIVE_BASE_FR_OLDPATH_1='setup_robin_hood_-_the_legend_of_sherwood_french_1.1_(17797).exe' ARCHIVE_BASE_FR_OLDPATH_1_MD5='8b19812fb424651fc482cb7a9c5ed665' ARCHIVE_BASE_FR_OLDPATH_1_SIZE='1200000' ARCHIVE_BASE_FR_OLDPATH_1_VERSION='1.1-gog17797' ARCHIVE_BASE_EN_OLDPATH_0='setup_robin_hood_2.0.0.12.exe' ARCHIVE_BASE_EN_OLDPATH_0_MD5='9e2452c88f154c5e0306ca98e6b773ef' ARCHIVE_BASE_EN_OLDPATH_0_SIZE='1100000' ARCHIVE_BASE_EN_OLDPATH_0_VERSION='1.1-gog2.0.0.12' ARCHIVE_BASE_FR_OLDPATH_0='setup_robin_hood_french_2.1.0.15.exe' ARCHIVE_BASE_FR_OLDPATH_0_MD5='f6775cefa54e15141b855d037eafb8d9' ARCHIVE_BASE_FR_OLDPATH_0_SIZE='1100000' ARCHIVE_BASE_FR_OLDPATH_0_VERSION='1.1-gog2.1.0.15' ARCHIVE_DOC_L10N_PATH='.' ARCHIVE_DOC_L10N_FILES='manual.pdf' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='*.dll *.exe launch data/savegame.exe' ARCHIVE_GAME_L10N_PATH='.' ARCHIVE_GAME_L10N_FILES='1031 1036 1045 2047 3082 data/configuration data/interface data/text data/levels/*.rhm data/levels/*.scb data/sounds/fx_0017.sfk data/sounds/snd_055.sfk' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='data/robinhood.bks data/robinhood.dic data/animations data/characters data/levels data/musics data/sounds' CONFIG_FILES='./launch/settings.ini' CONFIG_DIRS='./data/configuration' DATA_DIRS='./data/savegame' DATA_FILES='./campaign.bck' APP_MAIN_TYPE='wine' APP_MAIN_EXE='game.exe' APP_MAIN_ICON='robin hood.exe' PACKAGES_LIST='PKG_L10N PKG_DATA PKG_BIN' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_PROVIDE="$PKG_L10N_ID" PKG_L10N_DESCRIPTION='localization' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="${PKG_DATA_ID} ${PKG_L10N_ID} wine glx" # Localizations PKG_L10N_ID_EN="${PKG_L10N_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_ID}-fr" PKG_L10N_ID_DE="${PKG_L10N_ID}-de" PKG_L10N_ID_PL="${PKG_L10N_ID}-pl" PKG_L10N_ID_ES="${PKG_L10N_ID}-es" PKG_L10N_DESCRIPTION_EN="${PKG_L10N_DESCRIPTION} - English" PKG_L10N_DESCRIPTION_FR="${PKG_L10N_DESCRIPTION} - French" PKG_L10N_DESCRIPTION_DE="${PKG_L10N_DESCRIPTION} - German" PKG_L10N_DESCRIPTION_PL="${PKG_L10N_DESCRIPTION} - Polish" PKG_L10N_DESCRIPTION_ES="${PKG_L10N_DESCRIPTION} - Spanish" # Keep compatibility with old archives ARCHIVE_DOC_L10N_PATH_EN_OLDPATH='app' ARCHIVE_DOC_L10N_PATH_FR_OLDPATH='app' ARCHIVE_GAME_BIN_PATH_EN_OLDPATH='app' ARCHIVE_GAME_BIN_PATH_FR_OLDPATH='app' ARCHIVE_GAME_DATA_PATH_EN_OLDPATH='app' ARCHIVE_GAME_DATA_PATH_FR_OLDPATH='app' # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data # Hide innoextract warnings # « Warning: Ignoring OS constraint for GOG Galaxy file goggame-1207659008.hashdb: win81# » extract_data_from "$SOURCE_ARCHIVE" 2>/dev/null prepare_package_layout # Extract icons PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-rogue-legacy.sh0000755000000000000000000000754214471751340014553 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Rogue legacy # send your bug reports to contact@dotslashplay.it ### script_version=20230102.2 GAME_ID='rogue-legacy' GAME_NAME='Rogue legacy' ARCHIVE_BASE_GOG_1='rogue_legacy_en_1_4_0_22617.sh' ARCHIVE_BASE_GOG_1_MD5='60a1a7a7ff84a50e2ac52f2e44dce92d' ARCHIVE_BASE_GOG_1_TYPE='mojosetup' ARCHIVE_BASE_GOG_1_SIZE='370000' ARCHIVE_BASE_GOG_1_VERSION='1.4.0-gog22617' ARCHIVE_BASE_GOG_1_URL='https://www.gog.com/game/rogue_legacy' ARCHIVE_BASE_GOG_0='gog_rogue_legacy_2.0.0.2.sh' ARCHIVE_BASE_GOG_0_MD5='1b99d6122f0107b420cad9547efefc5e' ARCHIVE_BASE_GOG_0_TYPE='mojosetup' ARCHIVE_BASE_GOG_0_SIZE='240000' ARCHIVE_BASE_GOG_0_VERSION='1.2.0b-gog2.0.0.2' ARCHIVE_BASE_HUMBLE_0='roguelegacy-12282013-bin' ARCHIVE_BASE_HUMBLE_0_MD5='b2a18745b911ed87a048440c2f8a0404' ARCHIVE_BASE_HUMBLE_0_TYPE='mojosetup' ARCHIVE_BASE_HUMBLE_0_SIZE='240000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.2.0b-humble131228' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/rogue-legacy' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='data' CONTENT_GAME_MAIN_FILES=' RogueLegacy.exe RogueCastle.exe Rogue Legacy.bmp Content mono* DS2DEngine.dll FNA.dll FNA.dll.config InputSystem.dll SpriteSystem.dll Tweener.dll' CONTENT_DOC_MAIN_FILES=' Linux.README' APP_MAIN_TYPE='mono' APP_MAIN_EXE_GOG='RogueLegacy.exe' APP_MAIN_EXE_GOG_OLD0='RogueCastle.exe' APP_MAIN_EXE_HUMBLE='RogueCastle.exe' APP_MAIN_ICON='Rogue Legacy.bmp' PKG_MAIN_DEPS='mono' PKG_MAIN_DEPS_DEB='libmono-corlib4.5-cil, libmono-posix4.0-cil, libmono-security4.0-cil, libmono-system4.0-cil, libmono-system-core4.0-cil, libmono-system-configuration4.0-cil, libmono-system-data4.0-cil, libmono-system-drawing4.0-cil, libmono-system-numerics4.0-cil, libmono-system-runtime-serialization4.0-cil, libmono-system-security4.0-cil, libmono-system-xml4.0-cil, libmono-system-xml-linq4.0-cil' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libopenal.so.1 libSDL2-2.0.so.0' # Include shipped libraries that can not be replaced by system ones CONTENT_LIBS_LIBS32_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/lib" CONTENT_LIBS_LIBS32_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/lib" CONTENT_LIBS_LIBS32_FILES=' libmojoshader.so' CONTENT_LIBS_LIBS64_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/lib64" CONTENT_LIBS_LIBS64_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/lib64" CONTENT_LIBS_LIBS64_FILES=' libmojoshader.so' PACKAGES_LIST='PKG_MAIN PKG_LIBS32 PKG_LIBS64' PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS32_ID="$PKG_LIBS_ID" PKG_LIBS32_ARCH='32' PKG_LIBS32_DEPENDENCIES_LIBRARIES=' ld-linux-x86-64.so.2 libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6' PKG_LIBS64_ID="$PKG_LIBS_ID" PKG_LIBS64_ARCH='64' PKG_LIBS64_DEPENDENCIES_LIBRARIES="$PKG_LIBS32_DEPENDENCIES_LIBRARIES" PKG_MAIN_DEPS="$PKG_MAIN_DEPS $PKG_LIBS_ID" # Load common functions target_version='2.20' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-roki.sh0000755000000000000000000000404714471751340013131 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Röki # send your bug reports to contact@dotslashplay.it ### script_version=20230409.1 GAME_ID='roki' GAME_NAME='Röki' ARCHIVE_BASE_0='setup_roki_roki_master_v3.3_(64bit)_(43089).exe' ARCHIVE_BASE_0_MD5='e0a31cf756e51d2d70ed8a7635bc1d19' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2200000' ARCHIVE_BASE_0_VERSION='3.3-gog43089' ARCHIVE_BASE_0_URL='https://www.gog.com/game/roki' UNITY3D_NAME='roki' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_data/plugins ${UNITY3D_NAME}.exe monobleedingedge unitycrashhandler64.exe galaxy64.dll galaxycsharpglue.dll unityplayer.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/LocalLow/Polygon Treehouse/Roki' USER_PERSISTENT_DIRECTORIES=' userdata' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-rusty-lake.sh0000755000000000000000000001006114471751340014256 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Rusty Lake Saga # send your bug reports to contact@dotslashplay.it ### script_version=20230103.1 GAME_ID_BASE='rusty-lake' GAME_ID_HOTEL="${GAME_ID_BASE}-hotel" GAME_ID_ROOTS="${GAME_ID_BASE}-roots" GAME_ID_PARADISE="${GAME_ID_BASE}-paradise" GAME_NAME_BASE='Rusty Lake' GAME_NAME_HOTEL="$GAME_NAME_BASE Hotel" GAME_NAME_ROOTS="$GAME_NAME_BASE Roots" GAME_NAME_PARADISE="$GAME_NAME_BASE Paradise" ARCHIVE_BASE_HOTEL_0='setup_rusty_lake_hotel_gog-1_(30681).exe' ARCHIVE_BASE_HOTEL_0_MD5='a6121ae5cd353c8e86342e7b45cef9b4' ARCHIVE_BASE_HOTEL_0_TYPE='innosetup' ARCHIVE_BASE_HOTEL_0_SIZE='58000' ARCHIVE_BASE_HOTEL_0_VERSION='1.0-gog30681' ARCHIVE_BASE_HOTEL_0_URL='https://www.gog.com/game/rusty_lake_hotel' ARCHIVE_BASE_ROOTS_0='setup_rusty_lake_roots_gog-1_(30681).exe' ARCHIVE_BASE_ROOTS_0_MD5='dae526768d941d55dc80700cc4d3a678' ARCHIVE_BASE_ROOTS_0_TYPE='innosetup' ARCHIVE_BASE_ROOTS_0_SIZE='110000' ARCHIVE_BASE_ROOTS_0_VERSION='1.0-gog30681' ARCHIVE_BASE_ROOTS_0_URL='https://www.gog.com/game/rusty_lake_roots' ARCHIVE_BASE_PARADISE_0='setup_rusty_lake_paradise_gog-1_(30704).exe' ARCHIVE_BASE_PARADISE_0_MD5='5ff0a14bcc068232cb9948987474b503' ARCHIVE_BASE_PARADISE_0_TYPE='innosetup' ARCHIVE_BASE_PARADISE_0_SIZE='130000' ARCHIVE_BASE_PARADISE_0_VERSION='1.0-gog30704' ARCHIVE_BASE_PARADISE_0_URL='https://www.gog.com/game/rusty_lake_paradise' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' adobe?air meta-inf' CONTENT_GAME_BIN_FILES_HOTEL="$CONTENT_GAME_BIN_FILES rustylakehotel.exe" CONTENT_GAME_BIN_FILES_ROOTS="$CONTENT_GAME_BIN_FILES rustylakeroots.exe" CONTENT_GAME_BIN_FILES_PARADISE="$CONTENT_GAME_BIN_FILES rustylakeparadise.exe" CONTENT_GAME_DATA_FILES=' icons' CONTENT_GAME_DATA_FILES_HOTEL="$CONTENT_GAME_DATA_FILES rustylakehotel.swf" CONTENT_GAME_DATA_FILES_ROOTS="$CONTENT_GAME_DATA_FILES rustylakeroots.swf" CONTENT_GAME_DATA_FILES_PARADISE="$CONTENT_GAME_DATA_FILES paradise.swf paradise-translations.xml" CONTENT_DOC_DATA_FILES=' rusty?lake*read?me.pdf' APP_MAIN_EXE_HOTEL='rustylakehotel.exe' APP_MAIN_EXE_ROOTS='rustylakeroots.exe' APP_MAIN_EXE_PARADISE='rustylakeparadise.exe' APP_WINE_LINK_DIRS_HOTEL=' userdata:users/${USER}/AppData/Roaming/com.RustyLake.RustyLakeHotel' APP_WINE_LINK_DIRS_ROOTS=' userdata:users/${USER}/Documents/Rusty Lake/Roots' APP_WINE_LINK_DIRS_PARADISE=' userdata:users/${USER}/Documents/Rusty Lake/Paradise' USER_PERSISTENT_DIRECTORIES=' userdata' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID_HOTEL="${GAME_ID_HOTEL}-data" PKG_DATA_ID_ROOTS="${GAME_ID_ROOTS}-data" PKG_DATA_ID_PARADISE="${GAME_ID_PARADISE}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS_HOTEL="$PKG_DATA_ID_HOTEL" PKG_BIN_DEPS_ROOTS="$PKG_DATA_ID_ROOTS" PKG_BIN_DEPS_PARADISE="$PKG_DATA_ID_PARADISE" # Load common functions target_version='2.20' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' APP_MAIN_EXE=$(get_context_specific_value 'archive' 'APP_MAIN_EXE') icons_inclusion # Include game data content_inclusion_default # Delete temporary directories rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' APP_MAIN_EXE=$(get_context_specific_value 'archive' 'APP_MAIN_EXE') APP_WINE_LINK_DIRS=$(get_context_specific_value 'archive' 'APP_WINE_LINK_DIRS') launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-sagebrush.sh0000755000000000000000000000457614471751340014157 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Sagebrush # send your bug reports to contact@dotslashplay.it ### script_version=20230415.1 GAME_ID='sagebrush' GAME_NAME='Sagebrush' ARCHIVE_BASE_0='sagebrush-windows-universal.zip' ARCHIVE_BASE_0_MD5='0af5ff01fdb4216f81b443a11c997ee1' ARCHIVE_BASE_0_SIZE='380000' ARCHIVE_BASE_0_VERSION='1.41b-itch1' ARCHIVE_BASE_0_URL='https://redactgames.itch.io/sagebrush' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' Sagebrush.exe Sagebrush_Data/Plugins Sagebrush_Data/Managed Sagebrush_Data/Mono UnityPlayer.dll' CONTENT_GAME_DATA_FILES=' Sagebrush_Data' APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/LocalLow/Redact Games/Sagebrush' USER_PERSISTENT_FILES=' userdata' APP_MAIN_EXE='Sagebrush.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Set up a WINE virtual desktop on first launch, using the current desktop resolution PKG_BIN_DEPS="$PKG_BIN_DEPS xrandr sed" sed_expression='s/.*primary.* ([0-9]+x[0-9]+).*/\1/p' sed_options="--regexp-extended --silent --expression='$sed_expression'" APP_WINETRICKS="$APP_WINETRICKS vd=\$(LANG=C xrandr | sed $sed_options)" # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" set_standard_permissions . ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-sally-face.sh0000755000000000000000000000373114471751340014204 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Sally Face # send your bug reports to contact@dotslashplay.it ### script_version=20230411.1 GAME_ID='sally-face' GAME_NAME='Sally Face' ARCHIVE_BASE_1='sally_face_1_5_42_57397.sh' ARCHIVE_BASE_1_MD5='8ae0cd174db19cfd396b71edf99a1d40' ARCHIVE_BASE_1_TYPE='mojosetup' ARCHIVE_BASE_1_SIZE='1800000' ARCHIVE_BASE_1_VERSION='1.5.42-gog57397' ARCHIVE_BASE_1_URL='https://www.gog.com/game/sally_face' UNITY3D_NAME='Sally Face' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/MonoBleedingEdge/x86_64 UnityPlayer.so" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-sam-and-max-hit-the-road.sh0000755000000000000000000000563714471751340016561 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Sam and Max Hit the Road # send your bug reports to contact@dotslashplay.it ### script_version=20230331.2 GAME_ID='sam-and-max-hit-the-road' GAME_NAME='Sam & Max Hit the Road' ARCHIVE_BASE_EN_1='sam_and_max_hit_the_road_en_gog_2_20100.sh' ARCHIVE_BASE_EN_1_MD5='0771889c051c7e1cc6e6c8e8ca8fbe1f' ARCHIVE_BASE_EN_1_TYPE='mojosetup' ARCHIVE_BASE_EN_1_SIZE='390000' ARCHIVE_BASE_EN_1_VERSION='1.0-gog20100' ARCHIVE_BASE_EN_1_URL='https://www.gog.com/game/sam_max_hit_the_road' ARCHIVE_BASE_EN_0='gog_sam_max_hit_the_road_2.0.0.8.sh' ARCHIVE_BASE_EN_0_MD5='00e6de62115b581f01f49354212ce545' ARCHIVE_BASE_EN_0_TYPE='mojosetup' ARCHIVE_BASE_EN_0_SIZE='270000' ARCHIVE_BASE_EN_0_VERSION='1.0-gog2.0.0.1' ARCHIVE_BASE_FR_1='sam_and_max_hit_the_road_fr_gog_2_20100.sh' ARCHIVE_BASE_FR_1_MD5='52b35282832b477c7f1bb06688ba3b95' ARCHIVE_BASE_FR_1_TYPE='mojosetup' ARCHIVE_BASE_FR_1_SIZE='280000' ARCHIVE_BASE_FR_1_VERSION='1.0-gog20100' ARCHIVE_BASE_FR_1_URL='https://www.gog.com/game/sam_max_hit_the_road' ARCHIVE_BASE_FR_0='gog_sam_max_hit_the_road_french_2.0.0.8.sh' ARCHIVE_BASE_FR_0_MD5='127be643ebaa9af24ddd9f2618e4433e' ARCHIVE_BASE_FR_0_TYPE='mojosetup' ARCHIVE_BASE_FR_0_SIZE='160000' ARCHIVE_BASE_FR_0_VERSION='1.0-gog2.0.0.1' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' samnmax.000 samnmax.001 monster.so[u3gf]' CONTENT_DOC_MAIN_PATH_EN='data/noarch/docs/english' CONTENT_DOC_MAIN_PATH_FR='data/noarch/docs/french' CONTENT_DOC_MAIN_FILES=' *.pdf' APP_MAIN_TYPE='scummvm' APP_MAIN_SCUMMID='scumm:samnmax' 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" PKG_MAIN_DEPS='scummvm' # 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Convert all file names to lower case tolower . ) # Include game icons icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-samorost-1.sh0000755000000000000000000000666314471751340014200 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 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. ### ### # Samorost 1 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210607.1 # Set game-specific variables GAME_ID='samorost-1' GAME_NAME='Samorost 1' ARCHIVE_BASE_0='setup_samorost_1_1.12_(47177).exe' ARCHIVE_BASE_0_MD5='3cbc500a060c6654b312c0e0adb04601' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='77000' ARCHIVE_BASE_0_VERSION='1.1.12-gog47177' ARCHIVE_BASE_0_URL='https://www.gog.com/game/samorost_1' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='adobe?air samorost1.exe meta-inf' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='samorost1.exe' APP_MAIN_ICON='samorost1.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="${PKG_DATA_ID} wine" # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Extract icons PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Clean up temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Use persistant storage for user data APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/Application Data/amanitadesign.samorost1' DATA_DIRS="${DATA_DIRS} ./userdata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "${PLAYIT_WORKDIR}" # Print instructions print_instructions exit 0 games/play-samorost-2.sh0000755000000000000000000000666314471751340014201 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 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. ### ### # Samorost 2 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210607.1 # Set game-specific variables GAME_ID='samorost-2' GAME_NAME='Samorost 2' ARCHIVE_BASE_0='setup_samorost_2_2.34_(42685).exe' ARCHIVE_BASE_0_MD5='282e6c0c807678e19d4d0987b1d7b62f' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='130000' ARCHIVE_BASE_0_VERSION='2.2.34-gog42685' ARCHIVE_BASE_0_URL='https://www.gog.com/game/samorost2' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='adobe?air samorost2.exe meta-inf' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='samorost2.exe' APP_MAIN_ICON='samorost2.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="${PKG_DATA_ID} wine" # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Extract icons PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Clean up temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Use persistent storage for user data APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/Application Data/amanitadesign.samorost3' DATA_DIRS="${DATA_DIRS} ./userdata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "${PLAYIT_WORKDIR}" # Print instructions print_instructions exit 0 games/play-samorost-3.sh0000755000000000000000000000672114471751340014175 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 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. ### ### # Samorost 3 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210612.1 # Set game-specific variables GAME_ID='samorost-3' GAME_NAME='Samorost 3' ARCHIVE_BASE_0='setup_samorost_3_1.467.0_(18751).exe' ARCHIVE_BASE_0_MD5='0edc5e0c7a71c41826999bb8bd4b32b0' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1200000' ARCHIVE_BASE_0_VERSION='3.1.467.0-gog18751' ARCHIVE_BASE_0_URL='https://www.gog.com/game/samorost_3_cosmic_edition' ARCHIVE_GAME_BIN_PATH='app' ARCHIVE_GAME_BIN_FILES='adobe?air samorost3.exe meta-inf' ARCHIVE_GAME_DATA_PATH='app' ARCHIVE_GAME_DATA_FILES='data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='samorost3.exe' APP_MAIN_ICON='samorost3.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="${PKG_DATA_ID} wine" # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Extract icons PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Clean up temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Use persistent storage for player data APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/Application Data/amanita-design.samorost3' DATA_DIRS="${DATA_DIRS} ./userdata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "${PLAYIT_WORKDIR}" # Print instructions print_instructions exit 0 games/play-samurai-shodown-2.sh0000755000000000000000000000707414471751340015447 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2020, HS-157 # 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. ### ### # SAMURAI SHODOWN II # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20200725.1 # Set game-specific variables GAME_ID='samurai-shodown-2' GAME_NAME="SAMURAI SHODOWN II" ARCHIVE_HUMBLE='SamuraiShodown2_jan2016.sh' ARCHIVE_HUMBLE_TYPE='mojosetup' ARCHIVE_HUMBLE_URL='https://www.humblebundle.com/store/samurai-shodown-ii' ARCHIVE_HUMBLE_MD5='11a6642f250c9ec322bc8d1a9f0f9b49' ARCHIVE_HUMBLE_VERSION='1.0-humblejan2016' ARCHIVE_HUMBLE_SIZE='48000' ARCHIVE_GAME_BIN32_PATH_HUMBLE='data/x86' ARCHIVE_GAME_BIN32_FILES='NeogeoEmu.bin.x86 lib' ARCHIVE_GAME_BIN64_PATH_HUMBLE='data/x86_64' ARCHIVE_GAME_BIN64_FILES='NeogeoEmu.bin.x86_64 lib64' ARCHIVE_GAME_DATA_PATH_HUMBLE='data/noarch' ARCHIVE_GAME_DATA_FILES='*' APP_MAIN_TYPE='native' APP_MAIN_ICON='SamuraiShodown2.png' APP_MAIN_EXE_BIN32='NeogeoEmu.bin.x86' APP_MAIN_EXE_BIN64='NeogeoEmu.bin.x86_64' DATA_FILES='*.ini *.rml *.txt' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID glibc libstdc++ sdl2 glx alsa libudev1" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout rm --recursive "$PLAYIT_WORKDIR/gamedata" # Extract icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-satellite-reign.sh0000755000000000000000000000536214471751340015256 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Satellite Reign # send your bug reports to contact@dotslashplay.it ### script_version=20231104.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='satellite-reign' GAME_NAME='Satellite Reign' ARCHIVE_BASE_1_NAME='gog_satellite_reign_2.8.0.10.sh' ARCHIVE_BASE_1_MD5='5a22cdb3e721bbed7bc5836e769caa0a' ARCHIVE_BASE_1_SIZE='1400000' ARCHIVE_BASE_1_VERSION='1.13.06-gog2.8.0.10' ARCHIVE_BASE_1_URL='https://www.gog.com/game/satellite_reign' ARCHIVE_BASE_0_NAME='gog_satellite_reign_2.6.0.8.sh' ARCHIVE_BASE_0_MD5='0e050bac1c75632b094097132fa6be72' ARCHIVE_BASE_0_SIZE='1400000' ARCHIVE_BASE_0_VERSION='1.07.08-gog2.6.0.8' UNITY3D_NAME='SatelliteReignLinux' ## TODO: Check if the Steam libraries can be dropped. UNITY3D_PLUGINS=' libCSteamworks.so libsteam_api.so RakNet.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_DOC_DATA_FILES=' Linux_GPU_DriverInfo.txt' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Delete unwanted empty Mac OS directories. rm --recursive \ "$(unity3d_name)_Data/Plugins/CSteamworks.bundle" \ "$(unity3d_name)_Data/Plugins/ShroudUnityPlugin.bundle" ) # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' launchers_write set_current_package 'PKG_BIN32' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-save-room-organization-puzzle.sh0000755000000000000000000000412214471751340020120 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Save Room - Organization Puzzle # send your bug reports to contact@dotslashplay.it ### script_version=20230405.1 GAME_ID='save-room-organization-puzzle' GAME_NAME='Save Room - Organization Puzzle' ARCHIVE_BASE_0='save_room_organization_puzzle_1_0_61593.sh' ARCHIVE_BASE_0_MD5='00a148fa8e4339e800587d48847606e9' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='520000' ARCHIVE_BASE_0_VERSION='1.0-gog61593' ARCHIVE_BASE_0_URL='https://www.gog.com/game/save_room_organization_puzzle' UNITY3D_NAME='Save Room GOG' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_FILES=' UnityPlayer.so' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/MonoBleedingEdge/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-scarf.sh0000755000000000000000000000554114471751340013263 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Scarf # send your bug reports to contact@dotslashplay.it ### script_version=20230706.1 GAME_ID='scarf' GAME_NAME='Scarf' ARCHIVE_BASE_0='setup_scarf_1.1_(64bit)_(53216).exe' ARCHIVE_BASE_0_MD5='128b44bb5ba007934e91ad2a0ff6f693' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_scarf_1.1_(64bit)_(53216)-1.bin' ARCHIVE_BASE_0_PART1_MD5='ef5faab9ebab9772dd159d5cafde0311' ARCHIVE_BASE_0_PART2='setup_scarf_1.1_(64bit)_(53216)-2.bin' ARCHIVE_BASE_0_PART2_MD5='e388bd53a584a6bb9e58ae9b4af0b3b4' ARCHIVE_BASE_0_PART3='setup_scarf_1.1_(64bit)_(53216)-3.bin' ARCHIVE_BASE_0_PART3_MD5='000370e5c0bac838f8f50f9b2cfc3f18' ARCHIVE_BASE_0_PART4='setup_scarf_1.1_(64bit)_(53216)-4.bin' ARCHIVE_BASE_0_PART4_MD5='761da3606e1e2dfa741b5e8be51cd9f3' ARCHIVE_BASE_0_SIZE='14000000' ARCHIVE_BASE_0_VERSION='1.1-gog53216' ARCHIVE_BASE_0_URL='https://www.gog.com/game/scarf' UNREALENGINE4_NAME='scarf' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" engine ${UNREALENGINE4_NAME}/binaries ${UNREALENGINE4_NAME}/plugins ${UNREALENGINE4_NAME}.exe" CONTENT_GAME_MOVIES_FILES=" ${UNREALENGINE4_NAME}/content/movies" CONTENT_GAME_DATA_FILES=" ${UNREALENGINE4_NAME}" HUGE_FILES_DATA=" ${UNREALENGINE4_NAME}/content/paks/${UNREALENGINE4_NAME}-windowsnoeditor.pak" WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=" users/\${USER}/AppData/Local/${UNREALENGINE4_NAME}/Saved" APP_MAIN_EXE="${UNREALENGINE4_NAME}.exe" APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=101' PACKAGES_LIST='PKG_BIN PKG_MOVIES PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_MOVIES_ID="${GAME_ID}-movies" PKG_MOVIES_DESCRIPTION='movies' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_MOVIES_ID $PKG_DATA_ID" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-scarlet-hood-and-the-wicked-wood.sh0000755000000000000000000000374314471751340020303 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Scarlet Hood and the Wicked Wood # send your bug reports to contact@dotslashplay.it ### script_version=20231104.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='scarlet-hood-and-the-wicked-wood' GAME_NAME='Scarlet Hood and the Wicked Wood' ARCHIVE_BASE_0_NAME='scarlet_hood_and_the_wicked_wood_1_0_7_47145.sh' ARCHIVE_BASE_0_MD5='4661f6c64736fefe383c0c92860a5513' ARCHIVE_BASE_0_SIZE='3200000' ARCHIVE_BASE_0_VERSION='1.0.7-gog47145' ARCHIVE_BASE_0_URL='https://www.gog.com/game/scarlet_hood_and_the_wicked_wood' UNITY3D_NAME='ScarletHood' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-seasons-after-fall.sh0000755000000000000000000001027114471751340015647 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Seasons After Fall # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210509.1 # Set game-specific variables GAME_ID='seasons-after-fall' GAME_NAME='Seasons After Fall' ARCHIVES_LIST=' ARCHIVE_BASE_0' ARCHIVE_BASE_0='setup_seasons_after_fall_26129_(30224).exe' ARCHIVE_BASE_0_MD5='f7207d11fe8483d428d23ca4b62615d1' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='4100000' ARCHIVE_BASE_0_VERSION='26129-gog30224' ARCHIVE_BASE_0_URL='https://www.gog.com/game/seasons_after_fall' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='seasons?after?fall.exe seasons?after?fall_data/plugins seasons?after?fall_data/mono' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='seasons?after?fall_data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='seasons after fall.exe' APP_MAIN_ICON='seasons after fall.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Use persistent storage for saved games and settings CONFIG_FILES="${CONFIG_FILES} ./userdata/UserOptions.json" DATA_FILES="${DATA_FILES} ./userdata/*.save" APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use persistent storage for saved games and settings userdata_path_prefix="$WINEPREFIX/drive_c/users/$USER/Saved Games/Seasons after Fall" userdata_path_persistent="$PATH_PREFIX/userdata" mkdir --parents "$userdata_path_persistent" if [ ! -h "$userdata_path_prefix" ]; then if [ -d "$userdata_path_prefix" ]; then # Migrate existing user data to the persistent path mv "$userdata_path_prefix"/* "$userdata_path_persistent" rmdir "$userdata_path_prefix" fi # Create link from prefix to persistent path mkdir --parents "$(dirname "$userdata_path_prefix")" ln --symbolic "$userdata_path_persistent" "$userdata_path_prefix" fi' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-secrets-of-raetikon.sh0000755000000000000000000000634714471751340016056 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Secrets of Raetikon # send your bug reports to contact@dotslashplay.it ### script_version=20231111.5 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='secrets-of-raetikon' GAME_NAME='Secrets of Raetikon' ARCHIVE_BASE_0_NAME='SecretsofRaetikonLinux1.1.zip' ARCHIVE_BASE_0_MD5='16a81710ce12480c9cd75a6992d2956c' ARCHIVE_BASE_0_SIZE='130000' ARCHIVE_BASE_0_VERSION='1.1-humble140731' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/secrets-of-rtikon' CONTENT_PATH_DEFAULT='Raetikon' CONTENT_LIBS_BIN64_PATH="${CONTENT_PATH_DEFAULT}/lib64" CONTENT_LIBS_BIN64_FILES=' libfmodex64-4.44.32.so libfmodex64.so' CONTENT_LIBS_BIN32_PATH="${CONTENT_PATH_DEFAULT}/lib32" CONTENT_LIBS_BIN32_FILES=' libfmodex-4.44.32.so libfmodex.so' CONTENT_GAME_BIN64_FILES=' Raetikon64' CONTENT_GAME_BIN32_FILES=' Raetikon' CONTENT_GAME_DATA_FILES=' data steam_appid.txt' CONTENT_DOC_DATA_PATH='.' CONTENT_DOC_DATA_FILES=' Manual.pdf' ## The game binaries are linked against libsteam_api.so, so it can not be dropped. CONTENT_LIBS_BIN64_FILES="${CONTENT_LIBS_BIN64_FILES:-} libsteam_api.so" CONTENT_LIBS_BIN32_FILES="${CONTENT_LIBS_BIN32_FILES:-} libsteam_api.so" APP_MAIN_EXE_BIN32='Raetikon' APP_MAIN_EXE_BIN64='Raetikon64' ## Create a minimal configuration file to avoid a black screen on Intel chipset. APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' # Create a minimal configuration file to avoid a black screen on Intel chipset config_file="${HOME}/.secrets-of-raetikon/Options.xml" if [ ! -e "$config_file" ]; then mkdir --parents "$(dirname "$config_file")" cat > "$config_file" <<- EOF EOF fi ' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libasound.so.2 libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 libstdc++.so.6 libX11.so.6 libXrandr.so.2' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' launchers_write set_current_package 'PKG_BIN32' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-sengoku-3.sh0000755000000000000000000000701314471751340013774 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2020, HS-157 # 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. ### ### # SENGOKU 3 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20200725.1 # Set game-specific variables GAME_ID='sengoku-3' GAME_NAME="SENGOKU 3" ARCHIVE_HUMBLE='Sengoku3_jan2016.sh' ARCHIVE_HUMBLE_TYPE='mojosetup' ARCHIVE_HUMBLE_URL='https://www.humblebundle.com/store/sengoku-3' ARCHIVE_HUMBLE_MD5='5ecd65661e4b35c1badebcb146c8a261' ARCHIVE_HUMBLE_VERSION='1.0-humblejan2016' ARCHIVE_HUMBLE_SIZE='76000' ARCHIVE_GAME_BIN32_PATH_HUMBLE='data/x86' ARCHIVE_GAME_BIN32_FILES='NeogeoEmu.bin.x86 lib' ARCHIVE_GAME_BIN64_PATH_HUMBLE='data/x86_64' ARCHIVE_GAME_BIN64_FILES='NeogeoEmu.bin.x86_64 lib64' ARCHIVE_GAME_DATA_PATH_HUMBLE='data/noarch' ARCHIVE_GAME_DATA_FILES='*' APP_MAIN_TYPE='native' APP_MAIN_ICON='Sengoku3.png' APP_MAIN_EXE_BIN32='NeogeoEmu.bin.x86' APP_MAIN_EXE_BIN64='NeogeoEmu.bin.x86_64' DATA_FILES='*.ini *.rml *.txt' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID glibc libstdc++ sdl2 glx alsa libudev1" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout rm --recursive "$PLAYIT_WORKDIR/gamedata" # Extract icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-sentris.sh0000755000000000000000000000507314471751340013654 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Sentris # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220630.3 GAME_ID='sentris' GAME_NAME='Sentris' ARCHIVE_BASE_0='Sentris_1.02_Linux.zip' ARCHIVE_BASE_0_MD5='b6ca5f3447a223efba73ae9138b16a45' ARCHIVE_BASE_0_SIZE='410000' ARCHIVE_BASE_0_VERSION='1.02-humble170110' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/sentris' UNITY3D_NAME='Sentris' CONTENT_PATH_DEFAULT='Sentris_1.02_Linux' ARCHIVE_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86" ARCHIVE_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32="${UNITY3D_NAME}.x86" APP_MAIN_EXE_BIN64="${UNITY3D_NAME}.x86_64" APP_MAIN_ICON="${UNITY3D_NAME}_Data/Resources/UnityPlayer.png" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID libc.so.6 libGL.so.1 xcursor libxrandr" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Use a dedicated log file for the current game session APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a dedicated log file for the current game session mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-shantae-and-the-pirates-curse.sh0000755000000000000000000000434414471751340017712 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2022 Mopi set -o errexit ### # Shantae and the Pirate's Curse # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220626.1 # Set game-specific variables GAME_ID='shantae-and-the-pirates-curse' GAME_NAME='Shantae and the Pirateʼs Curse' ARCHIVE_BASE_0='setup_shantae_and_the_pirates_curse_1.04g_(18994).exe' ARCHIVE_BASE_0_MD5='66e16f3a97328c2ba08c19a64d88c16c' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='470000' ARCHIVE_BASE_0_VERSION='1.04g-gog18994' ARCHIVE_BASE_0_URL='https://www.gog.com/game/shantae_and_the_pirates_curse' CONTENT_PATH_DEFAULT='app' ARCHIVE_GAME_BIN_FILES=' shantae?and?the?pirate?s?curse.exe' ARCHIVE_GAME_DATA_FILES=' shantaecurse.data' APP_MAIN_TYPE='wine' APP_MAIN_EXE="shantae and the pirate's curse.exe" APP_MAIN_ICON="shantae and the pirate's curse.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Use persistent storage for user data CONFIG_FILES='./options.txt' DATA_FILES='./*.save' # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icons PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-shelter-1.sh0000755000000000000000000000473014471751340013770 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Shelter 1 # send your bug reports to contact@dotslashplay.it ### script_version=20230918.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='shelter-1' GAME_NAME='Shelter' ARCHIVE_BASE_HUMBLE_0_NAME='Shelter_PC_Gold_v5.zip' ARCHIVE_BASE_HUMBLE_0_MD5='32b84f87d7c24f57809670742adad3f7' ARCHIVE_BASE_HUMBLE_0_SIZE='550000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0-humble1' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/shelter' ARCHIVE_BASE_GOG_1_NAME='setup_shelter_1.0_(18565).exe' ARCHIVE_BASE_GOG_1_MD5='7d1a2df224b43ce5a80008af13edde1d' ARCHIVE_BASE_GOG_1_TYPE='innosetup' ARCHIVE_BASE_GOG_1_SIZE='560000' ARCHIVE_BASE_GOG_1_VERSION='1.0-gog18565' ARCHIVE_BASE_GOG_1_URL='https://www.gog.com/game/shelter' ARCHIVE_BASE_GOG_0_NAME='setup_shelter_2.0.0.6.exe' ARCHIVE_BASE_GOG_0_MD5='06860af1df9a8120bce4e97d899b3edd' ARCHIVE_BASE_GOG_0_TYPE='innosetup' ARCHIVE_BASE_GOG_0_SIZE='570000' ARCHIVE_BASE_GOG_0_VERSION='1.0-gog2.0.0.6' CONTENT_PATH_DEFAULT_HUMBLE='.' CONTENT_PATH_DEFAULT_GOG='app' UNITY3D_NAME_HUMBLE='Shelter PC Gold v5' UNITY3D_NAME_GOG='shelter' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/Might and Delight/Shelter' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' ## Ensure smooth upgrade from previous game id PKG_DATA_PROVIDES=' shelter-data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" ## Ensure smooth upgrade from previous game id PKG_BIN_PROVIDES=' shelter' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-shelter-2-paws.sh0000755000000000000000000000523314471751340014740 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Shelter 2: Paws # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220630.1 GAME_ID='shelter-2-paws' GAME_NAME='Paws: A Shelter 2 Game' ARCHIVE_BASE_0='gog_paws_a_shelter_2_game_2.1.0.3.sh' ARCHIVE_BASE_0_MD5='51423901b52f063e6b6561622a5a7bae' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='1800000' ARCHIVE_BASE_0_VERSION='2017.05.11-gog2.1.0.3' ARCHIVE_BASE_0_URL='https://www.gog.com/game/paws_a_shelter_2_game' UNITY3D_NAME='Paws' CONTENT_PATH_DEFAULT='data/noarch/game' ARCHIVE_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86" ARCHIVE_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32="${UNITY3D_NAME}.x86" APP_MAIN_EXE_BIN64="${UNITY3D_NAME}.x86_64" APP_MAIN_ICON="${UNITY3D_NAME}_Data/Resources/UnityPlayer.png" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6 libGLU.so.1 xcursor libxrandr" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Use a dedicated log file for the current game session APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a dedicated log file for the current game session mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-shelter-2.sh0000755000000000000000000000531414471751340013770 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Shelter 2 # Support for the Mountains stand-alone expansion is included # send your bug reports to contact@dotslashplay.it ### script_version=20230625.1 # Set game-specific variables GAME_ID='shelter-2' GAME_NAME='Shelter 2' ARCHIVES_LIST='ARCHIVE_MOUNTAINS_GOG ARCHIVE_GOG' ARCHIVE_MOUNTAINS_GOG='gog_shelter_2_mountains_dlc_2.0.0.1.sh' ARCHIVE_MOUNTAINS_GOG_URL='https://www.gog.com/game/shelter_2_mountains' ARCHIVE_MOUNTAINS_GOG_MD5='ffe25b4ac5d75b9a30ed983634397d85' ARCHIVE_MOUNTAINS_GOG_SIZE='2500000' ARCHIVE_MOUNTAINS_GOG_VERSION='1.0-gog2.0.0.1' ARCHIVE_GOG='gog_shelter_2_2.5.0.10.sh' ARCHIVE_GOG_URL='https://www.gog.com/game/shelter_2' ARCHIVE_GOG_MD5='f2bf2e188667133ad117b5bff846e66e' ARCHIVE_GOG_SIZE='2200000' ARCHIVE_GOG_VERSION='20150708-gog2.5.0.10' DATA_DIRS='./logs' ARCHIVE_GAME_BIN_PATH='data/noarch/game' ARCHIVE_GAME_BIN_FILES='Shelter2.x86 Shelter2_Data/Mono Shelter2_Data/Plugins' ARCHIVE_GAME_DATA_PATH='data/noarch/game' ARCHIVE_GAME_DATA_FILES='Shelter2_Data' APP_MAIN_TYPE='native' APP_MAIN_EXE='Shelter2.x86' # shellcheck disable=SC2016 APP_MAIN_OPTIONS='-logFile ./logs/$(date +%F-%R).log' APP_MAIN_ICON='Shelter2_Data/Resources/UnityPlayer.png' PACKAGES_LIST='PKG_DATA PKG_BIN' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID glibc libstdc++ glu glx xcursor gtk2 alsa" PKG_BIN_DEPS_ARCH='lib32-libx11 lib32-gdk-pixbuf2 lib32-glib2' PKG_BIN_DEPS_DEB='libx11-6, libgdk-pixbuf2.0-0, libglib2.0-0' PKG_BIN_DEPS_GENTOO='x11-libs/libX11[abi_x86_32] x11-libs/gdk-pixbuf[abi_x86_32] dev-libs/glib[abi_x86_32]' # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout rm --recursive "$PLAYIT_WORKDIR/gamedata" # Get game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-sherlock-holmes-2-the-case-of-the-silver-earring.sh0000755000000000000000000000406114471751340023215 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi set -o errexit ### # Sherlock Holmes: The Case of the Silver Earring # send your bug reports to contact@dotslashplay.it ### script_version=20230128.4 GAME_ID='sherlock-holmes-2-the-case-of-the-silver-earring' GAME_NAME='Sherlock Holmes: The Case of the Silver Earring' ARCHIVE_BASE_0='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 sound.0000 text 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_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.20' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icon PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-sherlock-holmes-3-the-awakened.sh0000755000000000000000000000657514471751340017767 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 3: The Awakened # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220905.5 # Set game-specific variables GAME_ID='sherlock-holmes-3-the-awakened' GAME_NAME='Sherlock Holmes: The Awakened' ARCHIVE_BASE_0='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='--progress=1 --silent --lowercase --gog' ARCHIVE_BASE_0_PART1='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' ARCHIVE_GAME_BIN_FILES=' game.exe *.dll' ARCHIVE_GAME_DATA_FILES=' 000 logo data.txt shaders.0050 splash_screen.dds' ARCHIVE_GAME0_BIN_PATH='support/app' ARCHIVE_GAME0_BIN_FILES=' game.ini user.ini' APP_MAIN_TYPE='wine' APP_MAIN_EXE='game.exe' APP_MAIN_ICON='game.exe' APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=101 --language=1024' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Use persistent storage for user data APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/Roaming/Games/sherlock holmes - the awakened - remastered userdata:users/${USER}/AppData/Roaming/Games/sherlock holmes - la nuit des sacrifiés - remasterisée' USER_PERSISTENT_DIRECTORIES=' userdata/save' USER_PERSISTENT_FILES=' userdata/setup.ini' # Set game lang based on current locale APP_MAIN_PRERUN="$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' USER_PERSISTENT_FILES="$USER_PERSISTENT_FILES"' game.ini' # Ensure availability of required library PhysXLoader.dll APP_WINETRICKS="$APP_WINETRICKS physx" PKG_BIN_DEPS="$PKG_BIN_DEPS winetricks" # Load common functions target_version='2.17' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icon PKG='PKG_DATA' icons_inclusion # Include game data prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-sherlock-holmes-4-nemesis.sh0000755000000000000000000000476014471751340017070 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 4: Nemesis # send your bug reports to contact@dotslashplay.it ### script_version=20230804.4 GAME_ID='sherlock-holmes-4-nemesis' GAME_NAME='Sherlock Holmes: Nemesis' ARCHIVE_BASE_0='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='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=' *.dll game.exe' CONTENT_GAME_DATA_FILES=' 000 logo data.txt shaders.0050 splash_screen.dds' CONTENT_GAME0_BIN_PATH='support/app' CONTENT_GAME0_BIN_FILES=' game.ini user.ini' USER_PERSISTENT_FILES=' *.ini' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/Games/sherlock holmes versus arsene lupin' APP_MAIN_EXE='game.exe' APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=101 --language=0' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Install required PhysX libraries APP_WINETRICKS="${APP_WINETRICKS:-} physx" # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-sherlock-holmes-5-versus-jack-the-ripper.sh0000755000000000000000000000776414471751340021747 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=20231006.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' 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' 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_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_EN_ID="${PKG_L10N_ID}-en" PKG_L10N_FR_ID="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_EN_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_FR_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_EN_DESCRIPTION='English localization' PKG_L10N_FR_DESCRIPTION='French localization' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID $PKG_L10N_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data PKG='PKG_DATA' icons_inclusion ## 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 PKG='PKG_BIN' launchers_write # Build packages packages_generation case "${LANG%_*}" in ('fr') lang_string='version %s :' lang_en='anglaise' lang_fr='française' ;; ('en'|*) lang_string='%s version:' lang_en='English' lang_fr='French' ;; esac printf '\n' printf "$lang_string" "$lang_en" print_instructions 'PKG_L10N_EN' 'PKG_DATA' 'PKG_BIN' printf "$lang_string" "$lang_fr" print_instructions 'PKG_L10N_FR' 'PKG_DATA' 'PKG_BIN' # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-sherlock-holmes-6-the-testament-of-sherlock-holmes.sh0000755000000000000000000000532414471751340023705 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Sherlock Holmes 6: The Testament of Sherlock Holmes # send your bug reports to contact@dotslashplay.it ### script_version=20230221.3 GAME_ID='sherlock-holmes-6-the-testament-of-sherlock-holmes' GAME_NAME='The Testament of Sherlock Holmes' ARCHIVE_BASE_0='setup_testament_of_sherlock_holmes_2.0.0.5.exe' ARCHIVE_BASE_0_MD5='5942a1e7b0f21d5d4f08c3b3e0bb40e3' ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS='--progress=1 --silent --lowercase --gog' ARCHIVE_BASE_0_PART1='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='setup_testament_of_sherlock_holmes_2.0.0.5-2.bin' ARCHIVE_BASE_0_PART2_MD5='e9b3a3ce285d95af9937e1269b82cdbb' ARCHIVE_BASE_0_PART2_TYPE='rar' 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 game.exe game.ini msvcr71.dll' CONTENT_GAME_DATA_FILES=' 000 001 002 003 004 logo data.txt splash_screen.jpg *.0050' APP_WINE_LINK_DIRS=' appdata:users/${USER}/AppData/Roaming/Frogwares/The Testament of Sherlock Holmes' USER_PERSISTENT_DIRECTORIES=' appdata/save' USER_PERSISTENT_FILES=' appdata/setup.ini' APP_MAIN_EXE='game.exe' APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=101 --language=1033' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Ensure availability of required library PhysXLoader.dll APP_WINETRICKS="$APP_WINETRICKS physx" # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icon PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-sherlock-holmes-7-crimes-and-punishments.sh0000755000000000000000000001100114471751340022007 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Sherlock Holmes: Crimes and Punishments # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210412.1 # Set game-specific variables GAME_ID='sherlock-holmes-7-crimes-and-punishments' GAME_NAME='Sherlock Holmes: Crimes and Punishments' ARCHIVES_LIST=' ARCHIVE_BASE_0' ARCHIVE_BASE_0='setup_sherlock_holmes_crimes_and_punishments_76411_(32864).exe' ARCHIVE_BASE_0_MD5='b9c8bcd83540b4accfa03ea016ab75ba' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_sherlock_holmes_crimes_and_punishments_76411_(32864)-1.bin' ARCHIVE_BASE_0_PART1_MD5='757b844b87696a6ab9e044a354189d6f' ARCHIVE_BASE_0_PART1_TYPE='innosetup' ARCHIVE_BASE_0_PART2='setup_sherlock_holmes_crimes_and_punishments_76411_(32864)-2.bin' ARCHIVE_BASE_0_PART2_MD5='d786ed336b2c2f48de3289dfce038081' ARCHIVE_BASE_0_PART2_TYPE='innosetup' 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' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='fdk binaries app' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='sh7game engine' APP_MAIN_TYPE='wine' APP_MAIN_EXE='binaries/win32/sherlock.exe' APP_MAIN_ICON='binaries/win32/sherlock.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Store user data in persistent paths CONFIG_DIRS="${CONFIG_DIRS} ./userdata/config" DATA_FILES="${DATA_FILES} ./userdata/*.sav" APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Store user data in persistent paths userdata_path_prefix="$WINEPREFIX/drive_c/users/$USER/My Documents/My Games/Sherlock Holmes - Crimes and Punishments/SH7Game" userdata_path_persistent="$PATH_PREFIX/userdata" mkdir --parents "$userdata_path_persistent" if [ ! -h "$userdata_path_prefix" ]; then if [ -d "$userdata_path_prefix" ]; then # Migrate existing user data to the persistent path mv "$userdata_path_prefix"/* "$userdata_path_persistent" rmdir "$userdata_path_prefix" fi # Create link from prefix to persistent path mkdir --parents "$(dirname "$userdata_path_prefix")" ln --symbolic "$userdata_path_persistent" "$userdata_path_prefix" fi' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-sherlock-holmes-8-the-devils-daughter.sh0000755000000000000000000001160614471751340021273 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 8: The Devil's Daughter # send your bug reports to contact@dotslashplay.it ### script_version=20230821.1 GAME_ID='sherlock-holmes-8-the-devils-daughter' GAME_NAME='Sherlock Holmes: The Devilʼs Daughter' ARCHIVE_BASE_1='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='setup_sherlock_holmes_the_devils_daughter_updated_version_(64bit)_(47726)-1.bin' ARCHIVE_BASE_1_PART1_MD5='19479d302c3cb9f0fc7dd4900f6973c0' ARCHIVE_BASE_1_PART2='setup_sherlock_holmes_the_devils_daughter_updated_version_(64bit)_(47726)-2.bin' ARCHIVE_BASE_1_PART2_MD5='03a63eca21c2d9daa1575c4207aa7f72' ARCHIVE_BASE_1_PART3='setup_sherlock_holmes_the_devils_daughter_updated_version_(64bit)_(47726)-3.bin' ARCHIVE_BASE_1_PART3_MD5='a7984be1a7dd16f9de45a768d5b4ebd5' ARCHIVE_BASE_1_PART4='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='setup_sherlock_holmes_-_the_devils_daughter_gog-1_(18233).exe' ARCHIVE_BASE_0_MD5='4832ade71deb5e113329a81f7c28ada3' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_sherlock_holmes_-_the_devils_daughter_gog-1_(18233)-1.bin' ARCHIVE_BASE_0_PART1_MD5='46292f406b40cdcbe1c49177132284c8' ARCHIVE_BASE_0_PART2='setup_sherlock_holmes_-_the_devils_daughter_gog-1_(18233)-2.bin' ARCHIVE_BASE_0_PART2_MD5='dbffed9110dfb7743aaf2516b805e7cb' ARCHIVE_BASE_0_PART3='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" ## Install required Visual C++ 2012 libraries. WINE_WINETRICKS_VERBS='vcrun2012' APP_MAIN_EXE='binaries/win64/sherlock.exe' # 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_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_TEXTURES_ID="${PKG_DATA_ID}-textures" PKG_DATA_TEXTURES_DESCRIPTION="$PKG_DATA_DESCRIPTION - textures" PKG_DATA_PART1_ID="${PKG_DATA_ID}-part1" PKG_DATA_PART1_DESCRIPTION="$PKG_DATA_DESCRIPTION - part 1" PKG_DATA_PART2_ID="${PKG_DATA_ID}-part2" PKG_DATA_PART2_DESCRIPTION="$PKG_DATA_DESCRIPTION - part 2" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_TEXTURES_ID $PKG_DATA_PART1_ID $PKG_DATA_PART2_ID" # Load common functions target_version='2.25' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Include Mono in the WINE prefix ARCHIVE_REQUIRED_MONO='wine-mono-8.0.0-x86.msi' ARCHIVE_REQUIRED_MONO_MD5='4fe5c683fcd9634c7f6571f252b3603c' ARCHIVE_REQUIRED_MONO_URL='https://dl.winehq.org/wine/wine-mono/8.0.0/' archive_initialize_required 'ARCHIVE_MONO' 'ARCHIVE_REQUIRED_MONO' mono_installer_source=$(archive_find_path 'ARCHIVE_MONO') mono_installer_destination="$(package_path 'PKG_BIN')$(path_game_data)/mono/wine-mono-8.0.0-x86.msi" install -D --mode=644 "$mono_installer_source" "$mono_installer_destination" WINE_DLLOVERRIDES_DEFAULT='winemenubuilder.exe,mshtml=' APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' # Include Mono in the WINE prefix if [ ! -e .mono_installed ]; then $(wine_command) mono/wine-mono-8.0.0-x86.msi touch .mono_installed fi ' # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA_PART2' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-sherlock-holmes-and-the-hound-of-the-baskervilles.sh0000755000000000000000000000422114471751340023553 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi set -o errexit ### # Sherlock Holmes and the Hound of the Baskervilles # send your bug reports to contact@dotslashplay.it ### script_version=20230625.1 # Set game-specific variables GAME_ID='sherlock-holmes-and-the-hound-of-the-baskervilles' GAME_NAME='Sherlock Holmes and the Hound of the Baskervilles' ARCHIVE_GOG='setup_sherlock_holmes_and_the_hound_of_the_baskervilles_1.0_(31691).exe' ARCHIVE_GOG_URL='https://www.gog.com/game/sherlock_holmes_and_the_hound_of_the_baskervilles' ARCHIVE_GOG_MD5='26b5d3a72d919ffd084efbb660b7607d' ARCHIVE_GOG_VERSION='1.0-gog31691' ARCHIVE_GOG_SIZE='340000' ARCHIVE_GOG_TYPE='innosetup' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='d3dx9_32.dll game.ini msvcr71.dll __redist sherlockholmes_thehoundofthebaskervilles.exe user.ini' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='game 000 cursor data.txt logo shaders.0050' DATA_FILES='game.ini user.ini' APP_MAIN_TYPE='wine' APP_MAIN_EXE='sherlockholmes_thehoundofthebaskervilles.exe' APP_MAIN_ICON='sherlockholmes_thehoundofthebaskervilles.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-shovel-knight.sh0000755000000000000000000000715114471751340014746 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright © 2015-2022, Antoine Le Gonidec # Copyright © 2021-2022, Daguhh # 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. ### ### # Shovel Knight # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220102.1 # Set game-specific variables GAME_ID='shovel-knight' GAME_NAME='Shovel Knight: Treasure Trove' ARCHIVE_BASE_0='shovel_knight_treasure_trove_4_1b_arby_s_46298.sh' ARCHIVE_BASE_0_MD5='2f5e07e20ac615eb248ab81c25974d53' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='500000' ARCHIVE_BASE_0_VERSION='4.1b-gog46298' ARCHIVE_BASE_0_URL='https://www.gog.com/game/shovel_knight' CONTENT_PATH_DEFAULT='data/noarch/game' ARCHIVE_DOC_PATH='data/noarch/docs' ARCHIVE_DOC_FILES='*.txt' ARCHIVE_GAME_BIN32_PATH="${CONTENT_PATH_DEFAULT}/32" ARCHIVE_GAME_BIN32_FILES=' ShovelKnight lib' ARCHIVE_GAME_BIN64_PATH="${CONTENT_PATH_DEFAULT}/64" ARCHIVE_GAME_BIN64_FILES=' ShovelKnight lib' ARCHIVE_GAME_DATA_FILES='data' APP_MAIN_TYPE='native' APP_MAIN_EXE='ShovelKnight' APP_MAIN_ICON='data/noarch/support/icon.png' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6 libSDL2-2.0.so.0 libGL.so.1" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Include game icons PKG='PKG_DATA' icons_get_from_workdir 'APP_MAIN' # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-sigma-theory.sh0000755000000000000000000000735714471751340014604 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Sigma Theory # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20211215.1 # Set game-specific variables GAME_ID='sigma-theory' GAME_NAME='Sigma Theory: Global Cold War' ARCHIVE_BASE_0='sigma_theory_global_cold_war_1_2_1_2_39591.sh' ARCHIVE_BASE_0_MD5='d65fe37e8e74922d463ca6756bfdb7c7' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='1600000' ARCHIVE_BASE_0_VERSION='1.2.1.2-gog39591' ARCHIVE_BASE_0_URL='https://www.gog.com/game/sigma_theory_global_cold_war' UNITY3D_NAME='sigma' CONTENT_PATH_DEFAULT='data/noarch/game' ARCHIVE_GAME_BIN32_PATH="$CONTENT_PATH_DEFAULT" ARCHIVE_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86" ARCHIVE_GAME_BIN64_PATH="$CONTENT_PATH_DEFAULT" ARCHIVE_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64" ARCHIVE_GAME_DATA_PATH="$CONTENT_PATH_DEFAULT" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6 libz.so.1 libgtk-x11-2.0.so.0 libgdk_pixbuf-2.0.so.0 libgobject-2.0.so.0 libglib-2.0.so.0" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.14' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-silence.sh0000755000000000000000000000513114471751340013602 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=20230414.1 GAME_ID='silence' GAME_NAME='Silence' ARCHIVE_BASE_0='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' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' # 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Drop Steam-specific plugin rm \ "$(unity3d_name)_Data/Plugins/x86/libDaedalic.Ecosystems.Steam.External.so" \ "$(unity3d_name)_Data/Plugins/x86_64/libDaedalic.Ecosystems.Steam.External.so" ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-six-cats-under.sh0000755000000000000000000000727014471751340015034 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # Six Cats Under # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20201006.1 # Set game-specific variables GAME_ID='six-cats-under' GAME_NAME='Six Cats Under' ARCHIVES_LIST=' ARCHIVE_ITCH_0' ARCHIVE_ITCH_0='Six Cats Under - Linux.zip' ARCHIVE_ITCH_0_URL='https://teambeanloop.itch.io/six-cats-under' ARCHIVE_ITCH_0_MD5='c352fa55e864cb4f8c021764c9e825dd' ARCHIVE_ITCH_0_SIZE='200000' ARCHIVE_ITCH_0_VERSION='1.0-itch' ARCHIVE_ITCH_0_TYPE='zip' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='Six_Cats_Under.x86_64 Six_Cats_Under_Data/MonoBleedingEdge/x86_64 Six_Cats_Under_Data/Managed Six_Cats_Under_Data/Plugins LinuxPlayer_s.debug UnityPlayer_s.debug UnityPlayer.so' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='Six_Cats_Under_Data' DATA_DIRS='./logs' APP_MAIN_TYPE='native' APP_MAIN_PRERUN='# Work around Unity3D poor support for non-US locales export LANG=C' APP_MAIN_EXE='Six_Cats_Under.x86_64' APP_MAIN_ICON='Six_Cats_Under_Data/Resources/UnityPlayer.png' # Use a per-session dedicated file for logs # shellcheck disable=SC2016 APP_MAIN_OPTIONS='-logFile ./logs/$(date +%F-%R).log' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID glibc libstdc++" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-skullgirls.sh0000755000000000000000000000613314471751340014356 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Skullgirls # send your bug reports to contact@dotslashplay.it ### script_version=20230208.1 GAME_ID='skullgirls' GAME_NAME='Skullgirls' # This DRM-free archive is no longer sold by Humble Bundle ARCHIVE_BASE_1='Skullgirls-15719.tar' ARCHIVE_BASE_1_MD5='104a6976aec70d423756e008a5b8554c' ARCHIVE_BASE_1_SIZE='4200000' ARCHIVE_BASE_1_VERSION='15719-humble170628' ARCHIVE_BASE_0='Skullgirls-1.0.1.sh' ARCHIVE_BASE_0_MD5='bf110f7d29bfd4b9e075584e41fef402' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='4200000' ARCHIVE_BASE_0_VERSION='1.0.1-humble152310' CONTENT_PATH_DEFAULT='SkullGirls' CONTENT_PATH_DEFAULT_0='data' CONTENT_LIBS_BIN32_PATH='SkullGirls/lib/i686-pc-linux-gnu' CONTENT_LIBS_BIN32_PATH_0='data/i686/lib/i686-pc-linux-gnu' ## libSDL2_mixer-2.0.so.0 must be included, ## because it includes a non-standard symbol (SDL_AudioStreamGet) that libSDL2_locale.so.0 is relying on. ## libSDL2-2.0.so.0 must be included to prevent a silent crash on start-up. CONTENT_LIBS_BIN32_FILES=' libSDL2-2.0.so.0 libSDL2_locale.so.0 libSDL2_mixer-2.0.so.0' CONTENT_GAME_BIN32_PATH_0='data/i686' CONTENT_GAME_BIN32_FILES=' SkullGirls.i686-pc-linux-gnu' CONTENT_LIBS_BIN64_PATH='SkullGirls/lib/x86_64-pc-linux-gnu' CONTENT_LIBS_BIN64_PATH_0='data/x86_64/lib/x86_64-pc-linux-gnu' CONTENT_LIBS_BIN64_FILES=' libSDL2-2.0.so.0 libSDL2_locale.so.0 libSDL2_mixer-2.0.so.0' CONTENT_GAME_BIN64_PATH_0='data/x86_64' CONTENT_GAME_BIN64_FILES=' SkullGirls.x86_64-pc-linux-gnu' CONTENT_GAME_DATA_PATH_0='data/noarch' CONTENT_GAME_DATA_FILES=' data01 Salmon Icon.png *.txt' APP_MAIN_EXE_BIN32='SkullGirls.i686-pc-linux-gnu' APP_MAIN_EXE_BIN64='SkullGirls.x86_64-pc-linux-gnu' APP_MAIN_ICON='Icon.png' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libm.so.6 libpthread.so.0 libstdc++.so.6' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-skyshines-bedlam.sh0000755000000000000000000000415714471751340015431 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Skyshine's Bedlam # send your bug reports to contact@dotslashplay.it ### script_version=20230803.2 GAME_ID='skyshines-bedlam' GAME_NAME='Skyshineʼs Bedlam' ## This game is no longer available for sale from GOG.com ARCHIVE_BASE_0='setup_skyshines_bedlam_redux_2.0.0.2.exe' ARCHIVE_BASE_0_MD5='9fa7fdb957941eb0b9e6b53f6a9ea4a3' ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS='--gog' ARCHIVE_BASE_0_PART1='setup_skyshines_bedlam_redux_2.0.0.2-1.bin' ARCHIVE_BASE_0_PART1_MD5='30cdb581d87cc26574c5bbb935e897fa' ARCHIVE_BASE_0_PART1_TYPE='rar' ARCHIVE_BASE_0_SIZE='2800000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.2' CONTENT_PATH_DEFAULT='game' CONTENT_GAME_BIN_FILES=' win32' CONTENT_GAME_DATA_FILES=' assets' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/SkyshinesBedlam' APP_MAIN_EXE='win32/Skyshines BEDLAM.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-slay-the-spire.sh0000755000000000000000000000730414471751340015032 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Slay the Spire # send your bug reports to contact@dotslashplay.it ### script_version=20230812.1 GAME_ID='slay-the-spire' GAME_NAME='Slay the Spire' ARCHIVE_BASE_0='slay_the_spire_2020_12_15_8735c9fe3cc2280b76aa3ec47c953352a7df1f65_43444.sh' ARCHIVE_BASE_0_MD5='1989ebecb2434f0480b42c4e576dfc78' ARCHIVE_BASE_0_SIZE='570000' ARCHIVE_BASE_0_VERSION='2.2-gog43444' ARCHIVE_BASE_0_URL='https://www.gog.com/game/slay_the_spire' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_DATA_FILES=' desktop-1.0.jar mod-uploader.jar mts-launcher.jar' CONTENT_GAME_BIN_SHIPPED_FILES=' SlayTheSpire config.json jre' CONTENT_DOC_DATA_FILES=' README.md' # Applications USER_PERSISTENT_DIRECTORIES=' betaPreferences saves' USER_PERSISTENT_FILES=' info.displayconfig' APPLICATIONS_LIST='APP_MAIN' APP_MAIN_ICON='../support/icon.png' ## Using system-provided Java APP_MAIN_TYPE_BIN_SYSTEM='java' APP_MAIN_EXE_BIN_SYSTEM='desktop-1.0.jar' ## Using shipped binaries APP_MAIN_TYPE_BIN_SHIPPED='native' APP_MAIN_EXE_BIN_SHIPPED='SlayTheSpire' PACKAGES_LIST='PKG_BIN_SHIPPED PKG_BIN_SYSTEM PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Binaries packages PKG_BIN_ID="${GAME_ID}-bin" ## 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_ID" PKG_BIN_SYSTEM_DEPS="$PKG_DATA_ID" ## Using shipped binarie PKG_BIN_SHIPPED_ID="${PKG_BIN_ID}-shipped" PKG_BIN_SHIPPED_DESCRIPTION='Using shipped binaries' PKG_BIN_SHIPPED_ARCH='64' PKG_BIN_SHIPPED_PROVIDES=" $PKG_BIN_ID" PKG_BIN_SHIPPED_DEPS="$PKG_DATA_ID" PKG_BIN_SHIPPED_DEPENDENCIES_LIBRARIES=' libasound.so.2 libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgthread-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libthread_db.so.1 libX11.so.6 libXext.so.6 libXi.so.6 libxml2.so.2 libXrender.so.1 libxslt.so.1 libXtst.so.6 libXxf86vm.so.1' # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icon PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN_SHIPPED' 'PKG_BIN_SYSTEM'; do launchers_write done # Build packages packages_generation # Print instructions case "${LANG%_*}" 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-slime-rancher.sh0000755000000000000000000000455514471751340014722 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Slime Rancher # send your bug reports to contact@dotslashplay.it ### script_version=20230405.1 GAME_ID='slime-rancher' GAME_NAME='Slime Rancher' ARCHIVE_BASE_0='slime_rancher_1_4_4_51897.sh' ARCHIVE_BASE_0_MD5='1933e39e9f21f09b60312ced60640aa6' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='1200000' ARCHIVE_BASE_0_VERSION='1.4.4-gog51897' ARCHIVE_BASE_0_URL='https://www.gog.com/game/slime_rancher' UNITY3D_NAME='SlimeRancher' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_FILES=' UnityPlayer.so' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/MonoBleedingEdge/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data/GI ${UNITY3D_NAME}_Data/Managed ${UNITY3D_NAME}_Data/MonoBleedingEdge/etc ${UNITY3D_NAME}_Data/Resources ${UNITY3D_NAME}_Data/StreamingAssets ${UNITY3D_NAME}_Data/globalgamemanagers ${UNITY3D_NAME}_Data/boot.config ${UNITY3D_NAME}_Data/app.info ${UNITY3D_NAME}_Data/level? ${UNITY3D_NAME}_Data/*.assets ${UNITY3D_NAME}_Data/*.resource ${UNITY3D_NAME}_Data/*.resS" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-slipways.sh0000755000000000000000000000400014471751340014025 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Slipways # send your bug reports to contact@dotslashplay.it ### script_version=20230322.1 GAME_ID='slipways' GAME_NAME='Slipways' ARCHIVE_BASE_0='setup_slipways_1.3-1106-win_(64bit)_(61549).exe' ARCHIVE_BASE_0_MD5='f14169a08342feaeb87b0420d7b5d65d' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='840000' ARCHIVE_BASE_0_VERSION='1.3-gog61549' ARCHIVE_BASE_0_URL='https://www.gog.com/game/slipways' UNITY3D_NAME='slipways' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" monobleedingedge unityplayer.dll ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_data/plugins" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data data" APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/LocalLow/Beetlewing/Slipways' USER_PERSISTENT_DIRECTORIES=' userdata' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-softporn-adventure.sh0000755000000000000000000000403614471751340016030 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Softporn Adventure # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220709.1 # Set game-specific variables GAME_ID='softporn-adventure' GAME_NAME='Softporn Adventure' # This DRM-free installer is no longer distributed by GOG ARCHIVE_BASE_0='gog_softporn_adventure_2.0.0.1.sh' ARCHIVE_BASE_0_MD5='1e51094f928757140c5a0dacc70773c0' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='11000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.1' CONTENT_PATH_DEFAULT='data/noarch/data' ARCHIVE_GAME_MAIN_FILES=' *' ARCHIVE_DOC_MAIN_PATH="${CONTENT_PATH_DEFAULT}/../docs" ARCHIVE_DOC_MAIN_FILES=' SOFTPORN.DOC' APP_MAIN_TYPE='dosbox' APP_MAIN_EXE='softporn.exe' APP_MAIN_ICON='data/noarch/support/icon.png' PKG_MAIN_DEPS='dosbox' # Use persistent storage for user data DATA_FILES='*.GAM' # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' content_path=$(content_path_default) tolower "${PLAYIT_WORKDIR}/gamedata/${content_path}" prepare_package_layout # Include game icon icons_get_from_workdir 'APP_MAIN' # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-solar-2.sh0000755000000000000000000000604314471751340013442 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Solar 2 # send your bug reports to contact@dotslashplay.it ### script_version=20231001.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='solar-2' GAME_NAME='Solar 2' ARCHIVE_BASE_0_NAME='solar2-linux-1.10_1409159048.tar.gz' ARCHIVE_BASE_0_MD5='243918907eea486fdc820b7cac0c260b' ARCHIVE_BASE_0_SIZE='130000' ARCHIVE_BASE_0_VERSION='1.10-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/solar-2' ## TODO: Check if we could run this game using the system-provided Mono runtime, instead of the shipped binaries. CONTENT_PATH_DEFAULT='Solar2' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/lib" ## TODO: Check if some shipped libraries could be replaced with system-provided ones. CONTENT_LIBS_BIN_FILES=' libmad.so.0 libmad.so.0.2.1 libmikmod.so.2 libmikmod.so.2.0.4 libmono-2.0.so libmono-2.0.so.1 libopenal.so.1 libopenal.so.1.13.0 libSDL_mixer-1.2.so.0 libSDL_mixer-1.2.so.0.10.1' CONTENT_GAME_BIN_FILES=' Solar2.bin.x86 display.txt' CONTENT_GAME_DATA_FILES=' Solar2.exe *.dll *.config mono Languages MonoContent' USER_PERSISTENT_DIRECTORIES=' Languages' USER_PERSISTENT_FILES=' display.txt' APP_MAIN_EXE='Solar2.bin.x86' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libFLAC.so.8 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libSDL-1.2.so.0 libstdc++.so.6 libvorbisfile.so.3' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include icons ARCHIVE_OPTIONAL_ICONS_0_NAME='solar-2_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_0_MD5='d8f8557a575cb5b5824d72718428cd33' ARCHIVE_OPTIONAL_ICONS_0_URL='https://downloads.dotslashplay.it/resources/solar-2/' archive_initialize_optional \ 'ARCHIVE_ICONS' \ 'ARCHIVE_OPTIONAL_ICONS' ## TODO: The library should provide a function to check if a given optional archive has been provided. if [ -n "$(archive_path 'ARCHIVE_ICONS' 2>/dev/null || true)" ]; then CONTENT_ICONS_DATA_PATH='.' CONTENT_ICONS_DATA_FILES=' 16x16 32x32 48x48 64x64' archive_extraction 'ARCHIVE_ICONS' content_inclusion 'ICONS_DATA' 'PKG_DATA' "$(path_icons)" fi # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-solar-flux.sh0000755000000000000000000000366014471751340014261 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Solar Flux # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220630.1 GAME_ID='solar-flux' GAME_NAME='Solar Flux' ARCHIVE_BASE_0='SolarFluxLinux.zip' ARCHIVE_BASE_0_MD5='9e2faa973a4affef9ddb1205f5f82019' ARCHIVE_BASE_0_SIZE='220000' ARCHIVE_BASE_0_VERSION='1.0-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/solar-flux' CONTENT_PATH_DEFAULT='Solar Flux Linux' ARCHIVE_GAME_BIN_FILES=' lib' ARCHIVE_GAME_DATA_FILES=' data' APP_MAIN_TYPE='native' APP_MAIN_EXE='lib/solarflux' APP_MAIN_ICON='data/icon.bmp' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6 libGL.so.1 libopenal.so.1" # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-solstice.sh0000755000000000000000000000353614471751340014014 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Solstice # send your bug reports to contact@dotslashplay.it ### script_version=20230415.1 GAME_ID='solstice' GAME_NAME='Solstice' ARCHIVE_BASE_0='setup_solstice_1.4.13_(33035).exe' ARCHIVE_BASE_0_MD5='4e5cd3affaf723a263ad828d49920e51' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='360000' ARCHIVE_BASE_0_VERSION='1.4.13-gog33035' ARCHIVE_BASE_0_URL='https://www.gog.com/game/solstice' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' galaxy.dll gog.gml.dll solstice.exe' CONTENT_GAME_DATA_FILES=' data.win *.ogg' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/Solstice' APP_MAIN_EXE='solstice.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Get icon PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-soma.sh0000755000000000000000000000567114471751340013130 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Soma # send your bug reports to contact@dotslashplay.it ### script_version=20230216.2 GAME_ID='soma' GAME_NAME='SOMA' ARCHIVE_BASE_1='SOMA_Linux_v110.zip' ARCHIVE_BASE_1_MD5='46e9dadf90d347e0f384e636e71ce746' ARCHIVE_BASE_1_SIZE='22000000' ARCHIVE_BASE_1_VERSION='1.10-humble2' ARCHIVE_BASE_1_URL='https://www.humblebundle.com/store/soma' ARCHIVE_BASE_0='SOMA_Humble_Linux_1109.zip' ARCHIVE_BASE_0_MD5='63f4c611fed4df25bee3fb89177ab57f' ARCHIVE_BASE_0_VERSION='1109-humble1' ARCHIVE_BASE_0_SIZE='22000000' CONTENT_PATH_DEFAULT='SOMA' CONTENT_PATH_DEFAULT_0='Linux' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/lib64" CONTENT_LIBS_BIN_PATH_0="${CONTENT_PATH_DEFAULT_0}/lib64" CONTENT_LIBS_BIN_FILES=' libfmodevent64-4.44.62.so libfmodex64-4.44.62.so' CONTENT_GAME_BIN_FILES=' Soma.bin.x86_64' CONTENT_GAME_ENTITIES_FILES=' entities' CONTENT_GAME_SOUNDS_FILES=' sounds' CONTENT_GAME_DATA_FILES=' billboards combos config core detail_meshes fonts graphics gui lang lights maps music particles script _shadersource static_objects terminals textures undergrowth *.bmp *.cfg *.hps *.rar *.xml' CONTENT_DOC_DATA_FILES=' README.linux' USER_PERSISTENT_FILES=' *.cfg' USER_PERSISTENT_DIRECTORIES=' config' APP_MAIN_EXE='Soma.bin.x86_64' APP_MAIN_ICON='Icon.bmp' PACKAGES_LIST='PKG_BIN PKG_ENTITIES PKG_SOUNDS PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_ENTITIES_ID="${GAME_ID}-entities" PKG_ENTITIES_DESCRIPTION='entities' PKG_SOUNDS_ID="${GAME_ID}-sounds" PKG_SOUNDS_DESCRIPTION='sounds' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID $PKG_ENTITIES_ID $PKG_SOUNDS_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libIL.so.1 libm.so.6 libogg.so.0 libpthread.so.0 libSDL2-2.0.so.0 libstdc++.so.6 libtheora.so.0 libvorbisfile.so.3 libvorbis.so.0 libz.so.1' # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-sort-the-court.sh0000755000000000000000000000421414471751340015060 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Sort the Court # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220208.5 # Set game-specific variables GAME_ID='sort-the-court' GAME_NAME='Sort the Court' ARCHIVE_BASE_0='SortTheCourt_Linux.zip' ARCHIVE_BASE_0_MD5='70561aaeddc67f2c9c36139d1f747478' ARCHIVE_BASE_0_SIZE='87000' ARCHIVE_BASE_0_VERSION='2.2.0-itch' ARCHIVE_BASE_0_URL='https://graebor.itch.io/sort-the-court' UNITY3D_NAME='SortTheCourt' CONTENT_PATH_DEFAULT='.' ARCHIVE_GAME_BIN_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono ${UNITY3D_NAME}_Data/Plugins" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6 libGL.so.1 libX11.so.6 libgtk-x11-2.0.so.0 libgdk_pixbuf-2.0.so.0 libgobject-2.0.so.0 libglib-2.0.so.0 xcursor libxrandr" # Use persistent storage for user data DATA_FILES="./*_save.dat" # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Delete temporary directories rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-south-scrimshaw-part-1.sh0000755000000000000000000000427214471751340016427 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # South Scrimshaw, Part 1 # send your bug reports to contact@dotslashplay.it ### script_version=20231125.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='south-scrimshaw-part-1' GAME_NAME='South Scrimshaw, Part One' ARCHIVE_BASE_0_NAME='south_scrimshaw_part_one_1_0_66489.sh' ARCHIVE_BASE_0_MD5='b68e7e8fa9491d38a55f007911b94da0' ARCHIVE_BASE_0_SIZE='1699476' ARCHIVE_BASE_0_VERSION='1.0-gog66489' ARCHIVE_BASE_0_URL='https://www.gog.com/game/south_scrimshaw_part_one' RENPY_NAME='SouthScrimshaw' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/lib/py2-linux-x86_64" CONTENT_LIBS_BIN_FILES=' librenpython.so' CONTENT_GAME_BIN_FILES=" lib/py2-linux-x86_64/python lib/py2-linux-x86_64/pythonw lib/py2-linux-x86_64/zsync lib/py2-linux-x86_64/zsyncmake lib/py2-linux-x86_64/${RENPY_NAME}" CONTENT_GAME_DATA_FILES=" game renpy lib/python2.7 ${RENPY_NAME}.py" APP_MAIN_EXE="lib/py2-linux-x86_64/${RENPY_NAME}" APP_MAIN_ICON='SouthScrimshaw.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libGL.so.1 libm.so.6 libpthread.so.0 libutil.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-space-pirates-and-zombies.sh0000755000000000000000000000415114471751340017127 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Space Pirates and Zombies # send your bug reports to contact@dotslashplay.it ### script_version=20230206.1 GAME_ID='space-pirates-and-zombies' GAME_NAME='Space Pirates and Zombies' ARCHIVE_BASE_0='gog_space_pirates_and_zombies_2.0.0.4.sh' ARCHIVE_BASE_0_MD5='46da2a84e78f8016e35f7c0e63e28581' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='180000' ARCHIVE_BASE_0_VERSION='1.605-gog2.0.0.4' ARCHIVE_BASE_0_URL='https://www.gog.com/game/space_pirates_and_zombies' CONTENT_PATH_DEFAULT='data/noarch/game' ## Despite its name, "audio.so" is not an ELF library. CONTENT_GAME_BIN_FILES=' audio.so SPAZ' CONTENT_GAME_DATA_FILES=' common game mods icon.bmp SPAZ.png' CONTENT_DOC_DATA_FILES=' README-linux.txt' APP_MAIN_EXE='SPAZ' APP_MAIN_ICON='SPAZ.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 libSDL-1.2.so.0 libstdc++.so.6' # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-space-tail.sh0000755000000000000000000000724314471751340014210 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Space Tail # send your bug reports to contact@dotslashplay.it ### script_version=20231111.3 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='space-tail' GAME_NAME='Space Tail: Every Journey Leads Home' # Archives ## Native Linux build ARCHIVE_BASE_LINUX_0_NAME='space_tail_every_journey_leads_home_1_0_2r9_61068.sh' ARCHIVE_BASE_LINUX_0_MD5='c267a2e1ef94cde68487e41cd3a4bbcf' ARCHIVE_BASE_LINUX_0_SIZE='7700000' ARCHIVE_BASE_LINUX_0_VERSION='1.0.2r9-gog61068' ARCHIVE_BASE_LINUX_0_URL='https://www.gog.com/game/space_tail_every_journey_leads_home' ## Windows build ### This is useful for users of nVIDIA non-free graphics driver, ### as the native Linux build suffers from rendering issues with this driver. ARCHIVE_BASE_WINDOWS_0_NAME='setup_space_tail_every_journey_leads_home_1.0.2r9_(64bit)_(61065).exe' ARCHIVE_BASE_WINDOWS_0_MD5='5683d3493606fb5a2a60d9416e79c28d' ARCHIVE_BASE_WINDOWS_0_TYPE='innosetup' ARCHIVE_BASE_WINDOWS_0_PART1_NAME='setup_space_tail_every_journey_leads_home_1.0.2r9_(64bit)_(61065)-1.bin' ARCHIVE_BASE_WINDOWS_0_PART1_MD5='3183c4b2d5db7c462a266e41ad683720' ARCHIVE_BASE_WINDOWS_0_SIZE='7800000' ARCHIVE_BASE_WINDOWS_0_VERSION='1.0.2r9-gog61065' ARCHIVE_BASE_WINDOWS_0_URL='https://www.gog.com/game/space_tail_every_journey_leads_home' UNITY3D_NAME_LINUX='Space Tail' UNITY3D_NAME_WINDOWS='space tail' UNITY3D_PLUGINS=' lib_burst_generated.so libfmodstudio.so libresonanceaudio.so' ## The game crashes on launch if the Steam library is not available. UNITY3D_PLUGINS="${UNITY3D_PLUGINS:-} libsteam_api.so" CONTENT_PATH_DEFAULT_LINUX='data/noarch/game' CONTENT_PATH_DEFAULT_WINDOWS='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Enjoy Studio/Space Tail' # Packages PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_PROVIDES=" $PKG_DATA_ID" PKG_DATA_DESCRIPTION='data' PKG_BIN_ID="$GAME_ID" PKG_BIN_PROVIDES=" $PKG_BIN_ID" PKG_BIN_ARCH='64' ## Native Linux build PKG_DATA_ID_LINUX="${GAME_ID}-linux-data" PKG_BIN_ID_LINUX="${GAME_ID}-linux" PKG_BIN_DEPS_LINUX="$PKG_DATA_ID_LINUX" PKG_BIN_DEPENDENCIES_LIBRARIES_LINUX=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6' ## Windows build PKG_DATA_ID_WINDOWS="${GAME_ID}-windows-data" PKG_BIN_ID_WINDOWS="${GAME_ID}-windows" PKG_BIN_DEPS_WINDOWS="$PKG_DATA_ID_WINDOWS" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Native Linux build - Link libresonanceaudio.so in the game data path as the game engine fails to find it otherwise case "$(current_archive)" in ('ARCHIVE_BASE_LINUX_'*) library_destination="$(package_path 'PKG_BIN')$(path_game_data)/$(unity3d_name)_Data/Plugins" mkdir --parents "$library_destination" ln --symbolic "$(path_libraries)/libresonanceaudio.so" "$library_destination" ;; esac # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-spacecom.sh0000755000000000000000000000622614471751340013760 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Spacecom # send your bug reports to contact@dotslashplay.it ### script_version=20230212.1 GAME_ID='spacecom' GAME_NAME='Spacecom' ARCHIVE_BASE_HUMBLE_0='spacecomLinux0.9.1035.zip' ARCHIVE_BASE_HUMBLE_0_MD5='a89515caa9e79a36b1769fbecc71e3d8' ARCHIVE_BASE_HUMBLE_0_SIZE='230000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0.9.1035-humble.2014.11.03' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/spacecom' ARCHIVE_BASE_GOG_0='gog_spacecom_2.4.0.9.sh' ARCHIVE_BASE_GOG_0_MD5='ee70b48ffa207bc1c668d50753ec24b5' ARCHIVE_BASE_GOG_0_TYPE='mojosetup' ARCHIVE_BASE_GOG_0_SIZE='230000' ARCHIVE_BASE_GOG_0_VERSION='1.0.9.1035-gog.2.4.0.9' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/spacecom' UNITY3D_NAME='SPACECOM' CONTENT_PATH_DEFAULT_HUMBLE='Linux' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_LIBS_BIN_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/${UNITY3D_NAME}/Plugins/x86" CONTENT_LIBS_BIN_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/${UNITY3D_NAME}/Plugins/x86" CONTENT_LIBS_BIN_FILES=' ScreenSelector.so' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data/Managed ${UNITY3D_NAME}_Data/Mono/etc ${UNITY3D_NAME}_Data/Resources ${UNITY3D_NAME}_Data/mainData ${UNITY3D_NAME}_Data/level? ${UNITY3D_NAME}_Data/*.assets ${UNITY3D_NAME}_Data/*.png" CONTENT_DOC_DATA_FILES=' SPACECOM Game Manual.pdf' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="$GAME_ID-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgthread-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXext.so.6 libXrandr.so.2' # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" set_standard_permissions . ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packageS write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-spellforce.sh0000755000000000000000000000522514471751340014322 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Spellforce # send your bug reports to contact@dotslashplay.it ### script_version=20231107.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='spellforce' GAME_NAME='Spellforce' ARCHIVE_BASE_0_NAME='setup_spellforce_-_platinum_edition_1.54.75000_(17748).exe' ARCHIVE_BASE_0_MD5='ed34fb43d8042ff61a889865148b8dd2' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_spellforce_-_platinum_edition_1.54.75000_(17748)-1.bin' ARCHIVE_BASE_0_PART1_MD5='60fca014e7ccd4630a7ec3cedb23942a' ARCHIVE_BASE_0_SIZE='3900000' ARCHIVE_BASE_0_VERSION='1.54.7500-gog17748' ARCHIVE_BASE_0_URL='https://www.gog.com/game/spellforce_platinum' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' binkw32.dll dbghelp.dll mss32.dll ar.exe spellforce.exe' CONTENT_GAME_DATA_FILES=' data map miles pak videos spellforce_addon.ico spellforce_addon2.ico' CONTENT_DOC_DATA_FILES=' manual.pdf readme.rtf' ## On first launch, register the game CD-key. CONTENT_GAME0_BIN_FILES=' cdkey' APP_MAIN_EXE='spellforce.exe' ## On first launch, register the game CD-key. APP_MAIN_PRERUN='# On first launch, register the game CD-key if [ ! -e .cdkey-registered ]; then cdkey=$(cat cdkey) $(wine_command) reg add "HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\SpellForce" /v "CDKEY" /t REG_SZ /d "$cdkey" /f touch .cdkey-registered fi ' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## On first launch, register the game CD-key. sed --silent '125s/.*"valueData": "\(.*\)",/\1/p' goggame-1207658719.script > 'cdkey' ) # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-spelunky.sh0000755000000000000000000000662214471751340014040 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Spelunky # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210607.4 # Set game-specific variables GAME_ID='spelunky' GAME_NAME='Spelunky' ARCHIVE_BASE_0='setup_spelunky_2.1.0.9.exe' ARCHIVE_BASE_0_MD5='bff7c275053137881c9f2f6df16ee4b3' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='180000' ARCHIVE_BASE_0_VERSION='1.0-gog2.1.0.9' ARCHIVE_BASE_0_URL='https://www.gog.com/game/spelunky' ARCHIVE_GAME_BIN_PATH='app' ARCHIVE_GAME_BIN_FILES='spelunky.exe fmodex.dll' ARCHIVE_GAME_DATA_PATH='app' ARCHIVE_GAME_DATA_FILES='data ' APP_MAIN_TYPE='wine' APP_MAIN_EXE='spelunky.exe' APP_MAIN_ICON='spelunky.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="${PKG_DATA_ID} wine glx" # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Extract icons PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Clean up temporary files rm --recursive "$PLAYIT_WORKDIR/gamedata" # Use persistent storage for saved games and settings CONFIG_FILES="${CONFIG_FILES} data/config.txt" DATA_FILES="${DATA_FILES} data/spelunky_save.sav data/spelunky_save.bak" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-spiritfarer.sh0000755000000000000000000000732214471751340014516 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Spiritfarer # send your bug reports to contact@dotslashplay.it ### script_version=20231113.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='spiritfarer' GAME_NAME='Spiritfarer' ARCHIVE_BASE_3_NAME='spiritfarer_35325c_linux_54594.sh' ARCHIVE_BASE_3_MD5='39f342a2616f42406e8fd4d3f4576acb' ARCHIVE_BASE_3_SIZE='6400000' ARCHIVE_BASE_3_VERSION='35325c-gog54594' ARCHIVE_BASE_3_URL='https://www.gog.com/game/spiritfarer' ARCHIVE_BASE_2_NAME='spiritfarer_34556_linux_50344.sh' ARCHIVE_BASE_2_MD5='7dd310caa09790c0b56d4a9a67e7f9dc' ARCHIVE_BASE_2_SIZE='7500000' ARCHIVE_BASE_2_VERSION='34556-gog50344' ARCHIVE_BASE_1_NAME='spiritfarer_32698_linux_42758.sh' ARCHIVE_BASE_1_MD5='2f1c327bd020676eabd78f99124a786f' ARCHIVE_BASE_1_SIZE='6900000' ARCHIVE_BASE_1_VERSION='32698-gog42758' ARCHIVE_BASE_0_NAME='spiritfarer_32513_linux_41748.sh' ARCHIVE_BASE_0_MD5='8e6e49ce7e7571091f91d82706d2df8e' ARCHIVE_BASE_0_SIZE='6900000' ARCHIVE_BASE_0_VERSION='32513-gog41748' UNITY3D_NAME='spiritfarer' ## TODO: Check if the shipped Galaxy libraries are required. UNITY3D_PLUGINS=' libGalaxy64.so libGalaxyCSharpGlue.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # GOG build 50344 - Check for the presence of required extra archives case "$(current_archive)" in ('ARCHIVE_BASE_2') ARCHIVE_REQUIRED_MISSING_PLUGINS_NAME='spiritfarer_missing-plugins.tar.xz' ARCHIVE_REQUIRED_MISSING_PLUGINS_MD5='0fe61aeadf3066e724dca3db627d6a49' ARCHIVE_REQUIRED_MISSING_PLUGINS_URL='https://downloads.dotslashplay.it/games/spiritfarer/' archive_initialize_required \ 'ARCHIVE_MISSING_PLUGINS' \ 'ARCHIVE_REQUIRED_MISSING_PLUGINS' ;; esac # Extract game data archive_extraction_default if archive_is_available 'ARCHIVE_MISSING_PLUGINS'; then archive_extraction 'ARCHIVE_MISSING_PLUGINS' fi ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Enforce a consistent Unity3D name. unity3d_name=$(unity3d_name) alternative_name='Spiritfarer' ### Old builds ship the binary with a .exe file extension. if [ -e "${alternative_name}.exe" ]; then mv "${alternative_name}.exe" "${unity3d_name}.x86_64" fi if [ -e "${alternative_name}_Data" ]; then mv "${alternative_name}_Data" "${unity3d_name}_Data" fi ) # Include game data set_current_package 'PKG_DATA' icons_inclusion ## GOG build 50344 - Include missing plugins. if archive_is_available 'ARCHIVE_MISSING_PLUGINS'; then CONTENT_GAME_MISSING_PLUGINS_BIN_PATH='.' CONTENT_GAME_MISSING_PLUGINS_BIN_FILES=' libGalaxy64.so libGalaxyCSharpGlue.so' content_inclusion 'GAME_MISSING_PLUGINS_BIN' 'PKG_BIN' "$(path_game_data)/$(unity3d_name)_Data/Plugins" fi content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-spore.sh0000755000000000000000000000762314471751340013320 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Spore # send your bug reports to contact@dotslashplay.it ### script_version=20231001.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='spore' GAME_NAME='Spore' ARCHIVE_BASE_0='setup_spore_3.1.0.22_(10834).exe' ARCHIVE_BASE_0_MD5='195652ca3eb62fe725f7b334cb27874e' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_spore_3.1.0.22_(10834)-1.bin' ARCHIVE_BASE_0_PART1_MD5='384354f468d981965d45f437e54a13ab' ARCHIVE_BASE_0_PART2='setup_spore_3.1.0.22_(10834)-2.bin' ARCHIVE_BASE_0_PART2_MD5='885466a612c4243ef10758c7c6cfcfbb' ARCHIVE_BASE_0_SIZE='6300000' ARCHIVE_BASE_0_VERSION='3.1.0.22-gog10834' ARCHIVE_BASE_0_URL='https://www.gog.com/game/spore_collection' CONTENT_PATH_DEFAULT='app' ## TODO: Check if the expansions content could be moved to dedicated packages: ## - Galactic Adventures (ep1) ## - Creepy & Cute Parts Pack (bp1) CONTENT_GAME_BIN_FILES=' sporebin sporebinep1' CONTENT_GAME_DATA_FILES=' data dataep1 bp1content' CONTENT_GAME_DATA0_PATH="${CONTENT_PATH_DEFAULT}/__support/add" CONTENT_GAME_DATA0_FILES=' login.prop' CONTENT_DOC_DATA_FILES=' support' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/Spore users/${USER}/Documents/My Spore Creations' APP_MAIN_EXE='sporebin/sporeapp.exe' ## Include the login workaround APP_MAIN_PRERUN='# Include the login workaround login_file_destination="${WINEPREFIX}/drive_c/users/${USER}/AppData/Roaming/Spore/Preferences/login.prop" if [ ! -e "$login_file_destination" ]; then install -D --mode=644 \ "${PATH_GAME_DATA}/login.prop" \ "$login_file_destination" fi ' APP_EP1_ID="${GAME_ID}-galactic-adventures" APP_EP1_NAME="$GAME_NAME - Galactic Adventures" APP_EP1_EXE='sporebinep1/sporeapp.exe' ## Include the login workaround APP_EP1_PRERUN="$APP_MAIN_PRERUN" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Set required registry keys game_id=$(game_id) installloc='C:\\'"${game_id}" datadir='C:\\'"${game_id}"'\\data' datadir_ep1='C:\\'"${game_id}"'\\dataep1\\' registry_dump_init_file='registry-dumps/init.reg' registry_dump_init_content='Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\Software\electronic arts\spore] "appdir"="Spore" "installcompleted"=dword:00000001 "locale"="en-us" "playerdir"="My Spore Creations" "reindexyesorno"=dword:00000000 "installloc"="'"${installloc}"'" "datadir"="'"${datadir}"'" [HKEY_LOCAL_MACHINE\Software\electronic arts\spore_EP1] "AddOnID"=dword:00000002 "PackID"=dword:07a7f786 "DataDir"="'"${datadir}"'"' CONTENT_GAME_BIN_FILES="${CONTENT_GAME_BIN_FILES:-} $registry_dump_init_file" APP_REGEDIT="${APP_REGEDIT:-} $registry_dump_init_file" SCRIPT_DEPS="${SCRIPT_DEPS:-} iconv" check_deps # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Set required registry keys mkdir --parents "$(dirname "$registry_dump_init_file")" printf '%s' "$registry_dump_init_content" | \ iconv --from-code=UTF-8 --to-code=UTF-16 --output="$registry_dump_init_file" ) # Include game data PKG='PKG_DATA' icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-spring-falls.sh0000755000000000000000000000705014471751340014563 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2020-2021, Hoël Bézier # Copyright (c) 2015-2021, Antoine Le Gonidec # 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. ### ### # Spring Falls # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210725.3 # Set game-specific variables GAME_ID='spring-falls' GAME_NAME='Spring Falls' ARCHIVE_BASE_1='Spring Falls v1.23 Linux.zip' ARCHIVE_BASE_1_MD5='67bdbc6f8aca62d13de738ed126a9d30' ARCHIVE_BASE_1_SIZE='140000' ARCHIVE_BASE_1_VERSION='1.23-itch.2021.02.16' ARCHIVE_BASE_1_URL='https://sparsegamedev.itch.io/spring-falls' ARCHIVE_BASE_0='Spring Falls v1.22 Linux.zip' ARCHIVE_BASE_0_MD5='4dfc2f3dde0d1f2abac252157413047c' ARCHIVE_BASE_0_SIZE='140000' ARCHIVE_BASE_0_VERSION='1.22-itch1' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='SpringFalls.x86_64 SpringFalls_Data/Plugins SpringFalls_Data/MonoBleedingEdge' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='SpringFalls_Data' APP_MAIN_TYPE='native' APP_MAIN_EXE='SpringFalls.x86_64' APP_MAIN_ICON='SpringFalls_Data/Resources/UnityPlayer.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID glibc libstdc++ gtk2 libz.so.1 libgdk_pixbuf-2.0.so.0 libgobject-2.0.so.0 libglib-2.0.so.0" # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Extract icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-springback.sh0000755000000000000000000000746514471751340014317 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # SpringBack # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210818.3 # Set game-specific variables GAME_ID='springback' GAME_NAME='SpringBack' ARCHIVE_BASE_0='springback-windows-universal.zip' ARCHIVE_BASE_0_MD5='61b073d967bbd27433baaedc9d97c3e1' ARCHIVE_BASE_0_SIZE='230000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://sweet-arsenic.itch.io/springback' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES=' *.dll *.exe Mono' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES=' SpringBack_Data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='SpringBack.exe' APP_MAIN_ICON='SpringBack.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Use persistent storage for game progress REGISTRY_KEY='HKEY_CURRENT_USER\Software\Sweet Arsenic\SpringBack' REGISTRY_DUMP='registry-dumps/persistent.reg' CONFIG_DIRS="${CONFIG_DIRS} ./$(dirname "$REGISTRY_DUMP")" APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Set path for persistent dump of registry keys REGISTRY_KEY="'"$REGISTRY_KEY"'" REGISTRY_DUMP="'"$REGISTRY_DUMP"'" # Load dump of registry keys if [ -e "$REGISTRY_DUMP" ]; then wine regedit.exe "$REGISTRY_DUMP" fi' APP_MAIN_POSTRUN="$APP_MAIN_POSTRUN"' # Dump registry keys wine regedit.exe -E "$REGISTRY_DUMP" "$REGISTRY_KEY"' # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" set_standard_permissions "$PLAYIT_WORKDIR/gamedata" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-stacking.sh0000755000000000000000000000374414471751340013773 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Stacking # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220707.1 GAME_ID='stacking' GAME_NAME='Stacking' ARCHIVE_BASE_0='Stacking-Linux-2013-06-04-setup.bin' ARCHIVE_BASE_0_MD5='4194bb869d537d40da7ad7f65b1102ed' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='1600000' ARCHIVE_BASE_0_VERSION='130604-humble160616' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/stacking' CONTENT_PATH_DEFAULT='data' ARCHIVE_GAME_BIN_FILES=' Stack.bin.x86 lib' ARCHIVE_GAME_DATA_FILES=' Data Linux OGL Stack.png Win DFCONFIG' APP_MAIN_TYPE='native' APP_MAIN_EXE='Stack.bin.x86' APP_MAIN_ICON='Stack.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6 liubGLU.so.1" # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" #print instructions print_instructions exit 0 games/play-star-twine.sh0000755000000000000000000000510314471751340014254 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Star-Twine # send your bug reports to contact@dotslashplay.it ### script_version=20230129.1 GAME_ID='star-twine' GAME_NAME='Star-Twine' ARCHIVE_BASE_0='star-twine-linux.zip' ARCHIVE_BASE_0_MD5='0a98b235d1e30fe8d89a4e9278fb3e92' ARCHIVE_BASE_0_SIZE='150000' ARCHIVE_BASE_0_VERSION='1.3.0-itch.2021.09.21' ARCHIVE_BASE_0_URL='https://sparsegamedev.itch.io/star-twine' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES=' Star-Twine.exe Star-Twine.png Content cursor.bmp monoconfig monomachineconfig FNA.dll FNA.dll.config Lidgren.Network.dll NetCommon.dll Steamworks.NET.dll' CONTENT_DOC_MAIN_FILES=' license.txt Linux.README' APP_MAIN_EXE='Star-Twine.exe' APP_MAIN_ICON='Star-Twine.png' PKG_MAIN_DEPS='mono' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libFAudio.so.0 libGL.so.1 libSDL2-2.0.so.0 libudev.so.1' PKG_MAIN_DEPENDENCIES_MONO_LIBRARIES=' mscorlib.dll Mono.Posix.dll Mono.Security.dll System.dll System.Configuration.dll System.Core.dll System.Data.dll System.Drawing.dll System.Numerics.dll System.Runtime.Serialization.dll System.Security.dll System.Xml.dll System.Xml.Linq.dll' # Include shipped libraries that can not be replaced by system ones CONTENT_LIBS_LIBS_PATH="${CONTENT_PATH_DEFAULT}/lib64" CONTENT_LIBS_LIBS_FILES=' libFNA3D.so.0 libsteam_api.so' PACKAGES_LIST='PKG_MAIN PKG_LIBS' PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS_ARCH='64' PKG_LIBS_DEPENDENCIES_LIBRARIES=' ld-linux-x86-64.so.2 libc.so.6 libdl.so.2 libm.so.6 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0' PKG_MAIN_DEPS="$PKG_MAIN_DEPS $PKG_LIBS_ID" # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icon icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-star-vikings-demo.sh0000755000000000000000000000524314471751340015527 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Star Vikings # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220630.1 GAME_ID='star-vikings-demo' GAME_NAME='Star Vikings (demo)' ARCHIVE_BASE_0='gog_star_vikings_demo_2.1.0.2.sh' ARCHIVE_BASE_0_MD5='9eea4e30b81ae17790db3a63f7bea382' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='550000' ARCHIVE_BASE_0_VERSION='1.0-gog2.1.0.2' ARCHIVE_BASE_0_URL='https://www.gog.com/game/star_vikings_demo' UNITY3D_NAME='StarVikingsDemo' CONTENT_PATH_DEFAULT='data/noarch/game' ARCHIVE_DOC_DATA_FILES=' *.txt' ARCHIVE_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86" ARCHIVE_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32="${UNITY3D_NAME}.x86" APP_MAIN_EXE_BIN64="${UNITY3D_NAME}.x86_64" APP_MAIN_ICON="${UNITY3D_NAME}_Data/Resources/UnityPlayer.png" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID libc.so.6 libGL.so.1 xcursor libxrandr" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Use a dedicated log file for the current game session APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a dedicated log file for the current game session mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-star-wars-battlefront-2.sh0000755000000000000000000000727314471751340016575 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Star Wars Battlefront 2 # send your bug reports to contact@dotslashplay.it ### script_version=20231004.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='star-wars-battlefront-2' GAME_NAME='Star Wars Battlefront Ⅱ' ARCHIVE_BASE_1_NAME='setup_star_wars_battlefront_ii_1.1_(10935).exe' ARCHIVE_BASE_1_MD5='0b74c1d7cced6d6bde95605661b67673' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_star_wars_battlefront_ii_1.1_(10935)-1.bin' ARCHIVE_BASE_1_PART1_MD5='c7ad88e5eb89b3701dad3a6973d9918b' ARCHIVE_BASE_1_PART2_NAME='setup_star_wars_battlefront_ii_1.1_(10935)-2.bin' ARCHIVE_BASE_1_PART2_MD5='3a52d98aa43cb78fd661a656e5cf96a2' ARCHIVE_BASE_1_SIZE='10000000' ARCHIVE_BASE_1_VERSION='1.1-gog10935' ARCHIVE_BASE_1_URL='https://www.gog.com/game/star_wars_battlefront_ii' ARCHIVE_BASE_0_NAME='setup_star_wars_battlefront_ii_1.1_multiplayer_update_2_(17606).exe' ARCHIVE_BASE_0_MD5='f482ec251067336d3b8211774b4c44f6' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_star_wars_battlefront_ii_1.1_multiplayer_update_2_(17606)-1.bin' ARCHIVE_BASE_0_PART1_MD5='c34b41f594e55b1522d8826f19cf958f' ARCHIVE_BASE_0_PART2_NAME='setup_star_wars_battlefront_ii_1.1_multiplayer_update_2_(17606)-2.bin' ARCHIVE_BASE_0_PART2_MD5='c9423f3983c67575c1c531e0d18e6a0f' ARCHIVE_BASE_0_SIZE='11000000' ARCHIVE_BASE_0_VERSION='1.1-gog17606' CONTENT_PATH_DEFAULT='gamedata' CONTENT_GAME_BIN_FILES=' *.dll *.exe' CONTENT_GAME_MOVIES_FILES=' data/_lvl_pc/movies' CONTENT_GAME_DATA_FILES=' data' CONTENT_DOC_DATA_PATH='.' CONTENT_DOC_DATA_FILES=' *.pdf' USER_PERSISTENT_DIRECTORIES=' savegames' USER_PERSISTENT_FILES=' *.ini' APP_MAIN_EXE='battlefrontii.exe' PACKAGES_LIST='PKG_BIN PKG_MOVIES PKG_DATA' PKG_MOVIES_ID="${GAME_ID}-movies" PKG_MOVIES_DESCRIPTION='movies' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_MOVIES_ID $PKG_DATA_ID" ## TODO: Setting up a WINE virtual desktop on first launch might prevent display problems on some setups. # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ARCHIVE_OPTIONAL_ICONS_0_NAME='star-wars-battlefront-2_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_0_MD5='322275011d37ac219f1c06c196477fa4' ARCHIVE_OPTIONAL_ICONS_0_URL='https://downloads.dotslashplay.it/games/star-wars-battlefront-2' archive_initialize_optional \ 'ARCHIVE_ICONS' \ 'ARCHIVE_OPTIONAL_ICONS' ## TODO: The library should provide a function to check if a given optional archive has been provided. if [ -n "$(archive_path 'ARCHIVE_ICONS' 2>/dev/null || true)" ]; then archive_extraction 'ARCHIVE_ICONS' fi # Include game data ## TODO: The library should provide a function to check if a given optional archive has been provided. if [ -n "$(archive_path 'ARCHIVE_ICONS' 2>/dev/null || true)" ]; then CONTENT_ICONS_DATA_PATH='.' CONTENT_ICONS_DATA_FILES=' 16x16 32x32' content_inclusion 'ICONS_DATA' 'PKG_DATA' "$(path_icons)" fi content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-stardew-valley.sh0000755000000000000000000002672214471751340015134 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # Stardew Valley # send your bug reports to contact@dotslashplay.it ### script_version=20230831.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='stardew-valley' GAME_NAME='Stardew Valley' # Archives ## MonoGame builds ARCHIVE_BASE_MONOGAME_0='stardew_valley_1_5_6_1988831614_53040.sh' ARCHIVE_BASE_MONOGAME_0_MD5='c45810aeb8d52d30cab4d1cc7ff8ce64' ARCHIVE_BASE_MONOGAME_0_SIZE='670000' ARCHIVE_BASE_MONOGAME_0_VERSION='1.5.6-gog53040' ARCHIVE_BASE_MONOGAME_0_URL='https://www.gog.com/game/stardew_valley' ## XNA builds ARCHIVE_BASE_XNA_11='stardew_valley_1_5_4_981587505_44377.sh' ARCHIVE_BASE_XNA_11_MD5='ffeb52df688e169950d2b9d883c5e390' ARCHIVE_BASE_XNA_11_SIZE='650000' ARCHIVE_BASE_XNA_11_VERSION='1.5.4-gog44377' ARCHIVE_BASE_XNA_10='stardew_valley_1_5_3_967165180_44219.sh' ARCHIVE_BASE_XNA_10_MD5='c87b0beffe3236dd8545274037754c18' ARCHIVE_BASE_XNA_10_SIZE='650000' ARCHIVE_BASE_XNA_10_VERSION='1.5.3-gog44219' ARCHIVE_BASE_XNA_9='stardew_valley_1_5_2_952803924_44046.sh' ARCHIVE_BASE_XNA_9_MD5='56eb232720c737cb025f404ee74801ce' ARCHIVE_BASE_XNA_9_SIZE='650000' ARCHIVE_BASE_XNA_9_VERSION='1.5.2-gog44046' ARCHIVE_BASE_XNA_8='stardew_valley_1_5_1_931692592_43684.sh' ARCHIVE_BASE_XNA_8_MD5='8d9e0b2df18acbc1b83cd10b05ca9196' ARCHIVE_BASE_XNA_8_SIZE='650000' ARCHIVE_BASE_XNA_8_VERSION='1.5.1-gog43684' ARCHIVE_BASE_XNA_7='stardew_valley_1_5_928320980_43631.sh' ARCHIVE_BASE_XNA_7_MD5='50e1bbad197664a5b3511cba978c2fde' ARCHIVE_BASE_XNA_7_SIZE='650000' ARCHIVE_BASE_XNA_7_VERSION='1.5-gog43631' ARCHIVE_BASE_XNA_6='stardew_valley_1_5_926914271_43619.sh' ARCHIVE_BASE_XNA_6_MD5='cb92377270ecb859117e41dce26eeb69' ARCHIVE_BASE_XNA_6_SIZE='650000' ARCHIVE_BASE_XNA_6_VERSION='1.5-gog43619' ARCHIVE_BASE_XNA_5='stardew_valley_1_4_5_433754439_36068.sh' ARCHIVE_BASE_XNA_5_MD5='8d4f4fcef669a08a39e105f0eda790f4' ARCHIVE_BASE_XNA_5_SIZE='1100000' ARCHIVE_BASE_XNA_5_VERSION='1.4.5-gog36068' ARCHIVE_BASE_XNA_4='stardew_valley_1_4_3_379_34693.sh' ARCHIVE_BASE_XNA_4_MD5='07875ca8c7823f48a7eb533ac157a9da' ARCHIVE_BASE_XNA_4_SIZE='1700000' ARCHIVE_BASE_XNA_4_VERSION='1.4.3-gog34693' ARCHIVE_BASE_XNA_3='stardew_valley_1_4_1_367430508_34378.sh' ARCHIVE_BASE_XNA_3_MD5='2fc31edf997230c90c90c33e096d5762' ARCHIVE_BASE_XNA_3_SIZE='1700000' ARCHIVE_BASE_XNA_3_VERSION='1.4.1-gog34378' ARCHIVE_BASE_XNA_2='stardew_valley_1_3_36_27827.sh' ARCHIVE_BASE_XNA_2_MD5='8dd18eb151471a5901592188dfecb8a3' ARCHIVE_BASE_XNA_2_SIZE='990000' ARCHIVE_BASE_XNA_2_VERSION='1.3.36-gog27827' ARCHIVE_BASE_XNA_1='stardew_valley_en_1_3_28_22957.sh' ARCHIVE_BASE_XNA_1_MD5='e1e98cc3e891f5aafc23fb6617d6bc05' ARCHIVE_BASE_XNA_1_SIZE='970000' ARCHIVE_BASE_XNA_1_VERSION='1.3.28-gog22957' ARCHIVE_BASE_XNA_0='gog_stardew_valley_2.8.0.10.sh' ARCHIVE_BASE_XNA_0_MD5='27c84537bee1baae4e3c2f034cb0ff2d' ARCHIVE_BASE_XNA_0_SIZE='490000' ARCHIVE_BASE_XNA_0_VERSION='1.2.33-gog2.8.0.10' # Archives contents CONTENT_PATH_DEFAULT='data/noarch/game' ## MonoGame builds CONTENT_LIBS_BIN_FILES_MONOGAME=' libclrjit.so libcoreclr.so libcoreclrtraceptprovider.so libdbgshim.so libGalaxy64.so libGalaxyCSharpGlue.so libhostfxr.so libhostpolicy.so libmscordaccore.so libmscordbi.so libSkiaSharp.so libSystem.*.a libSystem.*.so' ## The shipped SDL library must be included, to avoid the following crash on launch: ## Unhandled exception. System.Exception: SDL 2.0.4 does not support changing resizable parameter of the window after it's already been created, please use a newer version of it. ## at Microsoft.Xna.Framework.SdlGameWindow.set_AllowUserResizing(Boolean value) ## at StardewValley.GameRunner..ctor() ## at StardewValley.Program.Main(String[] args) CONTENT_LIBS_BIN_FILES_MONOGAME="$CONTENT_LIBS_BIN_FILES_MONOGAME libSDL2-2.0.so.0" ## The shipped FAudio library must be included, to prevent missing audio: ## FAudio: Failed to initialize. ## Game.Initialize() caught exception initializing XACT: ## Microsoft.Xna.Framework.Audio.NoAudioHardwareException (0x80004005) ## at Microsoft.Xna.Framework.Audio.SoundEffect.Device() ## at Microsoft.Xna.Framework.Audio.SoundEffect.Initialize() ## at Microsoft.Xna.Framework.Audio.SoundEffect..ctor(MiniFormatTag codec, Byte[] buffer, Int32 channels, Int32 sampleRate, Int32 blockAlignment, Int32 loopStart, Int32 loopLength) ## at Microsoft.Xna.Framework.Audio.WaveBank..ctor(AudioEngine audioEngine, String waveBankFilename, Boolean streaming, Int32 offset, Int32 packetsize) ## at StardewValley.Game1.Initialize() CONTENT_LIBS_BIN_FILES_MONOGAME="$CONTENT_LIBS_BIN_FILES_MONOGAME libFAudio.so.0" CONTENT_GAME_BIN_FILES_MONOGAME=' createdump Stardew Valley *.dll *.json *.xml' CONTENT_GAME_DATA_FILES_MONOGAME=' Content' ## XNA builds CONTENT_GAME_MAIN_FILES_XNA=' Content mono monoconfig StardewValley.exe BmFont.dll GalaxyCSharp.dll GalaxyCSharp.dll.config libSkiaSharp.dll Lidgren.Network.dll MonoGame.Framework.dll MonoGame.Framework.dll.config SkiaSharp.dll StardewValley.GameData.dll xTile.dll xTilePipeline.dll' # Launchers APP_MAIN_ICON='../support/icon.png' ## MonoGame builds APP_MAIN_EXE_MONOGAME='Stardew Valley' ## If run from a symlinks prefix, the game process escapes it and actually runs from the system path. APP_MAIN_PREFIX_TYPE_MONOGAME='none' ## XNA builds APP_MAIN_EXE_XNA='StardewValley.exe' # Packages ## MonoGame builds PACKAGES_LIST_MONOGAME='PKG_BIN PKG_DATA' PKG_DATA_ID_MONOGAME="${GAME_ID}-data" PKG_DATA_DESCRIPTION_MONOGAME='data' PKG_BIN_ARCH_MONOGAME='64' PKG_BIN_DEPS_MONOGAME="$PKG_DATA_ID_MONOGAME" PKG_BIN_DEPENDENCIES_LIBRARIES_MONOGAME=' libc.so.6 libdl.so.2 libfontconfig.so.1 libgcc_s.so.1 libgssapi_krb5.so.2 liblttng-ust.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' ## XNA builds PKG_MAIN_DEPENDENCIES_LIBRARIES_XNA=' libGL.so.1 libopenal.so.1 libSDL2-2.0.so.0' PKG_MAIN_DEPENDENCIES_MONO_LIBRARIES_XNA=' mscorlib.dll Mono.Posix.dll Mono.Security.dll System.dll System.Configuration.dll System.Core.dll System.Data.dll System.Drawing.dll System.Runtime.Serialization.dll System.Security.dll System.Xml.dll System.Xml.Linq.dll WindowsBase.dll' # XNA builds - The game manager is provided as an ELF binary CONTENT_GAME_BIN32_FILES_XNA=' mcs.bin.x86' CONTENT_GAME_BIN64_FILES_XNA=' mcs.bin.x86_64' PACKAGES_LIST_XNA='PKG_MAIN PKG_BIN32 PKG_BIN64' PKG_BIN_ID_XNA="${GAME_ID}-bin" PKG_BIN32_ID_XNA="$PKG_BIN_ID_XNA" PKG_BIN64_ID_XNA="$PKG_BIN_ID_XNA" PKG_BIN32_ARCH_XNA='32' PKG_BIN64_ARCH_XNA='64' PKG_BIN_DESCRIPTION_XNA='game manager binary' PKG_BIN32_DESCRIPTION_XNA="$PKG_BIN_DESCRIPTION_XNA" PKG_BIN64_DESCRIPTION_XNA="$PKG_BIN_DESCRIPTION_XNA" PKG_BIN_DEPENDENCIES_LIBRARIES_XNA=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1' PKG_BIN32_DEPENDENCIES_LIBRARIES_XNA="$PKG_BIN_DEPENDENCIES_LIBRARIES_XNA" PKG_BIN64_DEPENDENCIES_LIBRARIES_XNA="$PKG_BIN_DEPENDENCIES_LIBRARIES_XNA" PKG_MAIN_DEPS_XNA="${PKG_MAIN_DEPS_XNA} $PKG_BIN_ID_XNA" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # MonoGame builds - Check for the presence of the extra archive providing OpenSSL 1.1 libraries case "$(context_archive)" in ('ARCHIVE_BASE_MONOGAME_'*) ARCHIVE_REQUIRED_OPENSSL11='openssl_1.1.1n.tar.xz' ARCHIVE_REQUIRED_OPENSSL11_MD5='dade7a54b213be8ac6e0bc2b571570cc' ARCHIVE_REQUIRED_OPENSSL11_URL='https://downloads.dotslashplay.it/resources/openssl1.1/' archive_initialize_required \ 'ARCHIVE_OPENSSL11' \ 'ARCHIVE_REQUIRED_OPENSSL11' ;; esac # MonoGame builds - The game fails to load some libraries if they are not found in the game path. case "$(context_archive)" in ('ARCHIVE_BASE_MONOGAME_'*) mkdir --parents "$(package_path 'PKG_BIN')$(path_game_data)" for library_file in \ 'libclrjit.so' \ 'libcoreclr.so' \ 'libcoreclrtraceptprovider.so' \ 'libdbgshim.so' \ 'libhostfxr.so' \ 'libhostpolicy.so' \ 'libmscordaccore.so' \ 'libmscordbi.so' \ 'libSkiaSharp.so' \ 'libSystem.IO.Compression.Native.a' \ 'libSystem.IO.Compression.Native.so' \ 'libSystem.Native.a' \ 'libSystem.Native.so' \ 'libSystem.Net.Security.Native.a' \ 'libSystem.Net.Security.Native.so' \ 'libSystem.Security.Cryptography.Native.OpenSsl.a' \ 'libSystem.Security.Cryptography.Native.OpenSsl.so' \ 'libGalaxy64.so' \ 'libGalaxyCSharpGlue.so' \ 'libSDL2-2.0.so.0' \ 'libFAudio.so.0' do ln --symbolic \ "$(path_libraries)/${library_file}" \ "$(package_path 'PKG_BIN')$(path_game_data)/${library_file}" done ;; esac # XNA builds - The game fails to load OpenAL and SDL2 libraries if they are not inside some hardcoded path. case "$(context_archive)" in ('ARCHIVE_BASE_XNA_'*) case "$(option_value 'package')" in ('arch') library_source_directory_32bit='/usr/lib32' library_source_directory_64bit='/usr/lib' ;; ('deb') library_source_directory_32bit='/usr/lib/i386-linux-gnu' library_source_directory_64bit='/usr/lib/x86_64-linux-gnu' ;; ('gentoo'|'egentoo') library_source_directory_32bit='/usr/lib' library_source_directory_64bit='/usr/lib64' ;; esac for library_file in \ 'libopenal.so.1' \ 'libSDL2-2.0.so.0' do library_source_32bit="${library_source_directory_32bit}/${library_file}" library_source_64bit="${library_source_directory_64bit}/${library_file}" library_destination_32bit="$(package_path 'PKG_BIN32')$(path_game_data)/lib/${library_file}" library_destination_64bit="$(package_path 'PKG_BIN64')$(path_game_data)/lib64/${library_file}" mkdir --parents \ "$(dirname "$library_destination_32bit")" \ "$(dirname "$library_destination_64bit")" ln --symbolic "$library_source_32bit" "$library_destination_32bit" ln --symbolic "$library_source_64bit" "$library_destination_64bit" done ;; esac # Extract game data archive_extraction_default ## MonoGame builds - Extract OpenSSL 1.1 libraries case "$(context_archive)" in ('ARCHIVE_BASE_MONOGAME_'*) archive_extraction 'ARCHIVE_OPENSSL11' ;; esac ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # XNA builds - Ensure game manager binaries are executable case "$(context_archive)" in ('ARCHIVE_BASE_XNA_'*) chmod 755 'mcs.bin.x86' 'mcs.bin.x86_64' ;; esac ) # Include game icons case "$(context_archive)" in ('ARCHIVE_BASE_MONOGAME_'*) PKG='PKG_DATA' ;; esac icons_inclusion # Include game data ## MonoGame builds - Include OpenSSL 1.1 libraries case "$(context_archive)" in ('ARCHIVE_BASE_MONOGAME_'*) CONTENT_OPENSSL11_PATH='x86_64-linux-gnu' CONTENT_OPENSSL11_FILES=' libcrypto.so.1.1 libssl.so.1.1' content_inclusion 'OPENSSL11' 'PKG_BIN' "$(path_libraries)" dependencies_add_native_libraries 'PKG_BIN' 'libc.so.6' dependencies_add_native_libraries 'PKG_BIN' 'libdl.so.2' dependencies_add_native_libraries 'PKG_BIN' 'libpthread.so.0' ;; esac content_inclusion_default # Write launchers case "$(context_archive)" in ('ARCHIVE_BASE_MONOGAME_'*) PKG='PKG_BIN' ;; esac launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-stargunner.sh0000755000000000000000000000560314471751340014354 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Stargunner # send your bug reports to contact@dotslashplay.it ### script_version=20230428.5 GAME_ID='stargunner' GAME_NAME='Stargunner' ARCHIVE_BASE_1='gog_stargunner_2.0.0.10.sh' ARCHIVE_BASE_1_MD5='d04655b120bce07d7c840f49e89e6a83' ARCHIVE_BASE_1_SIZE='58000' ARCHIVE_BASE_1_VERSION='1.0b-gog2.0.0.10' ARCHIVE_BASE_1_URL='https://www.gog.com/game/stargunner' ARCHIVE_BASE_0='gog_stargunner_2.0.0.9.sh' ARCHIVE_BASE_0_MD5='4e90175d15754e05ad6cb0a0fa1af413' ARCHIVE_BASE_0_SIZE='57000' ARCHIVE_BASE_0_VERSION='1.0b-gog2.0.0.9' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' *' CONTENT_DOC_MAIN_PATH='data/noarch/docs' CONTENT_DOC_MAIN_FILES=' *.pdf' USER_PERSISTENT_FILES=' STARGUN.CFG STARGUN.HI STARGUN.SAV' APP_MAIN_EXE='STARGUN.EXE' APP_MAIN_ICON='../support/icon.png' APP_HELP_ID="${GAME_ID}-help" APP_HELP_NAME="$GAME_NAME - help" APP_HELP_EXE='STARHELP.EXE' APP_HELP_ICON='../support/icon.png' APP_SETUP_ID="${GAME_ID}-setup" APP_SETUP_NAME="$GAME_NAME - setup" APP_SETUP_CAT='Settings' APP_SETUP_EXE='SETUP.EXE' APP_SETUP_ICON='../support/icon.png' # Prevent the game from running too fast APP_MAIN_DOSBOX_PRERUN="$APP_MAIN_DOSBOX_PRERUN"' config -set cpu cycles=fixed 25000' # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Generate a smaller icon from the shipped one APP_MAIN_ICON_512="${APP_MAIN_ICON%.png}_512.png" APP_MAIN_ICONS_LIST="$(application_icons_list 'APP_MAIN') APP_MAIN_ICON_512" APP_HELP_ICONS_LIST="$(application_icons_list 'APP_HELP') APP_MAIN_ICON_512" APP_SETUP_ICONS_LIST="$(application_icons_list 'APP_SETUP') APP_MAIN_ICON_512" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Generate a smaller icon from the shipped one convert "$APP_MAIN_ICON" -resize 512x512 "$APP_MAIN_ICON_512" ) ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path 'DOC_MAIN')" # Convert documentation file names to lower case tolower . ) # Include game icons icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-starship-titanic.sh0000755000000000000000000000422214471751340015446 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Starship Titanic # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220203.3 # Set game-specific variables GAME_ID='starship-titanic' GAME_NAME='Starship Titanic' ARCHIVE_BASE_0='starship_titanic_1_0_53361.sh' ARCHIVE_BASE_0_MD5='a41b4da053b7d4191e0d864bc52e6a89' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='1400000' ARCHIVE_BASE_0_VERSION='1.00.42-gog53361' ARCHIVE_BASE_0_URL='https://www.gog.com/game/starship_titanic' ARCHIVE_BASE_WINDOWS_0='setup_starship_titanic_2.0.0.4.exe' ARCHIVE_BASE_WINDOWS_0_MD5='1b0778ee3ed364ae55b2a20bd50e4cc6' ARCHIVE_BASE_WINDOWS_0_TYPE='innosetup' ARCHIVE_BASE_WINDOWS_0_SIZE='1300000' ARCHIVE_BASE_WINDOWS_0_VERSION='1.00.42-gog2.0.0.4' CONTENT_PATH_DEFAULT='data/noarch/game/data' CONTENT_PATH_DEFAULT_WINDOWS='app' ARCHIVE_DOC_MAIN_FILES=' *.doc *.txt' ARCHIVE_GAME_MAIN_FILES=' assets Assets newgame.st' APP_MAIN_TYPE='scummvm' APP_MAIN_SCUMMID='titanic' APP_MAIN_ICON='data/noarch/support/icon.png' APP_MAIN_ICON_WINDOWS='app/st.exe' PKG_MAIN_DEPS='scummvm' # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Include game icon icons_get_from_workdir 'APP_MAIN' # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-starship-traveller.sh0000755000000000000000000000473014471751340016017 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Starship Traveller # send your bug reports to contact@dotslashplay.it ### script_version=20221210.1 GAME_ID='starship-traveller' GAME_NAME='Starship Traveller' UNITY3D_NAME='Starship Traveller' ARCHIVE_BASE_0='starship_linux_115274.zip' ARCHIVE_BASE_0_MD5='92d8dc4ac95568ac524daaf7ec4152e6' ARCHIVE_BASE_0_SIZE='200000' ARCHIVE_BASE_0_VERSION='1.0-humble160523' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/starship-traveller' CONTENT_PATH_DEFAULT='STARSHIP_LINUX_115274' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86 ${UNITY3D_NAME}.x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64 ${UNITY3D_NAME}.x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPENDENCIES_LIBRARIES=' ld-linux-x86-64.so.2 libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN32_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.19' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-state-of-mind.sh0000755000000000000000000000665414471751340014642 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # State of Mind # send your bug reports to contact@dotslashplay.it ### script_version=20230814.1 GAME_ID='state-of-mind' GAME_NAME='State of Mind' ARCHIVE_BASE_0='state_of_mind_1_2_24280_24687.sh' ARCHIVE_BASE_0_MD5='e27071ec1041dc7e529f5fe590783f72' ARCHIVE_BASE_0_SIZE='21000000' ARCHIVE_BASE_0_VERSION='1.2.24280-gog24687' ARCHIVE_BASE_0_URL='https://www.gog.com/game/state_of_mind' UNREALENGINE4_NAME='StateOfMind' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_DATA_CHUNK1_FILES=" ${UNREALENGINE4_NAME}/Content/Paks/pakchunk0-LinuxNoEditor.pak ${UNREALENGINE4_NAME}/Content/Paks/pakchunk1-LinuxNoEditor.pak ${UNREALENGINE4_NAME}/Content/Paks/pakchunk2-LinuxNoEditor.pak" CONTENT_GAME_DATA_CHUNK2_FILES=" ${UNREALENGINE4_NAME}/Content/Paks/pakchunk3-LinuxNoEditor.pak ${UNREALENGINE4_NAME}/Content/Paks/pakchunk4-LinuxNoEditor.pak ${UNREALENGINE4_NAME}/Content/Paks/pakchunk5-LinuxNoEditor.pak" CONTENT_GAME_DATA_CHUNK3_FILES=" ${UNREALENGINE4_NAME}/Content/Paks/pakchunk6-LinuxNoEditor.pak ${UNREALENGINE4_NAME}/Content/Paks/pakchunk7-LinuxNoEditor.pak" CONTENT_GAME_DATA_FILES=" ${UNREALENGINE4_NAME}/Content ${UNREALENGINE4_NAME}.png version.txt" CONTENT_DOC_DATA_FILES=" LICENSE.txt" APP_MAIN_EXE="${UNREALENGINE4_NAME}/Binaries/Linux/${UNREALENGINE4_NAME}-Linux-Shipping" APP_MAIN_ICON="${UNREALENGINE4_NAME}.png" PACKAGES_LIST='PKG_BIN PKG_DATA_CHUNK1 PKG_DATA_CHUNK2 PKG_DATA_CHUNK3 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_CHUNK1_ID="${PKG_DATA_ID}-chunk1" PKG_DATA_CHUNK1_DESCRIPTION="$PKG_DATA_DESCRIPTION - chunk 1" PKG_DATA_DEPS="$PKG_DATA_DEPS $PKG_DATA_CHUNK1_ID" PKG_DATA_CHUNK2_ID="${PKG_DATA_ID}-chunk2" PKG_DATA_CHUNK2_DESCRIPTION="$PKG_DATA_DESCRIPTION - chunk 2" PKG_DATA_DEPS="$PKG_DATA_DEPS $PKG_DATA_CHUNK2_ID" PKG_DATA_CHUNK3_ID="${PKG_DATA_ID}-chunk3" PKG_DATA_CHUNK3_DESCRIPTION="$PKG_DATA_DESCRIPTION - chunk 3" PKG_DATA_DEPS="$PKG_DATA_DEPS $PKG_DATA_CHUNK3_ID" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1' # Ensure easy upgrade from packages generated with pre-20230410.1 game scripts PKG_DATA_CHUNK1_PROVIDE='state-of-mind-paks-1' PKG_DATA_CHUNK2_PROVIDE='state-of-mind-paks-2' PKG_DATA_CHUNK3_PROVIDE='state-of-mind-paks-3' # Load common functions target_version='2.25' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-steel-rats.sh0000755000000000000000000000525214471751340014247 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Steel Rats # send your bug reports to contact@dotslashplay.it ### script_version=20230415.1 GAME_ID='steel-rats' GAME_NAME='Steel Rats' ARCHIVE_BASE_0='setup_steel_ratstm_1.03_(64bit)_(27036).exe' ARCHIVE_BASE_0_MD5='95ebd3a66fd410645947c0e3b0ae1528' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_steel_ratstm_1.03_(64bit)_(27036)-1.bin' ARCHIVE_BASE_0_PART1_MD5='f1624fd9677468f45741dfa57f88a714' ARCHIVE_BASE_0_PART2='setup_steel_ratstm_1.03_(64bit)_(27036)-2.bin' ARCHIVE_BASE_0_PART2_MD5='a72af4b2e4d64ac63c1cbe59e73501f0' ARCHIVE_BASE_0_SIZE='5600000' ARCHIVE_BASE_0_VERSION='1.03-gog27036' ARCHIVE_BASE_0_URL='https://www.gog.com/game/steel_rats' UNREALENGINE4_NAME='steelrats' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" engine ${UNREALENGINE4_NAME}/binaries ${UNREALENGINE4_NAME}/plugins ${UNREALENGINE4_NAME}.exe" CONTENT_GAME_DATA_FILES=" ${UNREALENGINE4_NAME}" WINE_DIRECT3D_RENDERER='dxvk' APP_WINE_LINK_DIRS=" userdata:users/\${USER}/AppData/Local/${UNREALENGINE4_NAME}/Saved" USER_PERSISTENT_DIRECTORIES=' userdata/Config/WindowsNoEditor userdata/SaveGames' APP_MAIN_EXE="${UNREALENGINE4_NAME}/binaries/win64/${UNREALENGINE4_NAME}-win64-shipping.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPS_ARCH='gst-plugins-base gst-plugins-good gst-libav' PKG_BIN_DEPS_DEB='gstreamer1.0-plugins-base, gstreamer1.0-plugins-good, gstreamer1.0-libav' PKG_BIN_DEPS_GENTOO='media-libs/gst-plugins-base media-plugins/gst-plugins-good media-libs/gst-plugins-libav' # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-still-there.sh0000755000000000000000000000703714471751340014423 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Still There # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20211202.4 # Set game-specific variables GAME_ID='still-there' GAME_NAME='Still There' ARCHIVE_BASE_0='setup_still_there_1.07_(64bit)_(40001).exe' ARCHIVE_BASE_0_MD5='b95f8676d7c574b49ff7cf258f5b606d' ARCHIVE_BASE_0_SIZE='400000' ARCHIVE_BASE_0_VERSION='1.07-gog40001' ARCHIVE_BASE_0_URL='https://www.gog.com/game/still_there' CONTENT_PATH_DEFAULT='.' ARCHIVE_GAME_BIN_PATH="$CONTENT_PATH_DEFAULT" ARCHIVE_GAME_BIN_FILES=' unityplayer.dll winpixeventruntime.dll monobleedingedge still?there.exe still?there_data/plugins' ARCHIVE_GAME_DATA_PATH="$CONTENT_PATH_DEFAULT" ARCHIVE_GAME_DATA_FILES=' still?there_data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='still there.exe' APP_MAIN_ICON='still there.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Use persistent storage for game progress APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/AppData/LocalLow/GhostShark Games/Still There' DATA_DIRS="$DATA_DIRS userdata/Savegame" # Load common functions target_version='2.14' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-stories-the-path-of-destinies.sh0000755000000000000000000000552414471751340017755 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Stories: The Path of Destinies # send your bug reports to contact@dotslashplay.it ### script_version=200230811.2 GAME_ID='stories-the-path-of-destinies' GAME_NAME='Stories: The Path of Destinies' ARCHIVE_BASE_1='setup_stories_the_path_of_destinies_update_4_(25956).exe' ARCHIVE_BASE_1_MD5='61f632db33297ca2b178d4383545732c' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_VERSION='1.0-gog25956' ARCHIVE_BASE_1_SIZE='2000000' ARCHIVE_BASE_1_URL='https://www.gog.com/game/stories_the_path_of_destinies' ARCHIVE_BASE_0='setup_stories_-_the_path_of_destinies_0.0.13825_(16929).exe' ARCHIVE_BASE_0_MD5='6f81dbadddbb4b30b4edda9ced9ddef8' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='0.0.13825-gog16929' ARCHIVE_BASE_0_SIZE='1700000' UNREALENGINE4_NAME='stories' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_BIN_FILES=" engine ${UNREALENGINE4_NAME}/binaries ${UNREALENGINE4_NAME}/plugins language_setup.exe language_setup.ini language_setup.png" CONTENT_GAME_DATA_FILES=" ${UNREALENGINE4_NAME}/content" APP_WINETRICKS='vcrun2019' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=" users/\${USER}/AppData/Local/${UNREALENGINE4_NAME}/Saved" APP_MAIN_EXE="${UNREALENGINE4_NAME}/binaries/win64/${UNREALENGINE4_NAME}.exe" APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=101' APP_LANGUAGE_ID="${GAME_ID}-language-selector" APP_LANGUAGE_NAME="$GAME_NAME - Language Selector" APP_LANGUAGE_CAT='Settings' APP_LANGUAGE_EXE='language_setup.exe' APP_LANGUAGE_ICON='language_setup.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icon PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-strafe.sh0000755000000000000000000000463214471751340013451 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Strafe # send your bug reports to contact@dotslashplay.it ### script_version=20221210.2 GAME_ID='strafe' GAME_NAME='Strafe' UNITY3D_NAME='STRAFE' ARCHIVE_BASE_1='strafe_gold_edition_1_4_38941.sh' ARCHIVE_BASE_1_MD5='f7e0bd39d0c6527f4205ec9d095de936' ARCHIVE_BASE_1_TYPE='mojosetup' ARCHIVE_BASE_1_SIZE='3000000' ARCHIVE_BASE_1_VERSION='1.4-gog38941' ARCHIVE_BASE_1_URL='https://www.gog.com/game/strafe' ARCHIVE_BASE_0='strafe_en_1_2_update_25_04_2018_20318.sh' ARCHIVE_BASE_0_MD5='3726412cdf951f5d4278a0a557a70db6' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='3000000' ARCHIVE_BASE_0_VERSION='1.2.180425-gog20318' ARCHIVE_BASE_0_URL='https://www.gog.com/game/strafe' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_Data/Mono ${UNITY3D_NAME}_Data/Plugins ${UNITY3D_NAME}.x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' ld-linux-x86-64.so.2 libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' # Load common functions target_version='2.19' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-strange-horticulture.sh0000755000000000000000000000534614471751340016362 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi set -o errexit ### # Strange Horticulture # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220329.1 # Set game-specific variables GAME_ID='strange-horticulture' GAME_NAME='Strange Horticulture' ARCHIVE_BASE_2='setup_strange_horticulture_1.1.9.1_(64bit)_(54071).exe' ARCHIVE_BASE_2_MD5='3f4294de0f17a31ea936052e8e820059' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_SIZE='920000' ARCHIVE_BASE_2_VERSION='1.1.9.1-gog54071' ARCHIVE_BASE_2_URL='https://www.gog.com/game/strange_horticulture' ARCHIVE_BASE_1='setup_strange_horticulture_1.0.4_(64bit)_(53097).exe' ARCHIVE_BASE_1_MD5='6217dd2e77993a5af36954bc19e453c3' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='850000' ARCHIVE_BASE_1_VERSION='1.0.4-gog53097' ARCHIVE_BASE_0='setup_strange_horticulture_1.0.3_(64bit)_(53030).exe' ARCHIVE_BASE_0_MD5='56551c39d923f593b161a5b56d28c904' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='850000' ARCHIVE_BASE_0_VERSION='1.0.3-gog53030' UNITY3D_NAME='strange horticulture' CONTENT_PATH_DEFAULT='.' ARCHIVE_GAME_BIN_FILES=" strange?horticulture.exe strange?horticulture_data/plugins unityplayer.dll monobleedingedge unitycrashhandler64.exe" ARCHIVE_GAME_DATA_FILES=" strange?horticulture_data" APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" APP_MAIN_ICON="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Use persistent storage for user data APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/LocalLow/BadVikingLtd/Strange Horticulture' DATA_FILES='userdata/Autosave_*.gd' # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-strike-suit-zero.sh0000755000000000000000000000644414471751340015430 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Strike Suit Zero # send your bug reports to contact@dotslashplay.it ### script_version=20231009.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='strike-suit-zero' GAME_NAME='Strike Suit Zero' ARCHIVE_BASE_0_NAME='StrikeSuitZero_linux_1389211698.zip' ARCHIVE_BASE_0_MD5='94b1c2907ae61deb27eb77fee3fb9c19' ARCHIVE_BASE_0_SIZE='2400000' ARCHIVE_BASE_0_VERSION='1.0-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/strike-suit-zero' CONTENT_PATH_DEFAULT='.' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/linux/main/binary" ## TODO: Check if the Steam library could be dropped. CONTENT_LIBS_BIN_FILES=' libfmodevent.so libfmodeventnet.so libfmodex.so libfmodex-4.44.12.so libsteam_api.so' CONTENT_GAME_BIN_FILES=' linux/main/binary/StrikeSuitZero' CONTENT_GAME_DATA_FILES=' linux/main/art linux/main/audio linux/main/fonts linux/main/gui linux/main/level linux/main/levels linux/main/localisation linux/main/particles linux/main/scripts linux/main/shaders linux/main/system linux/main/textures linux/main/video linux/main/index.toc linux/main/index.toc.txt' USER_PERSISTENT_FILES=' *.sav' APP_MAIN_EXE='linux/main/binary/StrikeSuitZero' ## Run the game binary from its parent directory. APP_MAIN_PRERUN='# Run the game binary from its parent directory cd "$(dirname "$APP_EXE")" APP_EXE=$(basename "$APP_EXE")' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 libSDL2-2.0.so.0 libstdc++.so.6' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ARCHIVE_OPTIONAL_ICONS_0_NAME='strike-suit-zero_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_0_MD5='3fe8bbad7ecca5c0e3afdbbfedb8945d' ARCHIVE_OPTIONAL_ICONS_0_URL='https://downloads.dotslashplay.it/games/strike-suit-zero' archive_initialize_optional \ 'ARCHIVE_ICONS' \ 'ARCHIVE_OPTIONAL_ICONS' ## TODO: The library should provide a function to check if a given optional archive has been provided. if [ -n "$(archive_path 'ARCHIVE_ICONS' 2>/dev/null || true)" ]; then archive_extraction 'ARCHIVE_ICONS' fi # Include game data ## TODO: The library should provide a function to check if a given optional archive has been provided. if [ -n "$(archive_path 'ARCHIVE_ICONS' 2>/dev/null || true)" ]; then CONTENT_ICONS_DATA_PATH='.' CONTENT_ICONS_DATA_FILES=' 16x16 32x32 48x48' content_inclusion 'ICONS_DATA' 'PKG_DATA' "$(path_icons)" fi content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-subject-13.sh0000755000000000000000000000403514471751340014042 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Subject 13 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220707.1 GAME_ID='subject-13' GAME_NAME='Subject 13' ARCHIVE_BASE_0='setup_subject_13_2.0.0.1.exe' ARCHIVE_BASE_0_MD5='90961ce1888fb4f0c06bd6b9b0d8470d' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2000000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.1' ARCHIVE_BASE_0_URL='https://www.gog.com/game/subject_13' UNITY3D_NAME='subject13' CONTENT_PATH_DEFAULT='app' ARCHIVE_GAME_BIN_FILES=" ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_data/mono ${UNITY3D_NAME}_data/plugins" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" APP_MAIN_ICON="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-sudden-strike-4-expansions.sh0000755000000000000000000001021514471751340017266 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Sudden Strike 4 expansions # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220417.5 # Set game-specific variables GAME_ID='sudden-strike-4' GAME_NAME='Sudden Strike 4' EXPANSION_ID_KURSK='battle-of-kursk' EXPANSION_NAME_KURSK='Battle of Kursk' EXPANSION_ID_DUNKIRK='road-to-dunkirk' EXPANSION_NAME_DUNKIRK='Road to Dunkirk' EXPANSION_ID_PACIFIC='the-pacific-war' EXPANSION_NAME_PACIFIC='The Pacific War' EXPANSION_ID_FINLAND='finland-winter-storm' EXPANSION_NAME_FINLAND='Finland: Winter Storm' EXPANSION_ID_AFRICA='africa-desert-war' EXPANSION_NAME_AFRICA='Africa: Desert War' # Archives ## Battle of Kursk ARCHIVE_BASE_KURSK_0='sudden_strike_4_battle_of_kursk_1_15_hotfix_28522.sh' ARCHIVE_BASE_KURSK_0_MD5='adaf1b27f954cc90c32c951334c45916' ARCHIVE_BASE_KURSK_0_TYPE='mojosetup' ARCHIVE_BASE_KURSK_0_SIZE='56000' ARCHIVE_BASE_KURSK_0_VERSION='1.15-gog28522' ## Road to Dunkirk ARCHIVE_BASE_DUNKIRK_0='sudden_strike_4_road_to_dunkirk_1_15_hotfix_28522.sh' ARCHIVE_BASE_DUNKIRK_0_MD5='cd07c173ad84e83db50dd3fce310d5a5' ARCHIVE_BASE_DUNKIRK_0_TYPE='mojosetup' ARCHIVE_BASE_DUNKIRK_0_SIZE='160000' ARCHIVE_BASE_DUNKIRK_0_VERSION='1.15-gog28522' ARCHIVE_BASE_DUNKIRK_0_URL='https://www.gog.com/game/sudden_strike_4_road_to_dunkirk' ## The Pacific War ARCHIVE_BASE_PACIFIC_0='sudden_strike_4_the_pacific_war_1_15_hotfix_28522.sh' ARCHIVE_BASE_PACIFIC_0_MD5='9a5a4c8ca66814bfee11203dd877193c' ARCHIVE_BASE_PACIFIC_0_TYPE='mojosetup' ARCHIVE_BASE_PACIFIC_0_SIZE='560000' ARCHIVE_BASE_PACIFIC_0_VERSION='1.15-gog28522' ARCHIVE_BASE_PACIFIC_0_URL='https://www.gog.com/game/sudden_strike_4_the_pacific_war' ## Finland: Winter Storm ARCHIVE_BASE_FINLAND_0='sudden_strike_4_finland_winter_storm_1_15_hotfix_28522.sh' ARCHIVE_BASE_FINLAND_0_MD5='d51ded65499136f36e613ca35cb583d8' ARCHIVE_BASE_FINLAND_0_TYPE='mojosetup' ARCHIVE_BASE_FINLAND_0_SIZE='330000' ARCHIVE_BASE_FINLAND_0_VERSION='1.15-gog28522' ARCHIVE_BASE_FINLAND_0_URL='https://www.gog.com/game/sudden_strike_4_the_pacific_war' ## Africa: Desert War ARCHIVE_BASE_AFRICA_0='sudden_strike_4_africa_desert_war_1_15_hotfix_28522.sh' ARCHIVE_BASE_AFRICA_0_MD5='9fd0469913dda4a63c6dd7d87736c936' ARCHIVE_BASE_AFRICA_0_TYPE='mojosetup' ARCHIVE_BASE_AFRICA_0_SIZE='370000' ARCHIVE_BASE_AFRICA_0_VERSION='1.15-gog28522' ARCHIVE_BASE_AFRICA_0_URL='https://www.gog.com/game/sudden_strike_4_africa_desert_war' CONTENT_PATH_DEFAULT='data/noarch/game' ARCHIVE_GAME_MAIN_FILES='AssetBundles' PKG_MAIN_ID_KURSK="${GAME_ID}-${EXPANSION_ID_KURSK}" PKG_MAIN_ID_DUNKIRK="${GAME_ID}-${EXPANSION_ID_DUNKIRK}" PKG_MAIN_ID_PACIFIC="${GAME_ID}-${EXPANSION_ID_PACIFIC}" PKG_MAIN_ID_FINLAND="${GAME_ID}-${EXPANSION_ID_FINLAND}" PKG_MAIN_ID_AFRICA="${GAME_ID}-${EXPANSION_ID_AFRICA}" PKG_MAIN_DESCRIPTION_KURSK="$EXPANSION_NAME_KURSK" PKG_MAIN_DESCRIPTION_DUNKIRK="$EXPANSION_NAME_DUNKIRK" PKG_MAIN_DESCRIPTION_PACIFIC="$EXPANSION_NAME_PACIFIC" PKG_MAIN_DESCRIPTION_FINLAND="$EXPANSION_NAME_FINLAND" PKG_MAIN_DESCRIPTION_AFRICA="$EXPANSION_NAME_AFRICA" PKG_MAIN_DEPS="$GAME_ID" # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions EXPANSION_NAME=$(get_context_specific_value 'archive' 'EXPANSION_NAME') game_name=$(game_name) GAME_NAME="$game_name - $EXPANSION_NAME" print_instructions exit 0 games/play-sudden-strike-4.sh0000755000000000000000000000402114471751340015077 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Sudden Strike 4 # send your bug reports to contact@dotslashplay.it ### script_version=20231108.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='sudden-strike-4' GAME_NAME='Sudden Strike 4' ARCHIVE_BASE_0_NAME='sudden_strike_4_1_15_hotfix_28522.sh' ARCHIVE_BASE_0_MD5='4f639590f5e9af1f8076adf6f7dd5b53' ARCHIVE_BASE_0_SIZE='7100000' ARCHIVE_BASE_0_VERSION='1.15-gog28522' ARCHIVE_BASE_0_URL='https://www.gog.com/game/sudden_strike_4' UNITY3D_NAME='SuddenStrike4' ## TODO: Check if the Steam libraries can be dropped. UNITY3D_PLUGINS=' libCSteamworks.so libsteam_api.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME0_DATA_FILES=' AssetBundles' CONTENT_DOC_DATA_FILES=' readme.txt' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_data # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-sudocats.sh0000755000000000000000000000433214471751340014007 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Sudocats # send your bug reports to contact@dotslashplay.it ### script_version=20231219.3 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='sudocats' GAME_NAME='Sudocats' ARCHIVE_BASE_1_NAME='setup_sudocats_1.1_(random_puzzles_with_gog_wrapper)_(64bit)_(68010).exe' ARCHIVE_BASE_1_MD5='c4a1e2a5cabddeedf73832c5841d576c' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='250591' ARCHIVE_BASE_1_VERSION='1.1-gog68010' ARCHIVE_BASE_1_URL='https://www.gog.com/en/game/sudocats' ARCHIVE_BASE_0_NAME='setup_sudocats_1.0_gog_(64bit)_(62585).exe' ARCHIVE_BASE_0_MD5='c75b4230f05cc5b4d875abd855767dcf' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='230000' ARCHIVE_BASE_0_VERSION='1.0-gog62585' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' sudocats.exe' ## The game fails to start if steam_api64.dll is missing. CONTENT_GAME0_BIN_FILES=' steam_api64.dll' ## Starting with game build 1.1, galaxy64.dll is required. CONTENT_GAME1_BIN_FILES=' galaxyconfig.json galaxy64.dll' CONTENT_GAME_DATA_FILES=' sudocats.pck' USER_PERSISTENT_FILES=' *.cfg' APP_MAIN_EXE='sudocats.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-sumatra-fate-of-yandi.sh0000755000000000000000000000333614471751340016262 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Sumatra: Fate of Yandi # send your bug reports to contact@dotslashplay.it ### script_version=20230406.1 GAME_ID='sumatra-fate-of-yandi' GAME_NAME='Sumatra: Fate of Yandi' ARCHIVE_BASE_0='setup_sumatra_fate_of_yandi_1.2_(56037).exe' ARCHIVE_BASE_0_MD5='60b1734aa9e06bb5077f48200c0106bf' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='290000' ARCHIVE_BASE_0_VERSION='1.2-gog56037' ARCHIVE_BASE_0_URL='https://www.gog.com/game/sumatra_fate_of_yandi' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES=' *.cfg *.exe *.tra *.vox' APP_MAIN_TYPE='scummvm' APP_MAIN_SCUMMID='ags:sumatra' APP_MAIN_ICON='sumatra fate of yandi.exe' PKG_MAIN_DEPS='scummvm' # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-summer-in-mara.sh0000755000000000000000000000501214471751340015010 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Summer in Mara # send your bug reports to contact@dotslashplay.it ### script_version=20221204.4 GAME_ID='summer-in-mara' GAME_NAME='Summer in Mara' UNITY3D_NAME='summer in mara' ARCHIVE_BASE_0='setup_summer_in_mara_1.9_(39424).exe' ARCHIVE_BASE_0_MD5='d3fc24a65ff2adf8c42bb6fda639dc17' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1800000' ARCHIVE_BASE_0_VERSION='1.07-gog39424' ARCHIVE_BASE_0_URL='https://www.gog.com/game/summer_in_mara' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" monobleedingedge unitycrashhandler64.exe unityplayer.dll ${UNITY3D_NAME}_data/plugins ${UNITY3D_NAME}.exe" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" APP_MAIN_ICON="${UNITY3D_NAME}.exe" ## The game works with the default wined3d renderer, ## but performances are poor. WINE_DIRECT3D_RENDERER='dxvk' APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/LocalLow/Chibig/Summer in Mara' USER_PERSISTENT_DIRECTORIES=' userdata/Save' PACKAGES_LIST='PKG_DATA PKG_BIN' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPS_ARCH='gst-plugins-base gst-plugins-good gst-libav' PKG_BIN_DEPS_DEB='gstreamer1.0-plugins-base, gstreamer1.0-plugins-good, gstreamer1.0-libav' PKG_BIN_DEPS_GENTOO='media-libs/gst-plugins-base media-libs/gst-plugins-good media-plugins/gst-plugins-libav' # Load common functions target_version='2.18' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-sunblaze.sh0000755000000000000000000000332714471751340014010 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Sunblaze # send your bug reports to contact@dotslashplay.it ### script_version=20230929.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='sunblaze' GAME_NAME='Sunblaze' ARCHIVE_BASE_0_NAME='setup_sunblaze_1.1.2.016_(64bit)_(48132).exe' ARCHIVE_BASE_0_MD5='85389b46e533fad6ec46188e17688798' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='300000' ARCHIVE_BASE_0_VERSION='1.1.2.016-gog48132' ARCHIVE_BASE_0_URL='https://www.gog.com/game/sunblaze' UNITY3D_NAME='sunblaze' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Games From Earth/Sunblaze' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icon PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-sundered.sh0000755000000000000000000000742214471751340013776 0ustar rootroot#!/bin/sh -e set -o errexit ### # Copyright (c) 2020, Hoël Bézier # 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. ### ### # Sundered # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20200512.1 # Set game-specific variables GAME_ID='sundered' GAME_NAME='Sundered' ARCHIVE_GOG='sundered_20190404_29317.sh' ARCHIVE_GOG_URL='https://www.gog.com/game/sundered' ARCHIVE_GOG_MD5='efd81d3e4b14d26cdef2362b888e0a56' ARCHIVE_GOG_SIZE='2500000' ARCHIVE_GOG_VERSION='20190404-gog23987' ARCHIVE_GOG_TYPE='mojosetup' ARCHIVE_DOC0_DATA_PATH='data/noarch/docs' ARCHIVE_DOC0_DATA_FILES='*' ARCHIVE_DOC1_DATA_PATH='data/noarch/support' ARCHIVE_DOC1_DATA_FILES='*.txt' ARCHIVE_GAME_BIN32_PATH='data/noarch/game' ARCHIVE_GAME_BIN32_FILES='Sundered.x86 Sundered_Data/Mono/x86 Sundered_Data/Plugins/x86' ARCHIVE_GAME_BIN64_PATH='data/noarch/game' ARCHIVE_GAME_BIN64_FILES='Sundered.x86_64 Sundered_Data/Mono/x86_64 Sundered_Data/Plugins/x86_64' ARCHIVE_GAME_DATA_PATH='data/noarch/game' ARCHIVE_GAME_DATA_FILES='Sundered_Data' DATA_DIRS='./logs' APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32='Sundered.x86' APP_MAIN_EXE_BIN64='Sundered.x86_64' # shellcheck disable=SC2016 APP_MAIN_OPTIONS='-logFile ./logs/$(date +%F-%R).log' APP_MAIN_ICON='Sundered_Data/Resources/UnityPlayer.png' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID glibc libstdc++ gtk2" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi #shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout rm --recursive "$PLAYIT_WORKDIR/gamedata" # Extract icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-sunlight.sh0000755000000000000000000000317014471751340014016 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Sunlight # send your bug reports to contact@dotslashplay.it ### script_version=20231006.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='sunlight' GAME_NAME='Sunlight' ARCHIVE_BASE_0_NAME='Sunlight v1.1.5RC 211801 Windows.zip' ARCHIVE_BASE_0_MD5='fbe2840776c841d4582f40e68acfe8aa' ARCHIVE_BASE_0_SIZE='980000' ARCHIVE_BASE_0_VERSION='1.1.5RC.211801-itch1' ARCHIVE_BASE_0_URL='https://krillbitestudio.itch.io/sunlight' UNITY3D_NAME='Sunlight' CONTENT_PATH_DEFAULT='Sunlight v1.1.5RC 211801 Windows' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data PKG='PKG_DATA' icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-super-meat-boy.sh0000755000000000000000000000456514471751340015043 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Super Meat Boy # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220707.1 GAME_ID='super-meat-boy' GAME_NAME='Super Meat Boy' ARCHIVE_BASE_0='supermeatboy-linux-11112013-bin' ARCHIVE_BASE_0_MD5='fc024d757395eebfdee342571671332b' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='260000' ARCHIVE_BASE_0_VERSION='1.0-humble131111' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/super-meat-boy' CONTENT_PATH_DEFAULT='data' ARCHIVE_DOC_DATA_FILES=' README-licenses.txt README-linux.txt' ARCHIVE_GAME_BIN32_FILES=' x86' ARCHIVE_GAME_BIN64_FILES=' amd64' ARCHIVE_GAME_DATA_FILES=' buttonmap.cfg gameaudio.dat gamedata.dat Levels resources supermeatboy.png locdb.txt steam_appid.txt' APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32='x86/SuperMeatBoy' APP_MAIN_EXE_BIN64='amd64/SuperMeatBoy' APP_MAIN_ICON='supermeatboy.png' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6 libSDL2-2.0.so.0 libopenal.so.1" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Use persistent storage for user data DATA_FILES='*.cfg' # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-superhot.sh0000755000000000000000000000452514471751340014037 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Superhot # send your bug reports to contact@dotslashplay.it ### script_version=20231104.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='superhot' GAME_NAME='Superhot' ARCHIVE_BASE_GOG_0_NAME='superhot_1_0_14_33249.sh' ARCHIVE_BASE_GOG_0_MD5='0cae1298bc41354a7d34d2211d6b07f2' ARCHIVE_BASE_GOG_0_SIZE='4100000' ARCHIVE_BASE_GOG_0_VERSION='1.0.14-gog33249' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/superhot' ## This DRM-free build is no longer available for sale from humblebundle.com, they only sell Steam keys. ARCHIVE_BASE_HUMBLE_0_NAME='SUPERHOT_LINUX.zip' ARCHIVE_BASE_HUMBLE_0_MD5='bbbbae191504b00cfb4a9509175014c2' ARCHIVE_BASE_HUMBLE_0_SIZE='4300000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0-humble1' UNITY3D_NAME='SUPERHOT' ## TODO: Check if the Steam libraries can be dropped. UNITY3D_PLUGINS=' libCSteamworks.so libsteam_api.so ScreenSelector.so' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='SUPERHOT' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-superliminal.sh0000755000000000000000000001025714471751340014671 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Superliminal # send your bug reports to contact@dotslashplay.it ### script_version=20231109.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='superliminal' GAME_NAME='Superliminal' ARCHIVE_BASE_1_NAME='superliminal_1_3_53848.sh' ARCHIVE_BASE_1_MD5='b22c23f799a18f97f4dad185d713a556' ARCHIVE_BASE_1_SIZE='16000000' ## Yes, previous version of the game was 1.15. And the current one is 1.3. ## You can blame Pillow Castle developers for not being able to count up to 20. ARCHIVE_BASE_1_VERSION='1.3-gog53848' ARCHIVE_BASE_1_URL='https://www.gog.com/game/superliminal' ARCHIVE_BASE_0_NAME='superliminal_1_15_46618.sh' ARCHIVE_BASE_0_MD5='e2a90cc5c087b5e2e779e07f7524f089' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='12000000' ARCHIVE_BASE_0_VERSION='1.15-gog46618' UNITY3D_NAME='SuperliminalGOG' UNITY3D_PLUGINS=' lib_burst_generated.so libfmodsuper.so libgvraudio.so libopenvr_api.so libresonanceaudio.so libStandaloneFileBrowser.so libvhacd.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_DATA_ASSETS_1_FILES=" ${UNITY3D_NAME}_Data/sharedassets0.* ${UNITY3D_NAME}_Data/sharedassets1.* ${UNITY3D_NAME}_Data/sharedassets2.* ${UNITY3D_NAME}_Data/sharedassets3.* ${UNITY3D_NAME}_Data/sharedassets4.* ${UNITY3D_NAME}_Data/sharedassets5.*" CONTENT_GAME_DATA_ASSETS_2_FILES=" ${UNITY3D_NAME}_Data/sharedassets*" ## The game crashes on launch when the Wayland backend of SDL is used, ## even when forcing the use of system SDL. APP_MAIN_PRERUN='# The game crashes on launch when the Wayland backend of SDL is used if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' PACKAGES_LIST=' PKG_BIN PKG_DATA_ASSETS_1 PKG_DATA_ASSETS_2 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_ASSETS_ID="${PKG_DATA_ID}-assets" PKG_DATA_ASSETS_1_ID="${PKG_DATA_ASSETS_ID}-1" PKG_DATA_ASSETS_2_ID="${PKG_DATA_ASSETS_ID}-2" PKG_DATA_ASSETS_DESCRIPTION="$PKG_DATA_DESCRIPTION - assets" PKG_DATA_ASSETS_1_DESCRIPTION="$PKG_DATA_ASSETS_DESCRIPTION - 1" PKG_DATA_ASSETS_2_DESCRIPTION="$PKG_DATA_ASSETS_DESCRIPTION - 2" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_ASSETS_1_ID $PKG_DATA_ASSETS_2_ID" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-3.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Work around Unity3D regressions APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN')"' # Work around Unity3D regressions, comments are from the original game launcher ## Another Unity regression! WHO WOULD HAVE THOUGHT : "${SDL_MOUSE_RELATIVE_SPEED_SCALE:=4.0f}" export SDL_MOUSE_RELATIVE_SPEED_SCALE ## Unity _seriously_ dropped the ball here. ## 2019.3 adds -rdynamic which means all Linux games will fail to load FMOD ## properly, and while FMOD can be compiled monolithically we still run into ## symbol override issues. Why Unity didnʼt say anything about possibly the ## worldʼs most popular middleware I have absolutely no clue. ## ## So, we do both the monolithic build (thanks FMOD support!) and the preload, to ## ensure that our stupid hack is "safe". Unityʼs Linux team is fired. -flibit export LD_PRELOAD="${LD_PRELOAD:-}:'"$(path_libraries)"'/libfmodsuper.so" ' # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-surviving-mars-expansions.sh0000755000000000000000000001336714471751340017353 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Janeene "dawnmist" Beeforth # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Surviving Mars expansions: # - Digital Deluxe Edition Upgrade Pack # - Stellaris Dome Set # - Mysteries Resupply Pack # send your bug reports to contact@dotslashplay.it ### script_version=20230414.1 GAME_ID='surviving-mars' GAME_NAME='Surviving Mars' EXPANSION_ID_DELUXE='digital-deluxe' EXPANSION_NAME_DELUXE='Digital Deluxe' EXPANSION_ID_STELLARIS='stellaris-dome-set' EXPANSION_NAME_STELLARIS='Stellaris Dome Set' EXPANSION_ID_MYSTERIES='mysteries-resupply-pack' EXPANSION_NAME_MYSTERIES='Mysteries Resupply Pack' # Archives ## Digital Deluxe Edition Upgrade Pack ARCHIVE_BASE_DELUXE_5='surviving_mars_digital_deluxe_edition_upgrade_pack_cernan_update_29871.sh' ARCHIVE_BASE_DELUXE_5_MD5='d4446a7a747ab2e087b48b241aedc9eb' ARCHIVE_BASE_DELUXE_5_SIZE='70000' ARCHIVE_BASE_DELUXE_5_VERSION='1.0-gog29871' ARCHIVE_BASE_DELUXE_5_URL='https://www.gog.com/game/surviving_mars_digital_deluxe_edition_upgrade_pack' ARCHIVE_BASE_DELUXE_4='surviving_mars_digital_deluxe_edition_upgrade_pack_sagan_rc3_update_24111.sh' ARCHIVE_BASE_DELUXE_4_MD5='60cddca455eb1882e0ca7ebf4e26838a' ARCHIVE_BASE_DELUXE_4_SIZE='66000' ARCHIVE_BASE_DELUXE_4_VERSION='1.0-gog24111' ARCHIVE_BASE_DELUXE_3='surviving_mars_digital_deluxe_edition_upgrade_pack_sagan_rc1_update_23676.sh' ARCHIVE_BASE_DELUXE_3_MD5='7ba5d3ab5626f1a18015b9516adf29af' ARCHIVE_BASE_DELUXE_3_SIZE='66000' ARCHIVE_BASE_DELUXE_3_VERSION='1.0-gog23676' ARCHIVE_BASE_DELUXE_2='surviving_mars_digital_deluxe_edition_upgrade_pack_en_davinci_rc1_22763.sh' ARCHIVE_BASE_DELUXE_2_MD5='195f0d1a28047112ced2d9cc31df5e52' ARCHIVE_BASE_DELUXE_2_SIZE='67000' ARCHIVE_BASE_DELUXE_2_VERSION='1.0-gog22763' ARCHIVE_BASE_DELUXE_1='surviving_mars_digital_deluxe_edition_upgrade_pack_en_180619_curiosity_hotfix_3_21661.sh' ARCHIVE_BASE_DELUXE_1_MD5='cef24bda9587c1923139ea0c86df317a' ARCHIVE_BASE_DELUXE_1_SIZE='66000' ARCHIVE_BASE_DELUXE_1_VERSION='1.0-gog21661' ARCHIVE_BASE_DELUXE_0='surviving_mars_digital_deluxe_edition_upgrade_pack_en_180423_opportunity_rc1_20289.sh' ARCHIVE_BASE_DELUXE_0_MD5='a574de12f4b7f3aa1f285167109bb6a3' ARCHIVE_BASE_DELUXE_0_SIZE='66000' ARCHIVE_BASE_DELUXE_0_VERSION='1.0-gog20289' ## Stellaris Dome Set ARCHIVE_BASE_STELLARIS_2='surviving_mars_stellaris_dome_set_sagan_rc3_update_24111.sh' ARCHIVE_BASE_STELLARIS_2_MD5='7759d7fa7f9d99a693a828a6c5db601f' ARCHIVE_BASE_STELLARIS_2_SIZE='4000' ARCHIVE_BASE_STELLARIS_2_VERSION='1.0-gog24111' ARCHIVE_BASE_STELLARIS_2_URL='https://www.gog.com/game/surviving_mars_stellaris_dome_set' ARCHIVE_BASE_STELLARIS_1='surviving_mars_stellaris_dome_set_sagan_rc1_update_23676.sh' ARCHIVE_BASE_STELLARIS_1_MD5='2b0f7100813779cdd847be15b6599fea' ARCHIVE_BASE_STELLARIS_1_SIZE='4000' ARCHIVE_BASE_STELLARIS_1_VERSION='1.0-gog23676' ARCHIVE_BASE_STELLARIS_0='surviving_mars_stellaris_dome_set_pre_order_dlc_en_180619_curiosity_hotfix_3_21661.sh' ARCHIVE_BASE_STELLARIS_0_MD5='01ffc529b9a0cc72e5d94830385bf7b9' ARCHIVE_BASE_STELLARIS_0_SIZE='4000' ARCHIVE_BASE_STELLARIS_0_VERSION='1.0-gog21661' ## Mysteries Resupply Pack ARCHIVE_BASE_MYSTERIES_4='surviving_mars_mysteries_resupply_pack_sagan_rc3_update_24111.sh' ARCHIVE_BASE_MYSTERIES_4_MD5='042fc7152f3ad72e0c121dfb96f617d8' ARCHIVE_BASE_MYSTERIES_4_SIZE='3100' ARCHIVE_BASE_MYSTERIES_4_VERSION='1.0-gog24111' ARCHIVE_BASE_MYSTERIES_4_URL='https://www.gog.com/game/surviving_mars_mysteries_resupply_pack' ARCHIVE_BASE_MYSTERIES_3='surviving_mars_mysteries_resupply_pack_sagan_rc1_update_23676.sh' ARCHIVE_BASE_MYSTERIES_3_MD5='e7e96c1384fd795f4a9b69db579524e6' ARCHIVE_BASE_MYSTERIES_3_SIZE='3100' ARCHIVE_BASE_MYSTERIES_3_VERSION='1.0-gog23676' ARCHIVE_BASE_MYSTERIES_2='surviving_mars_mysteries_resupply_pack_en_davinci_rc1_22763.sh' ARCHIVE_BASE_MYSTERIES_2_MD5='6e83b67c5d368c25092ecb4fd700b5ae' ARCHIVE_BASE_MYSTERIES_2_SIZE='3100' ARCHIVE_BASE_MYSTERIES_2_VERSION='1.0-gog22763' ARCHIVE_BASE_MYSTERIES_1='surviving_mars_mysteries_resupply_pack_en_180619_curiosity_hotfix_3_21661.sh' ARCHIVE_BASE_MYSTERIES_1_MD5='fd7ef79614de264ac4eb2a1e431d64bf' ARCHIVE_BASE_MYSTERIES_1_SIZE='2900' ARCHIVE_BASE_MYSTERIES_1_VERSION='1.0-gog21661' ARCHIVE_BASE_MYSTERIES_0='surviving_mars_mysteries_resupply_pack_en_curiosity_2_21442.sh' ARCHIVE_BASE_MYSTERIES_0_MD5='9ca47c2cdb5a41cf8b221dca99783916' ARCHIVE_BASE_MYSTERIES_0_SIZE='2900' ARCHIVE_BASE_MYSTERIES_0_VERSION='1.0-gog21442' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' DLC' PKG_MAIN_ID_DELUXE="${GAME_ID}-${EXPANSION_ID_DELUXE}" PKG_MAIN_ID_STELLARIS="${GAME_ID}-${EXPANSION_ID_STELLARIS}" PKG_MAIN_ID_MYSTERIES="${GAME_ID}-${EXPANSION_ID_MYSTERIES}" PKG_MAIN_DESCRIPTION_DELUXE="$EXPANSION_NAME_DELUXE" PKG_MAIN_DESCRIPTION_STELLARIS="$EXPANSION_NAME_STELLARIS" PKG_MAIN_DESCRIPTION_MYSTERIES="$EXPANSION_NAME_MYSTERIES" PKG_MAIN_DEPS="$GAME_ID" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-surviving-mars.sh0000755000000000000000000000606314471751340015161 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Janeene Beeforth # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Surviving Mars # send your bug reports to contact@dotslashplay.it ### script_version=20231111.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='surviving-mars' GAME_NAME='Surviving Mars' ARCHIVE_BASE_5_NAME='surviving_mars_cernan_update_29871.sh' ARCHIVE_BASE_5_MD5='0c204fb895101f8b3f844a1fa06e2feb' ARCHIVE_BASE_5_SIZE='6200000' ARCHIVE_BASE_5_VERSION='1.0-gog29871' ARCHIVE_BASE_5_URL='https://www.gog.com/game/surviving_mars' ARCHIVE_BASE_4_NAME='surviving_mars_sagan_rc3_update_24111.sh' ARCHIVE_BASE_4_MD5='22e5cbc7188ff1cb8fd5dabf7cdca0bf' ARCHIVE_BASE_4_SIZE='4700000' ARCHIVE_BASE_4_VERSION='1.0-gog24111' ARCHIVE_BASE_3_NAME='surviving_mars_sagan_rc1_update_23676.sh' ARCHIVE_BASE_3_MD5='2e5058a9f1076f894c0b074fd24e3597' ARCHIVE_BASE_3_SIZE='4700000' ARCHIVE_BASE_3_VERSION='1.0-gog23676' ARCHIVE_BASE_2_NAME='surviving_mars_en_davinci_rc1_22763.sh' ARCHIVE_BASE_2_MD5='aa513fee4b4c10318831712d4663bfc0' ARCHIVE_BASE_2_SIZE='4400000' ARCHIVE_BASE_2_VERSION='1.0-gog22763' ARCHIVE_BASE_1_NAME='surviving_mars_en_180619_curiosity_hotfix_3_21661.sh' ARCHIVE_BASE_1_MD5='241f1cb8305becab5d55c8d104bd2c18' ARCHIVE_BASE_1_SIZE='4100000' ARCHIVE_BASE_1_VERSION='1.0-gog21661' ARCHIVE_BASE_0_NAME='surviving_mars_en_curiosity_update_21183.sh' ARCHIVE_BASE_0_MD5='ab9a61d04a128f19bc9e003214fe39a9' ARCHIVE_BASE_0_SIZE='4000000' ARCHIVE_BASE_0_VERSION='1.0-gog21183' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_FILES=' libpops_api.so' CONTENT_GAME_BIN_FILES=' MarsGOG' CONTENT_GAME_DATA_FILES=' DLC Licenses Local ModTools Movies Packs ShaderPreprocessorTemp' APP_MAIN_EXE='MarsGOG' APP_MAIN_ICON='../support/icon.png' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libcurl-gnutls.so.4 libdl.so.2 libgcc_s.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 libresolv.so.2 libSDL2-2.0.so.0 libssl.so.1.0.0 libstdc++.so.6 libuuid.so.1 libX11.so.6 libXext.so.6 libXrandr.so.2 libXrender.so.1 libXt.so.6 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-syberia-3.sh0000755000000000000000000001157514471751340013767 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 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220509.1 # Set game-specific variables GAME_ID='syberia-3' GAME_NAME='Syberia 3' ARCHIVE_BASE_0='setup_syberia3_1.5.07_(16263).exe' ARCHIVE_BASE_0_MD5='0acae86c6b8731b59813f7e52b65dadd' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_syberia3_1.5.07_(16263)-1.bin' ARCHIVE_BASE_0_PART1_MD5='233220fefc9729dc0929807b303796b6' ARCHIVE_BASE_0_PART1_TYPE='data' ARCHIVE_BASE_0_PART2='setup_syberia3_1.5.07_(16263)-2.bin' ARCHIVE_BASE_0_PART2_MD5='74b45a17b099e37118b60c949138a641' ARCHIVE_BASE_0_PART2_TYPE='data' ARCHIVE_BASE_0_PART3='setup_syberia3_1.5.07_(16263)-3.bin' ARCHIVE_BASE_0_PART3_MD5='0f835206b87821446fd93c2c739a285a' ARCHIVE_BASE_0_PART3_TYPE='data' ARCHIVE_BASE_0_PART4='setup_syberia3_1.5.07_(16263)-4.bin' ARCHIVE_BASE_0_PART4_MD5='150ed8843be777abd765b79df2aaf314' ARCHIVE_BASE_0_PART4_TYPE='data' ARCHIVE_BASE_0_PART5='setup_syberia3_1.5.07_(16263)-5.bin' ARCHIVE_BASE_0_PART5_MD5='67c6e4d76b778f7d5fd02f5df561bb11' ARCHIVE_BASE_0_PART5_TYPE='data' 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' ARCHIVE_GAME_BIN_FILES=" ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_data/plugins ${UNITY3D_NAME}_data/mono" ARCHIVE_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?.*" ARCHIVE_GAME_DATA_SHAREDASSETS_2_FILES=" ${UNITY3D_NAME}_data/sharedassets5?.* ${UNITY3D_NAME}_data/sharedassets6?.* ${UNITY3D_NAME}_data/sharedassets7?.* ${UNITY3D_NAME}_data/sharedassets8?.*" ARCHIVE_GAME_DATA_SHAREDASSETS_3_FILES=" ${UNITY3D_NAME}_data/sharedassets9?.* ${UNITY3D_NAME}_data/sharedassets10?.* ${UNITY3D_NAME}_data/sharedassets11?.* ${UNITY3D_NAME}_data/sharedassets12?.*" ARCHIVE_GAME_DATA_SHAREDASSETS_4_FILES=" ${UNITY3D_NAME}_data/sharedassets*" ARCHIVE_GAME_DATA_STREAMINGASSETS_FILES=" ${UNITY3D_NAME}_data/streamingassets" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_data syberia3.dat" APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" APP_MAIN_ICON="${UNITY3D_NAME}.exe" 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_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_SHAREDASSETS_1_ID="${PKG_DATA_ID}-sharedassets-1" PKG_DATA_SHAREDASSETS_1_DESCRIPTION="$PKG_DATA_DESCRIPTION - shared assets - 1" PKG_DATA_DEPS="$PKG_DATA_DEPS $PKG_DATA_SHAREDASSETS_1_ID" PKG_DATA_SHAREDASSETS_2_ID="${PKG_DATA_ID}-sharedassets-2" PKG_DATA_SHAREDASSETS_2_DESCRIPTION="$PKG_DATA_DESCRIPTION - shared assets - 2" PKG_DATA_DEPS="$PKG_DATA_DEPS $PKG_DATA_SHAREDASSETS_2_ID" PKG_DATA_SHAREDASSETS_3_ID="${PKG_DATA_ID}-sharedassets-3" PKG_DATA_SHAREDASSETS_3_DESCRIPTION="$PKG_DATA_DESCRIPTION - shared assets - 3" PKG_DATA_DEPS="$PKG_DATA_DEPS $PKG_DATA_SHAREDASSETS_3_ID" PKG_DATA_SHAREDASSETS_4_ID="${PKG_DATA_ID}-sharedassets-4" PKG_DATA_SHAREDASSETS_4_DESCRIPTION="$PKG_DATA_DESCRIPTION - shared assets - 4" PKG_DATA_DEPS="$PKG_DATA_DEPS $PKG_DATA_SHAREDASSETS_4_ID" PKG_DATA_STREAMINGASSETS_ID="${PKG_DATA_ID}-streamingassets" PKG_DATA_STREAMINGASSETS_DESCRIPTION="$PKG_DATA_DESCRIPTION - streaming assets" PKG_DATA_DEPS="$PKG_DATA_DEPS $PKG_DATA_STREAMINGASSETS_ID" PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Use persistent storage for user data APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/AppData/LocalLow/Microids/Syberia3' DATA_DIRS="$DATA_DIRS ./userdata" # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-syberia-the-world-before.sh0000755000000000000000000000474414471751340016772 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=20230126.2 GAME_ID='syberia-the-world-before-demo' GAME_NAME='Syberia: The World Before - Prologue' ARCHIVE_BASE_0='setup_syberia_the_world_before_prologue_1.0_(43455).exe' ARCHIVE_BASE_0_MD5='22bd7e18e7cd06ddfbe94d262cef6cd9' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_syberia_the_world_before_prologue_1.0_(43455)-1.bin' ARCHIVE_BASE_0_PART1_MD5='153581ebbcce0a4608c7b700e9f1093c' ARCHIVE_BASE_0_PART1_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='3400000' ARCHIVE_BASE_0_VERSION='1.0-gog43455' ARCHIVE_BASE_0_URL='https://www.gog.com/game/syberia_the_world_before_demo' UNITY3D_NAME='syberiatwbp' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" unityplayer.dll monobleedingedge ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_data/plugins" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" WINE_DIRECT3D_RENDERER='dxvk' APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/AppData/Roaming/SyberiaTWBP' USER_PERSISTENT_FILES=' userdata/save.bin' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Add required user write access to game files USER_PERSISTENT_FILES="$USER_PERSISTENT_FILES ${UNITY3D_NAME}_data/streamingassets/config.bin" # Load common functions target_version='2.20' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-syberia.sh0000755000000000000000000002420314471751340013617 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=20230908.2 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='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='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='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='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='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='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='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='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='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='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='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='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='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' 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' ## Syberia 1 PKG_DATA_ID_SYBERIA1="${GAME_ID_SYBERIA1}-data" # Clean upgrade from packages generated with pre-20210716.5 game script PKG_DATA_PROVIDES_SYBERIA1=' syberia-data' PKG_L10N_ID_SYBERIA1="${GAME_ID_SYBERIA1}-l10n" PKG_L10N_ID_SYBERIA1_RU="${PKG_L10N_ID_SYBERIA1}-ru" PKG_L10N_ID_SYBERIA1_EN="${PKG_L10N_ID_SYBERIA1}-en" PKG_L10N_ID_SYBERIA1_FR="${PKG_L10N_ID_SYBERIA1}-fr" PKG_L10N_PROVIDES_SYBERIA1=" $PKG_L10N_ID_SYBERIA1" PKG_L10N_DESCRIPTION_SYBERIA1_RU='Russian localization' PKG_L10N_DESCRIPTION_SYBERIA1_EN='English localization' PKG_L10N_DESCRIPTION_SYBERIA1_FR='French localization' PKG_BIN_DEPS_SYBERIA1="$PKG_DATA_ID_SYBERIA1 $PKG_L10N_ID_SYBERIA1" # Clean upgrade from packages generated with pre-20210716.5 game script PKG_BIN_PROVIDES_SYBERIA1=' syberia' ## Syberia 2 PKG_DATA_ID_SYBERIA2="${GAME_ID_SYBERIA2}-data" PKG_L10N_ID_SYBERIA2="${GAME_ID_SYBERIA2}-l10n" PKG_L10N_ID_SYBERIA2_EN="${PKG_L10N_ID_SYBERIA2}-en" PKG_L10N_ID_SYBERIA2_FR="${PKG_L10N_ID_SYBERIA2}-fr" PKG_L10N_PROVIDES_SYBERIA2=" $PKG_L10N_ID_SYBERIA2" PKG_L10N_DESCRIPTION_SYBERIA2_EN='English localization' PKG_L10N_DESCRIPTION_SYBERIA2_FR='French localization' PKG_BIN_DEPS_SYBERIA2="$PKG_DATA_ID_SYBERIA2 $PKG_L10N_ID_SYBERIA2" # 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 target_version='2.25' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Syberia 2 - Set up a WINE virtual desktop on first launch, using the current desktop resolution case "$(context_archive)" in ('ARCHIVE_BASE_SYBERIA2_'*) sed_expression='s/.*primary.* ([0-9]+x[0-9]+).*/\\1/p' sed_options="--regexp-extended --silent --expression='$sed_expression'" WINE_WINETRICKS_VERBS="${WINE_WINETRICKS_VERBS:-} vd=\$(LANG=C xrandr | sed $sed_options)" PKG_BIN_DEPENDENCIES_COMMANDS="${PKG_BIN_DEPENDENCIES_COMMANDS:-} sed xrandr" ;; esac # Syberia 2 - Set game language ## APP_REGEDIT has no support for contextual values. APP_REGEDIT=$(context_value 'APP_REGEDIT') # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files 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 "$(context_archive)" in ('ARCHIVE_BASE_SYBERIA1_'*) cat > 'player.ini' <<- EOF 800 600 16 0 BaseCMO.cmo EOF ;; esac # Syberia 2 - Set game language case "$(context_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 icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-symmetry.sh0000755000000000000000000000532514471751340014056 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 bbob # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Symmetry # send your bug reports to contact@dotslashplay.it ### script_version=20230805.5 GAME_ID='symmetry' GAME_NAME='Symmetry' ARCHIVE_BASE_0='setup_symmetry_1.0.2.win_(21945).exe' ARCHIVE_BASE_0_MD5='2a0d1919d41b48b8dc5af3071ad7babc' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='210000' ARCHIVE_BASE_0_VERSION='1.0.2-gog21945' ARCHIVE_BASE_0_URL='https://www.gog.com/game/symmetry' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' *.dll symmetry.exe options.ini' CONTENT_GAME_DATA_FILES=' fonts texts *.chroma *.ogg *.png' APP_WINETRICKS='d3dcompiler_43' USER_PERSISTENT_FILES=' *.ini' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Local/Symmetry' APP_MAIN_EXE='symmetry.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # An inner archive uses the cabinet archive format SCRIPT_DEPS="${SCRIPT_DEPS:-} cabextract" # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ARCHIVE_INNER_CAB="${PLAYIT_WORKDIR}/gamedata/symmetry.cab" ARCHIVE_INNER_CAB_TYPE='cabinet' mv "${PLAYIT_WORKDIR}/gamedata/symmetry.exe" "$ARCHIVE_INNER_CAB" archive_extraction 'ARCHIVE_INNER_CAB' rm "$ARCHIVE_INNER_CAB" ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Prevent inclusion of unwanted files rm --recursive \ '__redist' \ 'commonappdata' \ 'tmp' # Fix file paths find . -type f | while read file_source; do file_destination=$(printf '%s' "$file_source" | sed 's#@#/#g') if [ "$file_destination" != "$file_source" ]; then mkdir --parents "$(dirname "$file_destination")" mv "$file_source" "$file_destination" fi done ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-symphonia.sh0000755000000000000000000000677414471751340014205 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Symphonia # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210901.2 # Set game-specific variables GAME_ID='symphonia' GAME_NAME='Symphonia' ARCHIVE_BASE_0='setup_symphonia_v1.0_(64bit)_(48230).exe' ARCHIVE_BASE_0_MD5='fc24a67551022a8e7e8984814575af15' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1300000' ARCHIVE_BASE_0_VERSION='1.0-gog48230' ARCHIVE_BASE_0_URL='https://www.gog.com/game/symphonia' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='symphonia.exe monobleedingedge unitycrashhandler64.exe unityplayer.dll' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='symphonia_data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='symphonia.exe' APP_MAIN_ICON='symphonia.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="${PKG_DATA_ID} wine" # Use a dedicated log file for the current game session APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a dedicated log file for the current game session mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-symphony.sh0000755000000000000000000000455114471751340014053 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi set -o errexit ### # Symphony # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220206.2 # Set game-specific variables GAME_ID='symphony' GAME_NAME='Symphony' # This installer used to be available for free from Humble Bundle, # during some time-limited event. ARCHIVE_BASE_0='Symphony-Linux-2014-07-15.sh' ARCHIVE_BASE_0_MD5='9218c0b803baf90c34bed2ac1501efa6' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='410000' ARCHIVE_BASE_0_VERSION='2014.07.15-humble1' CONTENT_PATH_DEFAULT='data/noarch' ARCHIVE_DOC_DATA_FILES=' README.linux' ARCHIVE_GAME_BIN32_PATH='data/x86' ARCHIVE_GAME_BIN32_FILES=' lib/libfmodex-4.44.20.so Symphony.bin.x86' ARCHIVE_GAME_BIN64_PATH='data/x86_64' ARCHIVE_GAME_BIN64_FILES=' lib64/libfmodex-4.44.20.so Symphony.bin.x86_64' ARCHIVE_GAME_DATA_FILES=' *.mdf *.mtc Symphony.png Symphony?soundtrack' APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32='Symphony.bin.x86' APP_MAIN_EXE_BIN64='Symphony.bin.x86_64' APP_MAIN_ICON='Symphony.png' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6 libGL.so.1 libSDL2-2.0.so.0" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-system-shock-2.sh0000755000000000000000000001020114471751340014742 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # System Shock 2 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220712.1 GAME_ID='system-shock-2' GAME_NAME='System Shock 2' ARCHIVE_BASE_2='setup_system_shocktm_2_2.48_(31077).exe' ARCHIVE_BASE_2_MD5='b8bbec00aef894db6641e46a0446cbb2' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_SIZE='660000' ARCHIVE_BASE_2_VERSION='2.48-gog31077' ARCHIVE_BASE_2_URL='https://www.gog.com/game/system_shock_2' ARCHIVE_BASE_1='setup_system_shock_2_2.47_nd_(22087).exe' ARCHIVE_BASE_1_MD5='cc2ff390b566364447dc5bd05757fe57' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='670000' ARCHIVE_BASE_1_VERSION='2.47-gog22087' ARCHIVE_BASE_0='setup_system_shock_2_2.46_update_3_(19935).exe' ARCHIVE_BASE_0_MD5='cdafcdea01556eccab899f94503843df' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='670000' ARCHIVE_BASE_0_VERSION='2.46.3-gog19935' ARCHIVE_BASE_OLDPATH_2='setup_system_shock_2_2.46_update_2_(18733).exe' ARCHIVE_BASE_OLDPATH_2_MD5='39fab64451ace95966988bb90c7bb17e' ARCHIVE_BASE_OLDPATH_2_TYPE='innosetup' ARCHIVE_BASE_OLDPATH_2_SIZE='680000' ARCHIVE_BASE_OLDPATH_2_VERSION='2.46.2-gog18733' ARCHIVE_BASE_OLDPATH_1='setup_system_shock_2_2.46_update_(18248).exe' ARCHIVE_BASE_OLDPATH_1_MD5='b76803e4a632b58527eada8993999143' ARCHIVE_BASE_OLDPATH_1_TYPE='innosetup' ARCHIVE_BASE_OLDPATH_1_SIZE='690000' ARCHIVE_BASE_OLDPATH_1_VERSION='2.46.1-gog18248' ARCHIVE_BASE_OLDPATH_0='setup_system_shock_2_2.46_nd_(11004).exe' ARCHIVE_BASE_OLDPATH_0_MD5='98c3d01d53bb2b0dc25d7ed7093a67d3' ARCHIVE_BASE_OLDPATH_0_TYPE='innosetup' ARCHIVE_BASE_OLDPATH_0_SIZE='680000' ARCHIVE_BASE_OLDPATH_0_VERSION='2.46-gog11004' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_OLDPATH='app' ARCHIVE_DOC_DATA_FILES=' *.pdf *.txt *.wri doc editor/*.txt' ARCHIVE_GAME_BIN_FILES=' *.ax *.bnd *.cfg *.crt *.dll *.exe *.osm */*.cfg */*.dll */*.exe' ARCHIVE_GAME_DATA_FILES=' *.bin *.dif *.dml ilist.* patch* binds data sq_scripts' ARCHIVE_GAME0_BIN_PATH="${CONTENT_PATH_DEFAULT}/__support/app" ARCHIVE_GAME0_BIN_PATH_OLDPATH="${CONTENT_PATH_DEFAULT_OLDPATH}/__support/app" ARCHIVE_GAME0_BIN_FILES=' *.cfg *.ini' APP_MAIN_TYPE='wine' APP_MAIN_EXE='ss2.exe' APP_MAIN_EXE_0='shock2.exe' APP_MAIN_EXE_OLDPATH='shock2.exe' APP_MAIN_ICON="${CONTENT_PATH_DEFAULT}/ss2.exe" APP_MAIN_ICON_OLDPATH="${CONTENT_PATH_DEFAULT_OLDPATH}/ss2.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine libGL.so.1" # Use persistent storage for user data DATA_DIRS='current save_0 save_1 save_2 save_3 save_4 save_5 save_6 save_7 save_8 save_9 save_10 save_11 save_12 save_13 save_14' DATA_FILES='*.log *.bnd *.cfg *.ini' # Set up a WINE virtual desktop on first launch, using the current desktop resolution PKG_BIN_DEPS="$PKG_BIN_DEPS winetricks xrandr sed" sed_expression='s/.*primary.* ([0-9]+x[0-9]+).*/\1/p' sed_options="--regexp-extended --silent --expression='$sed_expression'" APP_WINETRICKS="$APP_WINETRICKS vd=\$(LANG=C xrandr | sed $sed_options)" # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_get_from_workdir 'APP_MAIN' # Include game data prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-tag-the-power-of-paint.sh0000755000000000000000000000406014471751340016356 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Tag: The Power of Paint # send your bug reports to contact@dotslashplay.it ### script_version=20231110.3 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='tag-the-power-of-paint' GAME_NAME='Tag: The Power of Paint' ARCHIVE_BASE_0_NAME='Tag_setup.exe' ARCHIVE_BASE_0_MD5='e46933ffbdc3fdf0816b3ebdd6c326d5' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='80000' ARCHIVE_BASE_0_VERSION='1.0-digipen' ARCHIVE_BASE_0_URL='https://arcade.digipen.edu/games/tag-the-power-of-paint' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' fmodex.dll tag.exe' CONTENT_GAME_DATA_FILES=' assets game data' USER_PERSISTENT_FILES=' game data/*.ini game data/*.xml' ## Native d3dx9_35.dll is required to prevent a crash on launch with WINE 8.0: ## Unhandled exception: unimplemented function d3dx9_35.dll.D3DXComputeTangent called in 32-bit code (0x7b012866). WINE_WINETRICKS_VERBS='d3dx9_35' APP_MAIN_EXE='tag.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-tales-of-the-neon-sea.sh0000755000000000000000000001055314471751340016157 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Tales of the Neon Sea # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210711.2 # Set game-specific variables GAME_ID='tales-of-the-neon-sea' GAME_NAME='Tales of the Neon Sea' ARCHIVE_BASE_0='setup_tales_of_the_neon_sea_1.0.85_(45944).exe' ARCHIVE_BASE_0_MD5='4b6f06e51f664378db816ba2b1cf01cc' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='1.0.85-gog45944' ARCHIVE_BASE_0_SIZE='1400000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/tales_of_the_neon_sea' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='talesoftheneonsea.exe monobleedingedge unitycrashhandler64.exe unityplayer.dll' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='talesoftheneonsea_data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='talesoftheneonsea.exe' APP_MAIN_ICON='talesoftheneonsea.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="${PKG_DATA_ID} wine glx" # Use a per-session dedicated file for logs APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a per-session dedicated file for logs mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Use persistent storage for saved games APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/AppData/LocalLow/palmpioneer/TalesoftheNeonSea' DATA_FILES="$DATA_FILES userdata/*.sav" # Use persistent storage for game settings REGISTRY_KEY='HKEY_CURRENT_USER\Software\palmpioneer\TalesoftheNeonSea' REGISTRY_DUMP='registry-dumps/settings.reg' CONFIG_DIRS="${CONFIG_DIRS} ./$(dirname "$REGISTRY_DUMP")" APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Set path for persistent dump of registry keys REGISTRY_KEY="'"$REGISTRY_KEY"'" REGISTRY_DUMP="'"$REGISTRY_DUMP"'" # Load dump of registry keys if [ -e "$REGISTRY_DUMP" ]; then wine regedit.exe "$REGISTRY_DUMP" fi' APP_MAIN_POSTRUN="$APP_MAIN_POSTRUN"' # Dump registry keys wine regedit.exe -E "$REGISTRY_DUMP" "$REGISTRY_KEY"' # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Extract icons PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Clean up temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-talk-to-me.sh0000755000000000000000000000746314471751340014144 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # Talk to Me # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20200925.1 # Set game-specific variables GAME_ID='talk-to-me' GAME_NAME='Talk to Me' ARCHIVES_LIST=' ARCHIVE_ITCH_0' ARCHIVE_ITCH_0='TalkToMe-1.02-pc.zip' ARCHIVE_ITCH_0_URL='https://boop-studios.itch.io/talk-to-me' ARCHIVE_ITCH_0_MD5='9f7ae1c12a4c7bcb6a40aa4157205e4b' ARCHIVE_ITCH_0_SIZE='410000' ARCHIVE_ITCH_0_VERSION='1.02-itch1' ARCHIVE_ITCH_0_TYPE='zip' ARCHIVE_GAME_BIN32_PATH='TalkToMe-1.02-pc' ARCHIVE_GAME_BIN32_FILES='lib/linux-i686 TalkToMe.sh' ARCHIVE_GAME_BIN64_PATH='TalkToMe-1.02-pc' ARCHIVE_GAME_BIN64_FILES='lib/linux-x86_64' ARCHIVE_GAME_DATA_PATH='TalkToMe-1.02-pc' ARCHIVE_GAME_DATA_FILES='lib/pythonlib2.7 game TalkToMe.py renpy' DATA_DIRS='game/saves' APP_MAIN_TYPE='native' APP_MAIN_EXE='TalkToMe.sh' APP_MAIN_ICON='TalkToMe-1.02-pc/TalkToMe.exe' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID glibc libstdc++" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Copy launching script between the binaries packages LAUNCHER_SOURCE="${PKG_BIN32_PATH}${PATH_GAME}/$APP_MAIN_EXE" LAUNCHER_DESTINATION="${PKG_BIN64_PATH}${PATH_GAME}/$APP_MAIN_EXE" mkdir --parents "$(dirname "$LAUNCHER_DESTINATION")" cp "$LAUNCHER_SOURCE" "$LAUNCHER_DESTINATION" # Get icon PKG='PKG_DATA' icons_get_from_workdir 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-tandem-a-tale-of-shadows.sh0000755000000000000000000000500014471751340016634 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Tandem: A Tale of Shadows # send your bug reports to contact@dotslashplay.it ### script_version=20230319.1 GAME_ID='tandem-a-tale-of-shadows' GAME_NAME='Tandem: A Tale of Shadows' ARCHIVE_BASE_0='setup_tandem_a_tale_of_shadows_1.0.1.2_(50868).exe' ARCHIVE_BASE_0_MD5='ec0afb495e85d52304278eb216064dcf' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_tandem_a_tale_of_shadows_1.0.1.2_(50868)-1.bin' ARCHIVE_BASE_0_PART1_MD5='88942a26a5e530f17582eed63cf12a06' ARCHIVE_BASE_0_SIZE='4100000' ARCHIVE_BASE_0_VERSION='1.0.1.2-gog50868' ARCHIVE_BASE_0_URL='https://www.gog.com/game/tandem_a_tale_of_shadows' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' shadows.exe shadows/binaries shadows/plugins engine' CONTENT_GAME_DATA_FILES=' shadows' WINE_DIRECT3D_RENDERER='dxvk' APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/Local/Shadows/Saved' USER_PERSISTENT_DIRECTORIES=' userdata/Config/WindowsNoEditor userdata/SaveGames' APP_MAIN_EXE='shadows.exe' APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=101' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPS_ARCH='gst-plugins-base gst-plugins-good gst-libav' PKG_BIN_DEPS_DEB='gstreamer1.0-plugins-base, gstreamer1.0-plugins-good, gstreamer1.0-libav' PKG_BIN_DEPS_GENTOO='media-libs/gst-plugins-base media-libs/gst-plugins-good media-plugins/gst-plugins-libav' # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-tangledeep.sh0000755000000000000000000000457114471751340014277 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Tangledeep # send your bug reports to contact@dotslashplay.it ### script_version=20231122.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='tangledeep' GAME_NAME='Tangledeep' ARCHIVE_BASE_1_NAME='Tangledeep_124k_LinuxUniversal.zip' ARCHIVE_BASE_1_MD5='b708a12e20816dba8e863290dc5580d0' ARCHIVE_BASE_1_SIZE='730000' ARCHIVE_BASE_1_VERSION='1.24k-humble190410' ARCHIVE_BASE_1_URL='https://www.humblebundle.com/store/tangledeep' ARCHIVE_BASE_0_NAME='tangledeep_linux.zip' ARCHIVE_BASE_0_MD5='ce38aaab0bf4838697fd1f76e30722f1' ARCHIVE_BASE_0_SIZE='690000' ARCHIVE_BASE_0_VERSION='1.23e-humble1' UNITY3D_NAME='Tangledeep' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='linuxuniversal' CONTENT_PATH_DEFAULT_0='tangledeep_123e_linux' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN32' launchers_write set_current_package 'PKG_BIN64' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-teenagent.sh0000755000000000000000000000573514471751340014144 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # 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. ### ### # Teenagent # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20211125.1 # Set game-specific variables GAME_ID='teenagent' GAME_NAME='Teenagent' ARCHIVE_BASE_0='setup_teenagent_1.0_(15595).exe' ARCHIVE_BASE_0_MD5='95126a8eba61b60e12535ebaa020c01b' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='32000' ARCHIVE_BASE_0_VERSION='1.0-gog15595' ARCHIVE_BASE_0_URL='https://www.gog.com/game/teenagent' ARCHIVE_GAME_MAIN_PATH='app' ARCHIVE_GAME_MAIN_FILES='*.res' APP_MAIN_TYPE='scummvm' APP_MAIN_SCUMMID='teenagent' APP_MAIN_ICON='app/goggame-1207658753.ico' PKG_MAIN_DEPS='scummvm' # Load common functions target_version='2.14' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game date extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Include game icon icons_get_from_workdir 'APP_MAIN' # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-tengami.sh0000755000000000000000000000441514471751340013610 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Tengami # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220805.1 GAME_ID='tengami' GAME_NAME='Tengami' # This game archive is no longer distributed, # since Playism store closed down in favour of Steam. ARCHIVE_BASE_0='Tengami Win0113.zip' ARCHIVE_BASE_0_MD5='956f8bff6b8bdef8702e994dea23b8dc' ARCHIVE_BASE_0_SIZE='830000' ARCHIVE_BASE_0_VERSION='0113-playism' CONTENT_PATH_DEFAULT='app' ARCHIVE_GAME_BIN_FILES=' Tengami.exe glew32.DLL SDL2.dll' ARCHIVE_GAME_DATA_FILES=' Binary' APP_MAIN_TYPE='wine' APP_MAIN_EXE='Tengami.exe' APP_MAIN_ICON='Tengami.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine libGL.so.1" PKG_BIN_DEPS_ARCH='lib32-alsa-lib' # Use persistent storage for user data USER_PERSISTENT_DIRECTORIES=' Save' # Load common functions target_version='2.17' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' INNER_ARCHIVE="${PLAYIT_WORKDIR}/gamedata/Tengami Win/Tengami_Game_Win20150113.exe" INNER_ARCHIVE_EXTRACTOR='innoextract' INNER_ARCHIVE_EXTRACTOR_OPTIONS='--progress=1 --silent' archive_extraction 'INNER_ARCHIVE' rm --force "$INNER_ARCHIVE" # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-terra-nil.sh0000755000000000000000000000406414471751340014061 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 briaguya set -o errexit ### # Terra Nil # send your bug reports to contact@dotslashplay.it ### script_version=20230625.1 # Set game-specific variables GAME_ID='terra-nil' GAME_NAME='Terra Nil' ARCHIVE_ITCH='Terra Nil 0.41 Linux.zip' ARCHIVE_ITCH_URL='https://vfqd.itch.io/terra-nil' ARCHIVE_ITCH_MD5='0179d82ebf76eed15c519d419ecdcab1' ARCHIVE_ITCH_SIZE='310000' ARCHIVE_ITCH_VERSION='0.41-itch' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='Terra?Nil.x86_64 Terra?Nil_Data/*/x86_64 UnityPlayer.so' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='Terra?Nil_Data' DATA_DIRS='./logs ./UserData' APP_MAIN_TYPE='native' # shellcheck disable=SC2016 # APP_MAIN_PRERUN='export LANG=C' APP_MAIN_EXE='Terra Nil.x86_64' # shellcheck disable=SC2016 APP_MAIN_OPTIONS='-logFile ./logs/$(date +%F-%R).log' APP_MAIN_ICON='Terra Nil_Data/Resources/UnityPlayer.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID glibc libstdc++" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary files rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-terraria.sh0000755000000000000000000001237414471751340014000 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Terraria # send your bug reports to contact@dotslashplay.it ### script_version=20230125.2 GAME_ID='terraria' GAME_NAME='Terraria' ARCHIVE_BASE_4='terraria_v1_4_3_6_v2_54359.sh' ARCHIVE_BASE_4_MD5='da991dc72abb5763f148dacb543d65ca' ARCHIVE_BASE_4_TYPE='mojosetup' ARCHIVE_BASE_4_SIZE='740000' ARCHIVE_BASE_4_VERSION='1.4.3.6.v2-gog54359' ARCHIVE_BASE_4_URL='https://www.gog.com/game/terraria' ARCHIVE_BASE_3='terraria_v1_4_3_2_51716.sh' ARCHIVE_BASE_3_MD5='fcc729577dd6a4b9ed2429c624cc6562' ARCHIVE_BASE_3_TYPE='mojosetup' ARCHIVE_BASE_3_SIZE='740000' ARCHIVE_BASE_3_VERSION='1.4.3.2-gog51716' ARCHIVE_BASE_2='terraria_english_v1_4_1_2_42620.sh' ARCHIVE_BASE_2_MD5='c84d418147004790d97f47c36a1987ba' ARCHIVE_BASE_2_TYPE='mojosetup' ARCHIVE_BASE_2_SIZE='730000' ARCHIVE_BASE_2_VERSION='1.4.1.2-gog42620' ARCHIVE_BASE_1='terraria_v1_4_1_1_41975.sh' ARCHIVE_BASE_1_MD5='e0158c754f9a7259d28f1cd3c1e1c747' ARCHIVE_BASE_1_TYPE='mojosetup' ARCHIVE_BASE_1_SIZE='720000' ARCHIVE_BASE_1_VERSION='1.4.1.1-gog41975' ARCHIVE_BASE_0='terraria_v1_4_1_0_41944.sh' ARCHIVE_BASE_0_MD5='6d8fd3976503695205e80ba10e8249de' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='720000' ARCHIVE_BASE_0_VERSION='1.4.1.0-gog41944' ARCHIVE_BASE_MULTIARCH_4='terraria_v1_4_0_5_38805.sh' ARCHIVE_BASE_MULTIARCH_4_MD5='88940054c5d5a5f556f0bd955559426a' ARCHIVE_BASE_MULTIARCH_4_TYPE='mojosetup' ARCHIVE_BASE_MULTIARCH_4_SIZE='760000' ARCHIVE_BASE_MULTIARCH_4_VERSION='1.4.0.5-gog38805' ARCHIVE_BASE_MULTIARCH_3='terraria_1_4_0_4_38513.sh' ARCHIVE_BASE_MULTIARCH_3_MD5='5704d188ab8374f0a36e86bad8adb5a1' ARCHIVE_BASE_MULTIARCH_3_TYPE='mojosetup' ARCHIVE_BASE_MULTIARCH_3_SIZE='760000' ARCHIVE_BASE_MULTIARCH_3_VERSION='1.4.0.4-gog38513' ARCHIVE_BASE_MULTIARCH_2='terraria_v1_4_0_2_38384.sh' ARCHIVE_BASE_MULTIARCH_2_MD5='85d3ddcbafdef8412e4f96f3adbc2ed9' ARCHIVE_BASE_MULTIARCH_2_TYPE='mojosetup' ARCHIVE_BASE_MULTIARCH_2_SIZE='760000' ARCHIVE_BASE_MULTIARCH_2_VERSION='1.4.0.2-gog38384' ARCHIVE_BASE_MULTIARCH_1='terraria_en_1_3_5_3_14602.sh' ARCHIVE_BASE_MULTIARCH_1_MD5='c99fdc0ae15dbff1e8147b550db4e31a' ARCHIVE_BASE_MULTIARCH_1_TYPE='mojosetup' ARCHIVE_BASE_MULTIARCH_1_SIZE='490000' ARCHIVE_BASE_MULTIARCH_1_VERSION='1.3.5.3-gog14602' ARCHIVE_BASE_MULTIARCH_0='gog_terraria_2.17.0.21.sh' ARCHIVE_BASE_MULTIARCH_0_MD5='90ec196ec38a7f7a5002f5a8109493cc' ARCHIVE_BASE_MULTIARCH_0_TYPE='mojosetup' ARCHIVE_BASE_MULTIARCH_0_SIZE='490000' ARCHIVE_BASE_MULTIARCH_0_VERSION='1.3.5.3-gog2.17.0.21' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' Content Terraria.png monoconfig monomachineconfig open-folder Terraria.exe TerrariaServer.exe FNA.dll FNA.dll.config SteelSeriesEngineWrapper.dll' CONTENT_DOC_MAIN_FILES=' changelog.txt' APP_MAIN_EXE='Terraria.exe' APP_MAIN_ICON='Terraria.png' APP_SERVER_ID="$GAME_ID-server" APP_SERVER_NAME="$GAME_NAME Server" APP_SERVER_EXE='TerrariaServer.exe' APP_SERVER_ICON='Terraria.png' PACKAGES_LIST='PKG_MAIN' PKG_MAIN_DEPS='mono' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libFAudio.so.0 libGL.so.1 libopenal.so.1 libSDL2-2.0.so.0' PKG_MAIN_DEPENDENCIES_LIBRARIES_MULTIARCH=' libGL.so.1 libopenal.so.1 libSDL2-2.0.so.0' PKG_MAIN_DEPENDENCIES_MONO_LIBRARIES=' mscorlib.dll Mono.Posix.dll Mono.Security.dll System.dll System.Configuration.dll System.Core.dll System.Data.dll System.Drawing.dll System.Numerics.dll System.Runtime.Serialization.dll System.Security.dll System.Windows.Forms.dll System.Xml.dll System.Xml.Linq.dll WindowsBase.dll' # Include shipped libraries that can not be replaced by system ones CONTENT_LIBS_LIBS32_PATH="${CONTENT_PATH_DEFAULT}/lib" CONTENT_LIBS_LIBS32_FILES=' libmojoshader.so' CONTENT_LIBS_LIBS64_PATH="${CONTENT_PATH_DEFAULT}/lib64" CONTENT_LIBS_LIBS64_FILES=' libmojoshader.so libFNA3D.so.0' PACKAGES_LIST='PKG_MAIN PKG_LIBS32 PKG_LIBS64' PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS32_ID="$PKG_LIBS_ID" PKG_LIBS32_ARCH='32' PKG_LIBS64_ID="$PKG_LIBS_ID" PKG_LIBS64_ARCH='64' PKG_MAIN_DEPS="$PKG_MAIN_DEPS $PKG_LIBS_ID" # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" set_standard_permissions . ) # Include game icons icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write ## Always run the server in a terminal server_desktop_file=$(launcher_desktop_filepath 'APP_SERVER') cat >> "$server_desktop_file" << EOF Terminal=true EOF # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-teslagrad.sh0000755000000000000000000000461214471751340014131 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Teslagrad # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220707.1 GAME_ID='teslagrad' GAME_NAME='Teslagrad' ARCHIVE_BASE_0='gog_teslagrad_2.1.0.4.sh' ARCHIVE_BASE_0_MD5='e9683e188615ddd341f8a95a2e8102ed' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_VERSION='1.4-gog2.1.0.4' ARCHIVE_BASE_0_SIZE='1600000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/teslagrad' UNITY3D_NAME='Teslagrad' CONTENT_PATH_DEFAULT='data/noarch/game/Teslagrad_linux32_fullversion_1_4' ARCHIVE_GAME_BIN32_FILES=" ${UNITY3D_NAME} ${UNITY3D_NAME}_Data/Mono ${UNITY3D_NAME}_Data/Plugins" ARCHIVE_GAME_BIN64_PATH="${CONTENT_PATH_DEFAULT}/../Teslagrad_linux64_fullversion_1_4" ARCHIVE_GAME_BIN64_FILES=" ${UNITY3D_NAME} ${UNITY3D_NAME}_Data/Mono ${UNITY3D_NAME}_Data/Plugins" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_TYPE='native' APP_MAIN_EXE="${UNITY3D_NAME}" APP_MAIN_ICON="${UNITY3D_NAME}_Data/Resources/UnityPlayer.png" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6 libGLU.so.1 xcursor" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-tetrobot-and-co.sh0000755000000000000000000000727514471751340015174 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2018-2020, VA # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # 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. ### ### # Tetrobot and Co. # build native packages from the original installers # send your bug reports to dev+playit@indigo.re ### script_version=20200202.1 # Set game-specific variables GAME_ID='tetrobot-and-co' GAME_NAME='Tetrobot and Co.' ARCHIVE_GOG='gog_tetrobot_and_co_2.1.0.6.sh' ARCHIVE_GOG_URL='https://www.gog.com/game/tetrobot_and_co' ARCHIVE_GOG_MD5='2ad2969e64e19d5753f8822e407c148c' ARCHIVE_GOG_SIZE='530000' ARCHIVE_GOG_VERSION='1.2.1-gog2.1.0.6' ARCHIVE_GOG_OLD0='gog_tetrobot_and_co_2.1.0.5.sh' ARCHIVE_GOG_OLD0_MD5='7d75f9813e1ec154158875c8e69e9dc8' ARCHIVE_GOG_OLD0_SIZE='530000' ARCHIVE_GOG_OLD0_VERSION='1.2.1-gog2.1.0.5' ARCHIVE_DOC_DATA_PATH='data/noarch/docs' ARCHIVE_DOC_DATA_FILES='*' ARCHIVE_GAME_BIN_PATH='data/noarch/game' ARCHIVE_GAME_BIN_FILES='Tetrobot?and?Co.x86 Data/Mono' ARCHIVE_GAME_DATA_PATH='data/noarch/game' ARCHIVE_GAME_DATA_FILES='Data' APP_MAIN_TYPE='native' APP_MAIN_EXE='Tetrobot and Co.x86' APP_MAIN_ICON='Data/Resources/UnityPlayer.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID glibc libstdc++ glu glx xcursor" PKG_BIN_DEPS_ARCH='lib32-libx11 lib32-libxext lib32-gcc-libs' PKG_BIN_DEPS_DEB='libx11-6, libxext6, libgcc1' PKG_BIN_DEPS_GENTOO='x11-libs/libX11[abi_x86_32] x11-libs/libXext[abi_x86_32] sys-devel/gcc[abi_x86_32]' # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout rm --recursive "$PLAYIT_WORKDIR/gamedata" # Extract icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-the-7th-guest.sh0000755000000000000000000000632514471751340014573 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2021, Anna Lea # Copyright (c) 2015-2021, Antoine Le Gonidec # 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. ### ### # The 7th Guest # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210503.4 # Set game-specific variables GAME_ID='the-7th-guest' GAME_NAME='The 7th Guest' ARCHIVES_LIST=' ARCHIVE_BASE_0' ARCHIVE_BASE_0='the_7th_guest_en_patch_3_21683.sh' ARCHIVE_BASE_0_MD5='eb2cd92e06e0594297e1d38e3552df6d' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='780000' ARCHIVE_BASE_0_VERSION='1.3-gog21683' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_7th_guest_25th_anniversary_edition' ARCHIVE_DOC_MAIN_PATH='data/noarch/docs' ARCHIVE_DOC_MAIN_FILES='*.pdf *.txt' ARCHIVE_GAME_MAIN_PATH='data/noarch/data' ARCHIVE_GAME_MAIN_FILES='*.gjd *.grv *.rl fat.* sphinx.fnt' APP_MAIN_TYPE='scummvm' APP_MAIN_SCUMMID='t7g' APP_MAIN_ICON='data/noarch/support/icon.png' PACKAGES_LIST='PKG_MAIN' PKG_MAIN_DEPS='scummvm' # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" tolower "$PLAYIT_WORKDIR/gamedata" prepare_package_layout # Get icon icons_get_from_workdir 'APP_MAIN' rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-the-adventures-of-shuggy.sh0000755000000000000000000001037114471751340017026 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # The Adventures of Shuggy # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20200518.2 # Set game-specific variables GAME_ID='the-adventures-of-shuggy' GAME_NAME='The Adventures of Shuggy' ARCHIVES_LIST=' ARCHIVE_GOG_0' ARCHIVE_GOG_0='gog_the_adventures_of_shuggy_2.0.0.2.sh' ARCHIVE_GOG_0_URL='https://www.gog.com/game/the_adventures_of_shuggy' ARCHIVE_GOG_0_MD5='7d031b4cbbbf88beb5bdaa077892215d' ARCHIVE_GOG_0_SIZE='120000' ARCHIVE_GOG_0_VERSION='1.10.10222015-gog2.0.0.2' ARCHIVE_GOG_0_TYPE='mojosetup' ARCHIVE_DOC0_DATA_PATH='data/noarch/docs' ARCHIVE_DOC0_DATA_FILES='*' ARCHIVE_DOC1_DATA_PATH='data/noarch/game' ARCHIVE_DOC1_DATA_FILES='info.txt Linux.README' ARCHIVE_GAME_BIN32_PATH='data/noarch/game' ARCHIVE_GAME_BIN32_FILES='lib Shuggy.bin.x86' ARCHIVE_GAME_BIN64_PATH='data/noarch/game' ARCHIVE_GAME_BIN64_FILES='lib64 Shuggy.bin.x86_64' ARCHIVE_GAME_DATA_PATH='data/noarch/game' ARCHIVE_GAME_DATA_FILES='mono *.dll *.dll.config fx GameFont.xnb gateways gfx growingpains deadunderground maps recordings sfx Shuggy Shuggy.bmp Shuggy.exe text video' APP_MAIN_TYPE='native' # shellcheck disable=SC2016 APP_MAIN_PRERUN='# Work around terminfo Mono bug, cf. https://github.com/mono/mono/issues/6752 export TERM="${TERM%-256color}"' APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Work around Mono unpredictable behaviour with non-US locales export LANG=C' APP_MAIN_EXE_BIN32='Shuggy.bin.x86' APP_MAIN_EXE_BIN64='Shuggy.bin.x86_64' APP_MAIN_ICON='Shuggy.bmp' PACKAGES_LIST='PKG_DATA PKG_BIN32 PKG_BIN64' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID glibc libstdc++ openal sdl2 glx alsa" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout rm --recursive "$PLAYIT_WORKDIR/gamedata" # Get game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-the-adventures-of-wolf-and-hood-a-jigsaw-tale.sh0000755000000000000000000000746114471751340022607 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # The Adventures of Wolf and Hood - A Jigsaw Tale # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210724.1 # Set game-specific variables GAME_ID='the-adventures-of-wolf-and-hood-a-jigsaw-tale' GAME_NAME='The Adventures of Wolf and Hood - A Jigsaw Tale' ARCHIVE_BASE_0='the-adventures-of-wolf-and-hood-a-jigsaw-tale-for-linux.zip' ARCHIVE_BASE_0_MD5='a85bc8da1c3e313fdfe9e920754d982f' ARCHIVE_BASE_0_TYPE='zip' ARCHIVE_BASE_0_SIZE='460000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://stone-baked-games.itch.io/the-adventures-of-wolf-and-hood-a-jigsaw-tale' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='LinuxPlayer_s.debug UnityPlayer_s.debug UnityPlayer.so Wolf?and?Hood?-?a?Jigsaw?Tale.x86_64' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='Wolf?and?Hood?-?a?Jigsaw?Tale_Data' APP_MAIN_TYPE='native' APP_MAIN_EXE='Wolf and Hood - a Jigsaw Tale.x86_64' APP_MAIN_ICON='Wolf and Hood - a Jigsaw Tale_Data/Resources/UnityPlayer.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="${PKG_DATA_ID} glibc" # Use a per-session dedicated file for logs APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a per-session dedicated file for logs mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" set_standard_permissions "$PLAYIT_WORKDIR/gamedata" prepare_package_layout # Get game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "${PLAYIT_WORKDIR}" # Print instructions print_instructions exit 0 games/play-the-aquatic-adventure-of-the-last-human.sh0000755000000000000000000000521214471751340021607 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # The Aquatic Adventure of the Last Human # send your bug reports to contact@dotslashplay.it ### script_version=20230818.1 GAME_ID='the-aquatic-adventure-of-the-last-human' GAME_NAME='The Aquatic Adventure of the Last Human' ARCHIVE_BASE_0='The Aquatic Adventure of the Last Human.zip' ARCHIVE_BASE_0_MD5='4699f7e0abfde9ded6addc432226b36f' ARCHIVE_BASE_0_EXTRACTOR='unar' # unzip fails on this archive ARCHIVE_BASE_0_SIZE='830000' ARCHIVE_BASE_0_VERSION='0.9.1-itch1' ARCHIVE_BASE_0_URL='https://ycjy.itch.io/aquaticadventure' CONTENT_PATH_DEFAULT='linux' CONTENT_GAME_BIN_FILES=' TheAquaticAdventureOfTheLastHuman game.ini' CONTENT_GAME_DATA_FILES=' assets game.unx' CONTENT_DOC_DATA_FILES=' sound?credits.txt' APP_MAIN_EXE='TheAquaticAdventureOfTheLastHuman' APP_MAIN_ICON='assets/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libcurl.so.4+CURL_OPENSSL_3 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libssl.so.1.0.0 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 libz.so.1' # Work around Mesa-related startup crash # cf. https://gitlab.freedesktop.org/mesa/mesa/issues/1310 APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Work around Mesa-related startup crash # cf. https://gitlab.freedesktop.org/mesa/mesa/issues/1310 export radeonsi_sync_compile=true' # Load common functions 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction_default rm "${PLAYIT_WORKDIR}/gamedata/mac.rar" rm "${PLAYIT_WORKDIR}/gamedata/windows.rar" ARCHIVE_INNER="${PLAYIT_WORKDIR}/gamedata/linux.rar" archive_extraction 'ARCHIVE_INNER' rm "$ARCHIVE_INNER" # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-bards-tale-4.sh0000755000000000000000000001400414471751340015114 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # The Bard's Tale 4 # send your bug reports to contact@dotslashplay.it ### script_version=20231110.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='the-bards-tale-4' GAME_NAME='The Bardʼs Tale Ⅳ' ARCHIVE_BASE_0_NAME='the_bard_s_tale_iv_director_s_cut_update_3_34066.sh' ARCHIVE_BASE_0_MD5='695a04c36fe4a5ff2a53b93062151047' ARCHIVE_BASE_0_SIZE='39000000' ARCHIVE_BASE_0_VERSION='4.20.1-gog34066' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_bards_tale_iv_directors_cut_standard_edition' UNREALENGINE4_NAME='BardsTale4' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_DATA_MOVIES_1_FILES=' BardsTale4/Content/Movies/*.mp3 BardsTale4/Content/Movies/*.mp4 BardsTale4/Content/Movies/*.wav BardsTale4/Content/Movies/Epilogue_Credits BardsTale4/Content/Movies/PoMMovies' CONTENT_GAME_DATA_MOVIES_2_FILES=' BardsTale4/Content/Movies/Anamatics BardsTale4/Content/Movies/BardIV_FireLogo_Img_Sequence BardsTale4/Content/Movies/BardIV_InxileLogo_Img_Sequence BardsTale4/Content/Movies/BardIV_LegalScreen_Img_Sequence BardsTale4/Content/Movies/Opening_Img_Sequence BardsTale4/Content/Movies/SpecialFeatures' CONTENT_GAME_DATA_PAKS_1_FILES=' BardsTale4/Content/Paks/pakchunk0-LinuxNoEditor.pak.split00 BardsTale4/Content/Paks/pakchunk0-LinuxNoEditor.pak.split01 BardsTale4/Content/Paks/pakchunk1-LinuxNoEditor.pak' CONTENT_GAME_DATA_PAKS_2_FILES=' BardsTale4/Content/Paks/pakchunk2-LinuxNoEditor.pak.split00 BardsTale4/Content/Paks/pakchunk2-LinuxNoEditor.pak.split01 BardsTale4/Content/Paks/pakchunk50-LinuxNoEditor.pak BardsTale4/Content/Paks/pakchunk60-LinuxNoEditor.pak BardsTale4/Content/Paks/pakchunk70-LinuxNoEditor.pak BardsTale4/Content/Paks/pakchunk80-LinuxNoEditor.pak BardsTale4/Content/Paks/pakchunk90-LinuxNoEditor.pak BardsTale4/Content/Paks/pakchunk100-LinuxNoEditor.pak BardsTale4/Content/Paks/pakchunk110-LinuxNoEditor.pak BardsTale4/Content/Paks/pakchunk120-LinuxNoEditor.pak BardsTale4/Content/Paks/pakchunk130-LinuxNoEditor.pak BardsTale4/Content/Paks/pakchunk140-LinuxNoEditor.pak BardsTale4/Content/Paks/pakchunk150-LinuxNoEditor.pak' APP_MAIN_EXE="${UNREALENGINE4_NAME}/Binaries/Linux/${UNREALENGINE4_NAME}-Linux-Shipping" ## The following hacks can not be avoided by forcing the use of system-provided SDL, ## because the game crashes on launch when it is used instead of the shipped SDL build. ### The game crashes on launch when the Wayland backend of SDL is used. APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' # The game crashes on launch when the Wayland backend of SDL is used if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' ### It seems that the shipped SDL build does not support the alsa backend. ### When it is used, no error is triggered but no sound is played either. APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' # The game does not output any sound when the ALSA backend of SDL is used if [ "${SDL_AUDIODRIVER:-}" = "alsa" ]; then unset SDL_AUDIODRIVER fi ' PACKAGES_LIST=' PKG_BIN PKG_DATA_MOVIES_1 PKG_DATA_MOVIES_2 PKG_DATA_PAKS_1 PKG_DATA_PAKS_2 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_MOVIES_ID="${PKG_DATA_ID}-movies" PKG_DATA_MOVIES_1_ID="${PKG_DATA_MOVIES_ID}-1" PKG_DATA_MOVIES_2_ID="${PKG_DATA_MOVIES_ID}-2" PKG_DATA_MOVIES_DESCRIPTION="$PKG_DATA_DESCRIPTION - movies" PKG_DATA_MOVIES_1_DESCRIPTION="$PKG_DATA_MOVIES_DESCRIPTION - 1" PKG_DATA_MOVIES_2_DESCRIPTION="$PKG_DATA_MOVIES_DESCRIPTION - 2" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_MOVIES_1_ID $PKG_DATA_MOVIES_2_ID" PKG_DATA_PAKS_ID="${PKG_DATA_ID}-paks" PKG_DATA_PAKS_1_ID="${PKG_DATA_PAKS_ID}-1" PKG_DATA_PAKS_2_ID="${PKG_DATA_PAKS_ID}-2" PKG_DATA_PAKS_DESCRIPTION="$PKG_DATA_DESCRIPTION - paks" PKG_DATA_PAKS_1_DESCRIPTION="$PKG_DATA_PAKS_DESCRIPTION - 1" PKG_DATA_PAKS_2_DESCRIPTION="$PKG_DATA_PAKS_DESCRIPTION - 2" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_PAKS_1_ID $PKG_DATA_PAKS_2_ID" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Check for the presence of extra optional archives ARCHIVE_OPTIONAL_ICONS_0_NAME='the-bards-tale-4_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_0_URL='https://downloads.dotslashplay.it/games/the-bards-tale-4' ARCHIVE_OPTIONAL_ICONS_0_MD5='aede8ef2c559ecf8e69e1f5ffef7432d' archive_initialize_optional \ 'ARCHIVE_ICONS' \ 'ARCHIVE_OPTIONAL_ICONS_0' # Set the package scripts rebuilding the full files from their chunks for huge_file in \ "$(unrealengine4_name)/Content/Paks/pakchunk0-LinuxNoEditor.pak" \ "$(unrealengine4_name)/Content/Paks/pakchunk2-LinuxNoEditor.pak" do PKG_DATA_POSTINST_RUN="$(package_postinst_actions 'PKG_DATA') $(huge_file_concatenate "$huge_file")" PKG_DATA_PRERM_RUN="$(package_prerm_actions 'PKG_DATA') $(huge_file_delete "$huge_file")" done # Extract game data archive_extraction_default if archive_is_available 'ARCHIVE_ICONS'; then archive_extraction 'ARCHIVE_ICONS' fi # Include game data if archive_is_available 'ARCHIVE_ICONS'; then CONTENT_ICONS_DATA_PATH='.' CONTENT_ICONS_DATA_FILES=' 16x16 32x32 64x64 128x128 256x256' content_inclusion 'ICONS_DATA' 'PKG_DATA' "$(path_icons)" else APP_MAIN_ICON='../support/icon.png' set_current_package 'PKG_DATA' icons_inclusion fi content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-binding-of-isaac-expansions.sh0000755000000000000000000000722514471751340020223 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 HS-157 # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # The Binding of Isaac expansions: # - Afterbirth # - Afterbirth + # - Repentance # send your bug reports to contact@dotslashplay.it ### script_version=20230723.1 GAME_ID='the-binding-of-isaac' GAME_NAME='The Binding of Isaac' EXPANSION_ID_AFTERBIRTH='afterbirth' EXPANSION_NAME_AFTERBIRTH='Afterbirth' EXPANSION_ID_AFTERBIRTHPLUS='afterbirth-plus' EXPANSION_NAME_AFTERBIRTHPLUS='Afterbirth +' EXPANSION_ID_REPENTANCE='repentance' EXPANSION_NAME_REPENTANCE='Repentance' # Archives ## Afterbirth ARCHIVE_BASE_AFTERBIRTH_1='setup_the_binding_of_isaac_afterbirth_1.0.1.0_(54718).exe' ARCHIVE_BASE_AFTERBIRTH_1_MD5='9cdb71b69a9b25e69df3f9dcdab2de9f' ARCHIVE_BASE_AFTERBIRTH_1_TYPE='innosetup' ARCHIVE_BASE_AFTERBIRTH_1_SIZE='170000' ARCHIVE_BASE_AFTERBIRTH_1_VERSION='1.0.1.0-gog54718' ARCHIVE_BASE_AFTERBIRTH_1_URL='https://www.gog.com/game/the_binding_of_isaac_afterbirth' ARCHIVE_BASE_AFTERBIRTH_0='setup_the_binding_of_isaac_afterbirth_1.0.0.0_(52089).exe' ARCHIVE_BASE_AFTERBIRTH_0_MD5='f72a7c3d8f23627b6e4eaf1b0e71c304' ARCHIVE_BASE_AFTERBIRTH_0_TYPE='innosetup' ARCHIVE_BASE_AFTERBIRTH_0_SIZE='170000' ARCHIVE_BASE_AFTERBIRTH_0_VERSION='1.0.0.0-gog52089' ## Afterbirth + ARCHIVE_BASE_AFTERBIRTHPLUS_1='setup_the_binding_of_isaac_afterbirth__1.0.1.0_(54718).exe' ARCHIVE_BASE_AFTERBIRTHPLUS_1_MD5='23558f5eb97895659b5e594595aad247' ARCHIVE_BASE_AFTERBIRTHPLUS_1_TYPE='innosetup' ARCHIVE_BASE_AFTERBIRTHPLUS_1_SIZE='110000' ARCHIVE_BASE_AFTERBIRTHPLUS_1_VERSION='1.0.1.0-gog54718' ARCHIVE_BASE_AFTERBIRTHPLUS_1_URL='https://www.gog.com/game/the_binding_of_isaac_afterbirth_plus' ARCHIVE_BASE_AFTERBIRTHPLUS_0='setup_the_binding_of_isaac_afterbirth__1.0.0.0_(52089).exe' ARCHIVE_BASE_AFTERBIRTHPLUS_0_MD5='ca0d4b261b16ffca26d7f2f723bd8031' ARCHIVE_BASE_AFTERBIRTHPLUS_0_TYPE='innosetup' ARCHIVE_BASE_AFTERBIRTHPLUS_0_SIZE='110000' ARCHIVE_BASE_AFTERBIRTHPLUS_0_VERSION='1.0.0.0-gog52089' ## Repentance ARCHIVE_BASE_REPENTANCE_1='setup_the_binding_of_isaac_repentance_1.0.1.0_(54718).exe' ARCHIVE_BASE_REPENTANCE_1_MD5='b8eeaeb46b3b2ddb5aa6e04729d8085e' ARCHIVE_BASE_REPENTANCE_1_TYPE='innosetup' ARCHIVE_BASE_REPENTANCE_1_SIZE='490000' ARCHIVE_BASE_REPENTANCE_1_VERSION='1.0.1.0-gog54718' ARCHIVE_BASE_REPENTANCE_1_URL='https://www.gog.com/game/the_binding_of_isaac_repentance' ARCHIVE_BASE_REPENTANCE_0='setup_the_binding_of_isaac_repentance_1.0.0.0_(52089).exe' ARCHIVE_BASE_REPENTANCE_0_MD5='b569c8fce392e5ec1083e5418d9a36d0' ARCHIVE_BASE_REPENTANCE_0_TYPE='innosetup' ARCHIVE_BASE_REPENTANCE_0_SIZE='440000' ARCHIVE_BASE_REPENTANCE_0_VERSION='1.0.0.0-gog52089' CONTENT_GAME_MAIN_PATH='.' CONTENT_GAME_MAIN_FILES=' resources' PKG_MAIN_DEPS="$GAME_ID" # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-binding-of-isaac.sh0000755000000000000000000000530514471751340016033 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 HS-157 # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The Binding of Isaac # send your bug reports to contact@dotslashplay.it ### script_version=20230723.3 GAME_ID='the-binding-of-isaac' GAME_NAME='The Binding of Isaac: Rebirth' ARCHIVE_BASE_1='setup_the_binding_of_isaac_rebirth_1.0.1.0_(54718).exe' ARCHIVE_BASE_1_MD5='2e30949d6bc26c25692403daec6de446' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='380000' ARCHIVE_BASE_1_VERSION='1.0.1.0-gog54718' ARCHIVE_BASE_1_URL='https://www.gog.com/game/the_binding_of_isaac_rebirth' ARCHIVE_BASE_0='setup_the_binding_of_isaac_rebirth_1.0.0.0_(52089).exe' ARCHIVE_BASE_0_MD5='b65dc20d9f6cef55fdecd39a1a59380c' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='360000' ARCHIVE_BASE_0_VERSION='1.0.0.0-gog52089' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' *.dll *.exe' CONTENT_GAME_DATA_FILES=' resources' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/My Games/Binding of Isaac Rebirth (Galaxy) users/${USER}/Documents/My Games/Binding of Isaac Afterbirth (Galaxy) users/${USER}/Documents/My Games/Binding of Isaac Afterbirth+ (Galaxy) users/${USER}/Documents/My Games/Binding of Isaac Repentance (Galaxy)' APP_MAIN_EXE='isaac-ng_launcher.exe' APP_MAIN_ICON='isaac-ng_rebirth.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Install required OpenAL32.dll library APP_WINETRICKS="${APP_WINETRICKS:-} openal" # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Prevent the inclusion of unwanted files rm --recursive \ '__redist' \ 'commonappdata' \ 'tmp' ) # Include game icon PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-book-of-unwritten-tales-1.sh0000755000000000000000000001006614471751340017576 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 Critter Chronicles # send your bug reports to contact@dotslashplay.it ### script_version=20230103.1 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='setup_book_of_unwritten_tales_2.0.0.4.exe' ARCHIVE_BASE_0_MD5='984e8f16cc04a2a27aea8b0d7ada1c1e' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_book_of_unwritten_tales_2.0.0.4-1.bin' ARCHIVE_BASE_0_PART1_MD5='4ea0eccb7ca2f77c301e79412ff1e214' ARCHIVE_BASE_0_PART2='setup_book_of_unwritten_tales_2.0.0.4-2.bin' ARCHIVE_BASE_0_PART2_MD5='95e52d38b6c1548ac311284c539a4c52' ARCHIVE_BASE_0_PART3='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='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=' bout.exe critterchronicles.exe 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 plugins.cfg resources.cfg' CONTENT_GAME_L10N_FILES=' kagedata/lang' CONTENT_GAME_DATA_FILES=' data kagedata kapedata config.xml exportedfunctions.lua' APP_MAIN_EXE='bout.exe' APP_MAIN_EXE_CRITTER='critterchronicles.exe' APP_WINE_LINK_DIRS=' saves:users/${USER}/My Documents/Book of Unwritten Tales/savegames' APP_WINE_LINK_DIRS_CRITTER=' saves:users/${USER}/My Documents/Unwritten Tales - Critter Chronicles/savegames' USER_PERSISTENT_DIRECTORIES=' saves' PACKAGES_LIST='PKG_BIN 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' PKG_BIN_ID="$GAME_ID" PKG_BIN_ID_CRITTER="$GAME_ID_CRITTER" PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_L10N_ID $PKG_DATA_ID" PKG_BIN_DEPS_CRITTER="$PKG_L10N_ID_CRITTER $PKG_DATA_ID_CRITTER" # Work around some texture display issues APP_WINETRICKS="$APP_WINETRICKS d3dcompiler_47" # Load common functions target_version='2.20' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' APP_MAIN_EXE=$(get_context_specific_value 'archive' 'APP_MAIN_EXE') icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' APP_MAIN_EXE=$(get_context_specific_value 'archive' 'APP_MAIN_EXE') APP_WINE_LINK_DIRS=$(get_context_specific_value 'archive' 'APP_WINE_LINK_DIRS') launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-book-of-unwritten-tales-2.sh0000755000000000000000000000632214471751340017577 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=20230623.2 GAME_ID='the-book-of-unwritten-tales-2' GAME_NAME='The Book of Unwritten Tales 2' ARCHIVE_BASE_0='gog_the_book_of_unwritten_tales_2_2.0.0.2.sh' ARCHIVE_BASE_0_MD5='f2b0ca23d7bfc1f7e22fa6f990fc527c' ARCHIVE_BASE_0_SIZE='13000000' 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' # Improved Unity3D plugins integration can not be used, # because the plugins are not provided in the standard path. UNITY3D_NAME='BouT2' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN32_FILES=" Linux/${UNITY3D_NAME}.x86 Linux/${UNITY3D_NAME}_Data/Mono/x86 Linux/${UNITY3D_NAME}_Data/Plugins/x86" CONTENT_GAME_BIN64_FILES=" Linux/${UNITY3D_NAME}.x86_64 Linux/${UNITY3D_NAME}_Data/Mono/x86_64 Linux/${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_GAME_SCENES_FILES=" data/episode_0?/Scenes" CONTENT_GAME_DATA_FILES=" data qt.conf Linux/${UNITY3D_NAME}_Data" APP_MAIN_EXE_BIN32="Linux/${UNITY3D_NAME}.x86" APP_MAIN_EXE_BIN64="Linux/${UNITY3D_NAME}.x86_64" APP_MAIN_ICON="Linux/${UNITY3D_NAME}_Data/Resources/UnityPlayer.png" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_SCENES PKG_DATA' PKG_SCENES_ID="${GAME_ID}-scenes" PKG_SCENES_DESCRIPTION='scenes' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID $PKG_SCENES" PKG_BIN32_DEPS="$PKG_BIN_DEPS_DEB" PKG_BIN64_DEPS="$PKG_BIN_DEPS_DEB" 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_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-bridge.sh0000755000000000000000000000444314471751340014177 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # The Bridge # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220708.1 GAME_ID='the-bridge' GAME_NAME='The Bridge' ARCHIVE_BASE_0='TheBridgeLinux_1410196636.zip' ARCHIVE_BASE_0_MD5='6d3f5e7ff8d10d47f04ffabb8b9a031e' ARCHIVE_BASE_0_SIZE='310000' ARCHIVE_BASE_0_VERSION='1.0-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/the-bridge' UNITY3D_NAME='TheBridge' CONTENT_PATH_DEFAULT='TheBridgeLinux/TheBridge' ARCHIVE_GAME_BIN_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono ${UNITY3D_NAME}_Data/Plugins" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_TYPE='native' APP_MAIN_EXE="${UNITY3D_NAME}.x86" APP_MAIN_ICON="${UNITY3D_NAME}_Data/Resources/UnityPlayer.png" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID libGLU.so.1 xcursor libxrandr" # Use a dedicated log file for the current game session APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a dedicated log file for the current game session mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-the-cat-machine.sh0000755000000000000000000000407314471751340015113 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The Cat Machine # send your bug reports to contact@dotslashplay.it ### script_version=20231110.7 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='the-cat-machine' GAME_NAME='The Cat Machine' ARCHIVE_BASE_0_NAME='TheCatMachineLinux.zip' ARCHIVE_BASE_0_MD5='5f9faf2a56be1fa244d7d795831cbdae' ARCHIVE_BASE_0_SIZE='380000' ARCHIVE_BASE_0_VERSION='1.0-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/the-cat-machine' UNITY3D_NAME='TheCatMachine' UNITY3D_PLUGINS=' ScreenSelector.so' ## The game does not start if the CSteamworks library is not provided. UNITY3D_PLUGINS="${UNITY3D_PLUGINS:-} libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='.' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-coma-1.sh0000755000000000000000000000756414471751340014027 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # The Coma 1 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210518.3 # Set game-specific variables GAME_ID='the-coma-1' GAME_NAME='The Coma' ARCHIVE_BASE_0='the_coma_recut_2_1_5_gog_40905.sh' ARCHIVE_BASE_0_MD5='05d35196c4a5ca8dce3e223d364fa139' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='1400000' ARCHIVE_BASE_0_VERSION='2.1.5-gog40905' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_coma_recut' ARCHIVE_DOC_DATA_PATH='data/noarch/docs' ARCHIVE_DOC_DATA_FILES='*' ARCHIVE_GAME_BIN_PATH='data/noarch/game' ARCHIVE_GAME_BIN_FILES='TheComaRecut.x86_64 TheComaRecut_Data/MonoBleedingEdge TheComaRecut_Data/Plugins' ARCHIVE_GAME_DATA_PATH='data/noarch/game' ARCHIVE_GAME_DATA_FILES='TheComaRecut_Data' APP_MAIN_TYPE='native' APP_MAIN_EXE='TheComaRecut.x86_64' APP_MAIN_ICON='TheComaRecut_Data/Resources/UnityPlayer.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="${PKG_DATA_ID} glibc libstdc++ gtk2 libz.so.1 libgdk_pixbuf-2.0.so.0 libgobject-2.0.so.0 libglib-2.0.so.0" # Use a per-session dedicated file for logs APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a per-session dedicated file for logs mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Work around Unity3D poor support for non-US locales APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Work around Unity3D poor support for non-US locales export LANG=C' # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-the-council.sh0000755000000000000000000000572014471751340014376 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The Council # send your bug reports to contact@dotslashplay.it ### script_version=20230730.7 GAME_ID='the-council' GAME_NAME='The Council' ARCHIVE_BASE_0='setup_the_council_0.9.5.6359_(33875).exe' ARCHIVE_BASE_0_MD5='7e49e444eaf67a95698dc1929979754a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_the_council_0.9.5.6359_(33875)-1.bin' ARCHIVE_BASE_0_PART1_MD5='8567d5d7bb55af6b5a13b57144d32342' ARCHIVE_BASE_0_PART2='setup_the_council_0.9.5.6359_(33875)-2.bin' ARCHIVE_BASE_0_PART2_MD5='2946c8da1f85f498da17661b159bfe4f' ARCHIVE_BASE_0_PART3='setup_the_council_0.9.5.6359_(33875)-3.bin' ARCHIVE_BASE_0_PART3_MD5='6d070987d39d722d3ceb1c7475f88c62' ARCHIVE_BASE_0_SIZE='24000000' ARCHIVE_BASE_0_VERSION='0.9.5.6359-gog33875' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_council' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' library crashreport.exe the council.exe *.dll' CONTENT_GAME_DATA_EPISODES_FILES=' data/packages/episode_*' CONTENT_GAME_DATA_SOUND_FILES=' data/sound' CONTENT_GAME_DATA_FILES=' defaultparameter data packagelist' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/My Games/The Council' APP_MAIN_EXE='the council.exe' PACKAGES_LIST='PKG_BIN PKG_DATA_EPISODES PKG_DATA_SOUND PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_EPISODES_ID="${PKG_DATA_ID}-episodes" PKG_DATA_EPISODES_DESCRIPTION="$PKG_DATA_DESCRIPTION - episodes" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_EPISODES_ID" PKG_DATA_SOUND_ID="${PKG_DATA_ID}-sound" PKG_DATA_SOUND_DESCRIPTION="$PKG_DATA_DESCRIPTION - sound" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_SOUND_ID" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Prevent inclusion of unwanted files rm --recursive \ '__redist' \ 'commonappdata' \ 'tmp' ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-dark-eye-chains-of-satinav.sh0000755000000000000000000000447614471751340017762 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 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=20231017.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-dark-eye-memoria.sh0000755000000000000000000000601114471751340016064 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # The Dark Eye: Memoria # send your bug reports to contact@dotslashplay.it ### script_version=20231017.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-darkside-detective.sh0000755000000000000000000000405614471751340016503 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi set -o errexit ### # The Darkside Detective # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220628.1 # Set game-specific variables GAME_ID='the-darkside-detective' GAME_NAME='The Darkside Detective' ARCHIVE_BASE_0='the_darkside_detective_2_3_0_1448r_49520.sh' ARCHIVE_BASE_0_MD5='df6e6205d0d4fc64fc46f5be68f1afce' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='1200000' ARCHIVE_BASE_0_VERSION='2.3.0.1448r-gog49520' ARCHIVE_BASE_0_URL='https://www.gog.com/en/game/the_darkside_detective' UNITY3D_NAME='thedarksidedetective' CONTENT_PATH_DEFAULT='data/noarch/game' ARCHIVE_GAME_BIN_FILES=" LinuxPlayer_s.debug UnityPlayer_s.debug UnityPlayer.so ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/MonoBleedingEdge" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6" # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" # Include game files prepare_package_layout # Delete temporary files rm --recursive "$PLAYIT_WORKDIR/gamedata" # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-the-deer-god.sh0000755000000000000000000001001114471751340014415 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # The Deer God # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20211229.1 # Set game-specific variables GAME_ID='the-deer-god' GAME_NAME='The Deer God' ARCHIVE_BASE_1='DeerGodBeta02.zip' ARCHIVE_BASE_1_MD5='84dda0d5e6708ddb5e7ceee307671f2c' ARCHIVE_BASE_1_SIZE='150000' ARCHIVE_BASE_1_VERSION='1.0~beta2-itch' ARCHIVE_BASE_1_URL='https://marumari.itch.io/the-deer-god' ARCHIVE_BASE_0='thedeergod_beta1.zip' ARCHIVE_BASE_0_MD5='e722cdbd4cc93c5d655735c6a1285cc0' ARCHIVE_BASE_0_SIZE='140000' ARCHIVE_BASE_0_VERSION='1.0~beta1-itch' ARCHIVE_BASE_0_URL='https://marumari.itch.io/the-deer-god' UNITY3D_NAME='DeerGodBeta' CONTENT_PATH_DEFAULT='.' ARCHIVE_GAME_BIN_FILES=" ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_Data/Mono ${UNITY3D_NAME}_Data/Plugins" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" APP_MAIN_ICON="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Use persistent storage for user data APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/AppData/LocalLow/Cinopt Studios LLC/The Deer God' DATA_DIRS="$DATA_DIRS ./userdata" # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" # Enforce a consistent Unity3D name ( content_path=$(content_path_default) unity3d_name=$(unity3d_name) old_name='thedeergod_beta1' cd "${PLAYIT_WORKDIR}/gamedata/${content_path}" if [ -e "${old_name}.exe" ]; then mv "${old_name}.exe" "${unity3d_name}.exe" fi if [ -e "${old_name}_Data" ]; then mv "${old_name}_Data" "${unity3d_name}_Data" fi ) # Include game data prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-the-difference-between-us.sh0000755000000000000000000000766614471751340017123 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # The Difference between Us # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20201019.1 # Set game-specific variables GAME_ID='the-difference-between-us' GAME_NAME='The Difference between Us' ARCHIVES_LIST=' ARCHIVE_ITCH_0' ARCHIVE_ITCH_0='The-Difference-Between-Us-linux.tar.bz2' ARCHIVE_ITCH_0_URL='https://robindaydream.itch.io/the-difference-between-us' ARCHIVE_ITCH_0_MD5='7888797ccda89452a2543ba35c46083c' ARCHIVE_ITCH_0_SIZE='64000' ARCHIVE_ITCH_0_VERSION='1.0-itch' ARCHIVE_ITCH_0_TYPE='tar' ARCHIVE_DOC_DATA_PATH='The-Difference-Between-Us-linux' ARCHIVE_DOC_DATA_FILES='README.html' ARCHIVE_GAME_BIN32_PATH='The-Difference-Between-Us-linux' ARCHIVE_GAME_BIN32_FILES='lib/linux-i686 The-Difference-Between-Us.sh' ARCHIVE_GAME_BIN64_PATH='The-Difference-Between-Us-linux' ARCHIVE_GAME_BIN64_FILES='lib/linux-x86_64' ARCHIVE_GAME_DATA_PATH='The-Difference-Between-Us-linux' ARCHIVE_GAME_DATA_FILES='lib/pythonlib2.7 game The-Difference-Between-Us.py renpy' APP_MAIN_TYPE='native' APP_MAIN_EXE='The-Difference-Between-Us.sh' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID glibc libstdc++" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Copy launching script between the binaries packages LAUNCHER_SOURCE="${PKG_BIN32_PATH}${PATH_GAME}/$APP_MAIN_EXE" LAUNCHER_DESTINATION="${PKG_BIN64_PATH}${PATH_GAME}/$APP_MAIN_EXE" mkdir --parents "$(dirname "$LAUNCHER_DESTINATION")" cp "$LAUNCHER_SOURCE" "$LAUNCHER_DESTINATION" # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-the-dig.sh0000755000000000000000000001027314471751340013504 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2018-2020, Sébastien “Elzen” Dufromentel # 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. ### ### # The Dig # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20200307.1 # Set game-specific variables GAME_ID='the-dig' GAME_NAME='The Dig' ARCHIVES_LIST='ARCHIVE_GOG_EN ARCHIVE_GOG_FR' ARCHIVE_GOG_EN='the_dig_en_gog_2_20100.sh' ARCHIVE_GOG_EN_URL='https://www.gog.com/game/the_dig' ARCHIVE_GOG_EN_MD5='0fd830de17757f78dc9865dd7c06c785' ARCHIVE_GOG_EN_SIZE='760000' ARCHIVE_GOG_EN_VERSION='1.0-gog20100' ARCHIVE_GOG_EN_TYPE='mojosetup' ARCHIVE_GOG_FR='the_dig_fr_gog_2_20100.sh' ARCHIVE_GOG_FR_URL='https://www.gog.com/game/the_dig' ARCHIVE_GOG_FR_MD5='b4c2b87f0305a82bb0fa805b01b014f1' ARCHIVE_GOG_FR_SIZE='760000' ARCHIVE_GOG_FR_VERSION='1.0-gog20100' ARCHIVE_GOG_FR_TYPE='mojosetup' ARCHIVE_DOC_L10N_PATH='data/noarch/docs' ARCHIVE_DOC_L10N_FILES='*.pdf *.txt' ARCHIVE_DOC0_L10N_PATH_GOG_EN='data/noarch/docs/english' ARCHIVE_DOC0_L10N_PATH_GOG_FR='data/noarch/docs/french' ARCHIVE_DOC0_L10N_FILES='*.pdf' ARCHIVE_GAME_L10N_PATH='data/noarch/data' ARCHIVE_GAME_L10N_FILES='digvoice.bun language.bnd video/digtxt.trs video/sq14sc14.san video/sq14sc22.san video/sq17.san video/sq18b.san video/sq18sc15.san video/sq1.san video/sq2.san video/sq3.san video/sq4.san video/sq8a.san video/sq8b.san video/sq8c.san video/sq9.san' ARCHIVE_GAME_MAIN_PATH='data/noarch/data' ARCHIVE_GAME_MAIN_FILES='dig.la0 dig.la1 digmusic.bun video' APP_MAIN_TYPE='scummvm' APP_MAIN_SCUMMID='dig' APP_MAIN_ICON='data/noarch/support/icon.png' PACKAGES_LIST='PKG_L10N PKG_MAIN' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_ID_GOG_EN="${PKG_L10N_ID}-en" PKG_L10N_ID_GOG_FR="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDE="$PKG_L10N_ID" PKG_L10N_DESCRIPTION_GOG_EN='English localization' PKG_L10N_DESCRIPTION_GOG_FR='French localization' PKG_MAIN_DEPS="$PKG_L10N_ID scummvm" # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract data from game extract_data_from "$SOURCE_ARCHIVE" tolower "$PLAYIT_WORKDIR/gamedata" prepare_package_layout # Get icon PKG='PKG_MAIN' icons_get_from_workdir 'APP_MAIN' rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_MAIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-the-dream-machine.sh0000755000000000000000000000662114471751340015435 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # The Dream Machine # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210413.5 # Set game-specific variables GAME_ID='the-dream-machine' GAME_NAME='The Dream Machine' ARCHIVES_LIST=' ARCHIVE_BASE_0' ARCHIVE_BASE_0='setup_the_dream_machine_1.0.2_(38172).exe' ARCHIVE_BASE_0_MD5='7b2bdaf4bcddfaafeea2e8d2ed66f21a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='1.0.2-gog38172' ARCHIVE_BASE_0_SIZE='1100000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_dream_machine' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='the_dream_machine.exe' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='assets gameasset_floors.swf gameasset_fonts.swf gameasset_sounds.swf gameassets.swf launcher.txt tdm*' APP_MAIN_TYPE='wine' APP_MAIN_EXE='the_dream_machine.exe' APP_MAIN_ICON='app/goggame-1281766827.ico' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="${PKG_DATA_ID} wine" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get game icon PKG='PKG_DATA' icons_get_from_workdir 'APP_MAIN' # Use persistent storage for saved games DATA_DIRS="${DATA_DIRS} ./savegames" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-the-elder-scrolls-1-arena.sh0000755000000000000000000001015714471751340016736 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # The Elder Scrolls: Arena # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210515.4 # Set game-specific variables GAME_ID='the-elder-scrolls-1-arena' GAME_NAME='The Elder Scrolls: Arena' ARCHIVE_BASE_1='setup_the_elder_scrolls_arena_1.07_(28043).exe' ARCHIVE_BASE_1_MD5='53a12a1cc3955776f06fba5906cdc6fe' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='120000' ARCHIVE_BASE_1_VERSION='1.07-gog28043' ARCHIVE_BASE_1_URL='https://www.gog.com/game/the_elder_scrolls_iii_morrowind_goty_edition' ARCHIVE_BASE_0='setup_tes_arena_2.0.0.5.exe' ARCHIVE_BASE_0_MD5='ca5a894aa852f9dbb3ede787e51ec828' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='130000' ARCHIVE_BASE_0_VERSION='1.07-gog2.0.0.5' ARCHIVE_DOC_MAIN_PATH='.' ARCHIVE_DOC_MAIN_FILES='*.pdf readme.txt' ARCHIVE_GAME0_MAIN_PATH='.' ARCHIVE_GAME0_MAIN_FILES='*.cfg *.exe *.inf *.ini *.65 *.ad *.adv *.bak *.bnk *.bsa *.cel *.cif *.clr *.col *.cpy *.dat *.flc *.gld *.img *.lgt *.lst *.me *.mif *.mnu *.ntz *.opl *.rci *.txt *.voc *.xfm cityintr citytxt extra speech' ARCHIVE_GAME1_MAIN_PATH='__support' ARCHIVE_GAME1_MAIN_FILES='save' GAME_IMAGE='.' GAME_IMAGE_TYPE='cdrom' DATA_DIRS='./save ./arena_cd' APP_MAIN_TYPE='dosbox' APP_MAIN_PRERUN='config -set cpu cycles=fixed 20000 d:' APP_MAIN_EXE='acd.exe' APP_MAIN_OPTIONS='-Ssbpdig.adv -IOS220 -IRQS7 -DMAS1 -Mgenmidi.adv -IOM330 -IRQM2 -DMAM1' APP_MAIN_ICON='app/goggame-1435828982.ico' PACKAGES_LIST='PKG_MAIN' PKG_MAIN_DEPS='dosbox' # Easier upgrade from packages generated with pre-20190302.3 scripts PKG_MAIN_PROVIDE='the-elder-scrolls-1-arena-data' # Keep compatibility with old archives ARCHIVE_DOC_MAIN_PATH_0='app' ARCHIVE_GAME0_MAIN_PATH_0='app' ARCHIVE_GAME1_MAIN_PATH_0='app/__support' # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Extract icons icons_get_from_workdir 'APP_MAIN' # Clean up temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-the-elder-scrolls-2-daggerfall.sh0000755000000000000000000000754114471751340017744 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # 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. ### ### # The Elder Scrolls II: Daggerfall # build native packages from the original installers # send your bug reports to vv221@dotslashplay.it ### script_version=20190327.1 # Set game-specific variables GAME_ID='the-elder-scrolls-2-daggerfall' GAME_NAME='The Elder Scrolls II: Daggerfall' ARCHIVE_GOG='setup_the_elder_scrolls_ii_daggerfall_1.07_(28043).exe' ARCHIVE_GOG_TYPE='innosetup' ARCHIVE_GOG_URL='https://www.gog.com/game/the_elder_scrolls_iii_morrowind_goty_edition' ARCHIVE_GOG_MD5='94acfb7acfe2242241d4355ada481d98' ARCHIVE_GOG_SIZE='560000' ARCHIVE_GOG_VERSION='1.07.213-gog28043' ARCHIVE_GOG_OLD0='setup_tes_daggerfall_2.0.0.4.exe' ARCHIVE_GOG_OLD0_MD5='68f1eb4f257d8da4c4eab2104770c49b' ARCHIVE_GOG_OLD0_SIZE='580000' ARCHIVE_GOG_OLD0_VERSION='1.07.213-gog2.0.0.4' ARCHIVE_DOC_MAIN_PATH='.' ARCHIVE_DOC_MAIN_FILES='*.pdf' # Keep compatibility with old archives ARCHIVE_DOC_MAIN_PATH_GOG_OLD0='app' ARCHIVE_GAME_MAIN_PATH='.' ARCHIVE_GAME_MAIN_FILES='*.cfg *.exe *.txt *.ini arena2 dagger.ico data *.bnk *.386 *.scr test*' # Keep compatibility with old archives ARCHIVE_GAME_MAIN_PATH_GOG_OLD0='app' CONFIG_FILES='./*.cfg' DATA_DIRS='./pics ./save0 ./save1 ./save2 ./save3 ./save4 ./save5' DATA_FILES='./arena2/bio.dat ./arena2/copyfile.dat ./arena2/rumor.dat ./arena2/mapsave.sav ./arena2/*.DAT arena2/*.AMF' APP_MAIN_TYPE='dosbox' APP_MAIN_EXE='fall.exe' APP_MAIN_OPTIONS='z.cfg' APP_MAIN_ICON='dagger.ico' PACKAGES_LIST='PKG_MAIN' PKG_MAIN_DEPS='dosbox' # Easier upgrade from packages generated with pre-20190302.3 scripts PKG_BIN_PROVIDE='the-elder-scrolls-2-daggerfall-data' # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout rm --recursive "$PLAYIT_WORKDIR/gamedata" # Extract icons icons_get_from_package 'APP_MAIN' # Write launchers launcher_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-the-elder-scrolls-5-expansions.sh0000755000000000000000000000402714471751340020042 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi set -o errexit ### # The Elder Scrolls 5 expansions: # - Anniversary Upgrade ### script_version=20230308.1 GAME_ID='the-elder-scrolls-5-skyrim' GAME_NAME='The Elder Scrolls V: Skyrim' EXPANSION_ID_UPGRADE='anniversary-upgrade' EXPANSION_NAME_UPGRADE='Anniversary Upgrade' # Archives ## Anniversary Upgrade ARCHIVE_BASE_UPGRADE_0='setup_the_elder_scrolls_v_skyrim_anniversary_upgrade_1.6.659.0.8_(64bit)_(59094).exe' ARCHIVE_BASE_UPGRADE_0_MD5='6ca1eaf78efe871db75aa2e870bf6154' ARCHIVE_BASE_UPGRADE_0_TYPE='innosetup' ARCHIVE_BASE_UPGRADE_0_PART1='setup_the_elder_scrolls_v_skyrim_anniversary_upgrade_1.6.659.0.8_(64bit)_(59094)-1.bin' ARCHIVE_BASE_UPGRADE_0_PART1_MD5='44910bb282008aebb5c92cd97af12413' ARCHIVE_BASE_UPGRADE_0_SIZE='4700000' ARCHIVE_BASE_UPGRADE_0_VERSION='1.6.659.0.8-gog59094' ARCHIVE_BASE_UPGRADE_0_URL='https://www.gog.com/en/game/the_elder_scrolls_v_skyrim_anniversary_upgrade' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES=' data' PKG_MAIN_ID_UPGRADE="${GAME_ID}-${EXPANSION_ID_UPGRADE}" PKG_MAIN_DESCRIPTION_UPGRADE="$EXPANSION_NAME_UPGRADE" PKG_MAIN_DEPS="$GAME_ID" # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Build packages write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-the-elder-scrolls-5.sh0000755000000000000000000001242114471751340015652 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # The Elder Scrolls 5: Skyrim ### script_version=20231006.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='the-elder-scrolls-5-skyrim' GAME_NAME='The Elder Scrolls V: Skyrim' ARCHIVE_BASE_0_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_1.6.659.0.8_(64bit)_(59094).exe' ARCHIVE_BASE_0_MD5='0b6d1c931788f66d4a3b02138733f05a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_1.6.659.0.8_(64bit)_(59094)-1.bin' ARCHIVE_BASE_0_PART1_MD5='163b8af958071f85e78613834375209c' ARCHIVE_BASE_0_PART2_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_1.6.659.0.8_(64bit)_(59094)-2.bin' ARCHIVE_BASE_0_PART2_MD5='c3852b6ae2bcc46fa0e4f085095bd12f' ARCHIVE_BASE_0_PART3_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_1.6.659.0.8_(64bit)_(59094)-3.bin' ARCHIVE_BASE_0_PART3_MD5='a44293c54ebf39efd8f32cc4cc154220' ARCHIVE_BASE_0_PART4_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_1.6.659.0.8_(64bit)_(59094)-4.bin' ARCHIVE_BASE_0_PART4_MD5='0dc37a5bd97295b5f163435c75868d03' ARCHIVE_BASE_0_PART5_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_1.6.659.0.8_(64bit)_(59094)-5.bin' ARCHIVE_BASE_0_PART5_MD5='162f6baf1d24594f67a1710edef30c42' ARCHIVE_BASE_0_PART6_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_1.6.659.0.8_(64bit)_(59094)-6.bin' ARCHIVE_BASE_0_PART6_MD5='5274ded2391553e9595b170af66ae0c3' ARCHIVE_BASE_0_SIZE='29000000' ARCHIVE_BASE_0_VERSION='1.6.659.0.8-gog59094' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_elder_scrolls_v_skyrim_special_edition' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' skyrimselauncher.exe skyrimse.exe bink2w64.dll galaxy64.dll high.ini low.ini medium.ini ultra.ini' CONTENT_GAME_L10N_EN_FILES=' skyrim_default_en.ini data/skyrim - voices_en0.bsa' CONTENT_GAME_L10N_FR_FILES=' skyrim_default_fr.ini data/skyrim - voices_fr0.bsa' CONTENT_GAME_DATA_TEXTURES_FILES=' data/skyrim - textures?.bsa' CONTENT_GAME_DATA_FILES=' data/ccbgssse001-fish.bsa data/ccbgssse001-fish.esm data/ccbgssse025-advdsgs.bsa data/ccbgssse025-advdsgs.esm data/ccbgssse037-curios.bsa data/ccbgssse037-curios.esl data/ccqdrsse001-survivalmode.bsa data/ccqdrsse001-survivalmode.esl data/dawnguard.esm data/dragonborn.esm data/hearthfires.esm data/skyrim.esm data/skyrim - animations.bsa data/skyrim - interface.bsa data/skyrim - meshes0.bsa data/skyrim - meshes1.bsa data/skyrim - misc.bsa data/skyrim - shaders.bsa data/skyrim - sounds.bsa data/update.esm data/video skyrim.ccc' USER_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/My Games/Skyrim Special Edition GOG' WINE_DIRECT3D_RENDERER='dxvk' APP_MAIN_EXE='skyrimse.exe' APP_MAIN_ICON='skyrimselauncher.exe' PACKAGES_LIST='PKG_BIN PKG_L10N_EN PKG_L10N_FR PKG_DATA_TEXTURES PKG_DATA' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_EN_ID="${PKG_L10N_ID}-en" PKG_L10N_FR_ID="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_EN_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_FR_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_EN_DESCRIPTION='English localization' PKG_L10N_FR_DESCRIPTION='French localization' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_TEXTURES_ID="${PKG_DATA_ID}-textures" PKG_DATA_TEXTURES_DESCRIPTION="$PKG_DATA_DESCRIPTION - textures" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_TEXTURES_ID" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_L10N_ID $PKG_DATA_ID" ## TODO: Replace this list with an explicit list of required GStreamer decoders. PKG_BIN_DEPS_ARCH='gst-plugins-base gst-libav' PKG_BIN_DEPS_DEB='gstreamer1.0-plugins-base, gstreamer1.0-libav' PKG_BIN_DEPS_GENTOO='media-libs/gst-plugins-base media-plugins/gst-plugins-libav' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data PKG='PKG_DATA' icons_inclusion content_inclusion_default ## Rename language-specific configuration file mv \ "$(package_path 'PKG_L10N_EN')$(path_game_data)"/skyrim_default_??.ini \ "$(package_path 'PKG_L10N_EN')$(path_game_data)"/skyrim_default.ini mv \ "$(package_path 'PKG_L10N_FR')$(path_game_data)"/skyrim_default_??.ini \ "$(package_path 'PKG_L10N_FR')$(path_game_data)"/skyrim_default.ini # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation common_packages='PKG_BIN PKG_DATA_TEXTURES PKG_DATA' case "${LANG%_*}" in ('fr') lang_string='version %s :' lang_en='anglaise' lang_fr='française' ;; ('en'|*) lang_string='%s version:' lang_en='English' lang_fr='French' ;; esac printf '\n' printf "$lang_string" "$lang_en" print_instructions $common_packages 'PKG_L10N_EN' printf "$lang_string" "$lang_fr" print_instructions $common_packages 'PKG_L10N_FR' # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-even-more-incredible-machine.sh0000755000000000000000000000621314471751340020335 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # The Even More Incredible Machine # build native packages from the original installers # send your bug reports to vv221@dotslashplay.it ### script_version=20190303.5 # Set game-specific variables GAME_ID='the-even-more-incredible-machine' GAME_NAME='The Even More Incredible Machine' ARCHIVE_GOG='setup_the_even_more_incredible_machine_2.1.0.24.exe' ARCHIVE_GOG_URL='https://www.gog.com/game/the_incredible_machine_mega_pack' ARCHIVE_GOG_MD5='0486b8d5e65ea49ebf59b62a06cb9edd' ARCHIVE_GOG_SIZE='21000' ARCHIVE_GOG_VERSION='1.0-gog2.1.0.24' ARCHIVE_GAME_MAIN_PATH='app' ARCHIVE_GAME_MAIN_FILES='*.tim *.drv *.exe install* resource*' CONFIG_FILES='./*.cfg ./*.CFG' DATA_FILES='./*.tim ./*.TIM' APP_MAIN_TYPE='dosbox' APP_MAIN_EXE='tim.exe' APP_MAIN_ICON='app/goggame-1207664023.ico' PACKAGES_LIST='PKG_MAIN' PKG_MAIN_DEPS='dosbox' # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Extract icons icons_get_from_workdir 'APP_MAIN' rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers launcher_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-the-fall.sh0000755000000000000000000000467614471751340013671 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # The Fall # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220708.1 GAME_ID='the-fall' GAME_NAME='The Fall' ARCHIVE_BASE_1='TheFall_Linux_2_5.zip' ARCHIVE_BASE_1_MD5='5493c159ce23d13d68b60f064ab37297' ARCHIVE_BASE_1_SIZE='350000' ARCHIVE_BASE_1_VERSION='2.5-humble171207' ARCHIVE_BASE_1_URL='https://www.humblebundle.com/store/the-fall' ARCHIVE_BASE_0='TheFall_2_31_Linux.rar' ARCHIVE_BASE_0_MD5='ffac594dc2c9b9e446da5fa375aac6fa' ARCHIVE_BASE_0_SIZE='340000' ARCHIVE_BASE_0_VERSION='2.31-humble161116' UNITY3D_NAME='TheFall' CONTENT_PATH_DEFAULT='.' ARCHIVE_GAME_BIN_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono ${UNITY3D_NAME}_Data/Plugins" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_TYPE='native' APP_MAIN_EXE="${UNITY3D_NAME}.x86" APP_MAIN_ICON="${UNITY3D_NAME}_Data/Resources/UnityPlayer.png" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6 libGL.so.1 xcursor libxrandr" # Use a dedicated log file for the current game session APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a dedicated log file for the current game session mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-the-first-tree.sh0000755000000000000000000000456014471751340015027 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=20231123.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' 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_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-flame-in-the-flood.sh0000755000000000000000000000502314471751340016305 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # The Flame in the Flood # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220306.3 # Set game-specific variables GAME_ID='the-flame-in-the-flood' GAME_NAME='The Flame in the Flood' ARCHIVE_BASE_0='setup_the_flame_in_the_flood_1.3.003_(31352).exe' ARCHIVE_BASE_0_MD5='c58e4985cb0a93a27f6bcd542a313ff1' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2900000' ARCHIVE_BASE_0_VERSION='1.3.003-gog31352' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_flame_in_the_flood' CONTENT_PATH_DEFAULT='.' ARCHIVE_GAME_BIN_FILES=' engine rivergame.exe' ARCHIVE_GAME_DATA_FILES=' rivergame' APP_MAIN_TYPE='wine' APP_MAIN_EXE='rivergame.exe' APP_MAIN_ICON='rivergame.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID wine" PKG_BIN_DEPS_ARCH='gst-plugins-base gst-plugins-good gst-libav' PKG_BIN_DEPS_DEB='gstreamer1.0-plugins-base, gstreamer1.0-plugins-good, gstreamer1.0-libav' PKG_BIN_DEPS_GENTOO='media-libs/gst-plugins-base media-libs/gst-plugins-good media-plugins/gst-plugins-libav' # Use persistent storage for user data APP_WINE_LINK_DIRS=' userdata:users/${USER}/Local Settings/Application Data/RiverGame/Saved userdata:users/${USER}/AppData/Local/RiverGame/Saved' CONFIG_DIRS='userdata/Config' DATA_DIRS='userdata/SaveGames' # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Include game icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Delete temporary directories rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-the-girl-and-the-robot.sh0000755000000000000000000000466514471751340016347 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # The Girl and the Robot # send your bug reports to contact@dotslashplay.it ### script_version=20221210.1 GAME_ID='the-girl-and-the-robot' GAME_NAME='The Girl and the Robot' UNITY3D_NAME='GirlAndRobot' ARCHIVE_BASE_0='thegirlandtherobot-linux-1.006.rar' ARCHIVE_BASE_0_MD5='032b2f06a6d272be6ace53e6cda16683' ARCHIVE_BASE_0_SIZE='2500000' ARCHIVE_BASE_0_VERSION='1.006-humble170727' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/the-girl-and-the-robot' CONTENT_PATH_DEFAULT='LINUX' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86 ${UNITY3D_NAME}.x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64 ${UNITY3D_NAME}.x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPENDENCIES_LIBRARIES=' ld-linux-x86-64.so.2 libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN32_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.19' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-great-perhaps.sh0000755000000000000000000000455414471751340015510 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The Great Perhaps # send your bug reports to contact@dotslashplay.it ### script_version=20230805.2 GAME_ID='the-great-perhaps' GAME_NAME='The Great Perhaps' ARCHIVE_BASE_0='the_great_perhaps_1_32_14_31714.sh' ARCHIVE_BASE_0_MD5='4f675ed32851ec790cd010aaba6dd4b7' ARCHIVE_BASE_0_SIZE='4900000' ARCHIVE_BASE_0_VERSION='1.32.14-gog31714' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_great_perhaps' UNITY3D_NAME='TheGreatPerhaps' UNITY3D_PLUGINS=' libfmodL.so libfmod.so libfmodstudioL.so libfmodstudio.so libgvraudio.so libresonanceaudio.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_Data/Mono ${UNITY3D_NAME}.x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Force the use of the Vulkan renderer, # as most text strings fail to render using the default one (OpenGL?). APP_MAIN_OPTIONS="${APP_MAIN_OPTIONS:-} -force-vulkan" # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-guild-2-renaissance.sh0000755000000000000000000000476314471751340016504 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # The Guild 2 Renaissance # send your bug reports to contact@dotslashplay.it ### script_version=20231009.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='the-guild-2-renaissance' GAME_NAME='The Guild 2 Renaissance' ARCHIVE_BASE_0_NAME='setup_the_guild2_renaissance_2.2.0.5.exe' ARCHIVE_BASE_0_MD5='86389c3154c2ea6ef3b072278f1e9c6c' ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS='--lowercase --gog' ARCHIVE_BASE_0_PART1_NAME='setup_the_guild2_renaissance_2.2.0.5-1.bin' ARCHIVE_BASE_0_PART1_MD5='ae4c17c8e3793befeec8b9a16e4f2b0c' ARCHIVE_BASE_0_PART1_EXTRACTOR='unar' ARCHIVE_BASE_0_SIZE='3800000' ARCHIVE_BASE_0_VERSION='4.21-gog2.2.0.5' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_guild_2_renaissance' CONTENT_PATH_DEFAULT='game' CONTENT_GAME_BIN_FILES=' dbghelp.dll fmod.dll guildii.exe mfc71.dll modlauncher.exe msvcp71.dll msvcr71.dll stlport.5.0.dll stlportd.5.0.dll wmencoderen.exe' CONTENT_GAME_DATA_FILES=' camerapaths *.raw db gui *.url mods movie msx objects particles resource savegames scenes scripts sfx shader shots sim_commands.dat textures worlds' CONTENT_GAME0_DATA_PATH='support/app' CONTENT_GAME0_DATA_FILES=' config.ini input.ini' CONTENT_DOC_DATA_FILES=' manual.pdf *.txt' USER_PERSISTENT_FILES=' *.ini' APP_MAIN_EXE='guildii.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" ## TODO: Setting up a WINE virtual desktop on first launch might prevent display problems on some setups. # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data PKG='PKG_DATA' icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-guild-2.sh0000755000000000000000000000437614471751340014213 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # The Guild 2 # send your bug reports to contact@dotslashplay.it ### script_version=20231109.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='the-guild-2' GAME_NAME='The Guild 2' ARCHIVE_BASE_0_NAME='setup_the_guild2_2.0.0.4.exe' ARCHIVE_BASE_0_MD5='2b14191f4831b3486e95d52245d6cc64' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2400000' ARCHIVE_BASE_0_VERSION='1.4-gog2.0.0.4' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_guild_2' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' *.dll *.exe *.ini' CONTENT_GAME_DATA_FILES=' *.dat camerapaths db editor gui movie msx objects particles resource savegames scenes scripts sfx shader shots textures worlds' CONTENT_DOC_DATA_FILES=' *.pdf *.txt' USER_PERSISTENT_FILES=' *.ini' APP_MAIN_EXE='guildii.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" ## TODO: Setting up a WINE virtual desktop on first launch might prevent display problems on some setups. # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Disable intro movie ini_file='config.ini' ini_field='SplashScreen' ini_value='0' sed_expression="s/^${ini_field}=.*$/${ini_field}=${ini_value}/" sed --in-place --expression="$sed_expression" "$ini_file" ) # Include game data PKG='PKG_DATA' icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-hive.sh0000755000000000000000000000620114471751340013670 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The Hive # send your bug reports to contact@dotslashplay.it ### script_version=20231130.1 GAME_ID='the-hive' GAME_NAME='The Hive' ARCHIVE_BASE_0='TheHive_linux.zip' ARCHIVE_BASE_0_MD5='0ce86308c8632a0e29b6cefefe89b7ae' ARCHIVE_BASE_0_SIZE='1700000' ARCHIVE_BASE_0_VERSION='1.04-humble.2016.10.10' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/the-hive' UNITY3D_NAME='hive' CONTENT_PATH_DEFAULT='Hive_linux' ## The game crashes on launch if libCSteamworks.so is not available, ## libsteam_api.so is included too because libCSteamworks.so is linked against it. CONTENT_LIBS_BIN32_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins/x86" CONTENT_LIBS_BIN32_FILES=' libCSteamworks.so libsteam_api.so ScreenSelector.so' CONTENT_LIBS_BIN64_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_LIBS_BIN64_FILES=' libCSteamworks.so libsteam_api.so ScreenSelector.so' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data/Managed ${UNITY3D_NAME}_Data/Mono/etc ${UNITY3D_NAME}_Data/Resources ${UNITY3D_NAME}_Data/globalgamemanagers ${UNITY3D_NAME}_Data/level? ${UNITY3D_NAME}_Data/level?? ${UNITY3D_NAME}_Data/*.assets ${UNITY3D_NAME}_Data/*.assets.resS ${UNITY3D_NAME}_Data/*.resource" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-house-of-da-vinci.sh0000755000000000000000000000506114471751340016155 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # The House of Da Vinci # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220217.4 # Set game-specific variables GAME_ID='the-house-of-da-vinci' GAME_NAME='The House of Da Vinci' ARCHIVE_BASE_0='setup_the_house_of_da_vinci_1.0.3_(64bit)_(52072).exe' ARCHIVE_BASE_0_MD5='2cf6dce4524fe1b2ce1429f19438c38f' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_the_house_of_da_vinci_1.0.3_(64bit)_(52072)-1.bin' ARCHIVE_BASE_0_PART1_MD5='3b3e636a1697fa84161b57fc18bfacba' ARCHIVE_BASE_0_PART1_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2700000' ARCHIVE_BASE_0_VERSION='1.0.3-gog52072' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_house_of_da_vinci' UNITY3D_NAME='the house of da vinci' CONTENT_PATH_DEFAULT='the house of da vinci' ARCHIVE_GAME_BIN_FILES=' the?house?of?da?vinci.exe the?house?of?da?vinci_data/mono the?house?of?da?vinci_data/plugins unityplayer.dll' ARCHIVE_GAME_DATA_FILES=' the?house?of?da?vinci_data' APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" APP_MAIN_ICON="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Use persistent storage for user data APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/LocalLow/Blue Brain Games/The House of da Vinci' DATA_DIRS='./userdata/Profiles' # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-the-inheritance-of-crimson-manor.sh0000755000000000000000000000440214471751340020413 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The Inheritance of Crimson Manor # send your bug reports to contact@dotslashplay.it ### script_version=20230411.1 GAME_ID='the-inheritance-of-crimson-manor' GAME_NAME='The Inheritance of Crimson Manor' ARCHIVE_BASE_0='setup_the_inheritance_of_crimson_manor_1.032_(56232).exe' ARCHIVE_BASE_0_MD5='2ec5ed427135ca0d6389c3b404729e8a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_the_inheritance_of_crimson_manor_1.032_(56232)-1.bin' ARCHIVE_BASE_0_PART1_MD5='32dc765801cb0cfe2b864be1c4a04f07' ARCHIVE_BASE_0_SIZE='2100000' ARCHIVE_BASE_0_VERSION='1.032-gog56232' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_inheritance_of_crimson_manor' UNITY3D_NAME='crimsonmanor' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_data/plugins ${UNITY3D_NAME}.exe monobleedingedge unityplayer.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/LocalLow/MediaCity Games/CrimsonManor' USER_PERSISTENT_DIRECTORIES=' userdata' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-inner-world.sh0000755000000000000000000000766714471751340015216 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # The Inner World # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20200206.3 # Set game-specific variables GAME_ID='the-inner-world' GAME_NAME='The Inner World' ARCHIVE_GOG='setup_the_inner_world_1.2.1_(26675).exe' ARCHIVE_GOG_URL='https://www.gog.com/game/the_inner_world' ARCHIVE_GOG_MD5='2379e9c64c4fe06d6892474637aa405b' ARCHIVE_GOG_SIZE='1500000' ARCHIVE_GOG_VERSION='1.2.1-gog26675' ARCHIVE_GOG_OLD0='setup_the_inner_world_2.0.0.2.exe' ARCHIVE_GOG_OLD0_MD5='b5778aa9770ba7fc7d1a3884154c136b' ARCHIVE_GOG_OLD0_SIZE='1500000' ARCHIVE_GOG_OLD0_VERSION='1.2.1-gog2.0.0.2' ARCHIVE_DOC_DATA_PATH='.' ARCHIVE_DOC_DATA_FILES='*.rtf' # Keep compatibility with old archives ARCHIVE_DOC_DATA_PATH_GOG_OLD0='app' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='*.exe *.swf adobe?air meta-inf mimetype' # Keep compatibility with old archives ARCHIVE_GAME_BIN_PATH_GOG_OLD0='app' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='*.url media' # Keep compatibility with old archives ARCHIVE_GAME_DATA_PATH_GOG_OLD0='app' APP_MAIN_TYPE='wine' # shellcheck disable=SC1004 # shellcheck disable=SC2016 APP_MAIN_PRERUN='# Enable CSMT patches on WINE staging if [ "$(wine --version | sed "s/.\+(\(.\+\))/\\1/")" = "Staging" ] && \ [ ! -e csmt_enabled ] then winetricks csmt=on touch csmt_enabled fi' APP_MAIN_EXE='theinnerworld.exe' APP_MAIN_ICON='theinnerworld.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine xcursor" # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout rm --recursive "$PLAYIT_WORKDIR/gamedata" # Get game icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-the-interactive-adventures-of-dog-mendonca-and-pizzaboy.sh0000755000000000000000000000462014471751340024773 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 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220708.1 GAME_ID='the-interactive-adventures-of-dog-mendonca-and-pizzaboy' GAME_NAME='The Interactive Adventures of Dog Mendonça and Pizzaboy' ARCHIVE_BASE_0='gog_the_interactive_adventures_of_dog_mendon_a_and_pizzaboy_2.0.0.1.sh' ARCHIVE_BASE_0_MD5='88c5bb7a410fbf2eb0cc124c3ce06fa0' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='500000' 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' ARCHIVE_GAME_BIN32_FILES=' godot.x11.opt.32' ARCHIVE_GAME_BIN64_FILES=' godot.x11.opt.64' ARCHIVE_GAME_DATA_FILES=' data.pck' APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32='godot.x11.opt.32' APP_MAIN_EXE_BIN64='godot.x11.opt.64' APP_MAIN_ICON="${CONTENT_PATH_DEFAULT}/../support/icon.png" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6 libGLU.so.1 xcursor" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Include game icon PKG='PKG_DATA' icons_get_from_workdir 'APP_MAIN' # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-the-jungle-book.sh0000755000000000000000000000350714471751340015157 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # The Jungle Book # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220709.3 GAME_ID='the-jungle-book' GAME_NAME='The Jungle Book' # This DRM-free archive is no longer sold by GOG ARCHIVE_BASE_0='gog_disney_s_the_jungle_book_2.0.0.2.sh' ARCHIVE_BASE_0_MD5='bcb57f4ff5cb1662ba3d4a9e34f263ad' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='15000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.2' CONTENT_PATH_DEFAULT='data/noarch/data' ARCHIVE_GAME_MAIN_FILES=' *' APP_MAIN_TYPE='dosbox' APP_MAIN_EXE='JUNGLE.EXE' APP_MAIN_ICON="${CONTENT_PATH_DEFAULT}/../support/icon.png" PKG_MAIN_DEPS='dosbox' # Use persistent storage for user data DATA_FILES='*.cfg' # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Include game icon icons_get_from_workdir 'APP_MAIN' # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-the-king-of-fighters-2000.sh0000755000000000000000000000712214471751340016462 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2020, HS-157 # 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. ### ### # THE KING OF FIGHTERS 2000 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20201010.1 # Set game-specific variables GAME_ID='the-king-of-fighters-2000' GAME_NAME="THE KING OF FIGHTERS 2000" ARCHIVE_HUMBLE='KingOfFighters2000_jan2016.sh' ARCHIVE_HUMBLE_TYPE='mojosetup' ARCHIVE_HUMBLE_URL='https://www.humblebundle.com/store/the-king-of-fighters-2000' ARCHIVE_HUMBLE_MD5='98f3d87cd286c868f184fefe1c4222b9' ARCHIVE_HUMBLE_VERSION='1.0-humblejan2016' ARCHIVE_HUMBLE_SIZE='120000' ARCHIVE_GAME_BIN32_PATH_HUMBLE='data/x86' ARCHIVE_GAME_BIN32_FILES='NeogeoEmu.bin.x86 lib' ARCHIVE_GAME_BIN64_PATH_HUMBLE='data/x86_64' ARCHIVE_GAME_BIN64_FILES='NeogeoEmu.bin.x86_64 lib64' ARCHIVE_GAME_DATA_PATH_HUMBLE='data/noarch' ARCHIVE_GAME_DATA_FILES='*' APP_MAIN_TYPE='native' APP_MAIN_ICON='KingOfFighters2000.png' APP_MAIN_EXE_BIN32='NeogeoEmu.bin.x86' APP_MAIN_EXE_BIN64='NeogeoEmu.bin.x86_64' DATA_FILES='*.ini *.rml *.txt' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID glibc libstdc++ sdl2 glx alsa libudev1" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout rm --recursive "$PLAYIT_WORKDIR/gamedata" # Extract icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-the-kings-bird.sh0000755000000000000000000000374614471751340015001 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The King's Bird # send your bug reports to contact@dotslashplay.it ### script_version=20230805.1 GAME_ID='the-kings-bird' GAME_NAME='The Kingʼs Bird' ARCHIVE_BASE_0='TheKingsBirdDRMFREE_v5.zip' ARCHIVE_BASE_0_MD5='fccb138fa993f1e983fcc6c08d1b0b96' ARCHIVE_BASE_0_SIZE='5400000' ARCHIVE_BASE_0_VERSION='5-itch' ARCHIVE_BASE_0_URL='https://graffiti-games.itch.io/the-kings-bird' UNITY3D_NAME='TheKingsBird' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_Data/Mono ${UNITY3D_NAME}_Data/Plugins ${UNITY3D_NAME}.exe" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" WINE_PERSISTENT_DIRECTORIES=" users/\${USER}/AppData/LocalLow/Serenity Forge/The King's Bird" APP_MAIN_EXE='TheKingsBird.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-last-tinker.sh0000755000000000000000000000672114471751340015201 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # The Last Tinker # send your bug reports to contact@dotslashplay.it ### script_version=20231006.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='the-last-tinker' GAME_NAME='The Last Tinker: City of Colors' ARCHIVE_BASE_LINUX_0_NAME='last_tinker_city_of_colors_the_en_23_02_2018_18902.sh' ARCHIVE_BASE_LINUX_0_MD5='d0dbfac723aee309869c2404d88b4eb4' ARCHIVE_BASE_LINUX_0_SIZE='2100000' ARCHIVE_BASE_LINUX_0_VERSION='2018.02.23-gog18902' ARCHIVE_BASE_LINUX_0_URL='https://www.gog.com/game/the_last_tinker_city_of_colors' ARCHIVE_BASE_WINDOWS_1_NAME='setup_the_last_tinker_-_city_of_colors_23.02.2018_(18831).exe' ARCHIVE_BASE_WINDOWS_1_MD5='ec303722fba022e2b1d04f69091213d9' ARCHIVE_BASE_WINDOWS_1_TYPE='innosetup' ARCHIVE_BASE_WINDOWS_1_PART1_NAME='setup_the_last_tinker_-_city_of_colors_23.02.2018_(18831)-1.bin' ARCHIVE_BASE_WINDOWS_1_PART1_MD5='91e843b4d7be0d842bf3dc1f9930f11d' ARCHIVE_BASE_WINDOWS_1_SIZE='2000000' ARCHIVE_BASE_WINDOWS_1_VERSION='2018.02.23-gog18831' ARCHIVE_BASE_WINDOWS_1_URL='https://www.gog.com/game/the_last_tinker_city_of_colors' ARCHIVE_BASE_WINDOWS_0_NAME='setup_the_last_tinker_2.0.0.2.exe' ARCHIVE_BASE_WINDOWS_0_MD5='7afa966efb4beb5535e19f2d69b245ae' ARCHIVE_BASE_WINDOWS_0_TYPE='innosetup' ARCHIVE_BASE_WINDOWS_0_SIZE='2100000' ARCHIVE_BASE_WINDOWS_0_VERSION='1.0-gog2.0.0.2' UNITY3D_NAME='the last tinker' UNITY3D_PLUGINS=' libRenderingPlugin.so ScreenSelector.so' CONTENT_PATH_DEFAULT_WINDOWS='app' CONTENT_PATH_DEFAULT_LINUX='data/noarch/game' ## TODO: Check if the Steam libraries can be dropped ARCHIVE_LIBS_BIN_FILES=' libsteam_api.so libSteamworksNative.so' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_LINUX="${PKG_DATA_ID}-linux" PKG_DATA_ID_WINDOWS="${PKG_DATA_ID}-windows" PKG_DATA_PROVIDES="$PKG_DATA_ID" PKG_DATA_DESCRIPTION='data' PKG_BIN_ID="$GAME_ID" PKG_BIN_PROVIDES="$PKG_BIN_ID" PKG_BIN_ARCH='32' PKG_BIN_ID_LINUX="${PKG_BIN_ID}-linux" PKG_BIN_DEPS_LINUX="$PKG_DATA_ID_LINUX" PKG_BIN_DEPENDENCIES_LIBRARIES=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgthread-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXext.so.6' PKG_BIN_ID_WINDOWS="${PKG_BIN_ID}-windows" PKG_BIN_DEPS_WINDOWS="$PKG_DATA_ID_WINDOWS" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data PKG='PKG_DATA' icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-lion-king.sh0000755000000000000000000000347014471751340014631 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # The Lion King # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220709.3 GAME_ID='the-lion-king' GAME_NAME='The Lion King' # This DRM-free archive is no longer sold by GOG ARCHIVE_BASE_0='gog_the_lion_king_2.0.0.2.sh' ARCHIVE_BASE_0_MD5='3b4f1118785e1f1cc769ae41379b7940' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='16000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.2' CONTENT_PATH_DEFAULT='data/noarch/data' ARCHIVE_GAME_MAIN_FILES=' *' APP_MAIN_TYPE='dosbox' APP_MAIN_EXE='LIONKING.EXE' APP_MAIN_ICON="${CONTENT_PATH_DEFAULT}/../support/icon.png" PKG_MAIN_DEPS='dosbox' # Use persistent storage for user data DATA_FILES='*.cfg' # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Include game icon icons_get_from_workdir 'APP_MAIN' # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-the-lions-song.sh0000755000000000000000000000434114471751340015030 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=20230210.2 GAME_ID='the-lions-song' GAME_NAME='The Lionʼs Song' ARCHIVE_BASE_0='the_lion_s_song_0_7_35794.sh' ARCHIVE_BASE_0_MD5='bc86daa55b3afd2714bafce8e5bed230' ARCHIVE_BASE_0_TYPE='mojosetup' 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_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libcurl.so.4 libdl.so.2 libgcc_s.so.1 libGL.so.1 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' # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-little-acre.sh0000755000000000000000000000455514471751340015154 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # The Little Acre # build native packages from the original installers # send your bug reports to contatct@dotslashplay.it ### script_version=20220630.2 GAME_ID='the-little-acre' GAME_NAME='The Little Acre' ARCHIVE_BASE_0='the_little_acre_en_gog_3_14723.sh' ARCHIVE_BASE_0_MD5='ef9dc3c9600bee4dbf64b29d46b718c6' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='3000000' ARCHIVE_BASE_0_VERSION='3-gog14723' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_little_acre' UNITY3D_NAME='TheLittleAcre' CONTENT_PATH_DEFAULT='data/noarch/game' ARCHIVE_GAME_BIN_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono ${UNITY3D_NAME}_Data/Plugins" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_TYPE='native' APP_MAIN_EXE="${UNITY3D_NAME}.x86_64" APP_MAIN_ICON="${UNITY3D_NAME}_Data/Resources/UnityPlayer.png" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6 libGL.so.1 xcursor" # Use a dedicated log file for the current game session APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a dedicated log file for the current game session mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-the-longest-journey.sh0000755000000000000000000000447014471751340016107 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=20230908.1 GAME_ID='the-longest-journey' GAME_NAME='The Longest Journey' ARCHIVE_BASE_1='setup_the_longest_journey_142_lang_update_(24607).exe' ARCHIVE_BASE_1_MD5='540b2e016ab90dd509c53fc7df4397fd' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1='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='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' CONTENT_GAME_MAIN_FILES=' global static fonts ?? x.xarc game.exe *.ini' CONTENT_DOC_MAIN_FILES=' *.txt *.pdf *.html tlj_faq_files' 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=' the-longest-journey-data the-longest-journey-scummvm the-longest-journey-wine' # Load common functions target_version='2.25' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icon icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-longing.sh0000755000000000000000000000500614471751340014374 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # The Longing # send your bug reports to contact@dotslashplay.it ### script_version=20231113.4 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='the-longing' GAME_NAME='The Longing' ARCHIVE_BASE_0_NAME='the_longing_1_6_1_57129.sh' ARCHIVE_BASE_0_MD5='cb579de1e72469df601fe8199ba2db4c' ARCHIVE_BASE_0_SIZE='2200000' ARCHIVE_BASE_0_VERSION='1.6.1-gog57129' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_longing' ARCHIVE_BASE_MULTIARCH_0_NAME='the_longing_1_0_7_38629.sh' ARCHIVE_BASE_MULTIARCH_0_MD5='98729196edafd2a223a5425f7de70c02' ARCHIVE_BASE_MULTIARCH_0_SIZE='5500000' ARCHIVE_BASE_MULTIARCH_0_VERSION='1.0.7-gog38629' UNITY3D_NAME='The Longing' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PACKAGES_LIST_MULTIARCH=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers case "$(current_archive)" in ('ARCHIVE_BASE_MULTIARCH_'*) set_current_package 'PKG_BIN64' launchers_write set_current_package 'PKG_BIN32' launchers_write ;; (*) set_current_package 'PKG_BIN' launchers_write ;; esac # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-night-fisherman.sh0000755000000000000000000000400714471751340016022 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The Night Fisherman # send your bug reports to contact@dotslashplay.it ### script_version=20230221.1 GAME_ID='the-night-fisherman' GAME_NAME='The Night Fisherman' ARCHIVE_BASE_0='The Night Fisherman WIN.zip' ARCHIVE_BASE_0_MD5='b7df1ae2b6665229870c2f8610ccd2c9' ARCHIVE_BASE_0_SIZE='300000' ARCHIVE_BASE_0_VERSION='1.0-itch1' ARCHIVE_BASE_0_URL='https://farfewgiants.itch.io/night-fisherman' UNITY3D_NAME='The Night Fisherman' CONTENT_PATH_DEFAULT='The Night Fisherman WIN' CONTENT_GAME_BIN_FILES=" MonoBleedingEdge UnityCrashHandler64.exe UnityPlayer.dll ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_Data/Plugins ${UNITY3D_NAME}_Data/Managed" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-night-of-the-rabbit.sh0000755000000000000000000000545714471751340016503 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # The Night of the Rabbit # send your bug reports to contact@dotslashplay.it ### script_version=20230930.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' 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' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' *.dll *.exe' CONTENT_GAME0_BIN_PATH="${CONTENT_PATH_DEFAULT}/__support/app" CONTENT_GAME0_BIN_FILES=' config.ini' CONTENT_GAME_SCENES_FILES=' scenes' CONTENT_GAME_VIDEO_FILES=' videos' CONTENT_GAME_DATA_FILES=' banner.jpg characters data.vis folder.jpg languages.xml lua' CONTENT_DOC_DATA_PATH="${CONTENT_PATH_DEFAULT}/documents/licenses" CONTENT_DOC_DATA_FILES=' *' USER_PERSISTENT_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 WINE_WINETRICKS_VERBS='dsound' APP_MAIN_EXE='rabbit.exe' PACKAGES_LIST='PKG_BIN PKG_SCENES PKG_VIDEO PKG_DATA' PKG_SCENES_ID="${GAME_ID}-scenes" PKG_SCENES_DESCRIPTION='scenes' PKG_VIDEO_ID="${GAME_ID}-videos" PKG_VIDEO_DESCRIPTION='videos' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_SCENES_ID $PKG_VIDEO_ID $PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-pedestrian.sh0000755000000000000000000001045314471751340015077 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # The Pedestrian # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20200818.1 # Set game-specific variables GAME_ID='the-pedestrian' GAME_NAME='The Pedestrian' ARCHIVES_LIST=' ARCHIVE_GOG_0' ARCHIVE_GOG_0='the_pedestrian_1_0_9_36404.sh' ARCHIVE_GOG_0_URL='https://www.gog.com/game/the_pedestrian' ARCHIVE_GOG_0_MD5='8c57947cdd3e1384024bceb508ec36ac' ARCHIVE_GOG_0_SIZE='2000000' ARCHIVE_GOG_0_VERSION='1.0.9-gog36404' ARCHIVE_GOG_0_TYPE='mojosetup' ARCHIVE_DOC_DATA_PATH='data/noarch/docs' ARCHIVE_DOC_DATA_FILES='*' ARCHIVE_GAME_BIN_PATH='data/noarch/game' ARCHIVE_GAME_BIN_FILES='ThePed_Linux_64.x86_64 ThePed_Linux_64_Data/*/x86_64' ARCHIVE_GAME_DATA_PATH='data/noarch/game' ARCHIVE_GAME_DATA_FILES='ThePed_Linux_64_Data UserData' DATA_DIRS='./logs ./UserData' APP_MAIN_TYPE='native' # Work around screen resolution detection issues # shellcheck disable=SC2016 APP_MAIN_PRERUN='config_file="$HOME/.config/unity3d/Skookum Arts/The Pedestrian/prefs" if [ ! -e "$config_file" ]; then mkdir --parents "${config_file%/*}" resolution=$(xrandr | awk "/\*/ {print $1}") cat > "$config_file" <<- EOF ${resolution%x*} ${resolution#*x} EOF fi' APP_MAIN_PRERUN='export LANG=C' APP_MAIN_EXE_BIN='ThePed_Linux_64.x86_64' # shellcheck disable=SC2016 APP_MAIN_OPTIONS='-logFile ./logs/$(date +%F-%R).log' APP_MAIN_ICON='ThePed_Linux_64_Data/Resources/UnityPlayer.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID glibc libstdc++ glx libxrandr alsa xrandr" PKG_BIN_DEPS_ARCH='lib32-libx11 lib32-libxext' PKG_BIN_DEPS_DEB='libx11-6, libxext6' PKG_BIN_DEPS_GENTOO='x11-libs/libX11[abi_x86_32] x11-libs/libXext[abi_x86_32]' # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout rm --recursive "$PLAYIT_WORKDIR/gamedata" # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-the-pillars-of-the-earth.sh0000755000000000000000000000557414471751340016700 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=20231017.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' 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 - Some shipped libraries could probably be dropped in favour of system ones. 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_GAME_BIN_FILES=" $VISIONAIRE_NAME config.ini 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_DATA_SCENES_ID="${GAME_ID}-data-scenes" PKG_DATA_SCENES_DESCRIPTION="$GAME_NAME - data - scenes" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_SCENES_ID" 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' ## Ensure smooth upgrades from packages generated by game scripts pre-20231005.1 PKG_DATA_PROVIDES=' the-pillars-of-the-earth-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 . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-red-strings-club.sh0000755000000000000000000000405314471751340016124 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The Red Strings Club # send your bug reports to contact@dotslashplay.it ### script_version=20230818.1 GAME_ID='the-red-strings-club' GAME_NAME='The Red Strings Club' ARCHIVE_BASE_0='the_red_strings_club_20180122_ch_update_40932.sh' ARCHIVE_BASE_0_MD5='6a11270a590a0151223cce6aae70858c' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='280000' ARCHIVE_BASE_0_VERSION='2018.01.22-gog40932' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_red_strings_club' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' runner' CONTENT_GAME_DATA_FILES=' assets' APP_MAIN_EXE='runner' APP_MAIN_ICON='assets/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libssl.so.1.0.0 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 libz.so.1' # Load common functions 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-search.sh0000755000000000000000000000704214471751340014206 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # The Search # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20211229.1 # Set game-specific variables GAME_ID='the-search' GAME_NAME='The Search' ARCHIVE_BASE_0='the-search-windows.zip' ARCHIVE_BASE_0_MD5='98b8ba6ac43c4df82511c55df099a533' ARCHIVE_BASE_0_SIZE='1800000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://jasongodbey.itch.io/the-search' UNITY3D_NAME='TheSearch' CONTENT_PATH_DEFAULT='.' ARCHIVE_GAME_BIN_FILES=" *.dll ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_Data/Mono ${UNITY3D_NAME}_Data/Plugins" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" APP_MAIN_ICON="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Use persistent storage for user data CONFIG_FILES="$CONFIG_FILES ${UNITY3D_NAME}_Data/QualitySettings.ini" APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/AppData/LocalLow/Jason Godbey/The Search' DATA_DIRS="$DATA_DIRS ./userdata" # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" set_standard_permissions "${PLAYIT_WORKDIR}/gamedata" prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-the-settlers-3.sh0000755000000000000000000001622614471751340014752 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # The Settlers 3 # send your bug reports to contact@dotslashplay.it ### script_version=20221202.1 GAME_ID='the-settlers-3' GAME_NAME='The Settlers Ⅲ' ARCHIVE_BASE_EN_0='setup_the_settlers_3_-_ultimate_collection_1.60_v2_(30349).exe' ARCHIVE_BASE_EN_0_MD5='169a48088443cf5ccf92dcca1b747316' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_SIZE='1400000' ARCHIVE_BASE_EN_0_VERSION='1.60-gog30349' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/the_settlers_3_ultimate_collection' ARCHIVE_BASE_DE_0='setup_the_settlers_3_-_ultimate_collection_1.60_v2_(german)_(30349).exe' ARCHIVE_BASE_DE_0_MD5='b667efd448e4ef471dd53a38342abc67' ARCHIVE_BASE_DE_0_TYPE='innosetup' ARCHIVE_BASE_DE_0_SIZE='1400000' ARCHIVE_BASE_DE_0_VERSION='1.60-gog30349' ARCHIVE_BASE_DE_0_URL='https://www.gog.com/game/the_settlers_3_ultimate_collection' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' _inmm.dll bglwinr.dll ir50_32.dll ir50_qc.dll ir50_qcx.dll libogg-0.dll libvorbis-0.dll libvorbisfile-3.dll msvcirt.dll msvcrt.dll newtoolr.dll patchw32.dll fileconvert.exe s3.exe s3_multi.exe setups3.exe' CONTENT_GAME_L10N_FILES=' manual s3editor solution tips s3/add s3/mis_v s3qota/add s3qota/mis_v snd/siedler3_01.dat data.dat s3cd1.dat' CONTENT_GAME_DATA_PATH='app' CONTENT_GAME_DATA_FILES=' s3.dat s3gold1.dat s3gold2.dat s3mcd1.dat s3qota1.dat solution/_vti_pvt/service.lck solution/_vti_pvt/structure.cnf' CONTENT_GAME0_DATA_FILES=' gfx map music s3mcd s3/mis_m s3qota/mis_m snd/siedler3_00.dat gsdd_lnk.gif s3cd2.dat' CONTENT_DOC_DATA_FILES=' the settlers iii - manual.pdf readme.txt' APP_MAIN_TYPE='wine' APP_MAIN_EXE='s3.exe' APP_MAIN_ICON='s3gold.ico' USER_PERSISTENT_DIRECTORIES=' save' PACKAGES_LIST='PKG_BIN PKG_L10N PKG_DATA' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_ID_EN="${PKG_L10N_ID}-en" PKG_L10N_ID_DE="${PKG_L10N_ID}-de" PKG_L10N_PROVIDE="$PKG_L10N_ID" PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_DE='German localization' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # "icodecs" winetricks verb is required for correct intro movie playback APP_WINETRICKS='icodecs' # Set required registry keys registry_dump_init_file='registry-dumps/init.reg' registry_dump_init_content='Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\Software\BlueByte\S3Editor] "Browser"="" "Editor"=dword:00000001 "EditorPath"="C:\\'"$GAME_ID"'\\S3Editor" "GameExe"="\\S3.exe" "Help"="C:\\'"$GAME_ID"'\\S3Editor\\Help\\English\\Index.htm" "Language"=dword:00000009 "SourceMapDir"="C:\\'"$GAME_ID"'\\S3Editor\\Source\\" "UserMapDir"="\\Map\\User\\" [HKEY_LOCAL_MACHINE\Software\BlueByte\S3PLUSCD] "EditorPathPlus"="\\S3Editor" "EditorPlus"=dword:00000001 "GameExePlus"="\\S3.EXE" "HelpPlus"="\\S3Editor\\Help\\English\\Index.htm" "LanguagePlus"=dword:00000009 "SourceMapDirPlus"="\\S3Editor\\Source\\" "UserMapDirPlus"="\\Map\\User\\" [HKEY_LOCAL_MACHINE\Software\BlueByte\Siedler3\1.0\General] "BannerId"=dword:00000000 "BannerSubId"=dword:00000000 "BuildHelp"=dword:00000001 "Campaigns"=hex:20,72,d5,87,23,9c,bf,aa,b1,14,78,5c,d2,f9,5b,63,13,57,37,5b,7a,\ 65,7b,3d,7b,3b,48,62,fa,a0,77,6c,56,7a,43,1a,81,91,32,a4,df,fb,53,70,e2,48,\ 2b,ed,1b,87,31,b1,d1,00 "CampaignsPlus"=hex:c2,43,d4,d6,2c,17,a2,80,e4,d1,56,8b,a1,94,17,72,d9,5b,9d,\ 40,04,23,cd,69,74,1a,0b,cc,f4,c5,c6,c6,b8,e1,60,d8,b5,ee,16,73,0c,63,59,75,\ b3,b7,e5,2c,d2,db,bd,b7,20,00 "CDAudio"=dword:00000002 "ClanFlag"=dword:00000000 "FirstLogon"=dword:00000001 "FogSpeed"=dword:00000001 "Font"="MS Sans Serif" "FontSize"=dword:0000000f "GameZoneSelection"=dword:000001ff "GDIMouse"=dword:00000001 "Gold"=dword:00000001 "Intro"=dword:00000001 "Language"=dword:00000009 "MessageLevel"=dword:00000009 "Mission"=dword:00000001 "Newbie"=dword:00000000 "NoAlpha"=dword:00000000 "Playername"="Player" "Plus"=dword:00000001 "Resolution"=dword:00000000 "ScrollMode"=dword:00000000 "ScrollSpeed"=dword:00000005 "SoundFormat"=dword:00000001 "Tips&Tricks"=dword:00000001 "VideoFormat"=dword:00000001 "WaitVBlank"=dword:00000001 [HKEY_LOCAL_MACHINE\Software\BlueByte\Siedler3\1.0\Patches] "convert"="0"' CONTENT_GAME_BIN_FILES="$CONTENT_GAME_BIN_FILES $registry_dump_init_file" APP_REGEDIT="$APP_REGEDIT $registry_dump_init_file" SCRIPT_DEPS="$SCRIPT_DEPS iconv" # Set serial number registry_dump_serial_file='registry-dumps/serial.reg' registry_dump_serial_content='Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\Software\BlueByte\Siedler3\1.0\General] "SingleNumber"="%SingleNumber%"' CONTENT_GAME_BIN_FILES="$CONTENT_GAME_BIN_FILES $registry_dump_serial_file" APP_REGEDIT="$APP_REGEDIT $registry_dump_serial_file" SCRIPT_DEPS="$SCRIPT_DEPS iconv" APP_MAIN_PRERUN="$APP_MAIN_PRERUN # Set serial number ## For some reason the game erase it on first launch, ## so we reset it prior to each launch. \$(regedit_command) '$registry_dump_serial_file'" # Set the CPU affinity to a single core, # to avoid performance issues # cf. https://bugs.winehq.org/show_bug.cgi?id=32478 APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Set the CPU affinity to a single core, # to avoid performance issues # cf. https://bugs.winehq.org/show_bug.cgi?id=32478 wine_command() { printf "taskset --cpu-list 0 " if [ -z "$PLAYIT_WINE_CMD" ]; then command -v wine return 0 fi printf "%s" "$PLAYIT_WINE_CMD" }' ## Disable csmt, as it would cause performance issues with single CPU affinity. APP_WINETRICKS="$APP_WINETRICKS csmt=off" # Load common functions target_version='2.19' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Include required extra DLL library mv '__support/add/winmmxp.dll' '_inmm.dll' # Set required registry keys mkdir --parents "$(dirname "$registry_dump_init_file")" printf '%s' "$registry_dump_init_content" | \ iconv \ --from-code=UTF-8 --to-code=UTF-16 \ --output="$registry_dump_init_file" # Set serial number game_serial=$(grep 'SingleNumber' 'regs.cmd' | cut --delimiter='"' --fields=4) mkdir --parents "$(dirname "$registry_dump_serial_file")" printf '%s' "$registry_dump_serial_content" | \ sed "s/%SingleNumber%/${game_serial}/" | \ iconv \ --from-code=UTF-8 --to-code=UTF-16 \ --output="$registry_dump_serial_file" ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-sexy-brutale.sh0000755000000000000000000000613414471751340015366 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # The Sexy Brutale # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220417.2 # Set game-specific variables GAME_ID='the-sexy-brutale' GAME_NAME='The Sexy Brutale' ARCHIVE_BASE_1='setup_the_sexy_brutale_gog-2_(40574).exe' ARCHIVE_BASE_1_MD5='ff1e34c2727d01a9f16a1c6d1acedd8e' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='2600000' ARCHIVE_BASE_1_VERSION='1.0-gog40574' ARCHIVE_BASE_1_URL='https://www.gog.com/game/the_sexy_brutale' ARCHIVE_BASE_0='setup_the_sexy_brutale_gog-1_(11101).exe' ARCHIVE_BASE_0_MD5='6d94492d797e199c1e67b05dabbc52e5' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_the_sexy_brutale_gog-1_(11101)-1.bin' ARCHIVE_BASE_0_PART1_MD5='3158c4b5d6e9eafb9c4d1a79812601e0' ARCHIVE_BASE_0_PART1_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='3400000' ARCHIVE_BASE_0_VERSION='1.0-gog11101' UNITY3D_NAME='tsb' CONTENT_PATH_DEFAULT='.' ARCHIVE_GAME_BIN_FILES=" ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_data/mono ${UNITY3D_NAME}_data/plugins" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" # Keep compatibility with old installers structure CONTENT_PATH_DEFAULT_0='app' APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" APP_MAIN_ICON="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Use persistent storage for user data APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/LocalLow/CGS/TSB' CONFIG_FILES='userdata/*.gd' # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" # Enforce a consistent Unity3D name ( content_path=$(content_path_default) unity3d_name=$(unity3d_name) alternative_name='the sexy brutale' cd "${PLAYIT_WORKDIR}/gamedata/${content_path}" if [ -e "${alternative_name}.exe" ]; then mv "${alternative_name}.exe" "${unity3d_name}.exe" fi if [ -e "${alternative_name}_data" ]; then mv "${alternative_name}_data" "${unity3d_name}_data" fi ) # Include game data prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icons PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-the-silver-case-demo.sh0000755000000000000000000000500314471751340016073 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The Silver Case (demo) # send your bug reports to contact@dotslashplay.it ### script_version=20230625.1 GAME_ID='the-silver-case-demo' GAME_NAME='The Silver Case (demo)' ARCHIVE_BASE_GOG_0='setup_the_silver_case_demo_2.0.0.1.exe' ARCHIVE_BASE_GOG_0_MD5='3c133cb2031160370917f120055c63b4' ARCHIVE_BASE_GOG_0_TYPE='innosetup' ARCHIVE_BASE_GOG_0_SIZE='960000' ARCHIVE_BASE_GOG_0_VERSION='1.0-gog2.0.0.1' ## This installer is no longer available from Playism, ## as they turned their store into yet another Steam keys reseller. ARCHIVE_BASE_PLAYISM_0='TheSilverCase_DEMO_Playism0930.zip' ARCHIVE_BASE_PLAYISM_0_MD5='a1bbd59ead01c4e1dc50c38b3a65c5ea' ARCHIVE_BASE_PLAYISM_0_SIZE='950000' ARCHIVE_BASE_PLAYISM_0_VERSION='1.0-playism0930' UNITY3D_NAME='thesilvercase_trial' CONTENT_PATH_DEFAULT_GOG='app' CONTENT_PATH_DEFAULT_PLAYISM='thesilvercase_demo_0930' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_data/mono ${UNITY3D_NAME}_data/plugins" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" case "$(context_archive)" in ('ARCHIVE_BASE_PLAYISM_'*) tolower . ;; esac ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-sojourn.sh0000755000000000000000000000505314471751340014440 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The Sojourn # send your bug reports to contact@dotslashplay.it ### script_version=20230321.2 GAME_ID='the-sojourn' GAME_NAME='The Sojourn' ARCHIVE_BASE_0='setup_the_sojourn_1.1_(64bit)_(41585).exe' ARCHIVE_BASE_0_MD5='dcb64504379bc323710bee15bf94deed' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_the_sojourn_1.1_(64bit)_(41585)-1.bin' ARCHIVE_BASE_0_PART1_MD5='6f1ba2e2348a794ba24ab0e5ae763e69' ARCHIVE_BASE_0_SIZE='2600000' ARCHIVE_BASE_0_VERSION='1.1-gog41585' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_sojourn' UNREALENGINE4_NAME='thesojourn' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" engine ${UNREALENGINE4_NAME}/binaries ${UNREALENGINE4_NAME}/plugins ${UNREALENGINE4_NAME}.exe" CONTENT_GAME_DATA_FILES=" ${UNREALENGINE4_NAME}" WINE_DIRECT3D_RENDERER='dxvk' APP_WINE_LINK_DIRS=" userdata:users/\${USER}/AppData/Local/${UNREALENGINE4_NAME}/Saved" USER_PERSISTENT_DIRECTORIES=' userdata/Config/WindowsNoEditor userdata/SaveGames' APP_MAIN_EXE="${UNREALENGINE4_NAME}.exe" APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=101' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPS_ARCH='gst-plugins-base gst-plugins-good gst-libav' PKG_BIN_DEPS_DEB='gstreamer1.0-plugins-base, gstreamer1.0-plugins-good, gstreamer1.0-libav' PKG_BIN_DEPS_GENTOO='media-libs/gst-plugins-base media-plugins/gst-plugins-good media-libs/gst-plugins-libav' # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-stanley-parable.sh0000755000000000000000000000736314471751340016032 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # The Stanley Parable # send your bug reports to contact@dotslashplay.it ### script_version=20231114.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='the-stanley-parable' GAME_NAME='The Stanley Parable' ARCHIVE_BASE_0_NAME='The_Stanley_Parable_Setup.tar' ARCHIVE_BASE_0_MD5='10a98d7fb93017eb666281bf2d3da28d' ARCHIVE_BASE_0_SIZE='2100000' ARCHIVE_BASE_0_VERSION='1.0-humble161007' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/the-stanley-parable' CONTENT_PATH_DEFAULT='data' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/bin" CONTENT_LIBS_BIN_FILES=' bsppack.so crashhandler.so datacache.so dedicated.so engine.so filesystem_stdio.so inputsystem.so launcher.so libtier0.so libtogl.so libvpx.so.1 libvpx.so.1.0 libvpx.so.1.0.0 libvstdlib.so localize.so materialsystem.so puzzlemaker_dll.so scenefilecache.so shaderapidx9.so shaderapiempty.so soundemittersystem.so stdshader_dx9.so studiorender.so valve_avi.so vaudio_speex.so vgui2.so vguimatsurface.so vphysics.so vrad_dll.so vscript.so vvis_dll.so' ## Several shipped libraries rely on the Steam libraries. CONTENT_LIBS_BIN_FILES="${CONTENT_LIBS_BIN_FILES:-} libsteam_api_linux.so libsteam_api.so libsteam.so" CONTENT_GAME_BIN_FILES=' bin/*.bin bin/*.cfg bin/*.dat bin/*.fgd bin/*.so bin/*.txt bin/vbsp_linux bin/vrad_linux bin/vvis_linux thestanleyparable/bin stanley_linux' CONTENT_GAME_DATA_FILES=' platform stanley.png thestanleyparable' CONTENT_DOC_DATA_FILES=' thirdpartylegalnotices.doc' USER_PERSISTENT_DIRECTORIES=' thestanleyparable/cfg thestanleyparable/save' USER_PERSISTENT_FILES=' thestanleyparable/stats.vdf' APP_MAIN_EXE='stanley_linux' APP_MAIN_ICON='stanley.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libstdc++.so.6 libtcmalloc_minimal.so.4 libuuid.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Some libraries are only found by the game engine if they are in a hardcoded path. libraries_path_source=$(path_libraries) libraries_path_destination="$(package_path 'PKG_BIN')$(path_game_data)/bin" mkdir --parents "$libraries_path_destination" ln --symbolic \ "${libraries_path_source}/launcher.so" \ "${libraries_path_source}/filesystem_stdio.so" \ "$libraries_path_destination" # Extract game data archive_extraction_default ARCHIVE_INNER_1_PATH="${PLAYIT_WORKDIR}/gamedata/The Stanley Parable Setup" ## This MojoSetup installer is not based on Makeself. ARCHIVE_INNER_1_EXTRACTOR='bsdtar' archive_extraction 'ARCHIVE_INNER_1' rm "$(archive_path 'ARCHIVE_INNER_1')" ARCHIVE_INNER_2_PATH="${PLAYIT_WORKDIR}/gamedata/data/tsp.tar" archive_extraction 'ARCHIVE_INNER_2' rm "$(archive_path 'ARCHIVE_INNER_2')" # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-stillness-of-the-wind.sh0000755000000000000000000001001514471751340017072 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # The Stillness of the Wind # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210331.3 # Set game-specific variables GAME_ID='the-stillness-of-the-wind' GAME_NAME='The Stillness of the Wind' ARCHIVE_ITCH='Stillness1.1.1Win.zip' ARCHIVE_ITCH_URL='https://fellowtraveller.itch.io/the-stillness-of-the-wind' ARCHIVE_ITCH_MD5='0d2a72ead3b9311c386b3f42ff7f1839' ARCHIVE_ITCH_SIZE='910000' ARCHIVE_ITCH_VERSION='1.1.1-itch' ARCHIVE_GAME_BIN_PATH='Stillness1.1.1Win' ARCHIVE_GAME_BIN_FILES='StillnessWin.exe StillnessWin_Data/Plugins StillnessWin_Data/Managed StillnessWin_Data/Mono UnityPlayer.dll' ARCHIVE_GAME_DATA_PATH='Stillness1.1.1Win' ARCHIVE_GAME_DATA_FILES='StillnessWin_Data Subtitles Videos' APP_MAIN_TYPE='wine' APP_MAIN_EXE='StillnessWin.exe' APP_MAIN_ICON='StillnessWin.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" set_standard_permissions "$PLAYIT_WORKDIR/gamedata" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Use persistent storage for game settings REGISTRY_KEY='HKEY_CURRENT_USER\Software\Memory of God\The Stillness of the Wind' REGISTRY_DUMP='registry-dumps/settings.reg' CONFIG_DIRS="${CONFIG_DIRS} ./$(dirname "$REGISTRY_DUMP")" APP_MAIN_PRERUN="$APP_MAIN_PRERUN # Set path for persistent dump of registry keys REGISTRY_KEY='$REGISTRY_KEY' REGISTRY_DUMP='$REGISTRY_DUMP'" APP_MAIN_POSTRUN="$APP_MAIN_POSTRUN"' # Dump registry keys regedit -E "$REGISTRY_DUMP" "$REGISTRY_KEY"' APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Load dump of registry keys if [ -e "$REGISTRY_DUMP" ]; then wine regedit.exe "$REGISTRY_DUMP" fi' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-the-subject.sh0000755000000000000000000000766314471751340014411 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # The Subject # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20201023.3 # Set game-specific variables GAME_ID='the-subject' GAME_NAME='The Subject' ARCHIVES_LIST=' ARCHIVE_ITCH_0' ARCHIVE_ITCH_0='TheSubject_Linux.zip' ARCHIVE_ITCH_0_URL='https://darkstonedigital.itch.io/thesubject' ARCHIVE_ITCH_0_MD5='09f72ac6554e430ed5aab8b887b1abbe' ARCHIVE_ITCH_0_SIZE='2400000' ARCHIVE_ITCH_0_VERSION='2.0.3-itch1' ARCHIVE_ITCH_0_TYPE='zip' ARCHIVE_GAME_BIN32_PATH='TheSubjectLinux' ARCHIVE_GAME_BIN32_FILES='TheSubject.x86 TheSubject_Data/Mono/x86 TheSubject_Data/Plugins/x86' ARCHIVE_GAME_BIN64_PATH='TheSubjectLinux' ARCHIVE_GAME_BIN64_FILES='TheSubject.x86_64 TheSubject_Data/Mono/x86_64 TheSubject_Data/Plugins/x86_64' ARCHIVE_GAME_DATA_PATH='TheSubjectLinux' ARCHIVE_GAME_DATA_FILES='TheSubject_Data' DATA_DIRS='./logs' APP_MAIN_TYPE='native' APP_MAIN_PRERUN='# Work around Unity3D poor support for non-US locales export LANG=C' APP_MAIN_EXE_BIN32='TheSubject.x86' APP_MAIN_EXE_BIN64='TheSubject.x86_64' APP_MAIN_ICON='TheSubject_Data/Resources/UnityPlayer.png' # Use a per-session dedicated file for logs # shellcheck disable=SC2016 APP_MAIN_OPTIONS='-logFile ./logs/$(date +%F-%R).log' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID glibc libstdc++ gtk2 libgdk_pixbuf-2.0.so.0 libgobject-2.0.so.0 libglib-2.0.so.0" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-the-suicide-of-rachel-foster.sh0000755000000000000000000000471714471751340017532 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=20231011.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' 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_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data PKG='PKG_DATA' icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-swapper.sh0000755000000000000000000000703614471751340014425 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # The Swapper # send your bug reports to contact@dotslashplay.it ### script_version=20230825.1 GAME_ID='the-swapper' GAME_NAME='The Swapper' ARCHIVE_BASE_0='the-swapper-linux-1.24_1409159048.sh' ARCHIVE_BASE_0_MD5='4f9627d245388edc320f61fae7cbd29f' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='980000' ARCHIVE_BASE_0_VERSION='1.24-humble140404' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/the-swapper' CONTENT_PATH_DEFAULT='data/noarch' CONTENT_GAME_MAIN_FILES=' data mono TheSwapper.exe TheSwapper.exe.config BugReporter.exe mainSettings.ini config.xml AdvanceMath.dll Antlr3.Runtime.dll C5.dll FarseerPhysics331.dll HackFlipcodeDecomposer.dll ImageManipulation.dll Jint.dll Lidgren.Network.dll MiniTK.dll MiniTK.dll.config MonoGame.Framework.dll Newtonsoft.Json.dll OptimusSwitcher.dll Poly2Tri.dll SDL2#.dll SDL2#.dll.config SteamManagedWrapper.dll Steamworks.NET.dll TargaImage.dll TrueEngine.dll TrueEngine.dll.config' CONTENT_DOC_MAIN_FILES=' Licences README*' APP_MAIN_TYPE='mono' APP_MAIN_EXE='TheSwapper.exe' APP_MAIN_ICON='TheSwapper.exe' PKG_MAIN_DEPS='mono' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libSDL2-2.0.so.0 libSDL2_image-2.0.so.0' PKG_MAIN_DEPENDENCIES_MONO_LIBRARIES=' mscorlib.dll Mono.Posix.dll Mono.Security.dll OpenTK.dll OpenTK.Compatibility.dll OpenTK.GLControl.dll System.dll System.Configuration.dll System.Core.dll System.Data.dll System.Drawing.dll System.Numerics.dll System.Runtime.Serialization.dll System.Security.dll System.Xml.dll System.Xml.Linq.dll' # Delete unwanted Dropbox metadata files SCRIPT_DEPS="$SCRIPT_DEPS find" # Include shipped libraries that can not be replaced by system ones CONTENT_LIBS_LIBS32_PATH="${CONTENT_PATH_DEFAULT}/lib" CONTENT_LIBS_LIBS32_FILES=' libfmodex.so' CONTENT_LIBS_LIBS64_PATH="${CONTENT_PATH_DEFAULT}/lib64" CONTENT_LIBS_LIBS64_FILES=' libfmodex.so' PACKAGES_LIST='PKG_MAIN PKG_LIBS32 PKG_LIBS64' PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS32_ID="$PKG_LIBS_ID" PKG_LIBS64_ID="$PKG_LIBS_ID" PKG_LIBS32_ARCH='32' PKG_LIBS64_ARCH='64' PKG_LIBS_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libm.so.6 libpthread.so.0 libstdc++.so.6' PKG_LIBS32_DEPENDENCIES_LIBRARIES="$PKG_LIBS_DEPENDENCIES_LIBRARIES" PKG_LIBS64_DEPENDENCIES_LIBRARIES="$PKG_LIBS_DEPENDENCIES_LIBRARIES" PKG_MAIN_DEPS="$PKG_MAIN_DEPS $PKG_LIBS_ID" # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted Dropbox metadata files find . \ -name '*:com.dropbox.attributes:$DATA' \ -delete ) # Include game icons icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-swords-of-ditto.sh0000755000000000000000000000400614471751340016002 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The Swords of Ditto # send your bug reports to contact@dotslashplay.it ### script_version=20230818.1 GAME_ID='the-swords-of-ditto' GAME_NAME='The Swords of Ditto: Mormoʼs Curse' ARCHIVE_BASE_0='the_swords_of_ditto_1_17_02_204_30316.sh' ARCHIVE_BASE_0_MD5='9191f474d17f2744c1d6f9153be74780' ARCHIVE_BASE_0_SIZE='1200000' ARCHIVE_BASE_0_VERSION='1.17.02.204' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_swords_of_ditto' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' The_Swords_of_Ditto' CONTENT_GAME_DATA_FILES=' assets' APP_MAIN_EXE='The_Swords_of_Ditto' APP_MAIN_ICON='assets/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libcurl.so.4 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libssl.so.1.1 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 libz.so.1' # Load common functions 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-tail-makes-the-fox.sh0000755000000000000000000001002414471751340016332 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # The Tail Makes the Fox # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20200925.1 # Set game-specific variables GAME_ID='the-tail-makes-the-fox' GAME_NAME='The Tail Makes the Fox' ARCHIVES_LIST=' ARCHIVE_ITCH_0' ARCHIVE_ITCH_0='The_Tail_Makes_the_Fox-1.26-pc.zip' ARCHIVE_ITCH_0_URL='https://reineworks.itch.io/the-tail-makes-the-fox' ARCHIVE_ITCH_0_MD5='dc1f20ed2ee44029fab065e049b9f372' ARCHIVE_ITCH_0_SIZE='590000' ARCHIVE_ITCH_0_VERSION='1.26-itch1' ARCHIVE_ITCH_0_TYPE='zip' ARCHIVE_DOC_DATA_PATH='The_Tail_Makes_the_Fox-1.26-pc' ARCHIVE_DOC_DATA_FILES='README.html' ARCHIVE_GAME_BIN32_PATH='The_Tail_Makes_the_Fox-1.26-pc' ARCHIVE_GAME_BIN32_FILES='lib/linux-i686 The_Tail_Makes_the_Fox.sh' ARCHIVE_GAME_BIN64_PATH='The_Tail_Makes_the_Fox-1.26-pc' ARCHIVE_GAME_BIN64_FILES='lib/linux-x86_64' ARCHIVE_GAME_DATA_PATH='The_Tail_Makes_the_Fox-1.26-pc' ARCHIVE_GAME_DATA_FILES='lib/pythonlib2.7 game The_Tail_Makes_the_Fox.py renpy icon.png' DATA_DIRS='game/saves' APP_MAIN_TYPE='native' APP_MAIN_EXE='The_Tail_Makes_the_Fox.sh' APP_MAIN_ICON='icon.png' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID glibc libstdc++" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Copy launching script between the binaries packages LAUNCHER_SOURCE="${PKG_BIN32_PATH}${PATH_GAME}/$APP_MAIN_EXE" LAUNCHER_DESTINATION="${PKG_BIN64_PATH}${PATH_GAME}/$APP_MAIN_EXE" mkdir --parents "$(dirname "$LAUNCHER_DESTINATION")" cp "$LAUNCHER_SOURCE" "$LAUNCHER_DESTINATION" # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-the-talos-principle.sh0000755000000000000000000000743214471751340016051 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # The Talos Principle # build native Linux packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220805.1 GAME_ID='the-talos-principle' GAME_NAME='The Talos Principle' ARCHIVE_BASE_1='setup_the_talos_principle_gold_edition_1.01_(64bit)_(42512).exe' ARCHIVE_BASE_1_MD5='b011b16d09532b2e709700477bc96017' ARCHIVE_BASE_1_EXTRACTOR='innoextract' ARCHIVE_BASE_1_EXTRACTOR_OPTIONS='--progress=1 --silent' ARCHIVE_BASE_1_PART1='setup_the_talos_principle_gold_edition_1.01_(64bit)_(42512)-1.bin' ARCHIVE_BASE_1_PART1_MD5='2e2430b8a2991a4d24f1aaec583b2ec3' ARCHIVE_BASE_1_PART2='setup_the_talos_principle_gold_edition_1.01_(64bit)_(42512)-2.bin' ARCHIVE_BASE_1_PART2_MD5='3b8770c9fdcf8f670ff6d0b06f011cf0' ARCHIVE_BASE_1_SIZE='6800000' ARCHIVE_BASE_1_VERSION='1.01-gog42512' ARCHIVE_BASE_1_URL='https://www.gog.com/game/the_talos_principle_gold_edition' ARCHIVE_BASE_0='setup_the_talos_principle_1.0_(64bit)_(41435).exe' ARCHIVE_BASE_0_MD5='769f3ba085c913d2bc44e22726bdadc8' ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS='--progress=1 --silent' ARCHIVE_BASE_0_PART1='setup_the_talos_principle_1.0_(64bit)_(41435)-1.bin' ARCHIVE_BASE_0_PART1_MD5='4b94687328d0017b219e932ce73c44f5' ARCHIVE_BASE_0_PART2='setup_the_talos_principle_1.0_(64bit)_(41435)-2.bin' ARCHIVE_BASE_0_PART2_MD5='4216d66194c80ef8cfbfb5eeff82a54a' ARCHIVE_BASE_0_SIZE='6900000' ARCHIVE_BASE_0_VERSION='1.0-gog41435' CONTENT_PATH_DEFAULT='.' ARCHIVE_GAME_BIN_FILES=' Bin' ARCHIVE_GAME_DATA_FILES=' Content' APP_MAIN_TYPE='wine' APP_MAIN_EXE='Bin/x64/Talos.exe' APP_MAIN_ICON='Bin/x64/Talos.exe' PACKAGES_LIST='PKG_DATA PKG_BIN' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Set minimal configuration file APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Set minimal configuration file CONF_FILE="UserData/Talos.ini" if [ ! -e "$CONF_FILE" ] ; then cat > "$CONF_FILE" <<- EOF gfx_strAPI = "Vulkan"; sfx_strAPI = "XAudio"; sfx_strAudioDevice = "ID:0"; EOF fi' # Use persistent storage for user data USER_PERSISTENT_DIRECTORIES=' UserData' USER_PERSISTENT_FILES=' UserCfg.lua' # Work around broken graphics driver detection code checkdriver_lua_file='Content/Talos/Config/CheckDriver.lua' checkdriver_lua_content='-- assume no driver version detection gfx_iReqDriverVersion = 0; gfx_bWrongDriver = 0;' SCRIPT_DEPS="$SCRIPT_DEPS dos2unix" # Load common functions target_version='2.17' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( content_path=$(content_path_default) cd "${PLAYIT_WORKDIR}/gamedata/${content_path}" # Work around broken graphics driver detection code printf '%s' "$checkdriver_lua_content" > "$checkdriver_lua_file" unix2dos --quiet "$checkdriver_lua_file" ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-the-temple-of-elemental-evil.sh0000755000000000000000000000514114471751340017530 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # The Temple of Elemental Evil # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220712.1 GAME_ID='the-temple-of-elemental-evil' GAME_NAME='The Temple of Elemental Evil' ARCHIVE_BASE_1='setup_temple_of_elemental_evil_1.0_(15416).exe' ARCHIVE_BASE_1_MD5='1c7b493f71c2c92050a63535b3abec67' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='1400000' ARCHIVE_BASE_1_VERSION='1.3-gog15416' ARCHIVE_BASE_1_URL='https://www.gog.com/game/the_temple_of_elemental_evil' ARCHIVE_BASE_0='setup_temple_of_elemental_evil_2.0.0.13.exe' ARCHIVE_BASE_0_MD5='44ea1e38ed1da26aefb32a39a899f770' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1400000' ARCHIVE_BASE_0_VERSION='1.3-gog2.0.0.13' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' ARCHIVE_DOC_DATA_FILES=' *.pdf *.txt' ARCHIVE_GAME_BIN_FILES=' *.dll *.exe *.pyd miles' ARCHIVE_GAME_DATA_FILES=' toee.ico *.dat data modules' ARCHIVE_GAME0_BIN_PATH="${CONTENT_PATH_DEFAULT}/__support/app" ARCHIVE_GAME0_BIN_PATH_0="$CONTENT_PATH_DEFAULT_0" ARCHIVE_GAME0_BIN_FILES=' *.cfg' APP_MAIN_TYPE='wine' APP_MAIN_EXE='toee.exe' APP_MAIN_ICON="${CONTENT_PATH_DEFAULT}/toee.ico" APP_MAIN_ICON_0="${CONTENT_PATH_DEFAULT_0}/toee.ico" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Use persistent storage for user data DATA_DIRS='data/maps data/save data/scr modules/toee' DATA_FILES='toee.cfg' # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icon PKG='PKG_DATA' icons_get_from_workdir 'APP_MAIN' # Include game data prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-the-tiny-bang-story.sh0000755000000000000000000001055514471751340016012 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # The Tiny Bang Story # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20211027.1 # Set game-specific variables GAME_ID='the-tiny-bang-story' GAME_NAME='The Tiny Bang Story' # Game archives ## French version ARCHIVE_BASE_FR_1='setup_the_tiny_bang_story_gog-1(a)_(french)_(23028).exe' ARCHIVE_BASE_FR_1_MD5='e66f1b4bf1eb19b1e569a38d897e3f27' ARCHIVE_BASE_FR_1_TYPE='innosetup' ARCHIVE_BASE_FR_1_SIZE='200000' ARCHIVE_BASE_FR_1_VERSION='1.0-gog23028' ARCHIVE_BASE_FR_1_URL='https://www.gog.com/game/the_tiny_bang_story' ## English version ARCHIVE_BASE_EN_1='setup_the_tiny_bang_story_gog-1(a)_(23028).exe' ARCHIVE_BASE_EN_1_MD5='a416471e10da3b374f4f43664cc4f179' ARCHIVE_BASE_EN_1_TYPE='innosetup' ARCHIVE_BASE_EN_1_SIZE='200000' ARCHIVE_BASE_EN_1_VERSION='1.0-gog23028' ARCHIVE_BASE_EN_1_URL='https://www.gog.com/game/the_tiny_bang_story' ARCHIVE_BASE_EN_0='setup_the_tiny_bang_story_gog-1_(22449).exe' ARCHIVE_BASE_EN_0_MD5='7b4e54787f46f81242e39f16f75fd8f0' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_SIZE='190000' ARCHIVE_BASE_EN_0_VERSION='1.0-gog22449' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='game.exe' ARCHIVE_GAME_L10N_PATH='.' ARCHIVE_GAME_L10N_FILES='assets/strings.xml' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='assets' APP_MAIN_TYPE='wine' APP_MAIN_EXE='game.exe' APP_MAIN_ICON='game.exe' PACKAGES_LIST='PKG_BIN PKG_L10N PKG_DATA' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_ID_EN="${PKG_L10N_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDE="$PKG_L10N_ID" PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID $PKG_L10N_ID wine" # Use persistent storage for user data APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/$(id -un)/Application Data/Colibri Games/The Tiny Bang Story' DATA_DIRS="$DATA_DIRS ./userdata" # Load common functions target_version='2.14' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "$PLAYIT_WORKDIR/gamedata" # Include game icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-the-vanishing-of-ethan-carter.sh0000755000000000000000000000573614471751340017714 0ustar rootroot#!/bin/sh # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The Vanishing of Ethan Carter # send your bug reports to contact@dotslashplay.it ### script_version=20230428.5 GAME_ID='the-vanishing-of-ethan-carter' GAME_NAME='The Vanishing of Ethan Carter' ARCHIVE_BASE_0='setup_the_vanishing_of_ethan_carter_1.04_(18494).exe' ARCHIVE_BASE_0_MD5='ac039c2c1dcfc093840b0a5ce15008c0' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_the_vanishing_of_ethan_carter_1.04_(18494)-1.bin' ARCHIVE_BASE_0_PART1_MD5='77dbaf659c02d6fbb77917be36bf463d' ARCHIVE_BASE_0_PART2='setup_the_vanishing_of_ethan_carter_1.04_(18494)-2.bin' ARCHIVE_BASE_0_PART2_MD5='35e0cc8447e782b57525aed48837bd1a' ARCHIVE_BASE_0_SIZE='10000000' ARCHIVE_BASE_0_VERSION='1.04-gog18494' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_vanishing_of_ethan_carter' UNREALENGINE4_NAME='astronautsgame' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN32_FILES=' binaries/win32' CONTENT_GAME_BIN64_FILES=' binaries/win64' CONTENT_GAME_DATA_FILES=" binaries/game binaries/build.properties engine ${UNREALENGINE4_NAME}" WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=" users/${USER}/Documents/My Games/The Vanishing of Ethan Carter/${UNREALENGINE4_NAME}" APP_MAIN_EXE_BIN32="binaries/win32/${UNREALENGINE4_NAME}-win32-shipping.exe" APP_MAIN_EXE_BIN64="binaries/win64/${UNREALENGINE4_NAME}-win64-shipping.exe" APP_MAIN_ICON="binaries/win32/${UNREALENGINE4_NAME}-win32-shipping.exe" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' PKG_BIN32_DEPENDENCIES_GSTREAMER_PLUGINS="$PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS" PKG_BIN64_DEPENDENCIES_GSTREAMER_PLUGINS="$PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS" # 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-warlock-of-firetop-mountain.sh0000755000000000000000000001001614471751340020276 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # The Warlock of Firetop Mountain # send your bug reports to contact@dotslashplay.it ### script_version=20230222.1 GAME_ID='the-warlock-of-firetop-mountain' GAME_NAME='The Warlock of Firetop Mountain' ARCHIVE_BASE_1='WARLOCK_LINUX_487115.zip' ARCHIVE_BASE_1_MD5='ae29e02f78225d69a3bdb661e13f2a3f' ARCHIVE_BASE_1_SIZE='1600000' ARCHIVE_BASE_1_VERSION='1.0-humble180508' ARCHIVE_BASE_1_URL='https://www.humblebundle.com/store/the-warlock-of-firetop-mountain' ARCHIVE_BASE_0='WARLOCK_LINUX_487088.zip' ARCHIVE_BASE_0_MD5='17d4e909dbed98cd420eee5bb6a828d3' ARCHIVE_BASE_0_SIZE='1600000' ARCHIVE_BASE_0_VERSION='1.0-humble171022' UNITY3D_NAME='The Warlock of Firetop Mountain' CONTENT_PATH_DEFAULT='WARLOCK_LINUX_487115' CONTENT_PATH_DEFAULT_0='WARLOCK_LINUX_487088' ## The game fails to start if libCSteamworks.so is not available, ## libsteam_api.so is a requirement of libCSteamworks.so. CONTENT_LIBS_BIN32_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins/x86" CONTENT_LIBS_BIN32_FILES=' libCSteamworks.so libsteam_api.so ScreenSelector.so' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86" CONTENT_LIBS_BIN64_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_LIBS_BIN64_FILES=' libCSteamworks.so libsteam_api.so ScreenSelector.so' CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data/Mono/etc ${UNITY3D_NAME}_Data/Managed ${UNITY3D_NAME}_Data/Resources ${UNITY3D_NAME}_Data/globalgamemanagers ${UNITY3D_NAME}_Data/ScreenSelector.png ${UNITY3D_NAME}_Data/level* ${UNITY3D_NAME}_Data/*.assets ${UNITY3D_NAME}_Data/*.resS ${UNITY3D_NAME}_Data/*.resource" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2 libz.so.1' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # The game engine fails to load some plugins unless they are found in a hardcoded path file_name='ScreenSelector.so' file_source="$(path_libraries)/${file_name}" for file_destination in \ "$(package_path 'PKG_BIN32')$(path_game_data)/$(unity3d_name)_Data/Plugins/x86/${file_name}" \ "$(package_path 'PKG_BIN64')$(path_game_data)/$(unity3d_name)_Data/Plugins/x86_64/${file_name}" do mkdir --parents "$(dirname "$file_destination")" ln --symbolic "$file_source" "$file_destination" done # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" set_standard_permissions . ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-westport-independent.sh0000755000000000000000000000654114471751340017126 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # The Westport Independent # send your bug reports to contact@dotslashplay.it ### script_version=20231004.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='the-westport-independent' GAME_NAME='The Westport Independent' ## This game used to be sold by gog.com, but is no longer available for sale there. ARCHIVE_BASE_0_NAME='gog_the_westport_independent_2.0.0.1.sh' ARCHIVE_BASE_0_MD5='7032059f085e94f52444e9bf4ed0195c' ARCHIVE_BASE_0_SIZE='130000' ARCHIVE_BASE_0_VERSION='1.0.0-gog2.0.0.1' CONTENT_PATH_DEFAULT='data/noarch/game/linux32' CONTENT_GAME_BIN32_FILES=' the_westport_independent' CONTENT_GAME_BIN64_PATH="${CONTENT_PATH_DEFAULT}/../linux64" CONTENT_GAME_BIN64_FILES=' the_westport_independent' CONTENT_GAME_DATA_FILES=' config.json assets' CONTENT_DOC_DATA_FILES=' *.txt' USER_PERSISTENT_FILES=' config.json' APP_MAIN_EXE='the_westport_independent' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libstdc++.so.6' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ARCHIVE_OPTIONAL_ICONS_0_NAME='the-westport-independent_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_0_MD5='054b51fe4c02f256b8130b40e93d28ae' ARCHIVE_OPTIONAL_ICONS_0_URL='https://downloads.dotslashplay.it/games/the-westport-independent' archive_initialize_optional \ 'ARCHIVE_ICONS' \ 'ARCHIVE_OPTIONAL_ICONS' ## TODO: The library should provide a function to check if a given optional archive has been provided. if [ -n "$(archive_path 'ARCHIVE_ICONS' 2>/dev/null || true)" ]; then archive_extraction 'ARCHIVE_ICONS' fi # Include game data ## TODO: The library should provide a function to check if a given optional archive has been provided. if [ -n "$(archive_path 'ARCHIVE_ICONS' 2>/dev/null || true)" ]; then ## Include the original game icons from the optional archive… CONTENT_ICONS_DATA_PATH='.' CONTENT_ICONS_DATA_FILES=' 16x16 32x32 48x48 256x256' content_inclusion 'ICONS_DATA' 'PKG_DATA' "$(path_icons)" else ## …or fall back on the GOG-specific icon. PKG='PKG_DATA' APP_MAIN_ICON='../../support/icon.png' icons_inclusion fi content_inclusion_default # Write launchers PKG='PKG_BIN32' launchers_write PKG='PKG_BIN64' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-whispered-world.sh0000755000000000000000000000457414471751340016067 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=20231017.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' 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' 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 . "$PLAYIT_LIB2" # Check for the presence of optional extra archives ARCHIVE_OPTIONAL_ICONS_0_NAME='the-whispered-world_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_0_MD5='3ec301bf71cf279aa8de91c136e16388' ARCHIVE_OPTIONAL_ICONS_0_URL='https://downloads.dotslashplay.it/resources/the-whispered-world' archive_initialize_optional \ 'ARCHIVE_ICONS' \ 'ARCHIVE_OPTIONAL_ICONS_0' # Extract game data archive_extraction_default if archive_is_available 'ARCHIVE_ICONS'; then archive_extraction 'ARCHIVE_ICONS' fi # Include game data if archive_is_available 'ARCHIVE_ICONS'; then CONTENT_ICONS_DATA_PATH='.' CONTENT_ICONS_DATA_FILES=' 16x16 32x32 48x48 256x256' content_inclusion 'ICONS_DATA' 'PKG_DATA' "$(path_icons)" else APP_MAIN_ICON='../support/icon.png' set_current_package 'PKG_DATA' icons_inclusion fi content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-witcher-1.sh0000755000000000000000000001042714471751340014545 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # The Witcher 1 # send your bug reports to contact@dotslashplay.it ### script_version=20231013.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='the-witcher-1' GAME_NAME='The Witcher' ARCHIVE_BASE_0_NAME='setup_the_witcher_enhanced_edition_1.5_(a)_(10712).exe' ARCHIVE_BASE_0_MD5='2440cfb5fb4890ff4b9bc4b88b434d38' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_the_witcher_enhanced_edition_1.5_(a)_(10712)-1.bin' ARCHIVE_BASE_0_PART1_MD5='e530a1a2e86094740b45a14f63260804' ARCHIVE_BASE_0_PART2_NAME='setup_the_witcher_enhanced_edition_1.5_(a)_(10712)-2.bin' ARCHIVE_BASE_0_PART2_MD5='fb3a478bcb6e4702e1e8d392cb55391d' ARCHIVE_BASE_0_PART3_NAME='setup_the_witcher_enhanced_edition_1.5_(a)_(10712)-3.bin' ARCHIVE_BASE_0_PART3_MD5='2df8369af401815a736f5d88f85fbf8d' ARCHIVE_BASE_0_SIZE='15000000' ARCHIVE_BASE_0_VERSION='1.5.726-gog10712' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_witcher' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' *.exe installed thewitchergdf.dll launcher register system' CONTENT_GAME_VOICES_FILES=' data/voices_*.bif' CONTENT_GAME_DATA_FILES=' data' CONTENT_DOC_DATA_FILES=' manual.pdf readme.rtf release.txt' ## TODO: Move the add-ons to a dedicated package. CONTENT_ADDONS_DATA_PATH="${CONTENT_PATH_DEFAULT}/__support/add/the witcher" CONTENT_ADDONS_DATA_FILES=' *.adv' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/The Witcher' WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\CD Projekt RED\Witcher\Bindings HKEY_CURRENT_USER\Software\CD Projekt RED\Witcher\Settings' ## Work around texture display problems. ## cf. https://bugs.winehq.org/show_bug.cgi?id=46553 WINE_WINETRICKS_VERBS='d3dx9_35' ## Work around invisible models and flickering. ## cf. https://bugs.winehq.org/show_bug.cgi?id=34052 WINE_WINETRICKS_VERBS="${WINE_WINETRICKS_VERBS:-} cfc=enabled" APP_MAIN_EXE='system/witcher.exe' ## Include "Enhanced Edition" add-ons APP_MAIN_PRERUN='# Include "Enhanced Edition" add-ons addons_destination="${WINEPREFIX}/drive_c/users/Public/Documents/the witcher" if [ ! -e "$addons_destination" ]; then install -D --mode=644 \ --target-directory="$addons_destination" \ "${PATH_GAME}/addons"/*.adv fi ' PACKAGES_LIST='PKG_BIN PKG_VOICES PKG_DATA' PKG_VOICES_ID="${GAME_ID}-voices" PKG_VOICES_DESCRIPTION='voices' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPS="$PKG_VOICES_ID" PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPS="$PKG_BIN_DEPS winetricks" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Set required registry keys install_folder='C:\\'"$(game_id)"'\\' registry_dump_init_file='registry-dumps/init.reg' registry_dump_init_content='Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\Software\CD Projekt Red\The Witcher] "InstallFolder"="'"${install_folder}"'" "IsDjinniInstalled"=dword:00000001 "Language"="3" "RegionVersion"="WE"' CONTENT_GAME_BIN_FILES="$(content_files 'GAME_BIN') $registry_dump_init_file" APP_REGEDIT="${APP_REGEDIT:-} $registry_dump_init_file" SCRIPT_DEPS="${SCRIPT_DEPS:-} iconv" check_deps # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Set required registry keys mkdir --parents "$(dirname "$registry_dump_init_file")" printf '%s' "$registry_dump_init_content" | \ iconv --from-code=UTF-8 --to-code=UTF-16 --output="$registry_dump_init_file" ) # Include game data PKG='PKG_DATA' icons_inclusion content_inclusion 'ADDONS_DATA' 'PKG_DATA' "$(path_game_data)/addons" content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-witcher-2.sh0000755000000000000000000001247214471751340014550 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # The Witcher 2 # send your bug reports to contact@dotslashplay.it ### script_version=20230623.1 GAME_ID='the-witcher-2' GAME_NAME='The Witcher 2: Assassins of Kings' ARCHIVE_BASE_1='the_witcher_2_assassins_of_kings_enhanced_edition_en_release_3_20150306204412_20992.sh' ARCHIVE_BASE_1_MD5='fd7b85d44e3da7fdf860ab4267574b36' ARCHIVE_BASE_1_SIZE='24000000' ARCHIVE_BASE_1_VERSION='1.3-gog.20992' ARCHIVE_BASE_1_URL='https://www.gog.com/game/the_witcher_2' ARCHIVE_BASE_0='gog_the_witcher_2_assassins_of_kings_enhanced_edition_2.2.0.8.sh' ARCHIVE_BASE_0_MD5='3fff5123677a7be2023ecdb6af3b82b6' ARCHIVE_BASE_0_SIZE='24000000' ARCHIVE_BASE_0_VERSION='1.3-gog.2.2.0.8' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_FILES=' libopenal-eon.so.1' CONTENT_GAME_BIN_FILES=' bin configurator eONprecompiledShaders32.dat sdlinput witcher2' CONTENT_GAME_VOICES_DE_FILES=' CookedPC/de0.w2speech' CONTENT_GAME_VOICES_EN_FILES=' CookedPC/en0.w2speech' CONTENT_GAME_VOICES_FR_FILES=' CookedPC/fr0.w2speech' CONTENT_GAME_VOICES_PL_FILES=' CookedPC/pl0.w2speech' CONTENT_GAME_VOICES_RU_FILES=' CookedPC/ru0.w2speech' CONTENT_GAME_DATA_PACK1_FILES=' CookedPC/pack0.dzip.split00' CONTENT_GAME_DATA_PACK2_FILES=' CookedPC/pack0.dzip.split01 CookedPC/pack0.dzip.split02' CONTENT_GAME_DATA_FILES=' CookedPC fontconfig linux icudt52l.dat SDLGamepad.config VPFS_registry.vpfsdb witcher2.vpfs' CONTENT_DOC_DATA_FILES=' *.rtf *.txt' APP_MAIN_EXE='witcher2' APP_MAIN_ICON='linux/icons/witcher2-icon.png' APP_CONFIG_ID="${GAME_ID}-config" APP_CONFIG_NAME="$GAME_NAME - configuration" APP_CONFIG_CAT='Settings' APP_CONFIG_EXE='configurator' APP_CONFIG_ICON='linux/icons/witcher2-configurator.png' PACKAGES_LIST='PKG_BIN PKG_VOICES_DE PKG_VOICES_EN PKG_VOICES_FR PKG_VOICES_PL PKG_VOICES_RU PKG_DATA_PACK1 PKG_DATA_PACK2 PKG_DATA' PKG_VOICES_ID="${GAME_ID}-voices" PKG_VOICES_DE_ID="${PKG_VOICES_ID}-de" PKG_VOICES_EN_ID="${PKG_VOICES_ID}-en" PKG_VOICES_FR_ID="${PKG_VOICES_ID}-fr" PKG_VOICES_PL_ID="${PKG_VOICES_ID}-pl" PKG_VOICES_RU_ID="${PKG_VOICES_ID}-ru" PKG_VOICES_DE_PROVIDE="$PKG_VOICES_ID" PKG_VOICES_EN_PROVIDE="$PKG_VOICES_ID" PKG_VOICES_FR_PROVIDE="$PKG_VOICES_ID" PKG_VOICES_PL_PROVIDE="$PKG_VOICES_ID" PKG_VOICES_RU_PROVIDE="$PKG_VOICES_ID" PKG_VOICES_DESCRIPTION='voices' PKG_VOICES_DE_DESCRIPTION="$PKG_VOICES_DESCRIPTION - German" PKG_VOICES_EN_DESCRIPTION="$PKG_VOICES_DESCRIPTION - English" PKG_VOICES_FR_DESCRIPTION="$PKG_VOICES_DESCRIPTION - French" PKG_VOICES_PL_DESCRIPTION="$PKG_VOICES_DESCRIPTION - Polish" PKG_VOICES_RU_DESCRIPTION="$PKG_VOICES_DESCRIPTION - Russian" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_PACK1_ID="${PKG_DATA_ID}-pack1" PKG_DATA_PACK2_ID="${PKG_DATA_ID}-pack2" PKG_DATA_DESCRIPTION='data' PKG_DATA_PACK1_DESCRIPTION="$PKG_DATA_DESCRIPTION - pack0, part 1" PKG_DATA_PACK2_DESCRIPTION="$PKG_DATA_DESCRIPTION - pack0, part 2" PKG_DATA_DEPS="$PKG_DATA_PACK1_ID $PKG_DATA_PACK2_ID" PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_VOICES_ID $PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libfreetype.so.6 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0 libstdc++.so.6 libX11.so.6' # Load common functions 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 . "$PLAYIT_LIB2" # Set package scripts to rebuild the full files from their chunks file_path='CookedPC/pack0.dzip' PKG_DATA_POSTINST_RUN="${PKG_DATA_POSTINST_RUN:-} $(huge_file_concatenate "$file_path")" PKG_DATA_PRERM_RUN="${PKG_DATA_PRERM_RUN:-} $(huge_file_delete "$file_path")" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions packages_list_common='PKG_BIN PKG_DATA_PACK1 PKG_DATA_PACK2 PKG_DATA' case "${LANG%_*}" in ('fr') lang_string='voix %s :' lang_de='allemandes' lang_en='anglaises' lang_fr='françaises' lang_pl='polonaises' lang_ru='russes' ;; ('en'|*) lang_string='%s voices:' lang_de='German' lang_en='English' lang_fr='French' lang_pl='Polish' lang_ru='Russian' ;; esac printf '\n' printf "$lang_string" "$lang_de" print_instructions $packages_list_common 'PKG_VOICES_DE' printf "$lang_string" "$lang_en" print_instructions $packages_list_common 'PKG_VOICES_EN' printf "$lang_string" "$lang_fr" print_instructions $packages_list_common 'PKG_VOICES_FR' printf "$lang_string" "$lang_pl" print_instructions $packages_list_common 'PKG_VOICES_PL' printf "$lang_string" "$lang_ru" print_instructions $packages_list_common 'PKG_VOICES_RU' # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-witcher-3.sh0000755000000000000000000002050714471751340014547 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # The Witcher 3 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20211211.1 # Set game-specific variables GAME_ID='the-witcher-3' GAME_NAME='The Witcher 3: Wild Hunt' ARCHIVE_BASE_0='setup_the_witcher_3_wild_hunt_goty_1.31_(a)_(9709).exe' ARCHIVE_BASE_0_MD5='321ed8cc0faedb903190a708686a1b50' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_the_witcher_3_wild_hunt_goty_1.31_(a)_(9709)-1.bin' ARCHIVE_BASE_0_PART1_MD5='8aab6124c22f1360585ee2285ea6d8f7' ARCHIVE_BASE_0_PART1_TYPE='innosetup' ARCHIVE_BASE_0_PART2='setup_the_witcher_3_wild_hunt_goty_1.31_(a)_(9709)-2.bin' ARCHIVE_BASE_0_PART2_MD5='3966e84f941b9fba384eb4a2b0b23c65' ARCHIVE_BASE_0_PART2_TYPE='innosetup' ARCHIVE_BASE_0_PART3='setup_the_witcher_3_wild_hunt_goty_1.31_(a)_(9709)-3.bin' ARCHIVE_BASE_0_PART3_MD5='bc80aa6b1538ecf757e7db6f3723e056' ARCHIVE_BASE_0_PART3_TYPE='innosetup' ARCHIVE_BASE_0_PART4='setup_the_witcher_3_wild_hunt_goty_1.31_(a)_(9709)-4.bin' ARCHIVE_BASE_0_PART4_MD5='71660541a0c358ef40802ba62a2c3c09' ARCHIVE_BASE_0_PART4_TYPE='innosetup' ARCHIVE_BASE_0_PART5='setup_the_witcher_3_wild_hunt_goty_1.31_(a)_(9709)-5.bin' ARCHIVE_BASE_0_PART5_MD5='9ad56c2efc7b09f480f7f8c7922c8b3f' ARCHIVE_BASE_0_PART5_TYPE='innosetup' ARCHIVE_BASE_0_PART6='setup_the_witcher_3_wild_hunt_goty_1.31_(a)_(9709)-6.bin' ARCHIVE_BASE_0_PART6_MD5='bd3699654b2e34668445219f2bbbc793' ARCHIVE_BASE_0_PART6_TYPE='innosetup' ARCHIVE_BASE_0_PART7='setup_the_witcher_3_wild_hunt_goty_1.31_(a)_(9709)-7.bin' ARCHIVE_BASE_0_PART7_MD5='1beb5a622e6695d0dd65cac5fab08793' ARCHIVE_BASE_0_PART7_TYPE='innosetup' ARCHIVE_BASE_0_PART8='setup_the_witcher_3_wild_hunt_goty_1.31_(a)_(9709)-8.bin' ARCHIVE_BASE_0_PART8_MD5='121adc43111562e354d9841800d0c613' ARCHIVE_BASE_0_PART8_TYPE='innosetup' ARCHIVE_BASE_0_PART9='setup_the_witcher_3_wild_hunt_goty_1.31_(a)_(9709)-9.bin' ARCHIVE_BASE_0_PART9_MD5='0f5329306515d6f41a1b4a7b2d38ad74' ARCHIVE_BASE_0_PART9_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='38000000' ARCHIVE_BASE_0_VERSION='1.31a-gog9709' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_witcher_3_wild_hunt_game_of_the_year_edition' ARCHIVE_GAME_BIN_PATH='app' ARCHIVE_GAME_BIN_FILES='bin' ARCHIVE_GAME_MOVIES_PATH='app' ARCHIVE_GAME_MOVIES_FILES='content/*/bundles/movies.bundle' ARCHIVE_GAME_BUNDLES_PATH='app' ARCHIVE_GAME_BUNDLES_FILES='content/*/bundles' ARCHIVE_GAME_VOICES_PATH='app' ARCHIVE_GAME_VOICES_FILES='content/*/soundspc.cache' ARCHIVE_GAME_DATA_PATH='app' ARCHIVE_GAME_DATA_FILES='content' ARCHIVE_GAME_DLC_HEARTS_OF_STONE_PATH='app' ARCHIVE_GAME_DLC_HEARTS_OF_STONE_FILES='dlc/ep1' ARCHIVE_GAME_DLC_BLOOD_AND_WINE_PATH='app' ARCHIVE_GAME_DLC_BLOOD_AND_WINE_FILES='dlc/bob' ARCHIVE_GAME_DLC_FREE_PACK_PATH='app' ARCHIVE_GAME_DLC_FREE_PACK_FILES='dlc/dlc*' APP_MAIN_TYPE='wine' APP_MAIN_EXE='bin/x64/witcher3.exe' APP_MAIN_ICON='bin/x64/witcher3.exe' PACKAGES_LIST='PKG_MOVIES PKG_BUNDLES PKG_VOICES PKG_DLC_HEARTS_OF_STONE PKG_DLC_BLOOD_AND_WINE PKG_DLC_FREE_PACK PKG_DATA PKG_BIN' PKG_BUNDLES_ID="${GAME_ID}-bundles" PKG_BUNDLES_DESCRIPTION='bundles' PKG_BUNDLES_DEPS="$PKG_MOVIES" PKG_MOVIES_ID="${GAME_ID}-movies" PKG_MOVIES_DESCRIPTION='movies' PKG_VOICES_ID="${GAME_ID}-voices" PKG_VOICES_DESCRIPTION='voices' PKG_DLC_HEARTS_OF_STONE_ID="${GAME_ID}-hearts-of-stone" PKG_DLC_HEARTS_OF_STONE_DESCRIPTION='Hearts of Stone' PKG_DLC_HEARTS_OF_STONE_DEPS="$GAME_ID" PKG_DLC_BLOOD_AND_WINE_ID="${GAME_ID}-blood-and-wine" PKG_DLC_BLOOD_AND_WINE_DESCRIPTION='Blood and Wine' PKG_DLC_BLOOD_AND_WINE_DEPS="$GAME_ID" PKG_DLC_FREE_PACK_ID="${GAME_ID}-free-dlc-pack" PKG_DLC_FREE_PACK_DESCRIPTION='Free DLC pack' PKG_DLC_FREE_PACK_DEPS="$GAME_ID" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPS="$PKG_BUNDLES $PKG_VOICES" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Use persistent storage for user data APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/$(id -un)/My Documents/The Witcher 3' DATA_DIRS="$DATA_DIRS ./userdata" # Run the game binary from its parent directory APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Run the game binary from its parent directory cd "$(dirname "$APP_EXE")" APP_EXE=$(basename "$APP_EXE")' # Load common functions target_version='2.14' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Enable dxvk patches in the WINE prefix # shellcheck disable=SC1004 APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Install dxvk on first launch if [ ! -e dxvk_installed ]; then # Wait until the WINE prefix creation is complete printf "Waiting for the WINE prefix initialization to complete, it might take a couple seconds…\n" while [ ! -f "${WINEPREFIX}/system.reg" ]; do sleep 1s done if \ command -v dxvk-setup >/dev/null 2>&1 && \ command -v wine-development >/dev/null 2>&1 then dxvk-setup install --development touch dxvk_installed elif command -v winetricks >/dev/null 2>&1; then winetricks dxvk touch dxvk_installed else message="\\033[1;33mWarning:\\033[0m\\n" message="${message}DXVK patches could not be installed in the WINE prefix.\\n" message="${message}The game might run with display or performance issues.\\n" printf "\\n${message}\\n" fi # Wait a bit to ensure there is no lingering wine process sleep 1s fi' case "$OPTION_PACKAGE" in ('deb') # Debian-based distributions should use repositories-provided dxvk # winetricks is used as a fallback for branches not having access to dxvk-setup extra_dependencies='mesa-vulkan-drivers | vulkan-icd, dxvk-wine64-development | winetricks, dxvk | winetricks' if [ -n "$PKG_BIN_DEPS_DEB" ]; then PKG_BIN_DEPS_DEB="${PKG_BIN_DEPS_DEB}, ${extra_dependencies}" else PKG_BIN_DEPS_DEB="$extra_dependencies" fi ;; (*) # Default is to use winetricks PKG_BIN_DEPS="${PKG_BIN_DEPS} winetricks" ;; esac # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "$PLAYIT_WORKDIR/gamedata" # Include game icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions PKG_MOVIES PKG_BUNDLES PKG_VOICES PKG_DATA PKG_BIN ( GAME_NAME="$PKG_DLC_HEARTS_OF_STONE_DESCRIPTION" print_instructions PKG_DLC_HEARTS_OF_STONE ) ( GAME_NAME="$PKG_DLC_BLOOD_AND_WINE_DESCRIPTION" print_instructions PKG_DLC_BLOOD_AND_WINE ) ( GAME_NAME="$PKG_DLC_FREE_PACK_DESCRIPTION" print_instructions PKG_DLC_FREE_PACK ) exit 0 games/play-the-witness.sh0000755000000000000000000000524514471751340014440 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The Witness # send your bug reports to contact@dotslashplay.it ### script_version=20230730.5 GAME_ID='the-witness' GAME_NAME='The Witness' ARCHIVE_BASE_0='setup_the_witness_21-12-2017_(19091).exe' ARCHIVE_BASE_0_MD5='5bfb0d687fb80cdd64cdee7b6b567400' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_the_witness_21-12-2017_(19091)-1.bin' ARCHIVE_BASE_0_PART1_MD5='90a24fed5d8e2e52ab1bf2de84349984' ARCHIVE_BASE_0_SIZE='4300000' ARCHIVE_BASE_0_VERSION='2017.12.21-gog19091' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_witness' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN32_FILES=' amd_ags_x86.dll anselsdk32.dll bink2w32.dll steam_api.dll witness_d3d11.exe' CONTENT_GAME_BIN64_FILES=' amd_ags_x64.dll anselsdk64.dll bink2w64.dll openvr_api.dll steam_api64.dll witness64_d3d11.exe' CONTENT_GAME_DATA_FILES=' data data-pc controller.vdf data-pc.zip' CONTENT_GAME0_DATA_PATH="${CONTENT_PATH_DEFAULT}/__support/app" CONTENT_GAME0_DATA_FILES=' language.ini' CONTENT_DOC_DATA_FILE=' software licenses.txt steam_enabled.txt' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/The Witness' USER_PERSISTENT_FILES=' language.ini' APP_MAIN_EXE_BIN32='witness_d3d11.exe' APP_MAIN_EXE_BIN64='witness64_d3d11.exe' APP_MAIN_ICON='witness_d3d11.exe' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-world-begins-with-you.sh0000755000000000000000000000467414471751340017130 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The World Begins With You # send your bug reports to contact@dotslashplay.it ### script_version=20230308.1 GAME_ID='the-world-begins-with-you' GAME_NAME='The World Begins With You' ARCHIVE_BASE_0='TheWorldBeginsWithYou_v1_0_1_WIN.zip' ARCHIVE_BASE_0_MD5='ae72427190719de31f59b2cc1ed4baa3' ARCHIVE_BASE_0_SIZE='730000' ARCHIVE_BASE_0_VERSION='1.0.1-itch' ARCHIVE_BASE_0_URL='https://fabiandenter.itch.io/the-world-begins-with-you' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' TheWorldBeginsWithYou_v1_0_1.exe TheWorldBeginsWithYou_v1_0_1_Data/Plugins TheWorldBeginsWithYou_v1_0_1_Data/Managed TheWorldBeginsWithYou_v1_0_1_Data/Mono UnityPlayer.dll' CONTENT_GAME_DATA_FILES='TheWorldBeginsWithYou_v1_0_1_Data' APP_MAIN_EXE='TheWorldBeginsWithYou_v1_0_1.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Set up a WINE virtual desktop on first launch, using the current desktop resolution PKG_BIN_DEPS="$PKG_BIN_DEPS xrandr sed" sed_expression='s/.*primary.* ([0-9]+x[0-9]+).*/\1/p' sed_options="--regexp-extended --silent --expression='$sed_expression'" APP_WINETRICKS="$APP_WINETRICKS vd=\$(LANG=C xrandr | sed $sed_options)" # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" set_standard_permissions . ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-world-next-door.sh0000755000000000000000000000721014471751340016002 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # The World Next Door # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20211012.2 # Set game-specific variables GAME_ID='the-world-next-door' GAME_NAME='The World Next Door' ARCHIVE_BASE_0='setup_the_world_next_door_1.2.0_(29529).exe' ARCHIVE_BASE_0_MD5='ec556aa20488836c92fdf6b2b0bdb3d9' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2200000' ARCHIVE_BASE_0_VERSION='1.2.0-gog29529' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_world_next_door' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES=' *.dll mono theworldnextdoor.exe theworldnextdoor_data/plugins' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='theworldnextdoor_data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='theworldnextdoor.exe' APP_MAIN_ICON='theworldnextdoor.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID wine libGL.so.1" # Use a per-session dedicated file for logs APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a per-session dedicated file for logs mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Use persistent storage for user data DATA_FILES="$DATA_FILES ./*.bin" # Load common functions target_version='2.14' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "$PLAYIT_WORKDIR/gamedata" # Inclue game icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-thea-2.sh0000755000000000000000000000433114471751340013241 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Thea 2 # send your bug reports to contact@dotslashplay.it ### script_version=20230418.1 GAME_ID='thea-2' GAME_NAME='Thea 2: The Shattering' ARCHIVE_BASE_0='setup_thea_2_the_shattering_2.0603.0666c_(64bit)_(38776).exe' ARCHIVE_BASE_0_MD5='bbcbc5777263f2511d53374bb5799986' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_thea_2_the_shattering_2.0603.0666c_(64bit)_(38776)-1.bin' ARCHIVE_BASE_0_PART1_MD5='028c57b5a383336387c1de382416d24d' ARCHIVE_BASE_0_SIZE='6200000' ARCHIVE_BASE_0_VERSION='2.0603.0666-gog38776' ARCHIVE_BASE_0_URL='https://www.gog.com/game/thea_2_the_shattering' UNITY3D_NAME='thea2' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_data/plugins ${UNITY3D_NAME}.exe mono galaxy64.dll galaxycsharpglue.dll unityplayer.dll unitycrashhandler64.exe" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" USER_PERSISTENT_DIRECTORIES=" ${UNITY3D_NAME}_data/Profiles ${UNITY3D_NAME}_data/streamingassets/DataHistory" APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-theme-hospital.sh0000755000000000000000000000745114471751340015112 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # Theme Hospital # send your bug reports to contact@dotslashplay.it ### script_version=20230910.1 GAME_ID='theme-hospital' GAME_NAME='Theme Hospital' ARCHIVE_BASE_1='setup_theme_hospital_v3_(28027).exe' ARCHIVE_BASE_1_MD5='e4cba7cfddd5dd2d4baf4761bc86a8c8' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='200000' ARCHIVE_BASE_1_VERSION='1.0-gog28027' ARCHIVE_BASE_1_URL='https://www.gog.com/game/theme_hospital' ARCHIVE_BASE_0='setup_theme_hospital_2.1.0.8.exe' ARCHIVE_BASE_0_MD5='c1dc6cd19a3e22f7f7b31a72957babf7' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='210000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.7' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_DOSBOX_FILES=' *.bat *.cfg *.exe *.ini' CONTENT_GAME_DATA_FILES=' anims cfg data datam intro levels qdata qdatam save sound' CONTENT_DOC_DATA_FILES=' *.txt *.pdf' USER_PERSISTENT_DIRECTORIES=' save' USER_PERSISTENT_FILES=' *.cfg *.ini' APP_MAIN_EXE='hospital.exe' APP_MAIN_ICON='app/goggame-1207659026.ico' APP_MAIN_ICON_0='goggame-1207659026.ico' PACKAGES_LIST='PKG_DOSBOX PKG_CORSIXTH PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_ENGINE_ID="$GAME_ID" PKG_DOSBOX_ID="${PKG_ENGINE_ID}-dosbox" PKG_DOSBOX_PROVIDES=" $PKG_ENGINE_ID" PKG_DOSBOX_DEPS="$PKG_DATA_ID dosbox" PKG_CORSIXTH_ID="${PKG_ENGINE_ID}-corsixth" PKG_CORSIXTH_PROVIDES=" $PKG_ENGINE_ID" PKG_CORSIXTH_DEPS="$PKG_DATA_ID" PKG_CORSIXTH_DEPENDENCIES_COMMANDS=' corsix-th' # Load common functions target_version='2.25' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Set path to game data in CorsixTH configuration case "$(option_value 'package')" in ('arch') path_corsixth='/usr/share/CorsixTH' ;; ('deb') path_corsixth='/usr/share/games/corsix-th' ;; ('gentoo'|'egentoo') path_corsixth='/usr/share/corsix-th' ;; esac config_file_path="${path_corsixth}/Lua/config_finder.lua" PKG_CORSIXTH_POSTINST_RUN="${PKG_CORSIXTH_POSTINST_RUN:-}"' # Set path to game data in CorsixTH configuration config_file_path="'"$config_file_path"'" sed_pattern="^ theme_hospital_install = .*$" sed_replacement=" theme_hospital_install = [['"$(path_game_data)"']]," sed_expression="s#${sed_pattern}#${sed_replacement}#" sed --in-place --expression="$sed_expression" "$config_file_path"' # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files rm --force --recursive \ 'dosbox' \ 'tmp' ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers ## DOSBox PKG='PKG_DOSBOX' launchers_write ## CorsixTH PKG='PKG_CORSIXTH' launcher_path=$(launcher_path 'APP_MAIN') mkdir --parents "$(dirname "$launcher_path")" { launcher_headers cat <<- 'EOF' corsix-th "$@" EOF launcher_exit } > "$launcher_path" chmod 755 "$launcher_path" launcher_write_desktop 'APP_MAIN' # Build packages packages_generation # Print instructions printf '\n' printf 'CorsixTH:' print_instructions 'PKG_DATA' 'PKG_CORSIXTH' printf 'DOSBox:' print_instructions 'PKG_DATA' 'PKG_DOSBOX' # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-there-is-no-game.sh0000755000000000000000000000450214471751340015222 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # There Is No Game : Wrong Dimension # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220322.4 # Set game-specific variables GAME_ID='there-is-no-game' GAME_NAME='There Is No Game : Wrong Dimension' ARCHIVE_BASE_0='setup_there_is_no_game__wrong_dimension_v1.0.30_(52258).exe' ARCHIVE_BASE_0_MD5='f9590da9c19a554e8154ffeacee9cdbb' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1100000' ARCHIVE_BASE_0_VERSION='1.0.30-gog52258' ARCHIVE_BASE_0_URL='https://www.gog.com/game/there_is_no_game_wrong_dimension' UNITY3D_NAME='ting' CONTENT_PATH_DEFAULT='.' ARCHIVE_GAME_BIN_FILES=" ting.exe ting_data/plugins gameassembly.dll unitycrashhandler64.exe unityplayer.dll" ARCHIVE_GAME_DATA_FILES=" ting_data" APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" APP_MAIN_ICON="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Use persistent storage for user data APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/LocalLow/DrawMeAPixel/Ting' DATA_FILES='./userdata/*.dat' # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-thief-3.sh0000755000000000000000000001346614471751340013431 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2017-2020, Jacek Szafarkiewicz # 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. ### ### # Thief 3: Deadly Shadows # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20201031.19 # Set game-specific variables GAME_ID='thief-3' GAME_NAME='Thief 3: Deadly Shadows' ARCHIVES_LIST=' ARCHIVE_GOG_1 ARCHIVE_GOG_0' ARCHIVE_GOG_1='setup_thief_-_deadly_shadows_1.1_(21683).exe' ARCHIVE_GOG_1_URL='https://www.gog.com/game/thief_3' ARCHIVE_GOG_1_MD5='153723f2908242cf27a23ad58d0608b5' ARCHIVE_GOG_1_VERSION='1.1-gog2.21683' ARCHIVE_GOG_1_SIZE='2300000' ARCHIVE_GOG_1_TYPE='innosetup' ARCHIVE_GOG_1_PART1='setup_thief_-_deadly_shadows_1.1_(21683)-1.bin' ARCHIVE_GOG_1_PART1_MD5='8c549826345776df192fb1721740096f' ARCHIVE_GOG_1_PART1_TYPE='innosetup' ARCHIVE_GOG_0='setup_thief3_2.0.0.6.exe' ARCHIVE_GOG_0_MD5='e5b84de58a1037f3e8aa3a1bb2a982be' ARCHIVE_GOG_0_VERSION='1.1-gog2.0.0.6' ARCHIVE_GOG_0_SIZE='2300000' ARCHIVE_GOG_0_TYPE='innosetup' ARCHIVE_DOC_DATA_PATH='.' ARCHIVE_DOC_DATA_FILES='*.pdf eula.txt readme.rtf' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='system' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='content' CONFIG_FILES='./*.ini' CONFIG_DIRS='./saves' # Keep compatibility with old archives ARCHIVE_DOC_DATA_PATH_GOG_0='app' ARCHIVE_GAME_BIN_PATH_GOG_0='app' ARCHIVE_GAME_DATA_PATH_GOG_0='app' APP_REGEDIT='thief.reg' APP_MAIN_TYPE='wine' APP_MAIN_EXE='system/t3.exe' APP_MAIN_ICON='system/t3.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Ensure smooth upgrade from pre-20201031.16 packages PKG_BIN_PROVIDE='thief3' PKG_DATA_PROVIDE='thief3-data' # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get game icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Clean up temporary files rm --recursive "$PLAYIT_WORKDIR/gamedata" # Set up required registry keys registry_file="${PKG_BIN_PATH}${PATH_GAME}/thief.reg" cat > "$registry_file" << 'EOF' Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\Software\Ion Storm] [HKEY_LOCAL_MACHINE\Software\Ion Storm\Thief - Deadly Shadows] EOF cat >> "$registry_file" << EOF "ION_ROOT"="C:\\\\$GAME_ID" "SaveGamePath"="C:\\\\$GAME_ID\\\\saves" EOF cat >> "$registry_file" << 'EOF' [HKEY_LOCAL_MACHINE\Software\Ion Storm\Thief - Deadly Shadows\SecuROM] [HKEY_LOCAL_MACHINE\Software\Ion Storm\Thief - Deadly Shadows\SecuROM\Locale] "ADMIN_RIGHTS"="Application requires Windows administrator rights." "ANALYSIS_DISCLAIMER"="Dear Software User,\\n\\nThis test program has been developed with your personal interest in mind to check for possible hardware and/or software incompatibility on your PC. To shorten the analysis time, system information is collected (similar to the Microsoft's msinfo32.exe program).\\n\\nData will be compared with our knowledge base to discover hardware/software conflicts. Submitting the log file is totally voluntary. The collected data is for evaluation purposes only and is not used in any other manner.\\n\\nYour Support Team\\n\\nDo you want to start?" "ANALYSIS_DONE"="The Information was successfully collected and stored to the following file:\\n\\n\\\"%FILE%\\\"\\n\\nPlease contact Customer Support for forwarding instructions." "AUTH_TIMEOUT"="Unable to authenticate original disc within time limit." "EMULATION_DETECTED"="Conflict with Disc Emulator Software detected." "NO_DISC"="No disc inserted." "NO_DRIVE"="No CD or DVD drive found." "NO_ORIG_FOUND"="Please insert the original disc instead of a backup." "TITLEBAR"="Thief: Deadly Shadows" "WRONG_DISC"="Wrong Disc inserted. Please insert the Thief: Deadly Shadows disc into your CD/DVD drive." EOF # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-thimbleweed-park.sh0000755000000000000000000000371314471751340015410 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Anna Lea set -o errexit ### # Thimbleweed Park # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220212.1 # Set game-specific variables GAME_ID='thimbleweed-park' GAME_NAME='Thimbleweed Park' ARCHIVE_BASE_0='thimbleweed_park_en_1_0_958_19330.sh' ARCHIVE_BASE_0_MD5='2803fd41a66c1163f02b61bb6ff286ab' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='970000' ARCHIVE_BASE_0_VERSION='1.0.958-gog19330' # Archives content CONTENT_PATH_DEFAULT='data/noarch/game' ARCHIVE_GAME_BIN_FILES=' ThimbleweedPark' ARCHIVE_GAME_DATA_FILES=' ThimbleweedPark.ggpack? Icon1024.png' # Applications APP_MAIN_TYPE='native' APP_MAIN_EXE='ThimbleweedPark' APP_MAIN_ICON='Icon1024.png' PACKAGES_LIST='PKG_DATA PKG_BIN' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6 libGL.so.1" # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-this-war-of-mine-stories.sh0000755000000000000000000000630214471751340016735 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # This War of Mine: Stories # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220302.1 # Set game-specific variables GAME_ID='this-war-of-mine' GAME_NAME='This War of Mine' EXPANSION_ID_PROMISE='fathers-promise' EXPANSION_NAME_PROMISE='Fatherʼs Promise' EXPANSION_ID_BROADCAST='the-last-broadcast' EXPANSION_NAME_BROADCAST='The Last Broadcast' EXPANSION_ID_EMBERS='fading-embers' EXPANSION_NAME_EMBERS='Fading Embers' # Archives ## Father's Promise ARCHIVE_BASE_PROMISE_0='this_war_of_mine_stories_father_s_promise_6_0_8_a_34693.sh' ARCHIVE_BASE_PROMISE_0_MD5='edd88a0589e73cee7f2ad575bd87f933' ARCHIVE_BASE_PROMISE_0_TYPE='mojosetup' ARCHIVE_BASE_PROMISE_0_SIZE='1300' ARCHIVE_BASE_PROMISE_0_VERSION='6.0.8a-gog34693' ARCHIVE_BASE_PROMISE_0_URL='https://www.gog.com/game/this_war_of_mine_stories_fathers_promise' ## The Last Broadcast ARCHIVE_BASE_BROADCAST_0='this_war_of_mine_stories_the_last_broadcast_6_0_8_a_34693.sh' ARCHIVE_BASE_BROADCAST_0_MD5='daff8c5453365f234fbcfa5e2ad11448' ARCHIVE_BASE_BROADCAST_0_TYPE='mojosetup' ARCHIVE_BASE_BROADCAST_0_SIZE='3900' ARCHIVE_BASE_BROADCAST_0_VERSION='6.0.8a-gog34693' ARCHIVE_BASE_BROADCAST_0_URL='https://www.gog.com/game/this_war_of_mine_stories_the_last_broadcast' ## Fading Embers ARCHIVE_BASE_EMBERS_0='this_war_of_mine_stories_fading_embers_6_0_8_a_34693.sh' ARCHIVE_BASE_EMBERS_0_MD5='1684ebcdd6be5f11e69830da349549aa' ARCHIVE_BASE_EMBERS_0_TYPE='mojosetup' ARCHIVE_BASE_EMBERS_0_SIZE='4100' ARCHIVE_BASE_EMBERS_0_VERSION='6.0.8a-gog34693' ARCHIVE_BASE_EMBERS_0_URL='https://www.gog.com/game/this_war_of_mine_stories_fading_embers' CONTENT_PATH_DEFAULT='data/noarch/game' ARCHIVE_GAME_MAIN_FILES=' gog?.idx gog?.dat' PKG_MAIN_ID_PROMISE="${GAME_ID}-${EXPANSION_ID_PROMISE}" PKG_MAIN_ID_BROADCAST="${GAME_ID}-${EXPANSION_ID_BROADCAST}" PKG_MAIN_ID_EMBERS="${GAME_ID}-${EXPANSION_ID_EMBERS}" PKG_MAIN_DESCRIPTION_PROMISE="$EXPANSION_NAME_PROMISE" PKG_MAIN_DESCRIPTION_BROADCAST="$EXPANSION_NAME_BROADCAST" PKG_MAIN_DESCRIPTION_EMBERS="$EXPANSION_NAME_EMBERS" PKG_MAIN_DEPS="$GAME_ID" # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions EXPANSION_NAME=$(get_context_specific_value 'archive' 'EXPANSION_NAME') game_name=$(game_name) GAME_NAME="$game_name - $EXPANSION_NAME" print_instructions exit 0 games/play-this-war-of-mine-the-little-ones.sh0000755000000000000000000000371114471751340020263 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # This War of Mine: The Little Ones # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220302.2 # Set game-specific variables GAME_ID='this-war-of-mine' GAME_NAME='Thie War of Mine' EXPANSION_ID='the-little-ones' EXPANSION_NAME='The Little Ones' ARCHIVE_BASE_0='this_war_of_mine_the_little_ones_6_0_8_a_34693.sh' ARCHIVE_BASE_0_MD5='7e2a1b8e0cc51d7a3f56f6591a0f6f21' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='18000' ARCHIVE_BASE_0_VERSION='6.0.8a-gog34693' ARCHIVE_BASE_0_URL='https://www.gog.com/game/this_war_of_mine_the_little_ones' CONTENT_PATH_DEFAULT='data/noarch/game' ARCHIVE_GAME_DATA_GOG_FILES=' gog.idx gog.dat' PACKAGES_LIST='PKG_DATA_GOG' PKG_DATA_GOG_ID="${GAME_ID}-data-gog-${EXPANSION_ID}" PKG_DATA_GOG_PROVIDE="${GAME_ID}-data-gog" PKG_DATA_GOG_DESCRIPTION="$PKG_DATA_DESCRIPTION - GOG-specific files ($EXPANSION_NAME)" # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions game_name=$(game_name) GAME_NAME="$game_name - $EXPANSION_NAME" print_instructions exit 0 games/play-this-war-of-mine.sh0000755000000000000000000001204214471751340015245 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # This War of Mine # send your bug reports to contact@dotslashplay.it ### script_version=20230210.1 GAME_ID='this-war-of-mine' GAME_NAME='This War of Mine' ARCHIVE_BASE_9='this_war_of_mine_6_0_8_a_34693.sh' ARCHIVE_BASE_9_MD5='cc7afc1412ae1b92db5b992c2dd76818' ARCHIVE_BASE_9_TYPE='mojosetup' ARCHIVE_BASE_9_SIZE='2800000' ARCHIVE_BASE_9_VERSION='6.0.8a-gog34693' ARCHIVE_BASE_9_URL='https://www.gog.com/game/this_war_of_mine' ARCHIVE_BASE_8='this_war_of_mine_6_0_8_34211.sh' ARCHIVE_BASE_8_MD5='13d21027e6950b03946071bf4c06cb9e' ARCHIVE_BASE_8_TYPE='mojosetup' ARCHIVE_BASE_8_SIZE='2800000' ARCHIVE_BASE_8_VERSION='6.0.8-gog34211' ARCHIVE_BASE_7='this_war_of_mine_6_0_7_33947.sh' ARCHIVE_BASE_7_MD5='f983657b4cd3bad71047d1cc62654b34' ARCHIVE_BASE_7_TYPE='mojosetup' ARCHIVE_BASE_7_SIZE='2800000' ARCHIVE_BASE_7_VERSION='6.0.7-gog33947' ARCHIVE_BASE_6='this_war_of_mine_6_0_6_32269.sh' ARCHIVE_BASE_6_MD5='65b0332c4355046d09e5c49f1925cec9' ARCHIVE_BASE_6_TYPE='mojosetup' ARCHIVE_BASE_6_SIZE='2700000' ARCHIVE_BASE_6_VERSION='6.0.6-32269' ARCHIVE_BASE_5='this_war_of_mine_6_0_5_32074.sh' ARCHIVE_BASE_5_MD5='8cb7bc50a58162242f215df36ae3ccdb' ARCHIVE_BASE_5_TYPE='mojosetup' ARCHIVE_BASE_5_SIZE='2700000' ARCHIVE_BASE_5_VERSION='6.0.5-gog32074' ARCHIVE_BASE_4='this_war_of_mine_6_0_0_s3788_a10718_31527.sh' ARCHIVE_BASE_4_MD5='b317099aa7c0c0a4942845893e4f7386' ARCHIVE_BASE_4_TYPE='mojosetup' ARCHIVE_BASE_4_SIZE='2700000' ARCHIVE_BASE_4_VERSION='6.0.0-gog31527' ARCHIVE_BASE_3='this_war_of_mine_5_1_0_26027.sh' ARCHIVE_BASE_3_MD5='8c9221653e6fc94a6898f5ef66a3325f' ARCHIVE_BASE_3_TYPE='mojosetup' ARCHIVE_BASE_3_SIZE='2200000' ARCHIVE_BASE_3_VERSION='5.1.0-gog26027' ARCHIVE_BASE_2='this_war_of_mine_4_0_1_25361.sh' ARCHIVE_BASE_2_MD5='c6d96f0722a35821ea30500d8e7658d8' ARCHIVE_BASE_2_TYPE='mojosetup' ARCHIVE_BASE_2_SIZE='2200000' ARCHIVE_BASE_2_VERSION='4.0.1-gog25361' ARCHIVE_BASE_1='this_war_of_mine_4_0_1_24802.sh' ARCHIVE_BASE_1_MD5='17daac7e70ee2c783b12114573cb7757' ARCHIVE_BASE_1_TYPE='mojosetup' ARCHIVE_BASE_1_SIZE='1500000' ARCHIVE_BASE_1_VERSION='4.0.1-gog24802' ARCHIVE_BASE_0='this_war_of_mine_en_4_0_0_29_01_2018_18230.sh' ARCHIVE_BASE_0_MD5='165f4d6158425c3d2861c533f10b5713' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='1500000' ARCHIVE_BASE_0_VERSION='4.0.0-gog18230' CONTENT_PATH_DEFAULT='data/noarch/game' ## This build of libcurl.so.4 includes the required "CURL_OPENSSL_3" symbol. CONTENT_LIBS_BIN_FILES=' libcurl.so.4' CONTENT_GAME_BIN_FILES=' This War of Mine' CONTENT_GAME_BIN_FILES_3=' KosovoLinux' CONTENT_GAME_BIN_FILES_0=' TWOMLinux' CONTENT_GAME_DATA_GOG_FILES=' gog.idx gog.dat' CONTENT_GAME_DATA_FILES=' CustomContent LocalizationPacks WorkshopData animations.idx animations.dat common.idx common.dat localizations.idx localizations.dat scenes.idx scenes.dat sounds.idx sounds.dat templates.idx templates.dat textures-s3.idx textures-s3.dat videos.idx videos.dat voices.idx voices.dat svnrev.txt *.str' APP_MAIN_EXE='This War of Mine' APP_MAIN_EXE_3='KosovoLinux' APP_MAIN_EXE_0='TWOMLinux' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA_GOG PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_GOG_ID="${PKG_DATA_ID}-gog" PKG_DATA_DESCRIPTION='data' PKG_DATA_GOG_DESCRIPTION="$PKG_DATA_DESCRIPTION - GOG-specific files" PKG_DATA_DEPS="$PKG_DATA_GOG_ID" PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libz.so.1' # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # The game binary looks for libOpenAL.so instead of libopenal.so.1 ## Unversioned libopenal.so is already provided by the base library packages ## on Arch Linux and Gentoo. case "$OPTION_PACKAGE" in ('deb') library_source='/usr/lib/i386-linux-gnu/libopenal.so.1' library_destination="$(package_path 'PKG_BIN')$(path_libraries)/libOpenAL.so" mkdir --parents "$(dirname "$library_destination")" ln --symbolic "$library_source" "$library_destination" ;; esac # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icon PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-thomas-was-alone.sh0000755000000000000000000000457314471751340015350 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Thomas Was Alone # build native packages from the original installers # send your bug reports to contatct@dotslashplay.it ### script_version=20220701.2 GAME_ID='thomas-was-alone' GAME_NAME='Thomas Was Alone' # This DRM-free archive is no longer available for sale from Humble Bundle ARCHIVE_BASE_0='thomaswasalone-linux-1369349552.tar' ARCHIVE_BASE_0_MD5='e7f8e766188718e16880b1137c430f35' ARCHIVE_BASE_0_SIZE='250000' ARCHIVE_BASE_0_VERSION='1.0-humble1' UNITY3D_NAME='thomasWasAlone' CONTENT_PATH_DEFAULT='thomasLinuxStandalone' ARCHIVE_GAME_BIN_FILES=" ${UNITY3D_NAME} ${UNITY3D_NAME}_Data/Mono ${UNITY3D_NAME}_Data/Plugins" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_TYPE='native' APP_MAIN_EXE="$UNITY3D_NAME" APP_MAIN_ICON="${UNITY3D_NAME}_Data/Resources/UnityPlayer.png" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID libc.so.6 libGLU.so.1 xcursor" # Use a dedicated log file for the current game session APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a dedicated log file for the current game session mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' set_standard_permissions "$PLAYIT_WORKDIR/gamedata" prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-tidalis.sh0000755000000000000000000001055614471751340013620 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Tidalis # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210731.5 # Set game-specific variables GAME_ID='tidalis' GAME_NAME='Tidalis' ARCHIVE_BASE_32BIT_0='Tidalis_Linux32_v1.5.zip' ARCHIVE_BASE_32BIT_0_MD5='c5fd83dd7e6221a5a91e326fc36c9043' ARCHIVE_BASE_32BIT_0_SIZE='630000' ARCHIVE_BASE_32BIT_0_VERSION='1.5-humble160517' ARCHIVE_BASE_32BIT_0_URL='https://www.humblebundle.com/store/tidalis' ARCHIVE_BASE_64BIT_0='Tidalis_Linux64_v1.5.zip' ARCHIVE_BASE_64BIT_0_MD5='d5893c3ed40ab2266359c88b361ddb57' ARCHIVE_BASE_64BIT_0_SIZE='630000' ARCHIVE_BASE_64BIT_0_VERSION='1.5-humble160517' ARCHIVE_BASE_64BIT_0_URL='https://www.humblebundle.com/store/tidalis' ARCHIVE_DOC_PATH='.' ARCHIVE_DOC_FILES='TidalisLicense.txt *.pdf' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES_32BIT=' TidalisLinux.x86 TidalisLinux_Data/Mono/x86 TidalisLinux_Data/Plugins/x86' ARCHIVE_GAME_BIN_FILES_64BIT=' TidalisLinux.x86_64 TidalisLinux_Data/Mono/x86_64 TidalisLinux_Data/Plugins/x86_64' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES=' RuntimeData Tidalis_Data sysrequirements.txt TidalisLinux_Data/mainData TidalisLinux_Data/Managed TidalisLinux_Data/PlayerConnectionConfigFile TidalisLinux_Data/Resources TidalisLinux_Data/sharedassets0.assets' APP_MAIN_TYPE='native' APP_MAIN_EXE_32BIT='TidalisLinux.x86' APP_MAIN_EXE_64BIT='TidalisLinux.x86_64' APP_MAIN_ICON='TidalisLinux_Data/Resources/UnityPlayer.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH_32BIT='32' PKG_BIN_ARCH_64BIT='64' PKG_BIN_DEPS="$PKG_DATA_ID glibc libstdc++ glx xcursor libGLU.so.1 libX11.so.6" PKG_BIN_DEPS_ARCH_32BIT='lib32-libxext' PKG_BIN_DEPS_ARCH_64BIT='libext' PKG_BIN_DEPS_DEB='libxext6' PKG_BIN_DEPS_GENTOO_32BIT='x11-libs/libXext[abi_x86_32]' PKG_BIN_DEPS_GENTOO_64BIT='x11-libs/libXext' # Load common functions target_version='2.14' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" set_standard_permissions "$PLAYIT_WORKDIR/gamedata" prepare_package_layout # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' APP_MAIN_EXE=$(get_context_specific_value 'archive' 'APP_MAIN_EXE') launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-time-loader.sh0000755000000000000000000000423614471751340014367 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Time Loader # send your bug reports to contact@dotslashplay.it ### script_version=20230102.1 GAME_ID='time-loader' GAME_NAME='Time Loader' UNITY3D_NAME='time loader' ARCHIVE_BASE_0='setup_time_loader_1.0.65_(53338).exe' ARCHIVE_BASE_0_MD5='3a2842ca85c3d20313a72d88615b8059' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_time_loader_1.0.65_(53338)-1.bin' ARCHIVE_BASE_0_PART1_MD5='0c4f4eccb554f3905f12e6fded25c7df' ARCHIVE_BASE_0_SIZE='3600000' ARCHIVE_BASE_0_VERSION='1.0.65-gog53338' ARCHIVE_BASE_0_URL='https://www.gog.com/game/time_loader' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" monobleedingedge unityplayer.dll ${UNITY3D_NAME}_data/plugins ${UNITY3D_NAME}.exe" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/LocalLow/FLAZM/Time Loader' USER_PERSISTENT_FILES=' userdata/tl_final_saves.robot' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.20' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-timelie.sh0000755000000000000000000001325614471751340013617 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2021, Daguhh # 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. ### ### # Timelie # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210709.9 # Set game-specific variables GAME_ID='timelie' GAME_NAME='Timelie' ARCHIVE_BASE_0='setup_timelie_1.1.0_(64bit)_(41792).exe' ARCHIVE_BASE_0_MD5='7786ab76c953fda21ee196a69ad2b4ee' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='1.1.0-gog41792' ARCHIVE_BASE_0_SIZE='1400000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/timelie' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='*.dll *.exe timelie_data/plugins' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='timelie_data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='timelie.exe' APP_MAIN_ICON='timelie.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Use a per-session dedicated file for logs APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a per-session dedicated file for logs mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Use persistent storage for saved games APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/AppData/LocalLow/Urnique Studio/Timelie' DATA_FILES="$DATA_FILES userdata/game.sav" # Use persistent storage for game settings REGISTRY_KEY='HKEY_CURRENT_USER\Software\Urnique Studio\Timelie' REGISTRY_DUMP='registry-dumps/settings.reg' CONFIG_DIRS="${CONFIG_DIRS} ./$(dirname "$REGISTRY_DUMP")" APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Set path for persistent dump of registry keys REGISTRY_KEY="'"$REGISTRY_KEY"'" REGISTRY_DUMP="'"$REGISTRY_DUMP"'" # Load dump of registry keys if [ -e "$REGISTRY_DUMP" ]; then wine regedit.exe "$REGISTRY_DUMP" fi' APP_MAIN_POSTRUN="$APP_MAIN_POSTRUN"' # Dump registry keys wine regedit.exe -E "$REGISTRY_DUMP" "$REGISTRY_KEY"' # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Enable dxvk patches in the WINE prefix # shellcheck disable=SC1004 APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Install dxvk on first launch if [ ! -e dxvk_installed ]; then # Wait until the WINE prefix creation is complete printf "Waiting for the WINE prefix initialization to complete, it might take a couple seconds…\n" while [ ! -f "$WINEPREFIX/system.reg" ]; do sleep 1s done if \ command -v dxvk-setup >/dev/null 2>&1 && \ command -v wine-development >/dev/null 2>&1 then dxvk-setup install --development touch dxvk_installed elif command -v winetricks >/dev/null 2>&1; then winetricks dxvk touch dxvk_installed else message="\\033[1;33mWarning:\\033[0m\\n" message="${message}DXVK patches could not be installed in the WINE prefix.\\n" message="${message}The game might run with display or performance issues.\\n" printf "\\n${message}\\n" fi # Wait a bit to ensure there is no lingering wine process sleep 1s fi' case "$OPTION_PACKAGE" in ('deb') # Debian-based distributions should use repositories-provided dxvk # winetricks is used as a fallback for branches not having access to dxvk-setup extra_dependencies='mesa-vulkan-drivers | vulkan-icd, dxvk-wine64-development | winetricks, dxvk | winetricks' if [ -n "$PKG_BIN_DEPS_DEB" ]; then PKG_BIN_DEPS_DEB="${PKG_BIN_DEPS_DEB}, ${extra_dependencies}" else PKG_BIN_DEPS_DEB="$extra_dependencies" fi ;; (*) # Default is to use winetricks PKG_BIN_DEPS="${PKG_BIN_DEPS} winetricks" ;; esac # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Extract icons PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Delete temporary files rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-tiny-and-big.sh0000755000000000000000000000772014471751340014450 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 HS-157 # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Tiny and Big: Grandpa's Leftovers # send your bug reports to contact@dotslashplay.it ### script_version=20231004.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='tiny-and-big' GAME_NAME='Tiny and Big: Grandpaʼs Leftovers' ARCHIVE_BASE_GOG_0='tiny_and_big_grandpa_s_leftovers_en_1_4_2_15616.sh' ARCHIVE_BASE_GOG_0_MD5='bdcc1ea8366dedcfe00b50c439fd5ec9' ARCHIVE_BASE_GOG_0_SIZE='2400000' ARCHIVE_BASE_GOG_0_VERSION='1.4.2-gog15616' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/tiny_and_big_grandpas_leftovers' ARCHIVE_BASE_HUMBLE_0='tinyandbig_grandpasleftovers-retail-linux-1.4.1_1370968537.tar.bz2' ARCHIVE_BASE_HUMBLE_0_MD5='c6c2bc286f11e4a232211c5176105890' ARCHIVE_BASE_HUMBLE_0_SIZE='2400000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.4.1-humble1370968537' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/tiny-big-grandpas-leftovers' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='tinyandbig' ## TODO: Check if some shipped libraries could be replaced with system-provided ones. CONTENT_LIBS_BIN_FILES=' libcal3d.so libCgGL.so libCg.so' CONTENT_LIBS_BIN32_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/bin32" CONTENT_LIBS_BIN32_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/bin32" CONTENT_LIBS_BIN32_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_LIBS_BIN64_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/bin64" CONTENT_LIBS_BIN64_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/bin64" CONTENT_LIBS_BIN64_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_GAME_BIN32_FILES=' bin32/tinyandbig' CONTENT_GAME_BIN64_FILES=' bin64/tinyandbig' CONTENT_GAME_DATA_FILES=' assets' USER_PERSISTENT_FILES=' options.txt *.save' APP_MAIN_EXE_BIN32='bin32/tinyandbig' APP_MAIN_EXE_BIN64='bin64/tinyandbig' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 libstdc++.so.6 libX11.so.6' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ARCHIVE_OPTIONAL_ICONS_0_NAME='tiny-and-big_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_0_MD5='043fa61c838ba6b2ef301c52660352b1' ARCHIVE_OPTIONAL_ICONS_0_URL='https://downloads.dotslashplay.it/games/tiny-and-big' archive_initialize_optional \ 'ARCHIVE_ICONS' \ 'ARCHIVE_OPTIONAL_ICONS' ## TODO: The library should provide a function to check if a given optional archive has been provided. if [ -n "$(archive_path 'ARCHIVE_ICONS' 2>/dev/null || true)" ]; then archive_extraction 'ARCHIVE_ICONS' fi # Include game data ## TODO: The library should provide a function to check if a given optional archive has been provided. if [ -n "$(archive_path 'ARCHIVE_ICONS' 2>/dev/null || true)" ]; then CONTENT_ICONS_DATA_PATH='.' CONTENT_ICONS_DATA_FILES=' 16x16 32x32 48x48 64x64' content_inclusion 'ICONS_DATA' 'PKG_DATA' "$(path_icons)" fi content_inclusion_default # Write launchers PKG='PKG_BIN32' launchers_write PKG='PKG_BIN64' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-tiny-hunter.sh0000755000000000000000000000623314471751340014452 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2020, HS-157 # 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. ### ### # Tiny Hunter # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20201012.1 # Set game-specific variables GAME_ID='tiny-hunter' GAME_NAME='Tiny Hunter' ARCHIVE_ITCH='TinyHunterWindowMacLinux.zip' ARCHIVE_ITCH_TYPE='zip' ARCHIVE_ITCH_URL='https://nojigames.itch.io/tinyhunter' ARCHIVE_ITCH_MD5='9fa1ab03e2769365229a29b6b37995f7' ARCHIVE_ITCH_VERSION='1.0-itch' ARCHIVE_ITCH_SIZE='350000' ARCHIVE_GAME_BIN_PATH='TinyHunterWindowMacLinux/Linux' ARCHIVE_GAME_BIN_FILES='tinyhunter.x86_64' ARCHIVE_GAME_DATA_PATH='TinyHunterWindowMacLinux/Linux' ARCHIVE_GAME_DATA_FILES='*' APP_MAIN_TYPE='native' APP_MAIN_EXE='tinyhunter.x86_64' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID glibc libstdc++" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-to-be-or-not-to-be.sh0000755000000000000000000000464714471751340015421 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # To Be or Not To Be # send your bug reports to contact@dotslashplay.it ### script_version=20230501.3 GAME_ID='to-be-or-not-to-be' GAME_NAME='To Be or Not To Be' UNITY3D_NAME='To Be or Not To Be' ARCHIVE_BASE_0='tobe_linux_3270.zip' ARCHIVE_BASE_0_MD5='2a7e51cfbcdae43c438557ffa0a9cff0' ARCHIVE_BASE_0_SIZE='1400000' ARCHIVE_BASE_0_VERSION='3270-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/ryan-norths-to-be-or-not-to-be' CONTENT_PATH_DEFAULT='tobe_linux_3270' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPENDENCIES_LIBRARIES=' ld-linux-x86-64.so.2 libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS_DEB" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN32_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.20' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-to-the-moon.sh0000755000000000000000000000445214471751340014333 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # To The Moon # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220720.1 GAME_ID='to-the-moon' GAME_NAME='To The Moon' ARCHIVE_BASE_0='ToTheMoon_linux_1389114090.sh' ARCHIVE_BASE_0_MD5='706a5c9467328438d412370ffb1454de' ARCHIVE_BASE_0_TYPE='mojosetup' 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/noarch' ARCHIVE_DOC_DATA_FILES=' *.txt' ARCHIVE_GAME_DATA_FILES=' *' ARCHIVE_GAME_BIN32_PATH="${CONTENT_PATH_DEFAULT}/../x86" ARCHIVE_GAME_BIN32_FILES=' *' ARCHIVE_GAME_BIN64_PATH="${CONTENT_PATH_DEFAULT}/../x86_64" ARCHIVE_GAME_BIN64_FILES=' *' APP_MAIN_TYPE='native' APP_MAIN_PREFIX_TYPE='none' APP_MAIN_EXE_BIN32='ToTheMoon.bin.x86' APP_MAIN_EXE_BIN64='ToTheMoon.bin.x86_64' APP_MAIN_ICON='ToTheMoon.png' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID libGL.so.1 libSDL2-2.0.so.0 freetype alsa" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.17' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icon PKG='PKG_DATA' icons_inclusion # Include game data prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-toki-tori-2.sh0000755000000000000000000000716614471751340014252 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Toki Tori 2 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210607.3 # Set game-specific variables GAME_ID='toki-tori-2' GAME_NAME='Toki Tori 2' ARCHIVE_BASE_0='TokiTori2-Linux-2017-06-22.sh' ARCHIVE_BASE_0_MD5='564ddc7b09982295732923bb7ac6f39e' ARCHIVE_BASE_0_VERSION='2017.06.22-humble.2017.10.02' ARCHIVE_BASE_0_SIZE='640000' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/toki-tori-2' ARCHIVE_DOC_DATA_PATH='data/noarch' ARCHIVE_DOC_DATA_FILES='namespace.txt README.linux steam_appid.txt' ARCHIVE_GAME_BIN32_PATH='data/x86' ARCHIVE_GAME_BIN32_FILES='TokiTori2.bin.x86' ARCHIVE_GAME_BIN64_PATH='data/x86_64' ARCHIVE_GAME_BIN64_FILES='TokiTori2.bin.x86_64' ARCHIVE_GAME_DATA_PATH='data/noarch' ARCHIVE_GAME_DATA_FILES='*' APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32='TokiTori2.bin.x86' APP_MAIN_EXE_BIN64='TokiTori2.bin.x86_64' APP_MAIN_ICON='app_icon.png' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="${PKG_DATA_ID} glibc libstdc++ libopenal.so.1 libSDL2-2.0.so.0" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary files rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-tomb-raider-2.sh0000755000000000000000000001104614471751340014526 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright © 2015-2021, Antoine Le Gonidec # 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. ### ### # Tomb Raider 2 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220109.3 # Set game-specific variables GAME_ID='tomb-raider-2' GAME_NAME='Tomb Raider Ⅱ' ARCHIVE_BASE_EN_0='setup_tomb_raider_2_20180108_(17720).exe' ARCHIVE_BASE_EN_0_MD5='858aa88bf7654a8fb7b7f8070cf1021b' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_VERSION='1.1-gog17720' ARCHIVE_BASE_EN_0_SIZE='340000' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/tomb_raider_123' ARCHIVE_BASE_FR_0='setup_tomb_raider_2_french_20180108_(17720).exe' ARCHIVE_BASE_FR_0_MD5='12ebe01ec7b4366862af31b860097f14' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_VERSION='1.1-gog17720' ARCHIVE_BASE_FR_0_SIZE='410000' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/tomb_raider_123' CONTENT_PATH_DEFAULT='app' ARCHIVE_DOC_L10N_FILES=' manual.pdf readme.txt' ARCHIVE_DOC_L10N_FILES_EN=" $ARCHIVE_DOC_L10N_FILES tomb?raider?ii_pc?eula?english.docx" ARCHIVE_DOC_L10N_FILES_FR=" $ARCHIVE_DOC_L10N_FILES tomb?raider?ii_pc?eula?french.doc" ARCHIVE_GAME_BIN_FILES=' *.dll *.exe' ARCHIVE_GAME_L10N_FILES=' audio data/*.dat data/*.pcx' ARCHIVE_GAME_DATA_FILES=' fmv music tombpc.dat data/*.sfx data/*.tr2' APP_MAIN_TYPE='wine' APP_MAIN_EXE='tomb2.exe' APP_MAIN_ICON='tomb2.exe' APP_SETUP_ID="${GAME_ID}-setup" APP_SETUP_NAME="${GAME_NAME} - setup" APP_SETUP_CAT='Settings' APP_SETUP_TYPE='wine' APP_SETUP_EXE='tomb2.exe' APP_SETUP_OPTIONS='-setup' APP_SETUP_ICON='tomb2.exe' PACKAGES_LIST='PKG_BIN PKG_L10N PKG_DATA' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_ID_EN="${PKG_L10N_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDE="$PKG_L10N_ID" PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID $PKG_L10N_ID wine" PKG_BIN_DEPS_ARCH='lib32-gstreamer lib32-gst-plugins-base' PKG_BIN_DEPS_DEB='gstreamer1.0-plugins-base, gstreamer1.0-plugins-good' PKG_BIN_DEPS_GENTOO='media-libs/gst-plugins-base[abi_x86_32] media-libs/gst-plugins-good[abi_x86_32]' # Use persistent storage for user data DATA_FILES='./savegame.*' # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icons PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' 'APP_SETUP' icons_move_to 'PKG_DATA' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' 'APP_SETUP' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-tooth-and-tail.sh0000755000000000000000000000545314471751340015013 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Tooth and Tail # send your bug reports to contact@dotslashplay.it ### script_version=20230125.2 GAME_ID='tooth-and-tail' GAME_NAME='Tooth and Tail' ## This DRM-free archive used to be sold by Humble Bundle, ## but they now only provide a Steam key instead. ARCHIVE_BASE_0='toothandtail_linux.zip' ARCHIVE_BASE_0_MD5='5a01a61889e795b538d3db288a6f519d' ARCHIVE_BASE_0_VERSION='1.6.1.1-humble1' ARCHIVE_BASE_0_SIZE='600000' CONTENT_PATH_DEFAULT='Release' CONTENT_GAME_MAIN_FILES=' content ToothAndTail.exe ToothAndTail.exe.config fr/ToothAndTail.resources.dll FNA.dll FNA.dll.config Glide.dll Newtonsoft.Json.dll' APP_MAIN_EXE='ToothAndTail.exe' APP_MAIN_ICON='ToothAndTail.exe' PKG_MAIN_DEPS='mono' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libopenal.so.1 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0 libtheora.so.0 libvorbisfile.so.3' PKG_MAIN_DEPENDENCIES_MONO_LIBRARIES=' mscorlib.dll Mono.Posix.dll Mono.Security.dll System.dll System.Configuration.dll System.Core.dll System.Data.dll System.Drawing.dll System.Net.dll System.Net.Http.dll System.Runtime.Serialization.dll System.Security.dll System.Windows.Forms.dll System.Xml.dll System.Xml.Linq.dll' # Include shipped libraries that can not be replaced by system ones CONTENT_LIBS_LIBS32_PATH="${CONTENT_PATH_DEFAULT}/lib" CONTENT_LIBS_LIBS32_FILES=' libmojoshader.so libtheorafile.so' CONTENT_LIBS_LIBS64_PATH="${CONTENT_PATH_DEFAULT}/lib64" CONTENT_LIBS_LIBS64_FILES=' libfmod.so.10 libfmodstudio.so.10 libmojoshader.so libtheorafile.so' PACKAGES_LIST='PKG_MAIN PKG_LIBS32 PKG_LIBS64' PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS32_ID="$PKG_LIBS_ID" PKG_LIBS32_ARCH='32' PKG_LIBS64_ID="$PKG_LIBS_ID" PKG_LIBS64_ARCH='64' PKG_MAIN_DEPS="$PKG_MAIN_DEPS $PKG_LIBS_ID" # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-toren.sh0000755000000000000000000000441514471751340013313 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Toren # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220805.1 GAME_ID='toren' GAME_NAME='Toren' # This DRM-free installer is no longer available for sale from gog.com ARCHIVE_BASE_0='setup_toren_gog-1_(17651).exe' ARCHIVE_BASE_0_MD5='4785b339bb5918722ff6a9f30f9d5c04' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_toren_gog-1_(17651)-1.bin' ARCHIVE_BASE_0_PART1_MD5='877ca6f3271cb03b46b5de71a6ff37de' ARCHIVE_BASE_0_PART1_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2400000' ARCHIVE_BASE_0_VERSION='1.0-gog17651' UNITY3D_NAME='toren' CONTENT_PATH_DEFAULT='app' ARCHIVE_GAME_BIN_FILES=" ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_data/mono ${UNITY3D_NAME}_data/plugins" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" APP_MAIN_ICON="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine libGL.so.1" # Use persistent storage for user data DATA_FILES='*.sav' # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icon PKG='PKG_DATA' icons_get_from_workdir 'APP_MAIN' # Include game data prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-torins-passage.sh0000755000000000000000000000640414471751340015123 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # Torin’s Passage # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20200529.1 # Set game-specific variables GAME_ID='torins-passage' GAME_NAME='Torinʼs Passage' ARCHIVE_GOG='setup_torins_passage_2.0.0.7.exe' ARCHIVE_GOG_URL='https://www.gog.com/game/torins_passage' ARCHIVE_GOG_MD5='a7398abdb6964bf6a6446248f138d05e' ARCHIVE_GOG_SIZE='350000' ARCHIVE_GOG_VERSION='1.0-gog2.0.0.7' ARCHIVE_DOC_MAIN_PATH='app' ARCHIVE_DOC_MAIN_FILES='torin.txt *.pdf' ARCHIVE_GAME_MAIN_PATH='app' ARCHIVE_GAME_MAIN_FILES='*.exe resource.cfg *.drv *.shp *.hlp *.scr install.txt movie patches *.000 *.aud *.sfx *.err version' DATA_FILES='./version ./AUTOSAVE.* ./TORINSG.*' CONFIG_FILES='./resource.cfg ./TORIN.PRF' APP_MAIN_TYPE='dosbox' APP_MAIN_EXE='sierrah.exe' APP_MAIN_OPTIONS='resource.cfg' APP_MAIN_ICON='app/torinhr.ico' PACKAGES_LIST='PKG_MAIN' PKG_BIN_DEPS='dosbox' # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Extract icons icons_get_from_workdir 'APP_MAIN' >/dev/null 2>&1 rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-tormentum-dark-sorrow.sh0000755000000000000000000001005314471751340016461 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Tormentum: Dark Sorrow # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210429.4 # Set game-specific variables GAME_ID='tormentum-dark-sorrow' GAME_NAME='Tormentum: Dark Sorrow' ARCHIVES_LIST=' ARCHIVE_BASE_0' ARCHIVE_BASE_0='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' ARCHIVE_GAME_BIN_PATH='app' ARCHIVE_GAME_BIN_FILES='tormentum.exe adobe?air' ARCHIVE_GAME_DATA_PATH='app' ARCHIVE_GAME_DATA_FILES='assets tormentum.swf meta-inf mimetype ico' APP_MAIN_TYPE='wine' APP_MAIN_EXE='tormentum.exe' APP_MAIN_ICON='tormentum.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Use persistent storage for user data DATA_DIRS="${DATA_DIRS} ./userdata" APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use persistent storage for user data userdata_path_prefix="${WINEPREFIX}/drive_c/users/${USER}/Application Data/com.ohnoo.Tormentum" userdata_path_persistent="${PATH_PREFIX}/userdata" if [ ! -h "$userdata_path_prefix" ]; then if [ -d "$userdata_path_prefix" ]; then # Migrate existing user data to the persistent path mv "$userdata_path_prefix"/* "$userdata_path_persistent" rmdir "$userdata_path_prefix" fi # Create link from prefix to persistent path mkdir --parents "$(dirname "$userdata_path_prefix")" ln --symbolic "$userdata_path_persistent" "$userdata_path_prefix" fi' # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-total-annihilation-kingdoms.sh0000755000000000000000000000377614471751340017604 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 HS-157 # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Total Annihilation: Kingdoms # send your bug reports to contact@dotslashplay.it ### script_version=20230222.1 GAME_ID='total-annihilation-kingdoms' GAME_NAME='Total Annihilation: Kingdoms' ARCHIVE_BASE_0='setup_total_annihilation_kingdoms_2.0.0.22.exe' ARCHIVE_BASE_0_MD5='206f4b8e9159414ee38ec609831907bb' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1100000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.22' ARCHIVE_BASE_0_URL='https://www.gog.com/game/total_annihilation_kingdoms' CONTENT_PATH_DEFAULT='app' ARCHIVE_GAME_BIN_FILES=' *.asi *.dll *.exe *.tsk' ARCHIVE_GAME_DATA_FILES=' atlas boneyards docs gc maps movies music *.256 *.esk *.hpi *.htm *.icd *.id *.isu *.key *.mmz *.pdf *.tdf *.txt' APP_MAIN_EXE='kingdoms.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-total-overdose.sh0000755000000000000000000000704714471751340015137 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # 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. ### ### # Total Overdose # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20211031.4 # Set game-specific variables GAME_ID='total-overdose' GAME_NAME='Total Overdose' ARCHIVE_BASE_0='setup_total_overdose_1.00_(18925).exe' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_MD5='df9f6750e5f12fd83ee775365dfd9637' ARCHIVE_BASE_0_SIZE='1700000' ARCHIVE_BASE_0_VERSION='1.00-gog18925' ARCHIVE_BASE_0_URL='https://www.gog.com/game/total_overdose_a_gunslingers_tale_in_mexico' ARCHIVE_DOC_DATA_PATH='app' ARCHIVE_DOC_DATA_FILES=' *.doc *.docx *.pdf' ARCHIVE_GAME_BIN_PATH='app' ARCHIVE_GAME_BIN_FILES=' *.dll tod.exe' ARCHIVE_GAME_DATA_PATH='app' ARCHIVE_GAME_DATA_FILES=' *.dpc *.naz' APP_MAIN_TYPE='wine' APP_MAIN_EXE='tod.exe' APP_MAIN_ICON='tod.exe' APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=101' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Use persistent storage for user data APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/$(id -un)/My Documents/Total Overdose' DATA_DIRS="$DATA_DIRS ./userdata/savegames" # Load common functions target_version='2.14' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "$PLAYIT_WORKDIR/gamedata" # Include game icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-touhou-11-demo.sh0000755000000000000000000000661414471751340014653 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Emmanuel Gil Peyrot # SPDX-FileCopyrightText: © 2020 BetaRays # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Touhou 11 # send your bug reports to contact@dotslashplay.it ### script_version=20231005.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='touhou-11' GAME_NAME='Touhou Chireiden ~ Subterranean Animism' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" ARCHIVE_BASE_DEMO_0_NAME='th11tr002a_setup.exe' ARCHIVE_BASE_DEMO_0_MD5='9b7c092a529fcc1f48590f0a2b3cca87' ARCHIVE_BASE_DEMO_0_EXTRACTOR='innoextract' ARCHIVE_BASE_DEMO_0_EXTRACTOR_OPTIONS='--progress=1 --silent' ARCHIVE_BASE_DEMO_0_SIZE='140000' ARCHIVE_BASE_DEMO_0_VERSION='0.02a-zun1' ARCHIVE_BASE_DEMO_0_URL='https://www16.big.or.jp/~zun/html/th11top.html' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' *.exe' CONTENT_GAME_DATA_FILES=' *.dat' CONTENT_DOC_DATA_FILES=' *.txt マニュアル' USER_PERSISTENT_FILES=' h11.cfg scoreth11.dat log.txt' APP_MAIN_EXE='th11.exe' ## Set appropriate locale before running the game APP_MAIN_PRERUN='# Set appropriate locale before running the game export LANG=ja_JP.UTF-8' APP_CONFIG_ID="${GAME_ID}-config" APP_CONFIG_ID_DEMO="${GAME_ID_DEMO}-config" APP_CONFIG_NAME="$GAME_NAME - configuration" APP_CONFIG_NAME_DEMO="$GAME_NAME_DEMO - configuration" APP_CONFIG_CAT='Settings' APP_CONFIG_EXE='custom.exe' APP_CONFIG_ICON='th11.exe' ## Set appropriate locale before running the game APP_CONFIG_PRERUN="$APP_MAIN_PRERUN" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPS_DEMO="$PKG_DATA_ID_DEMO" ## TODO: The library should give the ability to set dependencies on fonts. PKG_BIN_DEPS_DEB='fonts-wqy-microhei' PKG_BIN_DEPS_ARCH='wqy-microhei' PKG_BIN_DEPS_GENTOO='media-fonts/wqy-microhei' # Convert the file names and text files to UTF-8 encoding SCRIPT_DEPS="${SCRIPT_DEPS:-} convmv 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( content_path=$(content_path_default) cd "${PLAYIT_WORKDIR}/gamedata/${content_path}" # Convert the file names and text files to UTF-8 encoding convmv -f UTF-8 -t WINDOWS-1252 --notest -r . >/dev/null convmv -f CP932 -t UTF-8 --notest -r . >/dev/null iconv_shell_command='contents=$(iconv --from-code CP932 --to-code UTF-8 "$1")' iconv_shell_command="$iconv_shell_command"'; printf "%s" "$contents" > "$1"' find . \( -name '*.txt' -o -name '*.html' \) -exec \ sh -c "$iconv_shell_command" -- '{}' \; ) # Include game data PKG='PKG_DATA' icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-touhou-12-demo.sh0000755000000000000000000000527314471751340014654 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Emmanuel Gil Peyrot set -o errexit ### # Touhou 12 # send your bug reports to contact@dotslashplay.it ### script_version=20231130.2 GAME_ID='touhou-12-demo' GAME_NAME='Touhou Seirensen ~ Undefined Fantastic Object (demo)' SCRIPT_DEPS='iconv' ARCHIVE_ZUN='th12tr002a_setup.exe' ARCHIVE_ZUN_MD5='61a77c94c2ef64d7afda477dda0594eb' ARCHIVE_ZUN_TYPE='innosetup' ARCHIVE_ZUN_SIZE='151620' ARCHIVE_ZUN_VERSION='0.02a-zun1' ARCHIVE_ZUN_URL='http://www16.big.or.jp/~zun/html/th12dl.html' ARCHIVE_DOC_DATA_PATH='app' ARCHIVE_DOC_DATA_FILES='*.txt index.html html' ARCHIVE_GAME_BIN_PATH='app' ARCHIVE_GAME_BIN_FILES='*.exe' ARCHIVE_GAME_DATA_PATH='app' ARCHIVE_GAME_DATA_FILES='*.dat' # Store saved games and settings outside of WINE prefix CONFIG_FILES='./th12.cfg' DATA_FILES='./log.txt ./score.dat' DATA_DIRS='./replay' APP_MAIN_TYPE='wine' APP_MAIN_PRERUN='export LANG=ja_JP.UTF-8' APP_MAIN_EXE='th12.exe' APP_MAIN_ICON='th12.exe' APP_CONFIG_ID="${GAME_ID}_config" APP_CONFIG_TYPE='wine' APP_CONFIG_PRERUN='export LANG=ja_JP.UTF-8' APP_CONFIG_EXE='custom.exe' APP_CONFIG_ICON='custom.exe' APP_CONFIG_NAME="$GAME_NAME - configuration" APP_CONFIG_CAT='Settings' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine glx" PKG_BIN_DEPS_DEB='fonts-wqy-microhei' PKG_BIN_DEPS_ARCH='wqy-microhei' PKG_BIN_DEPS_GENTOO='media-fonts/wqy-microhei' # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi #shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" # Convert the text files to UTF-8 encoding find "$PLAYIT_WORKDIR" \( -name '*.txt' -o -name '*.html' \) -exec \ sh -c 'contents=$(iconv --from-code CP932 --to-code UTF-8 "$1"); printf "%s" "$contents" > "$1"' -- '{}' \; prepare_package_layout # Extract game icons PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' 'APP_CONFIG' icons_move_to 'PKG_DATA' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' 'APP_CONFIG' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-touhou-13-demo.sh0000755000000000000000000000536414471751340014656 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Emmanuel Gil Peyrot set -o errexit ### # Touhou Shinreibyou ~ Ten Desires # send your bug reports to contact@dotslashplay.it ### script_version=20230127.2 # Set game-specific variables GAME_ID='touhou-13-demo' GAME_NAME='Touhou Touhou Shinreibyou ~ Ten Desires - Demo' SCRIPT_DEPS='iconv' ARCHIVES_LIST='ARCHIVE_BASE_0' ARCHIVE_BASE_0='th13tr001a_setup.exe' ARCHIVE_BASE_0_MD5='5336b10545fd0b6cb0eb38c97199e9bc' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='190000' ARCHIVE_BASE_0_VERSION='0.01a-zun1' ARCHIVE_BASE_0_URL='http://www16.big.or.jp/~zun/html/th13dl.html' ARCHIVE_DOC_DATA_PATH='app' ARCHIVE_DOC_DATA_FILES='*.txt' ARCHIVE_GAME_BIN_PATH='app' ARCHIVE_GAME_BIN_FILES='*.exe' ARCHIVE_GAME_DATA_PATH='app' ARCHIVE_GAME_DATA_FILES='*.dat' # Store saved games and settings outside of WINE prefix CONFIG_FILES='./th13.cfg' DATA_FILES='./log.txt ./score.dat' DATA_DIRS='./replay' APP_MAIN_TYPE='wine' APP_MAIN_PRERUN='export LANG=ja_JP.UTF-8' APP_MAIN_EXE='th13.exe' APP_MAIN_ICON='th13.exe' APP_CONFIG_ID="${GAME_ID}_config" APP_CONFIG_TYPE='wine' APP_CONFIG_PRERUN='export LANG=ja_JP.UTF-8' APP_CONFIG_EXE='custom.exe' APP_CONFIG_ICON='custom.exe' APP_CONFIG_NAME="$GAME_NAME - configuration" APP_CONFIG_CAT='Settings' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine glx" PKG_BIN_DEPS_DEB='fonts-wqy-microhei' PKG_BIN_DEPS_ARCH='wqy-microhei' PKG_BIN_DEPS_GENTOO='media-fonts/wqy-microhei' # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi #shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" # Convert the text files to UTF-8 encoding find "$PLAYIT_WORKDIR" -name '*.txt' -exec\ sh -c 'contents=$(iconv --from-code CP932 --to-code UTF-8 "$1"); printf "%s" "$contents" > "$1"' -- '{}' \; prepare_package_layout # Extract game icons PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' 'APP_CONFIG' icons_move_to 'PKG_DATA' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' 'APP_CONFIG' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-touhou-14-demo.sh0000755000000000000000000000605414471751340014654 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Touhou 14 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220701.1 GAME_ID='touhou-14-demo' GAME_NAME='Touhou Kishinjou ~ Double Dealing Character (demo)' # This DRM-free archive is no longer available from Playism store, # since their owners closed it down in favour of Steam. ARCHIVE_BASE_0='DoubleDealingCharacterDemo.zip' ARCHIVE_BASE_0_MD5='76a751e8becb51689c2256d218cda788' ARCHIVE_BASE_0_SIZE='190000' ARCHIVE_BASE_0_VERSION='0.01b-playism' CONTENT_PATH_DEFAULT='Double Dealing Character DEMO (Touhou14)' ARCHIVE_DOC_DATA_FILES=' *.txt' ARCHIVE_GAME_BIN_FILES=' *.exe' ARCHIVE_GAME_DATA_FILES=' *.dat' APP_MAIN_TYPE='wine' APP_MAIN_EXE='th14.exe' APP_MAIN_ICON='th14.exe' APP_CONFIG_ID="${GAME_ID}-config" APP_CONFIG_NAME="$GAME_NAME - configuration" APP_CONFIG_CAT='Settings' APP_CONFIG_TYPE='wine' APP_CONFIG_EXE='custom.exe' APP_CONFIG_ICON='custom.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine libGL.so.1" PKG_BIN_DEPS_DEB='fonts-wqy-microhei' PKG_BIN_DEPS_ARCH='wqy-microhei' PKG_BIN_DEPS_GENTOO='media-fonts/wqy-microhei' # Use persistent storage for user data APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/Application Data/ShanghaiAlice/th14tr' DATA_DIRS="$DATA_DIRS ./userdata" # iconv is used to convert files encoding SCRIPT_DEPS="$SCRIPT_DEPS iconv" # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Convert the text files to UTF-8 encoding ( content_path=$(content_path_default) cd "${PLAYIT_WORKDIR}/gamedata/${content_path}" iconv_shell_command='contents=$(iconv --from-code CP932 --to-code UTF-8 "$1")' iconv_shell_command="$iconv_shell_command"'; printf "%s" "$contents" > "$1"' find . \( -name '*.txt' -o -name '*.html' \) -exec \ sh -c "$iconv_shell_command" -- '{}' \; ) # Include game data prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icons PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' 'APP_CONFIG' icons_move_to 'PKG_DATA' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' 'APP_CONFIG' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-touhou-16-5.sh0000755000000000000000000000657114471751340014102 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Touhou 16.5 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220701.1 # Set game-specific variables GAME_ID='touhou-16-5' GAME_NAME='Touhou 16.5: Hifuu Nightmare Diary ~ Violet Detector' ARCHIVE_BASE_DISC_0='violet-detector.iso' ARCHIVE_BASE_DISC_0_MD5='d6198341c3c92befbeb713fdccc189e7' ARCHIVE_BASE_DISC_0_TYPE='iso' ARCHIVE_BASE_DISC_0_VERSION='1.00a-disc' ARCHIVE_BASE_DISC_0_SIZE='370000' ARCHIVE_BASE_DISC_RAW_0='violet-detector-raw.iso' ARCHIVE_BASE_DISC_RAW_0_MD5='7bbcf834290e33c0bb656a43a9d39ffe' ARCHIVE_BASE_DISC_RAW_0_TYPE='iso' ARCHIVE_BASE_DISC_RAW_0_VERSION='1.00a-disc' ARCHIVE_BASE_DISC_RAW_0_SIZE='370000' CONTENT_PATH_DEFAULT='th165' ARCHIVE_DOC_DATA_FILES=' *.txt' ARCHIVE_GAME_BIN_FILES=' *.exe' ARCHIVE_GAME_DATA_FILES=' *.dat' APP_MAIN_TYPE='wine' APP_MAIN_EXE='th165.exe' APP_MAIN_ICON='th165.exe' APP_CONFIG_ID="${GAME_ID}-config" APP_CONFIG_NAME="${GAME_NAME} - configuration" APP_CONFIG_CAT='Settings' APP_CONFIG_TYPE='wine' APP_CONFIG_EXE='custom.exe' APP_CONFIG_ICON='custom.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" PKG_BIN_DEPS_DEB='fonts-wqy-microhei' PKG_BIN_DEPS_ARCH='wqy-microhei' PKG_BIN_DEPS_GENTOO='media-fonts/wqy-microhei' # Use persistent storage for user data APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/Application Data/ShanghaiAlice/th165' DATA_DIRS="$DATA_DIRS ./userdata" # Set appropriate locale before running the game APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Set appropriate locale before running the game export LANG=ja_JP.UTF-8' APP_CONFIG_PRERUN="$APP_MAIN_PRERUN" # iconv is used to convert files encoding SCRIPT_DEPS="$SCRIPT_DEPS iconv" # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Convert the text files to UTF-8 encoding ( content_path=$(content_path_default) cd "${PLAYIT_WORKDIR}/gamedata/${content_path}" iconv_shell_command='contents=$(iconv --from-code CP932 --to-code UTF-8 "$1")' iconv_shell_command="$iconv_shell_command"'; printf "%s" "$contents" > "$1"' find . \( -name '*.txt' -o -name '*.html' \) -exec \ sh -c "$iconv_shell_command" -- '{}' \; ) # Include game data prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Extract game icons PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' 'APP_CONFIG' icons_move_to 'PKG_DATA' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' 'APP_CONFIG' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-touhou-6-demo.sh0000755000000000000000000000625114471751340014574 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Emmanuel Gil Peyrot # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Touhou 6 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220701.2 GAME_ID='touhou-6-demo' GAME_NAME='Touhou Koumakyou ~ the Embodiment of Scarlet Devil (demo)' ARCHIVE_BASE_0='kouma_tr013.lzh' ARCHIVE_BASE_0_MD5='7ea4be414a7f256429a2c5e4666c9881' ARCHIVE_BASE_0_TYPE='lha' ARCHIVE_BASE_0_SIZE='4500' ARCHIVE_BASE_0_VERSION='0.13-zun1' ARCHIVE_BASE_0_URL='http://www16.big.or.jp/~zun/html/th06.html' CONTENT_PATH_DEFAULT='東方紅魔郷 体験版' ARCHIVE_DOC_DATA_FILES=' *.txt マニュアル' ARCHIVE_GAME_BIN_FILES=' *.exe' ARCHIVE_GAME_DATA_FILES=' *.DAT' APP_MAIN_TYPE='wine' APP_MAIN_EXE='東方紅魔郷.exe' APP_MAIN_ICON='東方紅魔郷.exe' APP_CONFIG_ID="${GAME_ID}-config" APP_CONFIG_NAME="$GAME_NAME - configuration" APP_CONFIG_CAT='Settings' APP_CONFIG_TYPE='wine' APP_CONFIG_EXE='custom.exe' APP_CONFIG_ICON='custom.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine libGL.so.1" PKG_BIN_DEPS_DEB='fonts-wqy-microhei' PKG_BIN_DEPS_ARCH='wqy-microhei' PKG_BIN_DEPS_GENTOO='media-fonts/wqy-microhei' # Set appropriate locale before running the game APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Set appropriate locale before running the game export LANG=ja_JP.UTF-8' APP_CONFIG_PRERUN="$APP_MAIN_PRERUN" # Use persistent storage for user data CONFIG_FILES='./東方紅魔郷.cfg' DATA_FILES='./log.txt ./score.dat' DATA_DIRS='./replay' # convmv and iconv are used to convert files encoding SCRIPT_DEPS="$SCRIPT_DEPS convmv iconv" # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Convert the file names and text files to UTF-8 encoding ( cd "${PLAYIT_WORKDIR}/gamedata" convmv -f CP932 -t UTF-8 --notest -r . >/dev/null iconv_shell_command='contents=$(iconv --from-code CP932 --to-code UTF-8 "$1")' iconv_shell_command="$iconv_shell_command"'; printf "%s" "$contents" > "$1"' find . \( -name '*.txt' -o -name '*.html' \) -exec \ sh -c "$iconv_shell_command" -- '{}' \; ) # Include game data prepare_package_layout # Include game icons PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' 'APP_CONFIG' icons_move_to 'PKG_DATA' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' 'APP_CONFIG' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-touhou-9-demo.sh0000755000000000000000000001021614471751340014573 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2020, Emmanuel Gil Peyrot # 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. ### ### # Touhou 9 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220328.2 # Set game-specific variables GAME_ID='touhou-9-demo' GAME_NAME='Touhou Kaeizuka ~ Phantasmagoria of Flower View - Demo' SCRIPT_DEPS='iconv' ## All download links behind the provided URL seem to be dead, ## despite the download page itself still being available. ARCHIVE_BASE_0='kaei_ver002.lzh' ARCHIVE_BASE_0_MD5='e07878f414404ba2157c4f646ccf3708' ARCHIVE_BASE_0_TYPE='lha' ARCHIVE_BASE_0_SIZE='29000' ARCHIVE_BASE_0_VERSION='0.02a-zun1' ARCHIVE_BASE_0_URL='https://www16.big.or.jp/~zun/html/th09dl.html' CONTENT_PATH_DEFAULT='kaei' ARCHIVE_DOC_DATA_FILES=' *.txt manual' ARCHIVE_GAME_BIN_FILES=' *.exe' ARCHIVE_GAME_DATA_FILES=' *.dat' # Store saved games and settings outside of WINE prefix CONFIG_FILES='./th09tr.cfg' DATA_FILES='./log.txt ./score.dat' DATA_DIRS='./replay' APP_MAIN_TYPE='wine' APP_MAIN_PRERUN='export LANG=ja_JP.UTF-8' APP_MAIN_EXE='th09tr.exe' APP_MAIN_ICON='th09tr.exe' APP_CONFIG_ID="${GAME_ID}_config" APP_CONFIG_TYPE='wine' APP_CONFIG_PRERUN='export LANG=ja_JP.UTF-8' APP_CONFIG_EXE='custom.exe' APP_CONFIG_ICON='custom.exe' APP_CONFIG_NAME="$GAME_NAME - configuration" APP_CONFIG_CAT='Settings' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine libGL.so.1" PKG_BIN_DEPS_DEB='fonts-wqy-microhei' PKG_BIN_DEPS_ARCH='wqy-microhei' PKG_BIN_DEPS_GENTOO='media-fonts/wqy-microhei' # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" # Convert the text files to UTF-8 encoding find "$PLAYIT_WORKDIR" \( -name '*.txt' -o -name '*.html' \) -exec \ sh -c 'contents=$(iconv --from-code CP932 --to-code UTF-8 "$1"); printf "%s" "$contents" > "$1"' -- '{}' \; # Include game data prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icons PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' 'APP_CONFIG' icons_move_to 'PKG_DATA' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' 'APP_CONFIG' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-tower-of-guns.sh0000755000000000000000000000534614471751340014704 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Tower of Guns # send your bug reports to contact@dotslashplay.it ### script_version=20230103.1 GAME_ID='tower-of-guns' GAME_NAME='Tower of Guns' ## This Linux native DRM-free installer is no longer avaiable for sale from humblebundle.com ARCHIVE_BASE_0='TowerOfGuns-Linux-1.27-2015021101-g_fix.sh' ARCHIVE_BASE_0_MD5='45fae40e529e678c9129f9ee2dc8694b' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='950000' ARCHIVE_BASE_0_VERSION='1.27-humble160104' CONTENT_PATH_DEFAULT='data' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/x86/Binaries/Linux/lib" CONTENT_LIBS_BIN_FILES=' libPhysXCore.so libPhysXCooking.so libSDL2_mixer-2.0.so.0 libtcmalloc.so.0' CONTENT_GAME_BIN_PATH="${CONTENT_PATH_DEFAULT}/x86" CONTENT_GAME_BIN_FILES=' Binaries/Linux/UDKGame-Linux' CONTENT_GAME_DATA_PATH="${CONTENT_PATH_DEFAULT}/noarch" CONTENT_GAME_DATA_FILES=' Engine UDKGame ToGIcon.bmp TowerOfGunsIcon.png' CONTENT_DOC_DATA_PATH="${CONTENT_PATH_DEFAULT}/noarch" CONTENT_DOC_DATA_FILES=' *.txt README.linux' APP_MAIN_EXE='Binaries/Linux/UDKGame-Linux' APP_MAIN_ICON='noarch/TowerOfGunsIcon.png' APP_MAIN_PRERUN='export LANG=C' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libogg.so.0 libopenal.so.1 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libstdc++.so.6 libvorbisfile.so.3 libvorbis.so.0' # Run the game binary from its parent directory APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Run the game binary from its parent directory cd "$(dirname "$APP_EXE")" APP_EXE=$(basename "$APP_EXE")' # Load common functions target_version='2.20' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game date content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-townscaper.sh0000755000000000000000000000675014471751340014355 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2018-2021, VA # 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. ### ### # Townscaper # build native Linux packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210926.1 # Set game-specific variables GAME_ID='townscaper' GAME_NAME='Townscaper' ARCHIVE_BASE_0='setup_townscaper_1.0_(49525).exe' ARCHIVE_BASE_0_MD5='1a1e0bd05b686bc6a5b0aabde0901cb1' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='108000' ARCHIVE_BASE_0_VERSION='1.0-gog49525' ARCHIVE_BASE_0_URL='https://www.gog.com/game/townscaper' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='*.dll *.exe' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='townscaper_data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='townscaper.exe' APP_MAIN_ICON='townscaper.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="${PKG_DATA_ID} wine" # Use persistent storage for game progress and settings APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/AppData/LocalLow/Oskar Stalberg/Townscaper' CONFIG_FILES="$CONFIG_FILES userdata/Sett.ings" DATA_DIRS="$DATA_DIRS userdata/Saves userdata/Screenshots" # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-trackmania-nations-forever.sh0000755000000000000000000001006414471751340017412 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Emmanuel Gil Peyrot # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # TrackMania Nations Forever # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20230618.2 GAME_ID='trackmania-nations-forever' GAME_NAME='TrackMania Nations Forever' ARCHIVE_BASE_0='tmnationsforever_setup.exe' ARCHIVE_BASE_0_MD5='2a36d70989f94ba9369993749ff20640' ARCHIVE_BASE_0_EXTRACTOR='bsdtar' ARCHIVE_BASE_0_SIZE='520000' ARCHIVE_BASE_0_VERSION='2.11.26-1' ARCHIVE_BASE_0_URL='https://trackmaniaforever.com/nations/' CONTENT_PATH_DEFAULT='app' ARCHIVE_GAME_BIN_FILES=' binkw32.dll openal32.dll thumbgbx.dll thumbgbx.tlb tmforever.exe tmforeverlauncher.exe wrap_oal.dll' ARCHIVE_GAME_DATA_FILES=' gamedata packs tmforever.map gbx.ico launchicon.png nadeo.ini' APP_MAIN_TYPE='wine' APP_MAIN_EXE='tmforeverlauncher.exe' APP_MAIN_ICON='launchicon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine libGL.so.1" # Store game progress and configuration in persistent paths APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/My Documents/TmForever' DATA_DIRS="$DATA_DIRS ./userdata" # innoextract is required to extract the content of an inner archive SCRIPT_DEPS="$SCRIPT_DEPS innoextract" # Load common functions target_version='2.17' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Use DXVK for Direct3D 9/10/11 rendering APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use DXVK for Direct3D 9/10/11 rendering if [ ! -e dxvk_installed ]; then # Wait until the WINE prefix creation is complete printf "Waiting for the WINE prefix initialization to complete, it might take a couple seconds…\\n" while [ ! -f "${WINEPREFIX}/system.reg" ]; do sleep 1s done if \ command -v dxvk-setup >/dev/null 2>&1 && \ command -v wine-development >/dev/null 2>&1 then dxvk-setup install --development touch dxvk_installed elif command -v winetricks >/dev/null 2>&1; then winetricks dxvk touch dxvk_installed else message="\\033[1;33mWarning:\\033[0m\\n" message="${message}DXVK patches could not be installed in the WINE prefix.\\n" message="${message}The game might run with display or performance issues.\\n" printf "\\n${message}\\n" fi # Wait a bit to ensure there is no lingering wine process sleep 1s fi' case "$OPTION_PACKAGE" in ('deb') # Debian-based distributions should use repositories-provided dxvk # winetricks is used as a fallback for branches not having access to dxvk-setup extra_dependencies='mesa-vulkan-drivers | vulkan-icd, dxvk-wine32-development | winetricks, dxvk | winetricks' if [ -n "$PKG_BIN_DEPS_DEB" ]; then PKG_BIN_DEPS_DEB="${PKG_BIN_DEPS_DEB}, ${extra_dependencies}" else PKG_BIN_DEPS_DEB="$extra_dependencies" fi ;; (*) # Default is to use winetricks PKG_BIN_DEPS="$PKG_BIN_DEPS winetricks" ;; esac # Extract game data archive_extraction 'SOURCE_ARCHIVE' ARCHIVE_INNER="${PLAYIT_WORKDIR}/gamedata/TmNationsForever_Setup_Tmp.exe" ARCHIVE_INNER_TYPE='innosetup' archive_extraction 'ARCHIVE_INNER' rm "$ARCHIVE_INNER" # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-tri-of-friendship-and-madness.sh0000755000000000000000000000570214471751340017705 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Tri: Of Friendship and Madness # send your bug reports to contact@dotslashplay.it ### script_version=20221019.2 GAME_ID='tri-of-friendship-of-madness' GAME_NAME='TRI: Of Friendship and Madness' UNITY3D_NAME='tri' ARCHIVE_BASE_2='tri_of_friendship_and_madness_1_2_1_stunnedfox_56365.sh' ARCHIVE_BASE_2_MD5='7daf33ea8d0e13fc9d5988bc02e8d1d3' ARCHIVE_BASE_2_TYPE='mojosetup' ARCHIVE_BASE_2_SIZE='480000' ARCHIVE_BASE_2_VERSION='1.2.1-gog56365' ARCHIVE_BASE_2_URL='https://www.gog.com/game/tri' ARCHIVE_BASE_1='tri_of_friendship_and_madness_1_2_30878.sh' ARCHIVE_BASE_1_MD5='3240ccae6723c2fdba20910246a4c068' ARCHIVE_BASE_1_TYPE='mojosetup' ARCHIVE_BASE_1_SIZE='480000' ARCHIVE_BASE_1_VERSION='1.2-gog30878' ARCHIVE_BASE_0='gog_tri_2.6.0.9.sh' ARCHIVE_BASE_0_MD5='c2bf151b58766740e52db9559d61e3d6' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='470000' ARCHIVE_BASE_0_VERSION='1.2-gog2.6.0.9' CONTENT_PATH_DEFAULT='data/noarch/game' ARCHIVE_DOC_FILES=' *.txt' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPENDENCIES_LIBRARIES=' ld-linux-x86-64.so.2 libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN32_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.18' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-trine-1.sh0000755000000000000000000000444314471751340013444 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Trine 1 # send your bug reports to contact@dotslashplay.it ### script_version=20230818.2 GAME_ID='trine-1' GAME_NAME='Trine' ARCHIVE_BASE_0='gog_trine_enchanted_edition_2.0.0.2.sh' ARCHIVE_BASE_0_MD5='0e8d2338b568222b28cf3c31059b4960' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='1500000' ARCHIVE_BASE_0_VERSION='2.12.508-gog2.0.0.2' ARCHIVE_BASE_0_URL='https://www.gog.com/game/trine_enchanted_edition' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_PATH='data/noarch/game/lib/lib32' CONTENT_LIBS_BIN_FILES=' libCg.so libCgGL.so libSDL-1.3.so.0' CONTENT_GAME_BIN_FILES=' bin/trine1_linux_32bit' CONTENT_GAME_DATA_FILES=' data *.fbq *.png' CONTENT_DOC_DATA_FILES=' *.txt' APP_MAIN_EXE='bin/trine1_linux_32bit' APP_MAIN_ICON='trine1.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libasound.so.2 libc.so.6 libdl.so.2 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libogg.so.0 libpango-1.0.so.0 libpng12.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libudev.so.0 libX11.so.6 libz.so.1' # Load common functions 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icon PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-trine-2.sh0000755000000000000000000000666514471751340013455 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2018 Jacek Szafarkiewicz set -o errexit ### # Trine 2 # send your bug reports to contact@dotslashplay.it ### script_version=20230818.1 GAME_ID='trine-2' GAME_NAME='Trine 2' ARCHIVE_BASE_GOG_1='gog_trine_2_complete_story_2.0.0.5.sh' ARCHIVE_BASE_GOG_1_MD5='dd7126c1a6210e56fde20876bdb0a2ac' ARCHIVE_BASE_GOG_1_SIZE='3700000' ARCHIVE_BASE_GOG_1_VERSION='2.01.425-gog2.0.0.5' ARCHIVE_BASE_GOG_1_URL='https://www.gog.com/game/trine_2_complete_story' ARCHIVE_BASE_GOG_0='gog_trine_2_complete_story_2.0.0.4.sh' ARCHIVE_BASE_GOG_0_MD5='dae867bff938dde002eafcce0b72e5b4' ARCHIVE_BASE_GOG_0_SIZE='3700000' ARCHIVE_BASE_GOG_0_VERSION='2.01.425-gog2.0.0.4' ARCHIVE_BASE_HUMBLE_0='trine2_complete_story_v2_01_build_425_humble_linux_full.zip' ARCHIVE_BASE_HUMBLE_0_MD5='82049b65c1bce6841335935bc05139c8' ARCHIVE_BASE_HUMBLE_0_SIZE='3700000' ARCHIVE_BASE_HUMBLE_0_VERSION='2.01build425-humble141016' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/trine-2-complete-story' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='.' CONTENT_LIBS_BIN_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/lib/lib32" CONTENT_LIBS_BIN_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/lib/lib32" CONTENT_LIBS_BIN_FILES=' libCg.so libCgGL.so libPhysXCooking.so libPhysXCooking.so.1 libPhysXCore.so libPhysXCore.so.1 libPhysXLoader.so libPhysXLoader.so.1 libSDL-1.3.so.0' CONTENT_GAME_BIN_FILES=' bin' CONTENT_GAME_DATA_FILES=' data trine2.png *.fbq' CONTENT_DOC_DATA_FILES=' readme*' APP_MAIN_EXE='bin/trine2_linux_launcher_32bit' APP_MAIN_ICON='trine2.png' ## Work around a crash in fullscreen mode APP_MAIN_PRERUN='# Work around a crash in fullscreen mode export SDL_VIDEO_ALLOW_SCREENSAVER=1 ' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libasound.so.2 libatk-1.0.so.0 libc.so.6 libdbus-1.so.3 libdl.so.2 libexpat.so.1 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgthread-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libopenal.so.1 libpango-1.0.so.0 libpangoft2-1.0.so.0 libpng12.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libuuid.so.1 libvorbisfile.so.3 libX11.so.6 libz.so.1' # Load common functions 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Set execution permissions on all binaries chmod 755 bin/* ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-triple-triad-gold.sh0000755000000000000000000000352014471751340015503 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Triple Triad Gold # send your bug reports to contact@dotslashplay.it ### script_version=20230821.1 GAME_ID='triple-triad-gold' GAME_NAME='Triple Triad Gold' ARCHIVE_BASE_0='ttg09.zip' ARCHIVE_BASE_0_MD5='ec517c23236f2ad9217e1488f27b3dab' ARCHIVE_BASE_0_SIZE='4400' ARCHIVE_BASE_0_VERSION='0.9-qhimm1' ARCHIVE_BASE_0_URL='https://ttg.qhimm.com/' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' *.dll *.exe' CONTENT_GAME_DATA_FILES=' *.dat' USER_PERSISTENT_FILES=' settings.dat' WINE_WINETRICKS_VERBS='mfc42' APP_MAIN_EXE='Triple Triad Gold.exe' APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=128' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.25' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-truberbrook.sh0000755000000000000000000000434414471751340014525 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Trüberbrook # send your bug reports to contact@dotslashplay.it ### script_version=20231115.3 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='truberbrook' GAME_NAME='Trüberbrook' ARCHIVE_BASE_0_NAME='tr_berbrook_1_6_31066.sh' ARCHIVE_BASE_0_MD5='d80939b1304181c5f755a768289d9189' ARCHIVE_BASE_0_SIZE='5500000' ARCHIVE_BASE_0_VERSION='1.6-gog31066' ARCHIVE_BASE_0_URL='https://www.gog.com/game/truberbrook' UNITY3D_NAME='Truberbrook' UNITY3D_PLUGINS=' libfmodL.so libfmod.so libfmodstudioL.so libfmodstudio.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' ## The game crashes on launch when using the wayland backend of SDL, ## even when using the system-provided build of SDL. APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' # The game crashes on launch when using the wayland backend of SDL if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-true-fear-1.sh0000755000000000000000000000746014471751340014217 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # True Fear: Forsaken Souls Part 1 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20211229.2 # Set game-specific variables GAME_ID='true-fear-1' GAME_NAME='True Fear: Forsaken Souls Part 1' ARCHIVE_BASE_0='setup_true_fear_forsaken_souls_part_1_2.0.26_(43095).exe' ARCHIVE_BASE_0_MD5='12c98dc222047ba571e7c1ce3e6689c8' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='660000' ARCHIVE_BASE_0_VERSION='1.2.0.26-gog43095' ARCHIVE_BASE_0_URL='https://www.gog.com/game/true_fear_forsaken_souls' UNITY3D_NAME='true fear' CONTENT_PATH_DEFAULT='.' ARCHIVE_GAME_BIN_FILES=' true?fear.exe true?fear_data/plugins monobleedingedge *.dll' ARCHIVE_GAME_DATA_FILES=' true?fear_data branding branding.meta' APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" APP_MAIN_ICON="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID wine" PKG_BIN_DEPS_ARCH='gst-plugins-base gst-plugins-good gst-libav' PKG_BIN_DEPS_DEB='gstreamer1.0-plugins-base, gstreamer1.0-plugins-good, gstreamer1.0-libav' PKG_BIN_DEPS_GENTOO='media-libs/gst-plugins-base media-libs/gst-plugins-good media-plugins/gst-plugins-libav' # Use persistent storage for user data APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/AppData/Local/Goblinz/TrueFear_ForsakenSouls' DATA_DIRS="$DATA_DIRS userdata/Profiles" # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-true-fear-2.sh0000755000000000000000000000741214471751340014215 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # True Fear 2 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20211229.1 # Set game-specific variables GAME_ID='true-fear-2' GAME_NAME='True Fear: Forsaken Souls Part 2' ARCHIVE_BASE_0='setup_true_fear_forsaken_souls_part_2_2.0.8_(49144).exe' ARCHIVE_BASE_0_MD5='e464cb8eedd9728249efde7593c75f79' ARCHIVE_BASE_0_SIZE='900000' ARCHIVE_BASE_0_VERSION='2.0.8-gog49144' ARCHIVE_BASE_0_URL='https://www.gog.com/game/true_fear_forsaken_souls_part_2' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES=' true?fear?2.exe unitycrashhandler64.exe monobleedingedge unityplayer.dll' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES=' true?fear?2_data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='true fear 2.exe' APP_MAIN_ICON='true fear 2.exe' PACKAGES_LIST='PKG_DATA PKG_BIN' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID wine" PKG_BIN_DEPS_ARCH='gst-plugins-base gst-plugins-good gst-libav' PKG_BIN_DEPS_DEB='gstreamer1.0-plugins-base, gstreamer1.0-plugins-good, gstreamer1.0-libav' PKG_BIN_DEPS_GENTOO='media-libs/gst-plugins-base media-libs/gst-plugins-good media-plugins/gst-plugins-libav' # Use persistent storage for game progress APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/AppData/LocalLow/Goblinz Enterprises Limited/True Fear 2' DATA_DIRS="$DATA_DIRS ./userdata" # Load common functions target_version='2.14' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-tsioque.sh0000755000000000000000000000511614471751340013654 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi set -o errexit ### # Tsioque # send your bug reports to contact@dotslashplay.it ### script_version=20230625.1 # Set game-specific variables GAME_ID='tsioque' GAME_NAME='Tsioque' ARCHIVES_LIST=' ARCHIVE_BASE_0' ARCHIVE_BASE_0='setup_tsioque_1.2.1.0_(30491).exe' ARCHIVE_BASE_0_MD5='219a0f99ea850d10caf98ab0249e6df5' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='1.2.1.0-gog30491' ARCHIVE_BASE_0_SIZE='1100000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/tsioque' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='tsioque.exe adobe?air' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='assets tsioque.swf meta-inf mimetype' APP_MAIN_TYPE='wine' APP_MAIN_EXE='tsioque.exe' APP_MAIN_ICON='tsioque.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="${PKG_DATA_ID} wine" # Use persistent storage for user data DATA_DIRS="${DATA_DIRS} ./userdata" APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use persistent storage for user data userdata_path_prefix="$WINEPREFIX/drive_c/users/$USER/Application Data/com.ohnoo.tsioque" userdata_path_persistent="$PATH_PREFIX/userdata" if [ ! -h "$userdata_path_prefix" ]; then if [ -d "$userdata_path_prefix" ]; then # Migrate existing user data to the persistent path mv "$userdata_path_prefix"/* "$userdata_path_persistent" rmdir "$userdata_path_prefix" fi # Create link from prefix to persistent path mkdir --parents "$(dirname "$userdata_path_prefix")" ln --symbolic "$userdata_path_persistent" "$userdata_path_prefix" fi' # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-tulpa.sh0000755000000000000000000000507714471751340013316 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Tulpa # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220630.1 GAME_ID='tulpa' GAME_NAME='Tulpa' ARCHIVE_BASE_0='Tulpa_Linux_1423847478.zip' ARCHIVE_BASE_0_MD5='3e01614c5c1c562aaf423689a1f51df9' ARCHIVE_BASE_0_SIZE='820000' ARCHIVE_BASE_0_VERSION='1.0-humble150213' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/tulpa' UNITY3D_NAME='Tulpa' CONTENT_PATH_DEFAULT='Tulpa (Linux)' ARCHIVE_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86" ARCHIVE_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32="${UNITY3D_NAME}.x86" APP_MAIN_EXE_BIN64="${UNITY3D_NAME}.x86_64" APP_MAIN_ICON="${UNITY3D_NAME}_Data/Resources/UnityPlayer.png" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6 libGLU.so.1 xcursor libxrandr" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Use a dedicated log file for the current game session APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a dedicated log file for the current game session mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-tunic.sh0000755000000000000000000000334214471751340013304 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 berru # SPDX-FileCopyrightText: © 2023 Mopi set -o errexit ### # TUNIC # send your bug reports to contact@dotslashplay.it ### script_version=20231018.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='tunic' GAME_NAME='TUNIC' ARCHIVE_BASE_0_NAME='setup_tunic_1.0-t1513-b45_(64bit)_(62831).exe' ARCHIVE_BASE_0_MD5='e10cb15ed3cf26a9491af2fe22bd83c5' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1500000' ARCHIVE_BASE_0_VERSION='1.0-gogt1513-b45' ARCHIVE_BASE_0_URL='https://www.gog.com/game/tunic' UNITY3D_NAME='tunic' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Andrew Shouldice/Secret Legend' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icon PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-turnip-boy-commits-tax-evasion.sh0000755000000000000000000000732514471751340020204 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Turnip Boy Commits Tax Evasion # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20211202.2 # Set game-specific variables GAME_ID='turnip-boy-commits-tax-evasion' GAME_NAME='Turnip Boy Commits Tax Evasion' ARCHIVE_BASE_0='setup_turnip_boy_commits_tax_evasion_v1.1.0f2_(64bit)_(49701).exe' ARCHIVE_BASE_0_MD5='8253f3bec3d84f71f9fdf5e5ec1e5a18' ARCHIVE_BASE_0_SIZE='650000' ARCHIVE_BASE_0_VERSION='1.1.0f2-gog49701' ARCHIVE_BASE_0_URL='https://www.gog.com/game/turnip_boy_commits_tax_evasion' CONTENT_PATH_DEFAULT='.' ARCHIVE_GAME_BIN_PATH="$CONTENT_PATH_DEFAULT" ARCHIVE_GAME_BIN_FILES=' unityplayer.dll monobleedingedge turnip?boy?commits?tax?evasion.exe turnip?boy?commits?tax?evasion_data/plugins' ARCHIVE_GAME_DATA_PATH="$CONTENT_PATH_DEFAULT" ARCHIVE_GAME_DATA_FILES=' turnip?boy?commits?tax?evasion_data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='turnip boy commits tax evasion.exe' APP_MAIN_ICON='turnip boy commits tax evasion.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Use persistent storage for game progress APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/AppData/LocalLow/Snoozy Kazoo/Turnip Boy Commits Tax Evasion' DATA_DIRS="$DATA_DIRS ./userdata" # Load common functions target_version='2.14' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-tzar.sh0000755000000000000000000000613314471751340013143 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Tzar # send your bug reports to contact@dotslashplay.it ### script_version=20230811.2 GAME_ID='tzar' GAME_NAME='Tzar: The Burden of the Crown' ARCHIVE_BASE_0='setup_tzar_1.01_(10554).exe' ARCHIVE_BASE_0_MD5='2c0be6258d5987fadb2d6e21e5bfae2a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='320000' ARCHIVE_BASE_0_VERSION='1.10-gog10554' ARCHIVE_BASE_0_URL='https://www.gog.com/game/tzar_the_burden_of_the_crown' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' setup.exe tzarcampaign.exe tzaredit.exe tzar.exe *.dll' CONTENT_GAME_DATA_FILES=' campaign data help hero icons images local maps movies music sound' CONTENT_GAME0_BIN_PATH="${CONTENT_PATH_DEFAULT}/__support/app" CONTENT_GAME0_BIN_FILES=' tzar.ini' CONTENT_GAME0_DATA_PATH="${CONTENT_PATH_DEFAULT}/__support/app" CONTENT_GAME0_DATA_FILES=' demos' CONTENT_DOC_DATA_FILES=' tzar110.txt *.pdf' USER_PERSISTENT_FILES=' tzar.ini' USER_PERSISTENT_DIRECTORIES=' demos save' # Microsoft Visual C++ library is required by the game settings application APP_WINETRICKS='mfc42' APP_MAIN_EXE='tzar.exe' APP_SETTINGS_ID="${GAME_ID}-settings" APP_SETTINGS_NAME="$GAME_NAME - Settings" APP_SETTINGS_CAT='Settings' APP_SETTINGS_EXE='setup.exe' APP_EDIT_ID="${GAME_ID}-edit" APP_EDIT_NAME="$GAME_NAME - Map Editor" APP_EDIT_EXE='tzaredit.exe' APP_CAMPAIGN_ID="${GAME_ID}-campaign" APP_CAMPAIGN_NAME="$GAME_NAME - Campaign Editor" APP_CAMPAIGN_EXE='tzarcampaign.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Play the introduction video on launch SCRIPT_DEPS="${SCRIPT_DEPS:-} dos2unix unix2dos" # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path 'GAME0_BIN')" # Play the introduction video on launch config_file='tzar.ini' config_section='\[DEFAULTS\]' config_entry='SCREENCHOICE=3' sed_expression="s/${config_section}/&\\n${config_entry}/" dos2unix --quiet "$config_file" sed --in-place --expression="$sed_expression" "$config_file" unix2dos --quiet "$config_file" ) # Include game icon PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-under-leaves.sh0000755000000000000000000000413314471751340014553 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Under Leaves # send your bug reports to contact@dotslashplay.it ### script_version=20221210.1 GAME_ID='under-leaves' GAME_NAME='Under Leaves' UNITY3D_NAME='UnderLeaves' ARCHIVE_BASE_0='UnderLeaves_v1_1_0_Linux.zip' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/under-leaves' ARCHIVE_BASE_0_MD5='800ccb204e5bbd9abb820309c0968a13' ARCHIVE_BASE_0_SIZE='290000' ARCHIVE_BASE_0_VERSION='1.1.0-humble180124' CONTENT_PATH_DEFAULT='UnderLeavesLinux' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_Data/Mono ${UNITY3D_NAME}_Data/Plugins ${UNITY3D_NAME}.x86" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' ld-linux.so.2 libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions target_version='2.19' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-under-the-moon.sh0000755000000000000000000000442114471751340015022 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Under the Moon # send your bug reports to contact@dotslashplay.it ### script_version=20230709.1 GAME_ID='under-the-moon' GAME_NAME='Under the Moon' ARCHIVE_BASE_0='setup_under_the_moon_1.4_(61762).exe' ARCHIVE_BASE_0_MD5='ea7ef6de5b26932728271199be740b8d' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='3500000' ARCHIVE_BASE_0_VERSION='1.4-gog61762' ARCHIVE_BASE_0_URL='https://www.gog.com/game/under_the_moon' UNREALENGINE4_NAME='underthemoon' CONTENT_PATH_DEFAULT='windows' CONTENT_GAME_BIN_FILES=" engine ${UNREALENGINE4_NAME}/binaries ${UNREALENGINE4_NAME}/plugins ${UNREALENGINE4_NAME}.exe" CONTENT_GAME_DATA_FILES=" ${UNREALENGINE4_NAME}" WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=" users/\${USER}/AppData/Local/${UNREALENGINE4_NAME}/Saved" APP_MAIN_EXE="${UNREALENGINE4_NAME}.exe" APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=101' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' # Install required Microsoft Visual C++ libraries APP_WINETRICKS="${APP_WINETRICKS:-} vcrun2019" # 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-undertale.sh0000755000000000000000000000520014471751340014140 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Undertale # send your bug reports to contact@dotslashplay.it ### script_version=20230818.1 GAME_ID='undertale' GAME_NAME='Undertale' ARCHIVE_BASE_2='undertale_en_1_08_18328.sh' ARCHIVE_BASE_2_MD5='b134d85dd8bf723a74498336894ca723' ARCHIVE_BASE_2_SIZE='160000' ARCHIVE_BASE_2_VERSION='1.08-gog18328' ARCHIVE_BASE_2_URL='https://www.gog.com/game/undertale' ARCHIVE_BASE_1='undertale_en_1_06_15928.sh' ARCHIVE_BASE_1_MD5='54f9275d3def027e9f3f65a61094a662' ARCHIVE_BASE_1_SIZE='160000' ARCHIVE_BASE_1_VERSION='1.06-gog15928' ARCHIVE_BASE_0='gog_undertale_2.0.0.1.sh' ARCHIVE_BASE_0_MD5='e740df4e15974ad8c21f45ebe8426fb0' ARCHIVE_BASE_0_SIZE='160000' ARCHIVE_BASE_0_VERSION='1.001-gog2.0.0.1' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' runner' CONTENT_GAME_DATA_FILES=' assets' APP_MAIN_EXE='runner' APP_MAIN_ICON='assets/icon.png' ## Work around Mesa-related startup crash APP_MAIN_PRERUN='# Work around Mesa-related startup crash # cf. https://gitlab.freedesktop.org/mesa/mesa/issues/1310 export radeonsi_sync_compile=true ' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libssl.so.1.0.0 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 libz.so.1' # Load common functions 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Enforce the binary name if [ -e 'UNDERTALE' ]; then mv 'UNDERTALE' "$(application_exe 'APP_MAIN')" fi ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-unepic.sh0000755000000000000000000000570114471751340013446 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # unEpic # send your bug reports to contact@dotslashplay.it ### script_version=20231112.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='unepic' GAME_NAME='unEpic' ARCHIVE_BASE_HUMBLE_0_NAME='unepic-15005.run' ARCHIVE_BASE_HUMBLE_0_MD5='940824c4de6e48522845f63423e87783' ## This MojoSetup installer does not seem to be based on Makeself, ## so our regular type detection and extraction code do not work. ARCHIVE_BASE_HUMBLE_0_EXTRACTOR='bsdtar' ARCHIVE_BASE_HUMBLE_0_VERSION='1.50.05-humble141208' ARCHIVE_BASE_HUMBLE_0_SIZE='360000' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/unepic' ARCHIVE_BASE_GOG_1_NAME='unepic_en_1_51_01_20608.sh' ARCHIVE_BASE_GOG_1_MD5='88d98eb09d235fe3ca00f35ec0a014a3' ARCHIVE_BASE_GOG_1_VERSION='1.51.01-gog20608' ARCHIVE_BASE_GOG_1_SIZE='380000' ARCHIVE_BASE_GOG_1_URL='https://www.gog.com/game/unepic' ARCHIVE_BASE_GOG_0_NAME='gog_unepic_2.1.0.4.sh' ARCHIVE_BASE_GOG_0_MD5='341556e144d5d17ae23d2b0805c646a1' ARCHIVE_BASE_GOG_0_SIZE='380000' ARCHIVE_BASE_GOG_0_VERSION='1.50.05-gog2.1.0.4' CONTENT_PATH_DEFAULT_HUMBLE='data' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_GAME_BIN64_FILES=' unepic64' CONTENT_GAME_BIN32_FILES=' unepic32' CONTENT_GAME_DATA_FILES=' data image sound voices omaps dictios_pc unepic.png' APP_MAIN_EXE_BIN64='unepic64' APP_MAIN_EXE_BIN32='unepic32' APP_MAIN_ICON_HUMBLE='unepic.png' APP_MAIN_ICON_GOG='../support/icon.png' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libGL.so.1 libm.so.6 libSDL2-2.0.so.0 libSDL2_mixer-2.0.so.0 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' launchers_write set_current_package 'PKG_BIN32' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-unmechanical.sh0000755000000000000000000000535314471751340014615 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Unmechanical # send your bug reports to contact@dotslashplay.it ### script_version=20221210.3 GAME_ID='unmechanical' GAME_NAME='Unmechanical' ARCHIVE_BASE_1='gog_unmechanical_2.1.0.5.sh' ARCHIVE_BASE_1_MD5='a99865ecd58e895334d405523a23eee3' ARCHIVE_BASE_1_TYPE='mojosetup' ARCHIVE_BASE_1_SIZE='1600000' ARCHIVE_BASE_1_VERSION='2.0-gog2.1.0.5' ARCHIVE_BASE_1_URL='https://www.gog.com/game/unmechanical' ARCHIVE_BASE_0='gog_unmechanical_2.1.0.4.sh' ARCHIVE_BASE_0_MD5='44453abb32e21b94e9731938486c71f7' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='1600000' ARCHIVE_BASE_0_VERSION='2.0-gog2.1.0.4' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' Engine Binaries/Linux/UDKGame-Linux' CONTENT_LIBS_BIN_PATH='data/noarch/game/Binaries/Linux/lib' CONTENT_LIBS_BIN_FILES=' libPhysXCore.so libPhysXExtensions.so.1 libPhysXLoader.so.1 libPhysXCooking.so libSDL2_mixer-2.0.so.0 libtcmalloc.so.0 libsteam_api.so' CONTENT_GAME_DATA_FILES=' UDKGame UnmechanicalIcon.bmp' APP_MAIN_EXE='Binaries/Linux/UDKGame-Linux' APP_MAIN_ICON='UnmechanicalIcon.bmp' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' ld-linux.so.2 libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libogg.so.0 libopenal.so.1 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libstdc++.so.6 libvorbisfile.so.3 libvorbis.so.0' # Run the game binary from its parent directory APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Run the game binary from its parent directory cd "$(dirname "$APP_EXE")" APP_EXE=$(basename "$APP_EXE")' # Load common functions target_version='2.19' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-unsung-warriors-prologue.sh0000755000000000000000000001015514471751340017201 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # Unsung Warriors # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20201019.3 # Set game-specific variables GAME_ID='unsung-warriors-prologue' GAME_NAME='Unsung Warriors Prologue' ARCHIVES_LIST=' ARCHIVE_ITCH_0' ARCHIVE_ITCH_0='unsung-warriors-prologue-linux.zip' ARCHIVE_ITCH_0_URL='https://unsungwarriors.itch.io/unsung-warriors-prologue' ARCHIVE_ITCH_0_MD5='09fd165d947d2eb02bc51a04b06e415a' ARCHIVE_ITCH_0_SIZE='310000' ARCHIVE_ITCH_0_VERSION='1.0.5.1-itch1' ARCHIVE_ITCH_0_TYPE='zip' ARCHIVE_DOC_DATA_PATH='.' ARCHIVE_DOC_DATA_FILES='readme.txt' ARCHIVE_GAME_BIN32_PATH='.' ARCHIVE_GAME_BIN32_FILES='UnsungWarriorsPrologue.x86 UnsungWarriorsPrologue_Data/Mono/x86 UnsungWarriorsPrologue_Data/Plugins/x86' ARCHIVE_GAME_BIN64_PATH='.' ARCHIVE_GAME_BIN64_FILES='UnsungWarriorsPrologue.x86_64 UnsungWarriorsPrologue_Data/Mono/x86_64 UnsungWarriorsPrologue_Data/Plugins/x86_64' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='UnsungWarriorsPrologue_Data' DATA_DIRS='./logs' APP_MAIN_TYPE='native' APP_MAIN_PRERUN='# Work around Unity3D poor support for non-US locales export LANG=C' APP_MAIN_EXE_BIN32='UnsungWarriorsPrologue.x86' APP_MAIN_EXE_BIN64='UnsungWarriorsPrologue.x86_64' APP_MAIN_ICON='UnsungWarriorsPrologue_Data/Resources/UnityPlayer.png' # Use a per-session dedicated file for logs # shellcheck disable=SC2016 APP_MAIN_OPTIONS='-logFile ./logs/$(date +%F-%R).log' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID glibc libstdc++" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" set_standard_permissions "$PLAYIT_WORKDIR/gamedata" prepare_package_layout # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-untitled-cat-unboxing.sh0000755000000000000000000000636614471751340016417 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # Untitled Cat Unboxing # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20201006.1 # Set game-specific variables GAME_ID='untitled-cat-unboxing' GAME_NAME='Untitled Cat Unboxing' ARCHIVES_LIST=' ARCHIVE_ITCH_0 ' ARCHIVE_ITCH_0='Untitled cat unboxing.x86_64' ARCHIVE_ITCH_0_URL='https://reispfannenfresser.itch.io/untitled-cat-unboxing' ARCHIVE_ITCH_0_MD5='96366d6a04c6f3081aee60ba9a167b65' ARCHIVE_ITCH_0_SIZE='42000' ARCHIVE_ITCH_0_VERSION='1.0-itch' ARCHIVE_ITCH_0_TYPE='file' APP_MAIN_TYPE='native' APP_MAIN_EXE='Untitled cat unboxing.x86_64' PACKAGES_LIST='PKG_MAIN' PKG_MAIN_ARCH='64' PKG_MAIN_DEPS="glibc glx xcursor libxrandr alsa" PKG_MAIN_DEPS_ARCH='lib32-libx11 lib32-libxinerama lib32-libpulse' PKG_MAIN_DEPS_DEB='libx11-6, libxinerama1, libpulse0, libxi6' PKG_MAIN_DEPS_GENTOO='x11-libs/libX11[abi_x86_32] x11-libs/libXinerama[abi_x86_32] media-sound/pulseaudio[abi_x86_32]' # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data mkdir --parents "${PKG_MAIN_PATH}${PATH_GAME}" cp "$SOURCE_ARCHIVE" "${PKG_MAIN_PATH}${PATH_GAME}/Untitled cat unboxing.x86_64" # Write launchers launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-unwording.sh0000755000000000000000000000355314471751340014202 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Unwording # send your bug reports to contact@dotslashplay.it ### script_version=20231110.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='unwording' GAME_NAME='Unwording' ARCHIVE_BASE_0_NAME='unwording_1_02_64447.sh' ARCHIVE_BASE_0_MD5='398d9c4d58b90b2632410d60704b9202' ARCHIVE_BASE_0_SIZE='1500000' ARCHIVE_BASE_0_VERSION='1.02-gog64447' ARCHIVE_BASE_0_URL='https://www.gog.com/game/unwording' UNITY3D_NAME='Unwording' UNITY3D_PLUGINS=' lib_burst_generated.so' CONTENT_PATH_DEFAULT='data/noarch/game' ## The game comes with a generic Unity3D icon, ## so we use the GOG-provided icon instead. APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-urtuk-the-desolation.sh0000755000000000000000000000643714471751340016261 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Urtuk: The Desolation # send your bug reports to contact@dotslashplay.it ### script_version=20221231.1 GAME_ID='urtuk-the-desolation' GAME_NAME='Urtuk: The Desolation' ARCHIVE_BASE_0='urtuk_the_desolation_1_0_0_91b_53003.sh' ARCHIVE_BASE_0_MD5='4fddaaa42c70b75258a78d4a5b103473' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='740000' ARCHIVE_BASE_0_VERSION='1.0.0.91b-gog53003' ARCHIVE_BASE_0_URL='https://www.gog.com/game/urtuk_the_desolation' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_DATA_FILES=' desktop-1.0.jar' CONTENT_GAME_BIN_SHIPPED_FILES=' jre config.json urtuk' # Main application APPLICATIONS_LIST='APP_MAIN' APP_MAIN_ICONS_LIST='APP_MAIN_ICON' APP_MAIN_ICON='../support/icon.png' ## Using system-provided Java APP_MAIN_TYPE_BIN_SYSTEM='java' APP_MAIN_EXE_BIN_SYSTEM='desktop-1.0.jar' ## Using shipped binaries APP_MAIN_EXE_BIN_SHIPPED='urtuk' PACKAGES_LIST='PKG_BIN_SHIPPED PKG_BIN_SYSTEM PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Binaries packages PKG_BIN_ID="${GAME_ID}-bin" ## Using system-provided Java PKG_BIN_SYSTEM_ID="${PKG_BIN_ID}-system" PKG_BIN_SYSTEM_PROVIDE="$PKG_BIN_ID" PKG_BIN_SYSTEM_DEPS="$PKG_DATA_ID java" PKG_BIN_SYSTEM_DESCRIPTION='Using system-provided Java' ## Using shipped binarie PKG_BIN_SHIPPED_ARCH='64' PKG_BIN_SHIPPED_ID="${PKG_BIN_ID}-shipped" PKG_BIN_SHIPPED_PROVIDE="$PKG_BIN_ID" PKG_BIN_SHIPPED_DEPS="$PKG_DATA_ID" PKG_BIN_SHIPPED_DEPENDENCIES_LIBRARIES=' ld-linux-x86-64.so.2 libasound.so.2 libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 libstdc++.so.6 libthread_db.so.1 libX11.so.6 libXext.so.6 libXi.so.6 libXrender.so.1 libXtst.so.6' PKG_BIN_SHIPPED_DESCRIPTION='Using shipped binaries' USER_PERSISTENT_FILES=' *.bin *.bin.backup' # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icon PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN_SHIPPED' launchers_write PKG='PKG_BIN_SYSTEM' launchers_write # Build package write_metadata build_pkg # Print instructions case "${LANG%_*}" in ('fr') message='Utilisation des binaires fournis par %s :' bin_system='le système' bin_shipped='les développeurs' ;; ('en'|*) message='Using binaries provided by %s:' bin_system='the system' bin_shipped='the developers' ;; esac printf '\n' printf "$message" "$bin_system" print_instructions 'PKG_DATA' 'PKG_BIN_SYSTEM' printf "$message" "$bin_shipped" print_instructions 'PKG_DATA' 'PKG_BIN_SHIPPED' # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-us-lovely-corpses.sh0000755000000000000000000000615114471751340015576 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Us Lovely Corpses # send your bug reports to contact@dotslashplay.it ### script_version=20230425.1 GAME_ID='us-lovely-corpses' GAME_NAME='Us Lovely Corpses' ARCHIVE_BASE_0='UsLovelyCorpses-1.0-linux.tar.bz2' ARCHIVE_BASE_0_MD5='2df30ef88e4cc99662510f7e8b9efd3d' ARCHIVE_BASE_0_SIZE='140000' ARCHIVE_BASE_0_VERSION='1.0-itch.2018.03.08' ARCHIVE_BASE_0_URL='https://dmarielicea.itch.io/uslovelycorpses' RENPY_NAME='UsLovelyCorpses' CONTENT_PATH_DEFAULT='UsLovelyCorpses-1.0-linux' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/lib/linux-x86_64" CONTENT_LIBS_BIN_FILES=' libGLEW.so.1.7 libavcodec.so.57 libavformat.so.57 libavresample.so.3 libavutil.so.55 libpng12.so.0 libpython2.7.so.1.0 libswresample.so.2 libswscale.so.4' CONTENT_GAME_BIN_FILES=" lib/linux-x86_64/lib/python2.7 lib/linux-x86_64/python lib/linux-x86_64/pythonw lib/linux-x86_64/zsync lib/linux-x86_64/zsyncmake lib/linux-x86_64/${RENPY_NAME}" CONTENT_GAME_DATA_FILES=" game renpy lib/pythonlib2.7 ${RENPY_NAME}.py" CONTENT_DOC_DATA_FILES=' README.html' APP_MAIN_EXE="lib/linux-x86_64/${RENPY_NAME}" APP_MAIN_OPTIONS="-EO ${RENPY_NAME}.py" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libfreetype.so.6 libGL.so.1 libGLU.so.1 libjpeg.so.62 libm.so.6 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0 libSDL2_ttf-2.0.so.0 libutil.so.1 libX11.so.6 libXext.so.6 libXi.so.6 libXmu.so.6 libz.so.1' # 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 . "$PLAYIT_LIB2" # Use default Ren'Py icon if it is available launcher_desktop() { local application application="$1" local application_name application_icon application_category launcher_desktop_exec application_name=$(application_name "$application") application_category=$(application_category "$application") launcher_desktop_exec=$(launcher_desktop_exec "$application") cat <<- EOF [Desktop Entry] Version=1.0 Type=Application Name=$application_name Icon=renpy $launcher_desktop_exec Categories=$application_category EOF } # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-utopias.sh0000755000000000000000000000403414471751340013645 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Utopias # send your bug reports to contact@dotslashplay.it ### script_version=20230126.1 GAME_ID='utopias' GAME_NAME='Utopias' UNITY3D_NAME='UTOPIAS' ARCHIVE_BASE_0='utopias-windows.zip' ARCHIVE_BASE_0_MD5='18094a207f2ab6f9edf31b8279ff7ec3' ARCHIVE_BASE_0_SIZE='4900000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://aaa.itch.io/utopias' CONTENT_PATH_DEFAULT='UTOPIAS/_contents' ARCHIVE_GAME_BIN_FILES=" MonoBleedingEdge UnityCrashHandler64.exe UnityPlayer.dll WinPixEventRuntime.dll ${UNITY3D_NAME}_Data/Mono ${UNITY3D_NAME}_Data/Plugins ${UNITY3D_NAME}.exe" ARCHIVE_GAME_DATA_FILES=" data ${UNITY3D_NAME}_Data" APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" APP_MAIN_ICON="${UNITY3D_NAME}.exe" USER_PERSISTENT_FILES=' data/save.txt' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.18' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-vagrus-the-riven-realms.sh0000755000000000000000000000571314471751340016655 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Vagrus - The Riven Realms # send your bug reports to contact@dotslashplay.it ### script_version=20230130.1 GAME_ID='vagrus-the-riven-realms-prologue' GAME_NAME='Vagrus - The Riven Realms: Prologue' UNITY3D_NAME='Vagrus' ARCHIVE_BASE_GOG_0='vagrus_the_riven_realms_prologue_1_1150613h_56533.sh' ARCHIVE_BASE_GOG_0_MD5='b1c3ec004b8d49d9d40a7f54b12fea21' ARCHIVE_BASE_GOG_0_TYPE='mojosetup' ARCHIVE_BASE_GOG_0_SIZE='5500000' ARCHIVE_BASE_GOG_0_VERSION='1.1.15-gog56533' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/vagrus_the_riven_realms_prologue' ARCHIVE_BASE_ITCH_0='vagrus-demolinux.zip' ARCHIVE_BASE_ITCH_0_MD5='4bddf380ed1355b455802cfd615d9ec7' ARCHIVE_BASE_ITCH_0_SIZE='3800000' ARCHIVE_BASE_ITCH_0_VERSION='0.5.31-itch.2021.05.12' ARCHIVE_BASE_ITCH_0_URL='https://lostpilgrims.itch.io/vagrus' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_ITCH='.' CONTENT_LIBS_BIN_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/${UNITY3D_NAME}_Data/Plugins" CONTENT_LIBS_BIN_PATH_ITCH="${CONTENT_PATH_DEFAULT_ITCH}/${UNITY3D_NAME}_Data/Plugins" CONTENT_LIBS_BIN_FILES=' lib_burst_generated.so' CONTENT_GAME_BIN_FILES=" UnityPlayer.so ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/MonoBleedingEdge/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data/Managed ${UNITY3D_NAME}_Data/MonoBleedingEdge/etc ${UNITY3D_NAME}_Data/Resources ${UNITY3D_NAME}_Data/StreamingAssets ${UNITY3D_NAME}_Data/app.info ${UNITY3D_NAME}_Data/boot.config ${UNITY3D_NAME}_Data/globalgamemanagers ${UNITY3D_NAME}_Data/level? ${UNITY3D_NAME}_Data/*.assets ${UNITY3D_NAME}_Data/*.assets.resS ${UNITY3D_NAME}_Data/*.json ${UNITY3D_NAME}_Data/*.resource" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icon PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-valhalla-hills.sh0000755000000000000000000000422314471751340015056 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Valhalla Hills # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220709.1 GAME_ID='valhalla-hills' GAME_NAME='Valhalla Hills' ARCHIVE_BASE_0='gog_valhalla_hills_2.3.0.5.sh' ARCHIVE_BASE_0_MD5='59286a003e654ae9f571abccc0375053' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='1300000' ARCHIVE_BASE_0_VERSION='1.05.17-gog2.3.0.5' ARCHIVE_BASE_0_URL='https://www.gog.com/game/valhalla_hills' CONTENT_PATH_DEFAULT='data/noarch/game' ARCHIVE_GAME_BIN_FILES=' ValhallaHills/Binaries Engine' ARCHIVE_GAME_DATA_FILES=' ValhallaHills/Content ValhallaHills/Saved' APP_MAIN_TYPE='native' APP_MAIN_EXE='ValhallaHills/Binaries/Linux/ValhallaHills-Linux-Shipping' APP_MAIN_ICON="${CONTENT_PATH_DEFAULT}/../support/icon.png" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6 libopenal.so.1" # Use persistent storage for user data DATA_DIRS='Saved' # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Include game icon PKG='PKG_DATA' icons_get_from_workdir 'APP_MAIN' # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-vambrace-cold-soul.sh0000755000000000000000000001134714471751340015645 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # 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. ### ### # Vambrace: Cold Soul # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20200604.1 # Set game-specific variables GAME_ID='vambrace-cold-soul' GAME_NAME='Vambrace: Cold Soul' ARCHIVES_LIST=' ARCHIVE_GOG_0 ' ARCHIVE_GOG_0='vambrace_cold_soul_1_10_b_37074.sh' ARCHIVE_GOG_0_MD5='91f0947bb96d6d5a0479d32ccc2d2770' ARCHIVE_GOG_0_TYPE='mojosetup' ARCHIVE_GOG_0_URL='https://www.gog.com/game/vambrace_cold_soul' ARCHIVE_GOG_0_SIZE='5000000' ARCHIVE_GOG_0_VERSION='1.10.b-gog37074' ARCHIVE_GAME_BIN_PATH='data/noarch/game' ARCHIVE_GAME_BIN_FILES='VambraceColdSoul.x86_64 VambraceColdSoul_Data/Mono VambraceColdSoul_Data/Plugins' ARCHIVE_GAME_DATA_PATH='data/noarch/game' ARCHIVE_GAME_DATA_FILES='VambraceColdSoul_Data' DATA_DIRS='./logs' APP_MAIN_TYPE='native' APP_MAIN_PRERUN='# Start pulseaudio if it is available if command -v pulseaudio >/dev/null 2>&1; then PULSEAUDIO_IS_AVAILABLE=1 if pulseaudio --check; then KEEP_PULSEAUDIO_RUNNING=1 else KEEP_PULSEAUDIO_RUNNING=0 fi pulseaudio --start else PULSEAUDIO_IS_AVAILABLE=0 fi' # shellcheck disable=SC1004,SC2016 APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Work around crash on launch related to libpulse # Some Unity3D games crash on launch if libpulse-simple.so.0 is available but pulseaudio is not running if [ $PULSEAUDIO_IS_AVAILABLE -eq 0 ]; then mkdir --parents "${APP_LIBS:=libs}" ln --force --symbolic /dev/null "$APP_LIBS/libpulse-simple.so.0" else if \ [ -h "${APP_LIBS:=libs}/libpulse-simple.so.0" ] && \ [ "$(realpath "$APP_LIBS/libpulse-simple.so.0")" = "/dev/null" ] then rm "$APP_LIBS/libpulse-simple.so.0" rmdir --ignore-fail-on-non-empty --parents "$APP_LIBS" fi fi' APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Work around Unity3D poor support for non-US locales export LANG=C' # shellcheck disable=SC1004,SC2016 APP_MAIN_POSTRUN='# Stop pulseaudio if it has specifically been started for the game if \ [ $PULSEAUDIO_IS_AVAILABLE -eq 1 ] && \ [ $KEEP_PULSEAUDIO_RUNNING -eq 0 ] then pulseaudio --kill fi' APP_MAIN_EXE='VambraceColdSoul.x86_64' APP_MAIN_ICON='VambraceColdSoul_Data/Resources/UnityPlayer.png' # Use a per-session dedicated file for logs # shellcheck disable=SC2016 APP_MAIN_OPTIONS='-logFile ./logs/$(date +%F-%R).log' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID glibc libstdc++ gtk2" # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" # Prepare package prepare_package_layout rm --recursive "$PLAYIT_WORKDIR/gamedata" # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-vampire-the-masquerade-coteries-of-new-york.sh0000755000000000000000000000610014471751340022511 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Vampire: the Masquerade - Coteries of New York # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220401.4 # Set game-specific variables GAME_ID='vampire-the-masquerade-coteries-of-new-york' GAME_NAME='Vampire: The Masquerade - Coteries of New York' ARCHIVE_BASE_2='vampire_the_masquerade_coteries_of_new_york_1_0_12_52098.sh' ARCHIVE_BASE_2_MD5='035735d7a7717c4c31cce156511ec8b0' ARCHIVE_BASE_2_TYPE='mojosetup' ARCHIVE_BASE_2_SIZE='3300000' ARCHIVE_BASE_2_VERSION='1.0.12-gog52098' ARCHIVE_BASE_2_URL='https://www.gog.com/game/vampire_the_masquerade_coteries_of_new_york' ARCHIVE_BASE_1='vampire_the_masquerade_coteries_of_new_york_1_0_9_45543.sh' ARCHIVE_BASE_1_MD5='6310c15fabd1768d00faa57f83f2de5e' ARCHIVE_BASE_1_TYPE='mojosetup' ARCHIVE_BASE_1_SIZE='3300000' ARCHIVE_BASE_1_VERSION='1.0.9-gog45543' ARCHIVE_BASE_0='vampire_the_masquerade_coteries_of_new_york_1_0_7_40980.sh' ARCHIVE_BASE_0_MD5='146113ea6b7295104413d8ce2b1fbf4e' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='3200000' ARCHIVE_BASE_0_VERSION='1.0.7-gog40980' UNITY3D_NAME='VtM Coteries of New York' CONTENT_PATH_DEFAULT='data/noarch/game' ARCHIVE_GAME_BIN_FILES=' VtM?Coteries?of?New?York.x86_64 VtM?Coteries?of?New?York_Data/MonoBleedingEdge VtM?Coteries?of?New?York_Data/Plugins UnityPlayer.so' ARCHIVE_GAME_DATA_FILES=' VtM?Coteries?of?New?York_Data' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6" # Default to windowed mode on first launch APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Default to windowed mode on first launch config_file="${XDG_CONFIG_HOME:="$HOME/.config"}/unity3d/DrawDistance/VtM Coteries of New York/Saves/Settings.save" if [ ! -e "$config_file" ]; then mkdir --parents "$(dirname "$config_file")" cat > "$config_file" <<- EOF {"FullScreenMode":false} EOF fi' # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-vampire-the-masquerade-redemption.sh0000755000000000000000000000642214471751340020676 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Vampire: The Masquerade - Redemption # send your bug reports to contact@dotslashplay.it ### script_version=20231006.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='vampire-the-masquerade-redemption' GAME_NAME='Vampire: The Masquerade - Redemption' ARCHIVE_BASE_0_NAME='setup_vampire_the_masquerade_redemption_2.0.0.3.exe' ARCHIVE_BASE_0_MD5='96c19b0ce487e53dd8fe24ef963d31fc' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1300000' ARCHIVE_BASE_0_VERSION='1.1-gog2.0.0.3' ARCHIVE_BASE_0_URL='https://www.gog.com/game/vampire_the_masquerade_redemption' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' *.dll *.exe *.inf *.isu extras/cs miles' CONTENT_GAME_DATA_FILES=' *.dat *.nob *.pub *.zip vampireankh.ico chronicles extras sounds video' CONTENT_DOC_DATA_FILES=' *.pdf *.rtf' USER_PERSISTENT_DIRECTORIES=' savegames' USER_PERSISTENT_FILES=' *.ini' APP_MAIN_EXE='vampire.exe' APP_MAIN_ICON='vampireankh.ico' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" ## TODO: The game can mess up with the display gamma setting, we should restore the previous value after exiting it. # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Set required registry keys installdir='C:\\'"$(game_id)" installdirexe='C:\\'"$(game_id)"'\\vampire.exe' registry_dump_init_file='registry-dumps/init.reg' ## TODO: The CD key should be extracted from a file provided with the game installer, ## instead of hardcoded in this script. registry_dump_init_content='Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\Software\Activision\Vampire: The Masquerade - Redemption\v1.0] "CDDRIVE"="c:" "INSTALLDIR"="'"${installdir}"'" "INSTALLDIREXE"="'"${installdirexe}"'" "INSTALLTYPE"=dword:00000002 "Version"="0.1" [HKEY_LOCAL_MACHINE\Software\WON\CDKeys] "Vampire"=hex:4e,07,4a,bf,8e,4d,c1,71,9c,de,2b,b9,91,2e,a3,e9' CONTENT_GAME_BIN_FILES="$(content_files 'GAME_BIN') $registry_dump_init_file" APP_REGEDIT="${APP_REGEDIT:-} $registry_dump_init_file" SCRIPT_DEPS="${SCRIPT_DEPS:-} iconv" check_deps # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Set required registry keys mkdir --parents "$(dirname "$registry_dump_init_file")" printf '%s' "$registry_dump_init_content" | \ iconv --from-code=UTF-8 --to-code=UTF-16 --output="$registry_dump_init_file" ) # Include game data PKG='PKG_DATA' icons_inclusion content_inclusion_default # Include game icons PKG='PKG_DATA' icons_inclusion # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-vampire-the-masquerade-shadows-of-new-york.sh0000755000000000000000000000506214471751340022352 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Vampire: The Masquerade - Shadows of New York # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220329.5 # Set game-specific variables GAME_ID='vampire-the-masquerade-shadows-of-new-york' GAME_NAME='Vampire the Masquerade - Shadows of New York' ARCHIVE_BASE_1='vampire_the_masquerade_shadows_of_new_york_1_0_1_51032.sh' ARCHIVE_BASE_1_MD5='0ec3a59f889b30e7d632f65dcdf0ac6b' ARCHIVE_BASE_1_TYPE='mojosetup' ARCHIVE_BASE_1_SIZE='3400000' ARCHIVE_BASE_1_VERSION='1.0.1-gog51032' ARCHIVE_BASE_1_URL='https://www.gog.com/game/vampire_the_masquerade_shadows_of_new_york' ARCHIVE_BASE_0='vampire_the_masquerade_shadows_of_new_york_1_0_0_41075.sh' ARCHIVE_BASE_0_MD5='e7880d6e417f81f47b079c9cdc4fb907' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='3300000' ARCHIVE_BASE_0_VERSION='1.0.0-gog41075' UNITY3D_NAME='Vampire the Masquerade - Shadows of New York' CONTENT_PATH_DEFAULT='data/noarch/game' ARCHIVE_GAME_BIN_FILES=' Vampire?the?Masquerade?-?Shadows?of?New?York.x86_64 Vampire?the?Masquerade?-?Shadows?of?New?York_Data/MonoBleedingEdge Vampire?the?Masquerade?-?Shadows?of?New?York_Data/Plugins UnityPlayer.so' ARCHIVE_GAME_DATA_FILES=' Vampire?the?Masquerade?-?Shadows?of?New?York_Data' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6" # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-vaporum.sh0000755000000000000000000000402314471751340013650 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Vaporum # send your bug reports to contact@dotslashplay.it ### script_version=20231004.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='vaporum' GAME_NAME='Vaporum' ARCHIVE_BASE_0='vaporum_patch_14_27515.sh' ARCHIVE_BASE_0_MD5='2c65dd89fbeec16740e1d57263606ffa' ARCHIVE_BASE_0_SIZE='3200000' ARCHIVE_BASE_0_VERSION='1.14-gog27515' ARCHIVE_BASE_0_URL='https://www.gog.com/game/vaporum' UNITY3D_NAME='VaporumGame' UNITY3D_PLUGINS=' libMouseLib.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data Localization" CONTENT_DOC_DATA_FILES=' BuildInfo.txt PatchNotes.txt' USER_PERSISTENT_DIRECTORIES=' Saves Settings' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data PKG='PKG_DATA' icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN32' launchers_write PKG='PKG_BIN64' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-virtuaverse.sh0000755000000000000000000000421514471751340014541 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi set -o errexit ### # VirtuaVerse # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220330.3 # Set game-specific variables GAME_ID='virtuaverse' GAME_NAME='VirtuaVerse' ARCHIVE_BASE_1='virtuaverse_1_35_53585.sh' ARCHIVE_BASE_1_MD5='5285b1fb4793e2c87d39f567eceabe71' ARCHIVE_BASE_1_TYPE='mojosetup' ARCHIVE_BASE_1_SIZE='1800000' ARCHIVE_BASE_1_VERSION='1.35-gog53585' ARCHIVE_BASE_1_URL='https://www.gog.com/game/virtuaverse' ARCHIVE_BASE_0='virtuaverse_1_34_51687.sh' ARCHIVE_BASE_0_MD5='0592cc967de9f333344f2d69c7665173' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='1800000' ARCHIVE_BASE_0_VERSION='1.34-gog51687' UNITY3D_NAME='VirtuaVerse' CONTENT_PATH_DEFAULT='data/noarch/game' ARCHIVE_GAME_BIN_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/MonoBleedingEdge ${UNITY3D_NAME}_Data/Plugins UnityPlayer.so" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6" # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-volgarr-the-viking.sh0000755000000000000000000000444114471751340015702 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 HS-157 # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Volgarr the Viking # send your bug reports to contact@dotslashplay.it ### script_version=20231108.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='volgarr-the-viking' GAME_NAME='Volgarr the Viking' ARCHIVE_BASE_GOG_0_NAME='gog_volgarr_the_viking_2.1.0.3.sh' ARCHIVE_BASE_GOG_0_MD5='8593287f13c3104aa45b9c91264b4260' ARCHIVE_BASE_GOG_0_SIZE='200000' ARCHIVE_BASE_GOG_0_VERSION='1.36c-gog2.1.0.3' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/volgarr_the_viking' ARCHIVE_BASE_HUMBLE_0_NAME='VolgarrTheViking_v1.36c_Linux32.tar.gz' ARCHIVE_BASE_HUMBLE_0_MD5='c3652629edb019838d8e1c7873f0716b' ARCHIVE_BASE_HUMBLE_0_SIZE='180000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.36c-humble' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/volgarr-the-viking' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='Volgarr' CONTENT_GAME_BIN_FILES=' Volgarr' CONTENT_GAME_DATA_FILES=' Data.pk icon.png' CONTENT_GAME_DOC_FILES=' Readme.txt' APP_MAIN_EXE='Volgarr' APP_MAIN_ICON='icon.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" ## TODO: Update the list of required native libraries. PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libstdc++.so.6 libGL.so.1 libSDL2-2.0.so.0' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-voodoo-detective.sh0000755000000000000000000000473714471751340015452 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=20230317.3 GAME_ID='voodoo-detective' GAME_NAME='Voodoo Detective' ARCHIVE_BASE_0='voodoo_detective_0_0_31_62572.sh' ARCHIVE_BASE_0_MD5='e4e2ec0e340dc4343493f56b0977a68f' ARCHIVE_BASE_0_TYPE='mojosetup' 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' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins" CONTENT_LIBS_BIN_FILES=' libfmodstudio.so libresonanceaudio.so' CONTENT_GAME_BIN_FILES=" GameAssembly.so UnityPlayer.so ${UNITY3D_NAME}.x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data/il2cpp_data ${UNITY3D_NAME}_Data/Managed ${UNITY3D_NAME}_Data/Resources ${UNITY3D_NAME}_Data/StreamingAssets ${UNITY3D_NAME}_Data/globalgamemanagers ${UNITY3D_NAME}_Data/app.info ${UNITY3D_NAME}_Data/boot.config ${UNITY3D_NAME}_Data/level? ${UNITY3D_NAME}_Data/*.assets ${UNITY3D_NAME}_Data/*.assets.resS ${UNITY3D_NAME}_Data/*.resource ${UNITY3D_NAME}_Data/*.json" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6' # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-vvvvvv.sh0000755000000000000000000000640214471751340013545 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # VVVVVV # send your bug reports to contact@dotslashplay.it ### script_version=20230824.1 GAME_ID='vvvvvv' GAME_NAME='VVVVVV' ARCHIVE_BASE_HUMBLE_0='vvvvvv-10202016-bin' ARCHIVE_BASE_HUMBLE_0_MD5='2a67882173f36c685f532e3cce0607af' ARCHIVE_BASE_HUMBLE_0_TYPE='mojosetup' ARCHIVE_BASE_HUMBLE_0_SIZE='110000' ARCHIVE_BASE_HUMBLE_0_VERSION='2.2-humble.2016.10.20' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/vvvvvv' ARCHIVE_BASE_GOG_0='vvvvvv_2_3_4_49985.sh' ARCHIVE_BASE_GOG_0_MD5='76177a8ae3dede7c5cac1a90a00c0ca7' ARCHIVE_BASE_GOG_0_TYPE='mojosetup' ARCHIVE_BASE_GOG_0_SIZE='67000' ARCHIVE_BASE_GOG_0_VERSION='2.3.4-gog49985' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/vvvvvv' ARCHIVE_BASE_GOG_MULTIARCH_0='gog_vvvvvv_2.0.0.2.sh' ARCHIVE_BASE_GOG_MULTIARCH_0_MD5='f25b5dd11ea1778d17d4b2e0b54c7eed' ARCHIVE_BASE_GOG_MULTIARCH_0_TYPE='mojosetup' ARCHIVE_BASE_GOG_MULTIARCH_0_SIZE='74000' ARCHIVE_BASE_GOG_MULTIARCH_0_VERSION='2.2-gog2.0.0.2' CONTENT_PATH_DEFAULT_HUMBLE='data' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_GAME_BIN_FILES=' VVVVVV' CONTENT_GAME_BIN32_FILES=' x86/vvvvvv.x86' CONTENT_GAME_BIN64_FILES=' x86_64/vvvvvv.x86_64' CONTENT_GAME_DATA_FILES=' data.zip VVVVVV.png' CONTENT_DOC_DATA_FILES=' Linux.README' APP_MAIN_EXE='VVVVVV' APP_MAIN_EXE_BIN32='x86/vvvvvv.x86' APP_MAIN_EXE_BIN64='x86_64/vvvvvv.x86_64' APP_MAIN_ICON='VVVVVV.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PACKAGES_LIST_HUMBLE='PKG_BIN32 PKG_BIN64 PKG_DATA' PACKAGES_LIST_GOG_MULTIARCH='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libm.so.6 libpthread.so.0 libSDL2-2.0.so.0 libSDL2_mixer-2.0.so.0 libstdc++.so.6' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Get game icon PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in \ 'PKG_BIN' \ 'PKG_BIN32' \ 'PKG_BIN64' do if packages_get_list | grep --quiet --fixed-strings --word-regexp "$(context_package)"; then launchers_write fi done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-wallace-and-gromit-1.sh0000755000000000000000000000775014471751340015776 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Wallace and Gromit: Episode 1 - Fright of the Bumblebees # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210717.1 # Set game-specific variables GAME_ID='wallace-and-gromit-1' GAME_NAME='Wallace and Gromit: Episode 1 - Fright of the Bumblebees' ARCHIVE_BASE_0='setup_wallace_and_gromits_episode_1_-_fright_of_the_bumblebees_1.0_(43021).exe' ARCHIVE_BASE_0_MD5='386ad98408eb197081e9b45217759bed' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='1.0-gog43021' ARCHIVE_BASE_0_SIZE='450000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/wallace_gromits_grand_adventures' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES='wallacegromit101.exe fmodex.dll language_setup.ini language_setup.exe' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='pack language_setup.png' APP_MAIN_TYPE='wine' APP_MAIN_EXE='wallacegromit101.exe' APP_MAIN_ICON='wallacegromit101.exe' APP_LANGUAGE_TYPE='wine' APP_LANGUAGE_EXE='language_setup.exe' APP_LANGUAGE_ID="${GAME_ID}_language" APP_LANGUAGE_NAME="$GAME_NAME - Language setup" APP_LANGUAGE_CAT='Settings' APP_LANGUAGE_ICON='language_setup.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="${PKG_DATA_ID} wine glx" # Use persistent storage for saved games and settings APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/My Documents/Telltale Games/wallace-and-gromit-1' CONFIG_FILES="$CONFIG_FILES userdata/prefs.prop" DATA_FILES="$DATA_FILES userdata/*.save" # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Extract game icons PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' 'APP_LANGUAGE' icons_move_to 'PKG_DATA' # Clean up temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' 'APP_LANGUAGE' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-wallace-and-gromit-2.sh0000755000000000000000000000771614471751340016001 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Wallace and Gromit: Episode 2 - The Last Resort # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210731.3 # Set game-specific variables GAME_ID='wallace-and-gromit-2' GAME_NAME='Wallace and Gromit: Episode 2 - The Last Resort' ARCHIVE_BASE_0='setup_wallace_and_gromits_episode_2_-_the_last_resort_1.0_(43021).exe' ARCHIVE_BASE_0_MD5='d791a520c88c613c577b556de6d1276c' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='1.0-gog43021' ARCHIVE_BASE_0_SIZE='610000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/wallace_gromits_grand_adventures' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES=' wallacegromit102.exe fmodex.dll language_setup.ini language_setup.exe' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES=' pack language_setup.png' APP_MAIN_TYPE='wine' APP_MAIN_EXE='wallacegromit102.exe' APP_MAIN_ICON='wallacegromit102.exe' APP_LANGUAGE_TYPE='wine' APP_LANGUAGE_EXE='language_setup.exe' APP_LANGUAGE_ID="${GAME_ID}_language" APP_LANGUAGE_NAME="$GAME_NAME - Language setup" APP_LANGUAGE_CAT='Settings' APP_LANGUAGE_ICON='language_setup.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="${PKG_DATA_ID} wine glx" # Use persistent storage for saved games and settings APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/My Documents/Telltale Games/wallace-and-gromit-2' CONFIG_FILES="$CONFIG_FILES userdata/prefs.prop" DATA_FILES="$DATA_FILES userdata/*.save" # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Extract game icons PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' 'APP_LANGUAGE' icons_move_to 'PKG_DATA' # Clean up temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' 'APP_LANGUAGE' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-wallace-and-gromit-3.sh0000755000000000000000000000766414471751340016004 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Wallace and Gromit: Episode 3 - Muzzled # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210731.4 # Set game-specific variables GAME_ID='wallace-and-gromit-3' GAME_NAME='Wallace and Gromit: Episode 3 - Muzzled' ARCHIVE_BASE_0='setup_wallace_and_gromits_episode_3_muzzled_2.0_(42668).exe' ARCHIVE_BASE_0_MD5='e33fe7ce94d9ee2ca33895c1cf349c29' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='2.0-gog42668' ARCHIVE_BASE_0_SIZE='480000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/wallace_gromits_grand_adventures' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES=' wallacegromit103.exe fmodex.dll language_setup.ini language_setup.exe' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES=' pack language_setup.png' APP_MAIN_TYPE='wine' APP_MAIN_EXE='wallacegromit103.exe' APP_MAIN_ICON='wallacegromit103.exe' APP_LANGUAGE_TYPE='wine' APP_LANGUAGE_EXE='language_setup.exe' APP_LANGUAGE_ID="${GAME_ID}_language" APP_LANGUAGE_NAME="$GAME_NAME - Language setup" APP_LANGUAGE_CAT='Settings' APP_LANGUAGE_ICON='language_setup.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="${PKG_DATA_ID} wine glx" # Use persistent storage for saved games and settings APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/My Documents/Telltale Games/wallace-and-gromit-3' CONFIG_FILES="$CONFIG_FILES userdata/prefs.prop" DATA_FILES="$DATA_FILES userdata/*.save" # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Extract game icons PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' 'APP_LANGUAGE' icons_move_to 'PKG_DATA' # Clean up temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' 'APP_LANGUAGE' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-wallace-and-gromit-4.sh0000755000000000000000000000771014471751340015775 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Wallace and Gromit: Episode 4 - The Bogey Man # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210731.4 # Set game-specific variables GAME_ID='wallace-and-gromit-4' GAME_NAME='Wallace and Gromit: Episode 4 - The Bogey Man' ARCHIVE_BASE_0='setup_wallace_and_gromits_episode_4_-_the_bogey_man_1.0_(43022).exe' ARCHIVE_BASE_0_MD5='1bd26fe8706be1d452bbcebd8a31a1fb' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='1.0-gog43022' ARCHIVE_BASE_0_SIZE='560000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/wallace_gromits_grand_adventures' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES=' wallacegromit104.exe fmodex.dll language_setup.ini language_setup.exe' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES=' pack language_setup.png' APP_MAIN_TYPE='wine' APP_MAIN_EXE='wallacegromit104.exe' APP_MAIN_ICON='wallacegromit104.exe' APP_LANGUAGE_TYPE='wine' APP_LANGUAGE_EXE='language_setup.exe' APP_LANGUAGE_ID="${GAME_ID}_language" APP_LANGUAGE_NAME="$GAME_NAME - Language setup" APP_LANGUAGE_CAT='Settings' APP_LANGUAGE_ICON='language_setup.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="${PKG_DATA_ID} wine glx" # Use persistent storage for saved games and settings APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/My Documents/Telltale Games/wallace-and-gromit-4' CONFIG_FILES="$CONFIG_FILES userdata/prefs.prop" DATA_FILES="$DATA_FILES userdata/*.save" # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Extract game icons PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' 'APP_LANGUAGE' icons_move_to 'PKG_DATA' # Clean up temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' 'APP_LANGUAGE' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-wandersong.sh0000755000000000000000000000425114471751340014331 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Wandersong # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220509.1 # Set game-specific variables GAME_ID='wandersong' GAME_NAME='Wandersong' ARCHIVE_BASE_0='wandersong-drmfree.zip' ARCHIVE_BASE_0_MD5='27851a4ba540505f11e122f4c9a686b5' ARCHIVE_BASE_0_TYPE='zip' ARCHIVE_BASE_0_SIZE='2000000' ARCHIVE_BASE_0_VERSION='1.0-itch1' ARCHIVE_BASE_0_URL='https://banov.itch.io/wandersong' CONTENT_PATH_DEFAULT='.' ARCHIVE_DOC_DATA_FILES=' ws_credits' ARCHIVE_GAME_BIN_FILES=' wandersong.exe GMFile.dll GMIni.dll' ARCHIVE_GAME_DATA_FILES=' *.ogg *.dat audioData levels palettes' APP_MAIN_TYPE='wine' APP_MAIN_EXE='wandersong.exe' APP_MAIN_ICON='wandersong.exe' PACKAGES_LIST='PKG_DATA PKG_BIN' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Use persistent storage for user data APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/AppData/Local/wandersong' DATA_DIRS="$DATA_DIRS ./userdata" # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-warhammer-40k-dakka-squadron.sh0000755000000000000000000000656314471751340017454 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Warhammer 40,000: Dakka Squadron # send your bug reports to contact@dotslashplay.it ### script_version=20221204.4 GAME_ID='warhammer-40k-dakka-squadron' GAME_NAME='Warhammer 40,000: Dakka Squadron' ARCHIVE_BASE_0='setup_warhammer_40000_dakka_squadron_-_flyboyz_edition_1.154277.shipping_(64bit)_(46795).exe' ARCHIVE_BASE_0_MD5='746ce7f112d089a2aca8dd6d4458dd26' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_warhammer_40000_dakka_squadron_-_flyboyz_edition_1.154277.shipping_(64bit)_(46795)-1.bin' ARCHIVE_BASE_0_PART1_MD5='f32a0390b27c406063fcf7ad3bff4655' ARCHIVE_BASE_0_PART2='setup_warhammer_40000_dakka_squadron_-_flyboyz_edition_1.154277.shipping_(64bit)_(46795)-2.bin' ARCHIVE_BASE_0_PART2_MD5='9c978a8867a9747039bcfceb462d0a2e' ARCHIVE_BASE_0_PART3='setup_warhammer_40000_dakka_squadron_-_flyboyz_edition_1.154277.shipping_(64bit)_(46795)-3.bin' ARCHIVE_BASE_0_PART3_MD5='ffb1a9b6e5343e6cb8955d6c8814ef97' ARCHIVE_BASE_0_SIZE='9200000' ARCHIVE_BASE_0_VERSION='1.154277-gog46795' ARCHIVE_BASE_0_URL='https://www.gog.com/game/warhammer_40000_dakka_squadron' CONTENT_PATH_DEFAULT='.' ARCHIVE_GAME_BIN_FILES=' engine dakkagame/binaries/win64/dakkagame-win64-shipping.exe dakkagame/plugins/onlinesubsystemgog/source/thirdparty/galaxysdk/libraries/galaxy64.dll' ARCHIVE_GAME_DATA_FILES=' dakkagame/content' APP_MAIN_TYPE='wine' APP_MAIN_EXE='dakkagame/binaries/win64/dakkagame-win64-shipping.exe' APP_MAIN_ICON='dakkagame/binaries/win64/dakkagame-win64-shipping.exe' WINE_DIRECT3D_RENDERER='dxvk' APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/Local/DakkaGame/Saved' USER_PERSISTENT_DIRECTORIES=' userdata/Config userdata/SaveGames' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPS_ARCH='gst-plugins-good gst-libav' PKG_BIN_DEPS_DEB='gstreamer1.0-plugins-good, gstreamer1.0-libav' PKG_BIN_DEPS_GENTOO='media-plugins/gst-plugins-good media-plugins/gst-plugins-libav' # Work around a crash related to shaders compilation # Without these native libraries, the games crash with the following error: # SlateD3DShaders::CompileShader() - D3DCompilerFunc Result: DXGI_ERROR_80004005 APP_WINETRICKS="$APP_WINETRICKS d3dcompiler_43 d3dcompiler_47" PKG_BIN_DEPS="$PKG_BIN_DEPS winetricks" # Load common functions target_version='2.18' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-warhammer-40k-dawn-of-war-winter-assault-demo.sh0000755000000000000000000001544314471751340022570 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2021 Hoël Bézier set -o errexit ### # Warhammer 40k: Dawn of War - Winter Assault # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220701.1 GAME_ID='warhammer-40k-dawn-of-war-winter-assault-demo' GAME_NAME='Warhammer 40,000: Dawn of War - Winter Assault (demo)' ARCHIVES_LIST=' ARCHIVE_BASE_0' ARCHIVE_BASE_0='Dawn of War - Winter Assault.rar' ARCHIVE_BASE_0_MD5='555f5b3844c80866b0cb9fa536692380' ARCHIVE_BASE_0_SIZE='480000' ARCHIVE_BASE_0_VERSION='1.0-archiveorg1' ARCHIVE_BASE_0_URL='https://archive.org/details/DawnOfWarWinterAssault_201404' CONTENT_PATH_DEFAULT='.' ARCHIVE_GAME_BIN_FILES=' bugreport drivers *.dll *.exe *.ini' ARCHIVE_GAME_DATA_FILES=' badges banners engine graphicsoptions logfiles patch playback profiles screenshots stats w40k wxp *.module' APP_MAIN_TYPE='wine' APP_MAIN_EXE='winterassault.exe' APP_MAIN_ICON='winterassault.exe' APP_CONFIG_ID="${GAME_ID}_config" APP_CONFIG_NAME="$GAME_NAME - graphics configuration" APP_CONFIG_CAT='Settings' APP_CONFIG_TYPE='wine' APP_CONFIG_EXE='graphicsconfig.exe' APP_CONFIG_ICON='graphicsconfig.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine libGL.so.1" # Use persistent storage for user data CONFIG_DIRS='./drivers' CONFIG_FILES='./*.ini' DATA_DIRS='./badges ./banners ./playback ./profiles ./screenshots ./stats' # cabextract is required to extract the content of an inner archive SCRIPT_DEPS="$SCRIPT_DEPS cabextract" # unix2dos is required to generate a .ini file SCRIPT_DEPS="$SCRIPT_DEPS unix2dos" # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract installer from RAR archive archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata" rm *.exe *.ini *.msi ) # Extract game data from cabinet installer ARCHIVE_INNER="${PLAYIT_WORKDIR}/gamedata/WinterAssaultDemo1.cab" ARCHIVE_INNER_TYPE='cabinet' archive_extraction 'ARCHIVE_INNER' rm "$ARCHIVE_INNER" set_standard_permissions "${PLAYIT_WORKDIR}/gamedata" # Create expected game arborescence ( content_path=$(content_path_default) cd "${PLAYIT_WORKDIR}/gamedata/${content_path}" mkdir --parents 'badges' mkdir --parents 'banners' mkdir --parents 'bugreport/english' mkdir --parents 'drivers' mkdir --parents 'engine' mkdir --parents 'engine/data' mkdir --parents 'engine/locale/english' mkdir --parents 'engine/movies' mkdir --parents 'graphicsoptions/data' mkdir --parents 'graphicsoptions/locale/english' mkdir --parents 'logfiles' mkdir --parents 'patch' mkdir --parents 'playback' mkdir --parents 'profiles' mkdir --parents 'screenshots' mkdir --parents 'stats' mkdir --parents 'w40k' mkdir --parents 'w40k/data' mkdir --parents 'w40k/locale/english' mkdir --parents 'wxp' mkdir --parents 'wxp/data' mkdir --parents 'wxp/locale/english' mkdir --parents 'wxp/movies' mv 'bugreport.exe' 'bugreport/bugreport.exe' mv 'bugreport.ini' 'bugreport/bugreport.ini' mv 'bugreport.ucs' 'bugreport/english/bugreport.ucs' mv 'ati.txt' 'drivers/ati.txt' mv 'nvidia.txt' 'drivers/nvidia.txt' mv 'shader.txt' 'drivers/shader.txt' mv 'spdx9_config.txt' 'drivers/spdx9_config.txt' mv 'engine.sga' 'engine/engine.sga' mv 'engine.ucs' 'engine/locale/english/engine.ucs' mv 'enginloc.sga' 'engine/locale/english/enginloc.sga' mv 'dow_intro.avi' 'engine/movies/dow_intro.avi' mv 'dow_intro.lua' 'engine/movies/dow_intro.lua' mv 'dxp_relic_intro.avi' 'engine/movies/dxp_relic_intro.avi' mv 'dxp_relic_intro.lua' 'engine/movies/dxp_relic_intro.lua' mv 'gotdata.sga' 'graphicsoptions/gotdata.sga' mv 'graphicsoptionsutility.ucs' 'graphicsoptions/locale/english/graphicsoptionsutility.ucs' mv 'w40k.ucs' 'w40k/locale/english/w40k.ucs' mv 'w40kdatasoundspeech.sga' 'w40k/locale/english/w40kdata-sound-speech.sga' mv 'w40kdatakeys.sga' 'w40k/locale/english/w40kdatakeys.sga' mv 'w40kdataloc.sga' 'w40k/locale/english/w40kdataloc.sga' mv 'w40kdata.sga' 'w40k/w40kdata.sga' mv 'w40kdatasharedtexturesfull.sga' 'w40k/w40kdata-sharedtextures-full.sga' mv 'w40kdatasoundmed.sga' 'w40k/w40kdata-sound-med.sga' mv 'w40kdatawhmmedium.sga' 'w40k/w40kdata-whm-medium.sga' mv 'wxp.ucs' 'wxp/locale/english/wxp.ucs' mv 'wxpdatasoundspeech.sga' 'wxp/locale/english/wxpdata-sound-speech.sga' mv 'wxpdatakeys.sga' 'wxp/locale/english/wxpdatakeys.sga' mv 'wxpdataloc.sga' 'wxp/locale/english/wxpdataloc.sga' mv 'wxp_order.avi' 'wxp/movies/wxp_order.avi' mv 'wxp_order.lua' 'wxp/movies/wxp_order.lua' mv 'wxpdata.sga' 'wxp/wxpdata.sga' mv 'wxpdatamusic.sga' 'wxp/wxpdata-music.sga' mv 'wxpdatasharedtexturesfull.sga' 'wxp/wxpdata-sharedtextures-full.sga' mv 'wxpdatasoundmed.sga' 'wxp/wxpdata-sound-med.sga' mv 'wxpdatawhmmedium.sga' 'wxp/wxpdata-whm-medium.sga' ) # Work around mouse cursor rendering issues config_file="${PLAYIT_WORKDIR}/gamedata/drivers/spdx9_config.txt" config_field='allowhwcursor' config_value='0' sed_expression="s/^${config_field}.*$/${config_field} ${config_value}/" sed --in-place --expression="$sed_expression" "$config_file" # Generate required configuration file config_file="${PLAYIT_WORKDIR}/gamedata/regions.ini" cat > "$config_file" <<- 'EOF' [mods] wxp=english [global] lang=english EOF unix2dos --quiet "$config_file" # Prepare package arborescence prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icons PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' 'APP_CONFIG' icons_move_to 'PKG_DATA' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' 'APP_CONFIG' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-warhammer-40k-mechanicus.sh0000755000000000000000000000532614471751340016662 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Warhammer 40k: Mechanicus # send your bug reports to contact@dotslashplay.it ### script_version=20230415.1 GAME_ID='warhammer-40k-mechanicus' GAME_NAME='Warhammer 40,000: Mechanicus' ARCHIVE_BASE_1='warhammer_40_000_mechanicus_1_4_10_0_63084.sh' ARCHIVE_BASE_1_MD5='92e8a72016854efe19ebab5cc7906c1b' ARCHIVE_BASE_1_SIZE='11000000' ARCHIVE_BASE_1_VERSION='1.4.10.0-gog63084' ARCHIVE_BASE_1_URL='https://www.gog.com/game/warhammer_40000_mechanicus' ARCHIVE_BASE_0='warhammer_40_000_mechanicus_1_4_6_1_47625.sh' ARCHIVE_BASE_0_MD5='672029ff6ad1ff34946201ca4d423737' ARCHIVE_BASE_0_SIZE='11000000' ARCHIVE_BASE_0_VERSION='1.4.6.1-gog47625' UNITY3D_NAME='Mechanicus' UNITY3D_PLUGINS=' libfmod.so libfmodL.so libfmodstudioL.so libfmodstudio.so libgvraudio.so libresonanceaudio.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64" CONTENT_GAME_DATA_SHAREDASSETS_FILES=" ${UNITY3D_NAME}_Data/sharedassets*" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_EXE="${UNITY3D_NAME}.x86_64" PACKAGES_LIST='PKG_BIN PKG_DATA_SHAREDASSETS PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_SHAREDASSETS_ID="${PKG_DATA_ID}-sharedassets" PKG_DATA_SHAREDASSETS_DESCRIPTION="$PKG_DATA_DESCRIPTION - shared assets" PKG_DATA_DEPS="$PKG_DATA_DEPS $PKG_DATA_SHAREDASSETS_ID" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions target_version='2.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 . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-warlords-battlecry-2.sh0000755000000000000000000001016414471751340016145 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # 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. ### ### # Warlords Battlecry 2 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20211027.1 # Set game-specific variables GAME_ID='warlords-battlecry-2' GAME_NAME='Warlords Battlecry Ⅱ' ARCHIVE_BASE_1='setup_warlords_battlecry_2_1.04_(30487).exe' ARCHIVE_BASE_1_MD5='25cf7418f5b954b97fc0e8b6d32039f2' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='930000' ARCHIVE_BASE_1_VERSION='1.04-gog30487' ARCHIVE_BASE_1_URL='https://www.gog.com/game/warlords_battlecry_2' ARCHIVE_BASE_0='setup_warlords_battlecry2_2.0.0.4.exe' ARCHIVE_BASE_0_MD5='baa54ca0285182d18d532abfcbb8769f' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='940000' ARCHIVE_BASE_0_VERSION='1.04-gog2.0.0.4' ARCHIVE_DOC_DATA_PATH='.' ARCHIVE_DOC_DATA_FILES='*.pdf' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES=' *.asi *.m3d */*.cfg */*.ini battlecry?ii.exe binkw32.dll cpuinf32.dll mss32.dll wetstd32.dll terrain.cfg' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES=' *.xcr war4gfx.xcg war4int.xci wbc.dat campaignscenario customai customunitai data documentation english events fonts herodata music namingsets scenario soundfx tutorial video' CONFIG_FILES='./*.cfg */*.cfg */*.ini */*.txt' APP_MAIN_TYPE='wine' APP_MAIN_EXE='battlecry ii.exe' APP_MAIN_ICON='battlecry ii.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Use persistent storage for user data APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/$(id -un)/My Documents/Warlords Battlecry II' DATA_DIRS="$DATA_DIRS ./userdata" # Keep compatibility with old archives ARCHIVE_DOC_DATA_PATH_0='app' ARCHIVE_GAME_DATA_PATH_0='app' ARCHIVE_GAME_BIN_PATH_0='app' # Load common functions target_version='2.14' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "$PLAYIT_WORKDIR/gamedata" # Include game icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-warm.sh0000755000000000000000000000736314471751340013137 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2016-2020, Mopi # 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. ### ### # Warm # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20200929.1 # Set game-specific variables GAME_ID='warm' GAME_NAME='Warm' ARCHIVES_LIST=' ARCHIVE_ITCH_0' ARCHIVE_ITCH_0='Warm-Full-pc.zip' ARCHIVE_ITCH_0_URL='https://krispycat.itch.io/warm' ARCHIVE_ITCH_0_MD5='55f19b7d105d1e929edfba0e5e853538' ARCHIVE_ITCH_0_SIZE='670000' ARCHIVE_ITCH_0_VERSION='1.02-itch' ARCHIVE_ITCH_0_TYPE='zip' ARCHIVE_GAME_BIN32_PATH='Warm-Full-pc' ARCHIVE_GAME_BIN32_FILES='lib/linux-i686 Warm.sh' ARCHIVE_GAME_BIN64_PATH='Warm-Full-pc' ARCHIVE_GAME_BIN64_FILES='lib/linux-x86_64' ARCHIVE_GAME_DATA_PATH='Warm-Full-pc' ARCHIVE_GAME_DATA_FILES='lib/pythonlib2.7 game Warm.py renpy' DATA_DIRS='game/saves' APP_MAIN_TYPE='native' APP_MAIN_EXE='Warm.sh' APP_MAIN_ICON='Warm-Full-pc/Warm.exe' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID glibc libstdc++" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Copy launching script between the binaries packages LAUNCHER_SOURCE="${PKG_BIN32_PATH}${PATH_GAME}/$APP_MAIN_EXE" LAUNCHER_DESTINATION="${PKG_BIN64_PATH}${PATH_GAME}/$APP_MAIN_EXE" mkdir --parents "$(dirname "$LAUNCHER_DESTINATION")" cp "$LAUNCHER_SOURCE" "$LAUNCHER_DESTINATION" # Get icon PKG='PKG_DATA' icons_get_from_workdir 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-warsow.sh0000755000000000000000000000437414471751340013512 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Warsow # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220709.2 GAME_ID='warsow' GAME_NAME='War§ow' # This DRM-free archive is no longer available from GOG ARCHIVE_BASE_0='gog_warsow_2.1.0.3.sh' ARCHIVE_BASE_0_MD5='028efe7a5f4dfd8851c2146431c7ca4a' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='490000' ARCHIVE_BASE_0_VERSION='2.1-gog2.1.0.3' CONTENT_PATH_DEFAULT='data/noarch/game' ARCHIVE_GAME_BIN32_FILES=' *.i386 libs/*_i386.so' ARCHIVE_GAME_BIN64_FILES=' *.x86_64 libs/*_x86_64.so' ARCHIVE_GAME_DATA_FILES=' basewsw' ARCHIVE_DOC_DATA_PATH="${CONTENT_PATH_DEFAULT}/docs" ARCHIVE_DOC_DATA_FILES=' *' APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32='warsow.i386' APP_MAIN_EXE_BIN64='warsow.x86_64' APP_MAIN_ICON="${CONTENT_PATH_DEFAULT}/../support/icon.png" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID libc.so.6 libstcd++.so.6 libGLU.so.1 libSDL2-2.0.so.0" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.16' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' prepare_package_layout # Include game icon PKG='PKG_DATA' icons_get_from_workdir 'APP_MAIN' # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-wayward-manor.sh0000755000000000000000000001171014471751340014750 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # 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. ### ### # Wayward Manor # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210519.3 # Set game-specific variables GAME_ID='wayward-manor' GAME_NAME='Wayward Manor' # The inner archive is based on InnoSetup SCRIPT_DEPS='innoextract' ARCHIVE_BASE_0='WaywardManorWin78Version1.01.zip' ARCHIVE_BASE_0_MD5='1a832bc0fbf67f5c4675f47988ec2243' ARCHIVE_BASE_0_TYPE='zip' ARCHIVE_BASE_0_SIZE='2500000' ARCHIVE_BASE_0_VERSION='1.01-humble.2014.07.24' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/wayward-manor' ARCHIVE_GAME_BIN_PATH='app' ARCHIVE_GAME_BIN_FILES='waywardmanor_data/mono waywardmanor_data/plugins *.dll *.exe' ARCHIVE_GAME_DATA_PATH='app' ARCHIVE_GAME_DATA_FILES='waywardmanor_data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='waywardmanor.exe' APP_MAIN_ICON='waywardmanor.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="${PKG_DATA_ID} wine glx" PKG_BIN_DEPS_ARCH='dos2unix sed' PKG_BIN_DEPS_DEB='dos2unix, sed' PKG_BIN_DEPS_GENTOO='app-text/dos2unix sys-apps/sed' # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" ARCHIVE_INNER="${PLAYIT_WORKDIR}/gamedata/Wayward Manor Win 7 & 8 Version 1.01/WMSetup.exe" ARCHIVE_INNER_TYPE='innosetup' ( ARCHIVE='ARCHIVE_INNER' extract_data_from "$ARCHIVE_INNER" ) rm "$ARCHIVE_INNER" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Clean up temporary directories rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Set up a WINE virtual desktop on first launch, using the current desktop resolution APP_WINETRICKS="${APP_WINETRICKS} vd=\$(xrandr|awk '/\\*/ {print \$1}')" PKG_BIN_DEPS="${PKG_BIN_DEPS} winetricks xrandr" # Use persistent storage for registry keys # Game progress and settings are stored in the registry REGISTRY_KEY='HKEY_CURRENT_USER\Software\TheOddGentlemen\Wayward Manor' REGISTRY_DUMP='registry-dumps/persistent.reg' DATA_DIRS="${DATA_DIRS} ./$(dirname "$REGISTRY_DUMP")" APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Set path for persistent dump of registry keys REGISTRY_KEY="'"$REGISTRY_KEY"'" REGISTRY_DUMP="'"$REGISTRY_DUMP"'" # Load dump of registry keys if [ -e "$REGISTRY_DUMP" ]; then wine regedit.exe "$REGISTRY_DUMP" fi # Do not exit on game failure state # This should avoid loss of progress due to a game crash set +o errexit' APP_MAIN_POSTRUN="$APP_MAIN_POSTRUN"' # Restore exit on failure set -o errexit # Dump registry keys wine regedit.exe -E "$REGISTRY_DUMP" "$REGISTRY_KEY" # Exclude volume settings from the dump # These seem to always be reset to 0 dos2unix --quiet "$REGISTRY_DUMP" expression='\''/^"_MUSIC_VOLUME__/d'\'' expression="$expression"'\'';/^"_SFX_VOLUME__/d'\'' sed --in-place --expression="$expression" "$REGISTRY_DUMP" unix2dos --quiet "$REGISTRY_DUMP"' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-we-the-revolution.sh0000755000000000000000000001025514471751340015560 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # We, the Revolution # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210602.3 # Set game-specific variables GAME_ID='we-the-revolution' GAME_NAME='We, the Revolution' ARCHIVE_BASE_0='we_the_revolution_1_3_0_31907.sh' ARCHIVE_BASE_0_MD5='fafc1df1317fdfc73223367ed19eea52' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='3000000' ARCHIVE_BASE_0_VERSION='1.3.0-gog31907' ARCHIVE_BASE_0_URL='https://www.gog.com/game/we_the_revolution' ARCHIVE_DOC_DATA_PATH='data/noarch/docs' ARCHIVE_DOC_DATA_FILES='*' ARCHIVE_GAME_BIN32_PATH='data/noarch/game' ARCHIVE_GAME_BIN32_FILES='We.TheRevolution.x86 We.TheRevolution_Data/MonoBleedingEdge/x86 We.TheRevolution_Data/Plugins/x86 We.TheRevolution_Data/Plugins/libsteam_api.so' ARCHIVE_GAME_BIN64_PATH='data/noarch/game' ARCHIVE_GAME_BIN64_FILES='We.TheRevolution.x86_64 We.TheRevolution_Data/MonoBleedingEdge/x86_64 We.TheRevolution_Data/Plugins/x86_64 We.TheRevolution_Data/Plugins/libsteam_api64.so' ARCHIVE_GAME_DATA_PATH='data/noarch/game' ARCHIVE_GAME_DATA_FILES='We.TheRevolution_Data' APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32='We.TheRevolution.x86' APP_MAIN_EXE_BIN64='We.TheRevolution.x86_64' APP_MAIN_ICON='We.TheRevolution_Data/Resources/UnityPlayer.png' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="${PKG_DATA_ID} glibc libstdc++ gtk2 libz.so.1 libgdk_pixbuf-2.0.so.0 libgobject-2.0.so.0 libglib-2.0.so.0" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Use a per-session dedicated file for logs APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a per-session dedicated file for logs mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-werewolf-the-apocalypse-heart-of-the-forest.sh0000755000000000000000000000704714471751340022517 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # 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. ### ### # Werewolf: The Apocalypse - Heart of the Forest # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20211215.1 # Set game-specific variables GAME_ID='werewolf-the-apocalypse-heart-of-the-forest' GAME_NAME='Werewolf: The Apocalypse - Heart of the Forest' ARCHIVE_BASE_0='werewolf_the_apocalypse_heart_of_the_forest_1_0_13_2010191537_42086.sh' ARCHIVE_BASE_0_MD5='8f8655786c9eed74746c9cc151b5543b' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='910000' ARCHIVE_BASE_0_VERSION='1.0.13-gog42086' ARCHIVE_BASE_0_URL='https://www.gog.com/game/werewolf_the_apocalypse_heart_of_the_forest' UNITY3D_NAME='Heart of the Forest' CONTENT_PATH_DEFAULT='data/noarch/game' ARCHIVE_GAME_BIN_PATH="$CONTENT_PATH_DEFAULT" ARCHIVE_GAME_BIN_FILES=' Heart?of?the?Forest Heart?of?the?Forest_Data/MonoBleedingEdge Heart?of?the?Forest_Data/Plugins UnityPlayer.so' ARCHIVE_GAME_DATA_PATH="$CONTENT_PATH_DEFAULT" ARCHIVE_GAME_DATA_FILES=' Heart?of?the?Forest_Data' APP_MAIN_EXE="$UNITY3D_NAME" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6 libz.so.1" # Load common functions target_version='2.14' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-what-happened-to-survey-team-4.sh0000755000000000000000000000375514471751340017757 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # What Happened to Survey Team 4? # send your bug reports to contact@dotslashplay.it ### script_version=20230805.1 GAME_ID='what-happened-to-survey-team-4' GAME_NAME='What Happened to Survey Team 4?' ARCHIVE_BASE_0='what-happened-to-survey-team-4-windows.zip' ARCHIVE_BASE_0_MD5='e1a85df1abe704c1d0e18324e3a73ae0' ARCHIVE_BASE_0_SIZE='580000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://iaintheindie.itch.io/what-happened-to-survey-team-4' UNITY3D_NAME='What happened to Survey Team 4' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" MonoBleedingEdge ${UNITY3D_NAME}_Data/Plugins ${UNITY3D_NAME}.exe UnityPlayer.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-what-remains-of-edith-finch.sh0000755000000000000000000000526114471751340017345 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # What Remains of Edith Finch # send your bug reports to contact@dotslashplay.it ### script_version=20230406.1 GAME_ID='what-remains-of-edith-finch' GAME_NAME='What Remains of Edith Finch' ARCHIVE_BASE_0='setup_what_remains_of_edith_finch_1.0.0.0_(16929).exe' ARCHIVE_BASE_0_MD5='ec155243055cbd820f8f9056eea5eb10' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_what_remains_of_edith_finch_1.0.0.0_(16929)-1.bin' ARCHIVE_BASE_0_PART1_MD5='f1a06506b6899cb72d44be1b8d6f7f44' ARCHIVE_BASE_0_SIZE='2700000' ARCHIVE_BASE_0_VERSION='1.0.0.0-gog16929' ARCHIVE_BASE_0_URL='https://www.gog.com/game/what_remains_of_edith_finch' UNREALENGINE4_NAME='finchgame' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=" engine ${UNREALENGINE4_NAME}/binaries ${UNREALENGINE4_NAME}/plugins startwroef.exe" CONTENT_GAME_DATA_FILES=" ${UNREALENGINE4_NAME}" WINE_DIRECT3D_RENDERER='dxvk' APP_WINE_LINK_DIRS=" userdata:users/\${USER}/AppData/Local/${UNREALENGINE4_NAME}/Saved" USER_PERSISTENT_DIRECTORIES=' userdata/Config/WindowsNoEditor userdata/SaveGames' APP_MAIN_EXE="${UNREALENGINE4_NAME}/binaries/win64/${UNREALENGINE4_NAME}-win64-shipping.exe" APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=123' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPS_ARCH='gst-plugins-base gst-plugins-good gst-libav' PKG_BIN_DEPS_DEB='gstreamer1.0-plugins-base, gstreamer1.0-plugins-good, gstreamer1.0-libav' PKG_BIN_DEPS_GENTOO='media-libs/gst-plugins-base media-plugins/gst-plugins-good media-libs/gst-plugins-libav' # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-when-the-past-was-around.sh0000755000000000000000000000500214471751340016717 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=20221206.2 GAME_ID='when-the-past-was-around' GAME_NAME='When The Past Was Around' UNITY3D_NAME='when past was around' ARCHIVE_BASE_1='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='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' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" monobleedingedge galaxy64.dll galaxycsharpglue.dll unityplayer.dll unitycrashhandler64.exe ${UNITY3D_NAME}_data/plugins ${UNITY3D_NAME}.exe" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" APP_MAIN_ICON="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Use persistent storage for saved games APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/LocalLow/Mojiken Studio/When Past Was Around' USER_PERSISTENT_DIRECTORIES=' userdata' # Load common functions target_version='2.18' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-where-the-water-tastes-like-wine.sh0000755000000000000000000001004514471751340020353 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Where the Water Tastes Like Wine # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210514.4 # Set game-specific variables GAME_ID='where-the-water-tastes-like-wine' GAME_NAME='Where the Water Tastes Like Wine' ARCHIVE_BASE_0='where-the-water-tastes-like-wine-linux.zip' ARCHIVE_BASE_0_MD5='b7e3d981ff707f5687a79552514a49fe' ARCHIVE_BASE_0_SIZE='7000000' ARCHIVE_BASE_0_VERSION='1.4.2-itch.2019.07.24' ARCHIVE_BASE_0_URL='https://dimbulbgames.itch.io/where-the-water-tastes-like-wine' ARCHIVE_GAME_BIN32_PATH='.' ARCHIVE_GAME_BIN32_FILES='WTWTLW.x86 WTWTLW_Data/*/x86' ARCHIVE_GAME_BIN64_PATH='.' ARCHIVE_GAME_BIN64_FILES='WTWTLW.x86_64 WTWTLW_Data/*/x86_64' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES='WTWTLW_Data' APP_MAIN_TYPE='native' APP_MAIN_EXE_BIN32='WTWTLW.x86' APP_MAIN_EXE_BIN64='WTWTLW.x86_64' APP_MAIN_ICON='WTWTLW_Data/Resources/UnityPlayer.png' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="${PKG_DATA_ID} glibc libstdc++ gtk2 libgdk_pixbuf-2.0.so.0 libgobject-2.0.so.0 libglib-2.0.so.0" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Use a per-session dedicated file for logs APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a per-session dedicated file for logs mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Work around Unity3D poor support for non-US locales APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Work around Unity3D poor support for non-US locales export LANG=C' # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" set_standard_permissions "${PLAYIT_WORKDIR}/gamedata" prepare_package_layout # Get icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-while-true-learn.sh0000755000000000000000000000604714471751340015353 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # while True: learn() # send your bug reports to contact@dotslashplay.it ### script_version=20230405.1 GAME_ID='while-true-learn' GAME_NAME='while True: learn()' ARCHIVE_BASE_0='while_true_learn_1_2_95_5144b_46524.sh' ARCHIVE_BASE_0_MD5='0818a14ad1548264ca3540321b133231' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='860000' ARCHIVE_BASE_0_VERSION='1.2.95-gog46524' ARCHIVE_BASE_0_URL='https://www.gog.com/game/while_true_learn' UNITY3D_NAME='wtl' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN32_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins/x86" CONTENT_LIBS_BIN32_FILES=' ScreenSelector.so' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/MonoBleedingEdge/x86" CONTENT_LIBS_BIN64_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_LIBS_BIN64_FILES=' ScreenSelector.so' CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/MonoBleedingEdge/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data/Managed ${UNITY3D_NAME}_Data/MonoBleedingEdge/etc ${UNITY3D_NAME}_Data/Resources ${UNITY3D_NAME}_Data/StreamingAssets ${UNITY3D_NAME}_Data/globalgamemanagers ${UNITY3D_NAME}_Data/boot.config ${UNITY3D_NAME}_Data/level? ${UNITY3D_NAME}_Data/*.assets ${UNITY3D_NAME}_Data/*.png ${UNITY3D_NAME}_Data/*.resource ${UNITY3D_NAME}_Data/*.resS" USER_PERSISTENT_DIRECTORIES=' Saves' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-whispering-willows.sh0000755000000000000000000000772414471751340016047 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright © 2015-2022, Antoine Le Gonidec # Copyright © 2021-2022, 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. ### ### # Whispering Willows # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220125.4 # Set game-specific variables GAME_ID='whispering-willows' GAME_NAME='Whispering Willows' ARCHIVE_BASE_FIREFLOWER_0='Whispering_Willows_1_27_Linux.zip' ARCHIVE_BASE_FIREFLOWER_0_MD5='5ca10433c0da315028d8318e39fb3ad2' ARCHIVE_BASE_FIREFLOWER_0_SIZE='2000000' ARCHIVE_BASE_FIREFLOWER_0_VERSION='1.27-fireflower' ARCHIVE_BASE_FIREFLOWER_0_URL='https://fireflowergames.com/products/whispering-willows' ARCHIVE_BASE_HUMBLE_0='LINUX_NO_STEAM.rar' ARCHIVE_BASE_HUMBLE_0_MD5='56c078a0208769ab2222f7e1cc0e0d57' ARCHIVE_BASE_HUMBLE_0_SIZE='1900000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.26-humble151125' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/whispering-willows' UNITY3D_NAME='WhisperingWillows' CONTENT_PATH_DEFAULT_FIREFLOWER='.' CONTENT_PATH_DEFAULT_HUMBLE='LINUX_NO_STEAM' ARCHIVE_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86" ARCHIVE_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID libc.so.6 libstdc++.so.6 libGLU.so.1 libGL.so.1 libX11.so.6 libgtk-x11-2.0.so.0 libgdk_pixbuf-2.0.so.0 libgobject-2.0.so.0 libglib-2.0.so.0 xcursor libxrandr" PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Get game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Clean up temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write 'APP_MAIN' done # Build package write_metadata build_pkg # Clean up rm --recursive "${PLAYIT_WORKDIR}" # Print instructions print_instructions exit 0 games/play-windosill.sh0000755000000000000000000000363114471751340014167 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Windosill # send your bug reports to contact@dotslashplay.it ### script_version=20231108.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='windosill' GAME_NAME='Windosill' ARCHIVE_BASE_0_NAME='Windosill' ARCHIVE_BASE_0_MD5='853ab5f3ea6b2691718466f0479b867f' ARCHIVE_BASE_0_SIZE='19000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://vectorpark.itch.io/windosill' APP_MAIN_EXE='Windosill' PKG_MAIN_ARCH='32' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libglib-2.0.so.0 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libnspr4.so libnss3.so libnssutil3.so libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libplc4.so libplds4.so libpthread.so.0 librt.so.1 libsmime3.so libssl3.so libX11.so.6 libXcursor.so.1 libXext.so.6 libXrender.so.1 libXt.so.6' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Include game data install -D --mode=755 \ --target-directory="$(package_path 'PKG_MAIN')$(path_game_data)" \ "$(archive_path "$(current_archive)")" # Write launchers launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-windward.sh0000755000000000000000000000566514471751340014013 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Windward # send your bug reports to contact@dotslashplay.it ### script_version=20230819.2 GAME_ID='windward' GAME_NAME='Windward' ## This game used to be sold by GOG, ## but is no longer available. ARCHIVE_BASE_GOG_2='gog_windward_2.36.0.40.sh' ARCHIVE_BASE_GOG_2_MD5='6afbdcfda32a6315139080822c30396a' ARCHIVE_BASE_GOG_2_SIZE='130000' ARCHIVE_BASE_GOG_2_VERSION='20170617.0-gog2.36.0.40' ARCHIVE_BASE_GOG_1='gog_windward_2.35.0.39.sh' ARCHIVE_BASE_GOG_1_MD5='12fffaf6f405f36d2f3a61b4aaab89ba' ARCHIVE_BASE_GOG_1_SIZE='130000' ARCHIVE_BASE_GOG_1_VERSION='20160707.0-gog2.35.0.39' ARCHIVE_BASE_GOG_0='gog_windward_2.35.0.38.sh' ARCHIVE_BASE_GOG_0_MD5='f5ce09719bf355e48d2eac59b84592d1' ARCHIVE_BASE_GOG_0_SIZE='120000' ARCHIVE_BASE_GOG_0_VERSION='20160707-gog2.35.0.38' ## The DRM-free build of Windard is no longer available from Humble Store, ## they only sell Steam keys now. ARCHIVE_BASE_HUMBLE_1='WindwardLinux_HB_1505248588.zip' ARCHIVE_BASE_HUMBLE_1_MD5='9ea99157d13ae53905757f2fb3ab5b54' ARCHIVE_BASE_HUMBLE_1_SIZE='130000' ARCHIVE_BASE_HUMBLE_1_VERSION='20170617.0-humble170912' ARCHIVE_BASE_HUMBLE_0='WindwardLinux_HB.zip' ARCHIVE_BASE_HUMBLE_0_MD5='f2d1a9a91055ecb6c5ce1bd7e3ddd803' ARCHIVE_BASE_HUMBLE_0_SIZE='130000' ARCHIVE_BASE_HUMBLE_0_VERSION='20160707-humble1' UNITY3D_NAME='Windward' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='Windward' CONTENT_PATH_DEFAULT_HUMBLE_0='.' FAKE_HOME_PERSISTENT_DIRECTORIES=' Documents/Windward' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1' # Load common functions 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 . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icon PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-wing-commander-1.sh0000755000000000000000000000765314471751340015240 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2018-2020, BetaRays # 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. ### ### # Wing Commander # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20200209.1 # Set game-specific variables GAME_ID='wing-commander-1' GAME_NAME='Wing Commander' ARCHIVE_GOG='setup_wing_commander_1.0_(28045).exe' ARCHIVE_GOG_URL='https://www.gog.com/game/wing_commander_1_2' ARCHIVE_GOG_MD5='850542ba9a543378a4894156b41ce511' ARCHIVE_GOG_VERSION='1.0-gog28045' ARCHIVE_GOG_SIZE='45000' ARCHIVE_GOG_OLD0='setup_wing_commander_2.1.0.18.exe' ARCHIVE_GOG_OLD0_MD5='a4a3a355489e66bcecd34d1d9041ebb5' ARCHIVE_GOG_OLD0_VERSION='1.0-gog2.1.0.18' ARCHIVE_GOG_OLD0_SIZE='49000' ARCHIVE_GOG_OLD0_TYPE='innosetup' ARCHIVE_DOC_MAIN_PATH='.' ARCHIVE_DOC_MAIN_FILES='*.pdf' # Keep compatibility with old archives ARCHIVE_DOC_MAIN_PATH_GOG_OLD0='app' ARCHIVE_GAME0_MAIN_PATH='.' ARCHIVE_GAME0_MAIN_FILES='wc.exe sm2.exe gamedat *.cfg' # Keep compatibility with old archives ARCHIVE_GAME0_MAIN_PATH_GOG_OLD0='app' ARCHIVE_GAME1_MAIN_PATH='__support/save' ARCHIVE_GAME1_MAIN_FILES='gamedat' CONFIG_FILES='./*.cfg' DATA_DIRS='./gamedat' APP_MAIN_TYPE='dosbox' APP_MAIN_PRERUN='config -set cpu cycles=fixed 4000 loadfix -1' APP_MAIN_EXE='wc.exe' APP_MAIN_ICON='app/goggame-1207662643.ico' APP_SM2_ID="${GAME_ID}_sm2" APP_SM2_TYPE='dosbox' APP_SM2_PRERUN="$APP_MAIN_PRERUN" APP_SM2_EXE='sm2.exe' APP_SM2_ICON='app/goggame-1207662643.ico' APP_SM2_NAME="$GAME_NAME - The Secret Missions 2 - Crusade" PACKAGES_LIST='PKG_MAIN' PKG_MAIN_DEPS='dosbox' # Easier upgrade from packages generated with pre-20190224.1 scripts PKG_MAIN_PROVIDE='wing-commander' # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Extract icons icons_get_from_workdir 'APP_MAIN' 'APP_SM2' rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers launchers_write 'APP_MAIN' 'APP_SM2' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-wing-commander-2.sh0000755000000000000000000000602514471751340015231 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Wing Commander 2 # send your bug reports to contact@dotslashplay.it ### script_version=20230103.1 GAME_ID='wing-commander-2' GAME_NAME='Wing Commander Ⅱ' ARCHIVE_BASE_1='setup_wing_commander_ii_1.0_(28045).exe' ARCHIVE_BASE_1_MD5='f5288f26451f7c1c860a269a8198f554' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='46000' ARCHIVE_BASE_1_VERSION='1.0-gog28045' ARCHIVE_BASE_1_URL='https://www.gog.com/game/wing_commander_1_2' ARCHIVE_BASE_0='setup_wing_commander2_2.1.0.18.exe' ARCHIVE_BASE_0_MD5='f94a7eb75e4ed454108d13189d003e9f' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='49000' ARCHIVE_BASE_0_VERSION='1.0-gog2.1.0.18' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_MAIN_FILES=' wc2.exe so1.exe so2.exe gamedat *.cfg' CONTENT_DOC_MAIN_FILES=' *.pdf' APP_MAIN_EXE='wc2.exe' APP_MAIN_ICON='app/goggame-1207662653.ico' APP_MAIN_ICON_0='goggame-1207662653.ico' APP_SO1_ID="${GAME_ID}-special-operations-1" APP_SO1_NAME="$GAME_NAME - Special Operations 1" APP_SO1_EXE='so1.exe' APP_SO1_ICON='app/goggame-1207662653.ico' APP_SO1_ICON_0='goggame-1207662653.ico' APP_SO2_ID="${GAME_ID}-special-operations-2" APP_SO2_NAME="$GAME_NAME - Special Operations 2" APP_SO2_EXE='so2.exe' APP_SO2_ICON='app/goggame-1207662653.ico' APP_SO2_ICON_0='goggame-1207662653.ico' USER_PERSISTENT_FILES=' *.cfg' USER_PERSISTENT_DIRECTORIES=' gamedat' PKG_MAIN_DEPS='dosbox' # Work around performance issues APP_MAIN_DOSBOX_PRERUN="$APP_MAIN_DOSBOX_PRERUN"' config -set cpu cycles=fixed 8000 loadfix -32' APP_SO1_DOSBOX_PRERUN="$APP_MAIN_DOSBOX_PRERUN" APP_SO2_DOSBOX_PRERUN="$APP_MAIN_DOSBOX_PRERUN" # Work around sound issues that can lock the game during the first intro speech APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Work around sound issues that can lock the game during the first intro speech export DOSBOX_SBLASTER_IRQ=5' APP_SO1_PRERUN="$APP_MAIN_PRERUN" APP_SO2_PRERUN="$APP_MAIN_PRERUN" # Load common functions target_version='2.20' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write 'APP_MAIN' 'APP_SO1' 'APP_SO2' # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-wing-commander-3.sh0000755000000000000000000000774614471751340015245 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # 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. ### ### # Wing Commander 3 # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210410.1 # Set game-specific variables GAME_ID='wing-commander-3' GAME_NAME='Wing Commander Ⅲ' ARCHIVES_LIST=' ARCHIVE_BASE_1 ARCHIVE_BASE_0' ARCHIVE_BASE_1='setup_wing_commander_iii_1.4_(28045).exe' ARCHIVE_BASE_1_MD5='9418288d818315fbbede459bef76b82c' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1='setup_wing_commander_iii_1.4_(28045)-1.bin' ARCHIVE_BASE_1_PART1_MD5='1caaf5ba29075e67a00b8009bc53e463' ARCHIVE_BASE_1_PART1_TYPE='innosetup' ARCHIVE_BASE_1_VERSION='1.4-gog28045' ARCHIVE_BASE_1_SIZE='1900000' ARCHIVE_BASE_1_URL='https://www.gog.com/game/wing_commander_3_heart_of_the_tiger' ARCHIVE_BASE_0='setup_wing_commander3_2.1.0.7.exe' ARCHIVE_BASE_0_MD5='c9c9b539e6e1f0b0509b6f777878d91e' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='1.4-gog2.1.0.7' ARCHIVE_BASE_0_SIZE='1900000' ARCHIVE_DOC_MAIN_PATH='.' ARCHIVE_DOC_MAIN_FILES='*.pdf' ARCHIVE_GAME_MAIN_PATH='.' ARCHIVE_GAME_MAIN_FILES='data.dat objects.tre wc3' # Keep compatibility with old archives ARCHIVE_DOC_MAIN_PATH_GOG_0='app' ARCHIVE_GAME_MAIN_PATH_GOG_0='app' GAME_IMAGE='DATA.DAT' CONFIG_DIRS='./WC3' DATA_FILES='./*.WSG' APP_MAIN_TYPE='dosbox' APP_MAIN_EXE='WC3.EXE' APP_MAIN_ICON='app/goggame-1207658966.ico' PACKAGES_LIST='PKG_MAIN' PKG_MAIN_DEPS='dosbox' # Run the game from the mounted CD-ROM image APP_MAIN_PRERUN='d:' # Load common functions target_version='2.12' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout toupper "${PKG_MAIN_PATH}${PATH_GAME}" # Extract icons icons_get_from_workdir 'APP_MAIN' # Clean up temporary files rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers # Work around the binary presence check, # it is actually included in the CD-ROM image fake_binary="${PKG_MAIN_PATH}${PATH_GAME}/${APP_MAIN_EXE}" touch "$fake_binary" launchers_write 'APP_MAIN' rm "$fake_binary" # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-wingspan.sh0000755000000000000000000000524614471751340014015 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi set -o errexit ### # Wingspan # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220330.3 # Set game-specific variables GAME_ID='wingspan' GAME_NAME='Wingspan' ARCHIVE_BASE_1='setup_wingspan_102_(53871).exe' ARCHIVE_BASE_1_MD5='1628a30ffccd86d875895e2d166c1cde' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1='setup_wingspan_102_(53871)-1.bin' ARCHIVE_BASE_1_PART1_MD5='7a2baede2444e183941698a73e7a3044' ARCHIVE_BASE_1_PART1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='1100000' ARCHIVE_BASE_1_VERSION='102-gog53871' ARCHIVE_BASE_1_URL='https://www.gog.com/game/wingspan' ARCHIVE_BASE_0='setup_wingspan_83_(50869).exe' ARCHIVE_BASE_0_MD5='5d68e6a8027e34504e86075a96e8bc15' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_wingspan_83_(50869)-1.bin' ARCHIVE_BASE_0_PART1_MD5='110175d9b0bca8b33b13e826da0a7b99' ARCHIVE_BASE_0_PART1_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1100000' ARCHIVE_BASE_0_VERSION='83-gog50869' UNITY3D_NAME='wingspan' CONTENT_PATH_DEFAULT='.' ARCHIVE_GAME_BIN_FILES=" ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_data/plugins *.dll unitycrashhandler32.exe" ARCHIVE_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" APP_MAIN_ICON="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Use persistent storage for user data APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/$(id -un)/AppData/LocalLow/Monster Couch/Wingspan' DATA_DIRS="$DATA_DIRS ./userdata" # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-witch-thief.sh0000755000000000000000000000670114471751340014377 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Witch Thief # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20210818.2 # Set game-specific variables GAME_ID='witch-thief' GAME_NAME='Witch Thief' ARCHIVE_BASE_0='witch-thief-win.zip' ARCHIVE_BASE_0_MD5='e91763d8cca8574750a5220954536c73' ARCHIVE_BASE_0_SIZE='1400000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://cardboardkeep.itch.io/witch-thief' ARCHIVE_GAME_BIN_PATH='.' ARCHIVE_GAME_BIN_FILES=' *.dll *.exe WitchThief_Data/Mono WitchThief_Data/Plugins' ARCHIVE_GAME_DATA_PATH='.' ARCHIVE_GAME_DATA_FILES=' WitchThief_Data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='WitchThief.exe' APP_MAIN_ICON='WitchThief.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Use persistent storage for user data APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/AppData/LocalLow/CardboardKeep/WitchThief' DATA_DIRS="$DATA_DIRS ./userdata" # Load common functions target_version='2.13' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" set_standard_permissions "$PLAYIT_WORKDIR/gamedata" prepare_package_layout # Get icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Clean up temporary directories rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-witchway.sh0000755000000000000000000000331514471751340014021 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Witchway # send your bug reports to contact@dotslashplay.it ### script_version=20230315.3 GAME_ID='witchway' GAME_NAME='WitchWay' ARCHIVE_BASE_0='WitchWay 1-12 WIN .zip' ARCHIVE_BASE_0_MD5='70bc22f82227be0008332b5f5ce10585' ARCHIVE_BASE_0_SIZE='25000' ARCHIVE_BASE_0_VERSION='1.12-itch' ARCHIVE_BASE_0_URL='https://gleeson.itch.io/witchway' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES=' WitchWay.exe' APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/Local/WitchWay' USER_PERSISTENT_DIRECTORIES=' userdata' APP_MAIN_EXE='WitchWay.exe' PKG_MAIN_ARCH='32' # Work around a crash related to shaders compilation APP_WINETRICKS="$APP_WINETRICKS d3dcompiler_43" # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons icons_inclusion # Include game data content_inclusion_default # Write launchers launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-world-to-the-west.sh0000755000000000000000000000656614471751340015502 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # World to the West # send your bug reports to contact@dotslashplay.it ### script_version=20221210.2 GAME_ID='world-to-the-west' GAME_NAME='World to the West' UNITY3D_NAME='WorldToTheWest' ARCHIVE_BASE_1='world_to_the_west_en_1_3_0_23314.sh' ARCHIVE_BASE_1_MD5='ac200556d642b1529526375b65642574' ARCHIVE_BASE_1_TYPE='mojosetup' ARCHIVE_BASE_1_SIZE='2100000' ARCHIVE_BASE_1_VERSION='1.3.0-gog23314' ARCHIVE_BASE_1_URL='https://www.gog.com/game/world_to_the_west' ARCHIVE_BASE_0='gog_world_to_the_west_2.0.0.2.sh' ARCHIVE_BASE_0_MD5='dd393d192c7569cc19edb0e3fff7851a' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='2500000' ARCHIVE_BASE_0_VERSION='1.0.1-gog2.0.0.2' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86 ${UNITY3D_NAME}.x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64 ${UNITY3D_NAME}.x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPENDENCIES_LIBRARIES=' ld-linux-x86-64.so.2 libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN32_DEPENDENCIES_LIBRARIES_0=' ld-linux-x86-64.so.2 libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2 libz.so.1' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN32_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES_0="$PKG_BIN32_DEPENDENCIES_LIBRARIES_0" # Load common functions target_version='2.19' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Enforce the use of a common Unity3D name unity3d_name=$(unity3d_name) alternative_name='WTTW_GOG_1_3_0_Linux' for name_suffix in \ '.x86' \ '.x86_64' \ '_Data' do if [ -e "${alternative_name}${name_suffix}" ]; then mv "${alternative_name}${name_suffix}" "${unity3d_name}${name_suffix}" fi done ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-x-morph-defense.sh0000755000000000000000000000500114471751340015155 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # X-Morph: Defense # send your bug reports to contact@dotslashplay.it ### script_version=20221229.1 GAME_ID='x-morph-defense' GAME_NAME='X-Morph: Defense' ARCHIVE_BASE_0='setup_x-morph_defense_complete_edition_1.0.0_(64bit)_(27014).exe' ARCHIVE_BASE_0_MD5='9d9eecd4c40390e6944f745720421931' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_x-morph_defense_complete_edition_1.0.0_(64bit)_(27014)-1.bin' ARCHIVE_BASE_0_PART1_MD5='2ca0e0fbd9305b419e1c1ce2f706753c' ARCHIVE_BASE_0_PART2='setup_x-morph_defense_complete_edition_1.0.0_(64bit)_(27014)-2.bin' ARCHIVE_BASE_0_PART2_MD5='939bd7b04555bbedcf9a50876c461d76' ARCHIVE_BASE_0_VERSION='1.0.0-gog27014' ARCHIVE_BASE_0_SIZE='4600000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/xmorph_defense_complete_edition' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' bin/*.dll bin/*.exe conf' CONTENT_GAME_DATA_FILES=' packs' WINE_DIRECT3D_RENDERER='dxvk' APP_WINE_LINK_DIRS=' userdata:users/${USER}/Documents/X-Morph Defense' USER_PERSISTENT_DIRECTORIES=' userdata/config userdata/playerinfo' APP_MAIN_EXE='bin/shooter_win64_release.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Run the game binary from its parent directory APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Run the game binary from its parent directory cd "$(dirname "$APP_EXE")" APP_EXE=$(basename "$APP_EXE")' # Load common functions target_version='2.20' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-xenonauts.sh0000755000000000000000000001027114471751340014205 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2017-2020, Jacek Szafarkiewicz # 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. ### ### # Xenonauts # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20200204.3 # Set game-specific variables GAME_ID='xenonauts' GAME_NAME='Xenonauts' ARCHIVE_GOG='xenonauts_en_1_65_21328.sh' ARCHIVE_GOG_URL='https://www.gog.com/game/xenonauts' ARCHIVE_GOG_MD5='bff1d949f13f2123551a964475ea655e' ARCHIVE_GOG_SIZE='2900000' ARCHIVE_GOG_VERSION='1.65-gog21328' ARCHIVE_GOG_TYPE='mojosetup' ARCHIVE_GOG_OLD0='gog_xenonauts_2.1.0.4.sh' ARCHIVE_GOG_OLD0_MD5='7830dee208e779f97858ee81a97c9327' ARCHIVE_GOG_OLD0_SIZE='2900000' ARCHIVE_GOG_OLD0_VERSION='1.63-gog2.1.0.4' ARCHIVE_HUMBLE='Xenonauts-DRMFree-Linux-2016-03-03.sh' ARCHIVE_HUMBLE_URL='https://www.humblebundle.com/store/xenonauts' ARCHIVE_HUMBLE_MD5='f4369e987381b84fde64be569fbab913' ARCHIVE_HUMBLE_SIZE='2700000' ARCHIVE_HUMBLE_VERSION='1.65-humble160303' ARCHIVE_HUMBLE_TYPE='mojosetup' ARCHIVE_DOC_PATH_GOG='data/noarch/game' ARCHIVE_DOC_PATH_HUMBLE='data/noarch' ARCHIVE_DOC_FILES='README.linux *.pdf' ARCHIVE_GAME_BIN_PATH_GOG='data/noarch/game' ARCHIVE_GAME_BIN_PATH_HUMBLE='data/x86' ARCHIVE_GAME_BIN_FILES='Xenonauts.bin.x86 lib/libsteam_api.so' ARCHIVE_GAME_DATA_PATH_GOG='data/noarch/game' ARCHIVE_GAME_DATA_PATH_HUMBLE='data/noarch' ARCHIVE_GAME_DATA_FILES='assets extras Icon.*' APP_MAIN_TYPE='native' APP_MAIN_EXE='Xenonauts.bin.x86' APP_MAIN_ICON='Icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID glibc libstdc++ glx sdl2 alsa" PKG_BIN_DEPS_ARCH='lib32-libx11 lib32-libxinerama lib32-libxxf86vm lib32-libxext' PKG_BIN_DEPS_DEB='libx11-6, libxinerama1, libxxf86vm1, libxext6' PKG_BIN_DEPS_GENTOO='x11-libs/libX11[abi_x86_32] x11-libs/libXinerama[abi_x86_32] x11-libs/libXxf86vm[abi_x86_32] x11-libs/libXext[abi_x86_32]' # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout rm --recursive "$PLAYIT_WORKDIR/gamedata" # Get game icon PKG='PKG_DATA' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-yesterday.sh0000755000000000000000000000425514471751340014177 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi set -o errexit ### # Yesterday # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220905.1 GAME_ID='yesterday' GAME_NAME='Yesterday' ARCHIVE_BASE_0='setup_yesterday_1.0.1_(34047).exe' ARCHIVE_BASE_0_MD5='638c9882333cd55dabf7a136c25a5158' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_yesterday_1.0.1_(34047)-1.bin' ARCHIVE_BASE_0_PART1_MD5='40aa040bcb99a2038d24266d9807aac4' ARCHIVE_BASE_0_SIZE='4400000' ARCHIVE_BASE_0_VERSION='1.0.1-gog34047' ARCHIVE_BASE_0_URL='https://www.gog.com/game/yesterday' CONTENT_PATH_DEFAULT='.' ARCHIVE_GAME_BIN_FILES=' binkw32.dll config.lang psconfig.exe psengine.dll pthreadvc2.dll yesterday.exe' ARCHIVE_GAME_DATA_FILES=' dataa datav resource' APP_MAIN_TYPE='wine' APP_MAIN_EXE='yesterday.exe' APP_MAIN_ICON='yesterday.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Use persistent storage for user data APP_WINE_LINK_DIRS=' gamedata:ProgramData/Pendulo Studios/Yesterday' USER_PERSISTENT_DIRECTORIES=' gamedata' # Load common functions target_version='2.17' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data prepare_package_layout # Delete temporary directories rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-yokus-island-express.sh0000755000000000000000000000554614471751340016303 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Yoku's Island Express # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20220402.3 # Set game-specific variables GAME_ID='yokus-island-express' GAME_NAME='Yokuʼs Island Express' ARCHIVE_BASE_1='setup_gog_yoku_latest_drm_free_210927_(50319).exe' ARCHIVE_BASE_1_MD5='5a1241ffdda722df9c7c4c8fc1b661fe' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='1300000' ARCHIVE_BASE_1_VERSION='2021.09.27-gog50319' ARCHIVE_BASE_1_URL='https://www.gog.com/game/yokus_island_express' ARCHIVE_BASE_0='setup_yokus_island_express_aug_24_2018_205911_(24871).exe' ARCHIVE_BASE_0_MD5='49d3a80f0a039e7b7a4d5fcd4860e445' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1300000' ARCHIVE_BASE_0_VERSION='2018.08.24-gog24871' CONTENT_PATH_DEFAULT='.' ARCHIVE_DOC_DATA_FILES=' licenses' ARCHIVE_GAME_BIN_FILES=' yoku.exe bssndrpt64.exe bugsplat64.dll bugsplatrc64.dll d3dcompiler_47.dll' ARCHIVE_GAME_DATA_FILES=' data processed' APP_MAIN_TYPE='wine' APP_MAIN_EXE='yoku.exe' APP_MAIN_ICON='yoku.exe' PACKAGES_LIST='PKG_DATA PKG_BIN' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID wine" # Set up a WINE virtual desktop on first launch, using the current desktop resolution sed_expression='s/.*primary.* ([0-9]+x[0-9]+).*/\1/p' sed_options="--regexp-extended --silent --expression='${sed_expression}'" APP_WINETRICKS="$APP_WINETRICKS vd=\$(LANG=C xrandr | sed ${sed_options})" PKG_BIN_DEPS="$PKG_BIN_DEPS winetricks xrandr sed" # Use persistent storage for user data APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/${USER}/Application Data/Villa Gorilla/Yoku'\''s Island Express' DATA_DIRS="$DATA_DIRS ./userdata" # Load common functions target_version='2.15' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Include game icon PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-yono-and-the-celestial-elephants.sh0000755000000000000000000001113614471751340020410 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2021, Antoine Le Gonidec # Copyright (c) 2016-2021, Mopi # 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. ### ### # Yono and the Celestial Elephants # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20211214.2 # Set game-specific variables GAME_ID='yono-and-the-celestial-elephants' GAME_NAME='Yono and the Celestial Elephants' ARCHIVE_BASE_1='setup_yono_and_the_celestial_elephants_01.01_cn_update_(40286).exe' ARCHIVE_BASE_1_MD5='1503a970416ab3cd2e68db7f577f9701' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='1200000' ARCHIVE_BASE_1_VERSION='01.01-gog40286' ARCHIVE_BASE_1_URL='https://www.gog.com/game/yono_and_the_celestial_elephants' ARCHIVE_BASE_0='setup_yono_and_the_celestial_elephants_01.01_(15299).exe' ARCHIVE_BASE_0_MD5='c16fddaa24eded544fb9ee42d5b4e2a2' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1200000' ARCHIVE_BASE_0_VERSION='01.01-gog15299' CONTENT_PATH_DEFAULT='.' ARCHIVE_GAME_BIN_PATH="$CONTENT_PATH_DEFAULT" ARCHIVE_GAME_BIN_FILES=' yono?and?the?celestial?elephants.exe yono?and?the?celestial?elephants_data/mono yono?and?the?celestial?elephants_data/plugins' ARCHIVE_GAME_DATA_PATH="$CONTENT_PATH_DEFAULT" ARCHIVE_GAME_DATA_FILES='yono?and?the?celestial?elephants_data' APP_MAIN_TYPE='wine' APP_MAIN_EXE='yono and the celestial elephants.exe' APP_MAIN_ICON='yono and the celestial elephants.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine alsa libGL.so.1" # Use persistent storage for user data APP_WINE_LINK_DIRS="$APP_WINE_LINK_DIRS"' userdata:users/$(id -un)/AppData/LocalLow/Neckbolt/Yono and the Celestial Elephants/Resources/savefiles' DATA_DIRS="$DATA_DIRS ./userdata" # Use a dedicated log file for the current game session APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Use a dedicated log file for the current game session mkdir --parents logs APP_OPTIONS="${APP_OPTIONS} -logFile ./logs/$(date +%F-%R).log"' # Improve controller support # Tested only with an XBox 360 controller APP_WINETRICKS="$APP_WINETRICKS xinput" PKG_BIN_DEPS="$PKG_BIN_DEPS winetricks" # Keep compatibility with old archives CONTENT_PATH_DEFAULT_0='app' ARCHIVE_GAME_BIN_PATH_0="$CONTENT_PATH_DEFAULT_0" ARCHIVE_GAME_DATA_PATH_0="$CONTENT_PATH_DEFAULT_0" # Load common functions target_version='2.14' if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Delete temporary files rm --recursive "$PLAYIT_WORKDIR/gamedata" # Extract icons PKG='PKG_BIN' icons_get_from_package 'APP_MAIN' icons_move_to 'PKG_DATA' # Write launchers PKG='PKG_BIN' launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-yooka-laylee.sh0000755000000000000000000000500414471751340014552 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Yooka Laylee # send your bug reports to contact@dotslashplay.it ### script_version=20230419.1 GAME_ID='yooka-laylee' GAME_NAME='Yooka Laylee' ARCHIVE_BASE_0='gog_yooka_laylee_2.1.0.2.sh' ARCHIVE_BASE_0_MD5='151e4f41960d50047d41bb3c010da187' ARCHIVE_BASE_0_VERSION='1.08-gog2.1.0.2' ARCHIVE_BASE_0_SIZE='9500000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/yookalaylee' UNITY3D_NAME='YookaLaylee' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-ys-1.sh0000755000000000000000000000416714471751340012761 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Ys 1 # send your bug reports to contact@dotslashplay.it ### script_version=20230428.3 GAME_ID='ys-1' GAME_NAME='Ys Ⅰ: Ancient Ys Vanished Omen' ARCHIVE_BASE_0='setup_ys_1_2.0.0.1.exe' ARCHIVE_BASE_0_MD5='ff6c2e8ab34ea15226521fb8b6c8c23b' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='700000' ARCHIVE_BASE_0_VERSION='1.1.0-gog2.0.0.1' ARCHIVE_BASE_0_URL='https://www.gog.com/game/ys_i_ii_chronicles' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' config.exe ys1plus.exe' CONTENT_GAME_DATA_FILES=' release' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Saved Games/FALCOM/ys12c' APP_MAIN_EXE='ys1plus.exe' APP_CONFIG_ID="${GAME_ID}-config" APP_CONFIG_NAME="$GAME_NAME - configuration" APP_CONFIG_EXE='config.exe' APP_CONFIG_CAT='Settings' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/mpeg, systemstream=(boolean)true, mpegversion=(int)1' # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-yume-nikki.sh0000755000000000000000000000654414471751340014253 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Yume Nikki # send your bug reports to contact@dotslashplay.it ### script_version=20230103.1 GAME_ID='yume-nikki' GAME_NAME='Yume Nikki' ## This archive is no longer available for sale from Playism store, ## as they are now only a Steam keys reseller. ARCHIVE_BASE_0='YumeNikki_EN.zip' ARCHIVE_BASE_0_MD5='fd1e659f777ad81bd61ebd6df573140e' ARCHIVE_BASE_0_SIZE='66000' ARCHIVE_BASE_0_VERSION='0.10a-playism' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' RPG_RT.* Harmony.dll' CONTENT_GAME_DATA_FILES=' Map*.lmu Backdrop Battle Battle2 BattleCharSet BattleWeapon CharSet ChipSet FaceSet Frame GameOver Monster Movie Music Panorama Picture Sound System System2 Title' CONTENT_DOC_DATA_PATH='YumeNikki_EN' CONTENT_DOC_DATA_FILES=' *.txt' APP_MAIN_EXE='RPG_RT.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Japanese fonts and locales are required APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Japanese locale is required for correct fonts display export LC_ALL=ja_JP.UTF-8' PKG_BIN_DEPS_DEB='fonts-wqy-microhei' PKG_BIN_DEPS_ARCH='wqy-microhei' PKG_BIN_DEPS_GENTOO='media-fonts/wqy-microhei' # Add required dependency for the extration of the inner .lzh archive SCRIPT_DEPS="$SCRIPT_DEPS lha" # Add required dependencies for tweaking the encoding of file names and contents SCRIPT_DEPS="$SCRIPT_DEPS iconv convmv" # Load common functions target_version='2.20' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' INNER_ARCHIVE="${PLAYIT_WORKDIR}/gamedata/YumeNikki_EN/YumeNikki.lzh" INNER_ARCHIVE_TYPE='lha' archive_extraction 'INNER_ARCHIVE' rm "$INNER_ARCHIVE" ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Convert the files names to UTF-8 encoding encoding_source='SHIFT-JIS' encoding_target='UTF-8' convmv_options="--notest -f $encoding_source -t $encoding_target" find "${PLAYIT_WORKDIR}/gamedata" -exec \ convmv $convmv_options {} + >/dev/null 2>/dev/null # Fix Windows-style paths sed --in-place 's/¥/\\/g' 'YumeNikki_EN/YumeNikkiREADME.txt' # Convert the text files contents to UTF-8 encoding shell_command='contents=$(iconv --from-code CP932 --to-code UTF-8 "$1")' shell_command="$shell_command"'; printf "%s" "$contents" > "$1"' find 'YumeNikki_EN' -name '*.txt' -exec \ sh -c "$shell_command" -- '{}' \; ) # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-zak-mckracken-and-the-alien-mindbenders.sh0000755000000000000000000000635714471751340021610 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # Copyright (c) 2020, macaron # 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. ### ### # Zak McKracken and the Alien Mindbenders # build native packages from the original installers # send your bug reports to vv221@dotslashplay.it ### script_version=20200209.1 # Set game-specific variables GAME_ID='zak-mckracken-and-the-alien-mindbenders' GAME_NAME='Zak McKracken and the Alien Mindbenders' ARCHIVE_GOG='zak_mckracken_and_the_alien_mindbenders_en_gog_2_20099.sh' ARCHIVE_GOG_URL='https://www.gog.com/game/zak_mckracken_and_the_alien_mindbenders' ARCHIVE_GOG_MD5='eb144295c6387b71ac2e78986067ba30' ARCHIVE_GOG_SIZE='190000' ARCHIVE_GOG_VERSION='1.0-gog20099' ARCHIVE_GOG_TYPE='mojosetup' ARCHIVE_DOC_MAIN_PATH='data/noarch/docs' ARCHIVE_DOC_MAIN_FILES='*.pdf *.txt' ARCHIVE_GAME_MAIN_PATH='data/noarch/data' ARCHIVE_GAME_MAIN_FILES='*.lfl *.mp3' APP_MAIN_TYPE='scummvm' APP_MAIN_SCUMMID='zak' APP_MAIN_ICON='data/noarch/support/icon.png' PACKAGES_LIST='PKG_MAIN' PKG_MAIN_DEPS='scummvm' # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" tolower "$PLAYIT_WORKDIR/gamedata" prepare_package_layout # Get icon icons_get_from_workdir 'APP_MAIN' rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers launchers_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-zed.sh0000755000000000000000000000565214471751340012752 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Zed # send your bug reports to contact@dotslashplay.it ### script_version=20230712.2 GAME_ID='zed-game' GAME_NAME='Zed' ARCHIVE_BASE_0='zed_1_3_30662.sh' ARCHIVE_BASE_0_MD5='bc70e3f8b20dd9998972e973349be9c1' ARCHIVE_BASE_0_SIZE='11000000' ARCHIVE_BASE_0_VERSION='1.3-gog30662' ARCHIVE_BASE_0_URL='https://www.gog.com/game/zed' UNREALENGINE4_NAME='zed' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_DATA_CHUNK1_FILES=" ${UNREALENGINE4_NAME}/Content/Paks/pakchunk0-LinuxNoEditor.pak.split00 ${UNREALENGINE4_NAME}/Content/Paks/pakchunk0-LinuxNoEditor.pak.split01" CONTENT_GAME_DATA_CHUNK2_FILES=" ${UNREALENGINE4_NAME}/Content/Paks/pakchunk0-LinuxNoEditor.pak.split02" APPLICATIONS_PREFIX_TYPE='none' APP_MAIN_EXE="${UNREALENGINE4_NAME}/Binaries/Linux/${UNREALENGINE4_NAME}-Linux-Shipping" APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA_CHUNK1 PKG_DATA_CHUNK2 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_CHUNK1_ID="${PKG_DATA_ID}-chunk1" PKG_DATA_CHUNK1_DESCRIPTION="$PKG_DATA_DESCRIPTION - chunk 1" PKG_DATA_DEPS="$PKG_DATA_DEPS $PKG_DATA_CHUNK1_ID" PKG_DATA_CHUNK2_ID="${PKG_DATA_ID}-chunk2" PKG_DATA_CHUNK2_DESCRIPTION="$PKG_DATA_DESCRIPTION - chunk 2" PKG_DATA_DEPS="$PKG_DATA_DEPS $PKG_DATA_CHUNK2_ID" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6' # Load common functions target_version='2.25' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Set package scripts to rebuild the full files from their chunks file_path="${UNREALENGINE4_NAME}/Content/Paks/pakchunk0-LinuxNoEditor.pak" PKG_DATA_POSTINST_RUN="${PKG_DATA_POSTINST_RUN:-} $(huge_file_concatenate "$file_path")" PKG_DATA_CHUNK1_PRERM_RUN="${PKG_DATA_CHUNK1_PRERM_RUN:-} $(huge_file_delete "$file_path")" PKG_DATA_CHUNK2_PRERM_RUN="${PKG_DATA_CHUNK2_PRERM_RUN:-} $(huge_file_delete "$file_path")" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-ziggurat.sh0000755000000000000000000000544614471751340014025 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Ziggurat # send your bug reports to contact@dotslashplay.it ### script_version=20230419.1 GAME_ID='ziggurat' GAME_NAME='Ziggurat' ## This DRM-free archive is no longer available for sale from Humble Bundle. ARCHIVE_BASE_HUMBLE_0='ZigguratLinux.tar.gz' ARCHIVE_BASE_HUMBLE_0_MD5='f990c99e4351b1ae465d551f0c5030be' ARCHIVE_BASE_HUMBLE_0_SIZE='1200000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0-humble1' ARCHIVE_BASE_GOG_0='gog_ziggurat_2.3.0.5.sh' ARCHIVE_BASE_GOG_0_MD5='3b5ac4a4fd7470d04f72680d8cce8b09' ARCHIVE_BASE_GOG_0_SIZE='1200000' ARCHIVE_BASE_GOG_0_VERSION='1.0-gog2.3.0.5' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/ziggurat' UNITY3D_NAME='Ziggurat' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT_HUMBLE='.' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-zniw-adventure.sh0000755000000000000000000000662414471751340015152 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Zniw Adventure # send your bug reports to contact@dotslashplay.it ### script_version=20230322.3 GAME_ID='zniw-adventure' GAME_NAME='Zniw Adventure' ARCHIVE_BASE_0='zniw_adventure_1_3_4_1l_gog_60121.sh' ARCHIVE_BASE_0_MD5='37fb48f55d4e36d6692a8e13b7f07623' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='2300000' ARCHIVE_BASE_0_VERSION='1.3.4.1l-gog60121' ARCHIVE_BASE_0_URL='https://www.gog.com/game/zniw_adventure' CONTENT_PATH_DEFAULT='data/noarch/game/data' CONTENT_GAME_AGS32_FILES=' ags32' CONTENT_GAME_AGS64_FILES=' ags64' CONTENT_GAME_COMMON_FILES=' acsetup.cfg CTGAME.??? *.cdf *.cvf *.ogv *.tra *.vox' CONTENT_DOC_COMMON_FILES=' licenses' CONTENT_DOC0_COMMON_PATH='data/noarch/game' CONTENT_DOC0_COMMON_FILES=' manualEn.pdf manualPl.pdf refCardLinEnglish.pdf refCardLinPolish.pdf' CONTENT_DOC1_COMMON_PATH='data/noarch/game/Walkthrough' CONTENT_DOC1_COMMON_FILES=' SpoilerFreeWalkthrough.pdf' APP_MAIN_ICON='../../support/icon.png' APP_MAIN_TYPE_SCUMMVM='scummvm' APP_MAIN_SCUMMID='ags:zniwadventure' APP_MAIN_EXE_AGS32='ags32' APP_MAIN_EXE_AGS64='ags64' PACKAGES_LIST='PKG_SCUMMVM PKG_AGS32 PKG_AGS64 PKG_COMMON' PKG_COMMON_ID="${GAME_ID}-common" PKG_COMMON_DESCRIPTION='common data files' PKG_SCUMMVM_ID="${GAME_ID}-scummvm" PKG_SCUMMVM_PROVIDE="$GAME_ID" PKG_SCUMMVM_DEPS="$PKG_COMMON_ID scummvm" PKG_AGS32_ID="${GAME_ID}-ags32" PKG_AGS64_ID="${GAME_ID}-ags64" PKG_AGS_PROVIDE="$GAME_ID" PKG_AGS32_PROVIDE="$PKG_AGS_PROVIDE" PKG_AGS64_PROVIDE="$PKG_AGS_PROVIDE" PKG_AGS32_ARCH='32' PKG_AGS64_ARCH='64' PKG_AGS_DEPS="$PKG_COMMON_ID" PKG_AGS32_DEPS="$PKG_AGS_DEPS" PKG_AGS64_DEPS="$PKG_AGS_DEPS" PKG_AGS_DEPENDENCIES_LIBRARIES=' liballeg.so.4.4 libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libogg.so.0 libpthread.so.0 libstdc++.so.6 libtheora.so.0 libvorbisfile.so.3 libvorbis.so.0 libX11.so.6' PKG_AGS32_DEPENDENCIES_LIBRARIES="$PKG_AGS_DEPENDENCIES_LIBRARIES" PKG_AGS64_DEPENDENCIES_LIBRARIES="$PKG_AGS_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_COMMON' icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_SCUMMVM' 'PKG_AGS32' 'PKG_AGS64'; do launchers_write done # Build packages write_metadata build_pkg # Print instructions case "${LANG%_*}" in ('fr') lang_string='version %s :' lang_en='anglaise' lang_fr='française' ;; ('en'|*) lang_string='%s version:' lang_en='English' lang_fr='French' ;; esac printf '\n' printf 'ScummVM:\n' print_instructions 'PKG_COMMON' 'PKG_SCUMMVM' printf 'Adventure Game Studio:\n' print_instructions 'PKG_COMMON' 'PKG_AGS32' 'PKG_AGS64' # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-zodiacats.sh0000755000000000000000000000362014471751340014142 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Zodiacats # send your bug reports to contact@dotslashplay.it ### script_version=20230320.1 GAME_ID='zodiacats' GAME_NAME='Zodiacats' ARCHIVE_BASE_0='setup_zodiacats_1.0003_(64bit)_(62419).exe' ARCHIVE_BASE_0_MD5='ad9c318bba0464f6bcdf3079ebd8f1c9' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='270000' ARCHIVE_BASE_0_VERSION='1.0003-gog62419' ARCHIVE_BASE_0_URL='https://www.gog.com/game/zodiacats' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES=' steam_api64.dll zodiacats.exe' APP_WINE_LINK_DIRS=' userdata:users/${USER}/AppData/Roaming/Godot/app_userdata/Zodiacats' USER_PERSISTENT_DIRECTORIES=' userdata' APP_MAIN_EXE='zodiacats.exe' ## The .exe file is too big, wrestool fails to handle it with: ## wrestool: (…)/gamedata/zodiacats.exe: premature end APP_MAIN_ICON='app/goggame-1435098189.ico' PKG_MAIN_ARCH='64' # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-zork-1.sh0000755000000000000000000000623714471751340013313 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # 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. ### ### # Zork I: The Great Underground Empire # build native packages from the original installers # send your bug reports to vv221@dotslashplay.it ### script_version=20190420.2 # Set game-specific variables GAME_ID='zork-1' GAME_NAME='Zork I: The Great Underground Empire' ARCHIVE_GOG='setup_zork_2.1.0.17.exe' ARCHIVE_GOG_URL='https://www.gog.com/game/the_zork_anthology' ARCHIVE_GOG_MD5='6bd42788d696f154ce363830909259d3' ARCHIVE_GOG_SIZE='22000' ARCHIVE_GOG_VERSION='1.0-gog2.1.0.17' ARCHIVE_DOC_MAIN_PATH='app' ARCHIVE_DOC_MAIN_FILES='*.htm *.pdf *.txt' ARCHIVE_GAME_MAIN_PATH='app' ARCHIVE_GAME_MAIN_FILES='*.com *.inf data save' DATA_DIRS='./save' APP_MAIN_TYPE='dosbox' APP_MAIN_EXE='_zork1.com' APP_MAIN_ICON='app/goggame-1207661493.ico' PACKAGES_LIST='PKG_MAIN' PKG_MAIN_DEPS='dosbox' # Easier upgrade from packages generated with pre-20190303.1 scripts PKG_MAIN_PROVIDE='zork' # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Extract icons icons_get_from_workdir 'APP_MAIN' rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers launcher_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-zork-2.sh0000755000000000000000000000606714471751340013315 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # 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. ### ### # Zork II: The Wizard of Frobozz # build native packages from the original installers # send your bug reports to vv221@dotslashplay.it ### script_version=20190303.3 # Set game-specific variables GAME_ID='zork-2' GAME_NAME='Zork II: The Wizard of Frobozz' ARCHIVE_GOG='setup_zork2_2.1.0.17.exe' ARCHIVE_GOG_URL='https://www.gog.com/game/the_zork_anthology' ARCHIVE_GOG_MD5='2ea2cf45bb6cf76b0365567e81f27aab' ARCHIVE_GOG_SIZE='23000' ARCHIVE_GOG_VERSION='1.0-gog2.1.0.17' ARCHIVE_DOC_MAIN_PATH='app' ARCHIVE_DOC_MAIN_FILES='*.htm *.pdf *.txt' ARCHIVE_GAME_MAIN_PATH='app' ARCHIVE_GAME_MAIN_FILES='*.com *.inf data save' DATA_DIRS='./save' APP_MAIN_TYPE='dosbox' APP_MAIN_EXE='_zork2.com' APP_MAIN_ICON='app/goggame-1207661503.ico' PACKAGES_LIST='PKG_MAIN' PKG_MAIN_DEPS='dosbox' # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Extract icons icons_get_from_workdir 'APP_MAIN' rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers launcher_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-zork-3.sh0000755000000000000000000000606314471751340013312 0ustar rootroot#!/bin/sh set -o errexit ### # Copyright (c) 2015-2020, Antoine "vv221/vv222" Le Gonidec # 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. ### ### # Zork III: The Dungeon Master # build native packages from the original installers # send your bug reports to vv221@dotslashplay.it ### script_version=20190303.3 # Set game-specific variables GAME_ID='zork-3' GAME_NAME='Zork III: The Dungeon Master' ARCHIVE_GOG='setup_zork3_2.1.0.17.exe' ARCHIVE_GOG_URL='https://www.gog.com/game/the_zork_anthology' ARCHIVE_GOG_MD5='1526e9be21bf47412dc053f4097e25bd' ARCHIVE_GOG_SIZE='23000' ARCHIVE_GOG_VERSION='1.0-gog2.1.0.17' ARCHIVE_DOC_MAIN_PATH='app' ARCHIVE_DOC_MAIN_FILES='*.htm *.pdf *.txt' ARCHIVE_GAME_MAIN_PATH='app' ARCHIVE_GAME_MAIN_FILES='*.com *.inf data save' DATA_DIRS='./save' APP_MAIN_TYPE='dosbox' APP_MAIN_EXE='_zork3.com' APP_MAIN_ICON='app/goggame-1207661513.ico' PACKAGES_LIST='PKG_MAIN' PKG_MAIN_DEPS='dosbox' # Load common functions target_version='2.11' if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=play.it-2/lib/libplayit2.sh . "$PLAYIT_LIB2" # Extract game data extract_data_from "$SOURCE_ARCHIVE" prepare_package_layout # Extract icons icons_get_from_workdir 'APP_MAIN' rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers launcher_write 'APP_MAIN' # Build package write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 LICENSE0000644000000000000000000000453714471751340010600 0ustar rootrootThis license applies to all files outside of the "games" subdirectory, and is the default one for files in "games" directory. If a script specifies another license in its headers, the license set in the script takes precedence over this one. # BSD-2-Clause Copyright © 2015 Antoine Le Gonidec Copyright © 2015 mortalius Copyright © 2016 Mopi Copyright © 2017 HS-157 Copyright © 2017 Jacek Szafarkiewicz Copyright © 2017 Phil Morrell Copyright © 2018 BetaRays Copyright © 2018 Janeene "dawnmist" Beeforth Copyright © 2018 Sébastien “Elzen” Dufromentel Copyright © 2018 VA Copyright © 2018 Andrey Butirsky Copyright © 2018 Dominique Derrier Copyright © 2019 Erwann Duclos Copyright © 2019 Emmanuel Gil Peyrot Copyright © 2020 ahub Copyright © 2020 Hoël Bézier Copyright © 2020 macaron Copyright © 2020 Alarig Le Lay Copyright © 2020 Igor Telmenko Copyright © 2020 bbob Copyright © 2021 Anna Lea Copyright © 2021 Daguhh Copyright © 2021 briaguya Copyright © 2021 Christian Stalp Copyright © 2021 dany_wilde Copyright © 2021 Thomas Vasileiou 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. Makefile0000644000000000000000000000253614471751340011230 0ustar rootrootcollection_name = 50_community UID := $(shell id --user) ifeq ($(UID),0) prefix = /usr/local datadir = $(prefix)/share/games else ifeq ($(XDG_DATA_HOME),) XDG_DATA_HOME := $(HOME)/.local/share endif prefix = $(XDG_DATA_HOME) datadir = $(prefix) endif gamesdir = $(DESTDIR)$(datadir)/play.it/games # Install the game scripts .PHONY: install uninstall uninstall-old 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) uninstall-old: rm $(gamesdir)/50_core/play-*.sh rmdir -p --ignore-fail-on-non-empty $(gamesdir)/50_core # 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 README.md0000644000000000000000000000403714471751340011045 0ustar rootroot# ./play.it core game scripts 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 repository provides game scripts that can be used with ./play.it to install a collection of DRM-free games. It is maintained by the same team than the ./play.it library and tools. ## Installation ### Distributions providing ./play.it core game scripts The packages for ./play.it in Linux distributions are not using the support for third-party games collections yet. See the instructions on the main ./play.it repository if you want to use your distribution-provided packages to install ./play.it including the core game scripts collection: [./play.it: Installer for DRM-free commercial games — Installation] [./play.it: Installer for DRM-free commercial games — Installation]: https://forge.dotslashplay.it/play.it/scripts#installation ### 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://forge.dotslashplay.it/play.it/games.git play.it-games.git cd play.it-games.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://forge.dotslashplay.it/play.it/scripts#usage ## 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 some of us understand French too. ### E-mail A contact e-mail for feedback can usually be found in each ./play.it game script. Open one of these files with any text editor to see the contact e-mail.