games/play-a-house-of-many-doors.sh0000700000000000000000000000362514471751340016205 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # A House of Many Doors # send your bug reports to bugs@dotslashplay.it ### script_version=20240531.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='a-house-of-many-doors' GAME_NAME='A House of Many Doors' ARCHIVE_BASE_0_NAME='A House of Many Doors.zip' ARCHIVE_BASE_0_MD5='bf3714af567c8e6290577af2d744dd0a' ARCHIVE_BASE_0_SIZE='463417' ARCHIVE_BASE_0_VERSION='1.2-itch.2017.03.30' ARCHIVE_BASE_0_URL='https://pixeltrickery.itch.io/a-house-of-many-doors' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' D3DX9_43.dll A House of Many Doors.exe HOMD.homd Game Data.ini options.ini' CONTENT_GAME_DATA_FILES=' Images audiogroup*.dat *.ogg penumbra_s.png data.win' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Local/A_House_of_Many_Doors' APP_MAIN_EXE='A House of Many Doors.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-akalabeth.sh0000755000000000000000000000364414471751340014103 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2018 Mopi set -o errexit ### # Akalabeth: World of Doom # send your bug reports to bugs@dotslashplay.it ### script_version=20250826.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='akalabeth' GAME_NAME='Akalabeth: World of Doom' ARCHIVE_BASE_0_NAME='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=' aklabeth.bas aklabeth.exe' CONTENT_DOC_MAIN_PATH='data/noarch/docs' CONTENT_DOC_MAIN_FILES=' *.pdf' APP_MAIN_EXE='aklabeth.exe' APP_MAIN_ICON='../support/icon.png' ## convmv is used to convert paths to lower case. REQUIREMENTS_LIST=' convmv' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ## Convert all paths to lowercase. tolower "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-anima-gate-of-memories.sh0000700000000000000000000000535314471751340016377 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Anima: Gate of Memories # send your bug reports to bugs@dotslashplay.it ### script_version=20250509.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='anima-gate-of-memories' GAME_NAME='Anima: Gate of Memories' ARCHIVE_BASE_1_NAME='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_NAME='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_ASSETS_FILES=" ${UNITY3D_NAME}_Data/*.assets ${UNITY3D_NAME}_Data/*.assets.resS" PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_ASSETS PKG_DATA' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_ASSETS PKG_DATA' PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 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" PKG_ASSETS_ID="${GAME_ID}-assets" PKG_ASSETS_DESCRIPTION='assets' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-arcanum.sh0000755000000000000000000000714114471751340013611 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # Arcanum: Of Steamworks and Magick Obscura # send your bug reports to bugs@dotslashplay.it ### script_version=20251118.7 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='arcanum' GAME_NAME='Arcanum: Of Steamworks and Magick Obscura' ARCHIVE_BASE_3_NAME='setup_arcanum_-_of_steamworks_and_magick_obscura_1.0.7.4_ddrawfix_(77721).exe' ARCHIVE_BASE_3_MD5='7a00ac83478518ae287e4f532f5c84ab' ARCHIVE_BASE_3_TYPE='innosetup' ARCHIVE_BASE_3_SIZE='1177294' ARCHIVE_BASE_3_VERSION='1.0.7.4-gog77721' ARCHIVE_BASE_3_URL='https://www.gog.com/game/arcanum_of_steamworks_and_magick_obscura' ARCHIVE_BASE_2_NAME='setup_arcanum_-_of_steamworks_and_magick_obscura_1.0.7.4_hotfix_(24155).exe' ARCHIVE_BASE_2_MD5='6d14d07f7cc8c9823cba5322cf2336f4' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_SIZE='1200000' ARCHIVE_BASE_2_VERSION='1.0.7.4-gog24155' ARCHIVE_BASE_1_NAME='setup_arcanum_-_of_steamworks_and_magick_obscura_1.0.7.4_(19476).exe' ARCHIVE_BASE_1_MD5='298a3315baebf40f3cc6cee4acae9947' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='1200000' ARCHIVE_BASE_1_VERSION='1.0.7.4-gog19476' ARCHIVE_BASE_0_NAME='setup_arcanum_2.0.0.15.exe' ARCHIVE_BASE_0_MD5='c09523c61edd18abb97da97463e07a88' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1200000' ARCHIVE_BASE_0_VERSION='1.0.7.4-gog2.0.0.15' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' ## arcanum.exe requirements CONTENT_LIBS_BIN_FILES=' binkw32.dll mss32.dll' CONTENT_GAME_BIN_FILES=' sierraup.cfg arcanum.exe sierra.inf *.asi' CONTENT_GAME_DATA_FILES=' data modules *.dat' CONTENT_DOC_DATA_FILES=' documents eula.doc customer_support.htm manual.pdf eula.txt readme.txt version.txt' CONTENT_DOC0_DATA_PATH='__support/app' CONTENT_DOC0_DATA_FILES=' eula.*' USER_PERSISTENT_DIRECTORIES=' data modules/arcanum/maps modules/arcanum/saves' USER_PERSISTENT_FILES=' *.cfg' ## Without a virtual desktop, both movies and gameplay suffer from graphical corruption. ## (WINE 10.0) WINE_VIRTUAL_DESKTOP='800x600' APP_MAIN_EXE='arcanum.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # In some archives, the game binary is compressed using UPX, REQUIREMENTS_LIST=' upx' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Decompress UPX-packed game binary. binary_file="${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/$(application_exe 'APP_MAIN')" if upx -t -qqq "$binary_file"; then upx -d -qqq "$binary_file" fi # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. ## Install shipped libraries. wineprefix_init_custom() { cat <<- EOF # Install shipped libraries. ln --force --symbolic $(path_libraries)/* "\${PATH_PREFIX}" EOF } launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-asura.sh0000700000000000000000000000440614471751340013265 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Asura # send your bug reports to bugs@dotslashplay.it ### script_version=20250425.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='asura' GAME_NAME='Asura' ARCHIVE_BASE_0_NAME='asura_en_29046_16209.sh' ARCHIVE_BASE_0_MD5='cbfe1067fdf0cfe3e8361d08df55787c' ARCHIVE_BASE_0_SIZE='1100000' ARCHIVE_BASE_0_VERSION='29046-gog16209' ARCHIVE_BASE_0_URL='https://www.gog.com/game/asura' UNITY3D_NAME='AsuraVengeance' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-baldurs-gate-3.sh0000700000000000000000000023645014471751340014672 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2025 Christian Stalp set -o errexit ### # Baldur's Gate 3 # send your bug reports to bugs@dotslashplay.it ### script_version=20250616.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='baldurs-gate-3' GAME_NAME='Baldurʼs Gate Ⅲ' ARCHIVE_BASE_PATCH8_2_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6848561_-_patch_patch8_hotfix3_(64bit)_(82168).exe' ARCHIVE_BASE_PATCH8_2_MD5='11560af8d52ef9e14691005ab22bb514' ARCHIVE_BASE_PATCH8_2_TYPE='innosetup' ARCHIVE_BASE_PATCH8_2_PART1_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6848561_-_patch_patch8_hotfix3_(64bit)_(82168)-1.bin' ARCHIVE_BASE_PATCH8_2_PART1_MD5='886a70664272c85185b71275dd22534f' ARCHIVE_BASE_PATCH8_2_PART2_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6848561_-_patch_patch8_hotfix3_(64bit)_(82168)-2.bin' ARCHIVE_BASE_PATCH8_2_PART2_MD5='b0fa66b07e73df1ae2fe4852fb0d7a52' ARCHIVE_BASE_PATCH8_2_PART3_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6848561_-_patch_patch8_hotfix3_(64bit)_(82168)-3.bin' ARCHIVE_BASE_PATCH8_2_PART3_MD5='d78d9ce3e9dd8085b85ccefd3af9cc16' ARCHIVE_BASE_PATCH8_2_PART4_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6848561_-_patch_patch8_hotfix3_(64bit)_(82168)-4.bin' ARCHIVE_BASE_PATCH8_2_PART4_MD5='6f66ea775bdf984bec07e53bd2ef7134' ARCHIVE_BASE_PATCH8_2_PART5_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6848561_-_patch_patch8_hotfix3_(64bit)_(82168)-5.bin' ARCHIVE_BASE_PATCH8_2_PART5_MD5='b9129de228d0afbcd4e56420b0de4bfe' ARCHIVE_BASE_PATCH8_2_PART6_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6848561_-_patch_patch8_hotfix3_(64bit)_(82168)-6.bin' ARCHIVE_BASE_PATCH8_2_PART6_MD5='2151a76c67865e67b70fb922f8365186' ARCHIVE_BASE_PATCH8_2_PART7_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6848561_-_patch_patch8_hotfix3_(64bit)_(82168)-7.bin' ARCHIVE_BASE_PATCH8_2_PART7_MD5='39bfc492c1feb3dfeeb72ae0b772ff38' ARCHIVE_BASE_PATCH8_2_PART8_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6848561_-_patch_patch8_hotfix3_(64bit)_(82168)-8.bin' ARCHIVE_BASE_PATCH8_2_PART8_MD5='86c12eda248a536751add38b96d02de9' ARCHIVE_BASE_PATCH8_2_PART9_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6848561_-_patch_patch8_hotfix3_(64bit)_(82168)-9.bin' ARCHIVE_BASE_PATCH8_2_PART9_MD5='7f62b01a94242c5db2afd243f60e2e88' ARCHIVE_BASE_PATCH8_2_PART10_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6848561_-_patch_patch8_hotfix3_(64bit)_(82168)-10.bin' ARCHIVE_BASE_PATCH8_2_PART10_MD5='bbdf4175ff07be1efafdf3e73075f087' ARCHIVE_BASE_PATCH8_2_PART11_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6848561_-_patch_patch8_hotfix3_(64bit)_(82168)-11.bin' ARCHIVE_BASE_PATCH8_2_PART11_MD5='6552d6e137c9062a91c129201aed7326' ARCHIVE_BASE_PATCH8_2_PART12_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6848561_-_patch_patch8_hotfix3_(64bit)_(82168)-12.bin' ARCHIVE_BASE_PATCH8_2_PART12_MD5='896ecb909803cb3de08f83ac6eeb9a8e' ARCHIVE_BASE_PATCH8_2_PART13_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6848561_-_patch_patch8_hotfix3_(64bit)_(82168)-13.bin' ARCHIVE_BASE_PATCH8_2_PART13_MD5='070c8e06a2ad8ac171bab660b9119397' ARCHIVE_BASE_PATCH8_2_PART14_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6848561_-_patch_patch8_hotfix3_(64bit)_(82168)-14.bin' ARCHIVE_BASE_PATCH8_2_PART14_MD5='2d206e61d293fc09610ac6b80dff196a' ARCHIVE_BASE_PATCH8_2_PART15_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6848561_-_patch_patch8_hotfix3_(64bit)_(82168)-15.bin' ARCHIVE_BASE_PATCH8_2_PART15_MD5='b93a61010b7a763b5288cfd8e71d8c0a' ARCHIVE_BASE_PATCH8_2_PART16_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6848561_-_patch_patch8_hotfix3_(64bit)_(82168)-16.bin' ARCHIVE_BASE_PATCH8_2_PART16_MD5='c9c2e6910244b10d9554f601e734b7c9' ARCHIVE_BASE_PATCH8_2_PART17_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6848561_-_patch_patch8_hotfix3_(64bit)_(82168)-17.bin' ARCHIVE_BASE_PATCH8_2_PART17_MD5='7de8b0144275b0f6a0ceda83d92e8126' ARCHIVE_BASE_PATCH8_2_PART18_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6848561_-_patch_patch8_hotfix3_(64bit)_(82168)-18.bin' ARCHIVE_BASE_PATCH8_2_PART18_MD5='94f977747745c45f9fa390ffc332fea1' ARCHIVE_BASE_PATCH8_2_PART19_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6848561_-_patch_patch8_hotfix3_(64bit)_(82168)-19.bin' ARCHIVE_BASE_PATCH8_2_PART19_MD5='e3a39b31dd8665ed8af6a1d2a38100c5' ARCHIVE_BASE_PATCH8_2_PART20_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6848561_-_patch_patch8_hotfix3_(64bit)_(82168)-20.bin' ARCHIVE_BASE_PATCH8_2_PART20_MD5='54f545df48ebe7ddd8c9289d499fcad1' ARCHIVE_BASE_PATCH8_2_PART21_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6848561_-_patch_patch8_hotfix3_(64bit)_(82168)-21.bin' ARCHIVE_BASE_PATCH8_2_PART21_MD5='9d0717aab8b4d0e850d20b3372ae21eb' ARCHIVE_BASE_PATCH8_2_PART22_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6848561_-_patch_patch8_hotfix3_(64bit)_(82168)-22.bin' ARCHIVE_BASE_PATCH8_2_PART22_MD5='adf0ba691f737d3ce3c506bc8a328847' ARCHIVE_BASE_PATCH8_2_PART23_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6848561_-_patch_patch8_hotfix3_(64bit)_(82168)-23.bin' ARCHIVE_BASE_PATCH8_2_PART23_MD5='e3df09af27d7d226854c49ea2920c611' ARCHIVE_BASE_PATCH8_2_PART24_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6848561_-_patch_patch8_hotfix3_(64bit)_(82168)-24.bin' ARCHIVE_BASE_PATCH8_2_PART24_MD5='46662dbc81a543c7454870582c4d0ed2' ARCHIVE_BASE_PATCH8_2_PART25_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6848561_-_patch_patch8_hotfix3_(64bit)_(82168)-25.bin' ARCHIVE_BASE_PATCH8_2_PART25_MD5='da3b5bb8a2dcb2e7a91ffd2a4646ae7a' ARCHIVE_BASE_PATCH8_2_PART26_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6848561_-_patch_patch8_hotfix3_(64bit)_(82168)-26.bin' ARCHIVE_BASE_PATCH8_2_PART26_MD5='254ad9f2b458a6bfc9d7014ffab06672' ARCHIVE_BASE_PATCH8_2_PART27_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6848561_-_patch_patch8_hotfix3_(64bit)_(82168)-27.bin' ARCHIVE_BASE_PATCH8_2_PART27_MD5='822856e426a34671ef1534e9a617d948' ARCHIVE_BASE_PATCH8_2_PART28_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6848561_-_patch_patch8_hotfix3_(64bit)_(82168)-28.bin' ARCHIVE_BASE_PATCH8_2_PART28_MD5='2d3d186d758483274eea8e7911975ffc' ARCHIVE_BASE_PATCH8_2_PART29_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6848561_-_patch_patch8_hotfix3_(64bit)_(82168)-29.bin' ARCHIVE_BASE_PATCH8_2_PART29_MD5='6a3dfb17da8f9509ce79fab1bb2d5518' ARCHIVE_BASE_PATCH8_2_PART30_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6848561_-_patch_patch8_hotfix3_(64bit)_(82168)-30.bin' ARCHIVE_BASE_PATCH8_2_PART30_MD5='2609de707253770e070d6f856c949efa' ARCHIVE_BASE_PATCH8_2_PART31_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6848561_-_patch_patch8_hotfix3_(64bit)_(82168)-31.bin' ARCHIVE_BASE_PATCH8_2_PART31_MD5='7c72e6936f88dc6755b306cc04282c01' ARCHIVE_BASE_PATCH8_2_PART32_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6848561_-_patch_patch8_hotfix3_(64bit)_(82168)-32.bin' ARCHIVE_BASE_PATCH8_2_PART32_MD5='b992d8020df4709b63b8c4ec5773faf6' ARCHIVE_BASE_PATCH8_2_SIZE='152456071' ARCHIVE_BASE_PATCH8_2_VERSION='4.1.1.6848561-gog82168' ARCHIVE_BASE_PATCH8_2_URL='https://www.gog.com/game/baldurs_gate_iii' ARCHIVE_BASE_PATCH8_1_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6805605_-_patch_patch8_hotfix1_(64bit)_(81757).exe' ARCHIVE_BASE_PATCH8_1_MD5='27bb31261705ebdd12ee8d0c890ba98e' ARCHIVE_BASE_PATCH8_1_TYPE='innosetup' ARCHIVE_BASE_PATCH8_1_PART1_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6805605_-_patch_patch8_hotfix1_(64bit)_(81757)-1.bin' ARCHIVE_BASE_PATCH8_1_PART1_MD5='78b1da474c4686448c9b1cf3c9d7cda2' ARCHIVE_BASE_PATCH8_1_PART2_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6805605_-_patch_patch8_hotfix1_(64bit)_(81757)-2.bin' ARCHIVE_BASE_PATCH8_1_PART2_MD5='42ac5a9b7888731f037874efdd4dd430' ARCHIVE_BASE_PATCH8_1_PART3_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6805605_-_patch_patch8_hotfix1_(64bit)_(81757)-3.bin' ARCHIVE_BASE_PATCH8_1_PART3_MD5='cd7c3ed52cadc500e5705dd3e0dde26a' ARCHIVE_BASE_PATCH8_1_PART4_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6805605_-_patch_patch8_hotfix1_(64bit)_(81757)-4.bin' ARCHIVE_BASE_PATCH8_1_PART4_MD5='bedd37f45d1f61c50ff7ce96c25ebfe5' ARCHIVE_BASE_PATCH8_1_PART5_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6805605_-_patch_patch8_hotfix1_(64bit)_(81757)-5.bin' ARCHIVE_BASE_PATCH8_1_PART5_MD5='ca601cfc8cbf1aaabd7c75707bc1f37c' ARCHIVE_BASE_PATCH8_1_PART6_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6805605_-_patch_patch8_hotfix1_(64bit)_(81757)-6.bin' ARCHIVE_BASE_PATCH8_1_PART6_MD5='eb8b82e6cebecbcace2423a6baf6c953' ARCHIVE_BASE_PATCH8_1_PART7_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6805605_-_patch_patch8_hotfix1_(64bit)_(81757)-7.bin' ARCHIVE_BASE_PATCH8_1_PART7_MD5='c13aa46e2e1a923c331ee8ebb0edc3d8' ARCHIVE_BASE_PATCH8_1_PART8_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6805605_-_patch_patch8_hotfix1_(64bit)_(81757)-8.bin' ARCHIVE_BASE_PATCH8_1_PART8_MD5='dc7d9f422b6224b70e410e4dd6106e37' ARCHIVE_BASE_PATCH8_1_PART9_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6805605_-_patch_patch8_hotfix1_(64bit)_(81757)-9.bin' ARCHIVE_BASE_PATCH8_1_PART9_MD5='2fa28ade514946f8e1a0ce041573d018' ARCHIVE_BASE_PATCH8_1_PART10_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6805605_-_patch_patch8_hotfix1_(64bit)_(81757)-10.bin' ARCHIVE_BASE_PATCH8_1_PART10_MD5='66e2d8b372db72f7d44c5cfea05a2d99' ARCHIVE_BASE_PATCH8_1_PART11_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6805605_-_patch_patch8_hotfix1_(64bit)_(81757)-11.bin' ARCHIVE_BASE_PATCH8_1_PART11_MD5='38e9b907f12b267425c71e7b3e4edcfa' ARCHIVE_BASE_PATCH8_1_PART12_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6805605_-_patch_patch8_hotfix1_(64bit)_(81757)-12.bin' ARCHIVE_BASE_PATCH8_1_PART12_MD5='02e033fb490622fd22312af2e44737bb' ARCHIVE_BASE_PATCH8_1_PART13_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6805605_-_patch_patch8_hotfix1_(64bit)_(81757)-13.bin' ARCHIVE_BASE_PATCH8_1_PART13_MD5='9325aba404d72a1f107cb7f839d614c7' ARCHIVE_BASE_PATCH8_1_PART14_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6805605_-_patch_patch8_hotfix1_(64bit)_(81757)-14.bin' ARCHIVE_BASE_PATCH8_1_PART14_MD5='920749a03f2c8a34d73e05642ea25631' ARCHIVE_BASE_PATCH8_1_PART15_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6805605_-_patch_patch8_hotfix1_(64bit)_(81757)-15.bin' ARCHIVE_BASE_PATCH8_1_PART15_MD5='6c98be358adb6e095047c34f24e7acac' ARCHIVE_BASE_PATCH8_1_PART16_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6805605_-_patch_patch8_hotfix1_(64bit)_(81757)-16.bin' ARCHIVE_BASE_PATCH8_1_PART16_MD5='a9828e864cff7007294ddc160cd118ca' ARCHIVE_BASE_PATCH8_1_PART17_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6805605_-_patch_patch8_hotfix1_(64bit)_(81757)-17.bin' ARCHIVE_BASE_PATCH8_1_PART17_MD5='0aa4fa5620908768dd6f06efc03c7fb6' ARCHIVE_BASE_PATCH8_1_PART18_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6805605_-_patch_patch8_hotfix1_(64bit)_(81757)-18.bin' ARCHIVE_BASE_PATCH8_1_PART18_MD5='eecaf035bc10d45ca64971abcae63d00' ARCHIVE_BASE_PATCH8_1_PART19_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6805605_-_patch_patch8_hotfix1_(64bit)_(81757)-19.bin' ARCHIVE_BASE_PATCH8_1_PART19_MD5='d344d5f6da1839b1537080af308ecd24' ARCHIVE_BASE_PATCH8_1_PART20_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6805605_-_patch_patch8_hotfix1_(64bit)_(81757)-20.bin' ARCHIVE_BASE_PATCH8_1_PART20_MD5='7273a61172e2432caef3a519f7c00eb7' ARCHIVE_BASE_PATCH8_1_PART21_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6805605_-_patch_patch8_hotfix1_(64bit)_(81757)-21.bin' ARCHIVE_BASE_PATCH8_1_PART21_MD5='b09e0a4d0cb2ac609e7824cfebab9fe9' ARCHIVE_BASE_PATCH8_1_PART22_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6805605_-_patch_patch8_hotfix1_(64bit)_(81757)-22.bin' ARCHIVE_BASE_PATCH8_1_PART22_MD5='5ebf64d949a2d27376403a29d9968bd8' ARCHIVE_BASE_PATCH8_1_PART23_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6805605_-_patch_patch8_hotfix1_(64bit)_(81757)-23.bin' ARCHIVE_BASE_PATCH8_1_PART23_MD5='2c65662445a753902e384b0d79ba3f39' ARCHIVE_BASE_PATCH8_1_PART24_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6805605_-_patch_patch8_hotfix1_(64bit)_(81757)-24.bin' ARCHIVE_BASE_PATCH8_1_PART24_MD5='64cba3abc9c088ec5789d1213ec31f0e' ARCHIVE_BASE_PATCH8_1_PART25_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6805605_-_patch_patch8_hotfix1_(64bit)_(81757)-25.bin' ARCHIVE_BASE_PATCH8_1_PART25_MD5='4c95eed0e761ad8463303bbe285fff69' ARCHIVE_BASE_PATCH8_1_PART26_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6805605_-_patch_patch8_hotfix1_(64bit)_(81757)-26.bin' ARCHIVE_BASE_PATCH8_1_PART26_MD5='e5ea40b1950bd3754ac7194ae8d5b43f' ARCHIVE_BASE_PATCH8_1_PART27_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6805605_-_patch_patch8_hotfix1_(64bit)_(81757)-27.bin' ARCHIVE_BASE_PATCH8_1_PART27_MD5='8783defea6803d35b3cc13a9aaec7150' ARCHIVE_BASE_PATCH8_1_PART28_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6805605_-_patch_patch8_hotfix1_(64bit)_(81757)-28.bin' ARCHIVE_BASE_PATCH8_1_PART28_MD5='dfe99b4b6a03cacaf1194e0f120265b4' ARCHIVE_BASE_PATCH8_1_PART29_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6805605_-_patch_patch8_hotfix1_(64bit)_(81757)-29.bin' ARCHIVE_BASE_PATCH8_1_PART29_MD5='096e6e04edbf83e2500422963d68044f' ARCHIVE_BASE_PATCH8_1_PART30_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6805605_-_patch_patch8_hotfix1_(64bit)_(81757)-30.bin' ARCHIVE_BASE_PATCH8_1_PART30_MD5='58d4f91743ec887eb013f190ecb0c7a3' ARCHIVE_BASE_PATCH8_1_PART31_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6805605_-_patch_patch8_hotfix1_(64bit)_(81757)-31.bin' ARCHIVE_BASE_PATCH8_1_PART31_MD5='373d53e2703748138b6f38e44602f672' ARCHIVE_BASE_PATCH8_1_PART32_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6805605_-_patch_patch8_hotfix1_(64bit)_(81757)-32.bin' ARCHIVE_BASE_PATCH8_1_PART32_MD5='0dd1bc9ea3aed58a32b4328705b19cdc' ARCHIVE_BASE_PATCH8_1_SIZE='152165936' ARCHIVE_BASE_PATCH8_1_VERSION='4.1.1.6805605-gog81757' ARCHIVE_BASE_PATCH8_0_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6758295_(64bit)_(81102).exe' ARCHIVE_BASE_PATCH8_0_MD5='42ff176fcde947ad3f93f48a856cb065' ARCHIVE_BASE_PATCH8_0_TYPE='innosetup' ARCHIVE_BASE_PATCH8_0_PART1_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6758295_(64bit)_(81102)-1.bin' ARCHIVE_BASE_PATCH8_0_PART1_MD5='f66fe6c024a5cef9380b418dea4affa9' ARCHIVE_BASE_PATCH8_0_PART2_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6758295_(64bit)_(81102)-2.bin' ARCHIVE_BASE_PATCH8_0_PART2_MD5='7789c578aaaba3b7404c2f8c8629b016' ARCHIVE_BASE_PATCH8_0_PART3_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6758295_(64bit)_(81102)-3.bin' ARCHIVE_BASE_PATCH8_0_PART3_MD5='1f4e83be632f7b433c2611e11d5429ec' ARCHIVE_BASE_PATCH8_0_PART4_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6758295_(64bit)_(81102)-4.bin' ARCHIVE_BASE_PATCH8_0_PART4_MD5='f7ffb973042ddddd5f84434708ee6ab6' ARCHIVE_BASE_PATCH8_0_PART5_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6758295_(64bit)_(81102)-5.bin' ARCHIVE_BASE_PATCH8_0_PART5_MD5='0f25b0e95f1d5fb320696b2b6b475f3b' ARCHIVE_BASE_PATCH8_0_PART6_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6758295_(64bit)_(81102)-6.bin' ARCHIVE_BASE_PATCH8_0_PART6_MD5='b345b733fb71a243bf6e047ce23c30f6' ARCHIVE_BASE_PATCH8_0_PART7_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6758295_(64bit)_(81102)-7.bin' ARCHIVE_BASE_PATCH8_0_PART7_MD5='75d54a2f35d042cd390a1ae04d64ee4b' ARCHIVE_BASE_PATCH8_0_PART8_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6758295_(64bit)_(81102)-8.bin' ARCHIVE_BASE_PATCH8_0_PART8_MD5='a343f421467b67f175cf319c6432cbd5' ARCHIVE_BASE_PATCH8_0_PART9_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6758295_(64bit)_(81102)-9.bin' ARCHIVE_BASE_PATCH8_0_PART9_MD5='9a43344a0cc0e6f2b52c7423977ecfc7' ARCHIVE_BASE_PATCH8_0_PART10_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6758295_(64bit)_(81102)-10.bin' ARCHIVE_BASE_PATCH8_0_PART10_MD5='c10dc228be312439f3559dedb1eb070b' ARCHIVE_BASE_PATCH8_0_PART11_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6758295_(64bit)_(81102)-11.bin' ARCHIVE_BASE_PATCH8_0_PART11_MD5='0c0be09e1b5cdd1e8598603a2bf89358' ARCHIVE_BASE_PATCH8_0_PART12_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6758295_(64bit)_(81102)-12.bin' ARCHIVE_BASE_PATCH8_0_PART12_MD5='b4f9e9c569623977582e86d40222607b' ARCHIVE_BASE_PATCH8_0_PART13_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6758295_(64bit)_(81102)-13.bin' ARCHIVE_BASE_PATCH8_0_PART13_MD5='8b2a70d5d3c678127e7fa2447754d2b5' ARCHIVE_BASE_PATCH8_0_PART14_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6758295_(64bit)_(81102)-14.bin' ARCHIVE_BASE_PATCH8_0_PART14_MD5='e0ed1e068ccd9dd783a6be10fa18eba0' ARCHIVE_BASE_PATCH8_0_PART15_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6758295_(64bit)_(81102)-15.bin' ARCHIVE_BASE_PATCH8_0_PART15_MD5='8f0bca5090ebda3438b65693e1aab9ec' ARCHIVE_BASE_PATCH8_0_PART16_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6758295_(64bit)_(81102)-16.bin' ARCHIVE_BASE_PATCH8_0_PART16_MD5='031de42e76ad136ddb4fce0aa0388180' ARCHIVE_BASE_PATCH8_0_PART17_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6758295_(64bit)_(81102)-17.bin' ARCHIVE_BASE_PATCH8_0_PART17_MD5='0a82953a44bff3c6df14eff954044fb2' ARCHIVE_BASE_PATCH8_0_PART18_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6758295_(64bit)_(81102)-18.bin' ARCHIVE_BASE_PATCH8_0_PART18_MD5='f2cb812e4bed1d1c0e28aa4f5e0e5c39' ARCHIVE_BASE_PATCH8_0_PART19_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6758295_(64bit)_(81102)-19.bin' ARCHIVE_BASE_PATCH8_0_PART19_MD5='0ebc01b50d29dc52efa962223d154ee8' ARCHIVE_BASE_PATCH8_0_PART20_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6758295_(64bit)_(81102)-20.bin' ARCHIVE_BASE_PATCH8_0_PART20_MD5='fc1f5b9bfeb262f981e59e27c6bdfb89' ARCHIVE_BASE_PATCH8_0_PART21_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6758295_(64bit)_(81102)-21.bin' ARCHIVE_BASE_PATCH8_0_PART21_MD5='c0d155296f54f54475deedd316b2299f' ARCHIVE_BASE_PATCH8_0_PART22_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6758295_(64bit)_(81102)-22.bin' ARCHIVE_BASE_PATCH8_0_PART22_MD5='b20d70d0bdd953b31681709c2f3e080c' ARCHIVE_BASE_PATCH8_0_PART23_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6758295_(64bit)_(81102)-23.bin' ARCHIVE_BASE_PATCH8_0_PART23_MD5='d7b3d94e5628028d8bd24d56d2d14962' ARCHIVE_BASE_PATCH8_0_PART24_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6758295_(64bit)_(81102)-24.bin' ARCHIVE_BASE_PATCH8_0_PART24_MD5='470a2e21b7c64f911fc2a67a1c65807e' ARCHIVE_BASE_PATCH8_0_PART25_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6758295_(64bit)_(81102)-25.bin' ARCHIVE_BASE_PATCH8_0_PART25_MD5='27dda849c6a1548a1033eb9c49576754' ARCHIVE_BASE_PATCH8_0_PART26_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6758295_(64bit)_(81102)-26.bin' ARCHIVE_BASE_PATCH8_0_PART26_MD5='694d517c2628555637d350b6b05eb3b2' ARCHIVE_BASE_PATCH8_0_PART27_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6758295_(64bit)_(81102)-27.bin' ARCHIVE_BASE_PATCH8_0_PART27_MD5='940a470417f70699e4748890ae1a16e8' ARCHIVE_BASE_PATCH8_0_PART28_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6758295_(64bit)_(81102)-28.bin' ARCHIVE_BASE_PATCH8_0_PART28_MD5='598edbecb4f36c20985d2c3ef88551e0' ARCHIVE_BASE_PATCH8_0_PART29_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6758295_(64bit)_(81102)-29.bin' ARCHIVE_BASE_PATCH8_0_PART29_MD5='e3ee87c7bc9c2b3ed8c996b5eb55b4ed' ARCHIVE_BASE_PATCH8_0_PART30_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6758295_(64bit)_(81102)-30.bin' ARCHIVE_BASE_PATCH8_0_PART30_MD5='0f534eb66be5d46449cc3eeb6b0642c2' ARCHIVE_BASE_PATCH8_0_PART31_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6758295_(64bit)_(81102)-31.bin' ARCHIVE_BASE_PATCH8_0_PART31_MD5='1e4f367ec5ada8c44826ecca55a6455c' ARCHIVE_BASE_PATCH8_0_PART32_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6758295_(64bit)_(81102)-32.bin' ARCHIVE_BASE_PATCH8_0_PART32_MD5='72704470db264922f32d686f0aa461c8' ARCHIVE_BASE_PATCH8_0_SIZE='151923438' ARCHIVE_BASE_PATCH8_0_VERSION='4.1.1.6758295-gog81102' ARCHIVE_BASE_PATCH7_1_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035).exe' ARCHIVE_BASE_PATCH7_1_MD5='e49b2196b60ef76d39ece0c3b45e2382' ARCHIVE_BASE_PATCH7_1_TYPE='innosetup' ARCHIVE_BASE_PATCH7_1_PART1_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-1.bin' ARCHIVE_BASE_PATCH7_1_PART1_MD5='ccc70b5170c78451af59378cd07f00c4' ARCHIVE_BASE_PATCH7_1_PART2_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-2.bin' ARCHIVE_BASE_PATCH7_1_PART2_MD5='8d63d6e0527ed25093764220cd6697d3' ARCHIVE_BASE_PATCH7_1_PART3_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-3.bin' ARCHIVE_BASE_PATCH7_1_PART3_MD5='dc4a7756f4043b38313a02d77a83fb30' ARCHIVE_BASE_PATCH7_1_PART4_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-4.bin' ARCHIVE_BASE_PATCH7_1_PART4_MD5='e7da48782fd10869b7c673bf6c440323' ARCHIVE_BASE_PATCH7_1_PART5_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-5.bin' ARCHIVE_BASE_PATCH7_1_PART5_MD5='4186fbc6f85228737c1e75e64e5979ea' ARCHIVE_BASE_PATCH7_1_PART6_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-6.bin' ARCHIVE_BASE_PATCH7_1_PART6_MD5='a95f13f119e8bfad2ba8e691f37a7b45' ARCHIVE_BASE_PATCH7_1_PART7_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-7.bin' ARCHIVE_BASE_PATCH7_1_PART7_MD5='dcdd32dac6148e95784d0967e76631ed' ARCHIVE_BASE_PATCH7_1_PART8_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-8.bin' ARCHIVE_BASE_PATCH7_1_PART8_MD5='94632f860d3bf729951cba45a2ef1b49' ARCHIVE_BASE_PATCH7_1_PART9_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-9.bin' ARCHIVE_BASE_PATCH7_1_PART9_MD5='50f09f05df55f31a51e4dbe3be2c98ca' ARCHIVE_BASE_PATCH7_1_PART10_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-10.bin' ARCHIVE_BASE_PATCH7_1_PART10_MD5='688a0e7731f738550cbfc411e446df59' ARCHIVE_BASE_PATCH7_1_PART11_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-11.bin' ARCHIVE_BASE_PATCH7_1_PART11_MD5='6462b7d0535b861cdd12910710283f79' ARCHIVE_BASE_PATCH7_1_PART12_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-12.bin' ARCHIVE_BASE_PATCH7_1_PART12_MD5='f3b88af77ca87095d0fbbbe35d4e149b' ARCHIVE_BASE_PATCH7_1_PART13_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-13.bin' ARCHIVE_BASE_PATCH7_1_PART13_MD5='83eb0050d03a53a11adcf489657099fc' ARCHIVE_BASE_PATCH7_1_PART14_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-14.bin' ARCHIVE_BASE_PATCH7_1_PART14_MD5='002cfe500a6b7d3a26676576505e33f5' ARCHIVE_BASE_PATCH7_1_PART15_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-15.bin' ARCHIVE_BASE_PATCH7_1_PART15_MD5='bb72f89ba73b9d8d9db50eccf6d3f37a' ARCHIVE_BASE_PATCH7_1_PART16_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-16.bin' ARCHIVE_BASE_PATCH7_1_PART16_MD5='f4812aa946048954fd3d906bdcf1ec63' ARCHIVE_BASE_PATCH7_1_PART17_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-17.bin' ARCHIVE_BASE_PATCH7_1_PART17_MD5='a07e72be29ddec457388ec75eb97a0ce' ARCHIVE_BASE_PATCH7_1_PART18_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-18.bin' ARCHIVE_BASE_PATCH7_1_PART18_MD5='80ff7ccb2ceb4467af66f1c24d6afc7a' ARCHIVE_BASE_PATCH7_1_PART19_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-19.bin' ARCHIVE_BASE_PATCH7_1_PART19_MD5='7715912bf7256332eb1ac29567fb43ff' ARCHIVE_BASE_PATCH7_1_PART20_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-20.bin' ARCHIVE_BASE_PATCH7_1_PART20_MD5='811ec163e7a378f3c745e4995c6d696e' ARCHIVE_BASE_PATCH7_1_PART21_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-21.bin' ARCHIVE_BASE_PATCH7_1_PART21_MD5='e8bb834f904b0c87f8122b21a2ab3c52' ARCHIVE_BASE_PATCH7_1_PART22_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-22.bin' ARCHIVE_BASE_PATCH7_1_PART22_MD5='0ed518e8074550ad482478a299854c7b' ARCHIVE_BASE_PATCH7_1_PART23_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-23.bin' ARCHIVE_BASE_PATCH7_1_PART23_MD5='b76e7aed77fe5a135672a39c15670226' ARCHIVE_BASE_PATCH7_1_PART24_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-24.bin' ARCHIVE_BASE_PATCH7_1_PART24_MD5='504f1a93c47448c708bbd98949b1da94' ARCHIVE_BASE_PATCH7_1_PART25_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-25.bin' ARCHIVE_BASE_PATCH7_1_PART25_MD5='a54f1c6dda05b074d12d85f927483352' ARCHIVE_BASE_PATCH7_1_PART26_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-26.bin' ARCHIVE_BASE_PATCH7_1_PART26_MD5='db09910df98ac5d48da3da401a4d48c0' ARCHIVE_BASE_PATCH7_1_PART27_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-27.bin' ARCHIVE_BASE_PATCH7_1_PART27_MD5='ecb67780a96b9813153cf9f242e06e06' ARCHIVE_BASE_PATCH7_1_PART28_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-28.bin' ARCHIVE_BASE_PATCH7_1_PART28_MD5='3985434483da3658f0d6af669ea0d498' ARCHIVE_BASE_PATCH7_1_PART29_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-29.bin' ARCHIVE_BASE_PATCH7_1_PART29_MD5='77e6fb2852c03ed51793f30ed8378d4b' ARCHIVE_BASE_PATCH7_1_PART30_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-30.bin' ARCHIVE_BASE_PATCH7_1_PART30_MD5='6b492781abf4ce82ada772247cdb7418' ARCHIVE_BASE_PATCH7_1_PART31_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-31.bin' ARCHIVE_BASE_PATCH7_1_PART31_MD5='ed85272a3d4d0c8546a79d5f84c7e87b' ARCHIVE_BASE_PATCH7_1_PART32_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-32.bin' ARCHIVE_BASE_PATCH7_1_PART32_MD5='72b4ebad04dce811414037e87743eb63' ARCHIVE_BASE_PATCH7_1_SIZE='151202043' ARCHIVE_BASE_PATCH7_1_VERSION='4.1.1.6072089-gog77035' ARCHIVE_BASE_PATCH6_1_NAME='setup_baldurs_gate_3_release_-_v4.1.1.5022896_-_patch_patch6_hotfix9__(64bit)_(72479).exe' ARCHIVE_BASE_PATCH6_1_MD5='a68f1a0edcf026a1095c20efe1fa6edc' ARCHIVE_BASE_PATCH6_1_TYPE='innosetup' ARCHIVE_BASE_PATCH6_1_PART1_NAME='setup_baldurs_gate_3_release_-_v4.1.1.5022896_-_patch_patch6_hotfix9__(64bit)_(72479)-1.bin' ARCHIVE_BASE_PATCH6_1_PART1_MD5='c479abb170e4741bf731d5c89cb985c5' ARCHIVE_BASE_PATCH6_1_PART2_NAME='setup_baldurs_gate_3_release_-_v4.1.1.5022896_-_patch_patch6_hotfix9__(64bit)_(72479)-2.bin' ARCHIVE_BASE_PATCH6_1_PART2_MD5='4d3c3d90c5b70abf10502b2eac7e7b91' ARCHIVE_BASE_PATCH6_1_PART3_NAME='setup_baldurs_gate_3_release_-_v4.1.1.5022896_-_patch_patch6_hotfix9__(64bit)_(72479)-3.bin' ARCHIVE_BASE_PATCH6_1_PART3_MD5='34e7830447cfe59b71a6d3cdc627d473' ARCHIVE_BASE_PATCH6_1_PART4_NAME='setup_baldurs_gate_3_release_-_v4.1.1.5022896_-_patch_patch6_hotfix9__(64bit)_(72479)-4.bin' ARCHIVE_BASE_PATCH6_1_PART4_MD5='7700f5bd163051ad3b544920267158a5' ARCHIVE_BASE_PATCH6_1_PART5_NAME='setup_baldurs_gate_3_release_-_v4.1.1.5022896_-_patch_patch6_hotfix9__(64bit)_(72479)-5.bin' ARCHIVE_BASE_PATCH6_1_PART5_MD5='f7e89a93a24a921c71ed7d9efdb2cc52' ARCHIVE_BASE_PATCH6_1_PART6_NAME='setup_baldurs_gate_3_release_-_v4.1.1.5022896_-_patch_patch6_hotfix9__(64bit)_(72479)-6.bin' ARCHIVE_BASE_PATCH6_1_PART6_MD5='cf6044ced2436c68fa644b16c43bd486' ARCHIVE_BASE_PATCH6_1_PART7_NAME='setup_baldurs_gate_3_release_-_v4.1.1.5022896_-_patch_patch6_hotfix9__(64bit)_(72479)-7.bin' ARCHIVE_BASE_PATCH6_1_PART7_MD5='91bb08a6576f56dc7eecdfc8475cbbea' ARCHIVE_BASE_PATCH6_1_PART8_NAME='setup_baldurs_gate_3_release_-_v4.1.1.5022896_-_patch_patch6_hotfix9__(64bit)_(72479)-8.bin' ARCHIVE_BASE_PATCH6_1_PART8_MD5='735d68133f1ad45d43b67a19bdcaf6b7' ARCHIVE_BASE_PATCH6_1_PART9_NAME='setup_baldurs_gate_3_release_-_v4.1.1.5022896_-_patch_patch6_hotfix9__(64bit)_(72479)-9.bin' ARCHIVE_BASE_PATCH6_1_PART9_MD5='76334ea7438e73cb4ff83f03b9aa4f0b' ARCHIVE_BASE_PATCH6_1_PART10_NAME='setup_baldurs_gate_3_release_-_v4.1.1.5022896_-_patch_patch6_hotfix9__(64bit)_(72479)-10.bin' ARCHIVE_BASE_PATCH6_1_PART10_MD5='d9ee57b1a0fa335c9ddbf8857cdf83b6' ARCHIVE_BASE_PATCH6_1_PART11_NAME='setup_baldurs_gate_3_release_-_v4.1.1.5022896_-_patch_patch6_hotfix9__(64bit)_(72479)-11.bin' ARCHIVE_BASE_PATCH6_1_PART11_MD5='eae123041bbf9f775b285da32ffa234c' ARCHIVE_BASE_PATCH6_1_PART12_NAME='setup_baldurs_gate_3_release_-_v4.1.1.5022896_-_patch_patch6_hotfix9__(64bit)_(72479)-12.bin' ARCHIVE_BASE_PATCH6_1_PART12_MD5='ccd6d28381f5e375aec2768714b8f825' ARCHIVE_BASE_PATCH6_1_PART13_NAME='setup_baldurs_gate_3_release_-_v4.1.1.5022896_-_patch_patch6_hotfix9__(64bit)_(72479)-13.bin' ARCHIVE_BASE_PATCH6_1_PART13_MD5='8042f5a7280456fe309dd7840c04125f' ARCHIVE_BASE_PATCH6_1_PART14_NAME='setup_baldurs_gate_3_release_-_v4.1.1.5022896_-_patch_patch6_hotfix9__(64bit)_(72479)-14.bin' ARCHIVE_BASE_PATCH6_1_PART14_MD5='71899991f13404154119dc4eb88ee68d' ARCHIVE_BASE_PATCH6_1_PART15_NAME='setup_baldurs_gate_3_release_-_v4.1.1.5022896_-_patch_patch6_hotfix9__(64bit)_(72479)-15.bin' ARCHIVE_BASE_PATCH6_1_PART15_MD5='23f96cb8a4c49d99935805a9b7c531e1' ARCHIVE_BASE_PATCH6_1_PART16_NAME='setup_baldurs_gate_3_release_-_v4.1.1.5022896_-_patch_patch6_hotfix9__(64bit)_(72479)-16.bin' ARCHIVE_BASE_PATCH6_1_PART16_MD5='2adbe0b025aacbd2a24d8f91caed65c6' ARCHIVE_BASE_PATCH6_1_PART17_NAME='setup_baldurs_gate_3_release_-_v4.1.1.5022896_-_patch_patch6_hotfix9__(64bit)_(72479)-17.bin' ARCHIVE_BASE_PATCH6_1_PART17_MD5='518e9ea117e9bab82e3ba3ff12ee99a3' ARCHIVE_BASE_PATCH6_1_PART18_NAME='setup_baldurs_gate_3_release_-_v4.1.1.5022896_-_patch_patch6_hotfix9__(64bit)_(72479)-18.bin' ARCHIVE_BASE_PATCH6_1_PART18_MD5='d1c1b477754b7f2661b0669c8b3eebd4' ARCHIVE_BASE_PATCH6_1_PART19_NAME='setup_baldurs_gate_3_release_-_v4.1.1.5022896_-_patch_patch6_hotfix9__(64bit)_(72479)-19.bin' ARCHIVE_BASE_PATCH6_1_PART19_MD5='0b93534901cbfb0c523c690181cc4bde' ARCHIVE_BASE_PATCH6_1_PART20_NAME='setup_baldurs_gate_3_release_-_v4.1.1.5022896_-_patch_patch6_hotfix9__(64bit)_(72479)-20.bin' ARCHIVE_BASE_PATCH6_1_PART20_MD5='d8efb4ef169d590c89f884c240a0bf72' ARCHIVE_BASE_PATCH6_1_PART21_NAME='setup_baldurs_gate_3_release_-_v4.1.1.5022896_-_patch_patch6_hotfix9__(64bit)_(72479)-21.bin' ARCHIVE_BASE_PATCH6_1_PART21_MD5='b5babfb43c75a5b919e497d7d54c86bd' ARCHIVE_BASE_PATCH6_1_PART22_NAME='setup_baldurs_gate_3_release_-_v4.1.1.5022896_-_patch_patch6_hotfix9__(64bit)_(72479)-22.bin' ARCHIVE_BASE_PATCH6_1_PART22_MD5='bb9419ce976980f86df35a21646da355' ARCHIVE_BASE_PATCH6_1_PART23_NAME='setup_baldurs_gate_3_release_-_v4.1.1.5022896_-_patch_patch6_hotfix9__(64bit)_(72479)-23.bin' ARCHIVE_BASE_PATCH6_1_PART23_MD5='a2cb3ae76774d36ce04346510dd019b0' ARCHIVE_BASE_PATCH6_1_PART24_NAME='setup_baldurs_gate_3_release_-_v4.1.1.5022896_-_patch_patch6_hotfix9__(64bit)_(72479)-24.bin' ARCHIVE_BASE_PATCH6_1_PART24_MD5='a33ab802e04f0c4d4f17f1e7e9e8b94a' ARCHIVE_BASE_PATCH6_1_PART25_NAME='setup_baldurs_gate_3_release_-_v4.1.1.5022896_-_patch_patch6_hotfix9__(64bit)_(72479)-25.bin' ARCHIVE_BASE_PATCH6_1_PART25_MD5='9bdfa763b6832aff6dc023a2d8d340c9' ARCHIVE_BASE_PATCH6_1_PART26_NAME='setup_baldurs_gate_3_release_-_v4.1.1.5022896_-_patch_patch6_hotfix9__(64bit)_(72479)-26.bin' ARCHIVE_BASE_PATCH6_1_PART26_MD5='c852917906a08488e823e60500cfc175' ARCHIVE_BASE_PATCH6_1_PART27_NAME='setup_baldurs_gate_3_release_-_v4.1.1.5022896_-_patch_patch6_hotfix9__(64bit)_(72479)-27.bin' ARCHIVE_BASE_PATCH6_1_PART27_MD5='608cf14bb3839e87e755683ee22059bb' ARCHIVE_BASE_PATCH6_1_PART28_NAME='setup_baldurs_gate_3_release_-_v4.1.1.5022896_-_patch_patch6_hotfix9__(64bit)_(72479)-28.bin' ARCHIVE_BASE_PATCH6_1_PART28_MD5='f5b16334779fbb662323966ed4735f61' ARCHIVE_BASE_PATCH6_1_PART29_NAME='setup_baldurs_gate_3_release_-_v4.1.1.5022896_-_patch_patch6_hotfix9__(64bit)_(72479)-29.bin' ARCHIVE_BASE_PATCH6_1_PART29_MD5='441e05f65ad6f0cb2642c29468302385' ARCHIVE_BASE_PATCH6_1_PART30_NAME='setup_baldurs_gate_3_release_-_v4.1.1.5022896_-_patch_patch6_hotfix9__(64bit)_(72479)-30.bin' ARCHIVE_BASE_PATCH6_1_PART30_MD5='5565eb0a62b83e3ab2eab663f1ad802e' ARCHIVE_BASE_PATCH6_1_PART31_NAME='setup_baldurs_gate_3_release_-_v4.1.1.5022896_-_patch_patch6_hotfix9__(64bit)_(72479)-31.bin' ARCHIVE_BASE_PATCH6_1_PART31_MD5='b73f8e36b290be55b5aec3ba5aaf197e' ARCHIVE_BASE_PATCH6_1_PART32_NAME='setup_baldurs_gate_3_release_-_v4.1.1.5022896_-_patch_patch6_hotfix9__(64bit)_(72479)-32.bin' ARCHIVE_BASE_PATCH6_1_PART32_MD5='181d4fc84ee71980b1dce7d04003f5bf' ARCHIVE_BASE_PATCH6_1_SIZE='149637909' ARCHIVE_BASE_PATCH6_1_VERSION='4.1.1.5022896-gog72479' ARCHIVE_BASE_PATCH5_1_NAME='setup_baldurs_gate_3_release_-_v4.1.1.4494476_-_patch_patch5_hotfix6__(64bit)_(70408).exe' ARCHIVE_BASE_PATCH5_1_MD5='41d296389ec755596846312c290188ba' ARCHIVE_BASE_PATCH5_1_TYPE='innosetup' ARCHIVE_BASE_PATCH5_1_PART1_NAME='setup_baldurs_gate_3_release_-_v4.1.1.4494476_-_patch_patch5_hotfix6__(64bit)_(70408)-1.bin' ARCHIVE_BASE_PATCH5_1_PART1_MD5='ebbff6fbb2a38f555a30fe8e5c1a8b31' ARCHIVE_BASE_PATCH5_1_PART2_NAME='setup_baldurs_gate_3_release_-_v4.1.1.4494476_-_patch_patch5_hotfix6__(64bit)_(70408)-2.bin' ARCHIVE_BASE_PATCH5_1_PART2_MD5='a6577500e4ae2df79027a3aab47180ce' ARCHIVE_BASE_PATCH5_1_PART3_NAME='setup_baldurs_gate_3_release_-_v4.1.1.4494476_-_patch_patch5_hotfix6__(64bit)_(70408)-3.bin' ARCHIVE_BASE_PATCH5_1_PART3_MD5='413949288793c7ef6e7576cb573e6561' ARCHIVE_BASE_PATCH5_1_PART4_NAME='setup_baldurs_gate_3_release_-_v4.1.1.4494476_-_patch_patch5_hotfix6__(64bit)_(70408)-4.bin' ARCHIVE_BASE_PATCH5_1_PART4_MD5='ba3b2132916fb1a9924668e9c121eacd' ARCHIVE_BASE_PATCH5_1_PART5_NAME='setup_baldurs_gate_3_release_-_v4.1.1.4494476_-_patch_patch5_hotfix6__(64bit)_(70408)-5.bin' ARCHIVE_BASE_PATCH5_1_PART5_MD5='2833f2573f0c231eace28e5d55cdf760' ARCHIVE_BASE_PATCH5_1_PART6_NAME='setup_baldurs_gate_3_release_-_v4.1.1.4494476_-_patch_patch5_hotfix6__(64bit)_(70408)-6.bin' ARCHIVE_BASE_PATCH5_1_PART6_MD5='a14412e73266f5284fe3512f8531d5d6' ARCHIVE_BASE_PATCH5_1_PART7_NAME='setup_baldurs_gate_3_release_-_v4.1.1.4494476_-_patch_patch5_hotfix6__(64bit)_(70408)-7.bin' ARCHIVE_BASE_PATCH5_1_PART7_MD5='598fb783c55f0e750ce0dc9ff33d4e91' ARCHIVE_BASE_PATCH5_1_PART8_NAME='setup_baldurs_gate_3_release_-_v4.1.1.4494476_-_patch_patch5_hotfix6__(64bit)_(70408)-8.bin' ARCHIVE_BASE_PATCH5_1_PART8_MD5='4f15395994841e57ab238a417ad19f76' ARCHIVE_BASE_PATCH5_1_PART9_NAME='setup_baldurs_gate_3_release_-_v4.1.1.4494476_-_patch_patch5_hotfix6__(64bit)_(70408)-9.bin' ARCHIVE_BASE_PATCH5_1_PART9_MD5='3e0aeed6e2f499b74889600415bbbee8' ARCHIVE_BASE_PATCH5_1_PART10_NAME='setup_baldurs_gate_3_release_-_v4.1.1.4494476_-_patch_patch5_hotfix6__(64bit)_(70408)-10.bin' ARCHIVE_BASE_PATCH5_1_PART10_MD5='bf3b28a6d1c8210cff15a0a49d4c3773' ARCHIVE_BASE_PATCH5_1_PART11_NAME='setup_baldurs_gate_3_release_-_v4.1.1.4494476_-_patch_patch5_hotfix6__(64bit)_(70408)-11.bin' ARCHIVE_BASE_PATCH5_1_PART11_MD5='fa4fd60332c20e30217197f58e4bbf1b' ARCHIVE_BASE_PATCH5_1_PART12_NAME='setup_baldurs_gate_3_release_-_v4.1.1.4494476_-_patch_patch5_hotfix6__(64bit)_(70408)-12.bin' ARCHIVE_BASE_PATCH5_1_PART12_MD5='d00c210e621ab8163a36ca5973d3b8af' ARCHIVE_BASE_PATCH5_1_PART13_NAME='setup_baldurs_gate_3_release_-_v4.1.1.4494476_-_patch_patch5_hotfix6__(64bit)_(70408)-13.bin' ARCHIVE_BASE_PATCH5_1_PART13_MD5='80208dd51f3b41543b34b8a08c611bd8' ARCHIVE_BASE_PATCH5_1_PART14_NAME='setup_baldurs_gate_3_release_-_v4.1.1.4494476_-_patch_patch5_hotfix6__(64bit)_(70408)-14.bin' ARCHIVE_BASE_PATCH5_1_PART14_MD5='130710e4e6c422769453b7949a783f85' ARCHIVE_BASE_PATCH5_1_PART15_NAME='setup_baldurs_gate_3_release_-_v4.1.1.4494476_-_patch_patch5_hotfix6__(64bit)_(70408)-15.bin' ARCHIVE_BASE_PATCH5_1_PART15_MD5='bfc6635ab6f90b5168f67b88d3f7b57a' ARCHIVE_BASE_PATCH5_1_PART16_NAME='setup_baldurs_gate_3_release_-_v4.1.1.4494476_-_patch_patch5_hotfix6__(64bit)_(70408)-16.bin' ARCHIVE_BASE_PATCH5_1_PART16_MD5='84f39956129ff4e43c5dbe61a316315a' ARCHIVE_BASE_PATCH5_1_PART17_NAME='setup_baldurs_gate_3_release_-_v4.1.1.4494476_-_patch_patch5_hotfix6__(64bit)_(70408)-17.bin' ARCHIVE_BASE_PATCH5_1_PART17_MD5='fb05f610719dfed7278af617d70093e0' ARCHIVE_BASE_PATCH5_1_PART18_NAME='setup_baldurs_gate_3_release_-_v4.1.1.4494476_-_patch_patch5_hotfix6__(64bit)_(70408)-18.bin' ARCHIVE_BASE_PATCH5_1_PART18_MD5='40495dfc26875491f29eadeabeb77308' ARCHIVE_BASE_PATCH5_1_PART19_NAME='setup_baldurs_gate_3_release_-_v4.1.1.4494476_-_patch_patch5_hotfix6__(64bit)_(70408)-19.bin' ARCHIVE_BASE_PATCH5_1_PART19_MD5='d428eecb383c1317570ef4f9663045c8' ARCHIVE_BASE_PATCH5_1_PART20_NAME='setup_baldurs_gate_3_release_-_v4.1.1.4494476_-_patch_patch5_hotfix6__(64bit)_(70408)-20.bin' ARCHIVE_BASE_PATCH5_1_PART20_MD5='cdb6f938deb3ce2bc122f9effcc489b7' ARCHIVE_BASE_PATCH5_1_PART21_NAME='setup_baldurs_gate_3_release_-_v4.1.1.4494476_-_patch_patch5_hotfix6__(64bit)_(70408)-21.bin' ARCHIVE_BASE_PATCH5_1_PART21_MD5='6cbcaa9b7c412231b592b436f4e5b77a' ARCHIVE_BASE_PATCH5_1_PART22_NAME='setup_baldurs_gate_3_release_-_v4.1.1.4494476_-_patch_patch5_hotfix6__(64bit)_(70408)-22.bin' ARCHIVE_BASE_PATCH5_1_PART22_MD5='a68accd6f697dc9c7542441ce4373c5f' ARCHIVE_BASE_PATCH5_1_PART23_NAME='setup_baldurs_gate_3_release_-_v4.1.1.4494476_-_patch_patch5_hotfix6__(64bit)_(70408)-23.bin' ARCHIVE_BASE_PATCH5_1_PART23_MD5='67045ba580bfe38320d046caebf82799' ARCHIVE_BASE_PATCH5_1_PART24_NAME='setup_baldurs_gate_3_release_-_v4.1.1.4494476_-_patch_patch5_hotfix6__(64bit)_(70408)-24.bin' ARCHIVE_BASE_PATCH5_1_PART24_MD5='77d5c61d647007d6c2ee522d82354c10' ARCHIVE_BASE_PATCH5_1_PART25_NAME='setup_baldurs_gate_3_release_-_v4.1.1.4494476_-_patch_patch5_hotfix6__(64bit)_(70408)-25.bin' ARCHIVE_BASE_PATCH5_1_PART25_MD5='17db3c1c0706d86d074bad776401dfae' ARCHIVE_BASE_PATCH5_1_PART26_NAME='setup_baldurs_gate_3_release_-_v4.1.1.4494476_-_patch_patch5_hotfix6__(64bit)_(70408)-26.bin' ARCHIVE_BASE_PATCH5_1_PART26_MD5='6dc6d4ef5c7b3c6fdef926c1dbb79abe' ARCHIVE_BASE_PATCH5_1_PART27_NAME='setup_baldurs_gate_3_release_-_v4.1.1.4494476_-_patch_patch5_hotfix6__(64bit)_(70408)-27.bin' ARCHIVE_BASE_PATCH5_1_PART27_MD5='15d16729ba8fd25eaf3fe95bcfd89863' ARCHIVE_BASE_PATCH5_1_PART28_NAME='setup_baldurs_gate_3_release_-_v4.1.1.4494476_-_patch_patch5_hotfix6__(64bit)_(70408)-28.bin' ARCHIVE_BASE_PATCH5_1_PART28_MD5='51458a5835f079f452fbb32e57fe29d3' ARCHIVE_BASE_PATCH5_1_PART29_NAME='setup_baldurs_gate_3_release_-_v4.1.1.4494476_-_patch_patch5_hotfix6__(64bit)_(70408)-29.bin' ARCHIVE_BASE_PATCH5_1_PART29_MD5='771fe718c64fa6bfd9ac57cba1c18d4e' ARCHIVE_BASE_PATCH5_1_PART30_NAME='setup_baldurs_gate_3_release_-_v4.1.1.4494476_-_patch_patch5_hotfix6__(64bit)_(70408)-30.bin' ARCHIVE_BASE_PATCH5_1_PART30_MD5='9d1e8c2dde7c7e8d7be9684a1d2936dc' ARCHIVE_BASE_PATCH5_1_SIZE='144316256' ARCHIVE_BASE_PATCH5_1_VERSION='4.1.1.4494476-gog70408' ARCHIVE_BASE_PATCH4_0_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3956130_-_patch_patch4_hotfix3__(64bit)_(68995).exe' ARCHIVE_BASE_PATCH4_0_MD5='ab6267432b272ff880127131e7b2f5f3' ARCHIVE_BASE_PATCH4_0_TYPE='innosetup' ARCHIVE_BASE_PATCH4_0_PART1_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3956130_-_patch_patch4_hotfix3__(64bit)_(68995)-1.bin' ARCHIVE_BASE_PATCH4_0_PART1_MD5='df12c48514a6e053123b993536984db1' ARCHIVE_BASE_PATCH4_0_PART2_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3956130_-_patch_patch4_hotfix3__(64bit)_(68995)-2.bin' ARCHIVE_BASE_PATCH4_0_PART2_MD5='7624eae52e3ba390cc451c92eb22971e' ARCHIVE_BASE_PATCH4_0_PART3_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3956130_-_patch_patch4_hotfix3__(64bit)_(68995)-3.bin' ARCHIVE_BASE_PATCH4_0_PART3_MD5='55926fedfbe8bfc55259f43e279506c2' ARCHIVE_BASE_PATCH4_0_PART4_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3956130_-_patch_patch4_hotfix3__(64bit)_(68995)-4.bin' ARCHIVE_BASE_PATCH4_0_PART4_MD5='6521b33ac90d7da85737fd789a035a4b' ARCHIVE_BASE_PATCH4_0_PART5_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3956130_-_patch_patch4_hotfix3__(64bit)_(68995)-5.bin' ARCHIVE_BASE_PATCH4_0_PART5_MD5='9cab7eb4d37f6970d7c75620604f6260' ARCHIVE_BASE_PATCH4_0_PART6_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3956130_-_patch_patch4_hotfix3__(64bit)_(68995)-6.bin' ARCHIVE_BASE_PATCH4_0_PART6_MD5='d6c465c93781fe3ff757c6c20a2ff373' ARCHIVE_BASE_PATCH4_0_PART7_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3956130_-_patch_patch4_hotfix3__(64bit)_(68995)-7.bin' ARCHIVE_BASE_PATCH4_0_PART7_MD5='75a4703c4ab50e922f35c37dc0b2f91c' ARCHIVE_BASE_PATCH4_0_PART8_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3956130_-_patch_patch4_hotfix3__(64bit)_(68995)-8.bin' ARCHIVE_BASE_PATCH4_0_PART8_MD5='2abf5bf419d07af67fa89ab9cf782401' ARCHIVE_BASE_PATCH4_0_PART9_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3956130_-_patch_patch4_hotfix3__(64bit)_(68995)-9.bin' ARCHIVE_BASE_PATCH4_0_PART9_MD5='156c9711f63b8db03f31e41fd22e59af' ARCHIVE_BASE_PATCH4_0_PART10_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3956130_-_patch_patch4_hotfix3__(64bit)_(68995)-10.bin' ARCHIVE_BASE_PATCH4_0_PART10_MD5='32430ec83c9b780c637c1d6b2de9ce68' ARCHIVE_BASE_PATCH4_0_PART11_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3956130_-_patch_patch4_hotfix3__(64bit)_(68995)-11.bin' ARCHIVE_BASE_PATCH4_0_PART11_MD5='d0ae7f626c2f163f7192f2e6d10f09db' ARCHIVE_BASE_PATCH4_0_PART12_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3956130_-_patch_patch4_hotfix3__(64bit)_(68995)-12.bin' ARCHIVE_BASE_PATCH4_0_PART12_MD5='5378372fae1cf46669db85f60091e77c' ARCHIVE_BASE_PATCH4_0_PART13_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3956130_-_patch_patch4_hotfix3__(64bit)_(68995)-13.bin' ARCHIVE_BASE_PATCH4_0_PART13_MD5='f0e0d239c05867ceddd2f630794db82f' ARCHIVE_BASE_PATCH4_0_PART14_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3956130_-_patch_patch4_hotfix3__(64bit)_(68995)-14.bin' ARCHIVE_BASE_PATCH4_0_PART14_MD5='49324f1d65939e8e41ea5530f369d5cd' ARCHIVE_BASE_PATCH4_0_PART15_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3956130_-_patch_patch4_hotfix3__(64bit)_(68995)-15.bin' ARCHIVE_BASE_PATCH4_0_PART15_MD5='a6547b00be69663430c8c72bfa4a9f85' ARCHIVE_BASE_PATCH4_0_PART16_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3956130_-_patch_patch4_hotfix3__(64bit)_(68995)-16.bin' ARCHIVE_BASE_PATCH4_0_PART16_MD5='c285e952585a260478c2d31f29448745' ARCHIVE_BASE_PATCH4_0_PART17_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3956130_-_patch_patch4_hotfix3__(64bit)_(68995)-17.bin' ARCHIVE_BASE_PATCH4_0_PART17_MD5='d6fb24e9f9781f4f72c5435634ac6ac7' ARCHIVE_BASE_PATCH4_0_PART18_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3956130_-_patch_patch4_hotfix3__(64bit)_(68995)-18.bin' ARCHIVE_BASE_PATCH4_0_PART18_MD5='c05f0ef6d178843fb0da80753752b5b5' ARCHIVE_BASE_PATCH4_0_PART19_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3956130_-_patch_patch4_hotfix3__(64bit)_(68995)-19.bin' ARCHIVE_BASE_PATCH4_0_PART19_MD5='626615ae36a91d6f06b66f82090725e7' ARCHIVE_BASE_PATCH4_0_PART20_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3956130_-_patch_patch4_hotfix3__(64bit)_(68995)-20.bin' ARCHIVE_BASE_PATCH4_0_PART20_MD5='e41563ed5af9e65893968dc4f3a3a11f' ARCHIVE_BASE_PATCH4_0_PART21_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3956130_-_patch_patch4_hotfix3__(64bit)_(68995)-21.bin' ARCHIVE_BASE_PATCH4_0_PART21_MD5='f8c9ca01fa54f40c6720907a6754497c' ARCHIVE_BASE_PATCH4_0_PART22_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3956130_-_patch_patch4_hotfix3__(64bit)_(68995)-22.bin' ARCHIVE_BASE_PATCH4_0_PART22_MD5='6c73b251f90ccdfc3478e36dd5c10ba2' ARCHIVE_BASE_PATCH4_0_PART23_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3956130_-_patch_patch4_hotfix3__(64bit)_(68995)-23.bin' ARCHIVE_BASE_PATCH4_0_PART23_MD5='1b3b77c0ec4d9d0355964662ff82c9eb' ARCHIVE_BASE_PATCH4_0_PART24_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3956130_-_patch_patch4_hotfix3__(64bit)_(68995)-24.bin' ARCHIVE_BASE_PATCH4_0_PART24_MD5='49538632c8eb659f017c3ae1a1698a1f' ARCHIVE_BASE_PATCH4_0_PART25_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3956130_-_patch_patch4_hotfix3__(64bit)_(68995)-25.bin' ARCHIVE_BASE_PATCH4_0_PART25_MD5='6ee062ce652cb6606b9747f3ace8706e' ARCHIVE_BASE_PATCH4_0_PART26_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3956130_-_patch_patch4_hotfix3__(64bit)_(68995)-26.bin' ARCHIVE_BASE_PATCH4_0_PART26_MD5='97fda2b27e9bf32387e17294f2dd05ed' ARCHIVE_BASE_PATCH4_0_PART27_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3956130_-_patch_patch4_hotfix3__(64bit)_(68995)-27.bin' ARCHIVE_BASE_PATCH4_0_PART27_MD5='c4e2eee7ea51aa41ba1fcd2544a7423c' ARCHIVE_BASE_PATCH4_0_SIZE='126864164' ARCHIVE_BASE_PATCH4_0_VERSION='4.1.1.3956130-gog68995' ARCHIVE_BASE_PATCH3_0_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3767641_-_patch_patch3_hotfix3__(64bit)_(68008).exe' ARCHIVE_BASE_PATCH3_0_MD5='e2da307eb714d2e746048e8fb7d646a4' ARCHIVE_BASE_PATCH3_0_TYPE='innosetup' ARCHIVE_BASE_PATCH3_0_PART1_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3767641_-_patch_patch3_hotfix3__(64bit)_(68008)-1.bin' ARCHIVE_BASE_PATCH3_0_PART1_MD5='c1f97403bf1b7aef31aac7ac8a05c52c' ARCHIVE_BASE_PATCH3_0_PART2_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3767641_-_patch_patch3_hotfix3__(64bit)_(68008)-2.bin' ARCHIVE_BASE_PATCH3_0_PART2_MD5='f758ba3cb8c8b92ec3f87d1b923b7c11' ARCHIVE_BASE_PATCH3_0_PART3_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3767641_-_patch_patch3_hotfix3__(64bit)_(68008)-3.bin' ARCHIVE_BASE_PATCH3_0_PART3_MD5='0a74176898bbe90ba6df280d002c608f' ARCHIVE_BASE_PATCH3_0_PART4_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3767641_-_patch_patch3_hotfix3__(64bit)_(68008)-4.bin' ARCHIVE_BASE_PATCH3_0_PART4_MD5='2839a599a52492bf7fc7e21a0f948792' ARCHIVE_BASE_PATCH3_0_PART5_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3767641_-_patch_patch3_hotfix3__(64bit)_(68008)-5.bin' ARCHIVE_BASE_PATCH3_0_PART5_MD5='e6662560a171acf293da789ba73e66a5' ARCHIVE_BASE_PATCH3_0_PART6_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3767641_-_patch_patch3_hotfix3__(64bit)_(68008)-6.bin' ARCHIVE_BASE_PATCH3_0_PART6_MD5='3fa48d0c2cbdb8d2bed0d7b1120e4807' ARCHIVE_BASE_PATCH3_0_PART7_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3767641_-_patch_patch3_hotfix3__(64bit)_(68008)-7.bin' ARCHIVE_BASE_PATCH3_0_PART7_MD5='435d3b387cbd7f77149f4fd48e97172e' ARCHIVE_BASE_PATCH3_0_PART8_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3767641_-_patch_patch3_hotfix3__(64bit)_(68008)-8.bin' ARCHIVE_BASE_PATCH3_0_PART8_MD5='3e6a2f03e58ec7067c9cebffc913144d' ARCHIVE_BASE_PATCH3_0_PART9_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3767641_-_patch_patch3_hotfix3__(64bit)_(68008)-9.bin' ARCHIVE_BASE_PATCH3_0_PART9_MD5='9560938b6aa92559096c7db471c437fa' ARCHIVE_BASE_PATCH3_0_PART10_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3767641_-_patch_patch3_hotfix3__(64bit)_(68008)-10.bin' ARCHIVE_BASE_PATCH3_0_PART10_MD5='42e9165bd6665754052936cf5949269a' ARCHIVE_BASE_PATCH3_0_PART11_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3767641_-_patch_patch3_hotfix3__(64bit)_(68008)-11.bin' ARCHIVE_BASE_PATCH3_0_PART11_MD5='b536ed99f08843c8bb6c7af50f3a14b9' ARCHIVE_BASE_PATCH3_0_PART12_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3767641_-_patch_patch3_hotfix3__(64bit)_(68008)-12.bin' ARCHIVE_BASE_PATCH3_0_PART12_MD5='86a43810f51761fd09a653f1b89e9936' ARCHIVE_BASE_PATCH3_0_PART13_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3767641_-_patch_patch3_hotfix3__(64bit)_(68008)-13.bin' ARCHIVE_BASE_PATCH3_0_PART13_MD5='83d3432202ca5a775952afc001086a03' ARCHIVE_BASE_PATCH3_0_PART14_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3767641_-_patch_patch3_hotfix3__(64bit)_(68008)-14.bin' ARCHIVE_BASE_PATCH3_0_PART14_MD5='db7dcdd36279cf06e014b3d51d06e978' ARCHIVE_BASE_PATCH3_0_PART15_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3767641_-_patch_patch3_hotfix3__(64bit)_(68008)-15.bin' ARCHIVE_BASE_PATCH3_0_PART15_MD5='9e472641d3c34199dfeba8851f7bdcf5' ARCHIVE_BASE_PATCH3_0_PART16_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3767641_-_patch_patch3_hotfix3__(64bit)_(68008)-16.bin' ARCHIVE_BASE_PATCH3_0_PART16_MD5='1f7d14f63ecafdbbcd727de7ac38223c' ARCHIVE_BASE_PATCH3_0_PART17_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3767641_-_patch_patch3_hotfix3__(64bit)_(68008)-17.bin' ARCHIVE_BASE_PATCH3_0_PART17_MD5='f1359a59c61a955f0620febc487a1269' ARCHIVE_BASE_PATCH3_0_PART18_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3767641_-_patch_patch3_hotfix3__(64bit)_(68008)-18.bin' ARCHIVE_BASE_PATCH3_0_PART18_MD5='bfd969ab39637c49b64f7cfaa1f20804' ARCHIVE_BASE_PATCH3_0_PART19_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3767641_-_patch_patch3_hotfix3__(64bit)_(68008)-19.bin' ARCHIVE_BASE_PATCH3_0_PART19_MD5='e8eae4f90a2cea5bcbdee08a1b712aef' ARCHIVE_BASE_PATCH3_0_PART20_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3767641_-_patch_patch3_hotfix3__(64bit)_(68008)-20.bin' ARCHIVE_BASE_PATCH3_0_PART20_MD5='b88525457e4b590b78c34f40e1ba60f0' ARCHIVE_BASE_PATCH3_0_PART21_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3767641_-_patch_patch3_hotfix3__(64bit)_(68008)-21.bin' ARCHIVE_BASE_PATCH3_0_PART21_MD5='d74266b799d4d911838cf9173c87fda6' ARCHIVE_BASE_PATCH3_0_PART22_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3767641_-_patch_patch3_hotfix3__(64bit)_(68008)-22.bin' ARCHIVE_BASE_PATCH3_0_PART22_MD5='75b917c7abbf4483a82b56b5395e39c0' ARCHIVE_BASE_PATCH3_0_PART23_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3767641_-_patch_patch3_hotfix3__(64bit)_(68008)-23.bin' ARCHIVE_BASE_PATCH3_0_PART23_MD5='bd518745958733216fb50f9fce5cb494' ARCHIVE_BASE_PATCH3_0_PART24_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3767641_-_patch_patch3_hotfix3__(64bit)_(68008)-24.bin' ARCHIVE_BASE_PATCH3_0_PART24_MD5='404946034a46864f9172c7b9cf13002b' ARCHIVE_BASE_PATCH3_0_PART25_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3767641_-_patch_patch3_hotfix3__(64bit)_(68008)-25.bin' ARCHIVE_BASE_PATCH3_0_PART25_MD5='f6255a2a3130642c3f96fd43252e9dec' ARCHIVE_BASE_PATCH3_0_PART26_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3767641_-_patch_patch3_hotfix3__(64bit)_(68008)-26.bin' ARCHIVE_BASE_PATCH3_0_PART26_MD5='d2bbcc99329999915b2b478e9d9218e4' ARCHIVE_BASE_PATCH3_0_PART27_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3767641_-_patch_patch3_hotfix3__(64bit)_(68008)-27.bin' ARCHIVE_BASE_PATCH3_0_PART27_MD5='3e8cc3d3b3028f065e73296dcc714712' ARCHIVE_BASE_PATCH3_0_PART28_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3767641_-_patch_patch3_hotfix3__(64bit)_(68008)-28.bin' ARCHIVE_BASE_PATCH3_0_PART28_MD5='1ad835b73e36f5fd9706f5a3e3ccd276' ARCHIVE_BASE_PATCH3_0_PART29_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3767641_-_patch_patch3_hotfix3__(64bit)_(68008)-29.bin' ARCHIVE_BASE_PATCH3_0_PART29_MD5='27564ccea2ef5b369feee3b246631060' ARCHIVE_BASE_PATCH3_0_PART30_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3767641_-_patch_patch3_hotfix3__(64bit)_(68008)-30.bin' ARCHIVE_BASE_PATCH3_0_PART30_MD5='c3729516a6fb77dad2f760ef9d21bb9a' ARCHIVE_BASE_PATCH3_0_PART31_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3767641_-_patch_patch3_hotfix3__(64bit)_(68008)-31.bin' ARCHIVE_BASE_PATCH3_0_PART31_MD5='5fb4854aaac674f56a563dc4616b8792' ARCHIVE_BASE_PATCH3_0_SIZE='156835644' ARCHIVE_BASE_PATCH3_0_VERSION='4.1.1.3767641-gog68008' ARCHIVE_BASE_PATCH2_0_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3700362_-_patch_patch2_hotfix2__(64bit)_(67336).exe' ARCHIVE_BASE_PATCH2_0_MD5='6eeac06fdc264d09052dd52a5d8f85fb' ARCHIVE_BASE_PATCH2_0_TYPE='innosetup' ARCHIVE_BASE_PATCH2_0_PART1_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3700362_-_patch_patch2_hotfix2__(64bit)_(67336)-1.bin' ARCHIVE_BASE_PATCH2_0_PART1_MD5='a8ac39fc4ddd9dc8c8b451ddceb2bed7' ARCHIVE_BASE_PATCH2_0_PART2_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3700362_-_patch_patch2_hotfix2__(64bit)_(67336)-2.bin' ARCHIVE_BASE_PATCH2_0_PART2_MD5='1e1806b014056b87e1d8d38310d27843' ARCHIVE_BASE_PATCH2_0_PART3_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3700362_-_patch_patch2_hotfix2__(64bit)_(67336)-3.bin' ARCHIVE_BASE_PATCH2_0_PART3_MD5='3caaa1250e79563a94689b6cc7777226' ARCHIVE_BASE_PATCH2_0_PART4_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3700362_-_patch_patch2_hotfix2__(64bit)_(67336)-4.bin' ARCHIVE_BASE_PATCH2_0_PART4_MD5='c73405adb39664c2580444be4d8f1e77' ARCHIVE_BASE_PATCH2_0_PART5_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3700362_-_patch_patch2_hotfix2__(64bit)_(67336)-5.bin' ARCHIVE_BASE_PATCH2_0_PART5_MD5='d380505dfa53dfda7cfd446781cadc1e' ARCHIVE_BASE_PATCH2_0_PART6_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3700362_-_patch_patch2_hotfix2__(64bit)_(67336)-6.bin' ARCHIVE_BASE_PATCH2_0_PART6_MD5='bbd932a09811206b178cbaaa3e1961f4' ARCHIVE_BASE_PATCH2_0_PART7_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3700362_-_patch_patch2_hotfix2__(64bit)_(67336)-7.bin' ARCHIVE_BASE_PATCH2_0_PART7_MD5='9096d0e0d58509b010366140d74d0387' ARCHIVE_BASE_PATCH2_0_PART8_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3700362_-_patch_patch2_hotfix2__(64bit)_(67336)-8.bin' ARCHIVE_BASE_PATCH2_0_PART8_MD5='bbfceef39180a8066727f23c9e494f9a' ARCHIVE_BASE_PATCH2_0_PART9_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3700362_-_patch_patch2_hotfix2__(64bit)_(67336)-9.bin' ARCHIVE_BASE_PATCH2_0_PART9_MD5='5a118078fc27f3aa102023ef6f0f8b38' ARCHIVE_BASE_PATCH2_0_PART10_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3700362_-_patch_patch2_hotfix2__(64bit)_(67336)-10.bin' ARCHIVE_BASE_PATCH2_0_PART10_MD5='0f221f4cb8c70bec4a76f605842e4b5a' ARCHIVE_BASE_PATCH2_0_PART11_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3700362_-_patch_patch2_hotfix2__(64bit)_(67336)-11.bin' ARCHIVE_BASE_PATCH2_0_PART11_MD5='03bb396186275434f3630dcaea22f847' ARCHIVE_BASE_PATCH2_0_PART12_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3700362_-_patch_patch2_hotfix2__(64bit)_(67336)-12.bin' ARCHIVE_BASE_PATCH2_0_PART12_MD5='94e6c7a3957f0692587dd1e17e57bd6b' ARCHIVE_BASE_PATCH2_0_PART13_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3700362_-_patch_patch2_hotfix2__(64bit)_(67336)-13.bin' ARCHIVE_BASE_PATCH2_0_PART13_MD5='0e492c7302256ec45e5f01cb6d86f194' ARCHIVE_BASE_PATCH2_0_PART14_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3700362_-_patch_patch2_hotfix2__(64bit)_(67336)-14.bin' ARCHIVE_BASE_PATCH2_0_PART14_MD5='2d476b947cd51d52d5406eb22772b370' ARCHIVE_BASE_PATCH2_0_PART15_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3700362_-_patch_patch2_hotfix2__(64bit)_(67336)-15.bin' ARCHIVE_BASE_PATCH2_0_PART15_MD5='932de8332ecef4512f15942f306e35d9' ARCHIVE_BASE_PATCH2_0_PART16_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3700362_-_patch_patch2_hotfix2__(64bit)_(67336)-16.bin' ARCHIVE_BASE_PATCH2_0_PART16_MD5='e7fd6a1d8b1191726d29beeb671db49a' ARCHIVE_BASE_PATCH2_0_PART17_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3700362_-_patch_patch2_hotfix2__(64bit)_(67336)-17.bin' ARCHIVE_BASE_PATCH2_0_PART17_MD5='586951c282b7937106f303a80911245b' ARCHIVE_BASE_PATCH2_0_PART18_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3700362_-_patch_patch2_hotfix2__(64bit)_(67336)-18.bin' ARCHIVE_BASE_PATCH2_0_PART18_MD5='f9a7d5f8dacd3469bdb79126bd4838e7' ARCHIVE_BASE_PATCH2_0_PART19_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3700362_-_patch_patch2_hotfix2__(64bit)_(67336)-19.bin' ARCHIVE_BASE_PATCH2_0_PART19_MD5='9099f94ffe643239596ce857c1720e08' ARCHIVE_BASE_PATCH2_0_PART20_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3700362_-_patch_patch2_hotfix2__(64bit)_(67336)-20.bin' ARCHIVE_BASE_PATCH2_0_PART20_MD5='9e20afbabdaea6d69bc51045da768f69' ARCHIVE_BASE_PATCH2_0_PART21_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3700362_-_patch_patch2_hotfix2__(64bit)_(67336)-21.bin' ARCHIVE_BASE_PATCH2_0_PART21_MD5='4230156c15022f0634edd98542020683' ARCHIVE_BASE_PATCH2_0_PART22_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3700362_-_patch_patch2_hotfix2__(64bit)_(67336)-22.bin' ARCHIVE_BASE_PATCH2_0_PART22_MD5='0471d8d45cd5eb7accdd16c563c1e972' ARCHIVE_BASE_PATCH2_0_PART23_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3700362_-_patch_patch2_hotfix2__(64bit)_(67336)-23.bin' ARCHIVE_BASE_PATCH2_0_PART23_MD5='50d0b713eaa36adaf530f9bf87600baa' ARCHIVE_BASE_PATCH2_0_PART24_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3700362_-_patch_patch2_hotfix2__(64bit)_(67336)-24.bin' ARCHIVE_BASE_PATCH2_0_PART24_MD5='05c0bdfd7c1b01083d511054f6a9f23a' ARCHIVE_BASE_PATCH2_0_PART25_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3700362_-_patch_patch2_hotfix2__(64bit)_(67336)-25.bin' ARCHIVE_BASE_PATCH2_0_PART25_MD5='96141571c42a53a9bf78960e4c7d83ab' ARCHIVE_BASE_PATCH2_0_PART26_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3700362_-_patch_patch2_hotfix2__(64bit)_(67336)-26.bin' ARCHIVE_BASE_PATCH2_0_PART26_MD5='3e23b9e016c006fae2c3c60a5af44a47' ARCHIVE_BASE_PATCH2_0_PART27_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3700362_-_patch_patch2_hotfix2__(64bit)_(67336)-27.bin' ARCHIVE_BASE_PATCH2_0_PART27_MD5='b50cb9a55312f948909ee57c6ed09469' ARCHIVE_BASE_PATCH2_0_PART28_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3700362_-_patch_patch2_hotfix2__(64bit)_(67336)-28.bin' ARCHIVE_BASE_PATCH2_0_PART28_MD5='24910c2975faf1762a177df3cb95c593' ARCHIVE_BASE_PATCH2_0_PART29_NAME='setup_baldurs_gate_3_release_-_v4.1.1.3700362_-_patch_patch2_hotfix2__(64bit)_(67336)-29.bin' ARCHIVE_BASE_PATCH2_0_PART29_MD5='2e4c222aabc70fd6068ad8834aaa7b2c' ARCHIVE_BASE_PATCH2_0_SIZE='145464212' ARCHIVE_BASE_PATCH2_0_VERSION='4.1.1.3700362-gog67336' ARCHIVE_BASE_PATCH1_0_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3669438_-_patch_patch1_data_fix_(64bit)_(67052).exe' ARCHIVE_BASE_PATCH1_0_MD5='09401cf3b960c56032b9c8d5492d2316' ARCHIVE_BASE_PATCH1_0_TYPE='innosetup' ARCHIVE_BASE_PATCH1_0_PART1_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3669438_-_patch_patch1_data_fix_(64bit)_(67052)-1.bin' ARCHIVE_BASE_PATCH1_0_PART1_MD5='f3a8409e3f4dd3db98bc5df6ce0742f5' ARCHIVE_BASE_PATCH1_0_PART2_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3669438_-_patch_patch1_data_fix_(64bit)_(67052)-2.bin' ARCHIVE_BASE_PATCH1_0_PART2_MD5='9135194fb160d8d8fb35aac207b668b3' ARCHIVE_BASE_PATCH1_0_PART3_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3669438_-_patch_patch1_data_fix_(64bit)_(67052)-3.bin' ARCHIVE_BASE_PATCH1_0_PART3_MD5='489c13ad3282beb71aa3de4db880fade' ARCHIVE_BASE_PATCH1_0_PART4_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3669438_-_patch_patch1_data_fix_(64bit)_(67052)-4.bin' ARCHIVE_BASE_PATCH1_0_PART4_MD5='24caf894181a2d7be008bfd6bce865a6' ARCHIVE_BASE_PATCH1_0_PART5_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3669438_-_patch_patch1_data_fix_(64bit)_(67052)-5.bin' ARCHIVE_BASE_PATCH1_0_PART5_MD5='17a4f372bd3d56a3b531eb2bf1c9f14d' ARCHIVE_BASE_PATCH1_0_PART6_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3669438_-_patch_patch1_data_fix_(64bit)_(67052)-6.bin' ARCHIVE_BASE_PATCH1_0_PART6_MD5='5897dad5e3de1419b13ea78ffb200510' ARCHIVE_BASE_PATCH1_0_PART7_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3669438_-_patch_patch1_data_fix_(64bit)_(67052)-7.bin' ARCHIVE_BASE_PATCH1_0_PART7_MD5='f652711efa1f8328d097be81527260f4' ARCHIVE_BASE_PATCH1_0_PART8_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3669438_-_patch_patch1_data_fix_(64bit)_(67052)-8.bin' ARCHIVE_BASE_PATCH1_0_PART8_MD5='748370642aefced9eb5647cc4e431828' ARCHIVE_BASE_PATCH1_0_PART9_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3669438_-_patch_patch1_data_fix_(64bit)_(67052)-9.bin' ARCHIVE_BASE_PATCH1_0_PART9_MD5='01e5e27b88c2d9a610136fafdb4b8f02' ARCHIVE_BASE_PATCH1_0_PART10_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3669438_-_patch_patch1_data_fix_(64bit)_(67052)-10.bin' ARCHIVE_BASE_PATCH1_0_PART10_MD5='084d3daf2161b8054e5a4d58fd859e80' ARCHIVE_BASE_PATCH1_0_PART11_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3669438_-_patch_patch1_data_fix_(64bit)_(67052)-11.bin' ARCHIVE_BASE_PATCH1_0_PART11_MD5='6a2e64ba408cfacc1cf4d4c87ef0ef7b' ARCHIVE_BASE_PATCH1_0_PART12_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3669438_-_patch_patch1_data_fix_(64bit)_(67052)-12.bin' ARCHIVE_BASE_PATCH1_0_PART12_MD5='c7936ac74791438308efb79b748a1a9e' ARCHIVE_BASE_PATCH1_0_PART13_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3669438_-_patch_patch1_data_fix_(64bit)_(67052)-13.bin' ARCHIVE_BASE_PATCH1_0_PART13_MD5='262a4d8e4c34d382a6220acf44205b84' ARCHIVE_BASE_PATCH1_0_PART14_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3669438_-_patch_patch1_data_fix_(64bit)_(67052)-14.bin' ARCHIVE_BASE_PATCH1_0_PART14_MD5='ccf42f75bdd18740ddc3680ece6c06b2' ARCHIVE_BASE_PATCH1_0_PART15_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3669438_-_patch_patch1_data_fix_(64bit)_(67052)-15.bin' ARCHIVE_BASE_PATCH1_0_PART15_MD5='2e2558d1b7c1d5252afcb6a0542b3848' ARCHIVE_BASE_PATCH1_0_PART16_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3669438_-_patch_patch1_data_fix_(64bit)_(67052)-16.bin' ARCHIVE_BASE_PATCH1_0_PART16_MD5='a7d40cc96e64cdb85aeccc2471900acc' ARCHIVE_BASE_PATCH1_0_PART17_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3669438_-_patch_patch1_data_fix_(64bit)_(67052)-17.bin' ARCHIVE_BASE_PATCH1_0_PART17_MD5='53b77f130bc641baf7e26007f9fc3849' ARCHIVE_BASE_PATCH1_0_PART18_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3669438_-_patch_patch1_data_fix_(64bit)_(67052)-18.bin' ARCHIVE_BASE_PATCH1_0_PART18_MD5='26ecb989f6d025bb4ab5ea726cacb496' ARCHIVE_BASE_PATCH1_0_PART19_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3669438_-_patch_patch1_data_fix_(64bit)_(67052)-19.bin' ARCHIVE_BASE_PATCH1_0_PART19_MD5='8f507b0da3729dba21989460f96d3781' ARCHIVE_BASE_PATCH1_0_PART20_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3669438_-_patch_patch1_data_fix_(64bit)_(67052)-20.bin' ARCHIVE_BASE_PATCH1_0_PART20_MD5='40493a3fb33da7202533823f1444b526' ARCHIVE_BASE_PATCH1_0_PART21_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3669438_-_patch_patch1_data_fix_(64bit)_(67052)-21.bin' ARCHIVE_BASE_PATCH1_0_PART21_MD5='8f2abd65aaaae133ac4e6233efda0654' ARCHIVE_BASE_PATCH1_0_PART22_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3669438_-_patch_patch1_data_fix_(64bit)_(67052)-22.bin' ARCHIVE_BASE_PATCH1_0_PART22_MD5='f5a21a6a93328adb55459b28d7096608' ARCHIVE_BASE_PATCH1_0_PART23_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3669438_-_patch_patch1_data_fix_(64bit)_(67052)-23.bin' ARCHIVE_BASE_PATCH1_0_PART23_MD5='0f2f3783421bbf5c7c714b0d99dc0bc2' ARCHIVE_BASE_PATCH1_0_PART24_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3669438_-_patch_patch1_data_fix_(64bit)_(67052)-24.bin' ARCHIVE_BASE_PATCH1_0_PART24_MD5='11ee20ad29f1dfa7ba9618664c974fa9' ARCHIVE_BASE_PATCH1_0_PART25_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3669438_-_patch_patch1_data_fix_(64bit)_(67052)-25.bin' ARCHIVE_BASE_PATCH1_0_PART25_MD5='4c93abd831b0469f2061f27b6ecaebe0' ARCHIVE_BASE_PATCH1_0_PART26_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3669438_-_patch_patch1_data_fix_(64bit)_(67052)-26.bin' ARCHIVE_BASE_PATCH1_0_PART26_MD5='610b63465163f61c5e645092800bc3d9' ARCHIVE_BASE_PATCH1_0_PART27_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3669438_-_patch_patch1_data_fix_(64bit)_(67052)-27.bin' ARCHIVE_BASE_PATCH1_0_PART27_MD5='9e81fa436fb596f0ae071ae1d7d660d6' ARCHIVE_BASE_PATCH1_0_PART28_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3669438_-_patch_patch1_data_fix_(64bit)_(67052)-28.bin' ARCHIVE_BASE_PATCH1_0_PART28_MD5='8581ed928d138c89a05d68a116684d7a' ARCHIVE_BASE_PATCH1_0_SIZE='140000000' ARCHIVE_BASE_PATCH1_0_VERSION='4.1.1.3669438-gog67052' ARCHIVE_BASE_PATCH0_0_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3635601_-_patch0_hotfix2.1_(64bit)_(66683).exe' ARCHIVE_BASE_PATCH0_0_MD5='986cbd346ca2444eba5ca65921557abc' ARCHIVE_BASE_PATCH0_0_TYPE='innosetup' ARCHIVE_BASE_PATCH0_0_PART1_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3635601_-_patch0_hotfix2.1_(64bit)_(66683)-1.bin' ARCHIVE_BASE_PATCH0_0_PART1_MD5='14c9146c4ef5c86dae1edcc4ffcf5953' ARCHIVE_BASE_PATCH0_0_PART2_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3635601_-_patch0_hotfix2.1_(64bit)_(66683)-2.bin' ARCHIVE_BASE_PATCH0_0_PART2_MD5='2768930a5a1f20998c087c483c298d4e' ARCHIVE_BASE_PATCH0_0_PART3_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3635601_-_patch0_hotfix2.1_(64bit)_(66683)-3.bin' ARCHIVE_BASE_PATCH0_0_PART3_MD5='f6de17882cf9c14bf4d9c35d1408b370' ARCHIVE_BASE_PATCH0_0_PART4_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3635601_-_patch0_hotfix2.1_(64bit)_(66683)-4.bin' ARCHIVE_BASE_PATCH0_0_PART4_MD5='57821851b52dbc96735e19ed4cea4412' ARCHIVE_BASE_PATCH0_0_PART5_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3635601_-_patch0_hotfix2.1_(64bit)_(66683)-5.bin' ARCHIVE_BASE_PATCH0_0_PART5_MD5='2699c17f29e4385685fedf8f4c722942' ARCHIVE_BASE_PATCH0_0_PART6_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3635601_-_patch0_hotfix2.1_(64bit)_(66683)-6.bin' ARCHIVE_BASE_PATCH0_0_PART6_MD5='dfda5cb12822ab47d0fbec331a3bf4e9' ARCHIVE_BASE_PATCH0_0_PART7_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3635601_-_patch0_hotfix2.1_(64bit)_(66683)-7.bin' ARCHIVE_BASE_PATCH0_0_PART7_MD5='a9c6c86ba6b752fdfe3b17e2bb671da9' ARCHIVE_BASE_PATCH0_0_PART8_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3635601_-_patch0_hotfix2.1_(64bit)_(66683)-8.bin' ARCHIVE_BASE_PATCH0_0_PART8_MD5='6b8124c98e89a4476fd5ebc5fb6eac4e' ARCHIVE_BASE_PATCH0_0_PART9_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3635601_-_patch0_hotfix2.1_(64bit)_(66683)-9.bin' ARCHIVE_BASE_PATCH0_0_PART9_MD5='0b40958f3d74bc799e39c0b6757dd210' ARCHIVE_BASE_PATCH0_0_PART10_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3635601_-_patch0_hotfix2.1_(64bit)_(66683)-10.bin' ARCHIVE_BASE_PATCH0_0_PART10_MD5='274034a44d58e127f845664c7ba290ee' ARCHIVE_BASE_PATCH0_0_PART11_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3635601_-_patch0_hotfix2.1_(64bit)_(66683)-11.bin' ARCHIVE_BASE_PATCH0_0_PART11_MD5='2f4d7c82fb650731a2e215d28b4aefc8' ARCHIVE_BASE_PATCH0_0_PART12_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3635601_-_patch0_hotfix2.1_(64bit)_(66683)-12.bin' ARCHIVE_BASE_PATCH0_0_PART12_MD5='bd3a022fe59b2089d97e5f3905bc3962' ARCHIVE_BASE_PATCH0_0_PART13_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3635601_-_patch0_hotfix2.1_(64bit)_(66683)-13.bin' ARCHIVE_BASE_PATCH0_0_PART13_MD5='712abe64604b05e2fbbc7bd9aacb1413' ARCHIVE_BASE_PATCH0_0_PART14_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3635601_-_patch0_hotfix2.1_(64bit)_(66683)-14.bin' ARCHIVE_BASE_PATCH0_0_PART14_MD5='4dfd9e4a56ce1d63293a0e7bcc66e7a4' ARCHIVE_BASE_PATCH0_0_PART15_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3635601_-_patch0_hotfix2.1_(64bit)_(66683)-15.bin' ARCHIVE_BASE_PATCH0_0_PART15_MD5='512fa657892ca991d3f626e21f2d6821' ARCHIVE_BASE_PATCH0_0_PART16_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3635601_-_patch0_hotfix2.1_(64bit)_(66683)-16.bin' ARCHIVE_BASE_PATCH0_0_PART16_MD5='e364b2302d2e23e79478eceda835b95f' ARCHIVE_BASE_PATCH0_0_PART17_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3635601_-_patch0_hotfix2.1_(64bit)_(66683)-17.bin' ARCHIVE_BASE_PATCH0_0_PART17_MD5='0623bd7550eb187d569ee66cf2bad6c1' ARCHIVE_BASE_PATCH0_0_PART18_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3635601_-_patch0_hotfix2.1_(64bit)_(66683)-18.bin' ARCHIVE_BASE_PATCH0_0_PART18_MD5='886a04f956eb69f6a644dd9faff319d0' ARCHIVE_BASE_PATCH0_0_PART19_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3635601_-_patch0_hotfix2.1_(64bit)_(66683)-19.bin' ARCHIVE_BASE_PATCH0_0_PART19_MD5='c6d3c5c670066872c7e0cf78162d96ad' ARCHIVE_BASE_PATCH0_0_PART20_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3635601_-_patch0_hotfix2.1_(64bit)_(66683)-20.bin' ARCHIVE_BASE_PATCH0_0_PART20_MD5='6517b23d62e752d5f28e607157690f9b' ARCHIVE_BASE_PATCH0_0_PART21_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3635601_-_patch0_hotfix2.1_(64bit)_(66683)-21.bin' ARCHIVE_BASE_PATCH0_0_PART21_MD5='e80bbbd92fa5992792679bf0f46d32ad' ARCHIVE_BASE_PATCH0_0_PART22_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3635601_-_patch0_hotfix2.1_(64bit)_(66683)-22.bin' ARCHIVE_BASE_PATCH0_0_PART22_MD5='16c82788a087f3ad44939854aed5b812' ARCHIVE_BASE_PATCH0_0_PART23_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3635601_-_patch0_hotfix2.1_(64bit)_(66683)-23.bin' ARCHIVE_BASE_PATCH0_0_PART23_MD5='ee096b68eb210b732348d31e940702ea' ARCHIVE_BASE_PATCH0_0_PART24_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3635601_-_patch0_hotfix2.1_(64bit)_(66683)-24.bin' ARCHIVE_BASE_PATCH0_0_PART24_MD5='df2a50351cc593ebaf7316afe7a0ae72' ARCHIVE_BASE_PATCH0_0_PART25_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3635601_-_patch0_hotfix2.1_(64bit)_(66683)-25.bin' ARCHIVE_BASE_PATCH0_0_PART25_MD5='1db116cd2f589addfa9cf258429c085b' ARCHIVE_BASE_PATCH0_0_PART26_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3635601_-_patch0_hotfix2.1_(64bit)_(66683)-26.bin' ARCHIVE_BASE_PATCH0_0_PART26_MD5='f937efd190dc0a93b918061f97d24ba9' ARCHIVE_BASE_PATCH0_0_PART27_NAME='setup_baldurs_gate_3_live_-_v4.1.1.3635601_-_patch0_hotfix2.1_(64bit)_(66683)-27.bin' ARCHIVE_BASE_PATCH0_0_PART27_MD5='2c61a47bea3ed93960382139ba15c6b7' ARCHIVE_BASE_PATCH0_0_SIZE='131000000' ARCHIVE_BASE_PATCH0_0_VERSION='4.1.1.3635601-gog66683' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' bin' CONTENT_GAME_L10N_VOICES_FILES=' data/localization/voicemeta.pak' CONTENT_GAME_L10N_COMMON_FILES=' data/localization/english.pak data/localization/english_animations.pak' CONTENT_GAME_L10N_FR_FILES=' data/localization/french' CONTENT_GAME_DATA_MODELS_FILES=' data/models.pak' CONTENT_GAME_DATA_SOUNDS_FILES=' data/sharedsoundbanks.pak' CONTENT_GAME_DATA_TEXTURES_1_FILES=' data/gustav_textures.pak data/textures.pak data/textures_1.pak' CONTENT_GAME_DATA_TEXTURES_2_FILES=' data/textures_2.pak data/textures_3.pak data/virtualtextures.pak' CONTENT_GAME_DATA_TEXTURES_3_FILES=' data/virtualtextures_1.pak data/virtualtextures_2.pak' CONTENT_GAME_DATA_TEXTURES_4_FILES=' data/virtualtextures_3.pak data/virtualtextures_4.pak' CONTENT_GAME_DATA_TEXTURES_5_FILES=' data/virtualtextures_5.pak data/virtualtextures_6.pak' CONTENT_GAME_DATA_TEXTURES_6_FILES=' data/virtualtextures_7.pak data/virtualtextures_8.pak' CONTENT_GAME_DATA_TEXTURES_7_FILES=' data/virtualtextures_9.pak data/virtualtextures_10.pak' CONTENT_GAME_DATA_TEXTURES_8_FILES=' data/virtualtextures_11.pak data/virtualtextures_12.pak' CONTENT_GAME_DATA_TEXTURES_9_FILES=' data/virtualtextures_13.pak data/virtualtextures_14.pak' CONTENT_GAME_DATA_TEXTURES_10_FILES=' data/virtualtextures_15.pak data/virtualtextures_16.pak' CONTENT_GAME_DATA_TEXTURES_11_FILES=' data/virtualtextures_17.pak data/virtualtextures_18.pak' CONTENT_GAME_DATA_TEXTURES_12_FILES=' data/virtualtextures_*.pak' CONTENT_GAME_DATA_PATCH0_FILES=' data/patch0_hotfix*.pak' CONTENT_GAME_DATA_PATCH1_FILES=' data/patch1.pak' CONTENT_GAME_DATA_PATCH2_FILES=' data/patch2.pak data/patch2_hotfix*.pak' CONTENT_GAME_DATA_PATCH3_FILES=' data/patch3_hotfix*.pak' CONTENT_GAME_DATA_PATCH4_FILES=' data/patch4_hotfix*.pak' CONTENT_GAME_DATA_PATCH5_FILES=' data/patch5_hotfix*.pak' CONTENT_GAME_DATA_PATCH6_FILES=' data/patch6_hotfix*.pak' CONTENT_GAME_DATA_PATCH7_FILES=' data/patch7_hotfix*.pak' CONTENT_GAME_DATA_PATCH8_FILES=' data/patch8_hotfix*.pak' CONTENT_GAME_DATA_FILES=' data/assets.pak data/day0.pak data/diceset??.pak data/effects.pak data/engine.pak data/engineshaders.pak data/game.pak data/gameplatform.pak data/gustav_navcloud.pak data/gustav_video.pak data/gustavx.pak data/icons.pak data/lowtex.pak data/materials.pak data/psocache.pak data/shared.pak' HUGE_FILES_L10N_VOICES=' data/localization/voice.pak' HUGE_FILES_DATA=' data/gustav.pak' ## The size of sharedsounds.pak goes over the .deb size limit only with patch 5, ## but ./play.it has no problem "splitting" a file into a single chunk, ## at the cost of more time spent in post-install scripts. ## TODO: The library-side implementation of huge files should probably skip files under the size limit, ## putting the whole file into a dedicated package without "splitting" it into a single chunk first. HUGE_FILES_DATA_SOUNDS=' data/sharedsounds.pak' ## The _PATCH3 suffix is doubled so this matches: ## PKG_DATA_PATCH3 in the context of ARCHIVE_BASE_PATCH3 ## but does not match: ## PKG_DATA in the context of ARCHIVE_BASE_PATCH3. HUGE_FILES_DATA_PATCH3_PATCH3=' data/patch3.pak' WINE_PERSISTENT_DIRECTORIES=" users/\${USER}/AppData/Local/Larian Studios/Baldur's Gate 3" ## mfc140u.dll is required. ## TODO: Check if this is still required with current WINE WINE_WINETRICKS_VERBS='mfc140' APP_MAIN_EXE='bin/bg3.exe' ## The game crashes on launch when forcing the use of the wayland SDL backend APP_MAIN_PRERUN=' # The game crashes on launch when forcing the use of the wayland SDL backend if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' PACKAGES_LIST_BASE=' PKG_BIN PKG_L10N_VOICES PKG_L10N_COMMON PKG_L10N_EN PKG_L10N_FR PKG_DATA_MODELS PKG_DATA_SOUNDS PKG_DATA_TEXTURES_1 PKG_DATA_TEXTURES_2 PKG_DATA_TEXTURES_3 PKG_DATA_TEXTURES_4 PKG_DATA_TEXTURES_5 PKG_DATA_TEXTURES_6 PKG_DATA_TEXTURES_7 PKG_DATA_TEXTURES_8 PKG_DATA_TEXTURES_9 PKG_DATA_TEXTURES_10 PKG_DATA_TEXTURES_11 PKG_DATA' PACKAGES_LIST_PATCH0="$PACKAGES_LIST_BASE PKG_DATA_PATCH0" PACKAGES_LIST_PATCH1="$PACKAGES_LIST_BASE PKG_DATA_PATCH0 PKG_DATA_PATCH1" PACKAGES_LIST_PATCH2="$PACKAGES_LIST_BASE PKG_DATA_PATCH0 PKG_DATA_PATCH1 PKG_DATA_PATCH2" PACKAGES_LIST_PATCH3="$PACKAGES_LIST_BASE PKG_DATA_PATCH0 PKG_DATA_PATCH1 PKG_DATA_PATCH2 PKG_DATA_PATCH3" PACKAGES_LIST_PATCH4="$PACKAGES_LIST_BASE PKG_DATA_PATCH4" PACKAGES_LIST_PATCH5="$PACKAGES_LIST_BASE PKG_DATA_TEXTURES_12 PKG_DATA_PATCH5" PACKAGES_LIST_PATCH6="$PACKAGES_LIST_BASE PKG_DATA_TEXTURES_12 PKG_DATA_PATCH6" PACKAGES_LIST_PATCH7="$PACKAGES_LIST_BASE PKG_DATA_TEXTURES_12 PKG_DATA_PATCH7" PACKAGES_LIST_PATCH8="$PACKAGES_LIST_BASE PKG_DATA_TEXTURES_12 PKG_DATA_PATCH8" ## Before patch 8 hotfix 1, no extra data/patch8*.pak file is provided. PACKAGES_LIST_PATCH8_0="$PACKAGES_LIST_BASE PKG_DATA_TEXTURES_12" PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N PKG_DATA' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_EN_ID="${PKG_L10N_ID}-en" PKG_L10N_FR_ID="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_EN_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_FR_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_EN_DESCRIPTION='English localization' PKG_L10N_FR_DESCRIPTION='French localization' PKG_L10N_DEPENDENCIES_SIBLINGS=' PKG_L10N_COMMON PKG_L10N_VOICES' PKG_L10N_EN_DEPENDENCIES_SIBLINGS="$PKG_L10N_DEPENDENCIES_SIBLINGS" PKG_L10N_FR_DEPENDENCIES_SIBLINGS="$PKG_L10N_DEPENDENCIES_SIBLINGS" PKG_L10N_COMMON_ID="${PKG_L10N_ID}-common" PKG_L10N_COMMON_DESCRIPTION='localizations - shared files' PKG_L10N_VOICES_ID="${PKG_L10N_ID}-voices" PKG_L10N_VOICES_DESCRIPTION='localizations - voices' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_DATA_MODELS PKG_DATA_SOUNDS PKG_DATA_TEXTURES_1 PKG_DATA_TEXTURES_2 PKG_DATA_TEXTURES_3 PKG_DATA_TEXTURES_4 PKG_DATA_TEXTURES_5 PKG_DATA_TEXTURES_6 PKG_DATA_TEXTURES_7 PKG_DATA_TEXTURES_8 PKG_DATA_TEXTURES_9 PKG_DATA_TEXTURES_10 PKG_DATA_TEXTURES_11' PKG_DATA_DEPENDENCIES_SIBLINGS_PATCH0="$PKG_DATA_DEPENDENCIES_SIBLINGS PKG_DATA_PATCH0" PKG_DATA_DEPENDENCIES_SIBLINGS_PATCH1="$PKG_DATA_DEPENDENCIES_SIBLINGS PKG_DATA_PATCH0 PKG_DATA_PATCH1" PKG_DATA_DEPENDENCIES_SIBLINGS_PATCH2="$PKG_DATA_DEPENDENCIES_SIBLINGS PKG_DATA_PATCH0 PKG_DATA_PATCH1 PKG_DATA_PATCH2" PKG_DATA_DEPENDENCIES_SIBLINGS_PATCH3="$PKG_DATA_DEPENDENCIES_SIBLINGS PKG_DATA_PATCH0 PKG_DATA_PATCH1 PKG_DATA_PATCH2 PKG_DATA_PATCH3" PKG_DATA_DEPENDENCIES_SIBLINGS_PATCH4="$PKG_DATA_DEPENDENCIES_SIBLINGS PKG_DATA_PATCH4" PKG_DATA_DEPENDENCIES_SIBLINGS_PATCH5="$PKG_DATA_DEPENDENCIES_SIBLINGS PKG_DATA_TEXTURES_12 PKG_DATA_PATCH5" PKG_DATA_DEPENDENCIES_SIBLINGS_PATCH6="$PKG_DATA_DEPENDENCIES_SIBLINGS PKG_DATA_TEXTURES_12 PKG_DATA_PATCH6" PKG_DATA_DEPENDENCIES_SIBLINGS_PATCH7="$PKG_DATA_DEPENDENCIES_SIBLINGS PKG_DATA_TEXTURES_12 PKG_DATA_PATCH7" PKG_DATA_DEPENDENCIES_SIBLINGS_PATCH8="$PKG_DATA_DEPENDENCIES_SIBLINGS PKG_DATA_TEXTURES_12 PKG_DATA_PATCH8" ## Before patch 8 hotfix 1, no extra data/patch8*.pak file is provided. PKG_DATA_DEPENDENCIES_SIBLINGS_PATCH8_0="$PKG_DATA_DEPENDENCIES_SIBLINGS PKG_DATA_TEXTURES_12" PKG_DATA_MODELS_ID="${PKG_DATA_ID}-models" PKG_DATA_MODELS_DESCRIPTION="$PKG_DATA_DESCRIPTION - models" PKG_DATA_SOUNDS_ID="${PKG_DATA_ID}-sounds" PKG_DATA_SOUNDS_DESCRIPTION="$PKG_DATA_DESCRIPTION - sounds" PKG_DATA_TEXTURES_ID="${PKG_DATA_ID}-textures" PKG_DATA_TEXTURES_1_ID="${PKG_DATA_TEXTURES_ID}-1" PKG_DATA_TEXTURES_2_ID="${PKG_DATA_TEXTURES_ID}-2" PKG_DATA_TEXTURES_3_ID="${PKG_DATA_TEXTURES_ID}-3" PKG_DATA_TEXTURES_4_ID="${PKG_DATA_TEXTURES_ID}-4" PKG_DATA_TEXTURES_5_ID="${PKG_DATA_TEXTURES_ID}-5" PKG_DATA_TEXTURES_6_ID="${PKG_DATA_TEXTURES_ID}-6" PKG_DATA_TEXTURES_7_ID="${PKG_DATA_TEXTURES_ID}-7" PKG_DATA_TEXTURES_8_ID="${PKG_DATA_TEXTURES_ID}-8" PKG_DATA_TEXTURES_9_ID="${PKG_DATA_TEXTURES_ID}-9" PKG_DATA_TEXTURES_10_ID="${PKG_DATA_TEXTURES_ID}-10" PKG_DATA_TEXTURES_11_ID="${PKG_DATA_TEXTURES_ID}-11" PKG_DATA_TEXTURES_12_ID="${PKG_DATA_TEXTURES_ID}-12" PKG_DATA_TEXTURES_DESCRIPTION="$PKG_DATA_DESCRIPTION - textures" PKG_DATA_TEXTURES_1_DESCRIPTION="$PKG_DATA_TEXTURES_DESCRIPTION - 1" PKG_DATA_TEXTURES_2_DESCRIPTION="$PKG_DATA_TEXTURES_DESCRIPTION - 2" PKG_DATA_TEXTURES_3_DESCRIPTION="$PKG_DATA_TEXTURES_DESCRIPTION - 3" PKG_DATA_TEXTURES_4_DESCRIPTION="$PKG_DATA_TEXTURES_DESCRIPTION - 4" PKG_DATA_TEXTURES_5_DESCRIPTION="$PKG_DATA_TEXTURES_DESCRIPTION - 5" PKG_DATA_TEXTURES_6_DESCRIPTION="$PKG_DATA_TEXTURES_DESCRIPTION - 6" PKG_DATA_TEXTURES_7_DESCRIPTION="$PKG_DATA_TEXTURES_DESCRIPTION - 7" PKG_DATA_TEXTURES_8_DESCRIPTION="$PKG_DATA_TEXTURES_DESCRIPTION - 8" PKG_DATA_TEXTURES_9_DESCRIPTION="$PKG_DATA_TEXTURES_DESCRIPTION - 9" PKG_DATA_TEXTURES_10_DESCRIPTION="$PKG_DATA_TEXTURES_DESCRIPTION - 10" PKG_DATA_TEXTURES_11_DESCRIPTION="$PKG_DATA_TEXTURES_DESCRIPTION - 11" PKG_DATA_TEXTURES_12_DESCRIPTION="$PKG_DATA_TEXTURES_DESCRIPTION - 12" PKG_DATA_PATCH0_ID="${PKG_DATA_ID}-patch0" PKG_DATA_PATCH1_ID="${PKG_DATA_ID}-patch1" PKG_DATA_PATCH2_ID="${PKG_DATA_ID}-patch2" PKG_DATA_PATCH3_ID="${PKG_DATA_ID}-patch3" PKG_DATA_PATCH4_ID="${PKG_DATA_ID}-patch4" PKG_DATA_PATCH5_ID="${PKG_DATA_ID}-patch5" PKG_DATA_PATCH6_ID="${PKG_DATA_ID}-patch6" PKG_DATA_PATCH7_ID="${PKG_DATA_ID}-patch7" PKG_DATA_PATCH8_ID="${PKG_DATA_ID}-patch8" PKG_DATA_PATCH0_DESCRIPTION="$PKG_DATA_DESCRIPTION - patch0" PKG_DATA_PATCH1_DESCRIPTION="$PKG_DATA_DESCRIPTION - patch1" PKG_DATA_PATCH2_DESCRIPTION="$PKG_DATA_DESCRIPTION - patch2" PKG_DATA_PATCH3_DESCRIPTION="$PKG_DATA_DESCRIPTION - patch3" PKG_DATA_PATCH4_DESCRIPTION="$PKG_DATA_DESCRIPTION - patch4" PKG_DATA_PATCH5_DESCRIPTION="$PKG_DATA_DESCRIPTION - patch5" PKG_DATA_PATCH6_DESCRIPTION="$PKG_DATA_DESCRIPTION - patch6" PKG_DATA_PATCH7_DESCRIPTION="$PKG_DATA_DESCRIPTION - patch7" PKG_DATA_PATCH8_DESCRIPTION="$PKG_DATA_DESCRIPTION - patch8" ## Archives patch0*.pak, patch1*.pak, patch2*.pak and patch3*.pak are dropped with the patch 4 release. PKG_DATA_PROVIDES_PATCH4=" $PKG_DATA_PATCH0_ID $PKG_DATA_PATCH1_ID $PKG_DATA_PATCH2_ID $PKG_DATA_PATCH3_ID ${PKG_DATA_PATCH3_ID}-chunk1 ${PKG_DATA_PATCH3_ID}-chunk2" ## Archives patch4*.pak are dropped with the patch 5 release. PKG_DATA_PROVIDES_PATCH5="$PKG_DATA_PROVIDES_PATCH4 $PKG_DATA_PATCH4_ID" ## Archives patch5*.pak are dropped with the patch 6 release. PKG_DATA_PROVIDES_PATCH6="$PKG_DATA_PROVIDES_PATCH5 $PKG_DATA_PATCH5_ID" ## Archives patch6*.pak are dropped with the patch 7 release. PKG_DATA_PROVIDES_PATCH7="$PKG_DATA_PROVIDES_PATCH6 $PKG_DATA_PATCH6_ID" ## Archives patch7*.pak are dropped with the patch 8 release. PKG_DATA_PROVIDES_PATCH8="$PKG_DATA_PROVIDES_PATCH7 $PKG_DATA_PATCH7_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Generate localizations configuration l10n_config_source="${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/data/localization/language.lsx" l10n_config_pattern='' l10n_config_destination_en="$(package_path 'PKG_L10N_EN')$(path_game_data)/data/localization/language.lsx" l10n_config_replacement_en='' mkdir --parents "$(dirname "$l10n_config_destination_en")" sed --expression="s;${l10n_config_pattern};${l10n_config_replacement_en};" \ "$l10n_config_source" > "$l10n_config_destination_en" l10n_config_destination_fr="$(package_path 'PKG_L10N_FR')$(path_game_data)/data/localization/language.lsx" l10n_config_replacement_fr='' mkdir --parents "$(dirname "$l10n_config_destination_fr")" sed --expression="s;${l10n_config_pattern};${l10n_config_replacement_fr};" \ "$l10n_config_source" > "$l10n_config_destination_fr" # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## Run the game binary from its parent directory game_exec_line() { cat <<- 'EOF' cd bin $(wine_command) bg3.exe "$@" EOF } launchers_generation 'PKG_BIN' # Build packages packages_generation case "$(messages_language)" in ('fr') message='version %s :' lang_en='anglaise' lang_fr='française' ;; ('en'|*) message='%s version:' lang_en='English' lang_fr='French' ;; esac printf '\n' ## English localization printf "$message" "$lang_en" ## Silence a ShellCheck false positive, word splitting is expected here ## SC2046 (warning): Quote this to prevent word splitting. # shellcheck disable=SC2046 print_instructions $(packages_list | sed 's/PKG_L10N_FR//') ## French localization printf "$message" "$lang_fr" ## Silence a ShellCheck false positive, word splitting is expected here ## SC2046 (warning): Quote this to prevent word splitting. # shellcheck disable=SC2046 print_instructions $(packages_list | sed 's/PKG_L10N_EN//') # Clean up working_directory_cleanup exit 0 games/play-book-of-demons.sh0000700000000000000000000000557514471751340015001 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Book of Demons # send your bug reports to bugs@dotslashplay.it ### script_version=20250504.3 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='book-of-demons' GAME_NAME='Book of Demons' ARCHIVE_BASE_3_NAME='setup_book_of_demons_1.05.240321_(72057).exe' ARCHIVE_BASE_3_MD5='d569fc4dddcec04aadea70ef49207566' ARCHIVE_BASE_3_TYPE='innosetup' ARCHIVE_BASE_3_SIZE='946740' ARCHIVE_BASE_3_VERSION='1.05.240321-gog72057' ARCHIVE_BASE_3_URL='https://www.gog.com/game/book_of_demons' ARCHIVE_BASE_2_NAME='setup_book_of_demons_1.05.221221_(61311).exe' ARCHIVE_BASE_2_MD5='fc7148454bba56db0bb1b8942d1bfa85' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_SIZE='950000' ARCHIVE_BASE_2_VERSION='1.05.221221-gog61311' ARCHIVE_BASE_1_NAME='setup_book_of_demons_1.05.220217_(53747).exe' ARCHIVE_BASE_1_MD5='6d33342267e0b05af5f493339d450d60' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='900000' ARCHIVE_BASE_1_VERSION='1.05.220217-gog53747' ARCHIVE_BASE_0_NAME='setup_book_of_demons_1.05.211021_(50897).exe' ARCHIVE_BASE_0_MD5='ef098c3f8dd9bc7c82ec2e8ebd6c8ec5' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='900000' ARCHIVE_BASE_0_VERSION='1.05.211021-gog50897' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' openal32.dll wrap_oal.dll r2g_launcher.exe r2g_launcher_2.xml' ## r2g_launcher.exe requires discord_game_sdk.dll and galaxy.dll CONTENT_GAME0_BIN_FILES=' discord_game_sdk.dll galaxy.dll' 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_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-cat-quest-series.sh0000700000000000000000000000500514471751340015344 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Cat Quest series: # - Cat Quest # - Cat Quest 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20240707.3 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID_EPISODE1='cat-quest-1' GAME_NAME_EPISODE1='Cat Quest' GAME_ID_EPISODE2='cat-quest-2' GAME_NAME_EPISODE2='Cat Quest II' ARCHIVE_BASE_EPISODE1_0_NAME='setup_cat_quest_1.2.10.2_(42782).exe' ARCHIVE_BASE_EPISODE1_0_MD5='496d069ea28098aa6d575fc56f8c71ec' ARCHIVE_BASE_EPISODE1_0_TYPE='innosetup' ARCHIVE_BASE_EPISODE1_0_SIZE='334416' ARCHIVE_BASE_EPISODE1_0_VERSION='1.2.10.2-gog42782' ARCHIVE_BASE_EPISODE1_0_URL='https://www.gog.com/en/game/cat_quest' ARCHIVE_BASE_EPISODE2_0_NAME='setup_cat_quest_ii_1.7.7.3_(51746).exe' ARCHIVE_BASE_EPISODE2_0_MD5='78f1001f07099b398ce66d971bf9b17c' ARCHIVE_BASE_EPISODE2_0_TYPE='innosetup' ARCHIVE_BASE_EPISODE2_0_SIZE='511796' ARCHIVE_BASE_EPISODE2_0_VERSION='1.7.7.3-gog51746' ARCHIVE_BASE_EPISODE2_0_URL='https://www.gog.com/en/game/cat_quest_ii' UNITY3D_NAME_EPISODE1='cat quest' UNITY3D_NAME_EPISODE2='cat quest ii' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES_EPISODE1=' users/${USER}/AppData/LocalLow/The Gentlebros Pte_ Ltd_/Cat Quest' WINE_PERSISTENT_DIRECTORIES_EPISODE2=' users/${USER}/Documents/Cat Quest II' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID_EPISODE1="${GAME_ID_EPISODE1}-data" PKG_DATA_ID_EPISODE2="${GAME_ID_EPISODE2}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS_EPISODE1="$PKG_DATA_ID_EPISODE1" PKG_BIN_DEPS_EPISODE2="$PKG_DATA_ID_EPISODE2" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-chained-echoes.sh0000755000000000000000000000422514471751340015022 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Chained Echoes # send your bug reports to bugs@dotslashplay.it ### script_version=20241217.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='chained-echoes' GAME_NAME='Chained Echoes' ARCHIVE_BASE_1_NAME='chained_echoes_1_322_71539.sh' ARCHIVE_BASE_1_MD5='1bfa6fc06f6f6dce5943d5a28ed92951' ARCHIVE_BASE_1_SIZE='822597' ARCHIVE_BASE_1_VERSION='1.322-gog71539' ARCHIVE_BASE_1_URL='https://www.gog.com/game/chained_echoes' ARCHIVE_BASE_0_NAME='chained_echoes_1_3_65510.sh' ARCHIVE_BASE_0_MD5='b319014ce49e39b8ff4aa3540a79e874' ARCHIVE_BASE_0_SIZE='830524' ARCHIVE_BASE_0_VERSION='1.3-gog65510' UNITY3D_NAME='Chained_Echoes' UNITY3D_NAME_0='Chained Echoes' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Prevent the inclusion of shipped Steam libraries rm --recursive "$(unity3d_name)_Data/Plugins" ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-children-of-morta-expansions.sh0000700000000000000000000000422214471751340017645 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Children of Morta expansions: # - Ancient Spirits # - Paws and Claws # send your bug reports to bugs@dotslashplay.it ### script_version=20241227.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='children-of-morta' GAME_NAME='Children of Morta' EXPANSION_ID_ANCIENT='ancient-spirits' EXPANSION_NAME_ANCIENT='Ancient Spirits' EXPANSION_ID_PAWS='paws-and-claws' EXPANSION_NAME_PAWS='Paws and Claws' # Archives ## Ancient Spirits ARCHIVE_BASE_ANCIENT_0_NAME='backers_dlc_1_2_63_48061.sh' ARCHIVE_BASE_ANCIENT_0_MD5='931cfdfd304b909efbe61ac4d6c10b34' ARCHIVE_BASE_ANCIENT_0_SIZE='1026' ARCHIVE_BASE_ANCIENT_0_VERSION='1.2.63-gog48061' ARCHIVE_BASE_ANCIENT_0_URL='https://www.gog.com/en/game/children_of_morta_ancient_spirits' ## Paws and Claws ARCHIVE_BASE_PAWS_0_NAME='children_of_morta_paws_and_claws_1_2_63_48061.sh' ARCHIVE_BASE_PAWS_0_MD5='09efef01a9bd0c1a5172e1fe7fd19530' ARCHIVE_BASE_PAWS_0_SIZE='1026' ARCHIVE_BASE_PAWS_0_VERSION='1.2.63-gog48061' ARCHIVE_BASE_PAWS_0_URL='https://www.gog.com/en/game/children_of_morta_paws_and_claws' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' goggame-*.info' PKG_PARENT_ID="$GAME_ID" PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_PARENT' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_default # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-children-of-morta.sh0000755000000000000000000000431314471751340015473 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Children of Morta # send your bug reports to bugs@dotslashplay.it ### script_version=20241227.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='children-of-morta' GAME_NAME='Children of Morta' ARCHIVE_BASE_0_NAME='children_of_morta_1_2_63_48061.sh' ARCHIVE_BASE_0_MD5='3f70026a2f2adf1eff19c25041e94a3e' ARCHIVE_BASE_0_SIZE='1309191' ARCHIVE_BASE_0_VERSION='1.2.63-gog48061' ARCHIVE_BASE_0_URL='https://www.gog.com/game/children_of_morta' UNITY3D_NAME='ChildrenOfMorta' UNITY3D_PLUGINS=' libfmodL.so libfmod.so libfmodstudioL.so libfmodstudio.so libgvraudio.so libresonanceaudio.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-citizen-sleeper.sh0000755000000000000000000000426514471751340015271 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Citizen Sleeper # send your bug reports to bugs@dotslashplay.it ### script_version=20240720.2 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='citizen-sleeper' GAME_NAME='Citizen Sleeper' ARCHIVE_BASE_2_NAME='setup_citizen_sleeper_1.4.9_(75233).exe' ARCHIVE_BASE_2_MD5='87a23767b623863d85a640892bff03f7' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_SIZE='1202756' ARCHIVE_BASE_2_VERSION='1.4.9-gog75233' ARCHIVE_BASE_2_URL='https://www.gog.com/game/citizen_sleeper' ARCHIVE_BASE_1_NAME='setup_citizen_sleeper_1.4.6_(69854).exe' ARCHIVE_BASE_1_MD5='ac9b59f393ca34a89a42ba510bbba4ab' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='1170957' ARCHIVE_BASE_1_VERSION='1.4.6-gog69854' ARCHIVE_BASE_0_NAME='setup_citizen_sleeper_1.3.9_(65533).exe' ARCHIVE_BASE_0_MD5='50b240a6cd4fb79096d6d5252daac6b7' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='973177' ARCHIVE_BASE_0_VERSION='1.3.9-gog65533' UNITY3D_NAME='citizen sleeper' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Jump Over the Age/Citizen Sleeper' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-convoy.sh0000755000000000000000000000564514471751340013507 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # Convoy # send your bug reports to bugs@dotslashplay.it ### script_version=20250803.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='convoy' GAME_NAME='Convoy' ARCHIVE_BASE_4_NAME='convoy_1_1_55_37448.sh' ARCHIVE_BASE_4_MD5='73308f6e415850f9737bd2eb9f4d8a5b' ARCHIVE_BASE_4_SIZE='851872' ARCHIVE_BASE_4_VERSION='1.1.55-gog37448' ARCHIVE_BASE_4_URL='https://www.gog.com/game/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_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_NAME='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_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-cornerstone-the-song-of-tyrim.sh0000755000000000000000000000412214471751340020006 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # Cornerstone: The Song of Tyrim # send your bug reports to bugs@dotslashplay.it ### script_version=20251023.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='cornerstone-the-song-of-tyrim' GAME_NAME='Cornerstone: The Song of Tyrim' ARCHIVE_BASE_0_NAME='Cornerstone_1.00_Linux.zip' ARCHIVE_BASE_0_MD5='ba8e257c18d3606d4b7e4295be893b9c' ARCHIVE_BASE_0_SIZE='2400000' ARCHIVE_BASE_0_VERSION='1.00-humble160425' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/cornerstone-the-song-of-tyrim' UNITY3D_NAME='Cornerstone' UNITY3D_PLUGINS=' libfmod.so libfmodstudio.so ScreenSelector.so' CONTENT_PATH_DEFAULT='.' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-costume-quest.sh0000755000000000000000000000500514471751340014776 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 VA # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Costume Quest # send your bug reports to bugs@dotslashplay.it ### script_version=20250905.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='costume-quest' GAME_NAME='Costume Quest' ARCHIVE_BASE_0_NAME='gog_costume_quest_2.0.0.3.sh' ARCHIVE_BASE_0_MD5='3c2f2126be1ca2148f333c453341b810' 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_RELATIVE_PATH='lib' CONTENT_LIBS_BIN_FILES=' libfmodevent-4.42.16.so libfmodeventnet-4.42.16.so libfmodex-4.42.16.so' ## TODO: Check if system-provided SDL2 can be used. CONTENT_LIBS_BIN_FILES="$CONTENT_LIBS_BIN_FILES 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' ## FIXME: An explicit list of files should be set. CONTENT_DOC_DATA_FILES='*' APP_MAIN_EXE='Cq.bin.x86' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' ## TODO: Fix the dependencies list, SDL2 should not be both vendored and depended upon. PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libstdc++.so.6 libopenal.so.1 libGL.so.1 libGLU.so.1 libSDL2-2.0.so.0' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-crosscode.sh0000755000000000000000000001240214471751340014143 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # CrossCode # send your bug reports to bugs@dotslashplay.it ### script_version=20251118.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='crosscode' GAME_NAME='CrossCode' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" ARCHIVE_BASE_64BIT_0_NAME='crosscode-new-linux64.zip' ARCHIVE_BASE_64BIT_0_MD5='2fece5dc78bf6bfdde7e6b3239da73b6' ARCHIVE_BASE_64BIT_0_SIZE='1019175' ARCHIVE_BASE_64BIT_0_VERSION='1.4.2-itch.2022.04.19' ARCHIVE_BASE_64BIT_0_URL='https://radicalfishgames.itch.io/crosscode' ARCHIVE_BASE_32BIT_0_NAME='crosscode-new-linux32.zip' ARCHIVE_BASE_32BIT_0_MD5='630cfd22cd5e9e168f833dfa3fce9931' ARCHIVE_BASE_32BIT_0_SIZE='1021105' ARCHIVE_BASE_32BIT_0_VERSION='1.4.2-itch.2022.04.19' ARCHIVE_BASE_32BIT_0_URL='https://radicalfishgames.itch.io/crosscode' ARCHIVE_BASE_DEMO_64BIT_0_NAME='crosscode-demo-linux64.zip' ARCHIVE_BASE_DEMO_64BIT_0_MD5='242e4cc9f48bd70a04f2d5d5e3258207' ARCHIVE_BASE_DEMO_64BIT_0_SIZE='211392' ARCHIVE_BASE_DEMO_64BIT_0_VERSION='1.0-itch1' ARCHIVE_BASE_DEMO_64BIT_0_URL='https://radicalfishgames.itch.io/crosscode' ARCHIVE_BASE_DEMO_32BIT_0_NAME='crosscode-demo-linux32.zip' ARCHIVE_BASE_DEMO_32BIT_0_MD5='6b6c85bcd7ad315ee42a4c785e3e85a6' ARCHIVE_BASE_DEMO_32BIT_0_SIZE='221220' ARCHIVE_BASE_DEMO_32BIT_0_VERSION='1.0-itch1' ARCHIVE_BASE_DEMO_32BIT_0_URL='https://radicalfishgames.itch.io/crosscode' CONTENT_PATH_DEFAULT='.' CONTENT_LIBS_BIN_RELATIVE_PATH='lib' CONTENT_LIBS_BIN_FILES=' libffmpeg.so libnode.so libnw.so' CONTENT_LIBS0_BIN_RELATIVE_PATH='swiftshader' CONTENT_LIBS0_BIN_FILES=' libEGL.so libGLESv2.so' CONTENT_GAME_BIN_FILES=' assets/modules/greenworks-0.13.0/greenworks.js assets/modules/greenworks-0.5.3/greenworks.js assets/modules/greenworks-nw-0.35/greenworks.js CrossCode' ## TODO: Improve integration of shipped libraries. CONTENT_GAME0_BIN_FILES_64BIT=' assets/modules/greenworks-0.13.0/linux64 assets/modules/greenworks-0.5.3/linux64 assets/modules/greenworks-nw-0.35/linux64' CONTENT_GAME0_BIN_FILES_DEMO_64BIT="$CONTENT_GAME0_BIN_FILES_64BIT" CONTENT_GAME0_BIN_FILES_32BIT=' assets/modules/greenworks-0.13.0/linux32 assets/modules/greenworks-0.5.3/linux32 assets/modules/greenworks-nw-0.35/linux32' CONTENT_GAME0_BIN_FILES_DEMO_32BIT="$CONTENT_GAME0_BIN_FILES_32BIT" CONTENT_GAME_DATA_FILES=' assets/data assets/extension assets/game assets/impact assets/js assets/media assets/node-webkit.html 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' APP_MAIN_EXE='CrossCode' APP_MAIN_ICON='favicon.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH_64BIT='64' PKG_BIN_ARCH_32BIT='32' PKG_BIN_ARCH_DEMO_64BIT='64' PKG_BIN_ARCH_DEMO_32BIT='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libasound.so.2 libatk-1.0.so.0 libatspi.so.0 libcairo.so.2 libc.so.6 libcups.so.2 libdbus-1.so.3 libdl.so.2 libexpat.so.1 libgcc_s.so.1 libgdk-3.so.0 libgdk_pixbuf-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-3.so.0 libm.so.6 libnspr4.so libnss3.so libnssutil3.so libpango-1.0.so.0 libpangocairo-1.0.so.0 libpthread.so.0 librt.so.1 libsmime3.so libuuid.so.1 libX11.so.6 libX11-xcb.so.1 libxcb.so.1 libXcomposite.so.1 libXcursor.so.1 libXdamage.so.1 libXext.so.6 libXfixes.so.3 libXi.so.6 libXrandr.so.2 libXrender.so.1 libXss.so.1 libXtst.so.6' PKG_BIN_DEPENDENCIES_LIBRARIES_DEMO=' libasound.so.2 libatk-1.0.so.0 libcairo.so.2 libc.so.6 libcups.so.2 libdbus-1.so.3 libdl.so.2 libexpat.so.1 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgconf-2.so.4 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libnspr4.so libnss3.so libnssutil3.so libpango-1.0.so.0 libpangocairo-1.0.so.0 libpthread.so.0 librt.so.1 libsmime3.so libstdc++.so.6 libX11.so.6 libXcomposite.so.1 libXcursor.so.1 libXdamage.so.1 libXext.so.6 libXfixes.so.3 libXi.so.6 libXrandr.so.2 libXrender.so.1 libXss.so.1 libXtst.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. case "$(current_archive)" in ('ARCHIVE_BASE_DEMO_'*) # No icon is provided with the demo builds ;; (*) content_inclusion_icons 'PKG_DATA' ;; esac content_inclusion_default # Write launchers, launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-darksiders-2.sh0000755000000000000000000000657514471751340014467 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Darksiders 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20250828.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' 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_EXTRACTOR_OPTIONS='--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_TYPE='rar' ARCHIVE_BASE_0_PART2_NAME='setup_darksiders2_deathinitive_2.1.0.4-2.bin' ARCHIVE_BASE_0_PART2_MD5='4eb87fd00792a0e35b0abd8b7bc124e0' ARCHIVE_BASE_0_PART3_NAME='setup_darksiders2_deathinitive_2.1.0.4-3.bin' ARCHIVE_BASE_0_PART3_MD5='113f5a09d0289db3b1c5a5f85a82849e' ARCHIVE_BASE_0_PART4_NAME='setup_darksiders2_deathinitive_2.1.0.4-4.bin' ARCHIVE_BASE_0_PART4_MD5='ca12e47f9cce195b09a66c7ff27121ab' 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' ## Work around a missing vkd3d feature leading to a black screen after the logo videos, ## cf. https://bugs.winehq.org/show_bug.cgi?id=54778 ## (WINE 10.0) WINE_WINETRICKS_VERBS='d3dcompiler_47' APP_MAIN_EXE='darksiders2.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA_MEDIA PKG_DATA_SOUNDS PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_DATA_MEDIA PKG_DATA_SOUNDS' PKG_DATA_MEDIA_ID="${PKG_DATA_ID}-media" PKG_DATA_MEDIA_DESCRIPTION="$PKG_DATA_DESCRIPTION - media" PKG_DATA_SOUNDS_ID="${PKG_DATA_ID}-sounds" PKG_DATA_SOUNDS_DESCRIPTION="$PKG_DATA_DESCRIPTION - sounds" ## convmv is used to convert file paths to lower case. REQUIREMENTS_LIST=' convmv' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default ## Convert all file paths to lower case. tolower "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-deep-sky-derelicts.sh0000755000000000000000000000377414471751340015670 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Deep Sky Derelicts # send your bug reports to bugs@dotslashplay.it ### script_version=20241109.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='deep-sky-derelicts' GAME_NAME='Deep Sky Derelicts' ARCHIVE_BASE_0_NAME='deep_sky_derelicts_1_5_3_37791.sh' ARCHIVE_BASE_0_MD5='a55656f3033c2d339d0cbaeba7503270' ARCHIVE_BASE_0_SIZE='1131190' ARCHIVE_BASE_0_VERSION='1.5.3-gog37791' ARCHIVE_BASE_0_URL='https://www.gog.com/game/deep_sky_derelicts' UNITY3D_NAME='Deep Sky Derelicts' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_DOC_DATA_FILES=' LICENSE README.txt' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-deltarune-chapter-1.sh0000755000000000000000000000416314471751340015731 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Deltarune - Chapter 1 # send your bug reports to bugs@dotslashplay.it ### script_version=20250828.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='deltarune-chapter-1' GAME_NAME='Deltarune - Chapter 1' ARCHIVE_BASE_0_NAME='SURVEY_PROGRAM_WINDOWS_ENGLISH.exe' ARCHIVE_BASE_0_MD5='2f92f4ad09d41287b36650aaf1e5359e' ARCHIVE_BASE_0_TYPE='nullsoft-installer' ARCHIVE_BASE_0_VERSION='1.0-deltarune' ARCHIVE_BASE_0_SIZE='95000' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' deltarune.exe' CONTENT_GAME_DATA_FILES=' mus lang data.win *.dat *.ogg' CONTENT_DOC_DATA_FILES=' license.txt' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Local/DELTARUNE' APP_MAIN_EXE='deltarune.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' ## convmv is used to convert file paths to lower case. REQUIREMENTS_LIST=' convmv' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default ## Convert all file paths to lower case. tolower "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-dex.sh0000700000000000000000000000445714471751340012740 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2020 Hoël Bézier set -o errexit ### # Dex # send your bug reports to bugs@dotslashplay.it ### script_version=20250507.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' 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_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-dicey-dungeons.sh0000755000000000000000000000526114471751340015101 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 berru # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Dicey Dungeons # send your bug reports to bugs@dotslashplay.it ### script_version=20250319.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='dicey-dungeons' GAME_NAME='Dicey Dungeons' ARCHIVE_BASE_1_NAME='dicey-dungeons-linux64.zip' ARCHIVE_BASE_1_MD5='7561697f602e3a0af054569e3a8114b3' ARCHIVE_BASE_1_SIZE='110000' ARCHIVE_BASE_1_VERSION='1.11-itch.2021.03.18' ARCHIVE_BASE_1_URL='https://terrycavanagh.itch.io/dicey-dungeons' ARCHIVE_BASE_0_NAME='dicey-dungeons-linux64.zip' ARCHIVE_BASE_0_MD5='14879aa94aef2291d6aec0c4c9e760c5' ARCHIVE_BASE_0_SIZE='450000' ARCHIVE_BASE_0_VERSION='1.10-itch.2020.11.05' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' diceydungeons lime.ndll' CONTENT_GAME_DATA_FILES=' data manifest mods soundstuff' APP_MAIN_EXE='diceydungeons' APP_MAIN_ICON='data/icon.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Build 512×512 icon from the 1024×1024 provided one REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} convert" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Build 512×512 icon from the 1024×1024 provided one icon_source="$APP_MAIN_ICON" icon_destination="${APP_MAIN_ICON%.png}_512.png" convert "$icon_source" -resize 512 "$icon_destination" ) # Include game data ## Build 512×512 icon from the 1024×1024 provided one APP_MAIN_ICON_512="${APP_MAIN_ICON%.png}_512.png" APP_MAIN_ICONS_LIST='APP_MAIN_ICON APP_MAIN_ICON_512' content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-dins-curse.sh0000700000000000000000000000467614471751340014237 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Din's Curse # send your bug reports to bugs@dotslashplay.it ### script_version=20250502.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='dins-curse' GAME_NAME='Din’s Curse' ARCHIVE_BASE_0_NAME='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_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' 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' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## Force the use of system-provided SDL APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN') $(launcher_tweak_sdl_override)" PKG_BIN_DEPENDENCIES_LIBRARIES="$(dependencies_list_native_libraries 'PKG_BIN') libSDL2-2.0.so.0" ## Prevent a game crash when using the Wayland video backend of SDL APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN')"' # Prevent a game crash when using the Wayland video backend of SDL if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-divine-divinity.sh0000755000000000000000000001016014471751340015271 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2020 Mopi set -o errexit ### # Divine Divinity # send your bug reports to bugs@dotslashplay.it ### script_version=20251117.3 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='divine-divinity' GAME_NAME='Divine Divinity' ARCHIVE_BASE_HUMBLE_EN_0_NAME='DivineDivinity.zip' ARCHIVE_BASE_HUMBLE_EN_0_MD5='01bd76cb8e3054d7a32dda383b96fa73' ARCHIVE_BASE_HUMBLE_EN_0_SIZE='4066351' ARCHIVE_BASE_HUMBLE_EN_0_VERSION='1.0062a-humble1' ARCHIVE_BASE_HUMBLE_EN_0_URL='https://www.humblebundle.com/store/divine-divinity' ## The Humble Bundle archive includes an InnoSetup installer. REQUIREMENTS_LIST_HUMBLE=' innoextract' ARCHIVE_BASE_GOG_FR_0_NAME='setup_divine_divinity_french_2.1.0.32.exe' ARCHIVE_BASE_GOG_FR_0_MD5='f755d69ad7d319fb70298844dcb3861a' ARCHIVE_BASE_GOG_FR_0_TYPE='innosetup' ARCHIVE_BASE_GOG_FR_0_SIZE='2400000' ARCHIVE_BASE_GOG_FR_0_VERSION='1.0062a-gog2.1.0.32' ARCHIVE_BASE_GOG_FR_0_URL='https://www.gog.com/game/divine_divinity' ARCHIVE_BASE_GOG_EN_0_NAME='setup_divine_divinity_2.0.0.21.exe' ARCHIVE_BASE_GOG_EN_0_MD5='3798d48f04a7a8444fd9f4c32b75b41d' ARCHIVE_BASE_GOG_EN_0_TYPE='innosetup' ARCHIVE_BASE_GOG_EN_0_SIZE='2400000' ARCHIVE_BASE_GOG_EN_0_VERSION='1.0062a-gog2.0.0.21' ARCHIVE_BASE_GOG_EN_0_URL='https://www.gog.com/game/divine_divinity' CONTENT_PATH_DEFAULT='app' ## div.exe requirements CONTENT_LIBS_BIN_FILES=' fmod.dll DivDialogSystem.dll OsirisDLL.dll binkw32.dll' ## The game crashes on launch if the following libraries are missing. CONTENT_LIBS0_BIN_FILES=' slash?.dll' CONTENT_GAME_BIN_FILES=' sound.cfg configtool.exe div.exe secdrv.sys' CONTENT_GAME_L10N_FILES=' localizations dat/english dat/french config.lcl' CONTENT_GAME_DATA_FILES=' capture dat fonts global main sound static divinityevent.dat testimage.tga keylist.txt' CONTENT_DOC_DATA_FILES=' *.pdf' USER_PERSISTENT_DIRECTORIES=' dynamic global savegames' USER_PERSISTENT_FILES=' persist.dat config.div config.lcl keylist.txt dat/usernotes.bin static/imagelists/collide.* *.000 *.cfg' APP_MAIN_EXE='div.exe' APP_CONFIG_ID="${GAME_ID}_configuration" APP_CONFIG_NAME="${GAME_NAME} - Configuration" APP_CONFIG_CAT='Settings' APP_CONFIG_EXE='configtool.exe' PACKAGES_LIST=' PKG_BIN PKG_L10N PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA PKG_L10N_BASE' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_L10N_BASE_ID="${GAME_ID}-l10n" PKG_L10N_ID_HUMBLE_EN="${PKG_L10N_BASE_ID}-en" PKG_L10N_ID_GOG_FR="${PKG_L10N_BASE_ID}-fr" PKG_L10N_ID_GOG_EN="${PKG_L10N_BASE_ID}-en" PKG_L10N_PROVIDES=" $PKG_L10N_BASE_ID" PKG_L10N_DESCRIPTION_HUMBLE_EN='English localisation' PKG_L10N_DESCRIPTION_GOG_FR='French localisation' PKG_L10N_DESCRIPTION_GOG_EN='English localisation' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default case "$(current_archive)" in ('ARCHIVE_BASE_HUMBLE_EN_'*) ARCHIVE_INNER_PATH="${PLAYIT_WORKDIR}/gamedata/Build/DivInstaller_EN.exe" ARCHIVE_INNER_TYPE='innosetup' archive_extraction 'ARCHIVE_INNER' rm --recursive "${PLAYIT_WORKDIR}/gamedata/Build" ;; esac # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. ## Install shipped libraries. wineprefix_init_custom() { cat <<- EOF # Install shipped libraries. ln --force --symbolic $(path_libraries)/* "\${PATH_PREFIX}" EOF } launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-divinity-original-sin-1.sh0000755000000000000000000001437414471751340016557 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Divinity: Original Sin # send your bug reports to bugs@dotslashplay.it ### script_version=20251022.4 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='divinity-original-sin-1' GAME_NAME='Divinity: Original Sin' ARCHIVE_BASE_0_NAME='divinity_original_sin_enhanced_edition_en_2_0_119_430_ch_17075.sh' ARCHIVE_BASE_0_MD5='89f526c1030d6d352b7df65361ab71e6' ARCHIVE_BASE_0_SIZE='11000000' ARCHIVE_BASE_0_VERSION='2.0.119.430-gog17075' ARCHIVE_BASE_0_URL='https://www.gog.com/game/divinity_original_sin_enhanced_edition' ARCHIVE_OPTIONAL_ICONS_NAME='divinity-original-sin-1_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5='8f01ea213b7b2c966ce3c065333f5406' ARCHIVE_OPTIONAL_ICONS_URL='https://downloads.dotslashplay.it/games/divinity-original-sin-1/' CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 16x16 32x32 48x48 64x64 128x128 256x256 512x512' CONTENT_PATH_DEFAULT='data/noarch/game' 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 libpcre.so.3 libpcre.so.3.13.1 libRenderFramework.so' ## The game binary is linked against libsteam_api.so, so this library can not be dropped. CONTENT_LIBS0_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' PACKAGES_LIST=' PKG_BIN PKG_L10N_EN PKG_L10N_FR PKG_DATA_VOICES PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc++abi.so.1 libc++.so.1 libc.so.6 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 libstdc++.so.6 libz.so.1' ## Easier upgrades from pre-20240516.2 packages PKG_BIN_PROVIDES=' divinity-original-sin' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_EN_ID="${PKG_L10N_ID}-en" PKG_L10N_FR_ID="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_EN_DESCRIPTION='English localisation' PKG_L10N_FR_DESCRIPTION='French localisation' ## Easier upgrades from pre-20240516.2 packages PKG_L10N_PROVIDES="$PKG_L10N_PROVIDES divinity-original-sin-l10n" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_DATA_VOICES' ## Easier upgrades from pre-20240516.2 packages PKG_DATA_PROVIDES=' divinity-original-sin-data' PKG_DATA_VOICES_ID="${PKG_DATA_ID}-voices" PKG_DATA_VOICES_DESCRIPTION="$PKG_DATA_DESCRIPTION - voices" ## Easier upgrades from pre-20240516.2 packages PKG_DATA_VOICES_PROVIDES=' divinity-original-sin-data-voices' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Generate the configuration of localization packages. config_source="${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/Data/Localization/language.lsx" config_pattern='id="Value" value="[A-Za-z]*" type="20"' mkdir --parents \ "$(package_path 'PKG_L10N_EN')$(path_game_data)/Data/Localization" \ "$(package_path 'PKG_L10N_FR')$(path_game_data)/Data/Localization" ## English localization config_replacement_en='id="Value" value="English" type="20"' sed --expression="s/${config_pattern}/${config_replacement_en}/" \ "$config_source" > "$(package_path 'PKG_L10N_EN')$(path_game_data)/Data/Localization/language.lsx" ## French localization config_replacement_fr='id="Value" value="French" type="20"' sed --expression="s/${config_pattern}/${config_replacement_fr}/" \ "$config_source" > "$(package_path 'PKG_L10N_FR')$(path_game_data)/Data/Localization/language.lsx" # Include game data. content_inclusion_icons content_inclusion_default # Work around the binary link against libSDL2-2.0.so.1. ln --symbolic \ "$(path_libraries_system)/libSDL2-2.0.so.0" \ "$(package_path 'PKG_BIN')$(path_libraries)/libSDL2-2.0.so.1" # Write launchers. ## Force the use of system-provided SDL. APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN') $(launcher_tweak_sdl_override)" PKG_BIN_DEPENDENCIES_LIBRARIES="$(dependencies_libraries_list 'PKG_BIN') libSDL2-2.0.so.0" ## Prevent a game crash when using the Wayland video backend of SDL. APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN')"' # Prevent a game crash when using the Wayland video backend of SDL. if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' launchers_generation # Build packages. packages_generation case "$(messages_language)" in ('fr') lang_string='version %s :' lang_en='anglaise' lang_fr='française' ;; ('en'|*) lang_string='%s version:' lang_en='English' lang_fr='French' ;; esac printf '\n' printf "$lang_string" "$lang_en" print_instructions 'PKG_BIN' 'PKG_DATA_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. working_directory_cleanup exit 0 games/play-divinity-original-sin-2.sh0000755000000000000000000003056314471751340016556 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2025 Antoine Le Gonidec set -o errexit ### # Divinity: Original Sin 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20250602.10 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='divinity-original-sin-2' GAME_NAME='Divinity: Original Sin 2' GAME_ID_CLASSIC='divinity-original-sin-2-classic' GAME_NAME_CLASSIC='Divinity: Original Sin 2 (classic)' ARCHIVE_BASE_0_NAME='setup_divinity_original_sin_2_-_definitive_edition_3.6.117.3735_ptbr_(58811).exe' ARCHIVE_BASE_0_MD5='bfb4abc5041d7cefd74931f97cfba847' ARCHIVE_BASE_0_EXTRACTOR='innoextract' ## Do not convert file paths to lowercase, as it prevents some textures from being loaded. ARCHIVE_BASE_0_EXTRACTOR_OPTIONS=' ' ARCHIVE_BASE_0_PART1_NAME='setup_divinity_original_sin_2_-_definitive_edition_3.6.117.3735_ptbr_(58811)-1.bin' ARCHIVE_BASE_0_PART1_MD5='540a4f6433cfc4db5e7e2a9d225ceb66' ARCHIVE_BASE_0_PART2_NAME='setup_divinity_original_sin_2_-_definitive_edition_3.6.117.3735_ptbr_(58811)-2.bin' ARCHIVE_BASE_0_PART2_MD5='e6a3d1c21b8df032544b56ca9fe36c5a' ARCHIVE_BASE_0_PART3_NAME='setup_divinity_original_sin_2_-_definitive_edition_3.6.117.3735_ptbr_(58811)-3.bin' ARCHIVE_BASE_0_PART3_MD5='5548e2c4e1a83a4856af5e713afcd4d8' ARCHIVE_BASE_0_PART4_NAME='setup_divinity_original_sin_2_-_definitive_edition_3.6.117.3735_ptbr_(58811)-4.bin' ARCHIVE_BASE_0_PART4_MD5='04dd17ab5af1cd4dc1c8d06afd23ca6a' ARCHIVE_BASE_0_PART5_NAME='setup_divinity_original_sin_2_-_definitive_edition_3.6.117.3735_ptbr_(58811)-5.bin' ARCHIVE_BASE_0_PART5_MD5='4902d66b7e69d575a1ade4e20fb36381' ARCHIVE_BASE_0_PART6_NAME='setup_divinity_original_sin_2_-_definitive_edition_3.6.117.3735_ptbr_(58811)-6.bin' ARCHIVE_BASE_0_PART6_MD5='ea7452ece6e4652c97f2f552c711b184' ARCHIVE_BASE_0_PART7_NAME='setup_divinity_original_sin_2_-_definitive_edition_3.6.117.3735_ptbr_(58811)-7.bin' ARCHIVE_BASE_0_PART7_MD5='f9c8f89d3d2216da07eccf517b5ce406' ARCHIVE_BASE_0_PART8_NAME='setup_divinity_original_sin_2_-_definitive_edition_3.6.117.3735_ptbr_(58811)-8.bin' ARCHIVE_BASE_0_PART8_MD5='55f514d93f39bbf77f70c45f4ef532bb' ARCHIVE_BASE_0_PART9_NAME='setup_divinity_original_sin_2_-_definitive_edition_3.6.117.3735_ptbr_(58811)-9.bin' ARCHIVE_BASE_0_PART9_MD5='59f6aa38beaf00f738c5b96ff62f3459' ARCHIVE_BASE_0_PART10_NAME='setup_divinity_original_sin_2_-_definitive_edition_3.6.117.3735_ptbr_(58811)-10.bin' ARCHIVE_BASE_0_PART10_MD5='e5db62f0e3fe46abbbd9f289f6e5fe6a' ARCHIVE_BASE_0_PART11_NAME='setup_divinity_original_sin_2_-_definitive_edition_3.6.117.3735_ptbr_(58811)-11.bin' ARCHIVE_BASE_0_PART11_MD5='84b8f9a8595133d51e1572bd7bacfcb1' ARCHIVE_BASE_0_PART12_NAME='setup_divinity_original_sin_2_-_definitive_edition_3.6.117.3735_ptbr_(58811)-12.bin' ARCHIVE_BASE_0_PART12_MD5='60b7bdd7b74ed067588f209498688d42' ARCHIVE_BASE_0_SIZE='62080538' ARCHIVE_BASE_0_VERSION='3.6.117.3735-gog58811' ARCHIVE_BASE_0_URL='https://www.gog.com/game/divinity_original_sin_2' ## Definitive Edition CONTENT_PATH_DEFAULT='DefEd' CONTENT_GAME_BIN_FILES=' bin' CONTENT_GAME_L10N_EN_FILES=' data/localization/english.pak' CONTENT_GAME_L10N_FR_FILES=' data/localization/french' CONTENT_GAME_DATA_SOUNDS_FILES=' data/sharedsound*.pak data/localization/voice*.pak' CONTENT_GAME_DATA_VIDEOS_FILES=' data/localization/video*.pak' CONTENT_GAME_DATA_TEXTURES_FILES=' data/textures*.pak' CONTENT_GAME_DATA_FILES=' data/arena.pak data/effects.pak data/engine.pak data/engineshaders.pak data/gamemaster.pak data/game.pak data/gameplatform.pak data/icons.pak data/lowtex.pak data/materials.pak data/minimaps.pak data/origins*.pak data/patch*.pak data/shared*.pak' ## Original build CONTENT_PATH_DEFAULT_CLASSIC='.' CONTENT_GAME_CLASSIC_BIN_FILES=' classic' CONTENT_GAME_CLASSIC_L10N_EN_FILES=' data/localization/english.pak' CONTENT_GAME_CLASSIC_L10N_FR_FILES=' data/localization/french.pak' CONTENT_GAME_CLASSIC_DATA_SOUNDS_FILES=' data/sound data/soundbanks.pak data/localization/voice*.pak' CONTENT_GAME_CLASSIC_DATA_VIDEOS_FILES=' data/localization/video*.pak' CONTENT_GAME_CLASSIC_DATA_TEXTURES_1_FILES=' data/textures.pak data/textures_[1-4].pak' CONTENT_GAME_CLASSIC_DATA_TEXTURES_2_FILES=' data/textures_[5-9].pak' CONTENT_GAME_CLASSIC_DATA_FILES=' data/arena.pak data/effects.pak data/engine.pak data/engineshaders.pak data/gamemaster.pak data/game.pak data/gameplatform.pak data/icons.pak data/lowtex.pak data/materials.pak data/minimaps.pak data/shareddos.pak data/squirrel.pak data/origins*.pak data/patch*.pak data/shared*.pak' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/Larian Studios/Divinity Original Sin 2 Definitive Edition' WINE_PERSISTENT_DIRECTORIES_CLASSIC=' users/${USER}/Documents/Larian Studios/Divinity Original Sin 2' ## With wined3d, some textures are rendered as plain white. ## cf. https://bugs.winehq.org/show_bug.cgi?id=43812 ## (WINE 10.0) WINE_DIRECT3D_RENDERER='dxvk' APP_MAIN_EXE='bin/EoCApp.exe' APP_MAIN_EXE_CLASSIC='Classic/EoCApp.exe' ## The game fails to display its window when using the wayland backend of SDL. APP_MAIN_PRERUN=' # The game fails to display its window 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_SOUNDS PKG_DATA_VIDEOS PKG_DATA_TEXTURES PKG_DATA PKG_CLASSIC_BIN PKG_CLASSIC_L10N_EN PKG_CLASSIC_L10N_FR PKG_CLASSIC_DATA_SOUNDS PKG_CLASSIC_DATA_VIDEOS PKG_CLASSIC_DATA_TEXTURES_1 PKG_CLASSIC_DATA_TEXTURES_2 PKG_CLASSIC_DATA' ## Definitive Edition PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N PKG_DATA' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_EN_ID="${PKG_L10N_ID}-en" PKG_L10N_FR_ID="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_EN_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_FR_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_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_DEPENDENCIES_SIBLINGS=' PKG_DATA_SOUNDS PKG_DATA_VIDEOS PKG_DATA_TEXTURES' PKG_DATA_SOUNDS_ID="${PKG_DATA_ID}-sounds" PKG_DATA_SOUNDS_DESCRIPTION="$PKG_DATA_DESCRIPTION - sounds and voices" PKG_DATA_VIDEOS_ID="${PKG_DATA_ID}-videos" PKG_DATA_VIDEOS_DESCRIPTION="$PKG_DATA_DESCRIPTION - videos" PKG_DATA_TEXTURES_ID="${PKG_DATA_ID}-textures" PKG_DATA_TEXTURES_DESCRIPTION="$PKG_DATA_DESCRIPTION - textures" ## Original build PKG_CLASSIC_BIN_ARCH='64' PKG_CLASSIC_BIN_DEPENDENCIES_SIBLINGS=' PKG_CLASSIC_L10N PKG_CLASSIC_DATA' PKG_CLASSIC_L10N_ID="${GAME_ID_CLASSIC}-l10n" PKG_CLASSIC_L10N_EN_ID="${PKG_CLASSIC_L10N_ID}-en" PKG_CLASSIC_L10N_FR_ID="${PKG_CLASSIC_L10N_ID}-fr" PKG_CLASSIC_L10N_PROVIDES=" $PKG_CLASSIC_L10N_ID" PKG_CLASSIC_L10N_EN_PROVIDES="$PKG_CLASSIC_L10N_PROVIDES" PKG_CLASSIC_L10N_FR_PROVIDES="$PKG_CLASSIC_L10N_PROVIDES" PKG_CLASSIC_L10N_DESCRIPTION='localization' PKG_CLASSIC_L10N_EN_DESCRIPTION="$PKG_CLASSIC_L10N_DESCRIPTION - English" PKG_CLASSIC_L10N_FR_DESCRIPTION="$PKG_CLASSIC_L10N_DESCRIPTION - French" PKG_CLASSIC_DATA_ID="${GAME_ID_CLASSIC}-data" PKG_CLASSIC_DATA_DESCRIPTION='data' PKG_CLASSIC_DATA_DEPENDENCIES_SIBLINGS=' PKG_CLASSIC_DATA_SOUNDS PKG_CLASSIC_DATA_VIDEOS PKG_CLASSIC_DATA_TEXTURES_1 PKG_CLASSIC_DATA_TEXTURES_2' PKG_CLASSIC_DATA_SOUNDS_ID="${PKG_CLASSIC_DATA_ID}-sounds" PKG_CLASSIC_DATA_SOUNDS_DESCRIPTION="$PKG_CLASSIC_DATA_DESCRIPTION - sounds and voices" PKG_CLASSIC_DATA_VIDEOS_ID="${PKG_CLASSIC_DATA_ID}-videos" PKG_CLASSIC_DATA_VIDEOS_DESCRIPTION="$PKG_CLASSIC_DATA_DESCRIPTION - videos" PKG_CLASSIC_DATA_TEXTURES_ID="${PKG_CLASSIC_DATA_ID}-textures" PKG_CLASSIC_DATA_TEXTURES_1_ID="${PKG_CLASSIC_DATA_TEXTURES_ID}-1" PKG_CLASSIC_DATA_TEXTURES_2_ID="${PKG_CLASSIC_DATA_TEXTURES_ID}-2" PKG_CLASSIC_DATA_TEXTURES_DESCRIPTION="$PKG_CLASSIC_DATA_DESCRIPTION - textures" PKG_CLASSIC_DATA_TEXTURES_1_DESCRIPTION="$PKG_CLASSIC_DATA_TEXTURES_DESCRIPTION - 1" PKG_CLASSIC_DATA_TEXTURES_2_DESCRIPTION="$PKG_CLASSIC_DATA_TEXTURES_DESCRIPTION - 2" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Definitive Edition - 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" ) ( cd "${PLAYIT_WORKDIR}/gamedata/$( set_current_package 'PKG_CLASSIC_BIN' content_path_default )" # Original build - 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_CLASSIC_L10N_EN')$(set_current_package 'PKG_CLASSIC_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_CLASSIC_L10N_FR')$(set_current_package 'PKG_CLASSIC_L10N_FR';path_game_data)/${config_source}" config_replacement_fr='id="Value" value="French" type="20"' mkdir --parents "$(dirname "$config_destination_fr")" sed --expression="s/${config_pattern}/${config_replacement_fr}/" \ "$config_source" > "$config_destination_fr" ) # Include game data content_inclusion_icons 'PKG_DATA' ## Work around icons_inclusion_single_application incomplete support for package context. ( set_current_package 'PKG_CLASSIC_DATA' content_inclusion_icons 'PKG_CLASSIC_DATA' ) ## Work around content_inclusion incomplete support for package context. for package in $(packages_list); do ( set_current_package "$package" content_inclusion_default_game_data "$package" ) done # Write launchers launchers_generation 'PKG_BIN' launchers_generation 'PKG_CLASSIC_BIN' # Build packages packages_generation case "$(messages_language)" in ('fr') lang_string='Definitive Edition - version %s :' lang_en='anglaise' lang_fr='française' ;; ('en'|*) lang_string='Definitive Edition - %s version:' lang_en='English' lang_fr='French' ;; esac printf '\n' printf "$lang_string" "$lang_en" print_instructions \ 'PKG_BIN' \ 'PKG_DATA' 'PKG_DATA_SOUNDS' 'PKG_DATA_VIDEOS' 'PKG_DATA_TEXTURES' \ 'PKG_L10N_EN' printf "$lang_string" "$lang_fr" print_instructions \ 'PKG_BIN' \ 'PKG_DATA' 'PKG_DATA_SOUNDS' 'PKG_DATA_VIDEOS' 'PKG_DATA_TEXTURES' \ 'PKG_L10N_FR' case "$(messages_language)" in ('fr') lang_string='Version originale - version %s :' lang_en='anglaise' lang_fr='française' ;; ('en'|*) lang_string='Original build - %s version:' lang_en='English' lang_fr='French' ;; esac printf '\n' printf "$lang_string" "$lang_en" print_instructions \ 'PKG_CLASSIC_BIN' \ 'PKG_CLASSIC_DATA' 'PKG_CLASSIC_DATA_SOUNDS' 'PKG_CLASSIC_DATA_VIDEOS' 'PKG_CLASSIC_DATA_TEXTURES_1' 'PKG_CLASSIC_DATA_TEXTURES_2' \ 'PKG_CLASSIC_L10N_EN' printf "$lang_string" "$lang_fr" print_instructions \ 'PKG_CLASSIC_BIN' \ 'PKG_CLASSIC_DATA' 'PKG_CLASSIC_DATA_SOUNDS' 'PKG_CLASSIC_DATA_VIDEOS' 'PKG_CLASSIC_DATA_TEXTURES_1' 'PKG_CLASSIC_DATA_TEXTURES_2' \ 'PKG_CLASSIC_L10N_FR' # Clean up working_directory_cleanup exit 0 games/play-dragon-age-origins.sh0000755000000000000000000003433014471751340015637 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Dragon Age: Origins # send your bug reports to bugs@dotslashplay.it ### script_version=20250828.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='dragon-age-origins' GAME_NAME='Dragon Age: Origins' ARCHIVE_BASE_2_NAME='setup_dragon_age_origins_-_ultimate_edition_1.05_gog_0.8_(78205).exe' ARCHIVE_BASE_2_MD5='18e2e1f3fba4184ca15d6170d0a2ce51' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_PART1_NAME='setup_dragon_age_origins_-_ultimate_edition_1.05_gog_0.8_(78205)-1.bin' ARCHIVE_BASE_2_PART1_MD5='0735b7a919fe9b1a7e7d31cfea156ee5' ARCHIVE_BASE_2_PART2_NAME='setup_dragon_age_origins_-_ultimate_edition_1.05_gog_0.8_(78205)-2.bin' ARCHIVE_BASE_2_PART2_MD5='c7f59542be194793d3f1664b2b079d64' ARCHIVE_BASE_2_PART3_NAME='setup_dragon_age_origins_-_ultimate_edition_1.05_gog_0.8_(78205)-3.bin' ARCHIVE_BASE_2_PART3_MD5='87ef8829f56c5b985b7f3eb1893249de' ARCHIVE_BASE_2_PART4_NAME='setup_dragon_age_origins_-_ultimate_edition_1.05_gog_0.8_(78205)-4.bin' ARCHIVE_BASE_2_PART4_MD5='04f49cccc87d268fef2a7a4cafce27e8' ARCHIVE_BASE_2_PART5_NAME='setup_dragon_age_origins_-_ultimate_edition_1.05_gog_0.8_(78205)-5.bin' ARCHIVE_BASE_2_PART5_MD5='e44d862bd7221d065be30cd80de4d568' ARCHIVE_BASE_2_PART6_NAME='setup_dragon_age_origins_-_ultimate_edition_1.05_gog_0.8_(78205)-6.bin' ARCHIVE_BASE_2_PART6_MD5='e97793771570a38174e202704297fe37' ARCHIVE_BASE_2_SIZE='38342773' ARCHIVE_BASE_2_VERSION='1.05-gog78205' ARCHIVE_BASE_2_URL='https://www.gog.com/game/dragon_age_origins' ARCHIVE_BASE_1_NAME='setup_dragon_age_origins_-_ultimate_edition_1.05_gog_0.5_(76885).exe' ARCHIVE_BASE_1_MD5='fa14b944ca5ce04e462afe61e932f1b0' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_dragon_age_origins_-_ultimate_edition_1.05_gog_0.5_(76885)-1.bin' ARCHIVE_BASE_1_PART1_MD5='910ff0ff7db44dd44c9b7fbc01439226' ARCHIVE_BASE_1_PART2_NAME='setup_dragon_age_origins_-_ultimate_edition_1.05_gog_0.5_(76885)-2.bin' ARCHIVE_BASE_1_PART2_MD5='317484fbbe084fdfac86af933a3827d3' ARCHIVE_BASE_1_PART3_NAME='setup_dragon_age_origins_-_ultimate_edition_1.05_gog_0.5_(76885)-3.bin' ARCHIVE_BASE_1_PART3_MD5='c7a236056afe1e24070e747760cab8d9' ARCHIVE_BASE_1_PART4_NAME='setup_dragon_age_origins_-_ultimate_edition_1.05_gog_0.5_(76885)-4.bin' ARCHIVE_BASE_1_PART4_MD5='0b08303e31e29708cc679d92b5b9c607' ARCHIVE_BASE_1_PART5_NAME='setup_dragon_age_origins_-_ultimate_edition_1.05_gog_0.5_(76885)-5.bin' ARCHIVE_BASE_1_PART5_MD5='dead382df73a84c02ee54a5b34050fcc' ARCHIVE_BASE_1_PART6_NAME='setup_dragon_age_origins_-_ultimate_edition_1.05_gog_0.5_(76885)-6.bin' ARCHIVE_BASE_1_PART6_MD5='9c94a20453a52d5284c89aa4507949e0' ARCHIVE_BASE_1_SIZE='38343327' ARCHIVE_BASE_1_VERSION='1.05-gog76885' ARCHIVE_BASE_0_NAME='setup_dragon_age_origins_ultimate_2.1.0.4.exe' ARCHIVE_BASE_0_MD5='2bfdbc94523ef4c21476f64ef8029479' ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS='--gog' ARCHIVE_BASE_0_PART1_NAME='setup_dragon_age_origins_ultimate_2.1.0.4-1.bin' ARCHIVE_BASE_0_PART1_MD5='b6e68b1b3b11fdddea809a5f11368036' ARCHIVE_BASE_0_PART1_EXTRACTOR='unar' ARCHIVE_BASE_0_PART2_NAME='setup_dragon_age_origins_ultimate_2.1.0.4-2.bin' ARCHIVE_BASE_0_PART2_MD5='71d813d6827941a90422a40088d64b78' ARCHIVE_BASE_0_PART3_NAME='setup_dragon_age_origins_ultimate_2.1.0.4-3.bin' ARCHIVE_BASE_0_PART3_MD5='2ff9cc2bb41435429ee6277106a6a568' ARCHIVE_BASE_0_PART4_NAME='setup_dragon_age_origins_ultimate_2.1.0.4-4.bin' ARCHIVE_BASE_0_PART4_MD5='a25c58b43a2e468fcf72446f57542115' ARCHIVE_BASE_0_PART5_NAME='setup_dragon_age_origins_ultimate_2.1.0.4-5.bin' ARCHIVE_BASE_0_PART5_MD5='4ce5f6dceb01c9a1fc85c759c436b7b2' ARCHIVE_BASE_0_PART6_NAME='setup_dragon_age_origins_ultimate_2.1.0.4-6.bin' ARCHIVE_BASE_0_PART6_MD5='e2d13b236af30f210e0eb65aec5d137e' ARCHIVE_BASE_0_SIZE='39000000' ARCHIVE_BASE_0_VERSION='1.05-gog2.1.0.4' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='game' CONTENT_GAME_BIN_FILES=' bin_ship daoriginslauncher.exe' CONTENT_GAME_L10N_TEXT_EN_FILES=' *_en-us.tlk' CONTENT_GAME_L10N_TEXT_DE_FILES=' */locale/de-de/prelude_map.bik */locale/de-de/game_intro.cub */locale/de-de/game_intro.cut *_de-de.tlk *_de-de_f.tlk' CONTENT_GAME_L10N_TEXT_FR_FILES=' */locale/fr-fr/prelude_map.bik */locale/fr-fr/game_intro.cub */locale/fr-fr/game_intro.cut *_fr-fr.tlk *_fr-fr_f.tlk' CONTENT_GAME_L10N_TEXT_PL_FILES=' */locale/pl-pl/dragon_age_main.bik */locale/pl-pl/prelude_map.bik */locale/pl-pl/game_intro.cub */locale/pl-pl/game_intro.cut *_pl-pl.tlk *_pl-pl_f.tlk' CONTENT_GAME_L10N_TEXT_RU_FILES=' */locale/ru-ru/dragon_age_main.bik */locale/ru-ru/prelude_map.bik */locale/ru-ru/game_intro.cub */locale/ru-ru/game_intro.cut *_ru-ru.tlk *_ru-ru_f.tlk' CONTENT_GAME_L10N_TEXT_CS_FILES=' */locale/cs-cz/dragon_age_main.bik */locale/cs-cz/prelude_map.bik */locale/cs-cz/game_intro.cub */locale/cs-cz/game_intro.cut *_cs-cz.tlk *_cs-cz_f.tlk' CONTENT_GAME_L10N_TEXT_ES_FILES=' */locale/es-es/prelude_map.bik */locale/es-es/game_intro.cub */locale/es-es/game_intro.cut *_es-es.tlk *_es-es_f.tlk' CONTENT_GAME_L10N_TEXT_HU_FILES=' */locale/hu-hu/dragon_age_main.bik */locale/hu-hu/prelude_map.bik */locale/hu-hu/game_intro.cub */locale/hu-hu/game_intro.cut *_hu-hu.tlk *_hu-hu_f.tlk' CONTENT_GAME_L10N_TEXT_IT_FILES=' */locale/it-it/prelude_map.bik */locale/it-it/game_intro.cub */locale/it-it/game_intro.cut *_it-it.tlk *_it-it_f.tlk' CONTENT_GAME_L10N_VOICES_EN_FILES=' */audio/vo/en-us' CONTENT_GAME_L10N_VOICES_DE_FILES=' */locale/de-de/betrayal.bik */locale/de-de/charge.bik */locale/de-de/mnp100cs_loghain_event*.bik */audio/vo/de-de' CONTENT_GAME_L10N_VOICES_FR_FILES=' */locale/fr-fr/betrayal.bik */locale/fr-fr/charge.bik */locale/fr-fr/mnp100cs_loghain_event*.bik */audio/vo/fr-fr' CONTENT_GAME_L10N_VOICES_PL_FILES=' */locale/pl-pl/betrayal.bik */locale/pl-pl/charge.bik */locale/pl-pl/mnp100cs_loghain_event*.bik */audio/vo/pl-pl' CONTENT_GAME_L10N_VOICES_RU_FILES=' */audio/vo/ru-ru' CONTENT_GAME_ENVIRONMENT_FILES=' addins/*/*/env packages/*/env' CONTENT_GAME_MOVIES_FILES=' addins/*/core/data/movies modules/*/data/movies packages/*/data/movies' ## TODO: The add-ons could be moved to a dedicated package CONTENT_GAME_DATA_FILES=' addins data modules offers packages' CONTENT_DOC_DATA_FILES=' manual.pdf' ## TODO: This should be split into localisation packages. CONTENT_DOC0_DATA_RELATIVE_PATH='docs' CONTENT_DOC0_DATA_FILES=' *.rtf *.txt' CONTENT_SETTINGS_RELATIVE_PATH='__support/userdocs' CONTENT_SETTINGS_RELATIVE_PATH_0='../userdocs/bioware/dragon age/settings' CONTENT_SETTINGS_FILES=' addins.xml' CONTENT_PHYSX_RELATIVE_PATH='redist' CONTENT_PHYSX_FILES=' physx_9.09.0408_systemsoftware.exe' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/BioWare/Dragon Age' APP_MAIN_EXE='bin_ship/daorigins.exe' APP_CONFIG_ID="${GAME_ID}-config" APP_CONFIG_NAME="$GAME_NAME - Configuration" APP_CONFIG_CAT='Settings' APP_CONFIG_EXE='bin_ship/daoriginsconfig.exe' PACKAGES_LIST=' PKG_BIN PKG_L10N_TEXT_EN PKG_L10N_TEXT_DE PKG_L10N_TEXT_FR PKG_L10N_TEXT_PL PKG_L10N_TEXT_RU PKG_L10N_TEXT_CS PKG_L10N_TEXT_ES PKG_L10N_TEXT_HU PKG_L10N_TEXT_IT PKG_L10N_VOICES_EN PKG_L10N_VOICES_DE PKG_L10N_VOICES_FR PKG_L10N_VOICES_PL PKG_L10N_VOICES_RU PKG_ENVIRONMENT PKG_MOVIES PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N_TEXT PKG_L10N_VOICES PKG_ENVIRONMENT PKG_MOVIES PKG_DATA' PKG_L10N_TEXT_ID="${GAME_ID}-l10n-text" PKG_L10N_TEXT_EN_ID="${PKG_L10N_TEXT_ID}-en" PKG_L10N_TEXT_DE_ID="${PKG_L10N_TEXT_ID}-de" PKG_L10N_TEXT_FR_ID="${PKG_L10N_TEXT_ID}-fr" PKG_L10N_TEXT_PL_ID="${PKG_L10N_TEXT_ID}-pl" PKG_L10N_TEXT_RU_ID="${PKG_L10N_TEXT_ID}-ru" PKG_L10N_TEXT_CS_ID="${PKG_L10N_TEXT_ID}-cs" PKG_L10N_TEXT_ES_ID="${PKG_L10N_TEXT_ID}-es" PKG_L10N_TEXT_HU_ID="${PKG_L10N_TEXT_ID}-hu" PKG_L10N_TEXT_IT_ID="${PKG_L10N_TEXT_ID}-it" PKG_L10N_TEXT_PROVIDES=" $PKG_L10N_TEXT_ID" PKG_L10N_TEXT_EN_PROVIDES="$PKG_L10N_TEXT_PROVIDES" PKG_L10N_TEXT_DE_PROVIDES="$PKG_L10N_TEXT_PROVIDES" PKG_L10N_TEXT_FR_PROVIDES="$PKG_L10N_TEXT_PROVIDES" PKG_L10N_TEXT_PL_PROVIDES="$PKG_L10N_TEXT_PROVIDES" PKG_L10N_TEXT_RU_PROVIDES="$PKG_L10N_TEXT_PROVIDES" PKG_L10N_TEXT_CS_PROVIDES="$PKG_L10N_TEXT_PROVIDES" PKG_L10N_TEXT_ES_PROVIDES="$PKG_L10N_TEXT_PROVIDES" PKG_L10N_TEXT_HU_PROVIDES="$PKG_L10N_TEXT_PROVIDES" PKG_L10N_TEXT_IT_PROVIDES="$PKG_L10N_TEXT_PROVIDES" PKG_L10N_TEXT_EN_DESCRIPTION='English localization - text' PKG_L10N_TEXT_DE_DESCRIPTION='German localization - text' PKG_L10N_TEXT_FR_DESCRIPTION='French localization - text' PKG_L10N_TEXT_PL_DESCRIPTION='Polish localization - text' PKG_L10N_TEXT_RU_DESCRIPTION='Russian localization - text' PKG_L10N_TEXT_CS_DESCRIPTION='Czech localization - text' PKG_L10N_TEXT_ES_DESCRIPTION='Spanish localization - text' PKG_L10N_TEXT_HU_DESCRIPTION='Hungarian localization - text' PKG_L10N_TEXT_IT_DESCRIPTION='Italian localization - text' ## Easier upgrades from pre-20250808.6 packages PKG_L10N_TEXT_PROVIDES="$PKG_L10N_TEXT_PROVIDES dragon-age-origins-l10n" PKG_L10N_TEXT_EN_PROVIDES="$PKG_L10N_TEXT_PROVIDES" PKG_L10N_TEXT_DE_PROVIDES="$PKG_L10N_TEXT_PROVIDES" PKG_L10N_TEXT_FR_PROVIDES="$PKG_L10N_TEXT_PROVIDES" PKG_L10N_TEXT_PL_PROVIDES="$PKG_L10N_TEXT_PROVIDES" PKG_L10N_TEXT_RU_PROVIDES="$PKG_L10N_TEXT_PROVIDES" PKG_L10N_TEXT_CS_PROVIDES="$PKG_L10N_TEXT_PROVIDES" PKG_L10N_TEXT_ES_PROVIDES="$PKG_L10N_TEXT_PROVIDES" PKG_L10N_TEXT_HU_PROVIDES="$PKG_L10N_TEXT_PROVIDES" PKG_L10N_TEXT_IT_PROVIDES="$PKG_L10N_TEXT_PROVIDES" PKG_L10N_VOICES_ID="${GAME_ID}-l10n-voices" PKG_L10N_VOICES_EN_ID="${PKG_L10N_VOICES_ID}-en" PKG_L10N_VOICES_DE_ID="${PKG_L10N_VOICES_ID}-de" PKG_L10N_VOICES_FR_ID="${PKG_L10N_VOICES_ID}-fr" PKG_L10N_VOICES_PL_ID="${PKG_L10N_VOICES_ID}-pl" PKG_L10N_VOICES_RU_ID="${PKG_L10N_VOICES_ID}-ru" PKG_L10N_VOICES_PROVIDES=" $PKG_L10N_VOICES_ID" PKG_L10N_VOICES_EN_PROVIDES="$PKG_L10N_VOICES_PROVIDES" PKG_L10N_VOICES_DE_PROVIDES="$PKG_L10N_VOICES_PROVIDES" PKG_L10N_VOICES_FR_PROVIDES="$PKG_L10N_VOICES_PROVIDES" PKG_L10N_VOICES_PL_PROVIDES="$PKG_L10N_VOICES_PROVIDES" PKG_L10N_VOICES_RU_PROVIDES="$PKG_L10N_VOICES_PROVIDES" PKG_L10N_VOICES_EN_DESCRIPTION='English localization - voices' PKG_L10N_VOICES_DE_DESCRIPTION='German localization - voices' PKG_L10N_VOICES_FR_DESCRIPTION='French localization - voices' PKG_L10N_VOICES_PL_DESCRIPTION='Polish localization - voices' PKG_L10N_VOICES_RU_DESCRIPTION='Russian localization - voices' PKG_ENVIRONMENT_ID="${GAME_ID}-environment" PKG_ENVIRONMENT_DESCRIPTION='environment' PKG_MOVIES_ID="${GAME_ID}-movies" PKG_MOVIES_DESCRIPTION='movies' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' ## convmv is used to convert file paths to lower case. REQUIREMENTS_LIST=' convmv' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default ## Convert all file paths to lower case. case "$(current_archive)" in ('ARCHIVE_BASE_0') tolower "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ;; esac # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion 'SETTINGS' 'PKG_DATA' "$(path_game_data)/settings" content_inclusion 'PHYSX' 'PKG_BIN' "$(path_game_data)/physx" content_inclusion_default # Write launchers. ## - Include shipped settings, to unlock expansions. ## - Install shipped build of PhysX. wineprefix_init_custom() { cat <<- 'EOF' ## Include shipped settings, to unlock expansions. settings_path="${PATH_PERSISTENT}/wineprefix/users/${USER}/Documents/BioWare/Dragon Age/Settings" if [ ! -e "$settings_path" ]; then mkdir --parents "$(dirname "$settings_path")" cp --recursive "${PATH_GAME_DATA}/settings" "$settings_path" fi EOF cat <<- EOF ## Install shipped build of PhysX. ( ## env --chdir does not work here, it leads to the following error: ## Corrupt installation detected. cd "\${WINEPREFIX}/drive_c/${GAME_ID}" "\$(wine_command)" 'physx/physx_9.09.0408_systemsoftware.exe' ) EOF } launchers_generation # Build packages. packages_generation case "$(messages_language)" in ('fr') lang_string='version %s :' lang_en='anglaise' lang_de='allemande' lang_fr='française' lang_pl='polonaise' lang_ru='russe' lang_cs='tchèque' lang_es='espagnole' lang_hu='hongroise' lang_it='italienne' ;; ('en'|*) lang_string='%s version:' lang_en='English' lang_de='German' lang_fr='French' lang_pl='Polish' lang_ru='Russian' lang_cs='Czech' lang_es='Spanish' lang_hu='Hungarian' lang_it='Italian' ;; esac printf '\n' printf "$lang_string" "$lang_en" print_instructions 'PKG_BIN' 'PKG_ENVIRONMENT' 'PKG_MOVIES' 'PKG_DATA' 'PKG_L10N_TEXT_EN' 'PKG_L10N_VOICES_EN' printf "$lang_string" "$lang_de" print_instructions 'PKG_BIN' 'PKG_ENVIRONMENT' 'PKG_MOVIES' 'PKG_DATA' 'PKG_L10N_TEXT_DE' 'PKG_L10N_VOICES_DE' printf "$lang_string" "$lang_fr" print_instructions 'PKG_BIN' 'PKG_ENVIRONMENT' 'PKG_MOVIES' 'PKG_DATA' 'PKG_L10N_TEXT_FR' 'PKG_L10N_VOICES_FR' printf "$lang_string" "$lang_pl" print_instructions 'PKG_BIN' 'PKG_ENVIRONMENT' 'PKG_MOVIES' 'PKG_DATA' 'PKG_L10N_TEXT_PL' 'PKG_L10N_VOICES_PL' printf "$lang_string" "$lang_ru" print_instructions 'PKG_BIN' 'PKG_ENVIRONMENT' 'PKG_MOVIES' 'PKG_DATA' 'PKG_L10N_TEXT_RU' 'PKG_L10N_VOICES_RU' printf "$lang_string" "$lang_cs" print_instructions 'PKG_BIN' 'PKG_ENVIRONMENT' 'PKG_MOVIES' 'PKG_DATA' 'PKG_L10N_TEXT_CS' 'PKG_L10N_VOICES_EN' printf "$lang_string" "$lang_es" print_instructions 'PKG_BIN' 'PKG_ENVIRONMENT' 'PKG_MOVIES' 'PKG_DATA' 'PKG_L10N_TEXT_ES' 'PKG_L10N_VOICES_EN' printf "$lang_string" "$lang_hu" print_instructions 'PKG_BIN' 'PKG_ENVIRONMENT' 'PKG_MOVIES' 'PKG_DATA' 'PKG_L10N_TEXT_HU' 'PKG_L10N_VOICES_EN' printf "$lang_string" "$lang_it" print_instructions 'PKG_BIN' 'PKG_ENVIRONMENT' 'PKG_MOVIES' 'PKG_DATA' 'PKG_L10N_TEXT_IT' 'PKG_L10N_VOICES_EN' # Clean up. working_directory_cleanup exit 0 games/play-dust-an-elysian-tail.sh0000700000000000000000000000563114471751340016117 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # Dust: An Elysian Tail # send your bug reports to bugs@dotslashplay.it ### script_version=20250424.3 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='dust-an-elysian-tail' GAME_NAME='Dust: An Elysian Tail' ARCHIVE_BASE_GOG_0_NAME='gog_dust_an_elysian_tail_2.0.0.1.sh' ARCHIVE_BASE_GOG_0_MD5='57299e2e4af0283e68a7aa5e8b390697' 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_NAME='dustaet_05042016-bin' ARCHIVE_BASE_HUMBLE_0_MD5='6844c82f233b47417620be0bef8b140c' ARCHIVE_BASE_HUMBLE_0_EXTRACTOR='bsdtar' 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_LIBS_FILES=' libmojoshader.so libtheoraplay.so' CONTENT_GAME_LIBS64_RELATIVE_PATH='lib64' CONTENT_GAME_LIBS64_FILES="$CONTENT_GAME_LIBS_FILES" CONTENT_GAME_LIBS32_RELATIVE_PATH='lib' CONTENT_GAME_LIBS32_FILES="$CONTENT_GAME_LIBS_FILES" 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_EXE='DustAET.exe' APP_MAIN_ICON='Dust An Elysian Tail.bmp' PACKAGES_LIST=' PKG_MAIN PKG_LIBS64 PKG_LIBS32' PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_LIBS' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libopenal.so.1 libSDL2-2.0.so.0 libtheoradec.so.1 libvorbisfile.so.3' PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS64_ID="$PKG_LIBS_ID" PKG_LIBS32_ID="$PKG_LIBS_ID" PKG_LIBS64_ARCH='64' PKG_LIBS32_ARCH='32' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers ## 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 } launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-earthlock.sh0000700000000000000000000000357314471751340014132 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Earthlock # send your bug reports to bugs@dotslashplay.it ### script_version=20240707.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='earthlock' GAME_NAME='Earthlock' ARCHIVE_BASE_0_NAME='setup_earthlock_1.1.0_(35125).exe' ARCHIVE_BASE_0_MD5='922c46185118046df2931fbd9e9d88c0' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_earthlock_1.1.0_(35125)-1.bin' ARCHIVE_BASE_0_PART1_MD5='4bc76160d2a6f1c097069f54a5009396' ARCHIVE_BASE_0_VERSION='1.1.0-gog35125' ARCHIVE_BASE_0_SIZE='4200000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/earthlock' UNITY3D_NAME='earthlock' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Snowcastle Games/Earthlock Enhanced Edition' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-eschalon-book-1.sh0000700000000000000000000000404114471751340015027 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Eschalon: Book 1 # send your bug reports to bugs@dotslashplay.it ### script_version=20250518.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='eschalon-book-1' GAME_NAME='Eschalon: Book I' ARCHIVE_BASE_0_NAME='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_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' 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' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-everspace.sh0000700000000000000000000000667714471751340014143 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Everspace # send your bug reports to bugs@dotslashplay.it ### script_version=20250504.4 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='everspace' GAME_NAME='Everspace' ARCHIVE_BASE_3_NAME='everspace_1_3_5_3655_32896.sh' ARCHIVE_BASE_3_MD5='55c9230b3805c54d13371f940860d4a9' ARCHIVE_BASE_3_SIZE='10280299' ARCHIVE_BASE_3_VERSION='1.3.5-gog32896' ARCHIVE_BASE_3_URL='https://www.gog.com/game/everspace' ARCHIVE_BASE_2_NAME='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_NAME='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_NAME='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' ## TODO: Check why a regular symlinks prefix can not be used. APPLICATIONS_PREFIX_TYPE='none' APP_MAIN_EXE="${UNREALENGINE4_NAME}/Binaries/Linux/${UNREALENGINE4_NAME}-Linux-Shipping" APP_MAIN_ICON='../support/icon.png' ## Prevent a segmentation fault when using the wayland backend of SDL. ## Using the system-provided SDL library is not an option, as it leads to a segmentation fault too. APP_MAIN_PRERUN=' # Prevent a segmentation fault when using the wayland backend of SDL. if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libvlc.so.5 libvlccore.so.9 libvlc_pulse.so' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Drop old shipped libraries. rm --recursive 'RSG/Plugins' ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Integrate with system-provided VLC libraries. libraries_source=$(path_libraries_system) libraries_destination="$(package_path 'PKG_BIN')$(path_game_data)/RSG/Plugins/VlcMedia/ThirdParty/vlc/Linux/x86_64-unknown-linux-gnu" mkdir --parents "$libraries_destination" ln --symbolic "${libraries_source}/libvlc.so.5" "${libraries_destination}/libvlc.so" ln --symbolic "${libraries_source}/libvlccore.so.9" "${libraries_destination}/libvlccore.so" # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-evoland-series.sh0000755000000000000000000001072314471751340015103 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Evoland series: # - Evoland # - Evoland 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20250828.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID_EVOLAND1='evoland-1' GAME_NAME_EVOLAND1='Evoland' GAME_ID_EVOLAND2='evoland-2' GAME_NAME_EVOLAND2='Evoland 2, A Slight Case of Spacetime Continuum Disorder' ARCHIVE_BASE_EVOLAND1_GOG_0_NAME='setup_evoland_1.1.2490_(20677).exe' ARCHIVE_BASE_EVOLAND1_GOG_0_MD5='97978ef959d097876142ae2c6ce765c2' ARCHIVE_BASE_EVOLAND1_GOG_0_TYPE='innosetup' ARCHIVE_BASE_EVOLAND1_GOG_0_SIZE='120000' ARCHIVE_BASE_EVOLAND1_GOG_0_VERSION='1.1.2490-gog20677' ARCHIVE_BASE_EVOLAND1_GOG_0_URL='https://www.gog.com/game/evoland' ## This DRM-free native Linux build is no longer available for sale from the Humble Store, ## they now only sell Steam keys for the Evoland "Legendary Edition" bundle. ARCHIVE_BASE_EVOLAND1_HUMBLE_0_NAME='Evoland.exe' ARCHIVE_BASE_EVOLAND1_HUMBLE_0_MD5='9585142f38d769d4ac9125f587d0c891' ARCHIVE_BASE_EVOLAND1_HUMBLE_0_TYPE='nullsoft-installer' ARCHIVE_BASE_EVOLAND1_HUMBLE_0_SIZE='110000' ARCHIVE_BASE_EVOLAND1_HUMBLE_0_VERSION='1.1.2490-humble1' ARCHIVE_BASE_EVOLAND2_GOG_0_NAME='setup_evoland_2_1.0.9137_(20679).exe' ARCHIVE_BASE_EVOLAND2_GOG_0_MD5='a77db6e435460505bbc6beb1c4fcd5ed' ARCHIVE_BASE_EVOLAND2_GOG_0_TYPE='innosetup' ARCHIVE_BASE_EVOLAND2_GOG_0_SIZE='789305' ARCHIVE_BASE_EVOLAND2_GOG_0_VERSION='1.0.9137-gog20679' ARCHIVE_BASE_EVOLAND2_GOG_0_URL='https://www.gog.com/game/evoland_2' ## This DRM-free native Linux build is no longer available for sale from the Humble Store, ## they now only sell Steam keys for the Evoland "Legendary Edition" bundle. ARCHIVE_BASE_EVOLAND2_HUMBLE_0_NAME='Evoland2.zip' ARCHIVE_BASE_EVOLAND2_HUMBLE_0_MD5='0e34269cb7db3a6c065311eea90e651a' ARCHIVE_BASE_EVOLAND2_HUMBLE_0_SIZE='790000' ARCHIVE_BASE_EVOLAND2_HUMBLE_0_VERSION='1.0.9137-humble170116' CONTENT_PATH_DEFAULT_EVOLAND1='.' CONTENT_PATH_DEFAULT_EVOLAND2_GOG='.' CONTENT_PATH_DEFAULT_EVOLAND2_HUMBLE='Evoland2' CONTENT_GAME_BIN_FILES=' adobe air dinput8.dll evoland.exe evoland2.exe pad.exe gamepadconfig.txt' CONTENT_GAME_DATA_FILES=' icons meta-inf mimetype game.dat res.pak' WINE_PERSISTENT_DIRECTORIES_EVOLAND1=' users/${USER}/AppData/Roaming/com.shirogames.evoland' USER_PERSISTENT_DIRECTORIES_EVOLAND2=' save' APP_MAIN_EXE_EVOLAND1='evoland.exe' APP_MAIN_EXE_EVOLAND2='evoland2.exe' APP_MAIN_ICONS_LIST=' APP_MAIN_ICON_16 APP_MAIN_ICON_32 APP_MAIN_ICON_48 APP_MAIN_ICON_128' APP_MAIN_ICON_16='icons/evoicon16.png' APP_MAIN_ICON_32='icons/evoicon32.png' APP_MAIN_ICON_48='icons/evoicon48.png' APP_MAIN_ICON_128='icons/evoicon128.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' ## Easier upgrades from pre-20201219.1 packages PKG_BIN_PROVIDES_EVOLAND1='${PKG_BIN_PROVIDES_EVOLAND1:-} evoland' PKG_DATA_ID_EVOLAND1="${GAME_ID_EVOLAND1}-data" PKG_DATA_ID_EVOLAND2="${GAME_ID_EVOLAND2}-data" PKG_DATA_DESCRIPTION='data' ## Easier upgrades from pre-20201219.1 packages PKG_DATA_PROVIDES_EVOLAND1=' evoland-data' ## Humble Bundle builds - convmv is used to convert file paths to lower case. REQUIREMENTS_LIST_EVOLAND1_HUMBLE=' convmv' REQUIREMENTS_LIST_EVOLAND2_HUMBLE=' convmv' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default ## Humble Bundle builds - Convert all file paths to lower case. case "$(current_archive)" in ('ARCHIVE_BASE_EVOLAND1_HUMBLE_'*|'ARCHIVE_BASE_EVOLAND2_HUMBLE_'*) tolower "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ;; esac # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-fallout-classics.sh0000755000000000000000000001634014471751340015434 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 # - Fallout 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20250424.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID_FALLOUT1='fallout-1' GAME_NAME_FALLOUT1='Fallout' GAME_ID_FALLOUT2='fallout-2' GAME_NAME_FALLOUT2='Fallout 2' # Archives ## Fallout 1 ARCHIVE_BASE_FALLOUT1_EN_1_NAME='setup_fallout_1.2_(27130).exe' ARCHIVE_BASE_FALLOUT1_EN_1_MD5='2cd1bb09f241c286498ea834480852ec' ARCHIVE_BASE_FALLOUT1_EN_1_TYPE='innosetup' ARCHIVE_BASE_FALLOUT1_EN_1_PART1_NAME='setup_fallout_1.2_(27130)-1.bin' ARCHIVE_BASE_FALLOUT1_EN_1_PART1_MD5='b9a0a59bc1426df4cc9588fdd5a8d736' ARCHIVE_BASE_FALLOUT1_EN_1_SIZE='600000' ARCHIVE_BASE_FALLOUT1_EN_1_VERSION='1.2-gog27130' ARCHIVE_BASE_FALLOUT1_EN_1_URL='https://www.gog.com/game/fallout' ARCHIVE_BASE_FALLOUT1_FR_1_NAME='setup_fallout_1.2_(french)_(27130).exe' ARCHIVE_BASE_FALLOUT1_FR_1_MD5='2c0d7a347a903bb52ed1d70305038e9c' ARCHIVE_BASE_FALLOUT1_FR_1_TYPE='innosetup' ARCHIVE_BASE_FALLOUT1_FR_1_PART1_NAME='setup_fallout_1.2_(french)_(27130)-1.bin' ARCHIVE_BASE_FALLOUT1_FR_1_PART1_MD5='7db5f755168b89cc38b6e090130b0e1a' ARCHIVE_BASE_FALLOUT1_FR_1_SIZE='600000' ARCHIVE_BASE_FALLOUT1_FR_1_VERSION='1.2-gog27130' ARCHIVE_BASE_FALLOUT1_FR_1_URL='https://www.gog.com/game/fallout' ARCHIVE_BASE_FALLOUT1_EN_0_NAME='setup_fallout_2.1.0.18.exe' ARCHIVE_BASE_FALLOUT1_EN_0_MD5='47b7b3c059d92c0fd6db5881635277ea' ARCHIVE_BASE_FALLOUT1_EN_0_TYPE='innosetup' ARCHIVE_BASE_FALLOUT1_EN_0_SIZE='600000' ARCHIVE_BASE_FALLOUT1_EN_0_VERSION='1.2-gog2.1.0.18' ARCHIVE_BASE_FALLOUT1_FR_0_NAME='setup_fallout_french_2.1.0.18.exe' ARCHIVE_BASE_FALLOUT1_FR_0_MD5='12ba5bb0489b5bafb777c8d07717b020' ARCHIVE_BASE_FALLOUT1_FR_0_TYPE='innosetup' ARCHIVE_BASE_FALLOUT1_FR_0_SIZE='600000' ARCHIVE_BASE_FALLOUT1_FR_0_VERSION='1.2-gog2.1.0.18' ## Fallout 2 ARCHIVE_BASE_FALLOUT2_EN_1_NAME='setup_fallout2_2.1.0.18.exe' ARCHIVE_BASE_FALLOUT2_EN_1_MD5='b20e9a133c23bf308b8460272fd32d2b' ARCHIVE_BASE_FALLOUT2_EN_1_TYPE='innosetup' ARCHIVE_BASE_FALLOUT2_EN_1_SIZE='740000' ARCHIVE_BASE_FALLOUT2_EN_1_VERSION='1.3-gog2.1.0.18' ARCHIVE_BASE_FALLOUT2_EN_1_URL='https://www.gog.com/game/fallout_2' ARCHIVE_BASE_FALLOUT2_EN_0_NAME='setup_fallout2_2.1.0.17.exe' ARCHIVE_BASE_FALLOUT2_EN_0_MD5='b40a8f2e1ff9216e25b8f09577c27f33' ARCHIVE_BASE_FALLOUT2_EN_0_TYPE='innosetup' ARCHIVE_BASE_FALLOUT2_EN_0_SIZE='740000' ARCHIVE_BASE_FALLOUT2_EN_0_VERSION='1.3-gog2.1.0.17' ARCHIVE_BASE_FALLOUT2_FR_0_NAME='setup_fallout2_french_2.1.0.17.exe' ARCHIVE_BASE_FALLOUT2_FR_0_MD5='7df6f834b480873bea2f8593254b1960' ARCHIVE_BASE_FALLOUT2_FR_0_TYPE='innosetup' ARCHIVE_BASE_FALLOUT2_FR_0_SIZE='740000' ARCHIVE_BASE_FALLOUT2_FR_0_VERSION='1.3-gog2.1.0.17' ARCHIVE_BASE_FALLOUT2_FR_0_URL='https://www.gog.com/game/fallout_2' # Archives content ## Fallout 1 CONTENT_PATH_DEFAULT_FALLOUT1='.' CONTENT_PATH_DEFAULT_FALLOUT1_EN_0='app' CONTENT_PATH_DEFAULT_FALLOUT1_FR_0='app' CONTENT_GAME_BIN_FILES_FALLOUT1=' falloutw.exe f1_res.dll f1_res_config.exe' CONTENT_GAME_L10N_PATH_FALLOUT1='__support/app' CONTENT_GAME_L10N_PATH_FALLOUT1_EN_0='app' CONTENT_GAME_L10N_PATH_FALLOUT1_FR_0='app' CONTENT_GAME_L10N_FILES_FALLOUT1=' fallout.cfg f1_res.ini' CONTENT_GAME_DATA_FILES_FALLOUT1=' critter.dat master.dat data extras fallout.ico' CONTENT_DOC_L10N_FILES_FALLOUT1=' readme.txt manual.pdf' CONTENT_DOC_DATA_FILES_FALLOUT1=' refcard.pdf readme.rtf f1_res_readme.rtf' ## Fallout 2 CONTENT_PATH_DEFAULT_FALLOUT2='app' CONTENT_GAME_BIN_FILES_FALLOUT2=' fallout2.exe f2_res.dll f2_res_config.exe f2_res.ini' CONTENT_GAME_L10N_FILES_FALLOUT2=' critter.dat master.dat translations fallout2.cfg' CONTENT_GAME_DATA_FILES_FALLOUT2=' data extras fallout2.ico sound' CONTENT_DOC_L10N_FILES_FALLOUT2=' manual.pdf' CONTENT_DOC_DATA_FILES_FALLOUT2=' refcard.pdf readme.rtf f2_res_readme.rtf faq.txt licence.txt f2_res_change.log' # Launchers USER_PERSISTENT_FILES=' *.cfg *.ini' USER_PERSISTENT_DIRECTORIES=' data/savegame' ## Disable WINE csmt to avoid performance issues WINE_WINETRICKS_VERBS='csmt=off' APP_RES_CAT='Settings' ## Fallout 1 ## The resolution tweaking tool expects write access to the game binary. USER_PERSISTENT_FILES_FALLOUT1="${USER_PERSISTENT_FILES:-} falloutw.exe" APP_MAIN_EXE_FALLOUT1='falloutw.exe' APP_MAIN_ICON_FALLOUT1='fallout.ico' APP_RES_ID_FALLOUT1="${GAME_ID_FALLOUT1}-resolution" APP_RES_NAME_FALLOUT1="$GAME_NAME_FALLOUT1 - resolution" APP_RES_EXE_FALLOUT1='f1_res_config.exe' ## Fallout 2 ## The resolution tweaking tool expects write access to the game binary. USER_PERSISTENT_FILES_FALLOUT2="${USER_PERSISTENT_FILES:-} fallout2.exe" APP_MAIN_EXE_FALLOUT2='fallout2.exe' APP_MAIN_ICON_FALLOUT2='fallout2.ico' APP_RES_ID_FALLOUT2="${GAME_ID_FALLOUT2}-resolution" APP_RES_NAME_FALLOUT2="$GAME_NAME_FALLOUT2 - resolution" APP_RES_EXE_FALLOUT2='f2_res_config.exe' # Packages PACKAGES_LIST=' PKG_BIN PKG_L10N PKG_DATA' PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N_BASE PKG_DATA' ## Fallout 1 PKG_L10N_BASE_ID_FALLOUT1="${GAME_ID_FALLOUT1}-l10n" PKG_L10N_ID_FALLOUT1_EN="${PKG_L10N_BASE_ID_FALLOUT1}-en" PKG_L10N_ID_FALLOUT1_FR="${PKG_L10N_BASE_ID_FALLOUT1}-fr" PKG_L10N_PROVIDES_FALLOUT1=" $PKG_L10N_BASE_ID_FALLOUT1" PKG_DATA_ID_FALLOUT1="${GAME_ID_FALLOUT1}-data" ## Easier upgrade from packages generated with pre-20190116.1 scripts PKG_BIN_PROVIDES_FALLOUT1="${PKG_BIN_PROVIDES_FALLOUT1} fallout" PKG_L10N_PROVIDES_FALLOUT1="${PKG_L10N_PROVIDES_FALLOUT1} fallout-l10n" PKG_DATA_PROVIDES_FALLOUT1="${PKG_DATA_PROVIDES_FALLOUT1} fallout-data" ## Fallout 2 PKG_L10N_BASE_ID_FALLOUT2="${GAME_ID_FALLOUT2}-l10n" PKG_L10N_ID_FALLOUT2_EN="${PKG_L10N_BASE_ID_FALLOUT2}-en" PKG_L10N_ID_FALLOUT2_FR="${PKG_L10N_BASE_ID_FALLOUT2}-fr" PKG_L10N_PROVIDES_FALLOUT2=" $PKG_L10N_BASE_ID_FALLOUT2" PKG_DATA_ID_FALLOUT2="${GAME_ID_FALLOUT2}-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data ## Drop the easter egg icon icon_extract_png_from_ico() { local icon destinaton icon="$1" destination="$2" icon_convert_to_png "$icon" "$destination" rm --force \ "${destination}/fallout-4.png" \ "${destination}/fallout2-4.png" } content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-fallout-new-vegas.sh0000755000000000000000000002572214471751340015530 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Fallout: New Vegas # send your bug reports to bugs@dotslashplay.it ### script_version=20250806.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='fallout-new-vegas' GAME_NAME='Fallout: New Vegas' ARCHIVE_BASE_EN_2_NAME='setup_fallout_new_vegas_1.4.0.525(a)_(55068).exe' ARCHIVE_BASE_EN_2_MD5='54d7878228b86284d360e8672ce5e85c' ARCHIVE_BASE_EN_2_TYPE='innosetup' ARCHIVE_BASE_EN_2_PART1_NAME='setup_fallout_new_vegas_1.4.0.525(a)_(55068)-1.bin' ARCHIVE_BASE_EN_2_PART1_MD5='7ce668d5d084250b7ea445447b05d9b1' ARCHIVE_BASE_EN_2_PART2_NAME='setup_fallout_new_vegas_1.4.0.525(a)_(55068)-2.bin' ARCHIVE_BASE_EN_2_PART2_MD5='6d86a620514632e5d8c453e27e32dce1' ARCHIVE_BASE_EN_2_SIZE='9879738' ARCHIVE_BASE_EN_2_VERSION='1.4.0.525-gog55068' ARCHIVE_BASE_EN_2_URL='https://www.gog.com/game/fallout_new_vegas_ultimate_edition' ARCHIVE_BASE_FR_2_NAME='setup_fallout_new_vegas_1.4.0.525(a)_(french)_(55068).exe' ARCHIVE_BASE_FR_2_MD5='301a3885d574a88ebbe8147ce8f28cd0' ARCHIVE_BASE_FR_2_TYPE='innosetup' ARCHIVE_BASE_FR_2_PART1_NAME='setup_fallout_new_vegas_1.4.0.525(a)_(french)_(55068)-1.bin' ARCHIVE_BASE_FR_2_PART1_MD5='58eb0e07dc5eb8c1f1bc78dbfa1f9cfb' ARCHIVE_BASE_FR_2_PART2_NAME='setup_fallout_new_vegas_1.4.0.525(a)_(french)_(55068)-2.bin' ARCHIVE_BASE_FR_2_PART2_MD5='e57e233aea17d8f4ee23bf90d0318a38' ARCHIVE_BASE_FR_2_PART3_NAME='setup_fallout_new_vegas_1.4.0.525(a)_(french)_(55068)-3.bin' ARCHIVE_BASE_FR_2_PART3_MD5='c2020bf115acc116204e43ca09a58ef0' ARCHIVE_BASE_FR_2_SIZE='9999844' ARCHIVE_BASE_FR_2_VERSION='1.4.0.525-gog55068' ARCHIVE_BASE_FR_2_URL='https://www.gog.com/game/fallout_new_vegas_ultimate_edition' ARCHIVE_BASE_EN_1_NAME='setup_fallout_new_vegas_1.4.0.525(a)_(55068).exe' ARCHIVE_BASE_EN_1_MD5='2381656fd552e5b93c143336fedbc21d' ARCHIVE_BASE_EN_1_TYPE='innosetup' ARCHIVE_BASE_EN_1_PART1_NAME='setup_fallout_new_vegas_1.4.0.525(a)_(55068)-1.bin' ARCHIVE_BASE_EN_1_PART1_MD5='e0979d7e1d0145cd7bb6d1ad62419a17' ARCHIVE_BASE_EN_1_PART2_NAME='setup_fallout_new_vegas_1.4.0.525(a)_(55068)-2.bin' ARCHIVE_BASE_EN_1_PART2_MD5='730ae6ea0eb5d41773be6bb19bb15d57' ARCHIVE_BASE_EN_1_SIZE='9900000' ARCHIVE_BASE_EN_1_VERSION='1.4.0.525-gog55068' ARCHIVE_BASE_FR_1_NAME='setup_fallout_new_vegas_1.4.0.525(a)_(french)_(55068).exe' ARCHIVE_BASE_FR_1_MD5='841d652c40c7c4bb54830ba768bf48a7' ARCHIVE_BASE_FR_1_TYPE='innosetup' ARCHIVE_BASE_FR_1_PART1_NAME='setup_fallout_new_vegas_1.4.0.525(a)_(french)_(55068)-1.bin' ARCHIVE_BASE_FR_1_PART1_MD5='054a674e5246f8b8c78c02f3ee2095dc' ARCHIVE_BASE_FR_1_PART2_NAME='setup_fallout_new_vegas_1.4.0.525(a)_(french)_(55068)-2.bin' ARCHIVE_BASE_FR_1_PART2_MD5='a3d4bbfd30d2d60389ed2d2b4b5aed07' ARCHIVE_BASE_FR_1_SIZE='10000000' ARCHIVE_BASE_FR_1_VERSION='1.4.0.525-gog55068' ARCHIVE_BASE_EN_0_NAME='setup_fallout_new_vegas_1.4.0.525_(12010).exe' ARCHIVE_BASE_EN_0_MD5='be32894fe423302d299fa532e5641079' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_PART1_NAME='setup_fallout_new_vegas_1.4.0.525_(12010)-1.bin' ARCHIVE_BASE_EN_0_PART1_MD5='245661b2e1435c530763ae281ccecd9f' ARCHIVE_BASE_EN_0_PART2_NAME='setup_fallout_new_vegas_1.4.0.525_(12010)-2.bin' ARCHIVE_BASE_EN_0_PART2_MD5='705e7097b9c18836118c2e9eb42b19ed' ARCHIVE_BASE_EN_0_SIZE='11000000' ARCHIVE_BASE_EN_0_VERSION='1.4.0.525-gog12010' ARCHIVE_BASE_FR_0_NAME='setup_fallout_new_vegas_french_1.4.0.525_(12010).exe' ARCHIVE_BASE_FR_0_MD5='da79e8756efb16b211a76756cd8865b3' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_PART1_NAME='setup_fallout_new_vegas_french_1.4.0.525_(12010)-1.bin' ARCHIVE_BASE_FR_0_PART1_MD5='245661b2e1435c530763ae281ccecd9f' ARCHIVE_BASE_FR_0_PART2_NAME='setup_fallout_new_vegas_french_1.4.0.525_(12010)-2.bin' ARCHIVE_BASE_FR_0_PART2_MD5='e148a49b1bbcfa4b2662e45691ae606e' ARCHIVE_BASE_FR_0_SIZE='11000000' ARCHIVE_BASE_FR_0_VERSION='1.4.0.525-gog12010' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_EN_0='app' CONTENT_PATH_DEFAULT_FR_0='app' CONTENT_GAME_BIN_FILES=' atimgpud.dll binkw32.dll gdffalloutnv.dll libvorbis.dll libvorbisfile.dll ssce5432.dll falloutnv.exe geck.exe low.ini medium.ini high.ini veryhigh.ini' ## TODO: Check if the Galaxy libraries are required CONTENT_GAME0_BIN_FILES=' galaxy.dll galaxywrp.dll' CONTENT_GAME_L10N_FILES=' falloutnvlauncher.exe fallout_default.ini data/credits.txt data/creditswacky.txt data/fallout - voices1.bsa data/falloutnv.esm data/video/fnvintro.bik' CONTENT_GAME_DLC1_FILES=' data/deadmoney*' CONTENT_GAME_DLC2_FILES=' data/honesthearts*' CONTENT_GAME_DLC3_FILES=' data/oldworldblues*' CONTENT_GAME_DLC4_FILES=' data/lonesomeroad*' CONTENT_GAME_DLC5_FILES=' data/gunrunnersarsenal*' CONTENT_GAME_DLC6_FILES=' data/caravanpack*' CONTENT_GAME_DLC7_FILES=' data/classicpack*' CONTENT_GAME_DLC8_FILES=' data/mercenarypack*' CONTENT_GAME_DLC9_FILES=' data/tribalpack*' CONTENT_GAME_DATA_FILES=' data geckicon.ico falloutnv.ico maintitle.wav' CONTENT_DOC_L10N_FILES=' *.txt' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/My Games/FalloutNV' ## Set required registry key. # shellcheck disable=SC1003 WINE_REGISTRY_INIT=' [HKEY_LOCAL_MACHINE\Software\Bethesda Softworks\FalloutNV] "Installed Path"="C:\\'"${GAME_ID}"'/"' APP_MAIN_EXE='falloutnvlauncher.exe' APP_MAIN_ICON='falloutnv.ico' APP_EDITOR_ID="${GAME_ID}-editor" APP_EDITOR_NAME="${GAME_NAME} - Editor" APP_EDITOR_EXE='geck.exe' APP_EDITOR_ICON='geckicon.ico' PACKAGES_LIST=' PKG_BIN PKG_L10N PKG_DLC1 PKG_DLC2 PKG_DLC3 PKG_DLC4 PKG_DLC5 PKG_DLC6 PKG_DLC7 PKG_DLC8 PKG_DLC9 PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N_BASE PKG_DATA' PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' application/x-id3' PKG_L10N_BASE_ID="${GAME_ID}-l10n" PKG_L10N_ID_EN="${PKG_L10N_BASE_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_BASE_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_BASE_ID" PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DLC1_ID="${GAME_ID}-dlc-dead-money" PKG_DLC1_ID_EN="${PKG_DLC1_ID}-en" PKG_DLC1_ID_FR="${PKG_DLC1_ID}-fr" PKG_DLC1_PROVIDES=" $PKG_DLC1_ID" PKG_DLC1_DESCRIPTION='Dead Money' PKG_DLC1_DESCRIPTION_EN="${PKG_DLC1_DESCRIPTION} - English version" PKG_DLC1_DESCRIPTION_FR="${PKG_DLC1_DESCRIPTION} - French version" PKG_DLC1_DEPENDENCIES_SIBLINGS=' PKG_BIN' PKG_DLC2_ID="${GAME_ID}-dlc-honest-hearts" PKG_DLC2_ID_EN="${PKG_DLC2_ID}-en" PKG_DLC2_ID_FR="${PKG_DLC2_ID}-fr" PKG_DLC2_PROVIDES=" $PKG_DLC2_ID" PKG_DLC2_DESCRIPTION='Honest Hearts' PKG_DLC2_DESCRIPTION_EN="${PKG_DLC2_DESCRIPTION} - English version" PKG_DLC2_DESCRIPTION_FR="${PKG_DLC2_DESCRIPTION} - French version" PKG_DLC2_DEPENDENCIES_SIBLINGS=' PKG_BIN' PKG_DLC3_ID="${GAME_ID}-dlc-old-world-blues" PKG_DLC3_ID_EN="${PKG_DLC3_ID}-en" PKG_DLC3_ID_FR="${PKG_DLC3_ID}-fr" PKG_DLC3_PROVIDES=" $PKG_DLC3_ID" PKG_DLC3_DESCRIPTION='Old World Blues' PKG_DLC3_DESCRIPTION_EN="${PKG_DLC3_DESCRIPTION} - English version" PKG_DLC3_DESCRIPTION_FR="${PKG_DLC3_DESCRIPTION} - French version" PKG_DLC3_DEPENDENCIES_SIBLINGS=' PKG_BIN' PKG_DLC4_ID="${GAME_ID}-dlc-lonesome-road" PKG_DLC4_ID_EN="${PKG_DLC4_ID}-en" PKG_DLC4_ID_FR="${PKG_DLC4_ID}-fr" PKG_DLC4_PROVIDES=" $PKG_DLC4_ID" PKG_DLC4_DESCRIPTION='Lonesome Road' PKG_DLC4_DESCRIPTION_EN="${PKG_DLC4_DESCRIPTION} - English version" PKG_DLC4_DESCRIPTION_FR="${PKG_DLC4_DESCRIPTION} - French version" PKG_DLC4_DEPENDENCIES_SIBLINGS=' PKG_BIN' PKG_DLC5_ID="${GAME_ID}-dlc-gun-runners-arsenal" PKG_DLC5_ID_EN="${PKG_DLC5_ID}-en" PKG_DLC5_ID_FR="${PKG_DLC5_ID}-fr" PKG_DLC5_PROVIDES=" $PKG_DLC5_ID" PKG_DLC5_DESCRIPTION='Gun Runnersʼ Arsenal' PKG_DLC5_DESCRIPTION_EN="${PKG_DLC5_DESCRIPTION} - English version" PKG_DLC5_DESCRIPTION_FR="${PKG_DLC5_DESCRIPTION} - French version" PKG_DLC5_DEPENDENCIES_SIBLINGS=' PKG_BIN' PKG_DLC6_ID="${GAME_ID}-dlc-caravan-pack" PKG_DLC6_ID_EN="${PKG_DLC6_ID}-en" PKG_DLC6_ID_FR="${PKG_DLC6_ID}-fr" PKG_DLC6_PROVIDES=" $PKG_DLC6_ID" PKG_DLC6_DESCRIPTION='Caravan Pack' PKG_DLC6_DESCRIPTION_EN="${PKG_DLC6_DESCRIPTION} - English version" PKG_DLC6_DESCRIPTION_FR="${PKG_DLC6_DESCRIPTION} - French version" PKG_DLC6_DEPENDENCIES_SIBLINGS=' PKG_BIN' PKG_DLC7_ID="${GAME_ID}-dlc-classic-pack" PKG_DLC7_ID_EN="${PKG_DLC7_ID}-en" PKG_DLC7_ID_FR="${PKG_DLC7_ID}-fr" PKG_DLC7_PROVIDES=" $PKG_DLC7_ID" PKG_DLC7_DESCRIPTION='Classic Pack' PKG_DLC7_DESCRIPTION_EN="${PKG_DLC7_DESCRIPTION} - English version" PKG_DLC7_DESCRIPTION_FR="${PKG_DLC7_DESCRIPTION} - French version" PKG_DLC7_DEPENDENCIES_SIBLINGS=' PKG_BIN' PKG_DLC8_ID="${GAME_ID}-dlc-mercenary-pack" PKG_DLC8_ID_EN="${PKG_DLC8_ID}-en" PKG_DLC8_ID_FR="${PKG_DLC8_ID}-fr" PKG_DLC8_PROVIDES=" $PKG_DLC8_ID" PKG_DLC8_DESCRIPTION='Mercenary Pack' PKG_DLC8_DESCRIPTION_EN="${PKG_DLC8_DESCRIPTION} - English version" PKG_DLC8_DESCRIPTION_FR="${PKG_DLC8_DESCRIPTION} - French version" PKG_DLC8_DEPENDENCIES_SIBLINGS=' PKG_BIN' PKG_DLC9_ID="${GAME_ID}-dlc-tribal-pack" PKG_DLC9_ID_EN="${PKG_DLC9_ID}-en" PKG_DLC9_ID_FR="${PKG_DLC9_ID}-fr" PKG_DLC9_PROVIDES=" $PKG_DLC9_ID" PKG_DLC9_DESCRIPTION='Tribal Pack' PKG_DLC9_DESCRIPTION_EN="${PKG_DLC9_DESCRIPTION} - English version" PKG_DLC9_DESCRIPTION_FR="${PKG_DLC9_DESCRIPTION} - French version" PKG_DLC9_DEPENDENCIES_SIBLINGS=' PKG_BIN' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions 'PKG_BIN' 'PKG_L10N' 'PKG_DATA' ( GAME_NAME="$PKG_DLC1_DESCRIPTION" set_current_package 'PKG_DLC1' print_instructions 'PKG_DLC1' ) ( GAME_NAME="$PKG_DLC2_DESCRIPTION" set_current_package 'PKG_DLC2' print_instructions 'PKG_DLC2' ) ( GAME_NAME="$PKG_DLC3_DESCRIPTION" set_current_package 'PKG_DLC3' print_instructions 'PKG_DLC3' ) ( GAME_NAME="$PKG_DLC4_DESCRIPTION" set_current_package 'PKG_DLC4' print_instructions 'PKG_DLC4' ) ( GAME_NAME="$PKG_DLC5_DESCRIPTION" set_current_package 'PKG_DLC5' print_instructions 'PKG_DLC5' ) ( GAME_NAME="$PKG_DLC6_DESCRIPTION" set_current_package 'PKG_DLC6' print_instructions 'PKG_DLC6' ) ( GAME_NAME="$PKG_DLC7_DESCRIPTION" set_current_package 'PKG_DLC7' print_instructions 'PKG_DLC7' ) ( GAME_NAME="$PKG_DLC8_DESCRIPTION" set_current_package 'PKG_DLC8' print_instructions 'PKG_DLC8' ) ( GAME_NAME="$PKG_DLC9_DESCRIPTION" set_current_package 'PKG_DLC9' print_instructions 'PKG_DLC9' ) # Clean up working_directory_cleanup exit 0 games/play-forced.sh0000755000000000000000000000470614471751340013431 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Forced # send your bug reports to bugs@dotslashplay.it ### script_version=20251023.4 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='forced' GAME_NAME='Forced' ## This DRM-free archive is no longer available from humblebundle.com, ## they now only sell Steam keys for this game. ARCHIVE_BASE_0_NAME='FORCED_Linux.zip' ARCHIVE_BASE_0_MD5='039f971dc0ae0741e52865a9f23280d3' ARCHIVE_BASE_0_SIZE='3742323' ARCHIVE_BASE_0_VERSION='1.22-humble1' UNITY3D_NAME='FORCED' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='FORCED_Linux/FORCED' USER_PERSISTENT_DIRECTORIES=' FORCED_Data/Visual Scripting' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgthread-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXext.so.6' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. ## Do not disable the MAP_32BIT flag, ## as it would lead to a crash on launch. unity3d_disable_map32bit() { return 0; } launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-gamedec.sh0000755000000000000000000000656214471751340013556 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Gamedec # send your bug reports to bugs@dotslashplay.it ### script_version=20251009.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='gamedec' GAME_NAME='Gamedec' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" ARCHIVE_BASE_0_NAME='setup_gamedec_-_definitive_edition_20221128_1.7.1.r70100_shipping_(64bit)_(60562).exe' ARCHIVE_BASE_0_MD5='81ce6923488911399dbd209cc574334a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_gamedec_-_definitive_edition_20221128_1.7.1.r70100_shipping_(64bit)_(60562)-1.bin' ARCHIVE_BASE_0_PART1_MD5='e069d6764e368cd141d98ba93d286b50' ARCHIVE_BASE_0_PART2_NAME='setup_gamedec_-_definitive_edition_20221128_1.7.1.r70100_shipping_(64bit)_(60562)-2.bin' ARCHIVE_BASE_0_PART2_MD5='2e4507b72e2e47a9ccd658365fc8347e' ARCHIVE_BASE_0_PART3_NAME='setup_gamedec_-_definitive_edition_20221128_1.7.1.r70100_shipping_(64bit)_(60562)-3.bin' ARCHIVE_BASE_0_PART3_MD5='feee3d36bb8198f2d4e86eddaf0efd6e' ARCHIVE_BASE_0_SIZE='16408534' ARCHIVE_BASE_0_VERSION='1.7.1-gog60562' ARCHIVE_BASE_0_URL='https://www.gog.com/game/gamedec' ARCHIVE_BASE_DEMO_0_NAME='setup_gamedec_demo_20211126_1.3.0.r47441_(64bit)_(51758).exe' ARCHIVE_BASE_DEMO_0_MD5='cc801764f1ebf5e9c6c044ca7429dd4c' ARCHIVE_BASE_DEMO_0_TYPE='innosetup' ARCHIVE_BASE_DEMO_0_PART1_NAME='setup_gamedec_demo_20211126_1.3.0.r47441_(64bit)_(51758)-1.bin' ARCHIVE_BASE_DEMO_0_PART1_MD5='8d45c7abe34aef48ad40178230940713' ARCHIVE_BASE_DEMO_0_PART2_NAME='setup_gamedec_demo_20211126_1.3.0.r47441_(64bit)_(51758)-2.bin' ARCHIVE_BASE_DEMO_0_PART2_MD5='edf41425796878607f5c0574695b9ee8' ARCHIVE_BASE_DEMO_0_SIZE='10215245' ARCHIVE_BASE_DEMO_0_VERSION='1.3.0-gog51758' ARCHIVE_BASE_DEMO_0_URL='https://www.gog.com/game/gamedec_demo' UNREALENGINE4_NAME='gamedec' CONTENT_PATH_DEFAULT='.' HUGE_FILES_DATA=" ${UNREALENGINE4_NAME}/content/paks/${UNREALENGINE4_NAME}-windowsnoeditor.pak" 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_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## Do not install Visual C++ Runtime, as it prevents the game from starting. unrealengine4_wine_winetricks_verbs_default() { return 0; } launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-ghost-of-a-tale.sh0000755000000000000000000000444014471751340015051 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Ghost of a Tale # send your bug reports to bugs@dotslashplay.it ### script_version=20251024.4 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='ghost-of-a-tale' GAME_NAME='Ghost of a Tale' ARCHIVE_BASE_1_NAME='setup_ghost_of_a_tale_833(a)_(62775).exe' ARCHIVE_BASE_1_MD5='9026bc3f002bb5c71fe55f490a4e80d7' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_ghost_of_a_tale_833(a)_(62775)-1.bin' ARCHIVE_BASE_1_PART1_MD5='9970b40b5c464a551ec1c2c8a780fe9c' ARCHIVE_BASE_1_SIZE='4989232' ARCHIVE_BASE_1_VERSION='8.33-gog62775' ARCHIVE_BASE_1_URL='https://www.gog.com/game/ghost_of_a_tale' ARCHIVE_BASE_0_NAME='setup_ghost_of_a_tale_833_(28317).exe' ARCHIVE_BASE_0_MD5='ce98494f39f3908d33ef46e438d94da4' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_ghost_of_a_tale_833_(28317)-1.bin' ARCHIVE_BASE_0_PART1_MD5='e5a2d7c834572c438c324a5104692afb' ARCHIVE_BASE_0_SIZE='5000000' ARCHIVE_BASE_0_VERSION='8.33-gog28317' UNITY3D_NAME='goat' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/My Games/Ghost of a Tale' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-hand-of-fate.sh0000700000000000000000000000547314471751340014410 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 mortalius # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Hand of Fate # send your bug reports to bugs@dotslashplay.it ### script_version=20250507.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' 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' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam libraries could be dropped. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.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_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-haven.sh0000700000000000000000000000615214471751340013253 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Haven # send your bug reports to bugs@dotslashplay.it ### script_version=20241124.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='haven' GAME_NAME='Haven' ARCHIVE_BASE_2_NAME='setup_haven_v1.1.302_official_(64bit)_(54386).exe' ARCHIVE_BASE_2_MD5='8dca64cf157ae335dab462d52253aeeb' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_PART1_NAME='setup_haven_v1.1.302_official_(64bit)_(54386)-1.bin' ARCHIVE_BASE_2_PART1_MD5='03a08ea5c6b1a80b7a2f869da91d2df8' ARCHIVE_BASE_2_PART2_NAME='setup_haven_v1.1.302_official_(64bit)_(54386)-2.bin' ARCHIVE_BASE_2_PART2_MD5='04e4c87ee647fd0511fdda7ff47dc787' ARCHIVE_BASE_2_SIZE='5900000' ARCHIVE_BASE_2_VERSION='1.1.302-gog54386' ARCHIVE_BASE_2_URL='https://www.gog.com/game/haven' ARCHIVE_BASE_1_NAME='setup_haven_v1.1.296_official_(64bit)_(53728).exe' ARCHIVE_BASE_1_MD5='f5b9d5f71a2def217dc9e0f632a04360' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_haven_v1.1.296_official_(64bit)_(53728)-1.bin' ARCHIVE_BASE_1_PART1_MD5='598b4c5592f8f3aa4ab95c49cdf80fe0' ARCHIVE_BASE_1_PART2_NAME='setup_haven_v1.1.296_official_(64bit)_(53728)-2.bin' ARCHIVE_BASE_1_PART2_MD5='00990daa83f70d6440bb4ccabc07981a' ARCHIVE_BASE_1_SIZE='5900000' ARCHIVE_BASE_1_VERSION='1.1.296-gog53728' ARCHIVE_BASE_0_NAME='setup_haven_v1.1.258-rc_official_(64bit)_(49981).exe' ARCHIVE_BASE_0_MD5='1770f0efd829dc486cc37242085518d3' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_haven_v1.1.258-rc_official_(64bit)_(49981)-1.bin' ARCHIVE_BASE_0_PART1_MD5='5aec89c6383ab1ee8f1371a9130e01f5' ARCHIVE_BASE_0_SIZE='4700000' ARCHIVE_BASE_0_VERSION='1.1.258-gog49981' UNITY3D_NAME='haven' CONTENT_PATH_DEFAULT='.' CONTENT_GAME0_DATA_RELATIVE_PATH='app' CONTENT_GAME0_DATA_FILES=" ${UNITY3D_NAME}_data" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/TheGameBakers/Haven' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-heroines-quest-the-herald-of-ragnarok.sh0000755000000000000000000000501514471751340021353 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Fabien Givors # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Heroine's Quest: The Herald of Ragnarok # send your bug reports to bugs@dotslashplay.it ### script_version=20241216.3 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='heroines-quest-the-herald-of-ragnarok' GAME_NAME='Heroine’s Quest: The Herald of Ragnarok' ARCHIVE_BASE_FIREFLOWER_0_NAME='Heroines_Quest_Linux.zip' ARCHIVE_BASE_FIREFLOWER_0_MD5='a421c0e15731510130d26343942f2553' ARCHIVE_BASE_FIREFLOWER_0_SIZE='487786' ARCHIVE_BASE_FIREFLOWER_0_VERSION='1.2.3-fireflower' ARCHIVE_BASE_FIREFLOWER_0_URL='https://fireflowergames.com/products/heroines-quest' ARCHIVE_BASE_GOG_0_NAME='heroine_s_quest_the_herald_of_ragnarok_1_2_9_2_68339.sh' ARCHIVE_BASE_GOG_0_MD5='a9cfa6ca34e28fa4b06d7d6fc565421d' ARCHIVE_BASE_GOG_0_SIZE='500000' ARCHIVE_BASE_GOG_0_VERSION='1.2.9.2-gog68339' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/heroines_quest_the_herald_of_ragnarok' CONTENT_PATH_DEFAULT_FIREFLOWER='.' CONTENT_PATH_DEFAULT_GOG='data/noarch/game/data' CONTENT_GAME_MAIN_FILES=' acsetup.cfg *.0?? *.ags *.exe *.tra *.vox' CONTENT_DOC_MAIN_FILES=' licenses history.txt' CONTENT_DOC0_MAIN_RELATIVE_PATH_GOG='..' CONTENT_DOC0_MAIN_FILES=' *.pdf' APP_MAIN_SCUMMID='ags:heroinesquest' APP_MAIN_ICON_FIREFLOWER="Heroine's Quest.exe" APP_MAIN_ICON_GOG='../../support/icon.png' ## Ensure easy updates from packages generated with pre-20241216.2 game scripts PKG_MAIN_PROVIDES="${PKG_MAIN_PROVIDES:-} heroines-quest-the-herald-of-ragnarok-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-horizon-zero-dawn.sh0000700000000000000000000002274514471751340015554 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Horizon Zero Dawn # send your bug reports to bugs@dotslashplay.it ### script_version=20241124.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='horizon-zero-dawn' GAME_NAME='Horizon Zero Dawn' ARCHIVE_BASE_1_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037).exe' ARCHIVE_BASE_1_MD5='cbcd8e966a6ffd5881d9ad5f21896171' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-1.bin' ARCHIVE_BASE_1_PART1_MD5='9a34a22b24fb0f0e44c17afccec79fdf' ARCHIVE_BASE_1_PART2_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-2.bin' ARCHIVE_BASE_1_PART2_MD5='0e961289ae2e6a84440d354d98a74325' ARCHIVE_BASE_1_PART3_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-3.bin' ARCHIVE_BASE_1_PART3_MD5='f7c23754103e3bcf02eec7216b9e94e3' ARCHIVE_BASE_1_PART4_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-4.bin' ARCHIVE_BASE_1_PART4_MD5='4ed606b3ac83c644dab85bbc1938057a' ARCHIVE_BASE_1_PART5_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-5.bin' ARCHIVE_BASE_1_PART5_MD5='0a08cc1604d50b5c971bfaa80008c9d9' ARCHIVE_BASE_1_PART6_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-6.bin' ARCHIVE_BASE_1_PART6_MD5='8d7b79803c494726889d1a21ae55ae63' ARCHIVE_BASE_1_PART7_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-7.bin' ARCHIVE_BASE_1_PART7_MD5='81bdcd0eb672b0e600af02724745a942' ARCHIVE_BASE_1_PART8_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-8.bin' ARCHIVE_BASE_1_PART8_MD5='1643dff8d1c8e52506e48549554a14da' ARCHIVE_BASE_1_PART9_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-9.bin' ARCHIVE_BASE_1_PART9_MD5='7a7133c16ac38ce9b4e9abfddea62f89' ARCHIVE_BASE_1_PART10_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-10.bin' ARCHIVE_BASE_1_PART10_MD5='f9df3bdac52376d3054f379e2792307c' ARCHIVE_BASE_1_PART11_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-11.bin' ARCHIVE_BASE_1_PART11_MD5='f4b7607bec174dad7f8452d6c5b0009a' ARCHIVE_BASE_1_PART12_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-12.bin' ARCHIVE_BASE_1_PART12_MD5='7681476938581baf216a54aa45d98fc4' ARCHIVE_BASE_1_PART13_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-13.bin' ARCHIVE_BASE_1_PART13_MD5='ea24163717d52a3b1df0673711088143' ARCHIVE_BASE_1_PART14_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-14.bin' ARCHIVE_BASE_1_PART14_MD5='550d3b76dfa565f632b0eddea24bbcf3' ARCHIVE_BASE_1_PART15_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-15.bin' ARCHIVE_BASE_1_PART15_MD5='581a66858d19636df0e073929c778f0a' ARCHIVE_BASE_1_PART16_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-16.bin' ARCHIVE_BASE_1_PART16_MD5='057b513a63935e79e20b6fad76d1e05d' ARCHIVE_BASE_1_PART17_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-17.bin' ARCHIVE_BASE_1_PART17_MD5='67b713b3f6482b43a493f724c3d99e71' ARCHIVE_BASE_1_PART18_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-18.bin' ARCHIVE_BASE_1_PART18_MD5='91eedb3db10cdaaa63f930891a3780f2' ARCHIVE_BASE_1_SIZE='76000000' ARCHIVE_BASE_1_VERSION='1.11.7517962-gog53037' ARCHIVE_BASE_1_URL='https://www.gog.com/game/horizon_zero_dawn_complete_edition' ARCHIVE_BASE_0_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600).exe' ARCHIVE_BASE_0_MD5='f14a4c244306f169896e168f99d7a719' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-1.bin' ARCHIVE_BASE_0_PART1_MD5='26260f87628d433912c4155481e7aa48' ARCHIVE_BASE_0_PART2_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-2.bin' ARCHIVE_BASE_0_PART2_MD5='4dedb5420d45ff65ce0ddd857d2a6cad' ARCHIVE_BASE_0_PART3_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-3.bin' ARCHIVE_BASE_0_PART3_MD5='79aee3ddc0ce308683a6715521b0daa2' ARCHIVE_BASE_0_PART4_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-4.bin' ARCHIVE_BASE_0_PART4_MD5='e2386e5e027c44e9f923fb027ad0f391' ARCHIVE_BASE_0_PART5_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-5.bin' ARCHIVE_BASE_0_PART5_MD5='032be65a01c84f934edfbfa326258e90' ARCHIVE_BASE_0_PART6_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-6.bin' ARCHIVE_BASE_0_PART6_MD5='3b42edf5efe308cf3c1db72bc1ef9021' ARCHIVE_BASE_0_PART7_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-7.bin' ARCHIVE_BASE_0_PART7_MD5='f6216943ef02d605752a1156b0559df3' ARCHIVE_BASE_0_PART8_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-8.bin' ARCHIVE_BASE_0_PART8_MD5='703d33ab31b1ce23587cae3f8eef1453' ARCHIVE_BASE_0_PART9_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-9.bin' ARCHIVE_BASE_0_PART9_MD5='27f01f0545e732d61a9ceb05495ab9ef' ARCHIVE_BASE_0_PART10_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-10.bin' ARCHIVE_BASE_0_PART10_MD5='25c10d76ad8399802cdec42230a129bf' ARCHIVE_BASE_0_PART11_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-11.bin' ARCHIVE_BASE_0_PART11_MD5='7daf2cf2f17e5bd5aa22707dc690fc4f' ARCHIVE_BASE_0_PART12_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-12.bin' ARCHIVE_BASE_0_PART12_MD5='5a23643c5a474808503cb30d057010f8' ARCHIVE_BASE_0_PART13_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-13.bin' ARCHIVE_BASE_0_PART13_MD5='98bab66a848465dab195fe2c292a5283' ARCHIVE_BASE_0_PART14_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-14.bin' ARCHIVE_BASE_0_PART14_MD5='e9817e15706c72ad447881898abe0379' ARCHIVE_BASE_0_PART15_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-15.bin' ARCHIVE_BASE_0_PART15_MD5='f456a7bfed43b135fb8682481e284cb1' ARCHIVE_BASE_0_PART16_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-16.bin' ARCHIVE_BASE_0_PART16_MD5='398b6c64e1087a6f3deab3104c10a153' ARCHIVE_BASE_0_PART17_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-17.bin' ARCHIVE_BASE_0_PART17_MD5='9d0616c36329c3346bad3bdf55ead984' ARCHIVE_BASE_0_SIZE='71000000' ARCHIVE_BASE_0_VERSION='1.10.6278995-gog44600' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' localcachedx12 tools *.dll *.exe' CONTENT_GAME_L10N_EN_FILES=' packed_dx12/initial_english.bin packed_dx12/remainder_english.bin packed_dx12/dlc1_english.bin' CONTENT_GAME_L10N_FR_FILES=' packed_dx12/initial_french.bin packed_dx12/remainder_french.bin packed_dx12/dlc1_french.bin' CONTENT_GAME_MOVIES_FILES=' movies' CONTENT_GAME_DATA_FILES=' packed_dx12/fgrwin32.bin packed_dx12/patch.bin' CONTENT_GAME_DATA_DLC1_FILES=' packed_dx12/dlc1.bin' HUGE_FILES_DATA=' packed_dx12/initial.bin packed_dx12/remainder.bin' WINE_DIRECT3D_RENDERER='vkd3d' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/Horizon Zero Dawn' WINE_WINETRICKS_VERBS='mfc140' APP_MAIN_EXE='horizonzerodawn.exe' PACKAGES_LIST=' PKG_BIN PKG_L10N_EN PKG_L10N_FR PKG_MOVIES PKG_DATA_DLC1 PKG_DATA' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_EN_ID="${PKG_L10N_ID}-en" PKG_L10N_FR_ID="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_EN_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_FR_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_EN_DESCRIPTION='English localization' PKG_L10N_FR_DESCRIPTION='French localization' PKG_MOVIES_ID="${GAME_ID}-movies" PKG_MOVIES_DESCRIPTION='movies' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DLC1_ID="${PKG_DATA_ID}-dlc1" PKG_DATA_DLC1_DESCRIPTION="$PKG_DATA_DESCRIPTION - dlc1" PKG_DATA_DEPS="$PKG_DATA_DEPS $PKG_DATA_DLC1_ID" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_L10N_ID $PKG_MOVIES_ID $PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation case "$(messages_language)" in ('fr') message='version %s :' lang_en='anglaise' lang_fr='française' ;; ('en'|*) message='%s version:' lang_en='English' lang_fr='French' ;; esac printf '\n' ## English localization printf "$message" "$lang_en" ## Silence a ShellCheck false positive, word splitting is expected here ## SC2046 (warning): Quote this to prevent word splitting. # shellcheck disable=SC2046 print_instructions $(packages_list | sed 's/PKG_L10N_FR//') ## French localization printf "$message" "$lang_fr" ## Silence a ShellCheck false positive, word splitting is expected here ## SC2046 (warning): Quote this to prevent word splitting. # shellcheck disable=SC2046 print_instructions $(packages_list | sed 's/PKG_L10N_EN//') # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-ikenfell.sh0000755000000000000000000000556714471751340013766 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Ikenfell # send your bug reports to bugs@dotslashplay.it ### script_version=20240501.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='ikenfell' GAME_NAME='Ikenfell' ARCHIVE_BASE_0_NAME='setup_ikenfell_1.0.3_(64bit)_(52030).exe' ARCHIVE_BASE_0_MD5='edf00ffea67cb1c5007cf0dbaba618c4' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='439559' ARCHIVE_BASE_0_VERSION='1.0.3-gog52030' ARCHIVE_BASE_0_URL='https://www.gog.com/game/ikenfell' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' fmod.dll fmodstudio.dll sdl2.dll ikenfellwin.exe' CONTENT_GAME_DATA_FILES=' atlas audio data scripts' ## The following .dll files are Mono libraries. CONTENT_GAME0_DATA_PATH="${CONTENT_PATH_DEFAULT}/contents/resources" CONTENT_GAME0_DATA_FILES=' gameengine.dll littlewitch.dll mono.posix.dll mono.security.dll moonsharp.interpreter.dll mscorlib.dll system.configuration.dll system.core.dll system.data.dll system.dll system.drawing.dll system.numerics.dll system.runtime.serialization.dll system.security.dll system.xml.dll system.xml.linq.dll' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/ikenfell' WINE_WINEPREFIX_TWEAKS='mono' APP_MAIN_EXE='ikenfellwin.exe' ## The type must by explicitly set to ensure the binary is run through WINE, not Mono. APP_MAIN_TYPE='wine' ## The game crashes on launch when the ALSA backend of SDL is used. APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' # The game crashes on launch when the ALSA backend of SDL is used if [ "${SDL_AUDIODRIVER:-}" = "alsa" ]; then unset SDL_AUDIODRIVER fi ' ## The game crashes on launch when the Wayland backend of SDL is used. APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' # The game crashes on launch when the Wayland backend of SDL is used if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-jade-empire.sh0000755000000000000000000001223314471751340014343 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Jade Empire # send your bug reports to bugs@dotslashplay.it ### script_version=20250804.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='jade-empire' GAME_NAME='Jade Empire' ARCHIVE_BASE_EN_1_NAME='setup_jade_empire_1.00_(15538).exe' ARCHIVE_BASE_EN_1_MD5='e68f17f59bde2254ab1e9b70c078e9f1' ARCHIVE_BASE_EN_1_TYPE='innosetup' ARCHIVE_BASE_EN_1_PART1_NAME='setup_jade_empire_1.00_(15538)-1.bin' ARCHIVE_BASE_EN_1_PART1_MD5='6470aa8dac5486d7c66336686e2e442d' ARCHIVE_BASE_EN_1_PART2_NAME='setup_jade_empire_1.00_(15538)-2.bin' ARCHIVE_BASE_EN_1_PART2_MD5='57f4931e55373a9c994b67d14f43dc1c' ARCHIVE_BASE_EN_1_SIZE='7454315' ARCHIVE_BASE_EN_1_VERSION='1.00-gog15538' ARCHIVE_BASE_EN_1_URL='https://www.gog.com/game/jade_empire_special_edition' ARCHIVE_BASE_FR_1_NAME='setup_jade_empire_french_1.00_(15538).exe' ARCHIVE_BASE_FR_1_MD5='872f400a6af8bae9af9bf0b2025d29f4' ARCHIVE_BASE_FR_1_TYPE='innosetup' ARCHIVE_BASE_FR_1_PART1_NAME='setup_jade_empire_french_1.00_(15538)-1.bin' ARCHIVE_BASE_FR_1_PART1_MD5='39182b7e8651b92b1703e6c2b89c783c' ARCHIVE_BASE_FR_1_PART2_NAME='setup_jade_empire_french_1.00_(15538)-2.bin' ARCHIVE_BASE_FR_1_PART2_MD5='428bf4eba51fde69fa6fe6fb05aadb96' ARCHIVE_BASE_FR_1_SIZE='7608886' ARCHIVE_BASE_FR_1_VERSION='1.00-gog15538' ARCHIVE_BASE_FR_1_URL='https://www.gog.com/game/jade_empire_special_edition' ARCHIVE_BASE_EN_0_NAME='setup_jade_empire_2.0.0.4.exe' ARCHIVE_BASE_EN_0_MD5='8f9db8c43a9cab6cd00de3d6e69fbda5' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_PART1_NAME='setup_jade_empire_2.0.0.4-1.bin' ARCHIVE_BASE_EN_0_PART1_MD5='9fbfbc9b047288ebcbac9551a5f27ae8' ARCHIVE_BASE_EN_0_PART2_NAME='setup_jade_empire_2.0.0.4-2.bin' ARCHIVE_BASE_EN_0_PART2_MD5='94af70b645c525b7263258c91d95cd92' ARCHIVE_BASE_EN_0_PART3_NAME='setup_jade_empire_2.0.0.4-3.bin' ARCHIVE_BASE_EN_0_PART3_MD5='3efd05ca48fc9d2dfe79b2fab2456df0' ARCHIVE_BASE_EN_0_PART4_NAME='setup_jade_empire_2.0.0.4-4.bin' ARCHIVE_BASE_EN_0_PART4_MD5='a480e87364cc8ab2a519c1f09a2da2c9' ARCHIVE_BASE_EN_0_PART5_NAME='setup_jade_empire_2.0.0.4-5.bin' ARCHIVE_BASE_EN_0_PART5_MD5='081042ad8561b599add7b2f366cf3da8' ARCHIVE_BASE_EN_0_SIZE='7800000' ARCHIVE_BASE_EN_0_VERSION='1.0-gog2.0.0.4' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' binkw32.dll ogg.dll vorbis.dll vorbisfile.dll jadeempire.exe jadeempireconfig.exe jadeempirelauncher.exe' CONTENT_GAME_L10N_FILES=' sound data/bips movies/attract.bik movies/c01_cutzu.bik movies/c04_princisfox.bik movies/c06_partycall.bik movies/cut_c3escape*.bik movies/j00_cut_open_c1.bik movies/j00_cut_open_c6.bik movies/j01_jiahand_01.bik movies/j04_cut_lotfin*.bik movies/j04_pop_*.bik movies/j06_recover_01.bik movies/j07_cut_drop01.bik movies/j07_cut_final06b.bik movies/j07_cut_final06.bik movies/j07_cut_final06c.bik movies/j07_cut_final06d.bik movies/j07_cut_final06e.bik movies/j07_cut_final06f.bik movies/j07_cut_final06g.bik movies/j08_cut_ending3.bik movies/j08_cut_final_01.bik movies/j08_cut_stone_01.bik movies/j08_ending3_*.bik movies/j08_final_01_*.bik movies/j08_stone_01_*.bik *.tlk' CONTENT_GAME_DATA_FILES=' data fonts movies override shaderpc *.key' CONTENT_DOC_L10N_RELATIVE_PATH='docs' CONTENT_DOC_L10N_FILES=' manual.pdf readme.txt' CONTENT_DOC_DATA_FILES=' manual.pdf readme.txt' USER_PERSISTENT_DIRECTORIES=' logs persistent save scratch' USER_PERSISTENT_FILES=' *.ini data/*.xml' APP_MAIN_EXE='jadeempire.exe' APP_CONFIG_EXE='jadeempireconfig.exe' APP_CONFIG_CAT='Settings' APP_CONFIG_ID="${GAME_ID}-config" APP_CONFIG_GAME="$GAME_NAME - Configuration" PACKAGES_LIST=' PKG_BIN PKG_L10N PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N_BASE PKG_DATA' PKG_L10N_BASE_ID="${GAME_ID}-l10n" PKG_L10N_ID_EN="${PKG_L10N_BASE_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_BASE_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_BASE_ID" PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## Automatically spawn game settings ## Using desktop_field_exec here ensures that we get a path already escaped if required. wineprefix_init_custom() { cat <<- EOF # Automatically spawn game settings $(desktop_field_exec 'APP_CONFIG') EOF } launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-kingdom-come-deliverance-expansions.sh0000700000000000000000000001516614471751340021174 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Fabien Givors set -o errexit ### # Kingdom Come: Deliverance, expansions # send your bug reports to bugs@dotslashplay.it ### script_version=20240114.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' # Set game-specific variables GAME_ID='kingdom-come-deliverance' GAME_NAME='Kingdom Come: Deliverance' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES='data goggame-*' PKG_MAIN_DEPS="$GAME_ID" # Archives ## HD Sound Pack EXPANSION_ID_HD_SOUND="hd-sound" EXPANSION_NAME_HD_SOUND="HD Sound pack" ARCHIVE_BASE_HD_SOUND_0_NAME='setup_kingdom_come_deliverance_-_hd_sound_pack_1.9.6-404-504czj3_(62297).exe' ARCHIVE_BASE_HD_SOUND_0_MD5='2148cf5d68e477f5c4fb32fde94a2cb8' ARCHIVE_BASE_HD_SOUND_0_TYPE='innosetup' ARCHIVE_BASE_HD_SOUND_0_SIZE='974736' ARCHIVE_BASE_HD_SOUND_0_VERSION='1.9.6-404-504czj3' ARCHIVE_BASE_HD_SOUND_0_URL='https://www.gog.com/fr/game/kingdom_come_deliverance_hd_sound_pack' ## HD Texture Pack EXPANSION_ID_HD_TEXTURE="hd-texture" EXPANSION_NAME_HD_TEXTURE="HD Texture pack" ARCHIVE_BASE_HD_TEXTURE_0_NAME='setup_kingdom_come_deliverance_-_hd_texture_pack_1.9.6-404-504czj3_(62297).exe' ARCHIVE_BASE_HD_TEXTURE_0_MD5='599a26fd112d65bd0c6bcaeccd47e3c2' ARCHIVE_BASE_HD_TEXTURE_0_TYPE='innosetup' ARCHIVE_BASE_HD_TEXTURE_0_SIZE='7089775' ARCHIVE_BASE_HD_TEXTURE_0_VERSION='1.9.6-404-504czj3' ARCHIVE_BASE_HD_TEXTURE_0_URL='https://www.gog.com/fr/game/kingdom_come_deliverance_hd_texture_pack' ARCHIVE_BASE_HD_TEXTURE_0_PART1='setup_kingdom_come_deliverance_-_hd_texture_pack_1.9.6-404-504czj3_(62297)-1.bin' ARCHIVE_BASE_HD_TEXTURE_0_PART1_MD5='257a19297a6e1ffc202ca9af584dbc17' ARCHIVE_BASE_HD_TEXTURE_0_PART2='setup_kingdom_come_deliverance_-_hd_texture_pack_1.9.6-404-504czj3_(62297)-2.bin' ARCHIVE_BASE_HD_TEXTURE_0_PART2_MD5='c3271df85b819e5ed5016e318544fcc5' ## HD Voice FR pack EXPANSION_ID_HD_VOICE_FR="hd-voice-fr" EXPANSION_NAME_HD_VOICE_FR="HD Voice pack" ARCHIVE_BASE_HD_VOICE_FR_0_NAME='setup_kingdom_come_deliverance_-_hd_voice_pack_-_french_1.9.6-404-504czj3_(62297).exe' ARCHIVE_BASE_HD_VOICE_FR_0_MD5='16178699acfc1ca2b94c385f7e6dc206' ARCHIVE_BASE_HD_VOICE_FR_0_TYPE='innosetup' ARCHIVE_BASE_HD_VOICE_FR_0_SIZE='3832027' ARCHIVE_BASE_HD_VOICE_FR_0_VERSION='1.9.6-404-504czj3' ARCHIVE_BASE_HD_VOICE_FR_0_URL='https://www.gog.com/fr/game/kingdom_come_deliverance_hd_voice_pack_french' ARCHIVE_BASE_HD_VOICE_FR_0_PART1='setup_kingdom_come_deliverance_-_hd_voice_pack_-_french_1.9.6-404-504czj3_(62297)-1.bin' ARCHIVE_BASE_HD_VOICE_FR_0_PART1_MD5='85279184e0e52c810cea55efa9440efc' ## Expansion: A woman's lot EXPANSION_ID_A_WOMANS_LOT="a-woman-s-lot" EXPANSION_NAME_A_WOMANS_LOT="A woman's lot" ARCHIVE_BASE_A_WOMANS_LOT_0_NAME='setup_kingdom_come_deliverance_-_a_womans_lot_1.9.6-404-504czj3_(62297).exe' ARCHIVE_BASE_A_WOMANS_LOT_0_MD5='08ec99ec6bf0a08bc04004579641da81' ARCHIVE_BASE_A_WOMANS_LOT_0_TYPE='innosetup' ARCHIVE_BASE_A_WOMANS_LOT_0_SIZE='8000000' ARCHIVE_BASE_A_WOMANS_LOT_0_VERSION='1.9.6-404-504czj3' ARCHIVE_BASE_A_WOMANS_LOT_0_URL='https://www.gog.com/fr/game/kingdom_come_deliverance_a_womans_lot' ARCHIVE_BASE_A_WOMANS_LOT_0_PART1='setup_kingdom_come_deliverance_-_a_womans_lot_1.9.6-404-504czj3_(62297)-1.bin' ARCHIVE_BASE_A_WOMANS_LOT_0_PART1_MD5='7cf9ac8abb8e304b756c98a36d6fbc2a' ARCHIVE_BASE_A_WOMANS_LOT_0_PART2='setup_kingdom_come_deliverance_-_a_womans_lot_1.9.6-404-504czj3_(62297)-2.bin' ARCHIVE_BASE_A_WOMANS_LOT_0_PART2_MD5='e671d0cfaceb8f5cac910d0e93f2b19f' ## Expansion: Band of bastards EXPANSION_ID_BAND_OF_BASTARDS="band-of-bastards" EXPANSION_NAME_BAND_OF_BASTARDS="Band of bastards" ARCHIVE_BASE_BAND_OF_BASTARDS_0_NAME='setup_kingdom_come_deliverance__band_of_bastards_1.9.6-404-504czj3_(62297).exe' ARCHIVE_BASE_BAND_OF_BASTARDS_0_MD5='cce9e163f07e2e9fa8be5b6b113fe866' ARCHIVE_BASE_BAND_OF_BASTARDS_0_TYPE='innosetup' ARCHIVE_BASE_BAND_OF_BASTARDS_0_SIZE='500000' ARCHIVE_BASE_BAND_OF_BASTARDS_0_VERSION='1.9.6-404-504czj3' ARCHIVE_BASE_BAND_OF_BASTARDS_0_URL='https://www.gog.com/fr/game/kingdom_come_deliverance_band_of_bastards' ## Expansion: From the ashes EXPANSION_ID_FROM_THE_ASHES="from-the-ashes" EXPANSION_NAME_FROM_THE_ASHES="From the ashes" ARCHIVE_BASE_FROM_THE_ASHES_0_NAME='setup_kingdom_come_deliverance__from_the_ashes_1.9.6-404-504czj3_(62297).exe' ARCHIVE_BASE_FROM_THE_ASHES_0_MD5='141360d56c9ba17c72fcac2f50685a7f' ARCHIVE_BASE_FROM_THE_ASHES_0_TYPE='innosetup' ARCHIVE_BASE_FROM_THE_ASHES_0_SIZE='100' ARCHIVE_BASE_FROM_THE_ASHES_0_VERSION='1.9.6-404-504czj3' ARCHIVE_BASE_FROM_THE_ASHES_0_URL='https://www.gog.com/fr/game/kingdom_come_deliverance_from_the_ashes' ## Expansion: The amorous adventures of bold sir Hans Capon EXPANSION_ID_HANS_CAPON="amorous-adventures-sir-capon" EXPANSION_NAME_HANS_CAPON="The amorous adventures of bold sir Hans Capon" ARCHIVE_BASE_HANS_CAPON_0_NAME='setup_kingdom_come_deliverance__the_amorous_adventures_of_bold_sir_hans_capon_1.9.6-404-504czj3_(62297).exe' ARCHIVE_BASE_HANS_CAPON_0_MD5='2b41e8147c8046b7b01cfdd3e8079b10' ARCHIVE_BASE_HANS_CAPON_0_TYPE='innosetup' ARCHIVE_BASE_HANS_CAPON_0_SIZE='2000000' ARCHIVE_BASE_HANS_CAPON_0_VERSION='1.9.6-404-504czj3' ARCHIVE_BASE_HANS_CAPON_0_URL='https://www.gog.com/fr/game/kingdom_come_deliverance_the_amorous_adventures_of_bold_sir_hans_capon' ## Expansion: Theasures of the past EXPANSION_ID_TREASURES_OF_THE_PAST="treasures-of-the-past" EXPANSION_NAME_TREASURES_OF_THE_PAST="Treasures of the past" ARCHIVE_BASE_TREASURES_OF_THE_PAST_0_NAME='setup_kingdom_come_deliverance_treasures_of_the_past_dlc_1.9.6-404-504czj3_(62297).exe' ARCHIVE_BASE_TREASURES_OF_THE_PAST_0_MD5='4e3bd284e3dc4573690bed957ba78cbe' ARCHIVE_BASE_TREASURES_OF_THE_PAST_0_TYPE='innosetup' ARCHIVE_BASE_TREASURES_OF_THE_PAST_0_SIZE='100' ARCHIVE_BASE_TREASURES_OF_THE_PAST_0_VERSION='1.9.6-404-504czj3' ARCHIVE_BASE_TREASURES_OF_THE_PAST_0_URL='https://www.gog.com/fr/game/kingdom_come_deliverance_treasures_of_the_past' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_default # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-kingdom-come-deliverance.sh0000700000000000000000000002436514471751340017010 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Fabien Givors # SPDX-FileCopyrightText: © 2025 Antoine Le Gonidec set -o errexit ### # Kingdom Come: Deliverance # send your bug reports to bugs@dotslashplay.it ### script_version=20250314.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='kingdom-come-deliverance' GAME_NAME='Kingdom Come: Deliverance' ARCHIVE_BASE_0_NAME='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297).exe' ARCHIVE_BASE_0_MD5='de458c20cbcaadf8dfc92afe7c2e8284' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-1.bin' ARCHIVE_BASE_0_PART1_MD5='c18fa417f8486275d78e01c1a62c8204' ARCHIVE_BASE_0_PART2_NAME='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-2.bin' ARCHIVE_BASE_0_PART2_MD5='d288e846badd8228ba0f78c6186731f2' ARCHIVE_BASE_0_PART3_NAME='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-3.bin' ARCHIVE_BASE_0_PART3_MD5='b6702c24ded1f8851cb297553cc9b71b' ARCHIVE_BASE_0_PART4_NAME='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-4.bin' ARCHIVE_BASE_0_PART4_MD5='b33e86210161017d399071fcf6c54f9f' ARCHIVE_BASE_0_PART5_NAME='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-5.bin' ARCHIVE_BASE_0_PART5_MD5='379faac2d6128f1a94275b9d9248c0de' ARCHIVE_BASE_0_PART6_NAME='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-6.bin' ARCHIVE_BASE_0_PART6_MD5='c5ffb38b7425cb0219fe70497bb09d9a' ARCHIVE_BASE_0_PART7_NAME='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-7.bin' ARCHIVE_BASE_0_PART7_MD5='594f01d2cbd5b2c5cc9442d644a8b335' ARCHIVE_BASE_0_PART8_NAME='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-8.bin' ARCHIVE_BASE_0_PART8_MD5='93896ac78ea2dddeb433ffa685a561c2' ARCHIVE_BASE_0_PART9_NAME='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-9.bin' ARCHIVE_BASE_0_PART9_MD5='b8cd2810be97f2f697f67e92c71c16b8' ARCHIVE_BASE_0_PART10_NAME='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-10.bin' ARCHIVE_BASE_0_PART10_MD5='a38ed45d417c2d2cef03b270a21da255' ARCHIVE_BASE_0_PART11_NAME='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-11.bin' ARCHIVE_BASE_0_PART11_MD5='671cc5add7a31e5efd46e2a03478cf5d' ARCHIVE_BASE_0_PART12_NAME='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-12.bin' ARCHIVE_BASE_0_PART12_MD5='9aec35e9d193044603095eb1961d8647' ARCHIVE_BASE_0_PART13_NAME='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-13.bin' ARCHIVE_BASE_0_PART13_MD5='cb65a86dd5cc63a66a18767c3a4c5378' ARCHIVE_BASE_0_PART14_NAME='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-14.bin' ARCHIVE_BASE_0_PART14_MD5='701d947164a1f4d541c985a7273b9552' ARCHIVE_BASE_0_PART15_NAME='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-15.bin' ARCHIVE_BASE_0_PART15_MD5='e3bb56e79d9ff4f9be2ee2b321f10f68' ARCHIVE_BASE_0_SIZE='62899673' ARCHIVE_BASE_0_VERSION='1.9.6-404-504czj3-gog62297' ARCHIVE_BASE_0_URL='https://www.gog.com/game/kingdom_come_deliverance' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' patchversion.txt whdlversions.txt bin engine system.cfg ' ## TODO: Check if the goggame-* files are required CONTENT_GAME0_BIN_FILES=' goggame-* ' CONTENT_GAME_L10N_COMMON_FILES=' localization/*_xml.pak localization/common.pak' CONTENT_GAME_L10N_VOICES_CZ_FILES=' localization/*czech-*.pak localization/patch/*czech*.pak' CONTENT_GAME_L10N_VOICES_JA_FILES=' localization/*japanese-*.pak localization/patch/*japanese*.pak' CONTENT_GAME_L10N_VOICES_DE_FILES=' localization/*german.pak localization/patch/*german*.pak' CONTENT_GAME_L10N_VOICES_EN_FILES=' localization/*english.pak localization/patch/*english*.pak' CONTENT_GAME_L10N_VOICES_FR_FILES=' localization/*french.pak localization/patch/*french*.pak' CONTENT_GAME_DATA_BASE_FILES=' data/gamedata.pak data/pak.cfg' CONTENT_GAME_DATA_PATCH103_FILES=' data/patch/ipl_patch_010300.pak data/patch/patch_010300.pak' CONTENT_GAME_DATA_PATCH104_FILES=' data/patch/ipl_patch_010400.pak data/patch/ipl_patch_010403.pak' CONTENT_GAME_DATA_PATCH105_FILES=' data/patch/ipl_patch_010500.pak data/patch/patch_010500.pak' CONTENT_GAME_DATA_PATCH106_FILES=' data/patch/ipl_patch_010600.pak data/patch/ipl_patch_010602.pak data/patch/patch_010600.pak' CONTENT_GAME_DATA_PATCH107_FILES=' data/patch/ipl_patch_010700b.pak data/patch/ipl_patch_010700.pak data/patch/ipl_patch_010701b.pak data/patch/ipl_patch_010701.pak data/patch/patch_010700.pak data/patch/patch_010701.pak' CONTENT_GAME_DATA_PATCH108_FILES=' data/patch/ipl_patch_010800.pak data/patch/patch_010900.pak' CONTENT_GAME_DATA_PATCH109_FILES=' data/patch/ipl_patch_010900.pak data/patch/ipl_patch_010902.pak data/patch/patch_010800.pak' CONTENT_GAME_DATA_WORLD_FILES=' data/_fastload/startup_graphics.pak data/buildings.pak data/engineassets data/engineassets/sky data/engineassets/sky/optical.lut data/geomcaches.pak data/levels data/objects.pak data/scripts.pak data/tables.pak data/textures.pak' CONTENT_GAME_DATA_AUDIO_FILES=' data/music.pak data/sounds.pak' CONTENT_GAME_DATA_VIDEOS_FILES=' data/ipl_videos.pak data/videos-part0.pak data/videos-part1.pak data/videos-part2.pak data/videos-part3.pak data/videos-part4.pak' CONTENT_GAME_DATA_VIDEOSB_FILES=' data/ipl_videosb.pak data/videosb-part0.pak data/videosb-part1.pak' CONTENT_GAME_DATA_CINEMATICS_FILES=' data/cinematics.pak data/ipl_cinematics.pak' CONTENT_GAME_DATA_CLOTHES_FILES=' data/cloth-part0.pak data/cloth-part1.pak data/cloth-part2.pak' CONTENT_GAME_DATA_CHARACTERS_FILES=' data/_fastload/startup_characters.pak data/characters.pak data/heads.pak data/ipl_heads.pak' CONTENT_GAME_DATA_ANIMATIONS_FILES=' data/_fastload/startup_animations.pak data/animations-part0.pak data/animations-part1.pak' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/$USER/Saved Games/kingdomcome/profiles users/$USER/Saved Games/kingdomcome/saves' USER_PERSISTENT_DIRECTORIES=' mods' USER_PERSISTENT_FILES=' system.cfg user.cfg.keeptextures user.cfg.perf user.cfg.reticle user.cfg' APP_MAIN_EXE='bin/win64/kingdomcome.exe' PACKAGES_LIST=' PKG_BIN PKG_L10N_COMMON PKG_L10N_VOICES_EN PKG_L10N_VOICES_FR PKG_L10N_VOICES_CZ PKG_L10N_VOICES_JA PKG_L10N_VOICES_DE PKG_DATA_BASE PKG_DATA_PATCH103 PKG_DATA_PATCH104 PKG_DATA_PATCH105 PKG_DATA_PATCH106 PKG_DATA_PATCH107 PKG_DATA_PATCH108 PKG_DATA_PATCH109 PKG_DATA_WORLD PKG_DATA_AUDIO PKG_DATA_VIDEOS PKG_DATA_VIDEOSB PKG_DATA_ANIMATIONS PKG_DATA_CINEMATICS PKG_DATA_CLOTHES PKG_DATA_CHARACTERS' # Binaries packages PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N_COMMON PKG_DATA_BASE' # Localization packages PKG_L10N_COMMON_ID="${GAME_ID}-l10n-common" PKG_L10N_COMMON_DESCRIPTION='localizations - shared files' PKG_L10N_COMMON_DEPENDENCIES_SIBLINGS=' PKG_L10N_VOICES_CZ PKG_L10N_VOICES_DE PKG_L10N_VOICES_EN PKG_L10N_VOICES_FR PKG_L10N_VOICES_JA' PKG_L10N_VOICES_ID="${GAME_ID}-l10n-voices" PKG_L10N_VOICES_DESCRIPTION="localizations - voices" PKG_L10N_VOICES_CZ_ID="${PKG_L10N_VOICES_ID}-cz" PKG_L10N_VOICES_DE_ID="${PKG_L10N_VOICES_ID}-de" PKG_L10N_VOICES_EN_ID="${PKG_L10N_VOICES_ID}-en" PKG_L10N_VOICES_FR_ID="${PKG_L10N_VOICES_ID}-fr" PKG_L10N_VOICES_JA_ID="${PKG_L10N_VOICES_ID}-ja" PKG_L10N_VOICES_CZ_DESCRIPTION="$PKG_L10N_VOICES_DESCRIPTION - Czech" PKG_L10N_VOICES_DE_DESCRIPTION="$PKG_L10N_VOICES_DESCRIPTION - Deutch" PKG_L10N_VOICES_EN_DESCRIPTION="$PKG_L10N_VOICES_DESCRIPTION - English" PKG_L10N_VOICES_FR_DESCRIPTION="$PKG_L10N_VOICES_DESCRIPTION - French" PKG_L10N_VOICES_JA_DESCRIPTION="$PKG_L10N_VOICES_DESCRIPTION - Japanese" # Data packages PKG_DATA_BASE_ID="${GAME_ID}-data-base" PKG_DATA_BASE_DESCRIPTION='data-base' PKG_DATA_BASE_DEPENDENCIES_SIBLINGS=' PKG_DATA_PATCH103 PKG_DATA_PATCH104 PKG_DATA_PATCH105 PKG_DATA_PATCH106 PKG_DATA_PATCH107 PKG_DATA_PATCH108 PKG_DATA_PATCH109 PKG_DATA_WORLD PKG_DATA_AUDIO PKG_DATA_VIDEOS PKG_DATA_VIDEOSB PKG_DATA_ANIMATIONS PKG_DATA_CINEMATICS PKG_DATA_CLOTHES PKG_DATA_CHARACTERS' PKG_DATA_WORLD_ID="${GAME_ID}-data-world" PKG_DATA_WORLD_DESCRIPTION='data world' PKG_DATA_AUDIO_ID="${GAME_ID}-data-audio" PKG_DATA_AUDIO_DESCRIPTION='data audio' PKG_DATA_VIDEOS_ID="${GAME_ID}-data-videos" PKG_DATA_VIDEOS_DESCRIPTION='data videos' PKG_DATA_VIDEOSB_ID="${GAME_ID}-data-videosb" PKG_DATA_VIDEOSB_DESCRIPTION='data videosb' PKG_DATA_CHARACTERS_ID="${GAME_ID}-data-characters" PKG_DATA_CHARACTERS_DESCRIPTION='data characters' PKG_DATA_CLOTHES_ID="${GAME_ID}-data-clothes" PKG_DATA_CLOTHES_DESCRIPTION='data clothes' PKG_DATA_CINEMATICS_ID="${GAME_ID}-data-cinematics" PKG_DATA_CINEMATICS_DESCRIPTION='data cinematics' PKG_DATA_ANIMATIONS_ID="${GAME_ID}-data-animations" PKG_DATA_ANIMATIONS_DESCRIPTION='data animations' PKG_DATA_PATCH103_ID="${GAME_ID}-data-patch-103" PKG_DATA_PATCH103_DESCRIPTION='data patch 103' PKG_DATA_PATCH104_ID="${GAME_ID}-data-patch-104" PKG_DATA_PATCH104_DESCRIPTION='data patch 104' PKG_DATA_PATCH105_ID="${GAME_ID}-data-patch-105" PKG_DATA_PATCH105_DESCRIPTION='data patch 105' PKG_DATA_PATCH106_ID="${GAME_ID}-data-patch-106" PKG_DATA_PATCH106_DESCRIPTION='data patch 106' PKG_DATA_PATCH107_ID="${GAME_ID}-data-patch-107" PKG_DATA_PATCH107_DESCRIPTION='data patch 107' PKG_DATA_PATCH108_ID="${GAME_ID}-data-patch-108" PKG_DATA_PATCH108_DESCRIPTION='data patch 108' PKG_DATA_PATCH109_ID="${GAME_ID}-data-patch-109" PKG_DATA_PATCH109_DESCRIPTION='data patch 109' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA_BASE' content_inclusion_default # Write launchers ## Run the game binary from its parent directory game_exec_line() { cat <<- 'EOF' cd bin/win64 $(wine_command) kingdomcome.exe "$@" EOF } launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-kingsway.sh0000755000000000000000000000353714471751340014024 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Kingsway # send your bug reports to bugs@dotslashplay.it ### script_version=20240627.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='kingsway' GAME_NAME='Kingsway' ARCHIVE_BASE_0_NAME='setup_kingsway_1.1.3_(13864).exe' ARCHIVE_BASE_0_MD5='f1f02c073faa80cd2f2b6c8571032ad2' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='1.1.3-gog13864' ARCHIVE_BASE_0_SIZE='64000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/kingsway' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' kingsway.exe' CONTENT_GAME_DATA_FILES=' music data.win' # Use persistent storage for saved games and settings WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Local/Kingsway' APP_MAIN_EXE='kingsway.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-knights-of-pen-and-paper.sh0000700000000000000000000000537414471751340016655 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Knights of Pen and Paper # send your bug reports to bugs@dotslashplay.it ### script_version=20250508.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='knights-of-pen-and-paper' GAME_NAME='Knights of Pen and Paper' # Archives ## Knights 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' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam libraries can be dropped. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Check for the presence of Deluxier Edition upgrade pack. 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 content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-kyn.sh0000755000000000000000000000457514471751340012774 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Kyn # send your bug reports to bugs@dotslashplay.it ### script_version=20250909.2 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='kyn-game' 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='--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_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-legend-of-grimrock.sh0000700000000000000000000000505014471751340015621 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Legend of Grimrock # send your bug reports to bugs@dotslashplay.it ### script_version=20250503.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' 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_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 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" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-lennas-inception.sh0000755000000000000000000001163514471751340015434 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Lenna's Inception # send your bug reports to bugs@dotslashplay.it ### script_version=20250326.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='lennas-inception' GAME_NAME='Lenna’s Inception' ARCHIVE_BASE_2_NAME='lennas-inception-linux-amd64-stable.zip' ARCHIVE_BASE_2_MD5='2eea96efe93f463688da6540a3904ce9' ARCHIVE_BASE_2_VERSION='1.1.8-itch' ARCHIVE_BASE_2_SIZE='301938' ARCHIVE_BASE_2_URL='https://tccoxon.itch.io/lennas-inception' ARCHIVE_BASE_1_NAME='lennas-inception-linux-amd64-stable.zip' ARCHIVE_BASE_1_MD5='5f7ff7b389777b00519144df1cc98cc9' ARCHIVE_BASE_1_VERSION='1.1.5-itch.2020.11.22' ARCHIVE_BASE_1_SIZE='310000' ARCHIVE_BASE_0_NAME='lennas-inception-linux-amd64-stable.zip' ARCHIVE_BASE_0_MD5='e701126a913c2c63c89e79875dd89e86' ARCHIVE_BASE_0_VERSION='1.0.10-itch1' ARCHIVE_BASE_0_SIZE='310000' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES=' assets launch-config.json lib' CONTENT_DOC_MAIN_FILES=' COPYRIGHT.txt README.txt' APP_MAIN_TYPE='java' APP_MAIN_EXE='lib/libloader.jar' APP_MAIN_JAVA_OPTIONS='-Dsun.java2d.opengl=True -Djava.library.path=./lib -Xms1024m -Xmx3072m' APP_MAIN_ICON='icon.png' ## Work around the shipped binaries overuse of file descriptors APP_MAIN_PRERUN_BIN_SHIPPED=' # Work around the engine overuse of file descriptors ## 4096 is an arbitrary value, 4 times the default (1024), that seems to work for all setups. if ! ulimit -n 4096; then { printf "\\n\\033[1;33mWarning:\\033[0m\\n" printf "Your current shell interpreter has no support for ulimit -n.\\n" printf "This might lead to unending loading screens if the game engine hits the file descriptors use limit.\\n" printf "\\n" } > /dev/stderr fi ' # Since this game seems to be broken on OpenJDK ≥ 11, we build an extra package allowing to use the shipped OpenJDK 1.8 CONTENT_GAME_BIN_SHIPPED_FILES=' launch-config.json jre' PACKAGES_LIST=' PKG_MAIN PKG_BIN_SYSTEM PKG_BIN_SHIPPED' PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_BIN' PKG_BIN_ID="${GAME_ID}-bin" PKG_BIN_PROVIDES=" $PKG_BIN_ID" PKG_BIN_SYSTEM_ID="${PKG_BIN_ID}-system" PKG_BIN_SYSTEM_PROVIDES="$PKG_BIN_PROVIDES" PKG_BIN_SYSTEM_DESCRIPTION='Using system-provided Java' PKG_BIN_SHIPPED_ID="${PKG_BIN_ID}-shipped" PKG_BIN_SHIPPED_PROVIDES="$PKG_BIN_PROVIDES" PKG_BIN_SHIPPED_DESCRIPTION='Using shipped Java binaries' PKG_BIN_SHIPPED_ARCH='64' PKG_BIN_SHIPPED_DEPENDENCIES_LIBRARIES=' libasound.so.2 libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgthread-2.0.so.0 libgtk-x11-2.0.so.0 libjpeg.so.62 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libthread_db.so.1 libX11.so.6 libXext.so.6 libXi.so.6 libxml2.so.2 libXrender.so.1 libxslt.so.1 libXtst.so.6 libXxf86vm.so.1 libz.so.1' # Extract game icon from the .jar archive REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} unzip" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Ensure the shipped java binary can be executed chmod 755 'jre/bin/java' # Extract game icon from the .jar archive unzip -q -d . 'assets/lennasinception.jar' "$(icon_path 'APP_MAIN_ICON')" ) # Include game data content_inclusion_icons 'PKG_MAIN' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN_SYSTEM' ## Use shipped Java binary instead of system-provided one game_exec_line() { cat <<- EOF ./jre/bin/java $APP_MAIN_JAVA_OPTIONS -jar lib/libloader.jar "\$@" EOF } launchers_generation 'PKG_BIN_SHIPPED' # Build packages packages_generation case "$(messages_language)" in ('fr') message='Utilisation des binaires fournis par %s :' bin_shipped='les développeurs' bin_system='le système' ;; ('en'|*) message='Using binaries provided by %s:' bin_shipped='the developers' bin_system='the system' ;; esac printf '\n' printf "$message" "$bin_system" print_instructions 'PKG_MAIN' 'PKG_BIN_SYSTEM' printf "$message" "$bin_shipped" print_instructions 'PKG_MAIN' 'PKG_BIN_SHIPPED' # Clean up working_directory_cleanup exit 0 games/play-lords-of-xulima.sh0000755000000000000000000000727714471751340015217 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Lords of Xulima # send your bug reports to bugs@dotslashplay.it ### script_version=20251022.6 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='lords-of-xulima' GAME_NAME='Lords of Xulima' ARCHIVE_BASE_0_NAME='gog_lords_of_xulima_2.3.0.9.sh' ARCHIVE_BASE_0_MD5='480abf8d929da622eacd69595a4ebc80' ARCHIVE_BASE_0_SIZE='1700000' ARCHIVE_BASE_0_VERSION='2.1.1-gog2.3.0.9' ARCHIVE_BASE_0_URL='https://www.gog.com/game/lords_of_xulima' ARCHIVE_REQUIRED_LIB64_NAME='lords-of-xulima_64bit-libraries.tar.xz' ARCHIVE_REQUIRED_LIB64_MD5='e13bdc9c7a378c13ca1c0d64575013db' ARCHIVE_REQUIRED_LIB64_SIZE='236' ARCHIVE_REQUIRED_LIB64_URL='http://downloads.dotslashplay.it/games/lords-of-xulima/' CONTENT_PATH_DEFAULT='data/noarch/game' ## Provided by lords-of-xulima_64bit-libraries.tar.xz CONTENT_LIBS_LIBS64_PATH='.' CONTENT_LIBS_LIBS64_FILES=' libbass.so' ## Provided by the GOG installer CONTENT_LIBS_LIBS32_FILES=' libbass.so' CONTENT_FONTS_DATA_FILES=' FoL_BB_RU.ttf FoL_CB_RU.ttf FoL_MB_RU.ttf LOXBold.ttf LOXCondensed.ttf LOXMedium.ttf WenQuanYiZenHei.ttf' CONTENT_GAME_MAIN_FILES=' DXApp_Anim DXApp_Sounds DXApp.dx??? SOL_Anim SOL_DATA SOL_Sounds SOLCredits.jxcredits SOL.jxdat SOL.jxdatgal SOL.jxrul SOL.jxworldmap SOL.dx??? SOL_??.jx??? SOL Cinematic Resources fonts.conf local.conf Bass.Net.dll Bass.Net.dll.config Bass.Net.iOS.dll Bass.Net.Linux.dll ChnCharInfo.dll DXPlatform_Desktop.dll DXVision.dll DXVision.dll.config ExcelWrapper.dll ICSharpCode.SharpZipLib.dll Ionic.Zip.dll Ionic.Zlib.dll JXEngine.dll JXMapRenderer.dll ManagedSquish.dll OpenTK.Compatibility.dll OpenTK.Compatibility.dll.config OpenTK.dll OpenTK.dll.config OpenTK.GLControl.dll OpenTK.GLControl.dll.config SlimDX.dll SOL.dll LOXEditor.exe LoX.exe motionblur.fx shaders.fx PixelShader.glsl VertexShader.glsl LordsOfXulima.hqx Info.jxmod LOX.sqlite LOXEditor.suo CustomPortraits.txt Temp_InteractiveObjects_Count.txt' ## TODO: Check if the Steam Mono assemblies can be dropped. CONTENT_GAME0_MAIN_FILES=' Steamworks.NET.dll Steamworks.NET.dll.config' CONTENT_DOC_MAIN_FILES=' Manual' FAKE_HOME_PERSISTENT_DIRECTORIES=' My Games/Lords of Xulima' APP_MAIN_EXE='LoX.exe' APP_MAIN_ICON='LoX.exe' PACKAGES_LIST=' PKG_MAIN PKG_LIBS64 PKG_LIBS32' PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_LIBS' ## Easier upgrades from pre-20251022.2 packages PKG_MAIN_PROVIDES=' lords-of-xulima-data' PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS_DESCRIPTION='Shipped libraries' PKG_LIBS64_ARCH='64' PKG_LIBS32_ARCH='32' PKG_LIBS_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libm.so.6 libpthread.so.0 librt.so.1' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Check for presence of required 64-bit library. archive_initialize_required \ 'ARCHIVE_LIB64' \ 'ARCHIVE_REQUIRED_LIB64' # Extract game data. archive_extraction_default archive_extraction 'ARCHIVE_LIB64' # Include game data. content_inclusion_icons content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-minit.sh0000755000000000000000000000422514471751340013303 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Minit # send your bug reports to bugs@dotslashplay.it ### script_version=20250421.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='minit' GAME_NAME='Minit' ARCHIVE_BASE_0_NAME='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_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libssl.so.1.0.0 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-monster-sanctuary.sh0000700000000000000000000000426414471751340015652 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Monster Sanctuary # send your bug reports to bugs@dotslashplay.it ### script_version=20240618.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='monster-sanctuary' GAME_NAME='Monster Sanctuary' ARCHIVE_BASE_0_NAME='Monster Sanctuary v0_2_8 Linux.zip' ARCHIVE_BASE_0_MD5='5f0712a8799d24c357769afa0faa06ae' ARCHIVE_BASE_0_SIZE='142987' ARCHIVE_BASE_0_VERSION='0.2.8-itch' ARCHIVE_BASE_0_URL='https://sersch.itch.io/monster-sanctuary' UNITY3D_NAME='Monster Sanctuary' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='Monster Sanctuary v0_2_8 Linux' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-moon-hunters.sh0000755000000000000000000000412314471751340014616 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Moon Hunters # send your bug reports to bugs@dotslashplay.it ### script_version=20250909.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' 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_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_LIBRARIES=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-my-time-at-portia.sh0000755000000000000000000000573614471751340015452 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # My Time at Portia # send your bug reports to bugs@dotslashplay.it ### script_version=20241219.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='my-time-at-portia' GAME_NAME='My Time at Portia' ARCHIVE_BASE_1_NAME='setup_my_time_at_portia_20210813-1123-141541_(64bit)_(49522).exe' ARCHIVE_BASE_1_MD5='73890f1c7a86bdcab47a00b72366928a' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_my_time_at_portia_20210813-1123-141541_(64bit)_(49522)-1.bin' ARCHIVE_BASE_1_PART1_MD5='87fb19e0f0f04a499e81e7a81b49818d' ARCHIVE_BASE_1_PART2_NAME='setup_my_time_at_portia_20210813-1123-141541_(64bit)_(49522)-2.bin' ARCHIVE_BASE_1_PART2_MD5='2ef18dcfdc16f1d7f52c2a49cfd63010' ARCHIVE_BASE_1_SIZE='10038490' ARCHIVE_BASE_1_VERSION='2021.08.13-gog49522' ARCHIVE_BASE_1_URL='https://www.gog.com/game/my_time_at_portia' ARCHIVE_BASE_0_NAME='setup_my_time_at_portia_2.0.141235_(64bit)_(41960).exe' ARCHIVE_BASE_0_MD5='9f21752466f3ce96719cfea66bce05d5' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_my_time_at_portia_2.0.141235_(64bit)_(41960)-1.bin' ARCHIVE_BASE_0_PART1_MD5='881179a255b81a165411ca88fc99dcc7' ARCHIVE_BASE_0_PART2_NAME='setup_my_time_at_portia_2.0.141235_(64bit)_(41960)-2.bin' ARCHIVE_BASE_0_PART2_MD5='b84720aea74b713c8738197872f4add0' ARCHIVE_BASE_0_SIZE='9800000' ARCHIVE_BASE_0_VERSION='2.0.141235-gog41960' UNITY3D_NAME='portia' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_DATA_ASSETBUNDLES_FILES=' portia_data/streamingassets/assetbundles' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Pathea Games/My Time at Portia' PACKAGES_LIST=' PKG_BIN PKG_DATA_ASSETBUNDLES PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_DATA_ASSETBUNDLES' PKG_DATA_ASSETBUNDLES_ID="${PKG_DATA_ID}-asssetbundles" PKG_DATA_DESCRIPTION="$PKG_DATA_DESCRIPTION - asset bundles" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-neurodeck-psychological-deckbuilder.sh0000755000000000000000000000440514471751340021253 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Neurodeck: Psychological Deckbuilder # send your bug reports to bugs@dotslashplay.it ### script_version=20251014.3 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='neurodeck-psychological-deckbuilder' GAME_NAME='Neurodeck: Psychological Deckbuilder' ARCHIVE_BASE_1_NAME='neurodeck_psychological_deckbuilder_1_5_3_49984.sh' ARCHIVE_BASE_1_MD5='609908c4cfa583e4fc6d6b3c1764f91b' 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' UNITY3D_PLUGINS=' libfmodstudio.so libfmodstudioL.so libresonanceaudio.so libStandaloneFileBrowser.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 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' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. ## Some shipped Unity3D plugins require an executable stack. game_exec_line() { cat <<- EOF GLIBC_TUNABLES=glibc.rtld.execstack=2 ./Neurodeck.x86_64 -logFile "./logs/\$(date +%F-%R).log" "\$@" EOF } launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-neverwinter-nights-1-enhanced-edition-localizations.sh0000700000000000000000000001143314471751340024215 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Neverwinter Nights 1 Enhanced Edition localization packs: # - German # - French # - Polish # send your bug reports to bugs@dotslashplay.it ### script_version=20241212.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='neverwinter-nights-1-enhanced-edition' GAME_NAME='Neverwinter Nights: Enhanced Edition' GAME_NAME_DE="$GAME_NAME - German localization" GAME_NAME_FR="$GAME_NAME - French localization" GAME_NAME_PL="$GAME_NAME - Polish localization" ARCHIVE_BASE_DE_6_NAME='neverwinter_nights_enhanced_edition_german_extras_88_8193_36_13_72824.sh' ARCHIVE_BASE_DE_6_MD5='082281faf84fc9be25e1aaf21a99a1ce' ARCHIVE_BASE_DE_6_SIZE='892427' ARCHIVE_BASE_DE_6_VERSION='88.8193.36.13-gog72824' ARCHIVE_BASE_DE_6_URL='https://www.gog.com/game/neverwinter_nights_enhanced_edition_german_extras' ARCHIVE_BASE_FR_6_NAME='neverwinter_nights_enhanced_edition_french_extras_88_8193_36_13_72824.sh' ARCHIVE_BASE_FR_6_MD5='088b8c890ecbf09b86a7c75e07ef43f1' ARCHIVE_BASE_FR_6_SIZE='833009' ARCHIVE_BASE_FR_6_VERSION='88.8193.36.13-gog72824' ARCHIVE_BASE_FR_6_URL='https://www.gog.com/game/neverwinter_nights_enhanced_edition_french_extras' ARCHIVE_BASE_PL_6_NAME='neverwinter_nights_enhanced_edition_polish_extras_88_8193_36_13_72824.sh' ARCHIVE_BASE_PL_6_MD5='89e2dced24b885c04e1c45bc71e9960f' ARCHIVE_BASE_PL_6_SIZE='820818' ARCHIVE_BASE_PL_6_VERSION='88.8193.36.13-gog72824' ARCHIVE_BASE_PL_6_URL='https://www.gog.com/game/neverwinter_nights_enhanced_edition_polish_extras' ARCHIVE_BASE_DE_5_NAME='neverwinter_nights_enhanced_edition_german_extras_87_8193_35_40_65678.sh' ARCHIVE_BASE_DE_5_MD5='596b075b63b8f9f76bbf1eeaa8150cfb' ARCHIVE_BASE_DE_5_SIZE='892816' ARCHIVE_BASE_DE_5_VERSION='87.8193.35.40-gog65678' ARCHIVE_BASE_FR_5_NAME='neverwinter_nights_enhanced_edition_french_extras_87_8193_35_40_65678.sh' ARCHIVE_BASE_FR_5_MD5='88b889d8eefadfde33d0fad8bac1b9be' ARCHIVE_BASE_FR_5_SIZE='833404' ARCHIVE_BASE_FR_5_VERSION='87.8193.35.40-gog65678' ARCHIVE_BASE_PL_5_NAME='neverwinter_nights_enhanced_edition_polish_extras_87_8193_35_40_65678.sh' ARCHIVE_BASE_PL_5_MD5='c78a405c135ffad7e126bd44113ecc86' ARCHIVE_BASE_PL_5_SIZE='833404' ARCHIVE_BASE_PL_5_VERSION='87.8193.35.40-gog65678' ARCHIVE_BASE_DE_4_NAME='neverwinter_nights_enhanced_edition_german_extras_85_8193_33_50393.sh' ARCHIVE_BASE_DE_4_MD5='d20a22fc2dfdeca4bb71bb7fd7e13a82' ARCHIVE_BASE_DE_4_SIZE='900000' ARCHIVE_BASE_DE_4_VERSION='85.8193.33-gog50393' ARCHIVE_BASE_FR_4_NAME='neverwinter_nights_enhanced_edition_french_extras_85_8193_33_50393.sh' ARCHIVE_BASE_FR_4_MD5='f39ecc55b15740322d8ae860ccfecbc5' ARCHIVE_BASE_FR_4_SIZE='840000' ARCHIVE_BASE_FR_4_VERSION='85.8193.33-gog50393' ARCHIVE_BASE_DE_1_NAME='neverwinter_nights_enhanced_edition_german_extras_81_8193_16_41300.sh' ARCHIVE_BASE_DE_1_MD5='1e81fcf9d40bcf23dec0a77069222a52' ARCHIVE_BASE_DE_1_SIZE='892298' ARCHIVE_BASE_DE_1_VERSION='81.8193.16-gog41300' ARCHIVE_BASE_FR_1_NAME='neverwinter_nights_enhanced_edition_french_extras_81_8193_16_41300.sh' ARCHIVE_BASE_FR_1_MD5='1fe0cc196c146834ff186935ae2d3d66' ARCHIVE_BASE_FR_1_SIZE='832881' ARCHIVE_BASE_FR_1_VERSION='81.8193.16-gog41300' ARCHIVE_BASE_PL_1_NAME='neverwinter_nights_enhanced_edition_polish_extras_81_8193_16_41300.sh' ARCHIVE_BASE_PL_1_MD5='8ff3b7d282b9a3822425823e9efd545f' ARCHIVE_BASE_PL_1_SIZE='820690' ARCHIVE_BASE_PL_1_VERSION='81.8193.16-gog41300' ARCHIVE_BASE_FR_0_NAME='neverwinter_nights_enhanced_edition_french_extras_80_8193_9_37029.sh' ARCHIVE_BASE_FR_0_MD5='5e0564a161259b003c7dc0f8d8aa743f' ARCHIVE_BASE_FR_0_SIZE='840000' ARCHIVE_BASE_FR_0_VERSION='80.8193.9-gog37029' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' lang/??/data' PKG_PARENT_ID="$GAME_ID" PKG_MAIN_ID="${GAME_ID}-l10n" PKG_MAIN_ID_DE="${PKG_MAIN_ID}-de" PKG_MAIN_ID_FR="${PKG_MAIN_ID}-fr" PKG_MAIN_ID_PL="${PKG_MAIN_ID}-pl" PKG_MAIN_PROVIDES=" $PKG_MAIN_ID" PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_PARENT' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_default # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-neverwinter-nights-1-enhanced-edition.sh0000700000000000000000000001412614471751340021346 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2021 Christian Stalp # SPDX-FileCopyrightText: © 2023 Jacek Szafarkiewicz set -o errexit ### # Neverwinter Nights: Enhanced Edition # send your bug reports to bugs@dotslashplay.it ### script_version=20241212.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='neverwinter-nights-1-enhanced-edition' GAME_NAME='Neverwinter Nights: Enhanced Edition' ARCHIVE_BASE_EN_6_NAME='neverwinter_nights_enhanced_edition_88_8193_36_13_72824.sh' ARCHIVE_BASE_EN_6_MD5='922f474f2e1573abc66f803c752f2159' ARCHIVE_BASE_EN_6_SIZE='6250881' ARCHIVE_BASE_EN_6_VERSION='88.8193.36.13-gog72824' ARCHIVE_BASE_EN_6_URL='https://www.gog.com/game/neverwinter_nights_enhanced_edition_pack' ARCHIVE_BASE_DE_6_NAME='neverwinter_nights_enhanced_edition_german_88_8193_36_13_72824.sh' ARCHIVE_BASE_DE_6_MD5='2218e12a8d09e1b799f11402c93d1eec' ARCHIVE_BASE_DE_6_SIZE='6250881' ARCHIVE_BASE_DE_6_VERSION='88.8193.36.13-gog72824' ARCHIVE_BASE_DE_6_URL='https://www.gog.com/game/neverwinter_nights_enhanced_edition_pack' ARCHIVE_BASE_FR_6_NAME='neverwinter_nights_enhanced_edition_french_88_8193_36_13_72824.sh' ARCHIVE_BASE_FR_6_MD5='ed1a605cc15b5416d0eda7840dd4f8d9' ARCHIVE_BASE_FR_6_SIZE='6250881' ARCHIVE_BASE_FR_6_VERSION='88.8193.36.13-gog72824' ARCHIVE_BASE_FR_6_URL='https://www.gog.com/game/neverwinter_nights_enhanced_edition_pack' ARCHIVE_BASE_PL_6_NAME='neverwinter_nights_enhanced_edition_polish_88_8193_36_13_72824.sh' ARCHIVE_BASE_PL_6_MD5='351e857d4e6a75d18721a3964a937bfe' ARCHIVE_BASE_PL_6_SIZE='6250881' ARCHIVE_BASE_PL_6_VERSION='88.8193.36.13-gog72824' ARCHIVE_BASE_PL_6_URL='https://www.gog.com/game/neverwinter_nights_enhanced_edition_pack' ARCHIVE_BASE_EN_5_NAME='neverwinter_nights_enhanced_edition_87_8193_35_40_65678.sh' ARCHIVE_BASE_EN_5_MD5='c1191f9e19f1da52f1424025017cf56f' ARCHIVE_BASE_EN_5_SIZE='6253452' ARCHIVE_BASE_EN_5_VERSION='87.8193.35.40-gog65678' ARCHIVE_BASE_FR_5_NAME='neverwinter_nights_enhanced_edition_french_87_8193_35_40_65678.sh' ARCHIVE_BASE_FR_5_MD5='319194e7a229b24b19f7454d8ed860d6' ARCHIVE_BASE_FR_5_SIZE='6253452' ARCHIVE_BASE_FR_5_VERSION='87.8193.35.40-gog65678' ARCHIVE_BASE_PL_5_NAME='neverwinter_nights_enhanced_edition_polish_87_8193_35_40_65678.sh' ARCHIVE_BASE_PL_5_MD5='d4c3d4c4af501424a60bf9e09e5a2f01' ARCHIVE_BASE_PL_5_SIZE='6253452' ARCHIVE_BASE_PL_5_VERSION='87.8193.35.40-gog65678' ARCHIVE_BASE_EN_4_NAME='neverwinter_nights_enhanced_edition_85_8193_33_50393.sh' ARCHIVE_BASE_EN_4_MD5='4e6c4f7bd75791a9c726b7b573cfafe5' ARCHIVE_BASE_EN_4_SIZE='6300000' ARCHIVE_BASE_EN_4_VERSION='85.8193.33-gog50393' ARCHIVE_BASE_FR_4_NAME='neverwinter_nights_enhanced_edition_french_85_8193_33_50393.sh' ARCHIVE_BASE_FR_4_MD5='19b036e3c07fd4aa9a835de05b4aea1f' ARCHIVE_BASE_FR_4_SIZE='6200000' ARCHIVE_BASE_FR_4_VERSION='85.8193.33-gog50393' ARCHIVE_BASE_EN_3_NAME='neverwinter_nights_enhanced_edition_83_8193_23_47201.sh' ARCHIVE_BASE_EN_3_MD5='b85d2ea70aa6dba1096e97e944d98141' ARCHIVE_BASE_EN_3_SIZE='6300000' ARCHIVE_BASE_EN_3_VERSION='83.8193.23-gog47201' ARCHIVE_BASE_EN_2_NAME='neverwinter_nights_enhanced_edition_82_8193_20_1_43497.sh' ARCHIVE_BASE_EN_2_MD5='c80e73f0305ad99355cc089c632b8b0c' ARCHIVE_BASE_EN_2_SIZE='6200000' ARCHIVE_BASE_EN_2_VERSION='82.8193.20.1-gog43497' ARCHIVE_BASE_EN_1_NAME='neverwinter_nights_enhanced_edition_81_8193_16_41300.sh' ARCHIVE_BASE_EN_1_MD5='a52646002ab14c452731b0636fdc8278' ARCHIVE_BASE_EN_1_SIZE='6200000' ARCHIVE_BASE_EN_1_VERSION='81.8193.16-gog41300' ARCHIVE_BASE_FR_1_NAME='neverwinter_nights_enhanced_edition_french_81_8193_16_41300.sh' ARCHIVE_BASE_FR_1_MD5='67f42c1a1604a26fdbcd0cbc800856f5' ARCHIVE_BASE_FR_1_SIZE='6200000' ARCHIVE_BASE_FR_1_VERSION='81.8193.16-gog41300' ARCHIVE_BASE_EN_0_NAME='neverwinter_nights_enhanced_edition_80_8193_9_37029.sh' ARCHIVE_BASE_EN_0_MD5='fb98f859b5f5516fc7df8b00c7264c07' ARCHIVE_BASE_EN_0_VERSION='80.8193.9-gog37029' ARCHIVE_BASE_EN_0_SIZE='5000000' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' bin/linux-x86' CONTENT_GAME_DATA_FILES=' data ovr lang/??/data' CONTENT_DOC_DATA_RELATIVE_PATH='lang' CONTENT_DOC_DATA_FILES=' ??/docs' APP_MAIN_EXE='bin/linux-x86/nwmain-linux' APP_MAIN_ICON='bin/win32/nwmain.exe' APP_SERVER_ID="${GAME_ID}-server" APP_SERVER_NAME="${GAME_NAME} - server" APP_SERVER_EXE='bin/linux-x86/nwserver-linux' APP_SERVER_ICON='bin/win32/nwserver.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libstdc++.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## Force the use of system-provided SDL APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN') # Force the use of the system SDL library export SDL_DYNAMIC_API='$(path_libraries_system)/libSDL2-2.0.so.0' " ## Run the game binary from its parent directory game_exec_line() { cat <<- 'EOF' cd bin/linux-x86 ./nwmain-linux "$@" EOF } launchers_generation 'PKG_BIN' 'APP_MAIN' ## Run the game binary from its parent directory game_exec_line() { cat <<- 'EOF' cd bin/linux-x86 ./nwserver-linux "$@" EOF } launchers_generation 'PKG_BIN' 'APP_SERVER' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-neverwinter-nights-1.sh0000700000000000000000000002702714471751340016156 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # Neverwinter Nights # send your bug reports to bugs@dotslashplay.it ### script_version=20250425.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' 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='--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='--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='--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='--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='--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' CONTENT_GAME_BIN_FILES=' dmclient fixinstall nwmain nwserver nwn.ini' CONTENT_GAME_BIN_PATH='.' CONTENT_GAME_BIN_FILES=' dmclient fixinstall nwmain nwserver nwn.ini miles/mssdsp.flt miles/mssmp3.asi miles/msssoft.m3d' 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_RELATIVE_PATH='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' ## NWMovies expects the game binary to be writable, ## and it should not be reset to its default state between runs. USER_PERSISTENT_FILES="$USER_PERSISTENT_FILES nwmain" 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="$PACKAGES_LIST PKG_NWMOVIES" PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N_BASE PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libGL.so.1 libGLU.so.1 libm.so.6 libpthread.so.0 libSDL-1.2.so.0' PKG_NWMOVIES_ID="${GAME_ID}-nwmovies" PKG_NWMOVIES_DESCRIPTION='NWMovies' PKG_NWMOVIES_ARCH='32' PKG_NWMOVIES_DEPENDENCIES_SIBLINGS=' PKG_BIN' PKG_NWMOVIES_DEPENDENCIES_COMMANDS=' mpv' PKG_L10N_BASE_ID="${GAME_ID}-l10n" PKG_L10N_ID_DE="${PKG_L10N_BASE_ID}-de" PKG_L10N_ID_ES="${PKG_L10N_BASE_ID}-es" PKG_L10N_ID_EN="${PKG_L10N_BASE_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_BASE_ID}-fr" PKG_L10N_ID_PL="${PKG_L10N_BASE_ID}-pl" PKG_L10N_PROVIDES=" $PKG_L10N_BASE_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' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Check for the presence of extra 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. if archive_is_available 'ARCHIVE_NWMOVIES'; then case "$(messages_language)" 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' if archive_is_available 'ARCHIVE_NWMOVIES'; 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 if archive_is_available 'ARCHIVE_NWMOVIES'; then ( cd "${PLAYIT_WORKDIR}/gamedata/nwmovies" case "$(messages_language)" 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 --no-pause /' 'nwplaymovie' chmod 755 'nwmovies_install.pl' export CFLAGS='-w' ./nwmovies_install.pl build >/dev/null 2>&1 ) fi # Include game data content_inclusion_icons 'PKG_DATA' if archive_is_available 'ARCHIVE_NWMOVIES'; 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/libdis" \ "${PLAYIT_WORKDIR}/gamedata/nwmovies/nwmovies.so" \ "${PLAYIT_WORKDIR}/gamedata/nwmovies/nwmovies.README.txt" \ "${PLAYIT_WORKDIR}/gamedata/nwmovies/nwplaymovie" ## 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 ' ## Do not copy the game binary into the game prefix, ## as changing it timestamp would cause the initial NWMovies setup to reset. native_launcher_binary_copy() { return 0; } launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-oceans-heart.sh0000755000000000000000000000362714471751340014541 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Ocean's Heart # send your bug reports to bugs@dotslashplay.it ### script_version=20240707.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='oceans-heart' GAME_NAME='Ocean’s Heart' ARCHIVE_BASE_0_NAME='setup_oceans_heart_1.0.2(6)_(64bit)_(46977).exe' ARCHIVE_BASE_0_MD5='38550d8340ea0a7ad61b41aeabd13c3d' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='250000' ARCHIVE_BASE_0_VERSION='1.0.2.6-gog46977' ARCHIVE_BASE_0_URL='https://www.gog.com/game/oceans_heart' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' oceans-heart.exe *.dll' CONTENT_GAME_DATA_FILES=' data.solarus' CONTENT_DOC_DATA_FILES=' license.solarus.txt license.txt' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/OceansHeart' APP_MAIN_EXE='oceans-heart.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-paper-sorcerer.sh0000755000000000000000000000457214471751340015121 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Paper Sorcerer # send your bug reports to bugs@dotslashplay.it ### script_version=20250802.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='paper-sorcerer' GAME_NAME='Paper Sorcerer' ARCHIVE_BASE_0_NAME='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' UNITY3D_NAME='PaperSorcererLinux' CONTENT_PATH_DEFAULT='PaperSorcerer2.5Linux' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 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_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## Do not disable the MAP_32BIT flag, ## as it would lead to a crash on launch. unity3d_disable_map32bit() { return 0; } launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-pier-solar.sh0000755000000000000000000000557314471751340014247 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2015 mortalius # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2020 HS-157 set -o errexit ### # Pier Solar and the Great Architects # send your bug reports to bugs@dotslashplay.it ### script_version=20250421.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' 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_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" ## TODO: 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" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-pokemon-insurgence.sh0000755000000000000000000000404314471751340015771 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Pokemon Insurgence # send your bug reports to bugs@dotslashplay.it ### script_version=20240516.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='pokemon-insurgence' GAME_NAME='Pokemon Insurgence' ARCHIVE_BASE_0_NAME='Pokemon Insurgence 1.2.5 Core.zip' ARCHIVE_BASE_0_MD5='d992c31fe67ffc0a72c4274caaa4a977' ARCHIVE_BASE_0_SIZE='840000' ARCHIVE_BASE_0_VERSION='1.2.5-insurgence1' ARCHIVE_BASE_0_URL='https://p-insurgence.com/' CONTENT_PATH_DEFAULT='Pokemon Insurgence 1.2.5 Core' CONTENT_GAME_BIN_FILES=' Game.exe Game.ini *.dll' CONTENT_GAME_DATA_FILES=' Audio Data Egglocke Eggs Fonts Graphics Game.rgssad' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Saved Games/Pokemon Insurgence' ## Ensure availability of fonts expected by the game engine. WINE_WINETRICKS_VERBS='arial' APP_MAIN_EXE='Game.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' audio/mpeg, mpegversion=(int)1, layer=(int)3' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-rebel-galaxy.sh0000700000000000000000000000560314471751340014526 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Rebel Galaxy # send your bug reports to bugs@dotslashplay.it ### script_version=20250425.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='rebel-galaxy' GAME_NAME='Rebel Galaxy' ARCHIVE_BASE_0_NAME='setup_rebel_galaxy_1.08(hotifx2)_(23097).exe' ARCHIVE_BASE_0_MD5='9746494be23b83bc2a44d8da6cb6e311' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_rebel_galaxy_1.08(hotifx2)_(23097)-1.bin' ARCHIVE_BASE_0_PART1_MD5='e8e5d4450b5ad8f9cc757cc4153ba13c' ARCHIVE_BASE_0_SIZE='2500000' ARCHIVE_BASE_0_VERSION='1.08-gog23097' ARCHIVE_BASE_0_URL='https://www.gog.com/game/rebel_galaxy' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' *.cfg *.dll *.exe' CONTENT_GAME_DATA_FILES=' media music paks video' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/My Games/Double Damage Games/RebelGalaxy' ## Microsoft Visual C++ 2012 Runtime is required by the settings window. WINE_WINETRICKS_VERBS='vcrun2012' APP_MAIN_EXE='rebelgalaxygog.exe' ## Disable Direct3D 11 on first launch to prevent a game crash ## TODO: Check if this is sitll required with current WINE builds APP_MAIN_PRERUN=' # Disable Direct3D 11 on first launch to prevent a game crash settings_file="${WINEPREFIX}/drive_c/users/${USER}/Documents/My Games/Double Damage Games/RebelGalaxy/local_settings.txt" if [ ! -e "$settings_file" ]; then mkdir --parents "$(dirname "$settings_file")" cat > "$settings_file" << EOF [SETTINGS] OPENGL:1 DX11:0 [/SETTINGS] EOF fi ' APP_SETTINGS_ID="${GAME_ID}-settings" APP_SETTINGS_NAME="${GAME_NAME} - Settings" APP_SETTINGS_CAT='Settings' APP_SETTINGS_EXE='goglauncher.exe' ## Disable Direct3D 11 on first launch to prevent a game crash APP_SETTINGS_PRERUN="$APP_MAIN_PRERUN" PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-slay-the-spire.sh0000700000000000000000000000567114471751340015025 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Slay the Spire # send your bug reports to bugs@dotslashplay.it ### script_version=20250508.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='slay-the-spire' GAME_NAME='Slay the Spire' ARCHIVE_BASE_0_NAME='slay_the_spire_2020_12_15_8735c9fe3cc2280b76aa3ec47c953352a7df1f65_43444.sh' ARCHIVE_BASE_0_MD5='1989ebecb2434f0480b42c4e576dfc78' ARCHIVE_BASE_0_SIZE='570000' ARCHIVE_BASE_0_VERSION='2.2-gog43444' ARCHIVE_BASE_0_URL='https://www.gog.com/game/slay_the_spire' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' desktop-1.0.jar mod-uploader.jar mts-launcher.jar' CONTENT_DOC_MAIN_FILES=' README.md' USER_PERSISTENT_DIRECTORIES=' betaPreferences runs saves' USER_PERSISTENT_FILES=' info.displayconfig' APP_MAIN_TYPE='java' APP_MAIN_EXE='desktop-1.0.jar' APP_MAIN_ICON='../support/icon.png' ## Ensure smooth upgrades from packages generated with pre-20231107.1 game scripts. PKG_MAIN_PROVIDES="${PKG_MAIN_PROVIDES:-} slay-the-spire-bin slay-the-spire-data" PKG_MAIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1' ## Prevent a crash on launch due to a failure to get the display dimensions. ## ## Exception in thread "LWJGL Application" java.lang.ExceptionInInitializerError ## at com.badlogic.gdx.backends.lwjgl.LwjglGraphics.setVSync(LwjglGraphics.java:558) ## at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:124) ## Caused by: java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0 ## at org.lwjgl.opengl.LinuxDisplay.getAvailableDisplayModes(LinuxDisplay.java:954) ## at org.lwjgl.opengl.LinuxDisplay.init(LinuxDisplay.java:738) ## at org.lwjgl.opengl.Display.(Display.java:138) ## ... 2 more PKG_MAIN_DEPENDENCIES_COMMANDS="${PKG_MAIN_DEPENDENCIES_COMMANDS:-}"' xrandr' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-sovereign-syndicate.sh0000700000000000000000000000464614471751340016142 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Sovereign Syndicate # send your bug reports to bugs@dotslashplay.it ### script_version=20241124.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='sovereign-syndicate' GAME_NAME='Sovereign Syndicate' ARCHIVE_BASE_0_NAME='setup_sovereign_syndicate_1.0.36_(64bit)_(72092).exe' ARCHIVE_BASE_0_MD5='266029b31e13dc11b808cd87b4b31eb9' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_sovereign_syndicate_1.0.36_(64bit)_(72092)-1.bin' ARCHIVE_BASE_0_PART1_MD5='8872971818c95eee27f80f7684209c1c' ARCHIVE_BASE_0_PART2_NAME='setup_sovereign_syndicate_1.0.36_(64bit)_(72092)-2.bin' ARCHIVE_BASE_0_PART2_MD5='3de81fad53bfddf5c3eaa6c6598af2b7' ARCHIVE_BASE_0_SIZE='11071403' ARCHIVE_BASE_0_VERSION='1.0.36-gog72092' ARCHIVE_BASE_0_URL='https://www.gog.com/game/sovereign_syndicate' UNITY3D_NAME='sovereign syndicate' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_DATA_SHAREDASSETS_FILES=" ${UNITY3D_NAME}_data/sharedassets*" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Crimson Herring Studios/Sovereign Syndicate' PACKAGES_LIST=' PKG_BIN PKG_DATA_SHAREDASSETS PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_DATA_SHAREDASSETS' PKG_DATA_SHAREDASSETS_ID="${PKG_DATA_ID}-sharedassets" PKG_DATA_SHAREDASSETS_DESCRIPTION="$PKG_DATA_DESCRIPTION - shared assets" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-starship-traveller.sh0000755000000000000000000000456414471751340016024 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Starship Traveller # send your bug reports to bugs@dotslashplay.it ### script_version=20250802.3 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='starship-traveller' GAME_NAME='Starship Traveller' ARCHIVE_BASE_0_NAME='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' UNITY3D_NAME='Starship Traveller' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='STARSHIP_LINUX_115274' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-steamworld-quest.sh0000755000000000000000000000515414471751340015505 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2017 Mopi set -o errexit ### # SteamWorld Quest # send your bug reports to bugs@dotslashplay.it ### script_version=20251124.2 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='steamworld-quest' GAME_NAME='SteamWorld Quest: Hand of Gilgamech' ARCHIVE_BASE_0_NAME='steamworld_quest_hand_of_gilgamech_2_1_31741.sh' ARCHIVE_BASE_0_MD5='cffa9b745ef4ca37123b5928c37effe0' ARCHIVE_BASE_0_SIZE='1200000' ARCHIVE_BASE_0_VERSION='2.1-gog31741' ARCHIVE_BASE_0_URL='https://www.gog.com/game/steamworld_quest_hand_of_gilgamech' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' Quest' ## TODO: Check that all these paths are provided for the current game. CONTENT_GAME_DATA_FILES=' icon.bmp icon.png Bundle BundlePC' CONTENT_DOC_DATA_FILES=' Licenses readme.txt' APP_MAIN_EXE='Quest' APP_MAIN_ICON='icon.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 libstdc++.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. ## Force the use of system-provided SDL. APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN') $(launcher_tweak_sdl_override)" PKG_BIN_DEPENDENCIES_LIBRARIES="$(dependencies_list_native_libraries 'PKG_BIN') ibSDL2-2.0.so.0" ## Prevent a game crash when using the Wayland video backend of SDL. APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN')"' # Prevent a game crash when using the Wayland video backend of SDL. if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-stories-the-path-of-destinies.sh0000755000000000000000000000523114471751340017750 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Stories: The Path of Destinies # send your bug reports to bugs@dotslashplay.it ### script_version=20251024.3 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='stories-the-path-of-destinies' GAME_NAME='Stories: The Path of Destinies' ARCHIVE_BASE_1_NAME='setup_stories_the_path_of_destinies_update_4_(25956).exe' ARCHIVE_BASE_1_MD5='61f632db33297ca2b178d4383545732c' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_VERSION='1.0-gog25956' ARCHIVE_BASE_1_SIZE='2000000' ARCHIVE_BASE_1_URL='https://www.gog.com/game/stories_the_path_of_destinies' ARCHIVE_BASE_0_NAME='setup_stories_-_the_path_of_destinies_0.0.13825_(16929).exe' ARCHIVE_BASE_0_MD5='6f81dbadddbb4b30b4edda9ced9ddef8' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='0.0.13825-gog16929' ARCHIVE_BASE_0_SIZE='1700000' UNREALENGINE4_NAME='stories' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' ## Language selection can be done using the -culture option, for example: ## stories-the-path-of-destinies -culture=fr ## stories-the-path-of-destinies -culture=en ## If this option is not passed explicitly, the current locale is used. APP_MAIN_EXE="${UNREALENGINE4_NAME}/binaries/win64/${UNREALENGINE4_NAME}.exe" ## The --name=101 wrestool option, default for UE4 games, should not be used here APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. ## Do not install Visual C++ Runtime, as it prevents the game from starting. unrealengine4_wine_winetricks_verbs_default() { return 0; } launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-sunless-skies-expansions.sh0000700000000000000000000000425514471751340017151 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # Sunless Skies expansions: # - Cyclopean Owl # send your bug reports to bugs@dotslashplay.it ### script_version=20241126.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='sunless-skies' GAME_NAME='Sunless Skies' EXPANSION_ID_OWL='cyclopean-owl' EXPANSION_NAME_OWL='Cyclopean Owl' ## Cyclopean Owl ARCHIVE_BASE_OWL_3_NAME='sunless_skies_cyclopean_owl_2_0_5_6e8c8ff_74416.sh' ARCHIVE_BASE_OWL_3_MD5='163712d560736a51eb51fda83cee7336' ARCHIVE_BASE_OWL_3_SIZE='899' ARCHIVE_BASE_OWL_3_VERSION='2.0.5-gog74416' ARCHIVE_BASE_OWL_2_NAME='sunless_skies_cyclopean_owl_2_0_4_fcf0af7a_52215.sh' ARCHIVE_BASE_OWL_2_MD5='c3749871147607f488f58881b30b9600' ARCHIVE_BASE_OWL_2_SIZE='1300' ARCHIVE_BASE_OWL_2_VERSION='2.0.4-gog52215' ARCHIVE_BASE_OWL_0_NAME='sunless_skies_cyclopean_owl_2_0_2_9bcd3d8c_48199.sh' ARCHIVE_BASE_OWL_0_MD5='9d0dee370093bce46c35dc114c0d6241' ARCHIVE_BASE_OWL_0_SIZE='1300' ARCHIVE_BASE_OWL_0_VERSION='2.0.2-gog48199' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' dlc' PKG_PARENT_ID="$GAME_ID" PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_PARENT' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Work around directory name case mismatch. if [ -e 'DLC' ]; then mv 'DLC' 'dlc' fi ) # Include game data content_inclusion_default # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-sunless-skies.sh0000700000000000000000000000473214471751340014764 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # Sunless Skies # send your bug reports to bugs@dotslashplay.it ### script_version=20241126.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='sunless-skies' GAME_NAME='Sunless Skies' ARCHIVE_BASE_2_NAME='sunless_skies_sovereign_edition_2_0_5_6e8c8ff_74416.sh' ARCHIVE_BASE_2_MD5='3405edfa656734537b13b253748fc556' ARCHIVE_BASE_2_SIZE='3276986' ARCHIVE_BASE_2_VERSION='2.0.5-gog74416' ARCHIVE_BASE_2_URL='https://www.gog.com/game/sunless_skies' ARCHIVE_BASE_1_NAME='sunless_skies_sovereign_edition_2_0_4_fcf0af7a_52215.sh' ARCHIVE_BASE_1_MD5='0d92a8c235d610e6ec560c25179c529a' ARCHIVE_BASE_1_SIZE='3300000' ARCHIVE_BASE_1_VERSION='2.0.4-gog52215' ARCHIVE_BASE_0_NAME='sunless_skies_sovereign_edition_2_0_2_9bcd3d8c_48199.sh' ARCHIVE_BASE_0_MD5='f99de4c6a893be6f7fcb8170c94478f4' ARCHIVE_BASE_0_SIZE='3300000' ARCHIVE_BASE_0_VERSION='2.0.2-gog48199' UNITY3D_NAME='Sunless Skies' CONTENT_PATH_DEFAULT='data/noarch/game' ## Without write access to the "dlc" directory, the game fails to load properly. USER_PERSISTENT_DIRECTORIES=' dlc' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Drop empty "Plugins" directory. rmdir "$(unity3d_name)_Data/Plugins" ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-system-shock-2.sh0000755000000000000000000001055714471751340014760 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # System Shock 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20250804.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='system-shock-2' GAME_NAME='System Shock 2' ARCHIVE_BASE_6_NAME='setup_system_shocktm_2_2.48_(31076).exe' ARCHIVE_BASE_6_MD5='15d8702a3a6de94e5c04a0006299b9e0' ARCHIVE_BASE_6_TYPE='innosetup' ARCHIVE_BASE_6_SIZE='650274' ARCHIVE_BASE_6_VERSION='2.48-gog31076' ARCHIVE_BASE_6_URL='https://www.gog.com/game/system_shock_2' ARCHIVE_BASE_5_NAME='setup_system_shocktm_2_2.48_(31077).exe' ARCHIVE_BASE_5_MD5='b8bbec00aef894db6641e46a0446cbb2' ARCHIVE_BASE_5_TYPE='innosetup' ARCHIVE_BASE_5_SIZE='660000' ARCHIVE_BASE_5_VERSION='2.48-gog31077' ARCHIVE_BASE_4_NAME='setup_system_shock_2_2.47_nd_(22087).exe' ARCHIVE_BASE_4_MD5='cc2ff390b566364447dc5bd05757fe57' ARCHIVE_BASE_4_TYPE='innosetup' ARCHIVE_BASE_4_SIZE='670000' ARCHIVE_BASE_4_VERSION='2.47-gog22087' ARCHIVE_BASE_3_NAME='setup_system_shock_2_2.46_update_3_(19935).exe' ARCHIVE_BASE_3_MD5='cdafcdea01556eccab899f94503843df' ARCHIVE_BASE_3_TYPE='innosetup' ARCHIVE_BASE_3_SIZE='670000' ARCHIVE_BASE_3_VERSION='2.46.3-gog19935' ARCHIVE_BASE_2_NAME='setup_system_shock_2_2.46_update_2_(18733).exe' ARCHIVE_BASE_2_MD5='39fab64451ace95966988bb90c7bb17e' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_SIZE='680000' ARCHIVE_BASE_2_VERSION='2.46.2-gog18733' ARCHIVE_BASE_1_NAME='setup_system_shock_2_2.46_update_(18248).exe' ARCHIVE_BASE_1_MD5='b76803e4a632b58527eada8993999143' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='690000' ARCHIVE_BASE_1_VERSION='2.46.1-gog18248' ARCHIVE_BASE_0_NAME='setup_system_shock_2_2.46_nd_(11004).exe' ARCHIVE_BASE_0_MD5='98c3d01d53bb2b0dc25d7ed7093a67d3' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='680000' ARCHIVE_BASE_0_VERSION='2.46-gog11004' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_2='app' CONTENT_PATH_DEFAULT_1='app' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_BIN_FILES=' binds microsoft.vc90.crt misdml osm lgvid.ax user.bnd shock.bnd cam.cfg cam_ext.cfg install.cfg shock.cfg 7z.dll d3dx9_43.dll ffmpeg.dll fmsel.dll ir41_32.dll ir50_32.dll lgvid.dll msvcrt40.dll ss2.exe cam_mod.ini lg.ini data/allobjs.osm' CONTENT_GAME0_BIN_RELATIVE_PATH='__support/app' CONTENT_GAME0_BIN_FILES=' *.cfg *.ini' ## Older builds used a different binary name. CONTENT_GAME1_BIN_FILES_OLD=' shock2.exe' CONTENT_GAME1_BIN_FILES_3="$CONTENT_GAME1_BIN_FILES_OLD" CONTENT_GAME1_BIN_FILES_2="$CONTENT_GAME1_BIN_FILES_OLD" CONTENT_GAME1_BIN_FILES_1="$CONTENT_GAME1_BIN_FILES_OLD" CONTENT_GAME1_BIN_FILES_0="$CONTENT_GAME1_BIN_FILES_OLD" CONTENT_GAME_DATA_FILES=' data patch sq_scripts patch_ext.crf' CONTENT_DOC_DATA_FILES=' doc release_notes.txt ss2 community fixes.txt troubleshooting.txt manual.pdf readme.wri readmep.wri' USER_PERSISTENT_DIRECTORIES=' current save_0 save_1 save_2 save_3 save_4 save_5 save_6 save_7 save_8 save_9 save_10 save_11 save_12 save_13 save_14' USER_PERSISTENT_FILES=' *.log *.bnd *.cfg *.ini' ## TODO: Check if this virtual desktop is still required. WINE_VIRTUAL_DESKTOP='auto' APP_MAIN_EXE='ss2.exe' APP_MAIN_EXE_3='shock2.exe' APP_MAIN_EXE_2='shock2.exe' APP_MAIN_EXE_1='shock2.exe' APP_MAIN_EXE_0='shock2.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/x-msvideo' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-tangledeep.sh0000755000000000000000000000667614471751340014307 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Tangledeep # send your bug reports to bugs@dotslashplay.it ### script_version=20241218.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='tangledeep' GAME_NAME='Tangledeep' ARCHIVE_BASE_0_NAME='Tangledeep_153a_LinuxUniversal.zip' ARCHIVE_BASE_0_MD5='b278678eeb55e55a73df389213afdeeb' ARCHIVE_BASE_0_SIZE='1194135' ARCHIVE_BASE_0_VERSION='1.53a-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/tangledeep' ARCHIVE_BASE_MULTIARCH_1_NAME='Tangledeep_124k_LinuxUniversal.zip' ARCHIVE_BASE_MULTIARCH_1_MD5='b708a12e20816dba8e863290dc5580d0' ARCHIVE_BASE_MULTIARCH_1_SIZE='730000' ARCHIVE_BASE_MULTIARCH_1_VERSION='1.24k-humble190410' ARCHIVE_BASE_MULTIARCH_0_NAME='tangledeep_linux.zip' ARCHIVE_BASE_MULTIARCH_0_MD5='ce38aaab0bf4838697fd1f76e30722f1' ARCHIVE_BASE_MULTIARCH_0_SIZE='690000' ARCHIVE_BASE_MULTIARCH_0_VERSION='1.23e-humble1' UNITY3D_NAME='Tangledeep' UNITY3D_PLUGINS_MULTIARCH=' ScreenSelector.so' CONTENT_PATH_DEFAULT='linuxuniversal' CONTENT_PATH_DEFAULT_MULTIARCH_0='tangledeep_123e_linux' PACKAGES_LIST=' PKG_BIN PKG_DATA' PACKAGES_LIST_MULTIARCH=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' PKG_BIN_DEPENDENCIES_LIBRARIES_MULTIARCH=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES_MULTIARCH="$PKG_BIN_DEPENDENCIES_LIBRARIES_MULTIARCH" PKG_BIN32_DEPENDENCIES_LIBRARIES_MULTIARCH="$PKG_BIN_DEPENDENCIES_LIBRARIES_MULTIARCH" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Prevent the inclusion of Steam libraries case "$(current_archive)" in ('ARCHIVE_BASE_MULTIARCH_'*) # These archives already have an explicit list of plugins to include. ;; (*) rm --recursive "$(unity3d_name)_Data/Plugins" ;; esac ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers case "$(current_archive)" in ('ARCHIVE_BASE_MULTIARCH_'*) launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' ;; (*) launchers_generation 'PKG_BIN' ;; esac # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-the-bards-tale-4.sh0000700000000000000000000001365614471751340015116 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # The Bard's Tale 4 # send your bug reports to bugs@dotslashplay.it ### script_version=20250505.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' 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' ## Optional icons pack ARCHIVE_OPTIONAL_ICONS_NAME='the-bards-tale-4_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_URL='https://downloads.dotslashplay.it/games/the-bards-tale-4/' ARCHIVE_OPTIONAL_ICONS_MD5='aede8ef2c559ecf8e69e1f5ffef7432d' CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 16x16 32x32 64x64 128x128 256x256' 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" APP_MAIN_ICON='../support/icon.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_MOVIES_1 PKG_DATA_MOVIES_2 PKG_DATA_PAKS_1 PKG_DATA_PAKS_2 PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_DATA_MOVIES_1 PKG_DATA_MOVIES_2 PKG_DATA_PAKS_1 PKG_DATA_PAKS_2' 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_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" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Drop debug symbols. rm \ 'BardsTale4/Binaries/Linux/BardsTale4-Linux-Shipping.debug' \ 'BardsTale4/Binaries/Linux/BardsTale4-Linux-Shipping.sym' ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages ## 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 packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-the-count-lucanor.sh0000755000000000000000000000665714471751340015545 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2020 Hoël Bézier set -o errexit ### # The Count Lucanor # send your bug reports to bugs@dotslashplay.it ### script_version=20251013.3 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='the-count-lucanor' GAME_NAME='The Count Lucanor' ARCHIVE_BASE_1_NAME='the_count_lucanor_1_4_23_36418.sh' ARCHIVE_BASE_1_MD5='59bdd0ee4d7525be7b5ba346ffefa5b9' ARCHIVE_BASE_1_SIZE='760000' ARCHIVE_BASE_1_VERSION='1.4.23-gog36418' ARCHIVE_BASE_1_URL='https://www.gog.com/game/the_count_lucanor' ARCHIVE_BASE_0_NAME='the_count_lucanor_1_1_4_7_23841.sh' ARCHIVE_BASE_0_MD5='5a224a28d6e1a3b894e712db056fab07' ARCHIVE_BASE_0_SIZE='720000' ARCHIVE_BASE_0_VERSION='1.1.4.7-gog23841' CONTENT_GAME_MAIN_DEPENDENCIES_LIBRARIES=' libopenal.so.1 libSDL-1.2.so.0' CONTENT_GAME_MAIN_ARCH='64' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_MAIN_RELATIVE_PATH='lib' CONTENT_LIBS_MAIN_FILES=' libgluegen-rt.so libjinput-linux64.so libjoal.so libjogl_desktop.so libjogl_mobile.so libnativewindow_awt.so libnativewindow_x11.so libnewt.so' CONTENT_GAME_MAIN_FILES=' res lucanor.ico lib/*.jar' USER_PERSISTENT_DIRECTORIES=' logs res/db res/level res/settings' APP_MAIN_TYPE='java' APP_MAIN_JAVA_OPTIONS='-Dfile.encoding=UTF-8 -Xmx1024m -Xms512m' APP_MAIN_EXE='lib/build-desktop.jar' APP_MAIN_ICON='lucanor.ico' ## Prevent an OpenGL-related crash on launch: ## ## com.jogamp.opengl.GLException: Profile GL2 is not available on null, but: [GLProfile[GLES1/GLES1.hw], GLProfile[GLES2/GLES3.hw], GLProfile[GL2ES1/GLES1.hw], GLProfile[GL4ES3/GL4.hw], GLProfile[GL2ES2/GL4.hw], GLProfile[GL4/GL4.hw], GLProfile[GLES3/GLES3.hw], GLProfile[GL4/GL4.hw], GLProfile[GL3/GL4.hw], GLProfile[GL2GL3/GL4.hw]] ## at com.jogamp.opengl.GLProfile.get(GLProfile.java:991) ## at com.jogamp.opengl.GLProfile.get(GLProfile.java:1004) ## at eu.curvedcat.game.Main.launch(Main.java:669) ## at eu.curvedcat.game.Main.main(Main.java:611) APP_MAIN_PRERUN=' # Prevent an OpenGL-related crash on launch export MESA_GL_VERSION_OVERRIDE=2.1' # Load common functions. if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/play.it" \ '/usr/local/share/games/play.it' \ '/usr/local/share/play.it' \ '/usr/share/games/play.it' \ '/usr/share/play.it' do if [ -e "${path}/libplayit2.sh" ]; then PLAYIT_LIB2="${path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" pkg_setup() { PKG_MAIN_DEPENDENCIES_LIBRARIES="$CONTENT_GAME_MAIN_DEPENDENCIES_LIBRARIES" PKG_MAIN_ARCH="$CONTENT_GAME_MAIN_ARCH" } src_extract() { archive_extraction_default } src_prepare() { : } pkg_prepare() { content_inclusion_default } src_clean() { : } pkg_icons() { content_inclusion_icons } pkg_launchers() { launchers_generation } pkg_build() { packages_generation } pkg_clean() { working_directory_cleanup } pkg_instructions() { print_instructions } # Run default initialisation actions. initialization_default "$@" pkg_setup src_extract src_prepare pkg_icons ## pkg_icons must be called before pkg_prepare pkg_prepare src_clean pkg_launchers pkg_build pkg_instructions pkg_clean ## pkg_clean must be called after pkg_instructions exit 0 games/play-the-elder-scrolls-1-arena.sh0000700000000000000000000000553214471751340016725 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # The Elder Scrolls: Arena # send your bug reports to bugs@dotslashplay.it ### script_version=20240505.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='the-elder-scrolls-1-arena' GAME_NAME='The Elder Scrolls: Arena' ARCHIVE_BASE_1_NAME='setup_the_elder_scrolls_arena_1.07_(28043).exe' ARCHIVE_BASE_1_MD5='53a12a1cc3955776f06fba5906cdc6fe' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='120000' ARCHIVE_BASE_1_VERSION='1.07-gog28043' ARCHIVE_BASE_1_URL='https://www.gog.com/game/the_elder_scrolls_iii_morrowind_goty_edition' ARCHIVE_BASE_0_NAME='setup_tes_arena_2.0.0.5.exe' ARCHIVE_BASE_0_MD5='ca5a894aa852f9dbb3ede787e51ec828' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='130000' ARCHIVE_BASE_0_VERSION='1.07-gog2.0.0.5' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_MAIN_FILES=' *.cfg *.exe *.inf *.ini *.65 *.ad *.adv *.bak *.bnk *.bsa *.cel *.cif *.clr *.col *.cpy *.dat *.flc *.gld *.img *.lgt *.lst *.me *.mif *.mnu *.ntz *.opl *.rci *.txt *.voc *.xfm cityintr citytxt extra speech' CONTENT_GAME0_MAIN_PATH='__support' CONTENT_GAME0_MAIN_PATH_0='app/__support' CONTENT_GAME0_MAIN_FILES=' save' CONTENT_DOC_MAIN_FILES=' *.pdf readme.txt' GAME_IMAGE='.' GAME_IMAGE_TYPE='cdrom' USER_PERSISTENT_DIRECTORIES=' save arena_cd' APP_MAIN_EXE='acd.exe' APP_MAIN_OPTIONS='-Ssbpdig.adv -IOS220 -IRQS7 -DMAS1 -Mgenmidi.adv -IOM330 -IRQM2 -DMAM1' APP_MAIN_ICON='app/goggame-1435828982.ico' APP_MAIN_DOSBOX_PRERUN='config -set cpu cycles=fixed 20000 d:' ## The type can not be omitted, because the binary is actually on the CD-ROM image. APP_MAIN_TYPE='dosbox' # Easier upgrade from packages generated with pre-20190302.3 scripts PKG_MAIN_PROVIDES="${PKG_MAIN_PROVIDES:-} the-elder-scrolls-1-arena-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers ## Work around the binary presence check, ## it is actually included in the CD-ROM image. launcher_target_presence_check() { return 0; } launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-elder-scrolls-2-daggerfall.sh0000700000000000000000000000465214471751340017732 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # The Elder Scrolls 2: Daggerfall # send your bug reports to bugs@dotslashplay.it ### script_version=20240604.2 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='the-elder-scrolls-2-daggerfall' GAME_NAME='The Elder Scrolls II: Daggerfall' ARCHIVE_BASE_1_NAME='setup_the_elder_scrolls_ii_daggerfall_1.07_(28043).exe' ARCHIVE_BASE_1_MD5='94acfb7acfe2242241d4355ada481d98' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='560000' ARCHIVE_BASE_1_VERSION='1.07.213-gog28043' ARCHIVE_BASE_1_URL='https://www.gog.com/game/the_elder_scrolls_iii_morrowind_goty_edition' ARCHIVE_BASE_0='setup_tes_daggerfall_2.0.0.4.exe' ARCHIVE_BASE_0_MD5='68f1eb4f257d8da4c4eab2104770c49b' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='580000' ARCHIVE_BASE_0_VERSION='1.07.213-gog2.0.0.4' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_MAIN_FILES=' arena2 data dagger.ico dagger.exe fall.exe fixsave.exe setup.exe fixsave.txt patched.txt test.* *.386 *.bnk *.cfg *.ini *.scr' CONTENT_DOC_MAIN_FILES=' *.pdf' USER_PERSISTENT_DIRECTORIES=' pics save0 save1 save2 save3 save4 save5' USER_PERSISTENT_FILES=' *.cfg arena2/bio.dat arena2/copyfile.dat arena2/rumor.dat arena2/mapsave.sav arena2/*.DAT arena2/*.AMF' APP_MAIN_EXE='fall.exe' APP_MAIN_OPTIONS='z.cfg' APP_MAIN_ICON='dagger.ico' ## Easier upgrade from packages generated with pre-20190302.3 scripts. PKG_MAIN_PROVIDES="${PKG_MAIN_PROVIDES:-} the-elder-scrolls-2-daggerfall-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-elder-scrolls-5-expansions.sh0000700000000000000000000000541014471751340020025 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2024 Fabien Givors set -o errexit ### # The Elder Scrolls 5 expansions: # - Anniversary Upgrade # send your bug reports to bugs@dotslashplay.it ### script_version=20240310.1 GAME_ID='the-elder-scrolls-5-skyrim' GAME_NAME='The Elder Scrolls V: Skyrim' EXPANSION_ID_UPGRADE='anniversary-upgrade' EXPANSION_NAME_UPGRADE='Anniversary Upgrade' # Archives ## Anniversary Upgrade ARCHIVE_BASE_UPGRADE_0='setup_the_elder_scrolls_v_skyrim_anniversary_upgrade_1.6.659.0.8_(64bit)_(59094).exe' ARCHIVE_BASE_UPGRADE_0_MD5='6ca1eaf78efe871db75aa2e870bf6154' ARCHIVE_BASE_UPGRADE_0_TYPE='innosetup' ARCHIVE_BASE_UPGRADE_0_PART1='setup_the_elder_scrolls_v_skyrim_anniversary_upgrade_1.6.659.0.8_(64bit)_(59094)-1.bin' ARCHIVE_BASE_UPGRADE_0_PART1_MD5='44910bb282008aebb5c92cd97af12413' ARCHIVE_BASE_UPGRADE_0_SIZE='4700000' ARCHIVE_BASE_UPGRADE_0_VERSION='1.6.659.0.8-gog59094' ARCHIVE_BASE_UPGRADE_0_URL='https://www.gog.com/en/game/the_elder_scrolls_v_skyrim_anniversary_upgrade' ARCHIVE_BASE_UPGRADE_1='setup_the_elder_scrolls_v_skyrim_anniversary_upgrade_0.1.3905696_(64bit)_(70738).exe' ARCHIVE_BASE_UPGRADE_1_MD5='411afce1d728f456ef0989dc866feca2' ARCHIVE_BASE_UPGRADE_1_TYPE='innosetup' ARCHIVE_BASE_UPGRADE_1_PART1='setup_the_elder_scrolls_v_skyrim_anniversary_upgrade_0.1.3905696_(64bit)_(70738)-1.bin' ARCHIVE_BASE_UPGRADE_1_PART1_MD5='97d7706343def94098e725f876cb1a64' ARCHIVE_BASE_UPGRADE_1_SIZE='4700000' ARCHIVE_BASE_UPGRADE_1_VERSION='0.1.3905696-gog70738' ARCHIVE_BASE_UPGRADE_1_URL='https://www.gog.com/en/game/the_elder_scrolls_v_skyrim_anniversary_upgrade' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES=' data' PKG_MAIN_ID_UPGRADE="${GAME_ID}-${EXPANSION_ID_UPGRADE}" PKG_MAIN_DESCRIPTION_UPGRADE="$EXPANSION_NAME_UPGRADE" PKG_MAIN_DEPS="$GAME_ID" # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Build packages write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-the-elder-scrolls-5.sh0000700000000000000000000001554514471751340015652 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2024 Fabien Givors set -o errexit ### # The Elder Scrolls 5: Skyrim # send your bug reports to bugs@dotslashplay.it ### script_version=20241124.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='the-elder-scrolls-5-skyrim' GAME_NAME='The Elder Scrolls V: Skyrim' ARCHIVE_BASE_1_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_0.1.3905696_(64bit)_(70738).exe' ARCHIVE_BASE_1_MD5='5a73debc2115209be1abd257aa0be329' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_0.1.3905696_(64bit)_(70738)-1.bin' ARCHIVE_BASE_1_PART1_MD5='c8d28d38dc2a58102b4553ba61026591' ARCHIVE_BASE_1_PART2_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_0.1.3905696_(64bit)_(70738)-2.bin' ARCHIVE_BASE_1_PART2_MD5='b262b033d7e30b1d7289e36e0901193c' ARCHIVE_BASE_1_PART3_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_0.1.3905696_(64bit)_(70738)-3.bin' ARCHIVE_BASE_1_PART3_MD5='e249eaf58788328b47b4ba452cee0339' ARCHIVE_BASE_1_PART4_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_0.1.3905696_(64bit)_(70738)-4.bin' ARCHIVE_BASE_1_PART4_MD5='3f82c21b9db4bc45adf65389125dd643' ARCHIVE_BASE_1_PART5_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_0.1.3905696_(64bit)_(70738)-5.bin' ARCHIVE_BASE_1_PART5_MD5='20a789f518bfc5f5654315c6770ebeea' ARCHIVE_BASE_1_PART6_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_0.1.3905696_(64bit)_(70738)-6.bin' ARCHIVE_BASE_1_PART6_MD5='1fc7001e970abf73f0e2cecfbddd6b9c' ARCHIVE_BASE_1_PART7_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_0.1.3905696_(64bit)_(70738)-7.bin' ARCHIVE_BASE_1_PART7_MD5='11c895a76cb12719e6252757b301089b' ARCHIVE_BASE_1_SIZE='29202245' ARCHIVE_BASE_1_VERSION='0.1.3905696-gog70738' ARCHIVE_BASE_1_URL='https://www.gog.com/game/the_elder_scrolls_v_skyrim_special_edition' ARCHIVE_BASE_0_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_1.6.659.0.8_(64bit)_(59094).exe' ARCHIVE_BASE_0_MD5='0b6d1c931788f66d4a3b02138733f05a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_1.6.659.0.8_(64bit)_(59094)-1.bin' ARCHIVE_BASE_0_PART1_MD5='163b8af958071f85e78613834375209c' ARCHIVE_BASE_0_PART2_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_1.6.659.0.8_(64bit)_(59094)-2.bin' ARCHIVE_BASE_0_PART2_MD5='c3852b6ae2bcc46fa0e4f085095bd12f' ARCHIVE_BASE_0_PART3_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_1.6.659.0.8_(64bit)_(59094)-3.bin' ARCHIVE_BASE_0_PART3_MD5='a44293c54ebf39efd8f32cc4cc154220' ARCHIVE_BASE_0_PART4_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_1.6.659.0.8_(64bit)_(59094)-4.bin' ARCHIVE_BASE_0_PART4_MD5='0dc37a5bd97295b5f163435c75868d03' ARCHIVE_BASE_0_PART5_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_1.6.659.0.8_(64bit)_(59094)-5.bin' ARCHIVE_BASE_0_PART5_MD5='162f6baf1d24594f67a1710edef30c42' ARCHIVE_BASE_0_PART6_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_1.6.659.0.8_(64bit)_(59094)-6.bin' ARCHIVE_BASE_0_PART6_MD5='5274ded2391553e9595b170af66ae0c3' ARCHIVE_BASE_0_SIZE='29000000' ARCHIVE_BASE_0_VERSION='1.6.659.0.8-gog59094' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_elder_scrolls_v_skyrim_special_edition' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' skyrimselauncher.exe skyrimse.exe bink2w64.dll galaxy64.dll high.ini low.ini medium.ini ultra.ini skyrimconsoledefault.ini' CONTENT_GAME_L10N_EN_FILES=' skyrim_default_en.ini data/skyrim - voices_en0.bsa' CONTENT_GAME_L10N_FR_FILES=' skyrim_default_fr.ini data/skyrim - voices_fr0.bsa' CONTENT_GAME_DATA_TEXTURES_FILES=' data/skyrim - textures?.bsa' CONTENT_GAME_DATA_FILES=' data/ccbgssse001-fish.bsa data/ccbgssse001-fish.esm data/ccbgssse025-advdsgs.bsa data/ccbgssse025-advdsgs.esm data/ccbgssse037-curios.bsa data/ccbgssse037-curios.esl data/ccqdrsse001-survivalmode.bsa data/ccqdrsse001-survivalmode.esl data/dawnguard.esm data/dragonborn.esm data/hearthfires.esm data/marketplacetextures.bsa data/_resourcepack.bsa data/_resourcepack.esl data/skyrim.esm data/skyrim - animations.bsa data/skyrim - interface.bsa data/skyrim - meshes0.bsa data/skyrim - meshes1.bsa data/skyrim - misc.bsa data/skyrim - shaders.bsa data/skyrim - sounds.bsa data/update.esm data/video skyrim.ccc' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/My Games/Skyrim Special Edition GOG' APP_MAIN_EXE='skyrimse.exe' APP_MAIN_ICON='skyrimselauncher.exe' PACKAGES_LIST=' PKG_BIN PKG_L10N_EN PKG_L10N_FR PKG_DATA_TEXTURES PKG_DATA' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_EN_ID="${PKG_L10N_ID}-en" PKG_L10N_FR_ID="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_EN_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_FR_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_EN_DESCRIPTION='English localization' PKG_L10N_FR_DESCRIPTION='French localization' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_TEXTURES_ID="${PKG_DATA_ID}-textures" PKG_DATA_TEXTURES_DESCRIPTION="$PKG_DATA_DESCRIPTION - textures" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_TEXTURES_ID" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_L10N_ID $PKG_DATA_ID" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' audio/x-wma, wmaversion=(int)1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default ## Rename language-specific configuration file mv \ "$(package_path 'PKG_L10N_EN')$(path_game_data)"/skyrim_default_??.ini \ "$(package_path 'PKG_L10N_EN')$(path_game_data)"/skyrim_default.ini mv \ "$(package_path 'PKG_L10N_FR')$(path_game_data)"/skyrim_default_??.ini \ "$(package_path 'PKG_L10N_FR')$(path_game_data)"/skyrim_default.ini # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation case "$(messages_language)" in ('fr') lang_string='version %s :' lang_en='anglaise' lang_fr='française' ;; ('en'|*) lang_string='%s version:' lang_en='English' lang_fr='French' ;; esac printf '\n' printf "$lang_string" "$lang_en" print_instructions 'PKG_BIN' 'PKG_L10N_EN' 'PKG_DATA' 'PKG_DATA_TEXTURES' printf "$lang_string" "$lang_fr" print_instructions 'PKG_BIN' 'PKG_L10N_FR' 'PKG_DATA' 'PKG_DATA_TEXTURES' # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-lamplighters-league.sh0000700000000000000000000000702014471751340016656 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # The Lamplighters League # send your bug reports to bugs@dotslashplay.it ### script_version=20241229.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='the-lamplighters-league' GAME_NAME='The Lamplighters League' ARCHIVE_BASE_0_NAME='setup_the_lamplighters_league_1.3.1-67360_(75947).exe' ARCHIVE_BASE_0_MD5='bc06890044afe8cd3395249a4553c1f7' ## Do not convert the file paths to lowercase, ## otherwise the engine would fail to fetch localized strings. ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS=' ' ARCHIVE_BASE_0_PART1_NAME='setup_the_lamplighters_league_1.3.1-67360_(75947)-1.bin' ARCHIVE_BASE_0_PART1_MD5='6a217c893d0cc2b93ec561ad0880eb73' ARCHIVE_BASE_0_PART2_NAME='setup_the_lamplighters_league_1.3.1-67360_(75947)-2.bin' ARCHIVE_BASE_0_PART2_MD5='2a56f3cdc2bd2898fb7bc3eacedefec7' ARCHIVE_BASE_0_PART3_NAME='setup_the_lamplighters_league_1.3.1-67360_(75947)-3.bin' ARCHIVE_BASE_0_PART3_MD5='e398fc1ae766a81f1374f971be55929e' ARCHIVE_BASE_0_SIZE='15634809' ARCHIVE_BASE_0_VERSION='1.3.1-gog75947' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_lamplighters_league' UNITY3D_NAME='LamplightersLeague' CONTENT_PATH_DEFAULT='.' ## The game fails to start if this GOG Galaxy setting file is not included, ## as it then expects to be running from Steam. CONTENT_GAME0_BIN_FILES=' galaxyconfig.json' CONTENT_GAME_DATA_BUNDLES_1_FILES=" ${UNITY3D_NAME}_data/streamingassets/aa/standalonewindows64/[0-7]*.bundle" CONTENT_GAME_DATA_BUNDLES_2_FILES=" ${UNITY3D_NAME}_data/streamingassets/aa/standalonewindows64/[8,9a-f]*.bundle" ## Prevent rendering problems, including flashing bright colours (WINE 8.0) ## Due to the flashes being potentially harmful, this should not be removed ## at least until a WINE build not triggering them reaches Debian oldstable. WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/HarebrainedSchemes/LamplightersLeague' PACKAGES_LIST=' PKG_BIN PKG_DATA_BUNDLES_1 PKG_DATA_BUNDLES_2 PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_DATA_BUNDLES_1 PKG_DATA_BUNDLES_2' PKG_DATA_BUNDLES_ID="${PKG_DATA_ID}-bundles" PKG_DATA_BUNDLES_1_ID="${PKG_DATA_BUNDLES_ID}-1" PKG_DATA_BUNDLES_2_ID="${PKG_DATA_BUNDLES_ID}-2" PKG_DATA_BUNDLES_DESCRIPTION="$PKG_DATA_DESCRIPTION - bundles" PKG_DATA_BUNDLES_1_DESCRIPTION="$PKG_BUNDLES_DESCRIPTION - part 1" PKG_DATA_BUNDLES_2_DESCRIPTION="$PKG_BUNDLES_DESCRIPTION - part 2" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-the-swords-of-ditto.sh0000755000000000000000000000412514471751340016004 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The Swords of Ditto # send your bug reports to bugs@dotslashplay.it ### script_version=20251013.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='the-swords-of-ditto' GAME_NAME='The Swords of Ditto: Mormoʼs Curse' ARCHIVE_BASE_0_NAME='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_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libcurl.so.4 libdl.so.2 libgcc_s.so.1 libGL.so.1 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' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-the-temple-of-elemental-evil.sh0000700000000000000000000000462314471751340017522 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # The Temple of Elemental Evil # send your bug reports to bugs@dotslashplay.it ### script_version=20240728.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='the-temple-of-elemental-evil' GAME_NAME='The Temple of Elemental Evil' ARCHIVE_BASE_1_NAME='setup_temple_of_elemental_evil_1.0_(15416).exe' ARCHIVE_BASE_1_MD5='1c7b493f71c2c92050a63535b3abec67' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='1400000' ARCHIVE_BASE_1_VERSION='1.3-gog15416' ARCHIVE_BASE_1_URL='https://www.gog.com/game/the_temple_of_elemental_evil' ARCHIVE_BASE_0_NAME='setup_temple_of_elemental_evil_2.0.0.13.exe' ARCHIVE_BASE_0_MD5='44ea1e38ed1da26aefb32a39a899f770' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1400000' ARCHIVE_BASE_0_VERSION='1.3-gog2.0.0.13' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_BIN_FILES=' miles *.dll *.exe *.pyd' CONTENT_GAME0_BIN_PATH="${CONTENT_PATH_DEFAULT}/__support/app" ## Required to override the previous value. CONTENT_GAME0_BIN_PATH_0="$CONTENT_PATH_DEFAULT_0" CONTENT_GAME0_BIN_FILES=' *.cfg' CONTENT_GAME_DATA_FILES=' data modules toee.ico *.dat' CONTENT_DOC_DATA_FILES=' *.pdf *.txt' USER_PERSISTENT_DIRECTORIES=' data/maps data/save data/scr modules/toee' USER_PERSISTENT_FILES=' toee.cfg' APP_MAIN_EXE='toee.exe' APP_MAIN_ICON='toee.ico' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-warlock-of-firetop-mountain.sh0000700000000000000000000000663314471751340020276 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # The Warlock of Firetop Mountain # send your bug reports to bugs@dotslashplay.it ### script_version=20250505.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='the-warlock-of-firetop-mountain' GAME_NAME='The Warlock of Firetop Mountain' ARCHIVE_BASE_1_NAME='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_NAME='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' UNITY3D_PLUGINS=' ScreenSelector.so' ## The game fails to start if libCSteamworks.so is not available, ## libsteam_api.so is a requirement of libCSteamworks.so. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='WARLOCK_LINUX_487115' CONTENT_PATH_DEFAULT_0='WARLOCK_LINUX_487088' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # The game engine fails to load some plugins unless they are found in a hardcoded path libraries_source=$(path_libraries) libraries_destination_64="$(package_path 'PKG_BIN64')$(path_game_data)/$(unity3d_name)_Data/Plugins/x86_64" libraries_destination_32="$(package_path 'PKG_BIN32')$(path_game_data)/$(unity3d_name)_Data/Plugins/x86" mkdir --parents "$libraries_destination_64" "$libraries_destination_32" ln --symbolic "${libraries_source}/ScreenSelector.so" "$libraries_destination_64" ln --symbolic "${libraries_source}/ScreenSelector.so" "$libraries_destination_32" # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-the-witcher-2.sh0000700000000000000000000001272414471751340014536 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2015 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2018 Phil Morrell set -o errexit ### # The Witcher 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20241124.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='the-witcher-2' GAME_NAME='The Witcher 2: Assassins of Kings' ARCHIVE_BASE_1_NAME='the_witcher_2_assassins_of_kings_enhanced_edition_en_release_3_20150306204412_20992.sh' ARCHIVE_BASE_1_MD5='fd7b85d44e3da7fdf860ab4267574b36' ARCHIVE_BASE_1_SIZE='24000000' ARCHIVE_BASE_1_VERSION='1.3-gog.20992' ARCHIVE_BASE_1_URL='https://www.gog.com/game/the_witcher_2' ARCHIVE_BASE_0_NAME='gog_the_witcher_2_assassins_of_kings_enhanced_edition_2.2.0.8.sh' ARCHIVE_BASE_0_MD5='3fff5123677a7be2023ecdb6af3b82b6' ARCHIVE_BASE_0_SIZE='24000000' ARCHIVE_BASE_0_VERSION='1.3-gog.2.2.0.8' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_FILES=' libopenal-eon.so.1' CONTENT_GAME_BIN_FILES=' bin configurator eONprecompiledShaders32.dat sdlinput witcher2' CONTENT_GAME_VOICES_DE_FILES=' CookedPC/de0.w2speech' CONTENT_GAME_VOICES_EN_FILES=' CookedPC/en0.w2speech' CONTENT_GAME_VOICES_FR_FILES=' CookedPC/fr0.w2speech' CONTENT_GAME_VOICES_PL_FILES=' CookedPC/pl0.w2speech' CONTENT_GAME_VOICES_RU_FILES=' CookedPC/ru0.w2speech' CONTENT_GAME_DATA_PACK1_FILES=' CookedPC/pack0.dzip.split00' CONTENT_GAME_DATA_PACK2_FILES=' CookedPC/pack0.dzip.split01 CookedPC/pack0.dzip.split02' CONTENT_GAME_DATA_FILES=' CookedPC fontconfig linux icudt52l.dat SDLGamepad.config VPFS_registry.vpfsdb witcher2.vpfs' CONTENT_DOC_DATA_FILES=' *.rtf *.txt' APP_MAIN_EXE='witcher2' APP_MAIN_ICON='linux/icons/witcher2-icon.png' APP_CONFIG_ID="${GAME_ID}-config" APP_CONFIG_NAME="$GAME_NAME - configuration" APP_CONFIG_CAT='Settings' APP_CONFIG_EXE='configurator' APP_CONFIG_ICON='linux/icons/witcher2-configurator.png' PACKAGES_LIST=' PKG_BIN PKG_VOICES_DE PKG_VOICES_EN PKG_VOICES_FR PKG_VOICES_PL PKG_VOICES_RU PKG_DATA_PACK1 PKG_DATA_PACK2 PKG_DATA' PKG_VOICES_ID="${GAME_ID}-voices" PKG_VOICES_DE_ID="${PKG_VOICES_ID}-de" PKG_VOICES_EN_ID="${PKG_VOICES_ID}-en" PKG_VOICES_FR_ID="${PKG_VOICES_ID}-fr" PKG_VOICES_PL_ID="${PKG_VOICES_ID}-pl" PKG_VOICES_RU_ID="${PKG_VOICES_ID}-ru" PKG_VOICES_PROVIDES=" $PKG_VOICES_ID" PKG_VOICES_DE_PROVIDES="$PKG_VOICES_PROVIDES" PKG_VOICES_EN_PROVIDES="$PKG_VOICES_PROVIDES" PKG_VOICES_FR_PROVIDES="$PKG_VOICES_PROVIDES" PKG_VOICES_PL_PROVIDES="$PKG_VOICES_PROVIDES" PKG_VOICES_RU_PROVIDES="$PKG_VOICES_PROVIDES" PKG_VOICES_DESCRIPTION='voices' PKG_VOICES_DE_DESCRIPTION="$PKG_VOICES_DESCRIPTION - German" PKG_VOICES_EN_DESCRIPTION="$PKG_VOICES_DESCRIPTION - English" PKG_VOICES_FR_DESCRIPTION="$PKG_VOICES_DESCRIPTION - French" PKG_VOICES_PL_DESCRIPTION="$PKG_VOICES_DESCRIPTION - Polish" PKG_VOICES_RU_DESCRIPTION="$PKG_VOICES_DESCRIPTION - Russian" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_PACK1_ID="${PKG_DATA_ID}-pack1" PKG_DATA_PACK2_ID="${PKG_DATA_ID}-pack2" PKG_DATA_DESCRIPTION='data' PKG_DATA_PACK1_DESCRIPTION="$PKG_DATA_DESCRIPTION - pack0, part 1" PKG_DATA_PACK2_DESCRIPTION="$PKG_DATA_DESCRIPTION - pack0, part 2" PKG_DATA_DEPS="$PKG_DATA_PACK1_ID $PKG_DATA_PACK2_ID" PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_VOICES_ID $PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libfreetype.so.6 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0 libstdc++.so.6 libX11.so.6' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages ## Set package scripts to rebuild the full files from their chunks. file_path='CookedPC/pack0.dzip' PKG_DATA_POSTINST_RUN="${PKG_DATA_POSTINST_RUN:-} $(huge_file_concatenate "$file_path")" PKG_DATA_PRERM_RUN="${PKG_DATA_PRERM_RUN:-} $(huge_file_delete "$file_path")" packages_generation case "$(messages_language)" in ('fr') lang_string='voix %s :' lang_de='allemandes' lang_en='anglaises' lang_fr='françaises' lang_pl='polonaises' lang_ru='russes' ;; ('en'|*) lang_string='%s voices:' lang_de='German' lang_en='English' lang_fr='French' lang_pl='Polish' lang_ru='Russian' ;; esac printf '\n' printf "$lang_string" "$lang_de" print_instructions 'PKG_BIN' 'PKG_VOICES_DE' 'PKG_DATA' 'PKG_DATA_PACK1' 'PKG_DATA_PACK2' printf "$lang_string" "$lang_en" print_instructions 'PKG_BIN' 'PKG_VOICES_EN' 'PKG_DATA' 'PKG_DATA_PACK1' 'PKG_DATA_PACK2' printf "$lang_string" "$lang_fr" print_instructions 'PKG_BIN' 'PKG_VOICES_FR' 'PKG_DATA' 'PKG_DATA_PACK1' 'PKG_DATA_PACK2' printf "$lang_string" "$lang_pl" print_instructions 'PKG_BIN' 'PKG_VOICES_PL' 'PKG_DATA' 'PKG_DATA_PACK1' 'PKG_DATA_PACK2' printf "$lang_string" "$lang_ru" print_instructions 'PKG_BIN' 'PKG_VOICES_RU' 'PKG_DATA' 'PKG_DATA_PACK1' 'PKG_DATA_PACK2' # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-witcher-3.sh0000700000000000000000000001163214471751340014534 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # The Witcher 3 # send your bug reports to bugs@dotslashplay.it ### script_version=20250326.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='the-witcher-3' GAME_NAME='The Witcher 3: Wild Hunt' ARCHIVE_BASE_0_NAME='setup_the_witcher_3_wild_hunt_goty_1.31_(a)_(9709).exe' ARCHIVE_BASE_0_MD5='321ed8cc0faedb903190a708686a1b50' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_the_witcher_3_wild_hunt_goty_1.31_(a)_(9709)-1.bin' ARCHIVE_BASE_0_PART1_MD5='8aab6124c22f1360585ee2285ea6d8f7' ARCHIVE_BASE_0_PART2_NAME='setup_the_witcher_3_wild_hunt_goty_1.31_(a)_(9709)-2.bin' ARCHIVE_BASE_0_PART2_MD5='3966e84f941b9fba384eb4a2b0b23c65' ARCHIVE_BASE_0_PART3_NAME='setup_the_witcher_3_wild_hunt_goty_1.31_(a)_(9709)-3.bin' ARCHIVE_BASE_0_PART3_MD5='bc80aa6b1538ecf757e7db6f3723e056' ARCHIVE_BASE_0_PART4_NAME='setup_the_witcher_3_wild_hunt_goty_1.31_(a)_(9709)-4.bin' ARCHIVE_BASE_0_PART4_MD5='71660541a0c358ef40802ba62a2c3c09' ARCHIVE_BASE_0_PART5_NAME='setup_the_witcher_3_wild_hunt_goty_1.31_(a)_(9709)-5.bin' ARCHIVE_BASE_0_PART5_MD5='9ad56c2efc7b09f480f7f8c7922c8b3f' ARCHIVE_BASE_0_PART6_NAME='setup_the_witcher_3_wild_hunt_goty_1.31_(a)_(9709)-6.bin' ARCHIVE_BASE_0_PART6_MD5='bd3699654b2e34668445219f2bbbc793' ARCHIVE_BASE_0_PART7_NAME='setup_the_witcher_3_wild_hunt_goty_1.31_(a)_(9709)-7.bin' ARCHIVE_BASE_0_PART7_MD5='1beb5a622e6695d0dd65cac5fab08793' ARCHIVE_BASE_0_PART8_NAME='setup_the_witcher_3_wild_hunt_goty_1.31_(a)_(9709)-8.bin' ARCHIVE_BASE_0_PART8_MD5='121adc43111562e354d9841800d0c613' ARCHIVE_BASE_0_PART9_NAME='setup_the_witcher_3_wild_hunt_goty_1.31_(a)_(9709)-9.bin' ARCHIVE_BASE_0_PART9_MD5='0f5329306515d6f41a1b4a7b2d38ad74' ARCHIVE_BASE_0_SIZE='38000000' ARCHIVE_BASE_0_VERSION='1.31a-gog9709' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_witcher_3_wild_hunt_game_of_the_year_edition' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' bin' CONTENT_GAME_MOVIES_FILES=' content/*/bundles/movies.bundle' CONTENT_GAME_BUNDLES_FILES=' content/*/bundles' CONTENT_GAME_VOICES_FILES=' content/*/soundspc.cache' CONTENT_GAME_DATA_FILES=' content' CONTENT_GAME_DLC_HEARTS_OF_STONE_FILES=' dlc/ep1' CONTENT_GAME_DLC_BLOOD_AND_WINE_FILES=' dlc/bob' CONTENT_GAME_DLC_FREE_PACK_FILES=' dlc/dlc*' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/The Witcher 3' APP_MAIN_EXE='bin/x64/witcher3.exe' PACKAGES_LIST=' PKG_BIN PKG_MOVIES PKG_BUNDLES PKG_VOICES PKG_DLC_HEARTS_OF_STONE PKG_DLC_BLOOD_AND_WINE PKG_DLC_FREE_PACK PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_BUNDLES PKG_VOICES' PKG_BUNDLES_ID="${GAME_ID}-bundles" PKG_BUNDLES_DESCRIPTION='bundles' PKG_BUNDLES_DEPENDENCIES_SIBLINGS=' PKG_MOVIES' PKG_MOVIES_ID="${GAME_ID}-movies" PKG_MOVIES_DESCRIPTION='movies' PKG_VOICES_ID="${GAME_ID}-voices" PKG_VOICES_DESCRIPTION='voices' PKG_DLC_HEARTS_OF_STONE_ID="${GAME_ID}-hearts-of-stone" PKG_DLC_HEARTS_OF_STONE_DESCRIPTION='Hearts of Stone' PKG_DLC_HEARTS_OF_STONE_DEPENDENCIES_SIBLINGS=' PKG_BIN' PKG_DLC_BLOOD_AND_WINE_ID="${GAME_ID}-blood-and-wine" PKG_DLC_BLOOD_AND_WINE_DESCRIPTION='Blood and Wine' PKG_DLC_BLOOD_AND_WINE_DEPENDENCIES_SIBLINGS=' PKG_BIN' PKG_DLC_FREE_PACK_ID="${GAME_ID}-free-dlc-pack" PKG_DLC_FREE_PACK_DESCRIPTION='Free DLC pack' PKG_DLC_FREE_PACK_DEPENDENCIES_SIBLINGS=' PKG_BIN' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## Run the game binary from its parent directory game_exec_line() { cat <<- 'EOF' cd bin/x64 $(wine_command) witcher3.exe "$@" EOF } launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions 'PKG_MOVIES' 'PKG_BUNDLES' 'PKG_VOICES' 'PKG_DATA' 'PKG_BIN' GAME_NAME=$(package_description 'PKG_DLC_HEARTS_OF_STONE') print_instructions 'PKG_DLC_HEARTS_OF_STONE' GAME_NAME=$(package_description 'PKG_DLC_BLOOD_AND_WINE') print_instructions 'PKG_DLC_BLOOD_AND_WINE' GAME_NAME=$(package_description 'PKG_DLC_FREE_PACK') print_instructions 'PKG_DLC_FREE_PACK' # Clean up working_directory_cleanup exit 0 games/play-ultima-4.sh0000700000000000000000000000415014471751340013602 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Ultima 4 # send your bug reports to bugs@dotslashplay.it ### script_version=20250115.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='ultima-4' GAME_NAME='Ultima IV: Quest of the Avatar' ARCHIVE_BASE_1_NAME='setup_ultima_iv_-_quest_of_the_avatar_1.0_cs_(28045).exe' ARCHIVE_BASE_1_MD5='f4c943b03e576557a962bcd88470509f' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='16714' ARCHIVE_BASE_1_VERSION='1.0-gog28045' ARCHIVE_BASE_1_URL='https://www.gog.com/game/ultima_4' ARCHIVE_BASE_0_NAME='setup_ultima_iv_-_quest_of_the_avatar_1.0_cs_(28045).exe' ARCHIVE_BASE_0_MD5='2c8adeb4cacfba84b611e9c28ddf12e0' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='17589' ARCHIVE_BASE_0_VERSION='1.0-gog28045' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES=' ultima.com avatar.exe title.exe ultima4.txt *.cga *.con *.dng *.drv *.ega *.egz *.map *.new *.pic *.tlk *.ult' CONTENT_GAME0_MAIN_PATH='__support/save' CONTENT_GAME0_MAIN_FILES=' *.sav' CONTENT_DOC_MAIN_FILES=' manual.pdf readme.rtf' USER_PERSISTENT_FILES=' *.sav' APP_MAIN_EXE='ultima.com' APP_MAIN_ICON='app/goggame-1207658962.ico' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-undertale.sh0000755000000000000000000000534114471751340014146 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2017 Mopi set -o errexit ### # Undertale # send your bug reports to bugs@dotslashplay.it ### script_version=20250421.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='undertale' GAME_NAME='Undertale' ARCHIVE_BASE_2_NAME='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_NAME='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_NAME='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_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libssl.so.1.0.0 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Enforce the binary name if [ -e 'UNDERTALE' ]; then mv 'UNDERTALE' "$(application_exe 'APP_MAIN')" fi ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-unepic.sh0000755000000000000000000000621414471751340013446 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2015 mortalius # SPDX-FileCopyrightText: © 2015 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2018 BetaRays set -o errexit ### # unEpic # send your bug reports to bugs@dotslashplay.it ### script_version=20250505.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' 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_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 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" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-urtuk-the-desolation.sh0000755000000000000000000000575614471751340016264 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Urtuk: The Desolation # send your bug reports to bugs@dotslashplay.it ### script_version=20240624.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='urtuk-the-desolation' GAME_NAME='Urtuk: The Desolation' ARCHIVE_BASE_0_NAME='urtuk_the_desolation_1_0_0_91b_53003.sh' ARCHIVE_BASE_0_MD5='4fddaaa42c70b75258a78d4a5b103473' ARCHIVE_BASE_0_SIZE='740000' ARCHIVE_BASE_0_VERSION='1.0.0.91b-gog53003' ARCHIVE_BASE_0_URL='https://www.gog.com/game/urtuk_the_desolation' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_DATA_FILES=' desktop-1.0.jar' CONTENT_GAME_BIN_SHIPPED_FILES=' jre config.json urtuk' USER_PERSISTENT_FILES=' *.bin *.bin.backup' APP_MAIN_TYPE_BIN_SYSTEM='java' APP_MAIN_EXE_BIN_SYSTEM='desktop-1.0.jar' APP_MAIN_EXE_BIN_SHIPPED='urtuk' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST=' PKG_BIN_SYSTEM PKG_BIN_SHIPPED PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_SHIPPED_ARCH='64' PKG_BIN_ID="${GAME_ID}-bin" PKG_BIN_SYSTEM_ID="${PKG_BIN_ID}-system" PKG_BIN_SHIPPED_ID="${PKG_BIN_ID}-shipped" PKG_BIN_PROVIDES=" $PKG_BIN_ID" PKG_BIN_SYSTEM_PROVIDES="$PKG_BIN_PROVIDES" PKG_BIN_SHIPPED_PROVIDES="$PKG_BIN_PROVIDES" PKG_BIN_SYSTEM_DEPS="$PKG_DATA_ID" PKG_BIN_SHIPPED_DEPS="$PKG_DATA_ID" PKG_BIN_SHIPPED_DEPENDENCIES_LIBRARIES=' libasound.so.2 libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 libstdc++.so.6 libthread_db.so.1 libX11.so.6 libXext.so.6 libXi.so.6 libXrender.so.1 libXtst.so.6' PKG_BIN_SYSTEM_DESCRIPTION='Using system-provided Java' PKG_BIN_SHIPPED_DESCRIPTION='Using shipped binaries' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN_SYSTEM' launchers_generation 'PKG_BIN_SHIPPED' # Build packages packages_generation case "$(messages_language)" in ('fr') message='Utilisation des binaires fournis par %s :' bin_system='le système' bin_shipped='les développeurs' ;; ('en'|*) message='Using binaries provided by %s:' bin_system='the system' bin_shipped='the developers' ;; esac printf '\n' printf "$message" "$bin_system" print_instructions 'PKG_DATA' 'PKG_BIN_SYSTEM' printf "$message" "$bin_shipped" print_instructions 'PKG_DATA' 'PKG_BIN_SHIPPED' # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-vagrus-the-riven-realms.sh0000755000000000000000000000543314471751340016654 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Vagrus: The Riven Realms # send your bug reports to bugs@dotslashplay.it ### script_version=20251014.3 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='vagrus-the-riven-realms' GAME_NAME='Vagrus: The Riven Realms' GAME_ID_PROLOGUE="${GAME_ID}-prologue" GAME_NAME_PROLOGUE="${GAME_NAME} - Prologue" ARCHIVE_BASE_PROLOGUE_GOG_1_NAME='vagrus_the_riven_realms_prologue_1_1340522l_64815.sh' ARCHIVE_BASE_PROLOGUE_GOG_1_MD5='b4c4735a13144974da57e73038c29e88' ARCHIVE_BASE_PROLOGUE_GOG_1_SIZE='2659242' ARCHIVE_BASE_PROLOGUE_GOG_1_VERSION='1.1.34-gog64815' ARCHIVE_BASE_PROLOGUE_GOG_1_URL='https://www.gog.com/game/vagrus_the_riven_realms_prologue' ARCHIVE_BASE_PROLOGUE_GOG_0_NAME='vagrus_the_riven_realms_prologue_1_1150613h_56533.sh' ARCHIVE_BASE_PROLOGUE_GOG_0_MD5='b1c3ec004b8d49d9d40a7f54b12fea21' ARCHIVE_BASE_PROLOGUE_GOG_0_SIZE='5500000' ARCHIVE_BASE_PROLOGUE_GOG_0_VERSION='1.1.15-gog56533' ARCHIVE_BASE_PROLOGUE_ITCH_0_NAME='vagrus-demolinux.zip' ARCHIVE_BASE_PROLOGUE_ITCH_0_MD5='4bddf380ed1355b455802cfd615d9ec7' ARCHIVE_BASE_PROLOGUE_ITCH_0_SIZE='3800000' ARCHIVE_BASE_PROLOGUE_ITCH_0_VERSION='0.5.31-itch.2021.05.12' ARCHIVE_BASE_PROLOGUE_ITCH_0_URL='https://lostpilgrims.itch.io/vagrus' UNITY3D_NAME='Vagrus' CONTENT_PATH_DEFAULT_PROLOGUE_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_PROLOGUE_ITCH='.' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_PROLOGUE="${GAME_ID_PROLOGUE}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default ## Prevent inclusion of Steam libraries. rm --recursive "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/$(unity3d_name)_Data/Plugins" # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-vambrace-cold-soul.sh0000755000000000000000000000371214471751340015642 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Vambrace: Cold Soul # send your bug reports to bugs@dotslashplay.it ### script_version=20251023.2 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='vambrace-cold-soul' GAME_NAME='Vambrace: Cold Soul' ARCHIVE_BASE_0_NAME='vambrace_cold_soul_1_10_b_37074.sh' ARCHIVE_BASE_0_MD5='91f0947bb96d6d5a0479d32ccc2d2770' ARCHIVE_BASE_0_SIZE='4998992' ARCHIVE_BASE_0_VERSION='1.10.b-gog37074' ARCHIVE_BASE_0_URL='https://www.gog.com/game/vambrace_cold_soul' UNITY3D_NAME='VambraceColdSoul' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-vampire-the-masquerade-redemption.sh0000755000000000000000000000540114471751340020672 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Vampire: The Masquerade - Redemption # send your bug reports to bugs@dotslashplay.it ### script_version=20250806.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' 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' ## Set required registry keys. ## TODO: The CD key should be extracted from a file provided with the game installer, ## instead of hardcoded in this script. # shellcheck disable=SC1003 WINE_REGISTRY_INIT=' [HKEY_LOCAL_MACHINE\Software\Activision\Vampire: The Masquerade - Redemption\v1.0] "CDDRIVE"="c:" "INSTALLDIR"="C:\\'"${GAME_ID}"'" "INSTALLDIREXE"="C:\\'"${GAME_ID}"'\\vampire.exe" "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' ## TODO: The game can mess up with the display gamma setting, we should restore the previous value after exiting it. APP_MAIN_EXE='vampire.exe' APP_MAIN_ICON='vampireankh.ico' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-van-helsing.sh0000755000000000000000000001723514471751340014403 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # The Incredible Adventures of Van Helsing # send your bug reports to bugs@dotslashplay.it ### script_version=20251117.5 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='van-helsing-final-cut' GAME_NAME='The Incredible Adventures of Van Helsing: Final Cut' ARCHIVE_BASE_0_NAME='setup_the_incredible_adventures_of_van_helsing_-_final_cut_1.1.0b_(b)_(23988).exe' ARCHIVE_BASE_0_MD5='11823fff68df72308f3f8ba8f9dfa820' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_the_incredible_adventures_of_van_helsing_-_final_cut_1.1.0b_(b)_(23988)-1.bin' ARCHIVE_BASE_0_PART1_MD5='07fcaf654ce6cfb9026d1e6e40b06bf3' ARCHIVE_BASE_0_PART2_NAME='setup_the_incredible_adventures_of_van_helsing_-_final_cut_1.1.0b_(b)_(23988)-2.bin' ARCHIVE_BASE_0_PART2_MD5='de5281e71e9d68bb196da32c09048ec9' ARCHIVE_BASE_0_PART3_NAME='setup_the_incredible_adventures_of_van_helsing_-_final_cut_1.1.0b_(b)_(23988)-3.bin' ARCHIVE_BASE_0_PART3_MD5='721981718e036fb2fb4e848543241be7' ARCHIVE_BASE_0_PART4_NAME='setup_the_incredible_adventures_of_van_helsing_-_final_cut_1.1.0b_(b)_(23988)-4.bin' ARCHIVE_BASE_0_PART4_MD5='dc7981e674f6400d1919d56b735854fd' ARCHIVE_BASE_0_PART5_NAME='setup_the_incredible_adventures_of_van_helsing_-_final_cut_1.1.0b_(b)_(23988)-5.bin' ARCHIVE_BASE_0_PART5_MD5='0d9cec82a419c8abb5a7a414817e1446' ARCHIVE_BASE_0_SIZE='35870060' ARCHIVE_BASE_0_VERSION='1.1.0b-gog23988' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_incredible_adventures_of_van_helsing_final_cut' CONTENT_PATH_DEFAULT='.' ## vanhelsing_x64.exe requirements CONTENT_LIBS_BIN_FILES=' PhysX3_x64.dll PhysX3Common_x64.dll PhysX3Cooking_x64.dll Galaxy64.dll' CONTENT_GAME_BIN_FILES=' vanhelsing_x64.exe' CONTENT_GAME_L10N_FR_FILES=' strings/french ui/loadingscreens/fr videos/fr/*.srt' CONTENT_GAME_L10N_EN_FILES=' strings/eng ui/loadingscreens/eng videos/eng/*.srt' CONTENT_GAME_DATA_FILES=' cfg cgshaders commontextures effects models sounds/ambient sounds/effects sounds/general sounds/misc sounds/music sounds/options sounds/shrines sounds/skills sounds/soldiers sounds/soldiers_low sounds/touchdown sounds/treasurechests sounds/languages/eng sounds/sample.ogg textures ui videos/eng/*.ogg videos/eng/*.webm' CONTENT_GAME0_DATA_PATH='app' CONTENT_GAME0_DATA_FILES=' cfg/skills/monster/__gargoyle_zuhanas_effect.cfg cfg/soldier/02_normal_ranged/atd_inkmachine_generalis.cfg' CONTENT_GAME_DATA_TERRAINS_1_FILES=' terrains/barrikados terrains/belvaros terrains/bossc2 terrains/cave terrains/city1* terrains/clockwork_keep terrains/csatorna_* terrains/dark_carnival terrains/dr_csont terrains/driad_boss_arena terrains/final_boss terrains/floating_monastery terrains/gasmachine terrains/gergo_kezdoteszt terrains/giantwoods terrains/gorge_of_eternal_peril terrains/gyarnegyed terrains/haunted_forest_* terrains/hf_arena' CONTENT_GAME_DATA_TERRAINS_2_FILES=' terrains/ink* terrains/kapubirtok terrains/kisbarlang terrains/kohok* terrains/kristalyos_ink terrains/kutatolabor terrains/lair_01_03 terrains/memorial_perk terrains/nagyerdo terrains/nightmare_hollow_ring*' CONTENT_GAME_DATA_TERRAINS_3_FILES=' terrains/ostrom2 terrains/pokol* terrains/poksziklak terrains/pvp_karacsony terrains/steamhall terrains/szerpentin terrains/tetok2 terrains/tetok_final terrains/touchdown terrains/tutorial terrains/vh* terrains/viztisztito* terrains/wolf_den terrains/wormcave' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/NeocoreGames/Van Helsing Final Cut' WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\NeoCore Games\Van Helsing Final Cut' WINE_REGISTRY_INIT_L10N_FR=' [HKEY_CURRENT_USER\Software\NeoCore Games\Van Helsing Final Cut] "Language"="FR" ' WINE_REGISTRY_INIT_L10N_EN=' [HKEY_CURRENT_USER\Software\NeoCore Games\Van Helsing Final Cut] "Language"="eng" ' APP_MAIN_EXE='vanhelsing_x64.exe' PACKAGES_LIST=' PKG_BIN PKG_L10N_FR PKG_L10N_EN PKG_DATA PKG_DATA_TERRAINS_1 PKG_DATA_TERRAINS_2 PKG_DATA_TERRAINS_3' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N PKG_DATA' PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' deinterlace video/x-ms-asf' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_FR_ID="${PKG_L10N_ID}-fr" PKG_L10N_EN_ID="${PKG_L10N_ID}-en" PKG_L10N_FR_PROVIDES=" $PKG_L10N_ID" PKG_L10N_EN_PROVIDES=" $PKG_L10N_ID" PKG_L10N_FR_DESCRIPTION='French localisation' PKG_L10N_EN_DESCRIPTION='English localisation' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_DATA_TERRAINS_1 PKG_DATA_TERRAINS_2 PKG_DATA_TERRAINS_3' ## Easier upgrades from pre-20251115.1 packages PKG_DATA_PROVIDES=' van-helsing-final-cut-l10n-common' PKG_DATA_TERRAINS_ID="${PKG_DATA_ID}-terrains" PKG_DATA_TERRAINS_1_ID="${PKG_DATA_TERRAINS_ID}-1" PKG_DATA_TERRAINS_2_ID="${PKG_DATA_TERRAINS_ID}-2" PKG_DATA_TERRAINS_3_ID="${PKG_DATA_TERRAINS_ID}-3" PKG_DATA_TERRAINS_DESCRIPTION="$PKG_DATA_DESCRIPTION - terrains" PKG_DATA_TERRAINS_1_DESCRIPTION="$PKG_DATA_TERRAINS_DESCRIPTION - 1" PKG_DATA_TERRAINS_2_DESCRIPTION="$PKG_DATA_TERRAINS_DESCRIPTION - 2" PKG_DATA_TERRAINS_3_DESCRIPTION="$PKG_DATA_TERRAINS_DESCRIPTION - 3" # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write the localisations configuration. ## English cat > "$(package_path 'PKG_L10N_EN')$(path_game_data)/strings/languages.xml" << EOF English eng EOF ## French cat > "$(package_path 'PKG_L10N_FR')$(path_game_data)/strings/languages.xml" << EOF French FR EOF # Write launchers. ## Set localisation of first launch. for package in \ 'PKG_L10N_FR' \ 'PKG_L10N_EN' do ( set_current_package "$package" ## TODO: Compatibility level 2.34 adds context support to WINE_REGISTRY_INIT. WINE_REGISTRY_INIT=$(context_value 'WINE_REGISTRY_INIT') # shellcheck disable=SC2218 wine_registry_script_write "$package" ) done wine_registry_script_write() { return 0; } ## A dummy value is set to trigger the integration of the registry script in the generated launcher. WINE_REGISTRY_INIT='whatever' ## Install shipped libraries. wineprefix_init_custom() { cat <<- EOF # Install shipped libraries. ln --force --symbolic $(path_libraries)/* "\${PATH_PREFIX}" EOF } launchers_generation # Build packages. packages_generation case "$(messages_language)" in ('fr') message='version %s :' lang_fr='française' lang_en='anglaise' ;; ('en'|*) message='%s version:' lang_fr='French' lang_en='English' ;; esac printf '\n' printf "$message" "$lang_fr" print_instructions \ 'PKG_BIN' \ 'PKG_DATA' 'PKG_DATA_TERRAINS_1' 'PKG_DATA_TERRAINS_2' 'PKG_DATA_TERRAINS_3' \ 'PKG_L10N_FR' printf "$message" "$lang_en" print_instructions \ 'PKG_BIN' \ 'PKG_DATA' 'PKG_DATA_TERRAINS_1' 'PKG_DATA_TERRAINS_2' 'PKG_DATA_TERRAINS_3' \ 'PKG_L10N_EN' # Clean up. working_directory_cleanup exit 0 games/play-vaporum.sh0000755000000000000000000000425014471751340013652 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Vaporum # send your bug reports to bugs@dotslashplay.it ### script_version=20251014.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='vaporum' GAME_NAME='Vaporum' ARCHIVE_BASE_0_NAME='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' ## Yes, .exe for a native Linux build. ## Some developers are funny like that. CONTENT_GAME0_BIN_FILES=" ${UNITY3D_NAME}.exe" CONTENT_GAME0_DATA_FILES=' Localization' CONTENT_DOC_DATA_FILES=' BuildInfo.txt PatchNotes.txt' USER_PERSISTENT_DIRECTORIES=' Saves Settings' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-victor-vran-expansions.sh0000700000000000000000000000442514471751340016612 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Victor Vran expansions: # - Motörhead - Through the Ages # - Fractured Worlds # send your bug reports to bugs@dotslashplay.it ### script_version=20241229.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='victor-vran' GAME_NAME='Victor Vran' EXPANSION_ID_MOTORHEAD='motorhead-through-the-ages' EXPANSION_NAME_MOTORHEAD='Motörhead - Through the Ages' EXPANSION_ID_FRACTURED='fractured-worlds' EXPANSION_NAME_FRACTURED='Fractured Worlds' # Archives ## Motörhead - Through the Ages ARCHIVE_BASE_MOTORHEAD_0_NAME='victor_vran_mot_rhead_through_the_ages_2_07_20181005_24296.sh' ARCHIVE_BASE_MOTORHEAD_0_MD5='e84685034d2d90782a3ab7c83901bc11' ARCHIVE_BASE_MOTORHEAD_0_SIZE='868392' ARCHIVE_BASE_MOTORHEAD_0_VERSION='2.07.20181005-gog24296' ARCHIVE_BASE_MOTORHEAD_0_URL='https://www.gog.com/game/victor_vran_motorhead_through_the_ages' ## Fractured Worlds ARCHIVE_BASE_FRACTURED_0_NAME='victor_vran_fractured_worlds_2_07_20181005_24296.sh' ARCHIVE_BASE_FRACTURED_0_MD5='94a8bd9f2ca09e3c4e2547a0d5a7bc8c' ARCHIVE_BASE_FRACTURED_0_SIZE='213785' ARCHIVE_BASE_FRACTURED_0_VERSION='2.07.20181005-gog24296' ARCHIVE_BASE_FRACTURED_0_URL='https://www.gog.com/game/victor_vran_fractured_worlds' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' DLC' PKG_PARENT_ID="$GAME_ID" PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_PARENT' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_default # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-victor-vran.sh0000755000000000000000000000665614471751340014447 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Jacek Szafarkiewicz # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Victor Vran # send your bug reports to bugs@dotslashplay.it ### script_version=20250318.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='victor-vran' GAME_NAME='Victor Vran' ARCHIVE_BASE_0_NAME='victor_vran_2_07_20181005_24296.sh' ARCHIVE_BASE_0_MD5='506f55f5521131e7ab69b656a3e55582' ARCHIVE_BASE_0_SIZE='4721209' ARCHIVE_BASE_0_VERSION='2.07.20181005-gog24296' ARCHIVE_BASE_0_URL='https://www.gog.com/game/victor_vran' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' VictorVranGOG' CONTENT_GAME_DATA_FILES=' DLC Local Movies Packs' APP_MAIN_EXE='VictorVranGOG' APP_MAIN_ICON='../support/icon.png' ## Work around a failure to launch due to not parsing the correct SSL configuration APP_MAIN_PRERUN=' # Work around a failure to launch due to not parsing the correct SSL configuration export OPENSSL_CONF=/etc/ssl ' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libcurl-gnutls.so.4 libdl.so.2 libgcc_s.so.1 libgpg-error.so.0 libm.so.6 libopenal.so.1 libpthread.so.0 libSDL2-2.0.so.0 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXrender.so.1 libXt.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Work around the engine expectation that files are owned by the current user LD_PRELOAD_SOURCE=' #define _GNU_SOURCE #include #include #include #include #include #include typedef int (*orig_open_f_type)(const char *pathname, int flags, mode_t mode); int open(const char *pathname, int flags, ...) { va_list valist; mode_t mode; static orig_open_f_type orig_open = NULL; if (orig_open == NULL) orig_open = (orig_open_f_type)dlsym(RTLD_NEXT, "open"); flags &= ~O_NOATIME; if (flags & (O_CREAT | O_TMPFILE)) { va_start(valist, flags); mode = va_arg(valist, mode_t); va_end(valist); } return orig_open(pathname, flags, mode); } ' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Include shipped libgcrypt.so.11 on Debian # Use the system-provided libraries on Arch Linux and Gentoo case "$(option_value 'package')" in ('deb') CONTENT_LIBS_BIN_PATH="$(content_path_default)/i386/lib/i386-linux-gnu" CONTENT_LIBS_BIN_FILES=' libgcrypt.so.11 libgcrypt.so.11.7.0' ;; (*) PKG_BIN_DEPENDENCIES_LIBRARIES="$(dependencies_list_native_libraries 'PKG_BIN') libgcrypt.so.11" ;; esac # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-warhammer-40k-rogue-trader.sh0000700000000000000000000003306514471751340017132 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Warhammer 40k: Rogue Trader # send your bug reports to bugs@dotslashplay.it ### script_version=20250306.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='warhammer-40k-rogue-trader' GAME_NAME='Warhammer 40,000: Rogue Trader' ARCHIVE_BASE_6_NAME='setup_warhammer_40000_rogue_trader_windows_1.3.2.13_release_(80103).exe' ARCHIVE_BASE_6_MD5='45d3f481b2fb210a843334a712554958' ARCHIVE_BASE_6_TYPE='innosetup' ARCHIVE_BASE_6_PART1_NAME='setup_warhammer_40000_rogue_trader_windows_1.3.2.13_release_(80103)-1.bin' ARCHIVE_BASE_6_PART1_MD5='eda89a11f948f200f4c56237285fb9b9' ARCHIVE_BASE_6_PART2_NAME='setup_warhammer_40000_rogue_trader_windows_1.3.2.13_release_(80103)-2.bin' ARCHIVE_BASE_6_PART2_MD5='8949a2fc4b96b54c2307e4764843b772' ARCHIVE_BASE_6_PART3_NAME='setup_warhammer_40000_rogue_trader_windows_1.3.2.13_release_(80103)-3.bin' ARCHIVE_BASE_6_PART3_MD5='a91cfd8b31c9b6d70e925dd0a9be15ef' ARCHIVE_BASE_6_PART4_NAME='setup_warhammer_40000_rogue_trader_windows_1.3.2.13_release_(80103)-4.bin' ARCHIVE_BASE_6_PART4_MD5='2bc3bd62513a295c5b7273458cff6f6d' ARCHIVE_BASE_6_PART5_NAME='setup_warhammer_40000_rogue_trader_windows_1.3.2.13_release_(80103)-5.bin' ARCHIVE_BASE_6_PART5_MD5='4f7a9191151f5c901ebca190e181faa9' ARCHIVE_BASE_6_PART6_NAME='setup_warhammer_40000_rogue_trader_windows_1.3.2.13_release_(80103)-6.bin' ARCHIVE_BASE_6_PART6_MD5='a26289180a5296bb2f0f3eea4cb3f615' ARCHIVE_BASE_6_PART7_NAME='setup_warhammer_40000_rogue_trader_windows_1.3.2.13_release_(80103)-7.bin' ARCHIVE_BASE_6_PART7_MD5='1a48f99811600d78a2dfe86956bdf5e8' ARCHIVE_BASE_6_PART8_NAME='setup_warhammer_40000_rogue_trader_windows_1.3.2.13_release_(80103)-8.bin' ARCHIVE_BASE_6_PART8_MD5='246389293503a141c111471c3a4ba35f' ARCHIVE_BASE_6_SIZE='37045414' ARCHIVE_BASE_6_VERSION='1.3.2.13-gog80103' ARCHIVE_BASE_6_URL='https://www.gog.com/game/warhammer_40000_rogue_trader' ARCHIVE_BASE_5_NAME='setup_warhammer_40000_rogue_trader_windows_1.3.1.11_release_(79404).exe' ARCHIVE_BASE_5_MD5='71407e5f100c9afb88d8a876acbe51b7' ARCHIVE_BASE_5_TYPE='innosetup' ARCHIVE_BASE_5_PART1_NAME='setup_warhammer_40000_rogue_trader_windows_1.3.1.11_release_(79404)-1.bin' ARCHIVE_BASE_5_PART1_MD5='451f0a5aac0a3da0c9e8fa3979eff824' ARCHIVE_BASE_5_PART2_NAME='setup_warhammer_40000_rogue_trader_windows_1.3.1.11_release_(79404)-2.bin' ARCHIVE_BASE_5_PART2_MD5='14fb662df8cd6819ddfce0450c8ec36a' ARCHIVE_BASE_5_PART3_NAME='setup_warhammer_40000_rogue_trader_windows_1.3.1.11_release_(79404)-3.bin' ARCHIVE_BASE_5_PART3_MD5='f80074c63d24b5520ec88654285c5468' ARCHIVE_BASE_5_PART4_NAME='setup_warhammer_40000_rogue_trader_windows_1.3.1.11_release_(79404)-4.bin' ARCHIVE_BASE_5_PART4_MD5='48c37e52d4c3427aed8b6bd91620bcf9' ARCHIVE_BASE_5_PART5_NAME='setup_warhammer_40000_rogue_trader_windows_1.3.1.11_release_(79404)-5.bin' ARCHIVE_BASE_5_PART5_MD5='bc344f584140b3f6d667d9e879cc8fcc' ARCHIVE_BASE_5_PART6_NAME='setup_warhammer_40000_rogue_trader_windows_1.3.1.11_release_(79404)-6.bin' ARCHIVE_BASE_5_PART6_MD5='621b0d6aa656fb9a9d4e996b11f36d3e' ARCHIVE_BASE_5_PART7_NAME='setup_warhammer_40000_rogue_trader_windows_1.3.1.11_release_(79404)-7.bin' ARCHIVE_BASE_5_PART7_MD5='f4824d1c931dab3d9e03d18fda2154c1' ARCHIVE_BASE_5_PART8_NAME='setup_warhammer_40000_rogue_trader_windows_1.3.1.11_release_(79404)-8.bin' ARCHIVE_BASE_5_PART8_MD5='f7bb783d1b27594b3628838afe9db6d2' ARCHIVE_BASE_5_SIZE='37048733' ARCHIVE_BASE_5_VERSION='1.3.1.11-gog79404' ARCHIVE_BASE_4_NAME='setup_warhammer_40000_rogue_trader_windows_1.3.1.6_release_(78738).exe' ARCHIVE_BASE_4_MD5='13a67e2d41eaa13be8b5b029f5689960' ARCHIVE_BASE_4_TYPE='innosetup' ARCHIVE_BASE_4_PART1_NAME='setup_warhammer_40000_rogue_trader_windows_1.3.1.6_release_(78738)-1.bin' ARCHIVE_BASE_4_PART1_MD5='dd82d3952855dccbacea503ecb474d29' ARCHIVE_BASE_4_PART2_NAME='setup_warhammer_40000_rogue_trader_windows_1.3.1.6_release_(78738)-2.bin' ARCHIVE_BASE_4_PART2_MD5='7e9d9ec0ed8b3464b3bc69b1b4da9cac' ARCHIVE_BASE_4_PART3_NAME='setup_warhammer_40000_rogue_trader_windows_1.3.1.6_release_(78738)-3.bin' ARCHIVE_BASE_4_PART3_MD5='cea9076d2ca033c8c19d0ae430e1e360' ARCHIVE_BASE_4_PART4_NAME='setup_warhammer_40000_rogue_trader_windows_1.3.1.6_release_(78738)-4.bin' ARCHIVE_BASE_4_PART4_MD5='511ea6681bc8bdc30b2fbcecebc0eb93' ARCHIVE_BASE_4_PART5_NAME='setup_warhammer_40000_rogue_trader_windows_1.3.1.6_release_(78738)-5.bin' ARCHIVE_BASE_4_PART5_MD5='a14376472e60896a5df65ee827f6b44e' ARCHIVE_BASE_4_PART6_NAME='setup_warhammer_40000_rogue_trader_windows_1.3.1.6_release_(78738)-6.bin' ARCHIVE_BASE_4_PART6_MD5='dde090355aa02688b2221654d28d578d' ARCHIVE_BASE_4_PART7_NAME='setup_warhammer_40000_rogue_trader_windows_1.3.1.6_release_(78738)-7.bin' ARCHIVE_BASE_4_PART7_MD5='ce048a3df557b10ec1b9aed3829d4a01' ARCHIVE_BASE_4_PART8_NAME='setup_warhammer_40000_rogue_trader_windows_1.3.1.6_release_(78738)-8.bin' ARCHIVE_BASE_4_PART8_MD5='2c92fb4be98fd9b1dd1df64d1054aa92' ARCHIVE_BASE_4_SIZE='37053756' ARCHIVE_BASE_4_VERSION='1.3.1.6-gog78738' ARCHIVE_BASE_3_NAME='setup_warhammer_40000_rogue_trader_windows_1.2.1.26_release_(77703).exe' ARCHIVE_BASE_3_MD5='02a4073b04dbbf73724860397b66af7f' ARCHIVE_BASE_3_TYPE='innosetup' ARCHIVE_BASE_3_PART1_NAME='setup_warhammer_40000_rogue_trader_windows_1.2.1.26_release_(77703)-1.bin' ARCHIVE_BASE_3_PART1_MD5='dc8e9b260bbc886a11f6994d61bdbb46' ARCHIVE_BASE_3_PART2_NAME='setup_warhammer_40000_rogue_trader_windows_1.2.1.26_release_(77703)-2.bin' ARCHIVE_BASE_3_PART2_MD5='65edfab770311c2d7b840f374628b3da' ARCHIVE_BASE_3_PART3_NAME='setup_warhammer_40000_rogue_trader_windows_1.2.1.26_release_(77703)-3.bin' ARCHIVE_BASE_3_PART3_MD5='6627554f24158c5b0650c58f9a95395e' ARCHIVE_BASE_3_PART4_NAME='setup_warhammer_40000_rogue_trader_windows_1.2.1.26_release_(77703)-4.bin' ARCHIVE_BASE_3_PART4_MD5='4a30eeb23fc592041127e6615ce65bcf' ARCHIVE_BASE_3_PART5_NAME='setup_warhammer_40000_rogue_trader_windows_1.2.1.26_release_(77703)-5.bin' ARCHIVE_BASE_3_PART5_MD5='d249a8e0769661359b5d0467a7fb065b' ARCHIVE_BASE_3_PART6_NAME='setup_warhammer_40000_rogue_trader_windows_1.2.1.26_release_(77703)-6.bin' ARCHIVE_BASE_3_PART6_MD5='067db90eec212272951f04324b5883f4' ARCHIVE_BASE_3_PART7_NAME='setup_warhammer_40000_rogue_trader_windows_1.2.1.26_release_(77703)-7.bin' ARCHIVE_BASE_3_PART7_MD5='ded5b6136305429254afcbc8f82db455' ARCHIVE_BASE_3_SIZE='36237881' ARCHIVE_BASE_3_VERSION='1.2.1.26-gog77703' ARCHIVE_BASE_2_NAME='setup_warhammer_40000_rogue_trader_windows_1.2.0.30_release_(74506).exe' ARCHIVE_BASE_2_MD5='28277602abf5481ed6ef4f58c5769d17' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_PART1_NAME='setup_warhammer_40000_rogue_trader_windows_1.2.0.30_release_(74506)-1.bin' ARCHIVE_BASE_2_PART1_MD5='2ac1b1e04feacc93d734a4f8d409d549' ARCHIVE_BASE_2_PART2_NAME='setup_warhammer_40000_rogue_trader_windows_1.2.0.30_release_(74506)-2.bin' ARCHIVE_BASE_2_PART2_MD5='93d73c1420af6a771773c2be6ca52d16' ARCHIVE_BASE_2_PART3_NAME='setup_warhammer_40000_rogue_trader_windows_1.2.0.30_release_(74506)-3.bin' ARCHIVE_BASE_2_PART3_MD5='66435951336c29903538ac094f9b1e3d' ARCHIVE_BASE_2_PART4_NAME='setup_warhammer_40000_rogue_trader_windows_1.2.0.30_release_(74506)-4.bin' ARCHIVE_BASE_2_PART4_MD5='0256c674ed680b53b0afd83c58ad803d' ARCHIVE_BASE_2_PART5_NAME='setup_warhammer_40000_rogue_trader_windows_1.2.0.30_release_(74506)-5.bin' ARCHIVE_BASE_2_PART5_MD5='e9b1a1a80da7efa72dd98ed0c526c3c9' ARCHIVE_BASE_2_PART6_NAME='setup_warhammer_40000_rogue_trader_windows_1.2.0.30_release_(74506)-6.bin' ARCHIVE_BASE_2_PART6_MD5='f0ff7ff188125429a042d8a867c1811a' ARCHIVE_BASE_2_PART7_NAME='setup_warhammer_40000_rogue_trader_windows_1.2.0.30_release_(74506)-7.bin' ARCHIVE_BASE_2_PART7_MD5='4ec080aace5f303e6232464617807820' ARCHIVE_BASE_2_SIZE='36502107' ARCHIVE_BASE_2_VERSION='1.2.0.30-gog74506' ARCHIVE_BASE_1_NAME='setup_warhammer_40000_rogue_trader_windows_1.1.58.505_release_(72681).exe' ARCHIVE_BASE_1_MD5='4dacb9055aefe3aba3c0b9d69f1e7bbe' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_warhammer_40000_rogue_trader_windows_1.1.58.505_release_(72681)-1.bin' ARCHIVE_BASE_1_PART1_MD5='0992b9315611a76db8eb3ec16af01437' ARCHIVE_BASE_1_PART2_NAME='setup_warhammer_40000_rogue_trader_windows_1.1.58.505_release_(72681)-2.bin' ARCHIVE_BASE_1_PART2_MD5='8390e0d884653541edf3d489cf069aab' ARCHIVE_BASE_1_PART3_NAME='setup_warhammer_40000_rogue_trader_windows_1.1.58.505_release_(72681)-3.bin' ARCHIVE_BASE_1_PART3_MD5='0c8dcda2d01a9db6d48750213454ae46' ARCHIVE_BASE_1_PART4_NAME='setup_warhammer_40000_rogue_trader_windows_1.1.58.505_release_(72681)-4.bin' ARCHIVE_BASE_1_PART4_MD5='3857bdce47b4d311c1712eb8bf96e76d' ARCHIVE_BASE_1_PART5_NAME='setup_warhammer_40000_rogue_trader_windows_1.1.58.505_release_(72681)-5.bin' ARCHIVE_BASE_1_PART5_MD5='498fd37ca55b4082a5620e0892ef7e85' ARCHIVE_BASE_1_PART6_NAME='setup_warhammer_40000_rogue_trader_windows_1.1.58.505_release_(72681)-6.bin' ARCHIVE_BASE_1_PART6_MD5='c471fa41f77b39003e4cbcc5177636e2' ARCHIVE_BASE_1_PART7_NAME='setup_warhammer_40000_rogue_trader_windows_1.1.58.505_release_(72681)-7.bin' ARCHIVE_BASE_1_PART7_MD5='1d9ee45fd389fac0a34c9154f52068cf' ARCHIVE_BASE_1_PART8_NAME='setup_warhammer_40000_rogue_trader_windows_1.1.58.505_release_(72681)-8.bin' ARCHIVE_BASE_1_PART8_MD5='d36f057b4f24c2c4f0a6fe8341d258f4' ARCHIVE_BASE_1_SIZE='37037198' ARCHIVE_BASE_1_VERSION='1.1.58.505-gog72681' ARCHIVE_BASE_1_URL='https://www.gog.com/game/warhammer_40000_rogue_trader' ARCHIVE_BASE_0_NAME='setup_warhammer_40000_rogue_trader_windows_1.0.89.426_modded_(70073).exe' ARCHIVE_BASE_0_MD5='adecb272b3abcafcdadcc661fd0fa16a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_warhammer_40000_rogue_trader_windows_1.0.89.426_modded_(70073)-1.bin' ARCHIVE_BASE_0_PART1_MD5='750087be34c3e067e8f117cb75abf01b' ARCHIVE_BASE_0_PART2_NAME='setup_warhammer_40000_rogue_trader_windows_1.0.89.426_modded_(70073)-2.bin' ARCHIVE_BASE_0_PART2_MD5='3ac14fc89b7770aaa91ace86b5d77fa0' ARCHIVE_BASE_0_PART3_NAME='setup_warhammer_40000_rogue_trader_windows_1.0.89.426_modded_(70073)-3.bin' ARCHIVE_BASE_0_PART3_MD5='9d75b578aff00669425099c77d39c946' ARCHIVE_BASE_0_PART4_NAME='setup_warhammer_40000_rogue_trader_windows_1.0.89.426_modded_(70073)-4.bin' ARCHIVE_BASE_0_PART4_MD5='4873f86957ee03b4c6d5a9b467300d43' ARCHIVE_BASE_0_PART5_NAME='setup_warhammer_40000_rogue_trader_windows_1.0.89.426_modded_(70073)-5.bin' ARCHIVE_BASE_0_PART5_MD5='e63da686a49e98310fdc26a426d94fd2' ARCHIVE_BASE_0_PART6_NAME='setup_warhammer_40000_rogue_trader_windows_1.0.89.426_modded_(70073)-6.bin' ARCHIVE_BASE_0_PART6_MD5='71395b57d293fabd7e2e930523cbf909' ARCHIVE_BASE_0_PART7_NAME='setup_warhammer_40000_rogue_trader_windows_1.0.89.426_modded_(70073)-7.bin' ARCHIVE_BASE_0_PART7_MD5='e172106a1819cf3ff50229d01986ebbd' ARCHIVE_BASE_0_PART8_NAME='setup_warhammer_40000_rogue_trader_windows_1.0.89.426_modded_(70073)-8.bin' ARCHIVE_BASE_0_PART8_MD5='cd37f515a987c38b8bbef29c073f29f9' ARCHIVE_BASE_0_SIZE='37034784' ARCHIVE_BASE_0_VERSION='1.0.89.426-gog70073' UNITY3D_NAME='wh40krt' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_DATA_BUNDLES_SCENES_1_FILES=' bundles/[a-p]*.scenes' CONTENT_GAME_DATA_BUNDLES_SCENES_2_FILES=' bundles/*.scenes' CONTENT_GAME_DATA_BUNDLES_UNIT_FILES=' bundles/*.unit' CONTENT_GAME_DATA_BUNDLES_FILES=' bundles' CONTENT_GAME0_DATA_FILES=' whrtmodificationtemplate-release.rar' ## While the game works with the default wined3d renderer, ## performances are much better when using dxvk instead. WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Owlcat Games/Warhammer 40000 Rogue Trader' PACKAGES_LIST=' PKG_BIN PKG_DATA_BUNDLES_SCENES_1 PKG_DATA_BUNDLES_SCENES_2 PKG_DATA_BUNDLES_UNIT PKG_DATA_BUNDLES PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_DATA_BUNDLES' PKG_DATA_BUNDLES_ID="${PKG_DATA_ID}-bundles" PKG_DATA_BUNDLES_DESCRIPTION="$PKG_DATA_DESCRIPTION - bundles" PKG_DATA_BUNDLES_DEPENDENCIES_SIBLINGS=' PKG_DATA_BUNDLES_SCENES_1 PKG_DATA_BUNDLES_SCENES_2 PKG_DATA_BUNDLES_UNIT' PKG_DATA_BUNDLES_SCENES_ID="${PKG_DATA_BUNDLES_ID}-scenes" PKG_DATA_BUNDLES_SCENES_1_ID="${PKG_DATA_BUNDLES_SCENES_ID}-1" PKG_DATA_BUNDLES_SCENES_2_ID="${PKG_DATA_BUNDLES_SCENES_ID}-2" PKG_DATA_BUNDLES_SCENES_DESCRIPTION="$PKG_DATA_BUNDLES_DESCRIPTION - scenes" PKG_DATA_BUNDLES_SCENES_1_DESCRIPTION="$PKG_DATA_BUNDLES_SCENES_DESCRIPTION - 1" PKG_DATA_BUNDLES_SCENES_2_DESCRIPTION="$PKG_DATA_BUNDLES_SCENES_DESCRIPTION - 2" PKG_DATA_BUNDLES_UNIT_ID="${PKG_DATA_BUNDLES_ID}-unit" PKG_DATA_BUNDLES_UNIT_DESCRIPTION="$PKG_DATA_BUNDLES_DESCRIPTION - unit" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Drop Steam-specific stuff. ## --force is used because it is not included in all releases. rm --force --recursive 'steam workshop tool' ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-ys-chronicles-1.sh0000755000000000000000000000515314471751340015104 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Ys Chronicles: Ancient Ys Vanished: Omen # send your bug reports to bugs@dotslashplay.it ### script_version=20250803.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='ys-chronicles-1' GAME_NAME='Ys Chronicles: Ancient Ys Vanished: Omen' ARCHIVE_BASE_1_NAME='setup_ys_i_2022-01-03_(52678).exe' ARCHIVE_BASE_1_MD5='2d49aaad12f0e088070517cfdfe4b77f' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='816457' ARCHIVE_BASE_1_VERSION='1.1.0-gog52678' ARCHIVE_BASE_1_URL='https://www.gog.com/game/ys_i_ii_chronicles' ARCHIVE_BASE_0_NAME='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' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='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_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/mpeg, systemstream=(boolean)true, mpegversion=(int)1' ## Ensure easy upgrade from pre-20250508.2 packages. PKG_BIN_PROVIDES="${PKG_BIN_PROVIDES:-} ys-1" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' ## Ensure easy upgrade from pre-20250508.2 packages. PKG_DATA_PROVIDES="${PKG_DATA_PROVIDES:-} ys-1-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 tests/check-license.sh0000700000000000000000000000064314471751340013751 0ustar rootroot#!/bin/sh set -o errexit CONTRIBUTORS_LIST=$( grep 'SPDX-FileCopyrightText' games/* | cut --delimiter=' ' --fields=5- | sort --unique ) CONTRIBUTOR_MISSING=0 while read contributor; do grep --quiet "$contributor" LICENSE || { printf 'Missing contributor in LICENSE: %s\n' "$contributor" && CONTRIBUTOR_MISSING=1 } done << EOL $(printf '%s\n' "$CONTRIBUTORS_LIST") EOL test $CONTRIBUTOR_MISSING -eq 0 LICENSE0000644000000000000000000000374314471751340010576 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 © 2018 BetaRays Copyright © 2018 Phil Morrell Copyright © 2018 VA Copyright © 2020 Jacek Szafarkiewicz Copyright © 2020 HS-157 Copyright © 2020 Hoël Bézier Copyright © 2020 berru Copyright © 2021 dany_wilde Copyright © 2021 Christian Stalp Copyright © 2023 Fabien Givors All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. This software is provided by the copyright holders and contributors "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the copyright holder or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage. Makefile0000600000000000000000000000501614471751340011214 0ustar rootrootcollection_name = 45_rpg UID := $(shell id --user) ifeq ($(UID),0) prefix = /usr/local datadir = $(prefix)/share/games else ifeq ($(XDG_DATA_HOME),) XDG_DATA_HOME := $(HOME)/.local/share endif prefix = $(XDG_DATA_HOME) datadir = $(prefix) endif collections_path = $(DESTDIR)$(datadir)/play.it/collections # Install the game scripts .PHONY: install uninstall install: install -D --mode=755 --target-directory=$(collections_path)/$(collection_name) games/* uninstall: rm $(collections_path)/$(collection_name)/play-*.sh rmdir -p --ignore-fail-on-non-empty $(collections_path)/$(collection_name) # Generate tarballs, for easier packaging .PHONY: dist ## The generated tarball is signed with gpg by default, ## NO_SIGN should be set to a non-0 value to skip the signature. NO_SIGN := 0 dist: DATE := $(shell date +%F) dist: TARBALL := $(collection_name)_$(DATE).tar.gz dist: TAR_OPTIONS := --sort=name --mtime=2023-08-25 --owner=root:0 --group=root:0 --use-compress-program='gzip --no-name' dist: games/*.sh tests/check-license.sh LICENSE Makefile README.md mkdir --parents dist LC_ALL=C tar cf dist/$(TARBALL) $(TAR_OPTIONS) games/*.sh tests/check-license.sh LICENSE Makefile README.md ifeq ($(NO_SIGN),0) rm --force dist/$(TARBALL).asc gpg --armor --detach-sign dist/$(TARBALL) endif # Run license check, to ensure no contributor is missing .PHONY: check check-license check: check-license check-license: ./tests/check-license.sh # Run syntax checks, relying on ShellCheck GAME_SCRIPTS := $(wildcard games/play-*.sh) GAME_SCRIPTS_TESTS := $(addprefix shellcheck_, $(GAME_SCRIPTS)) .PHONY: $(GAME_SCRIPTS_TESTS) check: $(GAME_SCRIPTS_TESTS) $(GAME_SCRIPTS_TESTS): SHELLCHECK_SOURCES := /usr/share/games/play.it:/usr/share/play.it ## This is a unicode quote. Delete and retype it (or ignore/doublequote for literal). $(GAME_SCRIPTS_TESTS): SHELLCHECK_EXCLUDE += --exclude=SC1112 ## Expressions don't expand in single quotes, use double quotes for that. $(GAME_SCRIPTS_TESTS): SHELLCHECK_EXCLUDE += --exclude=SC2016 ## foo appears unused. Verify it or export it. $(GAME_SCRIPTS_TESTS): SHELLCHECK_EXCLUDE += --exclude=SC2034 ## Don't use variables in the printf format string. Use printf '..%s..' "$foo". $(GAME_SCRIPTS_TESTS): SHELLCHECK_EXCLUDE += --exclude=SC2059 ## In POSIX sh, 'local' is undefined. $(GAME_SCRIPTS_TESTS): SHELLCHECK_EXCLUDE += --exclude=SC3043 $(GAME_SCRIPTS_TESTS): shellcheck_%: % shellcheck --extended-analysis=false --external-sources --source-path=$(SHELLCHECK_SOURCES) $(SHELLCHECK_EXCLUDE) $< README.md0000644000000000000000000001740514471751340011050 0ustar rootroot# ./play.it role-playing games collection The codebase is maintained at [https://git.dotslashplay.it/games-rpg/] Bug reports should be sent to [bugs@dotslashplay.it], and support requests to [requests@dotslashplay.it] [https://git.dotslashplay.it/games-rpg/]: https://git.dotslashplay.it/games-rpg/ [bugs@dotslashplay.it]: mailto:bugs@dotslashplay.it [requests@dotslashplay.it]: mailto:requests@dotslashplay.it ## Description ./play.it is a free software building native packages from installers for Windows or Linux, mainly those sold by stores focusing on DRM-free games distribution. The goal is that a game installed via ./play.it is indistinguishable from a game installed via the official repositories of your favourite distribution. This specific collection includes only role-playing games. These games revolve around character development. Common features include world exploration, tactical or action-based battles, and a deep story. Both turn-based and real-time games are included. ## Installation ### Distributions providing ./play.it The following distributions provide installation instructions in their official documentation: - [Debian] - [Gentoo] - [Ubuntu] (French article) [Debian]: https://wiki.debian.org/Games/PlayIt#Installation [Gentoo]: https://wiki.gentoo.org/wiki/Play.it#Installation [Ubuntu]: https://doc.ubuntu-fr.org/play.it#installation In most cases, these instructions should work in the same way for derivatives of these distributions. ### Installation from git If your distribution does not already have a package for this ./play.it collection, you can install it from this git repository. ``` git clone --branch main --depth 1 https://git.dotslashplay.it/games-rpg play.it-rpg.git cd play.it-rpg.git make install ``` ## Usage Usage instructions are provided on the main ./play.it repository: [./play.it: Installer for DRM-free commercial games — Usage] [./play.it: Installer for DRM-free commercial games — Usage]: https://git.dotslashplay.it/scripts/about/#usage ## Contributing ### First contribution There is no real rule for your first contribution. You can host your updated code anywhere you like and contact us via any way described in the [Contact information] section below. It is OK to expose your updated code through GitHub or GitLab.com if you have nothing better at hand, but we would be thankful if you would instead use some hosting outside of these big silos. [Contact information]: #contact-information We do not enforce any workflow like merge/pull requests or any such thing. We are interested in the result of your work, not in how you got to it. So shatter your shackles, and for once take pleasure in working *however you like*! You are not even required to use git if you do not know or do not like this tool. Please try to follow these simple guidelines, and your contribution is probably going to be accepted quickly: - Run `make check` before submitting your code, to ensure you did not break anything by accident; - Use tabs for indentation. No real developer would ever indent anything with spaces. ### Regular contributions If you keep contributing on a more regular basis (sending 3 patches in the same year would already make you a regular) we can grant you direct write access to the repositories hosted at git.dotslashplay.it. This is not mandatory, if for some reason you can not or do not want to work with git you can simply keep following the "First contribution" guidelines, and forget about this whole "Regular contributions" section. To grant you such an access we need nothing but a public SSH key, that you can send us through any way described in the [Contact information] section below. [Contact information]: #contact-information Once you have been granted access, you should add the following to your local SSH configuration: ``` Host git.dotslashplay.it Port 1962 User gitolite3 ``` You should then update the remote of your local repository, with the following command (assuming a remote named "upstream"): ``` git remote set-url --push upstream ssh://git.dotslashplay.it/games-rpg ``` Since these repositories are worked on by several people, there are a couple extra guidelines that you should follow: - Your work should always be pushed to a dedicated branch, never on the main branch; - Game script updates, including bug fixes, should be pushed to branches named with a "update/" prefix; - Addition of new game scripts should be pushed to branches named with a "new/" prefix; - You are allowed to push code to branches opened by other contributors, but please communicate with them if you plan to do so; - Force push and branches deletion are not allowed, if you want a branch to be deleted please ask us to do it for you. ## Supported games - A House of Many Doors - Akalabeth: World of Doom - Anima: Gate of Memories - Arcanum: Of Steamworks and Magick Obscura - Asura - Baldur's Gate series: - Baldur's Gate, supported in another collection: [https://git.vv221.fr/play.it/games-vv221/about/] - Baldur's Gate 2, supported in another collection: [https://git.vv221.fr/play.it/games-vv221/about/] - Baldur's Gate 3 - Book of Demons - Cat Quest series: - Cat Quest - Cat Quest 2 - Chained Echoes - Children of Morta - Citizen Sleeper - Convoy - Cornerstone: The Song of Tyrim - Costume Quest - CrossCode - Darksiders 2 - Deep Sky Derelicts - Deltarune - Dex - Dicey Dungeons - Din's Curse - Divinity series: - Divine Divinity - Divinity: Original Sin - Divinity: Original Sin 2 - Dragon Age: Origins - Dust: An Elysian Tail - Earthlock - Eschalon: Book 1 - Everspace - Evoland series: - Evoland - Evoland 2 - Fallen London setting: - Sunless Sea, supported in another collection: [https://git.vv221.fr/play.it/games-vv221/about/] - Sunless Skies - Fallout series: - Fallout - Fallout 2 - Fallout: New Vegas - Forced - Gamedec - Ghost of a Tale - Hand of Fate - Haven - Heroine's Quest: The Herald of Ragnarok - Horizon Zero Dawn - Ikenfell - Jade Empire - Kingdom Come: Deliverance - Kingsway - Knights of Pen and Paper - Kyn - Legend of Grimrock - Lenna's Inception - Lords of Xulima - Minit - Monster Sanctuary - Moon Hunters - My Time at Portia - Neurodeck: Psychological Deckbuilder - Neverwinter Nights - Ocean's Heart - Paper Sorcerer - Pier Solar and the Great Architects - Pokemon Insurgence - Rebel Galaxy - Slay the Spire - Sovereign Syndicate - Starship Traveller - SteamWorld Quest - Stories: The Path of Destinies - System Shock 2 - Tangledeep - The Bard's Tale 4 - The Count Lucanor - The Elder Scrolls series: - The Elder Scrolls: Arena - The Elder Scrolls 2: Daggerfall - The Elder Scrolls 3: Morrowind, supported in another collection: [https://git.vv221.fr/play.it/games-vv221/about/] - The Elder Scrolls 5: Skyrim - The Incredible Adventures of Van Helsing - The Lamplighters League - The Swords of Ditto - The Temple of Elemental Evil - The Warlock of Firetop Mountain - The Witcher series: - The Witcher, supported in another collection: [https://git.vv221.fr/play.it/games-vv221/about/] - The Witcher 2 - The Witcher 3 - Ultima 4 - Undertale - unEpic - Urtuk: The Desolation - Vagrus: The Riven Realms - Vambrace: Cold Soul - Vampire: The Masquerade - Redemption - Vaporum - Victor Vran - Warhammer 40k: Rogue Trader - Ys Chronicles: Ancient Ys Vanished: Omen [https://git.vv221.fr/play.it/games-vv221/about/]: https://git.vv221.fr/play.it/games-vv221/about/ ## Contact information ### IRC channel Some ./play.it developers and users can be reached on IRC, channel is `#play.it` on network `irc.oftc.net`. The main language on this IRC channel is English, but most of us can speak French too. ### E-mail A contact e-mail for feedback can usually be found in each ./play.it game script, as well as in the library. Open one of these files with any text editor to see the contact e-mail.