games/play-7-billion-humans.sh0000750000000000000000000000436514471751340015250 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # 7 Billion Humans # send your bug reports to vv221@dotslashplay.it ### script_version=20250429.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='7-billion-humans' GAME_NAME='7 Billion Humans' ARCHIVE_BASE_0_NAME='7_billion_humans_1_0_32487_23774.sh' ARCHIVE_BASE_0_MD5='3d42952a6b9329f1c64bda00b05c4afb' ARCHIVE_BASE_0_SIZE='160000' ARCHIVE_BASE_0_VERSION='1.0.32487-gog23774' ARCHIVE_BASE_0_URL='https://www.gog.com/game/7_billion_humans' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN64_FILES=' 7BillionHumans.bin.x86_64' CONTENT_GAME_BIN32_FILES=' 7BillionHumans.bin.x86' CONTENT_GAME_DATA_FILES=' shaders resource.pak icon.png' CONTENT_DOC_DATA_FILES=' LICENSE.txt README.linux' APP_MAIN_EXE_BIN64='7BillionHumans.bin.x86_64' APP_MAIN_EXE_BIN32='7BillionHumans.bin.x86' APP_MAIN_ICON='icon.png' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 libSDL2-2.0.so.0 libstdc++.so.6 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_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-a-dance-of-fire-and-ice.sh0000750000000000000000000000433414471751340016272 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # A Dance of Fire and Ice # send your bug reports to vv221@dotslashplay.it ### script_version=20241021.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='a-dance-of-fire-and-ice' GAME_NAME='A Dance of Fire and Ice' ARCHIVE_BASE_1_NAME='a-dance-of-fire-and-ice-linux.zip' ARCHIVE_BASE_1_MD5='adcffda56ec76b5ae8c3ba89e9b9bb93' ARCHIVE_BASE_1_SIZE='2069741' ARCHIVE_BASE_1_VERSION='2.6.3-itch.2023.12.16' ARCHIVE_BASE_1_URL='https://fizzd.itch.io/a-dance-of-fire-and-ice' ARCHIVE_BASE_0_NAME='a-dance-of-fire-and-ice-linux.zip' ARCHIVE_BASE_0_MD5='caf90b5416730395963e26aeb76c1155' ARCHIVE_BASE_0_SIZE='965475' ARCHIVE_BASE_0_VERSION='2.5.0-itch.2023.06.20' UNITY3D_NAME='ADanceOfFireAndIce' ## The game will crash on launch if libsteam_api.so is not available. UNITY3D_PLUGINS=' libadofaipulse.so libStandaloneFileBrowser.so libsteam_api.so' CONTENT_PATH_DEFAULT='.' 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 libpulse.so.0 librt.so.1 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-age-of-mythology.sh0000750000000000000000000015242214471751340015350 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2021 Hoël Bézier set -o errexit ### # Age of Mythology # send your bug reports to vv221@dotslashplay.it ### script_version=20250605.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='age-of-mythology' GAME_NAME='Age of Mythology' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" ARCHIVE_BASE_DEMO_0_NAME='mtrial.exe' ARCHIVE_BASE_DEMO_0_MD5='c475268b774c0fd469802e915b3c3803' ARCHIVE_BASE_DEMO_0_TYPE='cabinet' ARCHIVE_BASE_DEMO_0_SIZE='550000' ARCHIVE_BASE_DEMO_0_VERSION='1.0-archiveorg1' ARCHIVE_BASE_DEMO_0_URL='https://archive.org/details/AgeOfMythologyDemo' CONTENT_PATH_DEFAULT='aom' CONTENT_GAME_BIN_FILES=' mp3dec.asi *.exe *.dll' CONTENT_GAME0_BIN_PATH='.' CONTENT_GAME0_BIN_FILES=' *.dll' CONTENT_FONTS_DATA_FILES=' arialuni.ttf gio_bk.ttf per_____.ttf' CONTENT_FONTS0_DATA_PATH='.' CONTENT_FONTS0_DATA_FILES=' georgiab.ttf georgiai.ttf georgia.ttf georgiaz.ttf' CONTENT_GAME_DATA_FILES=' ai anim avi data docs fonts gfxconfig god powers history models ppdata rm scenario sound startup textures trigger 10?? 20?? 30?? *.bmp' CONTENT_DOC_DATA_PATH='.' CONTENT_DOC_DATA_FILES=' *.rtf' USER_PERSISTENT_FILES=' startup/persistent.cfg rts3banglog.txt *.XMB *.xml .xs' USER_PERSISTENT_DIRECTORIES=' cameratracks default language savegame screenshots users' ## Without a virtual desktop, ## keyboard input is lost on loss of focus. WINE_VIRTUAL_DESKTOP='1600x1200' APP_MAIN_EXE='aom.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_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 ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Rename files with truncated names. mv 'gfxcon_1' 'gfxconfig' mv 'godpow_1' 'god powers' mv 'sound/cinema_1' 'sound/cinematics' mv 'sound/music/interf_1' 'sound/music/interface' mv '1028/dwin0000.dll' '1028/dwintl.dll' mv '1029/dwin0001.dll' '1029/dwintl.dll' mv '1030/dwin0002.dll' '1030/dwintl.dll' mv '1031/dwin0003.dll' '1031/dwintl.dll' mv '1031/msil0000.bin' '1031/msiloadr.bin' mv '1031/webl0000.bin' '1031/webloadr.bin' mv '1032/dwin0004.dll' '1032/dwintl.dll' mv '1033/dwin0005.dll' '1033/dwintl.dll' mv '1033/msil0001.bin' '1033/msiloadr.bin' mv '1033/webl0001.bin' '1033/webloadr.bin' mv '1035/dwin0006.dll' '1035/dwintl.dll' mv '1036/dwin0007.dll' '1036/dwintl.dll' mv '1036/msil0002.bin' '1036/msiloadr.bin' mv '1036/webl0002.bin' '1036/webloadr.bin' mv '1037/dwin0008.dll' '1037/dwintl.dll' mv '1038/dwin0009.dll' '1038/dwintl.dll' mv '1040/dwin000a.dll' '1040/dwintl.dll' mv '1040/msil0003.bin' '1040/msiloadr.bin' mv '1040/webl0003.bin' '1040/webloadr.bin' mv '1041/dwin000b.dll' '1041/dwintl.dll' mv '1041/msil0004.bin' '1041/msiloadr.bin' mv '1041/webl0004.bin' '1041/webloadr.bin' mv '1042/dwin000c.dll' '1042/dwintl.dll' mv '1042/msil0005.bin' '1042/msiloadr.bin' mv '1042/webl0005.bin' '1042/webloadr.bin' mv '1043/dwin000d.dll' '1043/dwintl.dll' mv '1044/dwin000e.dll' '1044/dwintl.dll' mv '1045/dwin000f.dll' '1045/dwintl.dll' mv '1046/dwin0010.dll' '1046/dwintl.dll' mv '1048/dwin0011.dll' '1048/dwintl.dll' mv '1049/dwin0012.dll' '1049/dwintl.dll' mv '1050/dwin0013.dll' '1050/dwintl.dll' mv '1051/dwin0014.dll' '1051/dwintl.dll' mv '1053/dwin0015.dll' '1053/dwintl.dll' mv '1054/dwin0016.dll' '1054/dwintl.dll' mv '1055/dwin0017.dll' '1055/dwintl.dll' mv '1060/dwin0018.dll' '1060/dwintl.dll' mv '2052/dwin0019.dll' '2052/dwintl.dll' mv '2052/msil0006.bin' '2052/msiloadr.bin' mv '2052/webl0006.bin' '2052/webloadr.bin' mv '2070/dwin001a.dll' '2070/dwintl.dll' mv '3076/dwin001b.dll' '3076/dwintl.dll' mv '3082/dwin001c.dll' '3082/dwintl.dll' mv '3082/msil0007.bin' '3082/msiloadr.bin' mv '3082/webl0007.bin' '3082/webloadr.bin' mv 'ai/ao9982_1.xs' 'ai/aomdefaultaiprogress.xs' mv 'ai/aomdef_1.xs' 'ai/aomdefaultai.xs' mv 'ai/aomdef_2.xs' 'ai/aomdefaultaieconomy.xs' mv 'ai/aomdef_3.xs' 'ai/aomdefaultaigodpowers.xs' mv 'ai/aomdef_4.xs' 'ai/aomdefaultaimilitary.xs' mv 'ai/defaul_1.xml' 'ai/defaultboom.xml' mv 'ai/defaul_2.xml' 'ai/defaultrandom.xml' mv 'ai/defaul_3.xml' 'ai/defaultrush.xml' mv 'ai/scn17a_1.xs' 'ai/scn17altp2.xs' mv 'ai/scn28p_1.xs' 'ai/scn28p234.xs' mv 'ai/scnlib_1.xs' 'ai/scn lib.xs' mv 'autopa_1.exe' 'autopatcher.exe' mv 'avi/aomlog_1.bik' 'avi/aom logo.bik' mv 'data/fimbul_1.lgt' 'data/fimbulwinter.lgt' mv 'data/ghostl_1.lgt' 'data/ghost lake.lgt' mv 'data/learnt_1.cpn' 'data/learn to play.cpn' mv 'data/mainca_1.cpn' 'data/main campaign.cpn' mv 'data/prword_1.xml' 'data/prwordlist.xml' mv 'docs/aomais_1.rtf' 'docs/aom ai script help file.rtf' mv 'docs/aomce__1.pdf' 'docs/aomce_egyptianqrc_en.pdf' mv 'docs/aomce__2.pdf' 'docs/aomce_greekqrc_en.pdf' mv 'docs/aomce__3.pdf' 'docs/aomce_norseqrc_en.pdf' mv 'docs/aom_in_1.pdf' 'docs/aom_ingamemanual.pdf' mv 'docs/aomran_1.rtf' 'docs/aom random map help file.rtf' mv 'docs/aomsce_1.rtf' 'docs/aom scenario editor faq.rtf' mv 'docs/aomsta_1.pdf' 'docs/aomstandard_manual_en.pdf' mv 'docs/troubl_1.rtf' 'docs/troubleshooting crashing issues.rtf' mv 'docs/troubl_2.rtf' 'docs/troubleshooting display problems.rtf' mv 'esocli_1.dll' 'esoclientdll.dll' mv 'fonts/arialu_1.msk' 'fonts/arial unicode ms.msk' mv 'fonts/courie_1.msk' 'fonts/courier new.msk' mv 'fonts/frizqu_1.msk' 'fonts/friz quadrata tt.msk' mv 'fonts/giovan_1.msk' 'fonts/giovanni book.msk' mv 'fonts/giovan_2.msk' 'fonts/giovanni test.msk' mv 'fonts/giovan_3.msk' 'fonts/giovanniitctt.msk' mv 'fonts/imeuis_1.xml' 'fonts/imeuisettings.xml' mv 'fonts/timesn_1.msk' 'fonts/times new roman.msk' mv 'gfxconfig/0x015d_1.gfx' 'gfxconfig/0x015d_number9.gfx' mv 'gfxconfig/0x0315_1.gfx' 'gfxconfig/0x0315_sis.gfx' mv 'gfxconfig/0x1002_1.gfx' 'gfxconfig/0x1002_ati.gfx' mv 'gfxconfig/0x100c_1.gfx' 'gfxconfig/0x100c_tseng.gfx' mv 'gfxconfig/0x1013_1.gfx' 'gfxconfig/0x1013_cirruslogic.gfx' mv 'gfxconfig/0x1023_1.gfx' 'gfxconfig/0x1023_trident.gfx' mv 'gfxconfig/0x1029_1.gfx' 'gfxconfig/0x1029_trident.gfx' mv 'gfxconfig/0x102b_1.gfx' 'gfxconfig/0x102b_matrox.gfx' mv 'gfxconfig/0x1039_1.gfx' 'gfxconfig/0x1039_sis.gfx' mv 'gfxconfig/0x104a_1.gfx' 'gfxconfig/0x104a_stmicroelectronics.gfx' mv 'gfxconfig/0x104c_1.gfx' 'gfxconfig/0x104c_3dlabs.gfx' mv 'gfxconfig/0x104e_1.gfx' 'gfxconfig/0x104e_oaktech.gfx' mv 'gfxconfig/0x10c8_1.gfx' 'gfxconfig/0x10c8_neomagic.gfx' mv 'gfxconfig/0x10d9_1.gfx' 'gfxconfig/0x10d9_3dfx.gfx' mv 'gfxconfig/0x10de_1.gfx' 'gfxconfig/0x10de_nvidia.gfx' mv 'gfxconfig/0x110b_1.gfx' 'gfxconfig/0x110b_chromatic.gfx' mv 'gfxconfig/0x1142_1.gfx' 'gfxconfig/0x1142_3dfx.gfx' mv 'gfxconfig/0x1163_1.gfx' 'gfxconfig/0x1163_rendition.gfx' mv 'gfxconfig/0x121a_1.gfx' 'gfxconfig/0x121a_3dfx.gfx' mv 'gfxconfig/0x12d2_1.gfx' 'gfxconfig/0x12d2_nvidia.gfx' mv 'gfxconfig/0x14af_1.gfx' 'gfxconfig/0x14af_guillemot.gfx' mv 'gfxconfig/0x3d3d_1.gfx' 'gfxconfig/0x3d3d_3dlabs.gfx' mv 'gfxconfig/0x5333_1.gfx' 'gfxconfig/0x5333_s3.gfx' mv 'gfxconfig/0x8086_1.gfx' 'gfxconfig/0x8086_intel.gfx' mv 'gfxconfig/cyberb_1.gfx' 'gfxconfig/cyberbladexp.gfx' mv 'gfxconfig/geforc_1.gfx' 'gfxconfig/geforce1and2.gfx' mv 'gfxconfig/mt40b6_1.tss' 'gfxconfig/mtlinearblendalphaemissivespecularfactor_nvidia.tss' mv 'gfxconfig/mt6b37_1.tss' 'gfxconfig/mtlinearblendalphaemissivespecularfactor.tss' mv 'gfxconfig/mt6db5_1.tss' 'gfxconfig/mtlinearblendinversealpha.tss' mv 'gfxconfig/mt81aa_1.tss' 'gfxconfig/mtlinearblend_nvidia.tss' mv 'gfxconfig/mt8378_1.tss' 'gfxconfig/mtlinearblendemissivespecularfactor.tss' mv 'gfxconfig/mta5c3_1.tss' 'gfxconfig/mtlinearblendemissivespecularfactor_nvidia.tss' mv 'gfxconfig/mtadda_1.tss' 'gfxconfig/mtaddalpha.tss' mv 'gfxconfig/mtadda_2.tss' 'gfxconfig/mtaddalpha_nvidia.tss' mv 'gfxconfig/mtaddf_1.tss' 'gfxconfig/mtaddfactor.tss' mv 'gfxconfig/mtaddf_2.tss' 'gfxconfig/mtaddfactor_nvidia.tss' mv 'gfxconfig/mtaddi_1.tss' 'gfxconfig/mtaddinversealpha.tss' mv 'gfxconfig/mtaddi_2.tss' 'gfxconfig/mtaddinversealpha_nvidia.tss' mv 'gfxconfig/mte0b7_1.tss' 'gfxconfig/mtlinearblendalpha_nvidia.tss' mv 'gfxconfig/mtee67_1.tss' 'gfxconfig/mtlinearblendinversealpha_nvidia.tss' mv 'gfxconfig/mtemis_1.tss' 'gfxconfig/mtemissivespecularfactor.tss' mv 'gfxconfig/mtemis_2.tss' 'gfxconfig/mtemissivespecularfactor2stage.tss' mv 'gfxconfig/mtemis_3.tss' 'gfxconfig/mtemissivespecularfactornotx.tss' mv 'gfxconfig/mtemis_4.tss' 'gfxconfig/mtemissivespecularfactornotx2stage.tss' mv 'gfxconfig/mtfade_1.tss' 'gfxconfig/mtfadelightmapbyalpha.tss' mv 'gfxconfig/mtfogm_1.tss' 'gfxconfig/mtfogmask.tss' mv 'gfxconfig/mtfogm_2.tss' 'gfxconfig/mtfogmask2stage.tss' mv 'gfxconfig/mtligh_1.tss' 'gfxconfig/mtlightmap.tss' mv 'gfxconfig/mtline_1.tss' 'gfxconfig/mtlinearblend.tss' mv 'gfxconfig/mtline_2.tss' 'gfxconfig/mtlinearblend2stage.tss' mv 'gfxconfig/mtline_3.tss' 'gfxconfig/mtlinearblendalpha.tss' mv 'gfxconfig/mtline_4.tss' 'gfxconfig/mtlinearblendalpha2stage.tss' mv 'gfxconfig/mtoff2_1.tss' 'gfxconfig/mtoff2stage.tss' mv 'gfxconfig/mtoffn_1.tss' 'gfxconfig/mtoffnotx.tss' mv 'gfxconfig/mtoffn_2.tss' 'gfxconfig/mtoffnotx2stage.tss' mv 'gfxconfig/mtoffn_3.tss' 'gfxconfig/mtoffnovtxalpha.tss' mv 'gfxconfig/mtoffn_4.tss' 'gfxconfig/mtoffnovtxalpha2stage.tss' mv 'gfxconfig/mtoffo_1.tss' 'gfxconfig/mtoffonlyalpha.tss' mv 'gfxconfig/mtoffo_2.tss' 'gfxconfig/mtoffonlyalpha2stage.tss' mv 'gfxconfig/mtsepa_1.tss' 'gfxconfig/mtseparatealpha.tss' mv 'gfxconfig/mtspec_1.tss' 'gfxconfig/mtspecularbump.tss' mv 'gfxconfig/mtspec_2.tss' 'gfxconfig/mtspecularbump2stage.tss' mv 'gfxconfig/permed_1.gfx' 'gfxconfig/permedia2.gfx' mv 'gfxconfig/permed_2.gfx' 'gfxconfig/permedia3.gfx' mv 'gfxconfig/radeon_1.gfx' 'gfxconfig/radeon7500.gfx' mv 'gfxconfig/radeon_2.gfx' 'gfxconfig/radeon8500.gfx' mv 'gfxconfig/ragelt_1.gfx' 'gfxconfig/rageltpro.gfx' mv 'gfxconfig/refere_1.gfx' 'gfxconfig/reference.gfx' mv 'gfxconfig/savage_1.gfx' 'gfxconfig/savage2000.gfx' mv 'god powers/godpow_1.bar' 'god powers/godpowers.bar' mv 'history/arrows_1.txt' 'history/arrow ships.txt' mv 'history/blackm_1.txt' 'history/black map.txt' mv 'history/buildi_1.txt' 'history/buildings.txt' mv 'history/fogofw_1.txt' 'history/fog of war.txt' mv 'history/godpow_1.txt' 'history/god powers.txt' mv 'history/herode_1.txt' 'history/hero death model.txt' mv 'history/hippop_1.txt' 'history/hippopotamus.txt' mv 'history/humans_1.txt' 'history/human soldiers.txt' mv 'history/lineof_1.txt' 'history/line of sight.txt' mv 'history/mythun_1.txt' 'history/myth units.txt' mv 'history/popula_1.txt' 'history/population.txt' mv 'history/rammin_1.txt' 'history/ramming ships.txt' mv 'history/rammmi_1.txt' 'history/rammming ships.txt' mv 'history/sieges_1.txt' 'history/siege ships.txt' mv 'history/siegew_1.txt' 'history/siege weapons.txt' mv 'history/tableo_1.xmb' 'history/table of contents.xmb' mv 'history/techs/adzeof_1.txt' 'history/techs/adze of wepwawet.txt' mv 'history/techs/aegiss_1.txt' 'history/techs/aegis shield.txt' mv 'history/techs/age1ha_1.txt' 'history/techs/age 1 hades.txt' mv 'history/techs/age1is_1.txt' 'history/techs/age 1 isis.txt' mv 'history/techs/age1lo_1.txt' 'history/techs/age 1 loki.txt' mv 'history/techs/age1od_1.txt' 'history/techs/age 1 odin.txt' mv 'history/techs/age1po_1.txt' 'history/techs/age 1 poseidon.txt' mv 'history/techs/age1ra_1.txt' 'history/techs/age 1 ra.txt' mv 'history/techs/age1se_1.txt' 'history/techs/age 1 set.txt' mv 'history/techs/age1th_1.txt' 'history/techs/age 1 thor.txt' mv 'history/techs/age1ze_1.txt' 'history/techs/age 1 zeus.txt' mv 'history/techs/age2an_1.txt' 'history/techs/age 2 anubis.txt' mv 'history/techs/age2ar_1.txt' 'history/techs/age 2 ares.txt' mv 'history/techs/age2at_1.txt' 'history/techs/age 2 athena.txt' mv 'history/techs/age2ba_1.txt' 'history/techs/age 2 bast.txt' mv 'history/techs/age2fo_1.txt' 'history/techs/age 2 forseti.txt' mv 'history/techs/age2fr_1.txt' 'history/techs/age 2 freyja.txt' mv 'history/techs/age2he_1.txt' 'history/techs/age 2 heimdall.txt' mv 'history/techs/age2he_2.txt' 'history/techs/age 2 hermes.txt' mv 'history/techs/age2pt_1.txt' 'history/techs/age 2 ptah.txt' mv 'history/techs/age3ap_1.txt' 'history/techs/age 3 aphrodite.txt' mv 'history/techs/age3ap_2.txt' 'history/techs/age 3 apollo.txt' mv 'history/techs/age3br_1.txt' 'history/techs/age 3 bragi.txt' mv 'history/techs/age3di_1.txt' 'history/techs/age 3 dionysos.txt' mv 'history/techs/age3ha_1.txt' 'history/techs/age 3 hathor.txt' mv 'history/techs/age3ne_1.txt' 'history/techs/age 3 nephthys.txt' mv 'history/techs/age3nj_1.txt' 'history/techs/age 3 njord.txt' mv 'history/techs/age3se_1.txt' 'history/techs/age 3 sekhmet.txt' mv 'history/techs/age3sk_1.txt' 'history/techs/age 3 skadi.txt' mv 'history/techs/age4ar_1.txt' 'history/techs/age 4 artemis.txt' mv 'history/techs/age4ba_1.txt' 'history/techs/age 4 baldr.txt' mv 'history/techs/age4he_1.txt' 'history/techs/age 4 hel.txt' mv 'history/techs/age4he_2.txt' 'history/techs/age 4 hephaestus.txt' mv 'history/techs/age4he_3.txt' 'history/techs/age 4 hera.txt' mv 'history/techs/age4ho_1.txt' 'history/techs/age 4 horus.txt' mv 'history/techs/age4os_1.txt' 'history/techs/age 4 osiris.txt' mv 'history/techs/age4th_1.txt' 'history/techs/age 4 thoth.txt' mv 'history/techs/age4ty_1.txt' 'history/techs/age 4 tyr.txt' mv 'history/techs/ambass_1.txt' 'history/techs/ambassadors.txt' mv 'history/techs/anastr_1.txt' 'history/techs/anastrophe.txt' mv 'history/techs/ancest_1.txt' 'history/techs/ancestors.txt' mv 'history/techs/animal_1.txt' 'history/techs/animal magnetism.txt' mv 'history/techs/archit_1.txt' 'history/techs/architects.txt' mv 'history/techs/arctic_1.txt' 'history/techs/arctic gale.txt' mv 'history/techs/arctic_2.txt' 'history/techs/arctic winds.txt' mv 'history/techs/atefcr_1.txt' 'history/techs/atef crown.txt' mv 'history/techs/atheni_1.txt' 'history/techs/athenian wall.txt' mv 'history/techs/aurora_1.txt' 'history/techs/aurora borealis.txt' mv 'history/techs/axeofv_1.txt' 'history/techs/axe of vengeance.txt' mv 'history/techs/baccha_1.txt' 'history/techs/bacchanalia.txt' mv 'history/techs/ballis_1.txt' 'history/techs/ballista tower.txt' mv 'history/techs/berser_1.txt' 'history/techs/berserkergang.txt' mv 'history/techs/boilin_1.txt' 'history/techs/boiling oil.txt' mv 'history/techs/bonebo_1.txt' 'history/techs/bone bow.txt' mv 'history/techs/bookof_1.txt' 'history/techs/book of thoth.txt' mv 'history/techs/bowsaw_1.txt' 'history/techs/bow saw.txt' mv 'history/techs/br2276_1.txt' 'history/techs/bronze weapons.txt' mv 'history/techs/brdd97_1.txt' 'history/techs/bronze weapons thor.txt' mv 'history/techs/bronze_1.txt' 'history/techs/bronze mail.txt' mv 'history/techs/bronze_2.txt' 'history/techs/bronze mail thor.txt' mv 'history/techs/bronze_3.txt' 'history/techs/bronze shields.txt' mv 'history/techs/bronze_4.txt' 'history/techs/bronze shields thor.txt' mv 'history/techs/burnin_1.txt' 'history/techs/burning pitch.txt' mv 'history/techs/burnin_2.txt' 'history/techs/burning pitch thor.txt' mv 'history/techs/callof_1.txt' 'history/techs/call of valhalla.txt' mv 'history/techs/carpen_1.txt' 'history/techs/carpenters.txt' mv 'history/techs/carrie_1.txt' 'history/techs/carrier pigeons.txt' mv 'history/techs/ceasef_1.txt' 'history/techs/cease fire.txt' mv 'history/techs/ch5cf5_1.txt' 'history/techs/heavy chariots.txt' mv 'history/techs/ch9a9d_1.txt' 'history/techs/champion slingers.txt' mv 'history/techs/ch9fb2_1.txt' 'history/techs/medium archers.txt' mv 'history/techs/cha3d9_1.txt' 'history/techs/champion archers.txt' mv 'history/techs/cha9ae_1.txt' 'history/techs/heavy axemen.txt' mv 'history/techs/champi_1.txt' 'history/techs/champion camelry.txt' mv 'history/techs/champi_2.txt' 'history/techs/heavy camels.txt' mv 'history/techs/champi_3.txt' 'history/techs/medium cavalry.txt' mv 'history/techs/champi_4.txt' 'history/techs/heavy camelry.txt' mv 'history/techs/chcf33_1.txt' 'history/techs/medium infantry.txt' mv 'history/techs/citade_1.txt' 'history/techs/citadel wall.txt' mv 'history/techs/cityof_1.txt' 'history/techs/city of the dead.txt' mv 'history/techs/co3e7a_1.txt' 'history/techs/conscript archers.txt' mv 'history/techs/co3f35_1.txt' 'history/techs/conscript migdol soldiers.txt' mv 'history/techs/co73d0_1.txt' 'history/techs/conscript barracks soldiers.txt' mv 'history/techs/co8f28_1.txt' 'history/techs/copper weapons.txt' mv 'history/techs/coc88d_1.txt' 'history/techs/copper weapons thor.txt' mv 'history/techs/coe3f7_1.txt' 'history/techs/conscript sailors.txt' mv 'history/techs/conscr_1.txt' 'history/techs/conscript cavalry.txt' mv 'history/techs/conscr_2.txt' 'history/techs/conscript longhouse soldiers.txt' mv 'history/techs/conscr_3.txt' 'history/techs/conscript hill fort soldiers.txt' mv 'history/techs/conscr_4.txt' 'history/techs/conscript infantry.txt' mv 'history/techs/copper_1.txt' 'history/techs/copper mail.txt' mv 'history/techs/copper_2.txt' 'history/techs/copper mail thor.txt' mv 'history/techs/copper_3.txt' 'history/techs/copper shields.txt' mv 'history/techs/copper_4.txt' 'history/techs/copper shields thor.txt' mv 'history/techs/create_1.txt' 'history/techs/create gold.txt' mv 'history/techs/crenel_1.txt' 'history/techs/crenellations.txt' mv 'history/techs/criosp_1.txt' 'history/techs/criosphinx.txt' mv 'history/techs/crocod_1.txt' 'history/techs/crocodopolis.txt' mv 'history/techs/deimos_1.txt' 'history/techs/deimos sword of dread.txt' mv 'history/techs/desert_1.txt' 'history/techs/desert wind.txt' mv 'history/techs/divine_1.txt' 'history/techs/divine blood.txt' mv 'history/techs/drafth_1.txt' 'history/techs/draft horses.txt' mv 'history/techs/dragon_1.txt' 'history/techs/dragonscale shields.txt' mv 'history/techs/dwarve_1.txt' 'history/techs/dwarven auger.txt' mv 'history/techs/dwarve_2.txt' 'history/techs/dwarven mail.txt' mv 'history/techs/dwarve_3.txt' 'history/techs/dwarven shields.txt' mv 'history/techs/dwarve_4.txt' 'history/techs/dwarven weapons.txt' mv 'history/techs/earthq_1.txt' 'history/techs/earthquake.txt' mv 'history/techs/eldhri_1.txt' 'history/techs/eldhrimnir kettle.txt' mv 'history/techs/electr_1.txt' 'history/techs/electrum bullets.txt' mv 'history/techs/enclos_1.txt' 'history/techs/enclosed deck.txt' mv 'history/techs/engine_1.txt' 'history/techs/engineers.txt' mv 'history/techs/enyosb_1.txt' 'history/techs/enyos bow of horror.txt' mv 'history/techs/eyesin_1.txt' 'history/techs/eyes in the forest.txt' mv 'history/techs/faceof_1.txt' 'history/techs/face of the gorgon.txt' mv 'history/techs/feetof_1.txt' 'history/techs/feet of the jackal.txt' mv 'history/techs/flames_1.txt' 'history/techs/flames of typhon.txt' mv 'history/techs/flamin_1.txt' 'history/techs/flaming weapons.txt' mv 'history/techs/floodc_1.txt' 'history/techs/flood control.txt' mv 'history/techs/floodo_1.txt' 'history/techs/flood of the nile.txt' mv 'history/techs/forest_1.txt' 'history/techs/forest fire.txt' mv 'history/techs/forgeo_1.txt' 'history/techs/forge of olympus.txt' mv 'history/techs/fortif_1.txt' 'history/techs/fortified wall.txt' mv 'history/techs/fortif_2.txt' 'history/techs/fortify town center.txt' mv 'history/techs/funera_1.txt' 'history/techs/funeral barge.txt' mv 'history/techs/funera_2.txt' 'history/techs/funeral rites.txt' mv 'history/techs/golden_1.txt' 'history/techs/golden apples.txt' mv 'history/techs/granit_1.txt' 'history/techs/granite blood.txt' mv 'history/techs/greate_1.txt' 'history/techs/greatest of fifty.txt' mv 'history/techs/greath_1.txt' 'history/techs/great hunt.txt' mv 'history/techs/guardt_1.txt' 'history/techs/guard tower.txt' mv 'history/techs/hallof_1.txt' 'history/techs/hall of thanes.txt' mv 'history/techs/hamarr_1.txt' 'history/techs/hamarrtroll.txt' mv 'history/techs/hammer_1.txt' 'history/techs/hammer of the gods.txt' mv 'history/techs/handax_1.txt' 'history/techs/hand axe.txt' mv 'history/techs/handof_1.txt' 'history/techs/hand of talos.txt' mv 'history/techs/healin_1.txt' 'history/techs/healing spring.txt' mv 'history/techs/heavya_1.txt' 'history/techs/champion axemen.txt' mv 'history/techs/heavya_2.txt' 'history/techs/heavy spearmen.txt' mv 'history/techs/heavyc_1.txt' 'history/techs/champion camels.txt' mv 'history/techs/heavyc_2.txt' 'history/techs/medium axemen.txt' mv 'history/techs/heavyc_3.txt' 'history/techs/heavy archers.txt' mv 'history/techs/heavyc_4.txt' 'history/techs/medium slingers.txt' mv 'history/techs/heavye_1.txt' 'history/techs/heavy infantry.txt' mv 'history/techs/heavyi_1.txt' 'history/techs/champion chariots.txt' mv 'history/techs/heavys_1.txt' 'history/techs/heavy elephants.txt' mv 'history/techs/heavys_2.txt' 'history/techs/champion cavalry.txt' mv 'history/techs/hierac_1.txt' 'history/techs/hieracosphinx.txt' mv 'history/techs/huntin_1.txt' 'history/techs/hunting dogs.txt' mv 'history/techs/huntre_1.txt' 'history/techs/huntress axe.txt' mv 'history/techs/husban_1.txt' 'history/techs/husbandry.txt' mv 'history/techs/ironma_1.txt' 'history/techs/iron mail.txt' mv 'history/techs/ironma_2.txt' 'history/techs/iron mail thor.txt' mv 'history/techs/ironsh_1.txt' 'history/techs/iron shields.txt' mv 'history/techs/ironsh_2.txt' 'history/techs/iron shields thor.txt' mv 'history/techs/ironwe_1.txt' 'history/techs/iron weapons.txt' mv 'history/techs/ironwe_2.txt' 'history/techs/iron weapons thor.txt' mv 'history/techs/irriga_1.txt' 'history/techs/irrigation.txt' mv 'history/techs/labyri_1.txt' 'history/techs/labyrinth of minos.txt' mv 'history/techs/leathe_1.txt' 'history/techs/leather frame shield.txt' mv 'history/techs/levyar_1.txt' 'history/techs/levy cavalry.txt' mv 'history/techs/levyba_1.txt' 'history/techs/levy hill fort soldiers.txt' mv 'history/techs/levyca_1.txt' 'history/techs/levy longhouse soldiers.txt' mv 'history/techs/levyhi_1.txt' 'history/techs/levy migdol soldiers.txt' mv 'history/techs/levyin_1.txt' 'history/techs/levy barracks soldiers.txt' mv 'history/techs/levylo_1.txt' 'history/techs/levy archers.txt' mv 'history/techs/levymi_1.txt' 'history/techs/levy infantry.txt' mv 'history/techs/lightn_1.txt' 'history/techs/lightning storm.txt' mv 'history/techs/locust_1.txt' 'history/techs/locust swarm.txt' mv 'history/techs/lonewa_1.txt' 'history/techs/lone wanderer.txt' mv 'history/techs/longse_1.txt' 'history/techs/long serpent.txt' mv 'history/techs/lordof_1.txt' 'history/techs/lord of horses.txt' mv 'history/techs/me699b_1.txt' 'history/techs/champion spearmen.txt' mv 'history/techs/me78ac_1.txt' 'history/techs/champion infantry.txt' mv 'history/techs/medium_1.txt' 'history/techs/heavy cavalry.txt' mv 'history/techs/medium_2.txt' 'history/techs/champion elephants.txt' mv 'history/techs/medium_3.txt' 'history/techs/heavy slingers.txt' mv 'history/techs/medium_4.txt' 'history/techs/medium spearmen.txt' mv 'history/techs/meteor_1.txt' 'history/techs/meteoric iron mail.txt' mv 'history/techs/mithri_1.txt' 'history/techs/mithril breastplate.txt' mv 'history/techs/monstr_1.txt' 'history/techs/monstrous rage.txt' mv 'history/techs/navalo_1.txt' 'history/techs/naval oxybeles.txt' mv 'history/techs/necrop_1.txt' 'history/techs/necropolis.txt' mv 'history/techs/newkin_1.txt' 'history/techs/new kingdom.txt' mv 'history/techs/olympi_1.txt' 'history/techs/olympic parentage.txt' mv 'history/techs/omnisc_1.txt' 'history/techs/omniscience.txt' mv 'history/techs/pestil_1.txt' 'history/techs/pestilence.txt' mv 'history/techs/phobos_1.txt' 'history/techs/phobos spear of panic.txt' mv 'history/techs/pigsti_1.txt' 'history/techs/pig sticker.txt' mv 'history/techs/prospe_1.txt' 'history/techs/prosperity.txt' mv 'history/techs/purses_1.txt' 'history/techs/purse seine.txt' mv 'history/techs/ramoft_1.txt' 'history/techs/ram of the west wind.txt' mv 'history/techs/rebell_1.txt' 'history/techs/rebellion.txt' mv 'history/techs/reinfo_1.txt' 'history/techs/reinforced hull.txt' mv 'history/techs/restor_1.txt' 'history/techs/restoration.txt' mv 'history/techs/ringgi_1.txt' 'history/techs/ring giver.txt' mv 'history/techs/roarof_1.txt' 'history/techs/roar of orthus.txt' mv 'history/techs/sacred_1.txt' 'history/techs/sacred cats.txt' mv 'history/techs/safegu_1.txt' 'history/techs/safeguard.txt' mv 'history/techs/saltam_1.txt' 'history/techs/salt amphora.txt' mv 'history/techs/sandst_1.txt' 'history/techs/sandstorm.txt' mv 'history/techs/scallo_1.txt' 'history/techs/scalloped axe.txt' mv 'history/techs/serpen_1.txt' 'history/techs/serpent spear.txt' mv 'history/techs/shaftm_1.txt' 'history/techs/shaft mine.txt' mv 'history/techs/shafts_1.txt' 'history/techs/shafts of plague.txt' mv 'history/techs/should_1.txt' 'history/techs/shoulder of talos.txt' mv 'history/techs/signal_1.txt' 'history/techs/signal fires.txt' mv 'history/techs/skelet_1.txt' 'history/techs/skeleton power.txt' mv 'history/techs/skinof_1.txt' 'history/techs/skin of the rhino.txt' mv 'history/techs/slings_1.txt' 'history/techs/slings of the sun.txt' mv 'history/techs/snowst_1.txt' 'history/techs/snow storm.txt' mv 'history/techs/sonofo_1.txt' 'history/techs/son of osiris.txt' mv 'history/techs/sonsof_1.txt' 'history/techs/sons of sleipnir.txt' mv 'history/techs/spearo_1.txt' 'history/techs/spear on the horizon.txt' mv 'history/techs/spirit_1.txt' 'history/techs/spirit of maat.txt' mv 'history/techs/spirit_2.txt' 'history/techs/spirited charge.txt' mv 'history/techs/stones_1.txt' 'history/techs/stones of red linen.txt' mv 'history/techs/stonew_1.txt' 'history/techs/stone wall.txt' mv 'history/techs/sundri_1.txt' 'history/techs/sundried mud brick.txt' mv 'history/techs/sunray_1.txt' 'history/techs/sun ray.txt' mv 'history/techs/swinea_1.txt' 'history/techs/swine array.txt' mv 'history/techs/sylvan_1.txt' 'history/techs/sylvan lore.txt' mv 'history/techs/taxcol_1.txt' 'history/techs/tax collectors.txt' mv 'history/techs/temple_1.txt' 'history/techs/temple of healing.txt' mv 'history/techs/thraci_1.txt' 'history/techs/thracian horses.txt' mv 'history/techs/thunde_1.txt' 'history/techs/thundering hooves.txt' mv 'history/techs/thuris_1.txt' 'history/techs/thurisaz rune.txt' mv 'history/techs/triera_1.txt' 'history/techs/trierarch.txt' mv 'history/techs/tuskso_1.txt' 'history/techs/tusks of apedemak.txt' mv 'history/techs/underm_1.txt' 'history/techs/undermine.txt' mv 'history/techs/underw_1.txt' 'history/techs/underworld passage.txt' mv 'history/techs/valley_1.txt' 'history/techs/valley of the kings.txt' mv 'history/techs/vaults_1.txt' 'history/techs/vaults of erebus.txt' mv 'history/techs/walkin_1.txt' 'history/techs/walking woods.txt' mv 'history/techs/watcht_1.txt' 'history/techs/watch tower.txt' mv 'history/techs/weapon_1.txt' 'history/techs/weapon of the titans.txt' mv 'history/techs/willof_1.txt' 'history/techs/will of kronos.txt' mv 'history/techs/winged_1.txt' 'history/techs/winged messenger.txt' mv 'history/techs/winter_1.txt' 'history/techs/winter harvest.txt' mv 'history/techs/wratho_1.txt' 'history/techs/wrath of the deep.txt' mv 'history/units/agamem_1.txt' 'history/units/agamemnon.txt' mv 'history/units/anim0000.txt' 'history/units/animal attractor.txt' mv 'history/units/apeofs_1.txt' 'history/units/ape of set.txt' mv 'history/units/archer_1.txt' 'history/units/archery range.txt' mv 'history/units/arkant_1.txt' 'history/units/arkantos.txt' mv 'history/units/arkantos.txt' 'history/units/arkantosman.txt' mv 'history/units/atlant_1.txt' 'history/units/atlantis wall connector.txt' mv 'history/units/atlant_2.txt' 'history/units/atlantis wall long.txt' mv 'history/units/bandit_1.txt' 'history/units/bandit migdol.txt' mv 'history/units/battle_1.txt' 'history/units/battle boar.txt' mv 'history/units/berryb_1.txt' 'history/units/berry bush.txt' mv 'history/units/bolder_1.txt' 'history/units/bolder rolling.txt' mv 'history/units/bolder_2.txt' 'history/units/bolder rolling dead.txt' mv 'history/units/bolder_3.txt' 'history/units/bolder rolling 2.txt' mv 'history/units/bolder_4.txt' 'history/units/bolder wall.txt' mv 'history/units/broken_1.txt' 'history/units/broken column.txt' mv 'history/units/carava_1.txt' 'history/units/caravan egyptian.txt' mv 'history/units/carava_2.txt' 'history/units/caravan greek.txt' mv 'history/units/carava_3.txt' 'history/units/caravan norse.txt' mv 'history/units/cataph_1.txt' 'history/units/cataphract.txt' mv 'history/units/chario_1.txt' 'history/units/chariot archer.txt' mv 'history/units/charon_1.txt' 'history/units/charon ferry.txt' mv 'history/units/cita0000.txt' 'history/units/citadel center.txt' mv 'history/units/column_1.txt' 'history/units/columns broken.txt' mv 'history/units/column_2.txt' 'history/units/columns fallen.txt' mv 'history/units/constr_1.txt' 'history/units/construction extra large.txt' mv 'history/units/constr_2.txt' 'history/units/construction large.txt' mv 'history/units/constr_3.txt' 'history/units/construction medium.txt' mv 'history/units/constr_4.txt' 'history/units/construction small.txt' mv 'history/units/croc0000.txt' 'history/units/crocodile.txt' mv 'history/units/crocod_2.txt' 'history/units/crocodile of set.txt' mv 'history/units/crossb_1.txt' 'history/units/crossbowman.txt' mv 'history/units/crowne_1.txt' 'history/units/crowned crane.txt' mv 'history/units/digpil_1.txt' 'history/units/dig pile.txt' mv 'history/units/dwar0000.txt' 'history/units/dwarven forge.txt' mv 'history/units/dwarff_1.txt' 'history/units/dwarf foundry.txt' mv 'history/units/einher_1.txt' 'history/units/einheriar.txt' mv 'history/units/excava_1.txt' 'history/units/excavation.txt' mv 'history/units/fallen_1.txt' 'history/units/fallen columns.txt' mv 'history/units/fencei_1.txt' 'history/units/fence iron.txt' mv 'history/units/fences_1.txt' 'history/units/fence stone.txt' mv 'history/units/fencew_1.txt' 'history/units/fence wood.txt' mv 'history/units/fenris_1.txt' 'history/units/fenris wolf.txt' mv 'history/units/fimbul_1.txt' 'history/units/fimbulwinter wolf.txt' mv 'history/units/firegi_1.txt' 'history/units/fire giant.txt' mv 'history/units/fishin_1.txt' 'history/units/fishing ship egyptian.txt' mv 'history/units/fishin_2.txt' 'history/units/fishing ship greek.txt' mv 'history/units/fishin_3.txt' 'history/units/fishing ship norse.txt' mv 'history/units/fish_m_1.txt' 'history/units/fish - mahi.txt' mv 'history/units/fish_p_1.txt' 'history/units/fish - perch.txt' mv 'history/units/fish_s_1.txt' 'history/units/fish - salmon.txt' mv 'history/units/flying_1.txt' 'history/units/flying purple hippo.txt' mv 'history/units/folsta_1.txt' 'history/units/folstag flag bearer.txt' mv 'history/units/frostg_1.txt' 'history/units/frost giant.txt' mv 'history/units/gargar_1.txt' 'history/units/gargarensis.txt' mv 'history/units/gatera_1.txt' 'history/units/gate ram.txt' mv 'history/units/gatera_2.txt' 'history/units/gate ram 2.txt' mv 'history/units/gazell_1.txt' 'history/units/gazelle of set.txt' mv 'history/units/ghosts_1.txt' 'history/units/ghost ship.txt' mv 'history/units/giantg_1.txt' 'history/units/giant gate ram 2.txt' mv 'history/units/giantg_2.txt' 'history/units/giant gate ram.txt' mv 'history/units/giraff_1.txt' 'history/units/giraffe.txt' mv 'history/units/giraffe.txt' 'history/units/giraffe of set.txt' mv 'history/units/gold0000.txt' 'history/units/golden lion.txt' mv 'history/units/goldmi_1.txt' 'history/units/gold mine.txt' mv 'history/units/goldmi_2.txt' 'history/units/gold mine dwarven.txt' mv 'history/units/goldmi_3.txt' 'history/units/gold mine small.txt' mv 'history/units/goldmi_4.txt' 'history/units/gold mine tiny.txt' mv 'history/units/greatb_1.txt' 'history/units/great box.txt' mv 'history/units/greatb_2.txt' 'history/units/great box cart.txt' mv 'history/units/greatb_3.txt' 'history/units/great box cart 2.txt' mv 'history/units/guardi_1.txt' 'history/units/guardian sleeping.txt' mv 'history/units/hadesd_1.txt' 'history/units/hades door.txt' mv 'history/units/hadess_1.txt' 'history/units/hades shade.txt' mv 'history/units/he001a_1.txt' 'history/units/hero greek perseus.txt' mv 'history/units/he0444_1.txt' 'history/units/hero greek hippolyta.txt' mv 'history/units/he2813_1.txt' 'history/units/hero greek bellerophon.txt' mv 'history/units/he29cd_1.txt' 'history/units/hero greek polyphemus.txt' mv 'history/units/he9adf_1.txt' 'history/units/hero greek odysseus.txt' mv 'history/units/hea167_1.txt' 'history/units/hero greek jason.txt' mv 'history/units/heal0000.txt' 'history/units/healing spring object.txt' mv 'history/units/hedc5b_1.txt' 'history/units/hero greek chiron.txt' mv 'history/units/hee615_1.txt' 'history/units/hero greek heracles.txt' mv 'history/units/hef21d_1.txt' 'history/units/hero greek theseus.txt' mv 'history/units/helepo_1.txt' 'history/units/helepolis.txt' mv 'history/units/herobo_1.txt' 'history/units/hero boar 2.txt' mv 'history/units/herobo_2.txt' 'history/units/hero boar.txt' mv 'history/units/herogr_1.txt' 'history/units/hero greek achilles.txt' mv 'history/units/herogr_2.txt' 'history/units/hero greek ajax.txt' mv 'history/units/herogr_3.txt' 'history/units/hero greek argo.txt' mv 'history/units/herogr_4.txt' 'history/units/hero greek atalanta.txt' mv 'history/units/herono_1.txt' 'history/units/hero norse.txt' mv 'history/units/herora_1.txt' 'history/units/hero ragnorok.txt' mv 'history/units/hillfo_1.txt' 'history/units/hill fort.txt' mv 'history/units/hipp0000.txt' 'history/units/hippopotamus.txt' mv 'history/units/hippoc_1.txt' 'history/units/hippocampus.txt' mv 'history/units/hippoo_1.txt' 'history/units/hippo of set.txt' mv 'history/units/hyenao_1.txt' 'history/units/hyena of set.txt' mv 'history/units/hypasp_1.txt' 'history/units/hypaspist.txt' mv 'history/units/jailwa_1.txt' 'history/units/jail wall.txt' mv 'history/units/jormun_1.txt' 'history/units/jormund elver.txt' mv 'history/units/kraken_1.txt' 'history/units/kraken.txt' mv 'history/units/kraken.txt' 'history/units/kraken spc.txt' mv 'history/units/lazerb_1.txt' 'history/units/lazer bear.txt' mv 'history/units/leviat_1.txt' 'history/units/leviathan.txt' mv 'history/units/lighth_1.txt' 'history/units/lighthouse.txt' mv 'history/units/longho_1.txt' 'history/units/longhouse.txt' mv 'history/units/lumber_1.txt' 'history/units/lumber camp.txt' mv 'history/units/mantic_1.txt' 'history/units/manticore.txt' mv 'history/units/mercen_1.txt' 'history/units/mercenary cavalry.txt' mv 'history/units/mercen_2.txt' 'history/units/mercenary.txt' mv 'history/units/migdol_1.txt' 'history/units/migdol stronghold.txt' mv 'history/units/mining_1.txt' 'history/units/mining camp.txt' mv 'history/units/monkey_1.txt' 'history/units/monkey raft.txt' mv 'history/units/monkey_2.txt' 'history/units/monkey relic.txt' mv 'history/units/monume_1.txt' 'history/units/monument 2.txt' mv 'history/units/monume_2.txt' 'history/units/monument 3.txt' mv 'history/units/monume_3.txt' 'history/units/monument 4.txt' mv 'history/units/monume_4.txt' 'history/units/monument 5.txt' mv 'history/units/mounta_1.txt' 'history/units/mountain giant.txt' mv 'history/units/navals_1.txt' 'history/units/naval shipyard.txt' mv 'history/units/nemean_1.txt' 'history/units/nemean lion.txt' mv 'history/units/nidh0000.txt' 'history/units/nidhogg.txt' mv 'history/units/oakaut_1.txt' 'history/units/oak autumn.txt' mv 'history/units/oaktre_1.txt' 'history/units/oak tree.txt' mv 'history/units/oldman_1.txt' 'history/units/old man.txt' mv 'history/units/oxcart_1.txt' 'history/units/ox cart.txt' mv 'history/units/petrob_1.txt' 'history/units/petrobolos.txt' mv 'history/units/petsuc_1.txt' 'history/units/petsuchos.txt' mv 'history/units/pharao_1.txt' 'history/units/pharaoh of osiris.txt' mv 'history/units/pharao_2.txt' 'history/units/pharaoh secondary.txt' mv 'history/units/phoeni_1.txt' 'history/units/phoenix egg.txt' mv 'history/units/pigspe_1.txt' 'history/units/pig special.txt' mv 'history/units/pinede_1.txt' 'history/units/pine dead.txt' mv 'history/units/pinesn_1.txt' 'history/units/pine snow.txt' mv 'history/units/pirate_1.txt' 'history/units/pirate ship.txt' mv 'history/units/plenty_1.txt' 'history/units/plenty vault koth.txt' mv 'history/units/plenty_2.txt' 'history/units/plenty vault.txt' mv 'history/units/polarb_1.txt' 'history/units/polar bear.txt' mv 'history/units/portab_1.txt' 'history/units/portable ram.txt' mv 'history/units/poseid_1.txt' 'history/units/poseidon statue.txt' mv 'history/units/prodro_1.txt' 'history/units/prodromos.txt' mv 'history/units/pyrami_1.txt' 'history/units/pyramid large.txt' mv 'history/units/raidin_1.txt' 'history/units/raiding cavalry.txt' mv 'history/units/ramm0000.txt' 'history/units/ramming ship egyptian.txt' mv 'history/units/rammin_2.txt' 'history/units/ramming ship greek.txt' mv 'history/units/rammin_3.txt' 'history/units/ramming ship norse.txt' mv 'history/units/reginl_1.txt' 'history/units/reginleif.txt' mv 'history/units/rhinoc_1.txt' 'history/units/rhinoceros of set.txt' mv 'history/units/rhinoc_2.txt' 'history/units/rhinocerous.txt' mv 'history/units/savann_1.txt' 'history/units/savannah tree.txt' mv 'history/units/scaffo_1.txt' 'history/units/scaffolding.txt' mv 'history/units/scorpi_1.txt' 'history/units/scorpion man.txt' mv 'history/units/seasna_1.txt' 'history/units/sea snake.txt' mv 'history/units/seatur_1.txt' 'history/units/sea turtle.txt' mv 'history/units/sentin_1.txt' 'history/units/sentinel main.txt' mv 'history/units/settle_1.txt' 'history/units/settlement level 1.txt' mv 'history/units/settle_2.txt' 'history/units/settlement.txt' mv 'history/units/shabak_1.txt' 'history/units/shaba ka.txt' mv 'history/units/shadeo_1.txt' 'history/units/shade of erebus.txt' mv 'history/units/shadeo_2.txt' 'history/units/shade of hades.txt' mv 'history/units/shipwr_1.txt' 'history/units/shipwreck.txt' mv 'history/units/sieg0000.txt' 'history/units/siege ship egyptian.txt' mv 'history/units/siegec_1.txt' 'history/units/siege camp.txt' mv 'history/units/sieges_2.txt' 'history/units/siege ship greek.txt' mv 'history/units/sieges_3.txt' 'history/units/siege ship norse.txt' mv 'history/units/sieget_1.txt' 'history/units/siege tower.txt' mv 'history/units/skrael_1.txt' 'history/units/skraeling.txt' mv 'history/units/sleepi_1.txt' 'history/units/sleeping guardian.txt' mv 'history/units/st9642_1.txt' 'history/units/statue pharaoh.txt' mv 'history/units/statue_1.txt' 'history/units/statue lion left.txt' mv 'history/units/statue_2.txt' 'history/units/statue lion right.txt' mv 'history/units/statue_3.txt' 'history/units/statue of lightning.txt' mv 'history/units/statue_4.txt' 'history/units/statue of major god.txt' mv 'history/units/storeh_1.txt' 'history/units/storehouse.txt' mv 'history/units/swordb_1.txt' 'history/units/sword bearers.txt' mv 'history/units/tamari_1.txt' 'history/units/tamarisk tree.txt' mv 'history/units/taproo_1.txt' 'history/units/taproot large.txt' mv 'history/units/temp0000.txt' 'history/units/temple underworld.txt' mv 'history/units/thorha_1.txt' 'history/units/thor hammer haft.txt' mv 'history/units/thorha_2.txt' 'history/units/thor hammer head.txt' mv 'history/units/throwi_1.txt' 'history/units/throwing axeman.txt' mv 'history/units/titanb_1.txt' 'history/units/titan bad.txt' mv 'history/units/transp_1.txt' 'history/units/transport ship egyptian.txt' mv 'history/units/transp_2.txt' 'history/units/transport ship greek.txt' mv 'history/units/transp_3.txt' 'history/units/transport ship norse.txt' mv 'history/units/trojan_1.txt' 'history/units/trojan horse.txt' mv 'history/units/troyga_1.txt' 'history/units/troy gate.txt' mv 'history/units/troywa_1.txt' 'history/units/troy wall connector.txt' mv 'history/units/troywa_2.txt' 'history/units/troy wall long.txt' mv 'history/units/troywa_3.txt' 'history/units/troy wall short.txt' mv 'history/units/unde0000.txt' 'history/units/underworld passage spc.txt' mv 'history/units/villag_1.txt' 'history/units/villager egyptian.txt' mv 'history/units/villag_2.txt' 'history/units/villager greek.txt' mv 'history/units/villag_3.txt' 'history/units/villager norse.txt' mv 'history/units/waaa05_1.txt' 'history/units/walking woods pine.txt' mv 'history/units/waca6e_1.txt' 'history/units/walking woods savannah.txt' mv 'history/units/walk0000.txt' 'history/units/walking woods oak.txt' mv 'history/units/walkin_2.txt' 'history/units/walking woods palm.txt' mv 'history/units/walkin_3.txt' 'history/units/walking woods pine dead.txt' mv 'history/units/walkin_4.txt' 'history/units/walking woods pine snow.txt' mv 'history/units/wallat_1.txt' 'history/units/wall atlantis connector.txt' mv 'history/units/wallat_2.txt' 'history/units/wall atlantis long.txt' mv 'history/units/wallco_1.txt' 'history/units/wall connector.txt' mv 'history/units/walllo_1.txt' 'history/units/wall long.txt' mv 'history/units/wallme_1.txt' 'history/units/wall medium.txt' mv 'history/units/wallsh_1.txt' 'history/units/wall short.txt' mv 'history/units/warele_1.txt' 'history/units/war elephant.txt' mv 'history/units/waterb_1.txt' 'history/units/water buffalo.txt' mv 'history/units/wellof_1.txt' 'history/units/well of urd.txt' mv 'history/units/wonder_1.txt' 'history/units/wonder spc.txt' mv 'loadin_1.bmp' 'loading1024.bmp' mv 'loadin_2.bmp' 'loading1280.bmp' mv 'loadin_3.bmp' 'loading640.bmp' mv 'loadin_4.bmp' 'loading800.bmp' mv 'models/sfxabo_1.lng' 'models/sfx a bolt.lng' mv 'models/sfxaos_1.lng' 'models/sfx a osiris.lng' mv 'models/sfxape_1.lng' 'models/sfx a petosuchus.lng' mv 'models/sfxgli_1.lng' 'models/sfx g lightning bolt large.lng' mv 'models/sfxgli_2.lng' 'models/sfx g lightning bolt medium.lng' mv 'models/sfxgli_3.lng' 'models/sfx g lightning bolt small.lng' mv 'moviep_1.exe' 'movieplayer.exe' mv 'rm/acropo_1.xml' 'rm/acropolis.xml' mv 'rm/acropo_1.xs' 'rm/acropolis.xs' mv 'rm/archip_1.xml' 'rm/archipelago.xml' mv 'rm/archip_1.xs' 'rm/archipelago.xs' mv 'rm/fastra_1.set' 'rm/fastrandom.set' mv 'rm/ghostl_1.xml' 'rm/ghost lake.xml' mv 'rm/ghostl_1.xs' 'rm/ghost lake.xs' mv 'rm/jotunh_1.xml' 'rm/jotunheim.xml' mv 'rm/jotunh_1.xs' 'rm/jotunheim.xs' mv 'rm/kingof_1.xml' 'rm/king of the hill.xml' mv 'rm/kingof_1.xs' 'rm/king of the hill.xs' mv 'rm/medite_1.xml' 'rm/mediterranean.xml' mv 'rm/medite_1.xs' 'rm/mediterranean.xs' mv 'rm/random_1.set' 'rm/randommaps.set' mv 'rm/rivern_1.xml' 'rm/river nile.xml' mv 'rm/rivern_1.xs' 'rm/river nile.xs' mv 'rm/seaofw_1.xml' 'rm/sea of worms.xml' mv 'rm/seaofw_1.xs' 'rm/sea of worms.xs' mv 'rm/sudden_1.xml' 'rm/sudden death.xml' mv 'rm/sudden_1.xs' 'rm/sudden death.xs' mv 'rm/teammi_1.xml' 'rm/team migration.xml' mv 'rm/teammi_1.xs' 'rm/team migration.xs' mv 'rm/theunk_1.xml' 'rm/the unknown.xml' mv 'rm/theunk_1.xs' 'rm/the unknown.xs' mv 'rm/valley_1.xml' 'rm/valley of kings.xml' mv 'rm/valley_1.xs' 'rm/valley of kings.xs' mv 'rm/vinlan_1.xml' 'rm/vinlandsaga.xml' mv 'rm/vinlan_1.xs' 'rm/vinlandsaga.xs' mv 'rm/wateri_1.xml' 'rm/watering hole.xml' mv 'rm/wateri_1.xs' 'rm/watering hole.xs' mv 'rockal_1.dll' 'rockalldll.dll' mv 'rts3ba_1.txt' 'rts3banglog.txt' mv 'scenario/scenar_1.bar' 'scenario/scenarios.bar' mv 'sound/aheroh_1.wav' 'sound/aherohasfallen.wav' mv 'sound/cinematics/04_in/armyar_1.wav' 'sound/cinematics/04_in/armyarrive.wav' mv 'sound/cinematics/04_in/music1_1.mp3' 'sound/cinematics/04_in/music 1.mp3' mv 'sound/cinematics/04_in/music2_1.mp3' 'sound/cinematics/04_in/music 2.mp3' mv 'sound/cinematics/04_in/wavesb_1.mp3' 'sound/cinematics/04_in/wavesbirdsmix.mp3' mv 'sound/cinematics/04_out/wave0000.mp3' 'sound/cinematics/04_out/wavesbirds.mp3' mv 'sound/cinematics/05_out/boatsp_1.mp3' 'sound/cinematics/05_out/boatspass.mp3' mv 'sound/cinematics/05_out/kamosl_1.mp3' 'sound/cinematics/05_out/kamosleap.mp3' mv 'sound/cinematics/05_out/leviat_1.mp3' 'sound/cinematics/05_out/leviathangrunt.mp3' mv 'sound/cinematics/05_out/musi0000.mp3' 'sound/cinematics/05_out/music.mp3' mv 'sound/cinematics/1/wave0001.mp3' 'sound/cinematics/1/waves.mp3' mv 'sound/cinematics/3/ambi0000.mp3' 'sound/cinematics/3/ambience.mp3' mv 'sound/cinematics/3/boat0000.mp3' 'sound/cinematics/3/boatpass.mp3' mv 'sound/cinematics/3/wave0002.mp3' 'sound/cinematics/3/waves.mp3' mv 'sound/cinematics/a/dreamt_1.mp3' 'sound/cinematics/a/dreamthing.mp3' mv 'sound/cinematics/a/lostso_1.mp3' 'sound/cinematics/a/lostsouls.mp3' mv 'sound/cinematics/a/wave0003.mp3' 'sound/cinematics/a/waves.mp3' mv 'sound/dialog/kastor_1.mp3' 'sound/dialog/kastor061.mp3' mv 'sound/dialog/kastor_2.mp3' 'sound/dialog/kastor062.mp3' mv 'sound/music/culture/greekt_1.mp3' 'sound/music/culture/greek to me.mp3' mv 'sound/music/culture/ndnile_1.mp3' 'sound/music/culture/n. d. nile.mp3' mv 'sound/music/culture/ofnors_1.mp3' 'sound/music/culture/of norse not!.mp3' mv 'sound/music/fight/iwishi_1.mp3' 'sound/music/fight/i wish i could throw shapes.mp3' mv 'sound/music/fight/oi_tha_1.mp3' 'sound/music/fight/oi, that pops!!!.mp3' mv 'sound/music/fight/rotloa_1.mp3' 'sound/music/fight/rot loaf.mp3' mv 'sound/music/fight/thefir_1.mp3' 'sound/music/fight/the fire brigade.mp3' mv 'sound/music/interface/acatna_1.mp3' 'sound/music/interface/a cat named mittens.mp3' mv 'sound/music/interface/ganksn_1.mp3' "sound/music/interface/gank sneakin'.mp3" mv 'sound/music/interface/ifyouc_1.mp3' 'sound/music/interface/if you can use a doorknob.mp3' mv 'sound/music/interface/ma_ams_1.mp3' "sound/music/interface/ma'am...some other sunset.mp3" mv 'sound/music/quiet/behold_1.mp3' 'sound/music/quiet/behold the great science fi (mellow mix).mp3' mv 'sound/music/quiet/eatyou_1.mp3' 'sound/music/quiet/eat your potatoes (mellow mix).mp3' mv 'sound/music/quiet/_finel_1.mp3' 'sound/music/quiet/(fine layers of) slaysenflite (mellow mix).mp3' mv 'sound/music/quiet/flavor_1.mp3' 'sound/music/quiet/flavor cats (in the comfort zone) (mellow mix).mp3' mv 'sound/music/quiet/neverm_1.mp3' 'sound/music/quiet/never mind the slacks and bashers (mellow mix).mp3' mv 'sound/music/quiet/thebal_1.mp3' 'sound/music/quiet/the ballad of ace lebaron (mellow mix).mp3' mv 'sound/music/standard/beho0000.mp3' 'sound/music/standard/behold the great science fi.mp3' mv 'sound/music/standard/eaty0000.mp3' 'sound/music/standard/eat your potatoes.mp3' mv 'sound/music/standard/_fin0000.mp3' 'sound/music/standard/(fine layers of) slaysenflite.mp3' mv 'sound/music/standard/flav0000.mp3' 'sound/music/standard/flavor cats (in the comfort zone).mp3' mv 'sound/music/standard/neve0000.mp3' 'sound/music/standard/never mind the slacks and bashers.mp3' mv 'sound/music/standard/theb0000.mp3' 'sound/music/standard/the ballad of ace lebaron.mp3' mv 'startup/gamese_1.bar' 'startup/gamesettings.bar' mv 'textures/cursors/co0576_1.cur' 'textures/cursors/command god no isis mono icon.cur' mv 'textures/cursors/co06af_1.cur' 'textures/cursors/command no god power mono icon.cur' mv 'textures/cursors/co085a_1.cur' 'textures/cursors/cursor_hyperlink.cur' mv 'textures/cursors/co0d51_1.cur' 'textures/cursors/command gather fish mono icon.cur' mv 'textures/cursors/co0ddb_1.cur' 'textures/cursors/command guard icon.cur' mv 'textures/cursors/co17c2_1.cur' 'textures/cursors/command resource drop off gold mono icon.cur' mv 'textures/cursors/co1b52_1.cur' 'textures/cursors/cursor_ankh.cur' mv 'textures/cursors/co1ec7_1.cur' 'textures/cursors/command gather berries icon.cur' mv 'textures/cursors/co36e9_1.cur' 'textures/cursors/command cursor icon.cur' mv 'textures/cursors/co3d45_1.cur' 'textures/cursors/command no god power icon.cur' mv 'textures/cursors/co3e43_1.cur' 'textures/cursors/command herdable gaia mono icon.cur' mv 'textures/cursors/co4014_1.cur' 'textures/cursors/command gather gold icon.cur' mv 'textures/cursors/co4096_1.cur' 'textures/cursors/command gather wood icon.cur' mv 'textures/cursors/co40d2_1.cur' 'textures/cursors/command gather food icon.cur' mv 'textures/cursors/co41d0_1.cur' 'textures/cursors/command gather fish icon.cur' mv 'textures/cursors/co4648_1.cur' 'textures/cursors/command gather berries mono icon.cur' mv 'textures/cursors/co48a6_1.cur' 'textures/cursors/command patrol icon.cur' mv 'textures/cursors/co4c41_1.cur' 'textures/cursors/command cursor mono icon.cur' mv 'textures/cursors/co4e87_1.cur' 'textures/cursors/command empower mono icon.cur' mv 'textures/cursors/co5d3d_1.cur' 'textures/cursors/command convert mono icon.cur' mv 'textures/cursors/co6199_1.cur' 'textures/cursors/command god no isis icon.cur' mv 'textures/cursors/co61d1_1.cur' 'textures/cursors/command resource drop off gold icon.cur' mv 'textures/cursors/co63d7_1.cur' 'textures/cursors/command convert icon.cur' mv 'textures/cursors/co67c2_1.cur' 'textures/cursors/command resource drop off food mono icon.cur' mv 'textures/cursors/co7449_1.cur' 'textures/cursors/command god power mono icon.cur' mv 'textures/cursors/co7874_1.cur' 'textures/cursors/command resource drop off wood mono icon.cur' mv 'textures/cursors/co7886_1.cur' 'textures/cursors/cursor_gather.cur' mv 'textures/cursors/co846f_1.cur' 'textures/cursors/command repair icon.cur' mv 'textures/cursors/co8c08_1.cur' 'textures/cursors/command god power icon.cur' mv 'textures/cursors/co8ebb_1.cur' 'textures/cursors/command guard mono icon.cur' mv 'textures/cursors/co8ff0_1.cur' 'textures/cursors/command help icon.cur' mv 'textures/cursors/co9852_1.cur' 'textures/cursors/command gather favor icon.cur' mv 'textures/cursors/coa0a9_1.cur' 'textures/cursors/command unboard icon.cur' mv 'textures/cursors/coa29a_1.cur' 'textures/cursors/command help mono icon.cur' mv 'textures/cursors/coa2d1_1.cur' 'textures/cursors/command resource drop off food icon.cur' mv 'textures/cursors/cob08a_1.cur' 'textures/cursors/command dangerous gaia mono icon.cur' mv 'textures/cursors/coba58_1.cur' 'textures/cursors/command herdable gaia icon.cur' mv 'textures/cursors/cobfd6_1.cur' 'textures/cursors/command build icon.cur' mv 'textures/cursors/cod7b8_1.cur' 'textures/cursors/command dangerous gaia icon.cur' mv 'textures/cursors/codcf9_1.cur' 'textures/cursors/command patrol mono icon.cur' mv 'textures/cursors/code16_1.cur' 'textures/cursors/command build mono icon.cur' mv 'textures/cursors/coe410_1.cur' 'textures/cursors/command gather wood mono icon.cur' mv 'textures/cursors/coe4c0_1.cur' 'textures/cursors/command gather gold mono icon.cur' mv 'textures/cursors/coe690_1.cur' 'textures/cursors/command resource drop off wood icon.cur' mv 'textures/cursors/coe8ee_1.cur' 'textures/cursors/command gather favor mono icon.cur' mv 'textures/cursors/coeb2a_1.cur' 'textures/cursors/command repair mono icon.cur' mv 'textures/cursors/coec91_1.cur' 'textures/cursors/command gather food mono icon.cur' mv 'textures/cursors/coed8a_1.cur' 'textures/cursors/command gather resource mono icon.cur' mv 'textures/cursors/cof31e_1.cur' 'textures/cursors/command resource drop off mono icon.cur' mv 'textures/cursors/cof67e_1.cur' 'textures/cursors/command unboard mono icon.cur' mv 'textures/cursors/comman_1.cur' 'textures/cursors/cursor_attack.cur' mv 'textures/cursors/comman_2.cur' 'textures/cursors/command attack mono icon.cur' mv 'textures/cursors/comman_3.cur' 'textures/cursors/command board icon.cur' mv 'textures/cursors/comman_4.cur' 'textures/cursors/command board mono icon.cur' mv 'textures/cursors/cu29a0_1.cur' 'textures/cursors/cursor_pray mono.cur' mv 'textures/cursors/cu3102_1.cur' 'textures/cursors/cursor_hyperlink mono.cur' mv 'textures/cursors/cu3753_1.cur' 'textures/cursors/cursor_build mono.cur' mv 'textures/cursors/cu5567_1.cur' 'textures/cursors/cursor_pray.cur' mv 'textures/cursors/cu6cd0_1.cur' 'textures/cursors/cursor_workon.cur' mv 'textures/cursors/cu89cd_1.cur' 'textures/cursors/cursor_gather mono.cur' mv 'textures/cursors/cu8a47_1.cur' 'textures/cursors/cursor_workon mono.cur' mv 'textures/cursors/cub6eb_1.cur' 'textures/cursors/command resource drop off icon.cur' mv 'textures/cursors/cuc6cb_1.cur' 'textures/cursors/cursor_build.cur' mv 'textures/cursors/cucae1_1.cur' 'textures/cursors/command gather resource icon.cur' mv 'textures/cursors/cue611_1.cur' 'textures/cursors/cursor_pointer.cur' mv 'textures/cursors/cue9f1_1.cur' 'textures/cursors/cursor_pointer mono.cur' mv 'textures/cursors/cursor_1.cur' 'textures/cursors/cursor_ankh mono.cur' mv 'textures/cursors/cursor_2.cur' 'textures/cursors/command empower icon.cur' mv 'textures/cursors/cursor_3.cur' 'textures/cursors/cursor_attack mono.cur' mv 'textures/cursors/cursor_4.cur' 'textures/cursors/command attack icon.cur' mv 'textures/cursors/sc7b34_1.cur' 'textures/cursors/scale_vert cursor.cur' mv 'textures/cursors/scale__1.cur' 'textures/cursors/scale_both cursor mono.cur' mv 'textures/cursors/scale__2.cur' 'textures/cursors/scale_both cursor.cur' mv 'textures/cursors/scale__3.cur' 'textures/cursors/scale_horiz cursor mono.cur' mv 'textures/cursors/scale__4.cur' 'textures/cursors/scale_horiz cursor.cur' mv 'textures/cursors/scbed3_1.cur' 'textures/cursors/scale_vert cursor mono.cur' mv 'trigger/basicv_1.xs' 'trigger/basicvcnomain.xs' mv 'trigger/rmsudd_1.xs' 'trigger/rmsuddendeathvc.xs' mv 'zoneac_1.dll' 'zoneaccessapi.dll' ) # 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-alpha-centauri.sh0000750000000000000000000002032514471751340015052 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # Alpha Centauri # send your bug reports to vv221@dotslashplay.it ### script_version=20250318.2 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='alpha-centauri' GAME_NAME='Alpha Centauri' ARCHIVE_BASE_1_NAME='setup_sid_meiers_alpha_centauri_planetary_pack_1.1_pracx_ddraw_(77244).exe' ARCHIVE_BASE_1_MD5='d401431ff9c1c7526c3104194409bd6e' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_VERSION='6.0b-gog77244' ARCHIVE_BASE_1_SIZE='601205' ARCHIVE_BASE_1_URL='https://www.gog.com/game/sid_meiers_alpha_centauri' ARCHIVE_BASE_0_NAME='setup_sid_meiers_alpha_centauri_2.0.2.23.exe' ARCHIVE_BASE_0_MD5='6c9bd7e1cf88fdbfa0e75f694bf8b0e5' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='6.0b-gog2.0.2.23' ARCHIVE_BASE_0_SIZE='609309' ## Loki native Linux engine ARCHIVE_REQUIRED_ENGINE_NAME='alpha-centauri-linux.tar.xz' ARCHIVE_REQUIRED_ENGINE_MD5='a13676f2bdf1d3570ebb1835c2e4b2e8' ARCHIVE_REQUIRED_ENGINE_URL='https://downloads.dotslashplay.it/games/alpha-centauri/' ## Optional icons pack ARCHIVE_OPTIONAL_ICONS_NAME='alpha-centauri-icons.2022-10-04.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5='9293b41c5b0ab978ff007f78d29fbbcf' ARCHIVE_OPTIONAL_ICONS_URL='https://downloads.dotslashplay.it/games/alpha-centauri/' CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 16x16 32x32 48x48' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_BIN_PATH='.' CONTENT_GAME_BIN_FILES=' smac smac.dynamic smacx smacx.dynamic smacpack' CONTENT_GAME_MOVIES_FILES=' data/movies' CONTENT_FONTS_DATA_FILES=' alphc___.ttf arialnbi.ttf arialnb.ttf arialni.ttf arialn.ttf' CONTENT_FONTS0_DATA_PATH='data/fonts' CONTENT_FONTS0_DATA_FILES=' arialb.ttf ariali.ttf arialr.ttf loki_times.ttf' CONTENT_GAME_DATA_FILES=' data/facs data/fx data/maps data/projs data/scenarios data/techs data/voices data/alieniscript.txt data/alienuscript.txt data/alpha.txt data/alphax.txt data/angels.txt data/basename.txt data/believe.txt data/blurbs.txt data/blurbsx.txt data/brian.txt data/caretake.txt data/concepts.txt data/conceptsx.txt data/credits.txt data/cyborg.txt data/drone.txt data/facedit.txt data/faction.txt data/flavor.txt data/fungboy.txt data/gaians.txt data/help.txt data/helpx.txt data/hive.txt data/holobook.txt data/humanludes.txt data/interludea.txt data/interlude.txt data/interludex.txt data/jackal.txt data/labels.txt data/logfile.txt data/menu.txt data/monument.txt data/morgan.txt data/movlist.txt data/peace.txt data/pirates.txt data/planets.txt data/scenario.txt data/script.txt data/sid.txt data/spartans.txt data/system.txt data/techlongs.txt data/techshorts.txt data/tutor.txt data/univ.txt data/usurper.txt data/xscript.txt data/*.cfg data/*.cvr data/*.flc data/*.pcx data/*.sys' CONTENT_GAME0_DATA_PATH='.' CONTENT_GAME0_DATA_FILES=' data' CONTENT_DOC_DATA_FILES=' manual.pdf' CONTENT_DOC0_DATA_RELATIVE_PATH='data' CONTENT_DOC0_DATA_FILES=' readme.txt readme_ac.txt smac_xp2000_readme.txt' APP_MAIN_EXE='smac.dynamic' APP_MAIN_ICON='terran.exe' ## Work around font rendering issues. APP_MAIN_PRERUN=' # Work around font rendering issues export FREETYPE_PROPERTIES="truetype:interpreter-version=35" ' APP_SMACX_ID="${GAME_ID}-alien-crossfire" APP_SMACX_NAME="$GAME_NAME - Alien Crossfire" APP_SMACX_EXE='smacx.dynamic' APP_SMACX_ICON='terranx.exe' ## Work around font rendering issues. APP_SMACX_PRERUN="$APP_MAIN_PRERUN" PACKAGES_LIST=' PKG_BIN PKG_MOVIES PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_MOVIES PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libEGL.so.1 libfreetype.so.6 libm.so.6 libpthread.so.0 libSDL-1.2.so.0 libSDL_mixer-1.2.so.0 libSDL_ttf-2.0.so.0 libsmpeg-0.4.so.0 libz.so.1' PKG_MOVIES_ID="${GAME_ID}-movies" PKG_MOVIES_DESCRIPTION='movies' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # LD_PRELOAD shim allowing the old engine to run on top of latest SDL1 library # cf. https://github.com/ZeroPointEnergy/smacshim LD_PRELOAD_SOURCE=' #define _GNU_SOURCE #include #include void *__builtin_new(size_t size) { return malloc(size); } void __builtin_delete(void *ptr) { free(ptr); } void *__builtin_vec_new(size_t size) { return malloc(size); } void __builtin_vec_delete(void *ptr) { free(ptr); } ' # Convert text files to UNIX-style line breaks REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} dos2unix" # Convert movies from the original format REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} ffmpeg mplex" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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 the archive providing the native Linux engine archive_initialize_required \ 'ARCHIVE_ENGINE' \ 'ARCHIVE_REQUIRED_ENGINE' # Check that the "rename" command is available unset RENAME_CMD ## On Arch Linux is is provided under the name "perl-rename". for rename_cmd in 'perl-rename' 'rename'; do if command -v "$rename_cmd" >/dev/null 2>&1; then RENAME_CMD="$rename_cmd" break fi done if [ -z "${RENAME_CMD:-}" ]; then error_dependency_not_found 'rename' exit 1 fi # Extract game data archive_extraction_default archive_extraction 'ARCHIVE_ENGINE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Drop unused alternative art assets. rm --force --recursive \ 'alternative art' \ 'color blind palette' ## Replace spaces in file paths by underscores. find . -depth -name '* *' -execdir \ "$RENAME_CMD" 's/ /_/g' {} + ## Convert text files to UNIX-style line breaks. find . -type f -name '*.txt' -exec \ dos2unix --quiet {} + ## Move data files into the expected paths. mkdir --parents 'data' mv --target-directory='data' -- \ 'facs' \ 'fx' \ 'maps' \ 'projs' \ 'techs' \ 'voices' \ *.cvr \ *.flc \ *.pcx \ *.sys \ *.txt mv 'scenarios/alpha_centauri_scenarios' 'data/scenarios' if [ -e '__support/app/ip.cfg' ]; then mv '__support/app/ip.cfg' 'data/ip.cfg' else mv 'ip.cfg' 'data/ip.cfg' fi ## Convert movies from the original format. case "$(messages_language)" in ('fr') message_begin='Conversion des fichiers vidéo, cette étape peut prendre plusieurs minutes…\n' message_file='Conversion de %s…\n' message_done='Conversion terminée\n' ;; ('en'|*) message_begin='Converting video files, this will take several minutes…\n' message_file='Converting %s…\n' message_done='Converting done\n' ;; esac printf "$message_begin" mkdir 'data/movies' for source_file in movies/*.wve; do stream_video="${source_file%.wve}.m1v" stream_audio="${source_file%.wve}.mp2" destination_file="data/movies/$(basename "$source_file" .wve).mpg" printf "$message_file" "$source_file" ffmpeg -i "$source_file" -loglevel quiet -map v -codec:v mpeg1video -b:v 1727k -minrate 1727k -maxrate 1727k -r 29.97 "$stream_video" ffmpeg -i "$source_file" -loglevel quiet -map a -codec:a mp2 -ar 44100 "$stream_audio" rm "$source_file" mplex --verbose 0 --video-buffer 500 --output "$destination_file" "$stream_video" "$stream_audio" rm "$stream_video" "$stream_audio" done printf "$message_done" ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default ## Link the fonts in the hardcoded path the game engine expects. fonts_source=$(path_fonts_ttf) fonts_destination="$(package_path 'PKG_DATA')$(path_game_data)/data/fonts" mkdir --parents "$fonts_destination" for font_file in \ 'alphc___.ttf' \ 'arialr.ttf' \ 'arialb.ttf' \ 'ariali.ttf' \ 'arialn.ttf' \ 'arialnb.ttf' \ 'arialni.ttf' \ 'arialnbi.ttf' \ 'loki_times.ttf' do ln --symbolic "${fonts_source}/${font_file}" "$fonts_destination" done # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-anachronox.sh0000750000000000000000000000504214471751340014314 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2016 Mopi set -o errexit ### # Anachronox # send your bug reports to vv221@dotslashplay.it ### script_version=20241227.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='anachronox' GAME_NAME='Anachronox' ARCHIVE_BASE_1_NAME='setup_anachronox_1.02_(22258).exe' ARCHIVE_BASE_1_MD5='4e23d4f7637f6914a7cd6c13feb7ad7d' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='1074901' ARCHIVE_BASE_1_VERSION='1.02-gog22258' ARCHIVE_BASE_1_URL='https://www.gog.com/game/anachronox' ARCHIVE_BASE_0_NAME='setup_anachronox_2.0.0.28.exe' ARCHIVE_BASE_0_MD5='a9e148972e51a4980a2531d12a85dfc0' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1100000' ARCHIVE_BASE_0_VERSION='1.02-gog2.0.0.28' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_BIN_FILES=' anoxdata/miles anoxdata/plugins anoxaux.dll anoxgfx.dll gamex86.dll ijl15.dll libpng13a.dll metagl.dll mss32.dll msvcp60.dll msvcrt.dll patch.dll ref_gl.dll zlib.dll afscmd.exe anox.exe autorun.exe dparse.exe gct setup.exe particleman.exe setupanox.exe autorun.inf gct setup.ini mscomctl.ocx' CONTENT_GAME_DATA_FILES=' anoxdata anox.ico anachronox_word.jpg' CONTENT_DOC_DATA_FILES=' manual.pdf readme.htm anachronox patch 1_02.rtf *readme.txt' USER_PERSISTENT_DIRECTORIES=' anoxdata/save' USER_PERSISTENT_FILES=' *.ini anoxdata/nokill.*' APP_MAIN_EXE='anox.exe' APP_MAIN_ICON='anox.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-baldurs-gate-3.sh0000750000000000000000000020417614471751340014677 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Baldur's Gate 3 # send your bug reports to vv221@dotslashplay.it ### script_version=20250415.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='baldurs-gate-3' GAME_NAME='Baldurʼs Gate Ⅲ' 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_PATCH7_1_URL='https://www.gog.com/game/baldurs_gate_iii' ARCHIVE_BASE_PATCH7_0_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035).exe' ARCHIVE_BASE_PATCH7_0_MD5='4731f40c3ba5a04baa46f83954a11dc8' ARCHIVE_BASE_PATCH7_0_TYPE='innosetup' ARCHIVE_BASE_PATCH7_0_PART1_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-1.bin' ARCHIVE_BASE_PATCH7_0_PART1_MD5='71c4af7da8ef005e18d387565dd21b16' ARCHIVE_BASE_PATCH7_0_PART2_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-2.bin' ARCHIVE_BASE_PATCH7_0_PART2_MD5='b1ed5b656dd0fa53a60abca188966470' ARCHIVE_BASE_PATCH7_0_PART3_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-3.bin' ARCHIVE_BASE_PATCH7_0_PART3_MD5='d7dad117c9e7af9e3b86e660ab5bb7b5' ARCHIVE_BASE_PATCH7_0_PART4_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-4.bin' ARCHIVE_BASE_PATCH7_0_PART4_MD5='ae61e0a0c6124f61d343745d0fe10d57' ARCHIVE_BASE_PATCH7_0_PART5_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-5.bin' ARCHIVE_BASE_PATCH7_0_PART5_MD5='816405148684c3669784239e2cd26b02' ARCHIVE_BASE_PATCH7_0_PART6_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-6.bin' ARCHIVE_BASE_PATCH7_0_PART6_MD5='5391fcf18b77fadaf13e685e9a142b22' ARCHIVE_BASE_PATCH7_0_PART7_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-7.bin' ARCHIVE_BASE_PATCH7_0_PART7_MD5='e307ae4805537a15dcb9859be3556f4d' ARCHIVE_BASE_PATCH7_0_PART8_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-8.bin' ARCHIVE_BASE_PATCH7_0_PART8_MD5='fd5efa18847fa4c941e4b42219ad03dc' ARCHIVE_BASE_PATCH7_0_PART9_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-9.bin' ARCHIVE_BASE_PATCH7_0_PART9_MD5='0622bdb104ca1512d4a0078ad991d1ea' ARCHIVE_BASE_PATCH7_0_PART10_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-10.bin' ARCHIVE_BASE_PATCH7_0_PART10_MD5='e3f4fe11ecde3b0be12791db9eb41f67' ARCHIVE_BASE_PATCH7_0_PART11_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-11.bin' ARCHIVE_BASE_PATCH7_0_PART11_MD5='65629494b10a2e44d4b32febaedd67e1' ARCHIVE_BASE_PATCH7_0_PART12_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-12.bin' ARCHIVE_BASE_PATCH7_0_PART12_MD5='0d39d5fb7094ed2507525056edc96658' ARCHIVE_BASE_PATCH7_0_PART13_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-13.bin' ARCHIVE_BASE_PATCH7_0_PART13_MD5='e88517daedf8393b25441534603ceac1' ARCHIVE_BASE_PATCH7_0_PART14_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-14.bin' ARCHIVE_BASE_PATCH7_0_PART14_MD5='63c4c9a9b8fa4a28cf47a828e6791fc6' ARCHIVE_BASE_PATCH7_0_PART15_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-15.bin' ARCHIVE_BASE_PATCH7_0_PART15_MD5='198ee0e4bc27d4e69ec979c177f39e9f' ARCHIVE_BASE_PATCH7_0_PART16_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-16.bin' ARCHIVE_BASE_PATCH7_0_PART16_MD5='89fc96eff7849886532f52689177a7a3' ARCHIVE_BASE_PATCH7_0_PART17_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-17.bin' ARCHIVE_BASE_PATCH7_0_PART17_MD5='c44b6b7b2a65b08558d5e7a0dbd15b53' ARCHIVE_BASE_PATCH7_0_PART18_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-18.bin' ARCHIVE_BASE_PATCH7_0_PART18_MD5='3257064cdb862e995db3bcb637602efd' ARCHIVE_BASE_PATCH7_0_PART19_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-19.bin' ARCHIVE_BASE_PATCH7_0_PART19_MD5='277c3b78d305362642e2610f96b18773' ARCHIVE_BASE_PATCH7_0_PART20_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-20.bin' ARCHIVE_BASE_PATCH7_0_PART20_MD5='a474dc343c2984f22ad1cd67741583ab' ARCHIVE_BASE_PATCH7_0_PART21_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-21.bin' ARCHIVE_BASE_PATCH7_0_PART21_MD5='36b777303e40ce40afd533572dc5b669' ARCHIVE_BASE_PATCH7_0_PART22_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-22.bin' ARCHIVE_BASE_PATCH7_0_PART22_MD5='a3424984840c0d342c420861cafb610e' ARCHIVE_BASE_PATCH7_0_PART23_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-23.bin' ARCHIVE_BASE_PATCH7_0_PART23_MD5='37ee123135f0a0d5664c3ad123a14323' ARCHIVE_BASE_PATCH7_0_PART24_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-24.bin' ARCHIVE_BASE_PATCH7_0_PART24_MD5='a293911fe03fc6510d2ded8d1926e88e' ARCHIVE_BASE_PATCH7_0_PART25_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-25.bin' ARCHIVE_BASE_PATCH7_0_PART25_MD5='a5ed151d731fffc6721774ceddfe9dc6' ARCHIVE_BASE_PATCH7_0_PART26_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-26.bin' ARCHIVE_BASE_PATCH7_0_PART26_MD5='7a2b2564e8ca4289729e29f1dd7eb330' ARCHIVE_BASE_PATCH7_0_PART27_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-27.bin' ARCHIVE_BASE_PATCH7_0_PART27_MD5='6e7e8555e2c041ec6c76702dc82651eb' ARCHIVE_BASE_PATCH7_0_PART28_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-28.bin' ARCHIVE_BASE_PATCH7_0_PART28_MD5='4c0f2b5bbbfa525769977b316348b4de' ARCHIVE_BASE_PATCH7_0_PART29_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-29.bin' ARCHIVE_BASE_PATCH7_0_PART29_MD5='45bce06db81d8452f97833ecf69d1385' ARCHIVE_BASE_PATCH7_0_PART30_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-30.bin' ARCHIVE_BASE_PATCH7_0_PART30_MD5='5c499c0e5ae46ad2ccf56d231aa73743' ARCHIVE_BASE_PATCH7_0_PART31_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-31.bin' ARCHIVE_BASE_PATCH7_0_PART31_MD5='ede42db8ed1db940449a4a9e1cd2c276' ARCHIVE_BASE_PATCH7_0_PART32_NAME='setup_baldurs_gate_3_release_-_v4.1.1.6072089_-_patch_patch7_hotfix3_(64bit)_(77035)-32.bin' ARCHIVE_BASE_PATCH7_0_PART32_MD5='4209e5bdcc87061a22236b28759eba18' ARCHIVE_BASE_PATCH7_0_SIZE='151199932' ARCHIVE_BASE_PATCH7_0_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_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/icons.pak data/lowtex.pak data/materials.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' 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" 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_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_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" ## Archives patch0*.pak, patch1*.pak, patch2*.pak and patch3*.pak are dropped with the patch 4 release. PKG_DATA_PATCH4_PROVIDES=" $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_PATCH5_PROVIDES="$PKG_DATA_PATCH4_PROVIDES $PKG_DATA_PATCH4_ID" ## Archives patch5*.pak are dropped with the patch 6 release. PKG_DATA_PATCH6_PROVIDES="$PKG_DATA_PATCH5_PROVIDES $PKG_DATA_PATCH5_ID" ## Archives patch6*.pak are dropped with the patch 7 release. PKG_DATA_PATCH7_PROVIDES="$PKG_DATA_PATCH6_PROVIDES $PKG_DATA_PATCH6_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-ballisticng-expansions.sh0000750000000000000000000000355414471751340016642 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # BallisticNG expansions: # - Neon Nights # send your bug reports to vv221@dotslashplay.it ### script_version=20250504.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='ballisticng' GAME_NAME='BallisticNG' EXPANSION_ID_NEON='neon-nights' EXPANSION_NAME_NEON='Neon Nights' ARCHIVE_BASE_NEON_1_NAME='ballisticng_neon_nights_1_4_0_1_81860.sh' ARCHIVE_BASE_NEON_1_MD5='10d999ef9faeded119f293c6ee8b6d7e' ARCHIVE_BASE_NEON_1_SIZE='100096' ARCHIVE_BASE_NEON_1_VERSION='1.4.0.1-gog81860' ARCHIVE_BASE_NEON_1_URL='https://www.gog.com/game/ballisticng_neon_nights' ARCHIVE_BASE_NEON_0_NAME='ballisticng_neon_nights_1_3_3_1_69502.sh' ARCHIVE_BASE_NEON_0_MD5='18897d4477a80a88afe3a05fa52cfee9' ARCHIVE_BASE_NEON_0_SIZE='100101' ARCHIVE_BASE_NEON_0_VERSION='1.3.3.1-gog69502' 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-ballisticng.sh0000750000000000000000000000652014471751340014451 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # BallisticNG # send your bug reports to vv221@dotslashplay.it ### script_version=20250506.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='ballisticng' GAME_NAME='BallisticNG' ARCHIVE_BASE_1_NAME='ballisticng_1_4_0_1_81860.sh' ARCHIVE_BASE_1_MD5='beedfb6afab94fc66783c12b805876df' ARCHIVE_BASE_1_SIZE='3380551' ARCHIVE_BASE_1_VERSION='1.4.0.1-gog81860' ARCHIVE_BASE_1_URL='https://www.gog.com/game/ballisticng' ARCHIVE_BASE_0_NAME='ballisticng_1_3_3_1_69502.sh' ARCHIVE_BASE_0_MD5='4fd3dd5695e9f94523bb699df024dbee' ARCHIVE_BASE_0_SIZE='2749158' ARCHIVE_BASE_0_VERSION='1.3.3.1-gog69502' UNITY3D_NAME='BallisticNG' UNITY3D_PLUGINS=' cimgui.so libaudioplugin_phonon.so libphonon.so' ## Starting with game version 1.4, ## the game no longer loads without the shipped Steam library. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libsteam_api.so" CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME0_BIN_FILES=' DedicatedServerExample.cfg SvrScripts' CONTENT_GAME_EXPANSION_TRACKS_FILES=' DLC/free extra tracks.cpd DLC/free extra tracks.cps' CONTENT_GAME_EXPANSION_VOICES_FILES=' User/Mods/Sounds/Legacy System Voices' CONTENT_GAME_MODDING_FILES=' Modding' CONTENT_DOC_DATA_FILES=' Legacy Track Creator Commands.txt' USER_PERSISTENT_DIRECTORIES=' User' USER_PERSISTENT_FILES=' DedicatedServerExample.cfg' APPLICATIONS_LIST=' APP_MAIN APP_SERVER' APP_SERVER_ID="${GAME_ID}-server" APP_SERVER_NAME="$GAME_NAME - Server" APP_SERVER_OPTIONS='-batchmode -nographics -logfile -svrcfg DedicatedServerExample.cfg' PACKAGES_LIST=' PKG_BIN PKG_EXPANSION_TRACKS PKG_EXPANSION_VOICES PKG_MODDING PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_EXPANSION_TRACKS_ID="${GAME_ID}-expansion-free-extra-tracks" PKG_EXPANSION_TRACKS_DESCRIPTION='expansion - free extra tracks' PKG_EXPANSION_TRACKS_DEPENDENCIES_SIBLINGS=' PKG_BIN' PKG_EXPANSION_VOICES_ID="${GAME_ID}-expansion-legacy-system-voices" PKG_EXPANSION_VOICES_DESCRIPTION='expansion - legacy system voices' PKG_EXPANSION_VOICES_DEPENDENCIES_SIBLINGS=' PKG_BIN' PKG_MODDING_ID="${GAME_ID}-modding" PKG_MODDING_DESCRIPTION='modding' PKG_MODDING_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 # Clean up working_directory_cleanup exit 0 games/play-bastion.sh0000750000000000000000000001052514471751340013615 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2020 Hoël Bézier set -o errexit ### # Bastion # send your bug reports to vv221@dotslashplay.it ### script_version=20250429.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='bastion' GAME_NAME='Bastion' ARCHIVE_BASE_GOG_3_NAME='bastion_1_0_1747_initial_test_33876.sh' ARCHIVE_BASE_GOG_3_MD5='b4edf5e95e952a35bfde0c12959134ab' ARCHIVE_BASE_GOG_3_SIZE='1285709' ARCHIVE_BASE_GOG_3_VERSION='1.50436-gog33876' ARCHIVE_BASE_GOG_3_URL='https://www.gog.com/game/bastion' ARCHIVE_BASE_GOG_2_NAME='bastion_1_50436_29_08_2018_23317.sh' ARCHIVE_BASE_GOG_2_MD5='73c6b33c23232597bec30f211a46f73d' ARCHIVE_BASE_GOG_2_SIZE='1400000' ARCHIVE_BASE_GOG_2_VERSION='1.50436.20180829-gog23317' ARCHIVE_BASE_GOG_1_NAME='bastion_en_1_50436_23291.sh' ARCHIVE_BASE_GOG_1_MD5='59c2bbcf43cd9ba243d5fa1baa4a4b48' ARCHIVE_BASE_GOG_1_SIZE='1400000' ARCHIVE_BASE_GOG_1_VERSION='1.50436-gog23291' ARCHIVE_BASE_GOG_0_NAME='gog_bastion_2.0.0.1.sh' ARCHIVE_BASE_GOG_0_MD5='e5e6eefb4885b67abcfa201b1b3a9c48' ARCHIVE_BASE_GOG_0_SIZE='1300000' ARCHIVE_BASE_GOG_0_VERSION='1.2.20161020-gog2.0.0.1' ARCHIVE_BASE_HUMBLE_0_NAME='bastion-10162016-bin' ARCHIVE_BASE_HUMBLE_0_MD5='19fea173ff2da0f990f60bd5e7c3b237' ## This is a MojoSetup installer, not relying on Makeself. ARCHIVE_BASE_HUMBLE_0_EXTRACTOR='bsdtar' ARCHIVE_BASE_HUMBLE_0_SIZE='1253966' ARCHIVE_BASE_HUMBLE_0_VERSION='1.2.20161020-humble161019' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='data' CONTENT_GAME_MAIN_FILES=' Bastion.bmp Bastion.exe gamecontrollerdb.txt mono monomachineconfig monoconfig Content' CONTENT_DOC_MAIN_FILES=' Linux.README' ## Some Mono libraries are not provided by system packages. CONTENT_GAME0_MAIN_FILES=' FMOD.dll FNA.dll FNA.dll.config Lidgren.Network.dll MojoShader.dll MonoGame.Framework.Net.dll SDL2.dll' ## System-provided libmojoshader.so can not be used, as it triggers the following error: ## System.NullReferenceException: Object reference not set to an instance of an object ## cf. https://forge.dotslashplay.it/play.it/games/-/issues/653 CONTENT_LIBS_FILES=' libfmodex.so libmojoshader.so' CONTENT_LIBS_LIBS64_RELATIVE_PATH='lib64' CONTENT_LIBS_LIBS64_FILES="$CONTENT_LIBS_FILES" CONTENT_LIBS_LIBS32_RELATIVE_PATH='lib' CONTENT_LIBS_LIBS32_FILES="$CONTENT_LIBS_FILES" ## libSteamWrapper.so is required to prevent a crash of the Humble Bundle build, ## libsteam_api.so is required by libSteamWrapper.so. CONTENT_LIBS0_FILES=' libSteamWrapper.so libsteam_api.so' CONTENT_LIBS0_LIBS64_RELATIVE_PATH='lib64' CONTENT_LIBS0_LIBS64_FILES_HUMBLE="$CONTENT_LIBS0_FILES" CONTENT_LIBS0_LIBS32_RELATIVE_PATH='lib' CONTENT_LIBS0_LIBS32_FILES_HUMBLE="$CONTENT_LIBS0_FILES" APP_MAIN_EXE='Bastion.exe' APP_MAIN_ICON='Bastion.bmp' PACKAGES_LIST=' PKG_MAIN PKG_LIBS32 PKG_LIBS64' PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_LIBS' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libGL.so.1 libSDL2-2.0.so.0 libudev.so.1' PKG_MAIN_DEPENDENCIES_MONO_LIBRARIES=' mscorlib.dll Mono.Posix.dll Mono.Security.dll System.dll System.Configuration.dll System.Core.dll System.Data.dll System.Drawing.dll System.Numerics.dll System.Runtime.Serialization.dll System.Security.dll System.Xml.dll System.Xml.Linq.dll' PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS64_ARCH='64' PKG_LIBS32_ARCH='32' ## FIXME: Add the list of required system 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_MAIN' content_inclusion_default # Write launchers launchers_generation 'PKG_MAIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-beyond-good-and-evil.sh0000750000000000000000000000674014471751340016065 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2017 Mopi set -o errexit ### # Beyond Good and Evil # send your bug reports to vv221@dotslashplay.it ### script_version=20250310.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='beyond-good-and-evil' GAME_NAME='Beyond Good and Evil' ARCHIVE_BASE_0_NAME='setup_beyond_good_and_evil_2.1.0.9.exe' ARCHIVE_BASE_0_MD5='fdfa4b94cf02e24523b01c9d54568482' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2195754' ARCHIVE_BASE_0_VERSION='1.0-gog2.1.0.9' ARCHIVE_BASE_0_URL='https://www.gog.com/game/beyond_good_and_evil' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' binkw32.dll bge.exe checkapplication.exe run.exe settingsapplication.exe' CONTENT_GAME0_BIN_PATH='sys' CONTENT_GAME0_BIN_FILES=' eax.dll' CONTENT_GAME_DATA_FILES=' bgemakingof.bik jade.spe sally_clean.bf' CONTENT_DOC_DATA_FILES=' manual.pdf readme.txt' USER_PERSISTENT_FILES=' sally.idx *.sav' WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\Ubisoft\Beyond Good & Evil\settingsapplication.INI' ## Silence a ShellCheck false positive ## SC1003 (info): Want to escape a single quote? echo 'This is how it'\''s done'. # shellcheck disable=SC1003 WINE_REGISTRY_INIT=' [HKEY_LOCAL_MACHINE\Software\Ubisoft\Beyond Good & Evil] "Install path"="C:\\'"${GAME_ID}"'"' APP_MAIN_EXE='run.exe' APP_MAIN_ICON='bge.exe' ## Hide EAX library from the game, this helps avoiding some sound issues. ## The library should still be available to the settings application. APP_MAIN_PRERUN=' # Hide EAX library from the game, this helps avoiding some sound issues. rm --force eax.dll ' APP_SETTINGS_ID="${GAME_ID}-settings" APP_SETTINGS_NAME="${GAME_NAME} - settings" APP_SETTINGS_CAT='Settings' APP_SETTINGS_EXE='settingsapplication.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 "$@" # Automatically spawn game settings window on first launch ## Using desktop_field_exec here ensures that we get a path already escaped if required. settings_cmd=$(desktop_field_exec 'APP_SETTINGS') APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN')"' # Automatically spawn game settings window on first launch settings_registry_key='\''HKEY_CURRENT_USER\Software\Ubisoft\Beyond Good & Evil\settingsapplication.INI'\'' settings_registry_dump="${REGEDIT_DUMPS_WINEPREFIX_PATH}/$(regedit_convert_key_to_path "$settings_registry_key")" if [ ! -e "$settings_registry_dump" ]; then '"${settings_cmd}"' exit 0 fi' # 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-blacksad-under-the-skin.sh0000750000000000000000000001064414471751340016557 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Blacksad: Under the Skin # send your bug reports to vv221@dotslashplay.it ### script_version=20241230.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='blacksad-under-the-skin' GAME_NAME='Blacksad: Under the Skin' ARCHIVE_BASE_2_NAME='setup_blacksad_under_the_skin_20270705_blacksad_patch_(74700).exe' ARCHIVE_BASE_2_MD5='70a5fc8fb6321cf832154a6db74366f5' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_PART1_NAME='setup_blacksad_under_the_skin_20270705_blacksad_patch_(74700)-1.bin' ARCHIVE_BASE_2_PART1_MD5='0d258ccdb79b34e9124108c73a18b49f' ARCHIVE_BASE_2_PART2_NAME='setup_blacksad_under_the_skin_20270705_blacksad_patch_(74700)-2.bin' ARCHIVE_BASE_2_PART2_MD5='3ef508b9e836742dc5ead2519799b5b5' ARCHIVE_BASE_2_PART3_NAME='setup_blacksad_under_the_skin_20270705_blacksad_patch_(74700)-3.bin' ARCHIVE_BASE_2_PART3_MD5='c0a9371f54b7dd6150ecdf4d7f8c9a09' ARCHIVE_BASE_2_PART4_NAME='setup_blacksad_under_the_skin_20270705_blacksad_patch_(74700)-4.bin' ARCHIVE_BASE_2_PART4_MD5='5d9e0d6b7b1af4c423f44e599ce70fa1' ARCHIVE_BASE_2_SIZE='15210283' ## "20270705" is most probably a typo for "20240705". ARCHIVE_BASE_2_VERSION='2024.07.05-gog74700' ARCHIVE_BASE_2_URL='https://www.gog.com/game/blacksad_under_the_skin' ARCHIVE_BASE_1_NAME='setup_blacksad_under_the_skin_20240621_(74269).exe' ARCHIVE_BASE_1_MD5='9e1bafb70073291b5bbf554ba9f48cb7' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_blacksad_under_the_skin_20240621_(74269)-1.bin' ARCHIVE_BASE_1_PART1_MD5='19b038f25821bb10fe8439af45db294b' ARCHIVE_BASE_1_PART2_NAME='setup_blacksad_under_the_skin_20240621_(74269)-2.bin' ARCHIVE_BASE_1_PART2_MD5='9085f255243fd1eddc058ded6a69da97' ARCHIVE_BASE_1_PART3_NAME='setup_blacksad_under_the_skin_20240621_(74269)-3.bin' ARCHIVE_BASE_1_PART3_MD5='14e9c32b5fbb26a4c004cca8175dfd42' ARCHIVE_BASE_1_PART4_NAME='setup_blacksad_under_the_skin_20240621_(74269)-4.bin' ARCHIVE_BASE_1_PART4_MD5='b1f14b3ae72154f77f0905f1c51e5bcb' ARCHIVE_BASE_1_SIZE='15208271' ARCHIVE_BASE_1_VERSION='2024.06.21-gog74269' ARCHIVE_BASE_0_NAME='setup_blacksad_under_the_skin_1.0.5_12210.2935.2020040301_(37312).exe' ARCHIVE_BASE_0_MD5='9c9211aac30170bf4ac85950094f99a2' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_blacksad_under_the_skin_1.0.5_12210.2935.2020040301_(37312)-1.bin' ARCHIVE_BASE_0_PART1_MD5='0d21ed49ef3377b4816ae364cbb5eee1' ARCHIVE_BASE_0_PART2_NAME='setup_blacksad_under_the_skin_1.0.5_12210.2935.2020040301_(37312)-2.bin' ARCHIVE_BASE_0_PART2_MD5='58e82951055a5c863cd804f2421e729f' ARCHIVE_BASE_0_PART3_NAME='setup_blacksad_under_the_skin_1.0.5_12210.2935.2020040301_(37312)-3.bin' ARCHIVE_BASE_0_PART3_MD5='acf9dc21ffa4d483b124561e5b19633d' ARCHIVE_BASE_0_PART4_NAME='setup_blacksad_under_the_skin_1.0.5_12210.2935.2020040301_(37312)-4.bin' ARCHIVE_BASE_0_PART4_MD5='d1c80d50a67c2a4212e9898416193562' ARCHIVE_BASE_0_SIZE='16000000' ARCHIVE_BASE_0_VERSION='1.0.5-gog37312' UNITY3D_NAME='blacksad' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_DATA_ASSETS_FILES=" ${UNITY3D_NAME}_data/streamingassets" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/PenduloStudios/Blacksad' PACKAGES_LIST=' PKG_BIN PKG_DATA_ASSETS PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_DATA_ASSETS' PKG_DATA_ASSETS_ID="${PKG_DATA_ID}-assets" PKG_DATA_ASSETS_DESCRIPTION="$PKG_DATA_DESCRIPTION - 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-blackwell-series.sh0000750000000000000000000003005214471751340015403 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Blackwell series: # - Blackwell 1 # - Blackwell 2 # - Blackwell 3 # - Blackwell 4 # - Blackwell 5 # send your bug reports to vv221@dotslashplay.it ### script_version=20250722.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID_BLACKWELL1='blackwell-1' GAME_NAME_BLACKWELL1='Blackwell 1: The Blackwell Legacy' GAME_ID_BLACKWELL2='blackwell-2' GAME_NAME_BLACKWELL2='Blackwell 2: Blackwell Unbound' GAME_ID_BLACKWELL3='blackwell-3' GAME_NAME_BLACKWELL3='Blackwell 3: The Blackwell Convergence' GAME_ID_BLACKWELL4='blackwell-4' GAME_NAME_BLACKWELL4='Blackwell 4: The Blackwell Deception' GAME_ID_BLACKWELL5='blackwell-5' GAME_NAME_BLACKWELL5='Blackwell 5: The Blackwell Epiphany' # Game archives ## Blackwell 1 ARCHIVE_BASE_BLACKWELL1_9_NAME='blackwell_legacy_4_0c_83072.sh' ARCHIVE_BASE_BLACKWELL1_9_MD5='49e613195092d1b0ec88dcb3caf67a90' ARCHIVE_BASE_BLACKWELL1_9_SIZE='317377' ARCHIVE_BASE_BLACKWELL1_9_VERSION='4.0c-gog83072' ARCHIVE_BASE_BLACKWELL1_9_URL='https://www.gog.com/game/blackwell_bundle' ARCHIVE_BASE_BLACKWELL1_8_NAME='blackwell_legacy_4_0b_81238.sh' ARCHIVE_BASE_BLACKWELL1_8_MD5='03b3da181b08c148781d422165fbeaf4' ARCHIVE_BASE_BLACKWELL1_8_SIZE='317376' ARCHIVE_BASE_BLACKWELL1_8_VERSION='4.0b-gog81238' ARCHIVE_BASE_BLACKWELL1_7_NAME='blackwell_legacy_4_0_79895.sh' ARCHIVE_BASE_BLACKWELL1_7_MD5='3606c861a4d62a55f8a451a9d07e3b1b' ARCHIVE_BASE_BLACKWELL1_7_SIZE='312096' ARCHIVE_BASE_BLACKWELL1_7_VERSION='4.0-gog79895' ARCHIVE_BASE_BLACKWELL1_6_NAME='blackwell_legacy_3_7_76434.sh' ARCHIVE_BASE_BLACKWELL1_6_MD5='2cfc73a83548212940a995ab4b01dd50' ARCHIVE_BASE_BLACKWELL1_6_SIZE='312095' ARCHIVE_BASE_BLACKWELL1_6_VERSION='3.7-gog76434' ARCHIVE_BASE_BLACKWELL1_5_NAME='blackwell_legacy_3_5_71786.sh' ARCHIVE_BASE_BLACKWELL1_5_MD5='3b1b569ec92ff53a8ad243627a13c6a2' ARCHIVE_BASE_BLACKWELL1_5_SIZE='312061' ARCHIVE_BASE_BLACKWELL1_5_VERSION='3.5-gog71786' ARCHIVE_BASE_BLACKWELL1_4_NAME='blackwell_legacy_3_1_67142.sh' ARCHIVE_BASE_BLACKWELL1_4_MD5='840ad19ae85cbfdcbc431e8333767f0d' ARCHIVE_BASE_BLACKWELL1_4_SIZE='312516' ARCHIVE_BASE_BLACKWELL1_4_VERSION='3.1-gog67142' ARCHIVE_BASE_BLACKWELL1_3_NAME='blackwell_legacy_3_0_66153.sh' ARCHIVE_BASE_BLACKWELL1_3_MD5='f21fa6de53dc115ccfb769ffe3ef9e70' ARCHIVE_BASE_BLACKWELL1_3_SIZE='320000' ARCHIVE_BASE_BLACKWELL1_3_VERSION='3.0-gog66153' ARCHIVE_BASE_BLACKWELL1_2_NAME='blackwell_legacy_2_4a_55329.sh' ARCHIVE_BASE_BLACKWELL1_2_MD5='4ac2a52315daa0ccde214adf68dadfc9' ARCHIVE_BASE_BLACKWELL1_2_SIZE='320000' ARCHIVE_BASE_BLACKWELL1_2_VERSION='2.4a-gog55329' ARCHIVE_BASE_BLACKWELL1_1_NAME='blackwell_legacy_2_2_3_53579.sh' ARCHIVE_BASE_BLACKWELL1_1_MD5='1649b8c1c430dd24b0bbe89f7ccb541b' ARCHIVE_BASE_BLACKWELL1_1_SIZE='320000' ARCHIVE_BASE_BLACKWELL1_1_VERSION='2.2.3-gog53579' ## Optional icons pack ARCHIVE_OPTIONAL_ICONS_NAME_BLACKWELL1='blackwell-1_icons.tar.xz' ARCHIVE_OPTIONAL_ICONS_MD5_BLACKWELL1='3352b2267c9200b1c06d21c5d65ddef8' ARCHIVE_OPTIONAL_ICONS_URL_BLACKWELL1='https://downloads.dotslashplay.it/games/blackwell/' CONTENT_ICONS_PATH_BLACKWELL1='.' CONTENT_ICONS_FILES_BLACKWELL1=' 16x16 24x24 32x32 48x48 256x256' ## Blackwell 2 ARCHIVE_BASE_BLACKWELL2_8_NAME='blackwell_unbound_4_4a_81600.sh' ARCHIVE_BASE_BLACKWELL2_8_MD5='eedcfdacbd2b2a659d46bc4f4eca463b' ARCHIVE_BASE_BLACKWELL2_8_SIZE='268420' ARCHIVE_BASE_BLACKWELL2_8_VERSION='4.4a-gog81600' ARCHIVE_BASE_BLACKWELL2_8_URL='https://www.gog.com/game/blackwell_bundle' ARCHIVE_BASE_BLACKWELL2_7_NAME='blackwell_unbound_4_3_80449.sh' ARCHIVE_BASE_BLACKWELL2_7_MD5='239baa7241c168919308e1b1cd6d1cd9' ARCHIVE_BASE_BLACKWELL2_7_SIZE='263139' ARCHIVE_BASE_BLACKWELL2_7_VERSION='4.3-gog80449' ARCHIVE_BASE_BLACKWELL2_6_NAME='blackwell_unbound_4_2_80305.sh' ARCHIVE_BASE_BLACKWELL2_6_MD5='70f444e9b31bb77452f7978d087336cb' ARCHIVE_BASE_BLACKWELL2_6_SIZE='263130' ARCHIVE_BASE_BLACKWELL2_6_VERSION='4.2-gog80305' ARCHIVE_BASE_BLACKWELL2_5_NAME='blackwell_unbound_3_1a_71097.sh' ARCHIVE_BASE_BLACKWELL2_5_MD5='9bcabf910cf4f719ecb2f4d8a8d033ad' ARCHIVE_BASE_BLACKWELL2_5_SIZE='263113' ARCHIVE_BASE_BLACKWELL2_5_VERSION='3.1a-gog71097' ARCHIVE_BASE_BLACKWELL2_4_NAME='blackwell_unbound_3_0_67142.sh' ARCHIVE_BASE_BLACKWELL2_4_MD5='8336d9714956fbe4b2a872afdabca960' ARCHIVE_BASE_BLACKWELL2_4_SIZE='263568' ARCHIVE_BASE_BLACKWELL2_4_VERSION='3.0-gog67142' ARCHIVE_BASE_BLACKWELL2_3_NAME='blackwell_unbound_3_0_66153.sh' ARCHIVE_BASE_BLACKWELL2_3_MD5='efcc0c8bb1643ca653b72a3675534dee' ARCHIVE_BASE_BLACKWELL2_3_SIZE='270000' ARCHIVE_BASE_BLACKWELL2_3_VERSION='3.0-gog66153' ARCHIVE_BASE_BLACKWELL2_2_NAME='blackwell_unbound_2_4_57370.sh' ARCHIVE_BASE_BLACKWELL2_2_MD5='3eaef9e29721384d1aec74fe0901f195' ARCHIVE_BASE_BLACKWELL2_2_SIZE='260000' ARCHIVE_BASE_BLACKWELL2_2_VERSION='2.4-gog57370' ARCHIVE_BASE_BLACKWELL2_1_NAME='blackwell_unbound_2_2_2_1_53176.sh' ARCHIVE_BASE_BLACKWELL2_1_MD5='026d7f9171819be7bd4d4bfe3b9e9f6e' ARCHIVE_BASE_BLACKWELL2_1_SIZE='260000' ARCHIVE_BASE_BLACKWELL2_1_VERSION='2.2.2.1-gog53176' ## Optional icons pack ARCHIVE_OPTIONAL_ICONS_NAME_BLACKWELL2='blackwell-2_icons.tar.xz' ARCHIVE_OPTIONAL_ICONS_MD5_BLACKWELL2='e7bef09076eaf830effc44d7fe6b8a9e' ARCHIVE_OPTIONAL_ICONS_URL_BLACKWELL2='https://downloads.dotslashplay.it/games/blackwell/' CONTENT_ICONS_PATH_BLACKWELL2='.' CONTENT_ICONS_FILES_BLACKWELL2=' 16x16 24x24 32x32 48x48 256x256' ## Blackwell 3 ARCHIVE_BASE_BLACKWELL3_5_NAME='blackwell_convergence_3_1c_81238.sh' ARCHIVE_BASE_BLACKWELL3_5_MD5='61d6ec1f808ccbae6e81e1bad5731a93' ARCHIVE_BASE_BLACKWELL3_5_SIZE='330405' ARCHIVE_BASE_BLACKWELL3_5_VERSION='3.1c-gog81238' ARCHIVE_BASE_BLACKWELL3_5_URL='https://www.gog.com/game/blackwell_bundle' ARCHIVE_BASE_BLACKWELL3_4_NAME='blackwell_convergence_3_1a_71097.sh' ARCHIVE_BASE_BLACKWELL3_4_MD5='1ca9574462053e33555da972f02accbc' ARCHIVE_BASE_BLACKWELL3_4_SIZE='325125' ARCHIVE_BASE_BLACKWELL3_4_VERSION='3.1a-gog71097' ARCHIVE_BASE_BLACKWELL3_3_NAME='blackwell_convergence_3_0_67142.sh' ARCHIVE_BASE_BLACKWELL3_3_MD5='a0e8f8eb25df6e3aab086424c4e5c8e7' ARCHIVE_BASE_BLACKWELL3_3_SIZE='325592' ARCHIVE_BASE_BLACKWELL3_3_VERSION='3.0-gog67142' ARCHIVE_BASE_BLACKWELL3_2_NAME='blackwell_convergence_3_0_66153.sh' ARCHIVE_BASE_BLACKWELL3_2_MD5='2c074d610175629e72e1f7e4970e9342' ARCHIVE_BASE_BLACKWELL3_2_SIZE='330000' ARCHIVE_BASE_BLACKWELL3_2_VERSION='3.0-gog66153' ARCHIVE_BASE_BLACKWELL3_1_NAME='blackwell_convergence_2_2_2_53176.sh' ARCHIVE_BASE_BLACKWELL3_1_MD5='e0e6b8c425c35804f47aa0ffe41ff98d' ARCHIVE_BASE_BLACKWELL3_1_SIZE='380000' ARCHIVE_BASE_BLACKWELL3_1_VERSION='2.2.2-gog53176' ## Optional icons pack ARCHIVE_OPTIONAL_ICONS_NAME_BLACKWELL3='blackwell-3_icons.tar.xz' ARCHIVE_OPTIONAL_ICONS_MD5_BLACKWELL3='49cb2320d1a32788399493dd42e3d607' ARCHIVE_OPTIONAL_ICONS_URL_BLACKWELL3='https://downloads.dotslashplay.it/games/blackwell/' CONTENT_ICONS_PATH_BLACKWELL3='.' CONTENT_ICONS_FILES_BLACKWELL3=' 32x32 64x64 256x256' ## Blackwell 4 ARCHIVE_BASE_BLACKWELL4_8_NAME='blackwell_deception_3_5_82978.sh' ARCHIVE_BASE_BLACKWELL4_8_MD5='f6a7bb4f86a9cd9dd789e3b94ce3192c' ARCHIVE_BASE_BLACKWELL4_8_SIZE='590765' ARCHIVE_BASE_BLACKWELL4_8_VERSION='3.5-gog82978' ARCHIVE_BASE_BLACKWELL4_8_URL='https://www.gog.com/game/blackwell_bundle' ARCHIVE_BASE_BLACKWELL4_7_NAME='blackwell_deception_3_3d_82942.sh' ARCHIVE_BASE_BLACKWELL4_7_MD5='ba5f8461ef4206863391fabad12d6fb9' ARCHIVE_BASE_BLACKWELL4_7_SIZE='590764' ARCHIVE_BASE_BLACKWELL4_7_VERSION='3.3d-gog82942' ARCHIVE_BASE_BLACKWELL4_6_NAME='blackwell_deception_3_3_76159.sh' ARCHIVE_BASE_BLACKWELL4_6_MD5='a65df9a5e03d9c656c5fda6075e698a5' ARCHIVE_BASE_BLACKWELL4_6_SIZE='585481' ARCHIVE_BASE_BLACKWELL4_6_VERSION='3.3-gog76159' ARCHIVE_BASE_BLACKWELL4_4_NAME='blackwell_deception_3_2_72383.sh' ARCHIVE_BASE_BLACKWELL4_4_MD5='65531d5078cefc73589ddefcb4e10672' ARCHIVE_BASE_BLACKWELL4_4_SIZE='585481' ARCHIVE_BASE_BLACKWELL4_4_VERSION='3.2-gog72383' ARCHIVE_BASE_BLACKWELL4_3_NAME='blackwell_deception_3_0_67142.sh' ARCHIVE_BASE_BLACKWELL4_3_MD5='c4823fb1410fd412b6262323d9b05a19' ARCHIVE_BASE_BLACKWELL4_3_SIZE='585944' ARCHIVE_BASE_BLACKWELL4_3_VERSION='3.0-gog67142' ARCHIVE_BASE_BLACKWELL4_2_NAME='blackwell_deception_3_0_66153.sh' ARCHIVE_BASE_BLACKWELL4_2_MD5='c8839642e293df1a016db8ed6046dbee' ARCHIVE_BASE_BLACKWELL4_2_SIZE='590000' ARCHIVE_BASE_BLACKWELL4_2_VERSION='3.0-gog66153' ARCHIVE_BASE_BLACKWELL4_1_NAME='blackwell_deception_1_3_53244.sh' ARCHIVE_BASE_BLACKWELL4_1_MD5='61c144995e396515948fbb15c3467494' ARCHIVE_BASE_BLACKWELL4_1_SIZE='660000' ARCHIVE_BASE_BLACKWELL4_1_VERSION='1.3-gog53244' ## Optional icons pack ARCHIVE_OPTIONAL_ICONS_NAME_BLACKWELL4='blackwell-4_icons.tar.xz' ARCHIVE_OPTIONAL_ICONS_MD5_BLACKWELL4='d9dae751697727cb42e43221755f507a' ARCHIVE_OPTIONAL_ICONS_URL_BLACKWELL4='https://downloads.dotslashplay.it/games/blackwell/' CONTENT_ICONS_PATH_BLACKWELL4='.' CONTENT_ICONS_FILES_BLACKWELL4=' 16x16 24x24 32x32 48x48 256x256' ## Blackwell 5 ARCHIVE_BASE_BLACKWELL5_6_NAME='blackwell_epiphany_3_3c_81238.sh' ARCHIVE_BASE_BLACKWELL5_6_MD5='9d6e3f969f8c267a8e53ec519dc361f5' ARCHIVE_BASE_BLACKWELL5_6_SIZE='869580' ARCHIVE_BASE_BLACKWELL5_6_VERSION='3.3c-gog81238' ARCHIVE_BASE_BLACKWELL5_6_URL='https://www.gog.com/game/blackwell_epiphany_the' ARCHIVE_BASE_BLACKWELL5_5_NAME='blackwell_epiphany_3_3a_78230.sh' ARCHIVE_BASE_BLACKWELL5_5_MD5='765e4f7f90161c7708728f7096d2a495' ARCHIVE_BASE_BLACKWELL5_5_SIZE='864300' ARCHIVE_BASE_BLACKWELL5_5_VERSION='3.3a-gog78230' ARCHIVE_BASE_BLACKWELL5_4_NAME='blackwell_epiphany_3_1a_71097.sh' ARCHIVE_BASE_BLACKWELL5_4_MD5='b313ed9ee4a8531a2205f3d9f1932f9d' ARCHIVE_BASE_BLACKWELL5_4_SIZE='864300' ARCHIVE_BASE_BLACKWELL5_4_VERSION='3.1a-gog71097' ARCHIVE_BASE_BLACKWELL5_3_NAME='blackwell_epiphany_3_0_67142.sh' ARCHIVE_BASE_BLACKWELL5_3_MD5='bc979e295bee8e1e7e59299bea33080f' ARCHIVE_BASE_BLACKWELL5_3_SIZE='864772' ARCHIVE_BASE_BLACKWELL5_3_VERSION='3.0-gog67142' ARCHIVE_BASE_BLACKWELL5_2_NAME='blackwell_epiphany_3_0_66153.sh' ARCHIVE_BASE_BLACKWELL5_2_MD5='c0865ccac7ad31c7dc95a0b1a171e589' ARCHIVE_BASE_BLACKWELL5_2_SIZE='870000' ARCHIVE_BASE_BLACKWELL5_2_VERSION='3.0-gog66153' ARCHIVE_BASE_BLACKWELL5_1_NAME='blackwell_epiphany_2_2_53244.sh' ARCHIVE_BASE_BLACKWELL5_1_MD5='6ffbcfb56b62e476a0255eaa1a2aae6d' ARCHIVE_BASE_BLACKWELL5_1_SIZE='890000' ARCHIVE_BASE_BLACKWELL5_1_VERSION='2.2-gog53244' ## Optional icons pack ARCHIVE_OPTIONAL_ICONS_NAME_BLACKWELL5='blackwell-5_icons.tar.xz' ARCHIVE_OPTIONAL_ICONS_MD5_BLACKWELL5='7f054b2b1c499de5d992adbfe07411ba' ARCHIVE_OPTIONAL_ICONS_URL_BLACKWELL5='https://downloads.dotslashplay.it/games/blackwell/' CONTENT_ICONS_PATH_BLACKWELL5='.' CONTENT_ICONS_FILES_BLACKWELL5=' 16x16 24x24 32x32 48x48 256x256' AGS_NAME_BLACKWELL1='blackwell1' AGS_NAME_BLACKWELL2='blackwell2' AGS_NAME_BLACKWELL3='blackwell3' AGS_NAME_BLACKWELL4='blackwell4' AGS_NAME_BLACKWELL5='blackwell5' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_DOC_MAIN_FILES=' licenses' APP_MAIN_ICON='../support/icon.png' APP_MAIN_ICON_BLACKWELL1_1='Blackwell Legacy.exe' APP_MAIN_ICON_BLACKWELL1_2='Blackwell Legacy.exe' APP_MAIN_ICON_BLACKWELL2_1='Unbound.exe' APP_MAIN_ICON_BLACKWELL2_2='Unbound.exe' APP_MAIN_ICON_BLACKWELL3_1='Convergence.exe' APP_MAIN_ICON_BLACKWELL4_1='Deception.exe' APP_MAIN_ICON_BLACKWELL5_1='Epiphany.exe' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-caesar-3.sh0000750000000000000000000000602114471751340013550 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # Caesar 3 # send your bug reports to vv221@dotslashplay.it ### script_version=20250724.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='caesar-3' GAME_NAME='Cæsar Ⅲ' # Archives ## Base game installer ARCHIVE_BASE_1_NAME='setup_caesartm_3_1.0.1.0_(76354).exe' ARCHIVE_BASE_1_MD5='6a5ee051d469f1b3eea42d84e483b066' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='650439' ARCHIVE_BASE_1_VERSION='1.0.1.0-gog76354' ARCHIVE_BASE_1_URL='https://www.gog.com/game/caesar_3' ARCHIVE_BASE_0_NAME='setup_caesar3_2.0.0.9.exe' ARCHIVE_BASE_0_MD5='2ee16fab54493e1c2a69122fd2e56635' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='550000' ARCHIVE_BASE_0_VERSION='1.1-gog2.0.0.9' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_MAIN_FILES=' 555 smk wavs mission1.pak c3_model.txt *.555 *.emp *.eng *.map *.sg2' CONTENT_DOC_MAIN_FILES=' readme.txt *.pdf' USER_PERSISTENT_FILES=' c3_model.txt status.txt *.ini *.sav' APP_MAIN_TYPE='custom' APP_MAIN_ICON='c3.exe' PKG_MAIN_DEPENDENCIES_COMMANDS=' julius' ## Ensure easy upgrades from packages generated with pre-20250112.1 game scripts PKG_MAIN_PROVIDES="${PKG_MAIN_PROVIDES:-} caesar-3-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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 custom_launcher() { local application application="$1" launcher_headers # Set the paths that should be available to the generated launcher launcher_init_paths "$application" # Generate the game prefix prefix_symlinks_generate # Set up the paths diversion to persistent storage persistent_storage_initialization persistent_storage_common persistent_path_diversion persistent_storage_update_directories persistent_storage_update_files native_launcher_run "$application" # Update persistent storage with files from the current prefix persistent_storage_update_files_from_prefix launcher_exit } native_launcher_binary_copy() { return 0; } case "$(option_value 'package')" in ('gentoo'|'egentoo') game_exec_line() { cat <<- 'EOF' julius-game "$@" EOF } ;; (*) game_exec_line() { cat <<- 'EOF' julius "$@" EOF } ;; esac launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-children-of-morta-expansions.sh0000750000000000000000000000422314471751340017653 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 vv221@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.sh0000750000000000000000000000431414471751340015467 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 vv221@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-dark-reign-2.sh0000750000000000000000000000643314471751340014343 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Dark Reign 2 # send your bug reports to vv221@dotslashplay.it ### script_version=20250312.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='dark-reign-2' GAME_NAME='Dark Reign 2' ARCHIVE_BASE_1_NAME='setup_dark_reign_2_1.3_(56283).exe' ARCHIVE_BASE_1_MD5='23b441f1a8ffd5302e7cde3c1099cb73' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_VERSION='1.3.882-gog56283' ARCHIVE_BASE_1_SIZE='572562' ARCHIVE_BASE_1_URL='https://www.gog.com/game/dark_reign_2' ARCHIVE_BASE_0_NAME='setup_dark_reign2_2.0.0.11.exe' ARCHIVE_BASE_0_MD5='9a3d10825507b73c4db178f9caea2406' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='1.3.882-gog2.0.0.11' ARCHIVE_BASE_0_SIZE='450000' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_BIN_FILES=' library settings.cfg _inmm.dll binkw32.dll ddraw.dll getinfo.dll libogg.dll libvorbis.dll libvorbisfile.dll mss32.dll msvcp90.dll msvcr90.dll dr2.exe dxcfg.exe anet.inf dxcfg.ini' ## Register the game CD-key ## This file is generated later in this script. CONTENT_GAME0_BIN_FILES=' cdkey' ## launcher.exe is only provided with the 2.0.0.11 GOG build. CONTENT_GAME1_BIN_FILES_0=' launcher.exe' CONTENT_GAME_DATA_FILES=' missions mods music packs sides worlds' CONTENT_DOC_DATA_FILES=' customer_support.htm manual.pdf readme.rtf license.txt' USER_PERSISTENT_DIRECTORIES=' mods users' USER_PERSISTENT_FILES=' settings.cfg' WINE_VIRTUAL_DESKTOP='auto' WINE_WINETRICKS_VERBS='win98' APP_MAIN_EXE='dr2.exe' APP_MAIN_EXE_0='launcher.exe' APP_MAIN_ICON='dr2.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' # Register the game CD-key REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} base64 xxd" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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)" # Register the game CD-key # The source is a base64-encoded string, that must be converted to an hexadecimal representation. sed --silent '71s/.*"valueData": "\(.*\)",/\1/p' goggame-1207658911.script | \ base64 --decode | xxd -plain \ > 'cdkey' ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## Register the game CD-key wineprefix_init_custom() { cat <<- 'EOF' cdkey=$(cat "${PATH_GAME_DATA}/cdkey") $(wine_command) reg add "HKLM\\Software\\WON\\CDKeys" /v "DarkReign2" /t REG_BINARY /d "$cdkey" /f EOF } launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-darkest-dungeon-expansions.sh0000750000000000000000000002424214471751340017436 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Darkest Dungeon expansions: # - Musketeer # - The Crimson Court # - The Shieldbreaker # - The Color of Madness # send your bug reports to vv221@dotslashplay.it ### script_version=20250531.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='darkest-dungeon' GAME_NAME='Darkest Dungeon' EXPANSION_ID_MUSKETEER='musketeer' EXPANSION_NAME_MUSKETEER='Musketeer' EXPANSION_ID_CRIMSONCOURT='crimson-court' EXPANSION_NAME_CRIMSONCOURT='The Crimson Court' EXPANSION_ID_SHIELDBREAKER='shieldbreaker' EXPANSION_NAME_SHIELDBREAKER='The Shieldbreaker' EXPANSION_ID_COLOROFMADNESS='color-of-madness' EXPANSION_NAME_COLOROFMADNESS='The Color of Madness' # Archives ## Musketeer ## This build is the one provided by GOG since 2025-05-29, ## but it is an old build from 2018. ARCHIVE_BASE_MUSKETEER_6_NAME='darkest_dungeon_musketeer_24788_82473.sh' ARCHIVE_BASE_MUSKETEER_6_MD5='3af92d89c085c91d7e654da2171c70a8' ARCHIVE_BASE_MUSKETEER_6_SIZE='20500' ARCHIVE_BASE_MUSKETEER_6_VERSION='24788-gog82473' ARCHIVE_BASE_MUSKETEER_6_URL='https://www.gog.com/game/darkest_dungeon_musketeer' ARCHIVE_BASE_MUSKETEER_5_NAME='darkest_dungeon_musketeer_26186_81633.sh' ARCHIVE_BASE_MUSKETEER_5_MD5='c7f10e04a57302b89f6793768f9fc1de' ARCHIVE_BASE_MUSKETEER_5_SIZE='20500' ARCHIVE_BASE_MUSKETEER_5_VERSION='26186-gog81633' ARCHIVE_BASE_MUSKETEER_4_NAME='darkest_dungeon_musketeer_24839_28859.sh' ARCHIVE_BASE_MUSKETEER_4_MD5='ee9980710f2d4e229b5b2afb22918dac' ARCHIVE_BASE_MUSKETEER_4_SIZE='22000' ARCHIVE_BASE_MUSKETEER_4_VERSION='24839-gog28859' ARCHIVE_BASE_MUSKETEER_3_NAME='darkest_dungeon_musketeer_24788_26004.sh' ARCHIVE_BASE_MUSKETEER_3_MD5='2e24f30855bd6404f940d66d0b1b44d9' ARCHIVE_BASE_MUSKETEER_3_SIZE='22000' ARCHIVE_BASE_MUSKETEER_3_VERSION='24788-gog26004' ARCHIVE_BASE_MUSKETEER_2_NAME='darkest_dungeon_musketeer_dlc_en_24358_23005.sh' ARCHIVE_BASE_MUSKETEER_2_MD5='c8ebb84ab177b4ffcee79faadd8f5981' ARCHIVE_BASE_MUSKETEER_2_SIZE='22000' ARCHIVE_BASE_MUSKETEER_2_VERSION='24358-gog23005' ARCHIVE_BASE_MUSKETEER_1_NAME='darkest_dungeon_musketeer_dlc_en_24154_22522.sh' ARCHIVE_BASE_MUSKETEER_1_MD5='d68e50da94cc01920759ff7009a7a3c2' ARCHIVE_BASE_MUSKETEER_1_SIZE='22000' ARCHIVE_BASE_MUSKETEER_1_VERSION='24154-gog22522' ARCHIVE_BASE_MUSKETEER_0_NAME='darkest_dungeon_musketeer_dlc_en_23885_21662.sh' ARCHIVE_BASE_MUSKETEER_0_MD5='f9362568f7e4e1fd205835c3dba2083e' ARCHIVE_BASE_MUSKETEER_0_SIZE='22000' ARCHIVE_BASE_MUSKETEER_0_VERSION='23885-gog21662' ## The Crimson Court ## This build is the one provided by GOG since 2025-05-29, ## but it is an old build from 2018. ARCHIVE_BASE_CRIMSONCOURT_9_NAME='darkest_dungeon_the_crimson_court_24788_82473.sh' ARCHIVE_BASE_CRIMSONCOURT_9_MD5='1d9d53d8100eb001402a48a7a37d50a9' ARCHIVE_BASE_CRIMSONCOURT_9_SIZE='342998' ARCHIVE_BASE_CRIMSONCOURT_9_VERSION='24788-gog82473' ARCHIVE_BASE_CRIMSONCOURT_9_URL='https://www.gog.com/game/darkest_dungeon_the_crimson_court' ## This build of the expansion is broken, many files are missing. ARCHIVE_BASE_CRIMSONCOURT_8_NAME='darkest_dungeon_the_crimson_court_26186_81633.sh' ARCHIVE_BASE_CRIMSONCOURT_8_MD5='724ec690ba5e9e92ad496bb7302e2d39' ARCHIVE_BASE_CRIMSONCOURT_8_SIZE='95178' ARCHIVE_BASE_CRIMSONCOURT_8_VERSION='26186-gog81633' ARCHIVE_BASE_CRIMSONCOURT_7_NAME='darkest_dungeon_the_crimson_court_24839_28859.sh' ARCHIVE_BASE_CRIMSONCOURT_7_MD5='bf81a16639bf98a4daa2e7eb74d2652b' ARCHIVE_BASE_CRIMSONCOURT_7_SIZE='350000' ARCHIVE_BASE_CRIMSONCOURT_7_VERSION='24839-gog28859' ARCHIVE_BASE_CRIMSONCOURT_6_NAME='darkest_dungeon_the_crimson_court_24788_26004.sh' ARCHIVE_BASE_CRIMSONCOURT_6_MD5='02618eb0e4abfc632035e429c134cc42' ARCHIVE_BASE_CRIMSONCOURT_6_SIZE='350000' ARCHIVE_BASE_CRIMSONCOURT_6_VERSION='24788-gog26004' ARCHIVE_BASE_CRIMSONCOURT_5_NAME='darkest_dungeon_the_crimson_court_dlc_en_24358_23005.sh' ARCHIVE_BASE_CRIMSONCOURT_5_MD5='344350ff10770ab3abeecabe048c9816' ARCHIVE_BASE_CRIMSONCOURT_5_SIZE='350000' ARCHIVE_BASE_CRIMSONCOURT_5_VERSION='24358-gog23005' ARCHIVE_BASE_CRIMSONCOURT_4_NAME='darkest_dungeon_the_crimson_court_dlc_en_24154_22522.sh' ARCHIVE_BASE_CRIMSONCOURT_4_MD5='985324dbc5b0ab3e00f04c24a2f2c7cf' ARCHIVE_BASE_CRIMSONCOURT_4_SIZE='350000' ARCHIVE_BASE_CRIMSONCOURT_4_VERSION='24154-gog22522' ARCHIVE_BASE_CRIMSONCOURT_3_NAME='darkest_dungeon_the_crimson_court_dlc_en_23885_21662.sh' ARCHIVE_BASE_CRIMSONCOURT_3_MD5='70018fc475ee4d24fdc19e107fa41a2a' ARCHIVE_BASE_CRIMSONCOURT_3_SIZE='350000' ARCHIVE_BASE_CRIMSONCOURT_3_VERSION='23885-gog21662' ARCHIVE_BASE_CRIMSONCOURT_2_NAME='darkest_dungeon_the_crimson_court_dlc_en_21096_16065.sh' ARCHIVE_BASE_CRIMSONCOURT_2_MD5='d4beaeb7effff0cbd2e292abf0ef5332' ARCHIVE_BASE_CRIMSONCOURT_2_SIZE='350000' ARCHIVE_BASE_CRIMSONCOURT_2_VERSION='21096-gog16066' ARCHIVE_BASE_CRIMSONCOURT_1_NAME='darkest_dungeon_the_crimson_court_dlc_en_21071_15970.sh' ARCHIVE_BASE_CRIMSONCOURT_1_MD5='67fcfc5e91763cbf20a4ef51ff7b8eff' ARCHIVE_BASE_CRIMSONCOURT_1_SIZE='350000' ARCHIVE_BASE_CRIMSONCOURT_1_VERSION='21071-gog15970' ARCHIVE_BASE_CRIMSONCOURT_0_NAME='darkest_dungeon_the_crimson_court_dlc_en_20645_15279.sh' ARCHIVE_BASE_CRIMSONCOURT_0_MD5='523c66d4575095c66a03d3859e4f83b8' ARCHIVE_BASE_CRIMSONCOURT_0_SIZE='360000' ARCHIVE_BASE_CRIMSONCOURT_0_VERSION='20645-gog15279' ## The Shieldbreaker ## This build is the one provided by GOG since 2025-05-29, ## but it is an old build from 2018. ARCHIVE_BASE_SHIELDBREAKER_6_NAME='darkest_dungeon_the_shieldbreaker_24788_82473.sh' ARCHIVE_BASE_SHIELDBREAKER_6_MD5='ec9c10ddbd4833496cfdd26d37bfe485' ARCHIVE_BASE_SHIELDBREAKER_6_SIZE='40158' ARCHIVE_BASE_SHIELDBREAKER_6_VERSION='24788-gog82473' ARCHIVE_BASE_SHIELDBREAKER_6_URL='https://www.gog.com/game/darkest_dungeon_the_shieldbreaker' ARCHIVE_BASE_SHIELDBREAKER_5_NAME='darkest_dungeon_the_shieldbreaker_26186_81633.sh' ARCHIVE_BASE_SHIELDBREAKER_5_MD5='896d66ca296bc1b52988be55651d203a' ARCHIVE_BASE_SHIELDBREAKER_5_SIZE='40182' ARCHIVE_BASE_SHIELDBREAKER_5_VERSION='26186-gog81633' ARCHIVE_BASE_SHIELDBREAKER_4_NAME='darkest_dungeon_the_shieldbreaker_24839_28859.sh' ARCHIVE_BASE_SHIELDBREAKER_4_MD5='6d28e99b0b66d9a0b7e528b961371131' ARCHIVE_BASE_SHIELDBREAKER_4_SIZE='42000' ARCHIVE_BASE_SHIELDBREAKER_4_VERSION='24839-gog28859' ARCHIVE_BASE_SHIELDBREAKER_3_NAME='darkest_dungeon_the_shieldbreaker_24788_26004.sh' ARCHIVE_BASE_SHIELDBREAKER_3_MD5='df614551f769df6b3ee3f9f2bcfcf94e' ARCHIVE_BASE_SHIELDBREAKER_3_SIZE='42000' ARCHIVE_BASE_SHIELDBREAKER_3_VERSION='24788-gog26004' ARCHIVE_BASE_SHIELDBREAKER_2_NAME='darkest_dungeon_the_shieldbreaker_dlc_en_24358_23005.sh' ARCHIVE_BASE_SHIELDBREAKER_2_MD5='e47653b8750583df1fea96ad2c52bad2' ARCHIVE_BASE_SHIELDBREAKER_2_SIZE='42000' ARCHIVE_BASE_SHIELDBREAKER_2_VERSION='24358-gog23005' ARCHIVE_BASE_SHIELDBREAKER_1_NAME='darkest_dungeon_the_shieldbreaker_dlc_en_23885_21662.sh' ARCHIVE_BASE_SHIELDBREAKER_1_MD5='795cdfaecd19177264731d9acb0daca2' ARCHIVE_BASE_SHIELDBREAKER_1_SIZE='41000' ARCHIVE_BASE_SHIELDBREAKER_1_VERSION='23855-gog21662' ARCHIVE_BASE_SHIELDBREAKER_0_NAME='darkest_dungeon_the_shieldbreaker_dlc_en_21142_16140.sh' ARCHIVE_BASE_SHIELDBREAKER_0_MD5='8606531e5fc728786f497b4803c19994' ARCHIVE_BASE_SHIELDBREAKER_0_SIZE='42000' ARCHIVE_BASE_SHIELDBREAKER_0_VERSION='21142-gog16140' ## The Color of Madness ## This build is the one provided by GOG since 2025-05-29, ## but it is an old build from 2018. ARCHIVE_BASE_COLOROFMADNESS_6_NAME='darkest_dungeon_the_color_of_madness_24788_82473.sh' ARCHIVE_BASE_COLOROFMADNESS_6_MD5='181fb603158b512b2b2c07730f9f9c0b' ARCHIVE_BASE_COLOROFMADNESS_6_SIZE='629673' ARCHIVE_BASE_COLOROFMADNESS_6_VERSION='24788-gog82473' ARCHIVE_BASE_COLOROFMADNESS_6_URL='https://www.gog.com/game/darkest_dungeon_the_color_of_madness' ARCHIVE_BASE_COLOROFMADNESS_5_NAME='darkest_dungeon_the_color_of_madness_26186_81633.sh' ARCHIVE_BASE_COLOROFMADNESS_5_MD5='a15a93c4a74c61b186210b97dcbc9383' ARCHIVE_BASE_COLOROFMADNESS_5_SIZE='629799' ARCHIVE_BASE_COLOROFMADNESS_5_VERSION='26186-gog81633' ARCHIVE_BASE_COLOROFMADNESS_4_NAME='darkest_dungeon_the_color_of_madness_24839_28859.sh' ARCHIVE_BASE_COLOROFMADNESS_4_MD5='9830e2b3cefc653db593a022e1c87359' ARCHIVE_BASE_COLOROFMADNESS_4_SIZE='640000' ARCHIVE_BASE_COLOROFMADNESS_4_VERSION='24839-gog28859' ARCHIVE_BASE_COLOROFMADNESS_3_NAME='darkest_dungeon_the_color_of_madness_24788_26004.sh' ARCHIVE_BASE_COLOROFMADNESS_3_MD5='a92a69e13e7ddb5da63d283ea40d93f7' ARCHIVE_BASE_COLOROFMADNESS_3_SIZE='640000' ARCHIVE_BASE_COLOROFMADNESS_3_VERSION='24788-gog26004' ARCHIVE_BASE_COLOROFMADNESS_2_NAME='darkest_dungeon_the_color_of_madness_dlc_en_24358_23005.sh' ARCHIVE_BASE_COLOROFMADNESS_2_MD5='0447fad1313ab47f6521debc3e75d308' ARCHIVE_BASE_COLOROFMADNESS_2_SIZE='640000' ARCHIVE_BASE_COLOROFMADNESS_2_VERSION='24358-gog23005' ARCHIVE_BASE_COLOROFMADNESS_1_NAME='darkest_dungeon_the_color_of_madness_dlc_en_24154_22522.sh' ARCHIVE_BASE_COLOROFMADNESS_1_MD5='40088860d8e3e3a651074e84eb2746ac' ARCHIVE_BASE_COLOROFMADNESS_1_SIZE='630000' ARCHIVE_BASE_COLOROFMADNESS_1_VERSION='24154-gog22522' ARCHIVE_BASE_COLOROFMADNESS_0_NAME='darkest_dungeon_the_color_of_madness_dlc_en_23885_21662.sh' ARCHIVE_BASE_COLOROFMADNESS_0_MD5='fe07f35c57c3ddd421db5da33b42ee6e' ARCHIVE_BASE_COLOROFMADNESS_0_SIZE='630000' ARCHIVE_BASE_COLOROFMADNESS_0_VERSION='23885-gog21662' 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-darkest-dungeon.sh0000750000000000000000000001446614471751340015260 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # Darkest Dungeon # send your bug reports to vv221@dotslashplay.it ### script_version=20250721.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='darkest-dungeon' GAME_NAME='Darkest Dungeon' ## This build is the one provided by GOG since 2025-05-29, ## but it is an old build from 2018. ARCHIVE_BASE_OLD_8_NAME='darkest_dungeon_24788_82473.sh' ARCHIVE_BASE_OLD_8_MD5='875d36d3beca80c350c8848dc0e421c0' ARCHIVE_BASE_OLD_8_SIZE='2269724' ARCHIVE_BASE_OLD_8_VERSION='24788-gog82473' ARCHIVE_BASE_OLD_8_URL='https://www.gog.com/game/darkest_dungeon' ## This build comes with a broken installer for The Crimson Court expansion. ARCHIVE_BASE_0_NAME='darkest_dungeon_26186_81633.sh' ARCHIVE_BASE_0_MD5='5d63601a7640cc359b960be054eb294e' ARCHIVE_BASE_0_SIZE='2294082' ARCHIVE_BASE_0_VERSION='26186-gog81633' ARCHIVE_BASE_OLD_7_NAME='darkest_dungeon_24839_28859.sh' ARCHIVE_BASE_OLD_7_MD5='2a04beb04b3129b4bd68b4dd9023e82d' ARCHIVE_BASE_OLD_7_SIZE='2300000' ARCHIVE_BASE_OLD_7_VERSION='24839-gog28859' ARCHIVE_BASE_OLD_6_NAME='darkest_dungeon_24788_26004.sh' ARCHIVE_BASE_OLD_6_MD5='be838bdc8e7c971e4d412f833fd348ac' ARCHIVE_BASE_OLD_6_SIZE='2300000' ARCHIVE_BASE_OLD_6_VERSION='24788-gog26004' ARCHIVE_BASE_OLD_5_NAME='darkest_dungeon_en_24358_23005.sh' ARCHIVE_BASE_OLD_5_MD5='3d7dc739665003d48589cdbe6cc472ef' ARCHIVE_BASE_OLD_5_SIZE='2300000' ARCHIVE_BASE_OLD_5_VERSION='24358-gog23005' ARCHIVE_BASE_OLD_4_NAME='darkest_dungeon_en_24154_22522.sh' ARCHIVE_BASE_OLD_4_MD5='361d3e7b117725e8ce3982d183d4810a' ARCHIVE_BASE_OLD_4_SIZE='2300000' ARCHIVE_BASE_OLD_4_VERSION='24154-gog22522' ARCHIVE_BASE_OLD_3_NAME='darkest_dungeon_en_23904_21681.sh' ARCHIVE_BASE_OLD_3_MD5='9ddb131060d0995c4ceb56dd9c846b8f' ARCHIVE_BASE_OLD_3_SIZE='2300000' ARCHIVE_BASE_OLD_3_VERSION='23904-gog21681' ARCHIVE_BASE_OLD_2_NAME='darkest_dungeon_en_23885_21662.sh' ARCHIVE_BASE_OLD_2_MD5='ff449de9cfcdf97fa1a27d1073139463' ARCHIVE_BASE_OLD_2_SIZE='2300000' ARCHIVE_BASE_OLD_2_VERSION='23885-gog21662' ARCHIVE_BASE_OLD_1_NAME='darkest_dungeon_en_21142_16140.sh' ARCHIVE_BASE_OLD_1_MD5='4b43065624dbab74d794c56809170588' ARCHIVE_BASE_OLD_1_SIZE='2200000' ARCHIVE_BASE_OLD_1_VERSION='21142-gog16140' ARCHIVE_BASE_OLD_0_NAME='darkest_dungeon_en_21096_16066.sh' ARCHIVE_BASE_OLD_0_MD5='435905fe6edd911a8645d4feaf94ec34' ARCHIVE_BASE_OLD_0_SIZE='2200000' ARCHIVE_BASE_OLD_0_VERSION='21096-gog16066' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_FILES=' libfmod.so.9 libfmodstudio.so.9' CONTENT_LIBS_BIN64_RELATIVE_PATH='_linuxnosteam/lib64' CONTENT_LIBS_BIN64_RELATIVE_PATH_OLD='lib64' CONTENT_LIBS_BIN64_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_LIBS_BIN32_RELATIVE_PATH='_linuxnosteam/lib' CONTENT_LIBS_BIN32_RELATIVE_PATH_OLD='lib' CONTENT_LIBS_BIN32_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_GAME_BIN64_FILES=' _linuxnosteam/darkest.bin.x86_64' CONTENT_GAME_BIN64_FILES_OLD=' darkest.bin.x86_64' CONTENT_GAME_BIN32_FILES=' _linuxnosteam/darkest.bin.x86' CONTENT_GAME_BIN32_FILES_OLD=' darkest.bin.x86' CONTENT_GAME_DATA_FILES=' activity_log audio __build campaign colours curios cursors dlc dungeons effects fe_flow fonts fx game_over heroes inventory _linuxnosteam loading_screen localization loot maps modes mods monsters overlays panels props raid raid_results scripts scrolls shaders shaders_ps4 shaders_psv shared trinkets upgrades user_information video video_ps4 video_psv pin Icon.bmp steam_appid.txt svn_revision.txt' CONTENT_DOC_DATA_RELATIVE_PATH='_linuxnosteam' CONTENT_DOC_DATA_RELATIVE_PATH_OLD='.' CONTENT_DOC_DATA_FILES=' README.linux' APP_MAIN_EXE_BIN64='_linuxnosteam/darkest.bin.x86_64' APP_MAIN_EXE_BIN64_OLD='darkest.bin.x86_64' APP_MAIN_EXE_BIN32='_linuxnosteam/darkest.bin.x86' APP_MAIN_EXE_BIN32_OLD='darkest.bin.x86' APP_MAIN_ICON='_linuxnosteam/Icon.bmp' APP_MAIN_ICON_OLD='Icon.bmp' ## Using the wayland backend of SDL triggers a floating point exception, ## with the following trace: ## ## #0 0x00000000013d1887 in _glewHashListExists () ## #1 0x00000000013d1c5c in glxewContextInit () ## #2 0x0000000000ed273a in InternalMain(int, char**, SDL_GLprofile) () ## #3 0x0000000000ed3b61 in main () APP_MAIN_PRERUN=' # Prevent a game crash when using the Wayland video backend of SDL if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libssl.so.1.0.0 libstdc++.so.6' PKG_BIN_DEPENDENCIES_LIBRARIES_OLD=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libstdc++.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Fix icon background transparency 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)" # Fix icon background transparency icon_path=$(icon_path 'APP_MAIN_ICON') convert "$icon_path" \ -transparent "#008080" \ -transparent "#006e6e" \ "${icon_path%.bmp}_fixed.bmp" mv "${icon_path%.bmp}_fixed.bmp" "$icon_path" ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## These values rely on both package context and archive context. APP_MAIN_EXE_BIN64=$(context_value 'APP_MAIN_EXE_BIN64') APP_MAIN_EXE_BIN32=$(context_value 'APP_MAIN_EXE_BIN32') launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-day-of-the-tentacle.sh0000750000000000000000000000446314471751340015714 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2020 macaron set -o errexit ### # Day of the Tentacle # send your bug reports to vv221@dotslashplay.it ### script_version=20250227.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='day-of-the-tentacle' GAME_NAME='Day of the Tentacle' ARCHIVE_BASE_0_NAME='gog_day_of_the_tentacle_remastered_2.1.0.2.sh' ARCHIVE_BASE_0_MD5='612c59c5cbdbf4d73322b46527a2d502' ARCHIVE_BASE_0_SIZE='2677592' ARCHIVE_BASE_0_VERSION='1.4.1-gog2.1.0.2' ARCHIVE_BASE_0_URL='https://www.gog.com/game/day_of_the_tentacle_remastered' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_RELATIVE_PATH='lib' CONTENT_LIBS_BIN_FILES=' libfmod.so.8' CONTENT_GAME_BIN_FILES=' Dott controllerdef.txt' CONTENT_GAME_DATA_FILES=' tenta.cle' CONTENT_DOC_DATA_FILES=' readme.txt' APP_MAIN_EXE='Dott' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libstdc++.so.6' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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)" launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-desperados-1.sh0000750000000000000000000000447014471751340014447 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2017 Mopi set -o errexit ### # Desperados: Wanted Dead or Alive # send your bug reports to vv221@dotslashplay.it ### script_version=20241227.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='desperados-1' GAME_NAME='Desperados: Wanted Dead or Alive' ARCHIVE_BASE_1_NAME='desperados_wanted_dead_or_alive_en_1_0_2_thqn_22430.sh' ARCHIVE_BASE_1_MD5='c4338cd7526dc01eef347408368f6bf4' ARCHIVE_BASE_1_SIZE='1938955' ARCHIVE_BASE_1_VERSION='1.0.2-gog22430' ARCHIVE_BASE_1_URL='https://www.gog.com/game/desperados_wanted_dead_or_alive' ARCHIVE_BASE_0_NAME='desperados_wanted_dead_or_alive_en_gog_1_22137.sh' ARCHIVE_BASE_0_MD5='72e623355b7ca5ccdef0c549d0a77192' ARCHIVE_BASE_0_SIZE='2000000' ARCHIVE_BASE_0_VERSION='1.0-gog22137' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' desperados32' CONTENT_GAME_DATA_FILES=' bootmenu data demo localisation localisation_demo shaders' CONTENT_DOC_DATA_FILES=' readme.txt' APP_MAIN_EXE='desperados32' 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 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 libSDL2-2.0.so.0 libstdc++.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-desperados-3.sh0000750000000000000000000001157614471751340014456 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Desperados 3 # send your bug reports to vv221@dotslashplay.it ### script_version=20241226.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='desperados-3' GAME_NAME='Desperados Ⅲ' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" ARCHIVE_BASE_0_NAME='setup_desperados_3_1.7_(43311).exe' ARCHIVE_BASE_0_MD5='27d07bcafb7b0a0c5bd0af5a0b91edb8' ## Do not convert file paths to lowercase ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS=' ' ARCHIVE_BASE_0_PART1_NAME='setup_desperados_3_1.7_(43311)-1.bin' ARCHIVE_BASE_0_PART1_MD5='5554579fd67870ad94347b70df2743f6' ARCHIVE_BASE_0_PART2_NAME='setup_desperados_3_1.7_(43311)-2.bin' ARCHIVE_BASE_0_PART2_MD5='f7f43119dda91362ec45b122e4ea641d' ARCHIVE_BASE_0_PART3_NAME='setup_desperados_3_1.7_(43311)-3.bin' ARCHIVE_BASE_0_PART3_MD5='51948b7e8d6a9e45638b49988f86c5f9' ARCHIVE_BASE_0_SIZE='24000000' ARCHIVE_BASE_0_VERSION='1.5.8-gog43311' ARCHIVE_BASE_0_URL='https://www.gog.com/game/desperados_iii' ARCHIVE_BASE_DEMO_0_NAME='setup_desperados_3_demo_1.0b_(38752).exe' ARCHIVE_BASE_DEMO_0_MD5='2a856f6a70fb57b7095d829fe90f0e61' ## Do not convert file paths to lowercase ARCHIVE_BASE_DEMO_0_EXTRACTOR='innoextract' ARCHIVE_BASE_DEMO_0_EXTRACTOR_OPTIONS=' ' ARCHIVE_BASE_DEMO_0_PART1_NAME='setup_desperados_3_demo_1.0b_(38752)-1.bin' ARCHIVE_BASE_DEMO_0_PART1_MD5='fa829f953b1183dd8a41c12599c992fe' ARCHIVE_BASE_DEMO_0_PART2_NAME='setup_desperados_3_demo_1.0b_(38752)-2.bin' ARCHIVE_BASE_DEMO_0_PART2_MD5='77e764c9d83158abf31b7e98006cc5c9' ARCHIVE_BASE_DEMO_0_SIZE='7537932' ARCHIVE_BASE_DEMO_0_VERSION='1.0b-gog38752' ARCHIVE_BASE_DEMO_0_URL='https://www.gog.com/game/desperados_iii_demo' UNITY3D_NAME='Desperados III' CONTENT_PATH_DEFAULT='.' ## The game fails to start if "THQNOnline" and "thqnocfg.dat" are not included. CONTENT_GAME0_BIN_FILES=' THQNOnline MiVersion thqnocfg.dat' ## The game fails to start if the Steam library is not included. CONTENT_GAME1_BIN_FILES=' steam_api64.dll' CONTENT_GAME_DATA_GI_FILES=" ${UNITY3D_NAME}_Data/GI" CONTENT_GAME_DATA_STREAMINGASSETS_FILES=" ${UNITY3D_NAME}_Data/StreamingAssets" CONTENT_GAME_DATA_LEVELS_FILES_DEMO=" ${UNITY3D_NAME}_Data/level*" CONTENT_GAME_DATA_LEVELS_1_FILES=" ${UNITY3D_NAME}_Data/level? ${UNITY3D_NAME}_Data/level?.resS ${UNITY3D_NAME}_Data/level?? ${UNITY3D_NAME}_Data/level??.resS" CONTENT_GAME_DATA_LEVELS_2_FILES=" ${UNITY3D_NAME}_Data/level??? ${UNITY3D_NAME}_Data/level???.resS" WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Local/Desperados III' PACKAGES_LIST=' PKG_BIN PKG_DATA_GI PKG_DATA_STREAMINGASSETS PKG_DATA_LEVELS_1 PKG_DATA_LEVELS_2 PKG_DATA' PACKAGES_LIST_DEMO=' PKG_BIN PKG_DATA_GI PKG_DATA_STREAMINGASSETS PKG_DATA_LEVELS PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_DATA_GI PKG_DATA_STREAMINGASSETS PKG_DATA_LEVELS_1 PKG_DATA_LEVELS_2' PKG_DATA_DEPENDENCIES_SIBLINGS_DEMO=' PKG_DATA_GI PKG_DATA_STREAMINGASSETS PKG_DATA_LEVELS' PKG_DATA_GI_ID="${PKG_DATA_ID}-gi" PKG_DATA_GI_ID_DEMO="${PKG_DATA_ID_DEMO}-gi" PKG_DATA_GI_DESCRIPTION="$PKG_DATA_DESCRIPTION - gi" PKG_DATA_STREAMINGASSETS_ID="${PKG_DATA_ID}-streamingassets" PKG_DATA_STREAMINGASSETS_ID_DEMO="${PKG_DATA_ID_DEMO}-streamingassets" PKG_DATA_STREAMINGASSETS_DESCRIPTION="$PKG_DATA_DESCRIPTION - streamingassets" PKG_DATA_LEVELS_ID="${PKG_DATA_ID}-levels" PKG_DATA_LEVELS_ID_DEMO="${PKG_DATA_ID_DEMO}-levels" PKG_DATA_LEVELS_1_ID="${PKG_DATA_LEVELS_ID}-1" PKG_DATA_LEVELS_2_ID="${PKG_DATA_LEVELS_ID}-2" PKG_DATA_LEVELS_DESCRIPTION="$PKG_DATA_DESCRIPTION - levels" PKG_DATA_LEVELS_1_DESCRIPTION="$PKG_DATA_LEVELS_DESCRIPTION - 1" PKG_DATA_LEVELS_2_DESCRIPTION="$PKG_DATA_LEVELS_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 # 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-deus-ex.sh0000750000000000000000000001443514471751340013534 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2018 Phil Morrell set -o errexit ### # Deus Ex # send your bug reports to vv221@dotslashplay.it ### script_version=20250603.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='deus-ex' GAME_NAME='Deus Ex' ARCHIVE_BASE_7_NAME='setup_deus_ex_goty_1.112fm(revision_1.6.3.0)_(51757).exe' ARCHIVE_BASE_7_MD5='9dd2b837300bfa19c6b5b8fde5d38df6' ARCHIVE_BASE_7_TYPE='innosetup' ARCHIVE_BASE_7_SIZE='870816' ARCHIVE_BASE_7_VERSION='1.112fm-gog51757' ARCHIVE_BASE_7_URL='https://www.gog.com/game/deus_ex' ARCHIVE_BASE_6_NAME='setup_deus_ex_goty_1.112fm(revision_1.6.1.0)_(45326).exe' ARCHIVE_BASE_6_MD5='688495ac0f2e6f05f1b47bdc40cee198' ARCHIVE_BASE_6_TYPE='innosetup' ARCHIVE_BASE_6_SIZE='880000' ARCHIVE_BASE_6_VERSION='1.112fm-gog45326' ARCHIVE_BASE_5_NAME='setup_deus_ex_goty_1.112fm(revision_1.6.0.0)_(42784).exe' ARCHIVE_BASE_5_MD5='0ff01014f9364c3487a5193f9ac30dc1' ARCHIVE_BASE_5_TYPE='innosetup' ARCHIVE_BASE_5_SIZE='880000' ARCHIVE_BASE_5_VERSION='1.112fm-gog42784' ARCHIVE_BASE_4_NAME='setup_deus_ex_goty_1.112fm(revision_1.5.0.0)_(35268).exe' ARCHIVE_BASE_4_MD5='3c5693ff82d754d4fe0d6be14e5337dd' ARCHIVE_BASE_4_TYPE='innosetup' ARCHIVE_BASE_4_SIZE='880000' ARCHIVE_BASE_4_VERSION='1.112fm-gog35268' ARCHIVE_BASE_3_NAME='setup_deus_ex_goty_1.112fm_(revision_1.4.0.2)_nglide_fix_(34088).exe' ARCHIVE_BASE_3_MD5='085d7ea792d002236999dfd3697b85de' ARCHIVE_BASE_3_TYPE='innosetup' ARCHIVE_BASE_3_SIZE='760000' ARCHIVE_BASE_3_VERSION='1.112fm-gog34088' ARCHIVE_BASE_2_NAME='setup_deus_ex_goty_1.112fm(revision_1.4.0.2)_(26650).exe' ARCHIVE_BASE_2_MD5='ab165b74b26623ccee5bfd7b6f65f734' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_SIZE='760000' ARCHIVE_BASE_2_VERSION='1.112fm-gog26650' ARCHIVE_BASE_1_NAME='setup_deus_ex_goty_1.112fm(revision_1.4.0.1.5)_(24946).exe' ARCHIVE_BASE_1_MD5='daa330f1e7a427af64b952cd138cfc59' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='760000' ARCHIVE_BASE_1_VERSION='1.112fm-gog24946' ARCHIVE_BASE_0_NAME='setup_deus_ex_goty_1.112fm(revision_1.4)_(21273).exe' ARCHIVE_BASE_0_MD5='9ec295ecad72e96fb7b9f0109dd90324' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='750000' ARCHIVE_BASE_0_VERSION='1.112fm-gog21273' ARCHIVE_BASE_OLDTEMPLATE_3_NAME='setup_deus_ex_goty_1.112fm(revision_1.3.1)_(17719).exe' ARCHIVE_BASE_OLDTEMPLATE_3_MD5='92e9e6a33642f9e6c41cb24055df9b3c' ARCHIVE_BASE_OLDTEMPLATE_3_TYPE='innosetup' ARCHIVE_BASE_OLDTEMPLATE_3_SIZE='750000' ARCHIVE_BASE_OLDTEMPLATE_3_VERSION='1.112fm-gog17719' ARCHIVE_BASE_OLDTEMPLATE_2_NAME='setup_deus_ex_goty_1.112fm(revision_1.3.0.1)_(16231).exe' ARCHIVE_BASE_OLDTEMPLATE_2_MD5='eaaf7c7c3052fbf71f5226e2d4495268' ARCHIVE_BASE_OLDTEMPLATE_2_TYPE='innosetup' ARCHIVE_BASE_OLDTEMPLATE_2_SIZE='750000' ARCHIVE_BASE_OLDTEMPLATE_2_VERSION='1.112fm-gog16231' ARCHIVE_BASE_OLDTEMPLATE_1_NAME='setup_deus_ex_goty_1.112fm(revision_1.2.2)_(15442).exe' ARCHIVE_BASE_OLDTEMPLATE_1_MD5='573582142424ba1b5aba1f6727276450' ARCHIVE_BASE_OLDTEMPLATE_1_TYPE='innosetup' ARCHIVE_BASE_OLDTEMPLATE_1_SIZE='750000' ARCHIVE_BASE_OLDTEMPLATE_1_VERSION='1.112fm-gog15442' ARCHIVE_BASE_OLDTEMPLATE_0_NAME='setup_deus_ex_2.1.0.12.exe' ARCHIVE_BASE_OLDTEMPLATE_0_MD5='cc2c6e43b2e8e67c7586bbab5ef492ee' ARCHIVE_BASE_OLDTEMPLATE_0_TYPE='innosetup' ARCHIVE_BASE_OLDTEMPLATE_0_SIZE='750000' ARCHIVE_BASE_OLDTEMPLATE_0_VERSION='1.112fm-gog2.1.0.12' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_OLDTEMPLATE='app' CONTENT_GAME_BIN_FILES=' system/*.dll system/*.exe system/*.ini system/*.int' CONTENT_GAME_DATA_FILES=' help maps music sounds textures system/*.u' CONTENT_DOC_DATA_FILES=' manual.pdf system/*.txt' USER_PERSISTENT_FILES=' system/*.ini system/*.log' USER_PERSISTENT_DIRECTORIES=' save' ## Without a WINE virtual desktop, the game fails to render anything but a black window. ## (WINE 10.0) WINE_VIRTUAL_DESKTOP='1280x1024' ## Disable csmt, as it would cause performance issues with single CPU affinity. WINE_WINETRICKS_VERBS='csmt=off' APP_MAIN_EXE='system/deusex.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' # Set OpenGL as the default rendering engine REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} sed unix2dos" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Set OpenGL as the default rendering engine. ini_file='system/deusex.ini' ini_field='GameRenderDevice' ini_value='OpenGLDrv.OpenGLRenderDevice' sed_expression="s/^${ini_field}=.*$/${ini_field}=${ini_value}/" ini_field='FirstRun' ini_value='1100' sed_expression="${sed_expression};s/^${ini_field}=.*$/${ini_field}=${ini_value}/" dos2unix --quiet "$ini_file" sed --in-place --expression="$sed_expression" "$ini_file" unix2dos --quiet "$ini_file" ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## Run the game binary from its parent directory ## ## Set the CPU affinity to a single core, to work around a random crash on launch ## cf. https://www.gamingonlinux.com/2020/02/the-sad-case-of-unreal-engine-1-on-mesa-and-linux-in-2020/page=2#r174041 game_exec_line() { cat <<- 'EOF' # Run the game binary from its parent directory cd system # Set the CPU affinity to a single core, to work around a random crash on launch # cf. https://www.gamingonlinux.com/2020/02/the-sad-case-of-unreal-engine-1-on-mesa-and-linux-in-2020/page=2#r174041 taskset --cpu-list 0 "$(wine_command)" deusex.exe "$@" EOF } launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-diablo-1.sh0000750000000000000000000001171614471751340013551 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # Diablo 1 # send your bug reports to vv221@dotslashplay.it ### script_version=20250211.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='diablo-1' GAME_NAME='Diablo' # Archives ## Diablo 1 (game data) ARCHIVE_BASE_8_NAME='setup_diablo_1.09_hellfire_v4_(78466).exe' ARCHIVE_BASE_8_MD5='c4d36192c35eb5f34faa1d97aae34455' ARCHIVE_BASE_8_TYPE='innosetup' ARCHIVE_BASE_8_SIZE='845401' ARCHIVE_BASE_8_VERSION='1.09-gog78466' ARCHIVE_BASE_8_URL='https://www.gog.com/game/diablo' ARCHIVE_BASE_7_NAME='setup_diablo_1.09_hellfire_v3_(78106).exe' ARCHIVE_BASE_7_MD5='b8d5a38fd4b21311853f19559c2ebfee' ARCHIVE_BASE_7_TYPE='innosetup' ARCHIVE_BASE_7_SIZE='845020' ARCHIVE_BASE_7_VERSION='1.09-gog78106' ARCHIVE_BASE_6_NAME='setup_diablo_1.09_hellfire_v2_(30037).exe' ARCHIVE_BASE_6_MD5='2b8f0eafc528a56452b0008dde4151a8' ARCHIVE_BASE_6_TYPE='innosetup' ARCHIVE_BASE_6_SIZE='843414' ARCHIVE_BASE_6_VERSION='1.09-gog30037' ARCHIVE_BASE_5_NAME='setup_diablo_1.09_hellfire_v2_(30038).exe' ARCHIVE_BASE_5_MD5='e70187d92fa120771db99dfa81679cfc' ARCHIVE_BASE_5_TYPE='innosetup' ARCHIVE_BASE_5_SIZE='850000' ARCHIVE_BASE_5_VERSION='1.09-gog30038' ARCHIVE_BASE_4_NAME='setup_diablo_1.09_v6_(28378).exe' ARCHIVE_BASE_4_MD5='588ab50c1ef25abb682b86ea4306ea50' ARCHIVE_BASE_4_TYPE='innosetup' ARCHIVE_BASE_4_SIZE='670000' ARCHIVE_BASE_4_VERSION='1.09-gog28378' ARCHIVE_BASE_3_NAME='setup_diablo_1.09_v4_(27989).exe' ARCHIVE_BASE_3_MD5='8dac74a616646fa41d5d73f4765cef40' ARCHIVE_BASE_3_TYPE='innosetup' ARCHIVE_BASE_3_SIZE='670000' ARCHIVE_BASE_3_VERSION='1.09-gog27989' ARCHIVE_BASE_2_NAME='setup_diablo_1.09_v3_(27965).exe' ARCHIVE_BASE_2_MD5='38d654af858d7a2591711f0e6324fcd0' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_SIZE='670000' ARCHIVE_BASE_2_VERSION='1.09-gog27695' ARCHIVE_BASE_1_NAME='setup_diablo_1.09_v2_(27882).exe' ARCHIVE_BASE_1_MD5='83b2d6b8551a9825a426dac7b9302654' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='670000' ARCHIVE_BASE_1_VERSION='1.09-gog27882' ARCHIVE_BASE_0_NAME='setup_diablo_1.09_(27873).exe' ARCHIVE_BASE_0_MD5='bf57594f5218a794a284b5e2a0f5ba14' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='680000' ARCHIVE_BASE_0_VERSION='1.09-gog27873' ## DevilutionX ARCHIVE_REQUIRED_DEVILUTIONX_1_NAME='devilutionx-x86_64-linux-gnu.tar.xz' ARCHIVE_REQUIRED_DEVILUTIONX_1_MD5='f5b953adfbc9ea206a7fb393d6a45299' ARCHIVE_REQUIRED_DEVILUTIONX_1_SIZE='39601' ARCHIVE_REQUIRED_DEVILUTIONX_1_VERSION='1.5.4' ARCHIVE_REQUIRED_DEVILUTIONX_1_URL='https://github.com/diasurgical/devilutionX/releases/tag/1.5.4' ARCHIVE_REQUIRED_DEVILUTIONX_0_NAME='devilutionx-linux-x86_64.tar.xz' ARCHIVE_REQUIRED_DEVILUTIONX_0_MD5='36dce8b296aabcefac2dcd3e7bd2a5c7' ARCHIVE_REQUIRED_DEVILUTIONX_0_SIZE='39208' ARCHIVE_REQUIRED_DEVILUTIONX_0_VERSION='1.5.3' ARCHIVE_REQUIRED_DEVILUTIONX_0_URL='https://github.com/diasurgical/devilutionX/releases/tag/1.5.3' CONTENT_PATH_DEFAULT='.' ## The devilutionx binary is linked against discord_game_sdk.so, so we can not drop it. CONTENT_LIBS_BIN_FILES=' discord_game_sdk.so' CONTENT_GAME_BIN_FILES=' devilutionx' CONTENT_GAME_DATA_FILES=' *.mpq' CONTENT_DOC_DATA_FILES=' *.pdf *.txt' APP_MAIN_EXE='devilutionx' APP_MAIN_ICON='diablo.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libm.so.6 libpthread.so.0 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0 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 "$@" # Check for the presence of the archive providing the game engine archive_initialize_required \ 'ARCHIVE_DEVILUTIONX' \ 'ARCHIVE_REQUIRED_DEVILUTIONX_1' \ 'ARCHIVE_REQUIRED_DEVILUTIONX_0' # Extract game data archive_extraction_default archive_extraction 'ARCHIVE_DEVILUTIONX' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files rm --force --recursive \ 'dx' \ 'hellfire' \ 'tmp' # Rename documentation files mv 'license.txt' 'license.diablo-1.txt' mv 'readme.txt' 'readme.diablo-1.txt' mv 'README.txt' 'readme.devilutionx.txt' ) # 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-diablo-2-expansions.sh0000750000000000000000000001170414471751340015734 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2025 Antoine Le Gonidec set -o errexit ### # Diablo 2 expansions: # - Lord of Destriction # send your bug reports to vv221@dotslashplay.it ### script_version=20250628.4 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='diablo-2' GAME_NAME='Diablo II' EXPANSION_ID='lord-of-destruction' EXPANSION_NAME='Lord of Destruction' ARCHIVE_BASE_EN_0_NAME='Installer Tome.mpq' ARCHIVE_BASE_EN_0_MD5='fb7bdc951003b8def5332f73060cd464' ARCHIVE_BASE_EN_0_SIZE='489332' ARCHIVE_BASE_EN_0_VERSION='1.14b-blizzard' ARCHIVE_BASE_EN_0_URL='https://eu.battle.net/download/getLegacy?os=win&locale=enUS&product=D2XP' ARCHIVE_BASE_FR_0_NAME='Installer Tome.mpq' ARCHIVE_BASE_FR_0_MD5='5ff92ff2fc1c1eb5c81631b6ff56c804' ARCHIVE_BASE_FR_0_SIZE='605156' ARCHIVE_BASE_FR_0_VERSION='1.14b-blizzard' ARCHIVE_BASE_FR_0_URL='https://eu.battle.net/download/getLegacy?os=win&locale=frFR&product=D2XP' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_PATH='Common' CONTENT_GAME_MAIN_FILES=' d2exp.mpq d2xtalk.mpq d2xvideo.mpq' CONTENT_GAME_DATA_MUSIC_PATH='Common' CONTENT_GAME_DATA_MUSIC_FILES=' d2xmusic.mpq' CONTENT_GAME_DATA_SHARED_PATH='Common' CONTENT_GAME_DATA_SHARED_FILES=' d2char.mpq patch_d2.mpq' APP_MAIN_ICON='PC/Diablo II.exe' PACKAGES_LIST=' PKG_MAIN PKG_DATA_MUSIC PKG_DATA_SHARED' PKG_PARENT_ID="$GAME_ID" PKG_MAIN_ID="${GAME_ID}-${EXPANSION_ID}" PKG_MAIN_ID_EN="${PKG_MAIN_ID}-en" PKG_MAIN_ID_FR="${PKG_MAIN_ID}-fr" PKG_MAIN_PROVIDES=" $PKG_MAIN_ID" PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_PARENT PKG_DATA_MUSIC PKG_DATA_SHARED' PKG_DATA_MUSIC_ID="${GAME_ID}-${EXPANSION_ID}-data-music" PKG_DATA_MUSIC_DESCRIPTION='music' PKG_DATA_SHARED_ID="${GAME_ID}-${EXPANSION_ID}-data-shared" PKG_DATA_SHARED_PROVIDES=" $PKG_DATA_SHARED_ID ${GAME_ID}-data-shared" PKG_DATA_SHARED_DESCRIPTION='data shared between the base game and the expansion' # Set the list of requirements to extract the archive contents. REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} smpq" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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 the CD key files. ## During a regular install of Lord of Destruction, the CD key is stored encrypted into d2char.mpq, ## in files under the "data/global/sfx/cursor" and "data/global/chars/am/cof" directories. ## In order to build a package that includes the CD key (required, or the game will not launch), ## you need to provide the following files in addition to the installer .mpq: ## - curindx.wav ## - amblxbow.cof ## ## They can be extracted from a regular Diablo 2 install with: ## smpq --extract d2char.mpq data/global/sfx/cursor/curindx.wav data/global/chars/am/cof/amblxbow.cof ARCHIVE_REQUIRED_CDKEY_1_NAME='curindx.wav' ARCHIVE_REQUIRED_CDKEY_2_NAME='amblxbow.cof' archive_initialize_required \ 'ARCHIVE_CDKEY_1' \ 'ARCHIVE_REQUIRED_CDKEY_1' archive_initialize_required \ 'ARCHIVE_CDKEY_2' \ 'ARCHIVE_REQUIRED_CDKEY_2' ## In addition to these files, the d2char.mpq archive from Diablo 2 base game is required. ## If Diablo 2 is installed on the current system, a symbolic link to the game file is enough. ARCHIVE_REQUIRED_D2CHAR_NAME='d2char.mpq' archive_initialize_required \ 'ARCHIVE_D2CHAR' \ 'ARCHIVE_REQUIRED_D2CHAR' # Extract game data archive_path=$(archive_path "$(current_archive)") archive_path_cdkey_1=$(archive_path 'ARCHIVE_CDKEY_1') archive_path_cdkey_2=$(archive_path 'ARCHIVE_CDKEY_2') archive_path_d2char=$(archive_path 'ARCHIVE_D2CHAR') mkdir --parents "${PLAYIT_WORKDIR}/gamedata" information_archive_data_extraction "$archive_path" ( cd "${PLAYIT_WORKDIR}/gamedata" smpq --extract "$archive_path" # Update the .mpq file cp --dereference "$archive_path_d2char" ./Common/ ( cd 'PC-100x' smpq --append --overwrite ../Common/d2char.mpq ./* ) ( cd 'Files' mkdir --parents \ 'data/global/sfx/cursor' \ 'data/global/chars/am/cof' cp --dereference \ "$archive_path_cdkey_1" \ 'data/global/sfx/cursor' cp --dereference \ "$archive_path_cdkey_2" \ 'data/global/chars/am/cof' smpq --append --overwrite ../Common/d2char.mpq \ data/global/sfx/cursor/curindx.wav \ data/global/chars/am/cof/amblxbow.cof rm --force --recursive 'data/global/sfx' 'data/global/chars/am' ) ) # Include game data content_inclusion_icons 'PKG_DATA_SHARED' 'APP_MAIN' content_inclusion_default # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-diablo-2.sh0000750000000000000000000001134214471751340013545 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2025 Antoine Le Gonidec set -o errexit ### # Diablo 2 # send your bug reports to vv221@dotslashplay.it ### script_version=20250628.5 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='diablo-2' GAME_NAME='Diablo II' ARCHIVE_BASE_EN_0_NAME='Installer Tome.mpq' ARCHIVE_BASE_EN_0_MD5='f5cf9b3685eacd506e9ddb521751cdfc' ARCHIVE_BASE_EN_0_SIZE='1526589' ARCHIVE_BASE_EN_0_VERSION='1.14b-blizzard' ARCHIVE_BASE_EN_0_URL='https://eu.battle.net/download/getLegacy?os=win&locale=enUS&product=D2DV' ARCHIVE_BASE_FR_0_NAME='Installer Tome.mpq' ARCHIVE_BASE_FR_0_MD5='04a89652d44e7acf126d4d108bdcff87' ARCHIVE_BASE_FR_0_SIZE='1524530' ARCHIVE_BASE_FR_0_VERSION='1.14b-blizzard' ARCHIVE_BASE_FR_0_URL='https://eu.battle.net/download/getLegacy?os=win&locale=frFR&product=D2DV' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_PATH='PC' ## Diablo II.exe differs between the English and the French build of the game, ## for now we assume the differences are not critical and one can be used in place of the other. CONTENT_GAME_BIN_FILES=' binkw32.dll ijl11.dll SmackW32.dll Diablo II.exe Game.exe D2.LNG' CONTENT_GAME_DATA_PATH='Common' CONTENT_GAME_DATA_FILES=' d2data.mpq d2sfx.mpq d2speech.mpq d2video.mpq' CONTENT_GAME_DATA_MUSIC_PATH='Common' CONTENT_GAME_DATA_MUSIC_FILES=' d2music.mpq' CONTENT_GAME_DATA_SHARED_PATH='Common' CONTENT_GAME_DATA_SHARED_FILES=' d2char.mpq patch_d2.mpq' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Saved Games/Diablo II' APP_MAIN_EXE='Game.exe' APP_MAIN_ICON='PC/Diablo II.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA PKG_DATA_MUSIC PKG_DATA_SHARED' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA_BASE' PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/x-msvideo' PKG_DATA_BASE_ID="${GAME_ID}-data" PKG_DATA_ID_EN="${PKG_DATA_BASE_ID}-en" PKG_DATA_ID_FR="${PKG_DATA_BASE_ID}-fr" PKG_DATA_PROVIDES=" $PKG_DATA_BASE_ID" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_DATA_MUSIC PKG_DATA_SHARED' PKG_DATA_MUSIC_ID="${PKG_DATA_BASE_ID}-music" PKG_DATA_MUSIC_DESCRIPTION='music' PKG_DATA_SHARED_ID="${PKG_DATA_BASE_ID}-shared" PKG_DATA_SHARED_DESCRIPTION='data shared between the base game and the expansion' # Set the list of requirements to extract the archive contents. REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} smpq" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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 required CD key files. ## During a regular install of Diablo 2, the CD key is stored encrypted into d2data.mpq, in the files under the "data/global/sfx/cursor" directory. ## In order to build a package that includes the CD key (required, or the game will not launch), ## you need to provide the following files in addition to the installer .mpq: ## - curindx.wav ## - wavindx.wav ## ## They can be extracted from a regular Diablo 2 install with: ## smpq --extract d2data.mpq data/global/sfx/cursor/curindx.wav data/global/sfx/cursor/wavindx.wav ARCHIVE_REQUIRED_CDKEY_1_NAME='curindx.wav' ARCHIVE_REQUIRED_CDKEY_2_NAME='wavindx.wav' archive_initialize_required \ 'ARCHIVE_CDKEY_1' \ 'ARCHIVE_REQUIRED_CDKEY_1' archive_initialize_required \ 'ARCHIVE_CDKEY_2' \ 'ARCHIVE_REQUIRED_CDKEY_2' # Extract game data archive_path=$(archive_path "$(current_archive)") archive_path_cdkey_1=$(archive_path 'ARCHIVE_CDKEY_1') archive_path_cdkey_2=$(archive_path 'ARCHIVE_CDKEY_2') mkdir --parents "${PLAYIT_WORKDIR}/gamedata" information_archive_data_extraction "$archive_path" ( cd "${PLAYIT_WORKDIR}/gamedata" smpq --extract "$archive_path" # Update the .mpq file ( cd 'PC-100' smpq --append ../Common/d2data.mpq ./* ) ( cd 'Files' mkdir --parents 'data/global/sfx/cursor' cp --dereference \ "$archive_path_cdkey_1" \ "$archive_path_cdkey_2" \ 'data/global/sfx/cursor' smpq --append ../Common/d2data.mpq \ data/global/sfx/cursor/curindx.wav \ data/global/sfx/cursor/wavindx.wav rm --force --recursive 'data/global/sfx' ) ) # Include game data content_inclusion_icons 'PKG_DATA_SHARED' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-disco-elysium.sh0000750000000000000000000001707014471751340014746 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Disco Elysium # send your bug reports to vv221@dotslashplay.it ### script_version=20241209.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='disco-elysium' GAME_NAME='Disco Elysium' ARCHIVE_BASE_7_NAME='setup_disco_elysium_-_the_final_cut_wina0a062f0_(77603).exe' ARCHIVE_BASE_7_MD5='8dad100dd4462ac2cbb01f9f11dd0be1' ARCHIVE_BASE_7_TYPE='innosetup' ARCHIVE_BASE_7_PART1_NAME='setup_disco_elysium_-_the_final_cut_wina0a062f0_(77603)-1.bin' ARCHIVE_BASE_7_PART1_MD5='9743142f176fe8f61617d87d8518aef3' ARCHIVE_BASE_7_PART2_NAME='setup_disco_elysium_-_the_final_cut_wina0a062f0_(77603)-2.bin' ARCHIVE_BASE_7_PART2_MD5='cf4a3e7c58b00a9b90dbd722075350f6' ARCHIVE_BASE_7_PART3_NAME='setup_disco_elysium_-_the_final_cut_wina0a062f0_(77603)-3.bin' ARCHIVE_BASE_7_PART3_MD5='9aa0fdaec98a1b97a9e2059e2db7cfca' ARCHIVE_BASE_7_SIZE='10092905' ARCHIVE_BASE_7_VERSION='1.0.a0a062f0-gog77603' ARCHIVE_BASE_7_URL='https://www.gog.com/game/disco_elysium' ARCHIVE_BASE_6_NAME='setup_disco_elysium_-_the_final_cut_wina0a062f7_(75177).exe' ARCHIVE_BASE_6_MD5='6cced47952e91f7acbaaf718f457ca29' ARCHIVE_BASE_6_TYPE='innosetup' ARCHIVE_BASE_6_PART1_NAME='setup_disco_elysium_-_the_final_cut_wina0a062f7_(75177)-1.bin' ARCHIVE_BASE_6_PART1_MD5='fa7646cb5754722dcc40dd4631f22587' ARCHIVE_BASE_6_PART2_NAME='setup_disco_elysium_-_the_final_cut_wina0a062f7_(75177)-2.bin' ARCHIVE_BASE_6_PART2_MD5='2255e435c92bd2507822469d851fcf79' ARCHIVE_BASE_6_PART3_NAME='setup_disco_elysium_-_the_final_cut_wina0a062f7_(75177)-3.bin' ARCHIVE_BASE_6_PART3_MD5='33bf8ad6a9421f58c5418103f3a95bd6' ARCHIVE_BASE_6_SIZE='10074505' ARCHIVE_BASE_6_VERSION='1.0.a0a062f7-gog75177' ARCHIVE_BASE_5_NAME='setup_disco_elysium_-_the_final_cut_wina0a062f3_(74350).exe' ARCHIVE_BASE_5_MD5='52a20a526a898a173d98b800f331616c' ARCHIVE_BASE_5_TYPE='innosetup' ARCHIVE_BASE_5_PART1_NAME='setup_disco_elysium_-_the_final_cut_wina0a062f3_(74350)-1.bin' ARCHIVE_BASE_5_PART1_MD5='29cac3aca83c0c3ef1b0c5923b7a8f22' ARCHIVE_BASE_5_PART2_NAME='setup_disco_elysium_-_the_final_cut_wina0a062f3_(74350)-2.bin' ARCHIVE_BASE_5_PART2_MD5='82fe3cd0526d89342f41df1f58dfec01' ARCHIVE_BASE_5_PART3_NAME='setup_disco_elysium_-_the_final_cut_wina0a062f3_(74350)-3.bin' ARCHIVE_BASE_5_PART3_MD5='4cbf7779c69ca856d689cad0bc568ef3' ARCHIVE_BASE_5_SIZE='10074442' ARCHIVE_BASE_5_VERSION='1.0.a0a062f3-gog74350' ARCHIVE_BASE_4_NAME='setup_disco_elysium_-_the_final_cut_wina0a062f1_(73330).exe' ARCHIVE_BASE_4_MD5='fa1ab8b1023dbdd96464e48426f724de' ARCHIVE_BASE_4_TYPE='innosetup' ARCHIVE_BASE_4_PART1_NAME='setup_disco_elysium_-_the_final_cut_wina0a062f1_(73330)-1.bin' ARCHIVE_BASE_4_PART1_MD5='fa2edf58880e63def21f2565ac14c73f' ARCHIVE_BASE_4_PART2_NAME='setup_disco_elysium_-_the_final_cut_wina0a062f1_(73330)-2.bin' ARCHIVE_BASE_4_PART2_MD5='b4d7b67b7633f29688380c6fd83a426b' ARCHIVE_BASE_4_PART3_NAME='setup_disco_elysium_-_the_final_cut_wina0a062f1_(73330)-3.bin' ARCHIVE_BASE_4_PART3_MD5='2dff22e62041509591e11d91d5567ee0' ARCHIVE_BASE_4_SIZE='10076178' ARCHIVE_BASE_4_VERSION='1.0.a0a062f1-gog73330' ARCHIVE_BASE_3_NAME='setup_disco_elysium_-_the_final_cut_wina0a062ed_(72872).exe' ARCHIVE_BASE_3_MD5='8f2bc041892c5edea9fbcf5340ad05c1' ARCHIVE_BASE_3_TYPE='innosetup' ARCHIVE_BASE_3_PART1_NAME='setup_disco_elysium_-_the_final_cut_wina0a062ed_(72872)-1.bin' ARCHIVE_BASE_3_PART1_MD5='f150ff79eabe46ac6440ac85f1ed63a9' ARCHIVE_BASE_3_PART2_NAME='setup_disco_elysium_-_the_final_cut_wina0a062ed_(72872)-2.bin' ARCHIVE_BASE_3_PART2_MD5='798ce91c5204e3d0bf810033734700bd' ARCHIVE_BASE_3_PART3_NAME='setup_disco_elysium_-_the_final_cut_wina0a062ed_(72872)-3.bin' ARCHIVE_BASE_3_PART3_MD5='3fccee3836168ab2d76b5759258d8363' ARCHIVE_BASE_3_SIZE='10078050' ARCHIVE_BASE_3_VERSION='1.0.a0a062ed-gog72872' ARCHIVE_BASE_2_NAME='setup_disco_elysium_a0a062e7_(64bit)_(63158).exe' ARCHIVE_BASE_2_MD5='1d9cab4e4952a588a5a8af30ac7dd7aa' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_PART1_NAME='setup_disco_elysium_a0a062e7_(64bit)_(63158)-1.bin' ARCHIVE_BASE_2_PART1_MD5='fbe7a581843d47681ba0f2aa1696a58c' ARCHIVE_BASE_2_PART2_NAME='setup_disco_elysium_a0a062e7_(64bit)_(63158)-2.bin' ARCHIVE_BASE_2_PART2_MD5='8925592fc18c4565e262fd4e3008e9fc' ARCHIVE_BASE_2_PART3_NAME='setup_disco_elysium_a0a062e7_(64bit)_(63158)-3.bin' ARCHIVE_BASE_2_PART3_MD5='ddbda58eb8c570662689721246b4f081' ARCHIVE_BASE_2_SIZE='10000000' ARCHIVE_BASE_2_VERSION='1.0.a0a062e7-gog63158' ARCHIVE_BASE_1_NAME='setup_disco_elysium_3c54ad81_(64bit)_(60250).exe' ARCHIVE_BASE_1_MD5='c915229dfa223b16f4399475589ff346' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_disco_elysium_3c54ad81_(64bit)_(60250)-1.bin' ARCHIVE_BASE_1_PART1_MD5='a6d13f109f26f17a2f1a9d06f519ba1f' ARCHIVE_BASE_1_PART2_NAME='setup_disco_elysium_3c54ad81_(64bit)_(60250)-2.bin' ARCHIVE_BASE_1_PART2_MD5='816a2fed25591f9f26b094f9ead7a1af' ARCHIVE_BASE_1_PART3_NAME='setup_disco_elysium_3c54ad81_(64bit)_(60250)-3.bin' ARCHIVE_BASE_1_PART3_MD5='a12113e41085154d94209cd076ce5057' ARCHIVE_BASE_1_SIZE='10000000' ARCHIVE_BASE_1_VERSION='1.0.3c54ad81-gog60250' ARCHIVE_BASE_0_NAME='setup_disco_elysium_ee8d3b39_(64bit)_(58288).exe' ARCHIVE_BASE_0_MD5='6b196bb79102de695bbc45904342b8ad' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_disco_elysium_ee8d3b39_(64bit)_(58288)-1.bin' ARCHIVE_BASE_0_PART1_MD5='120e95e8fef4537283705b5510af6d86' ARCHIVE_BASE_0_PART2_NAME='setup_disco_elysium_ee8d3b39_(64bit)_(58288)-2.bin' ARCHIVE_BASE_0_PART2_MD5='82c73e068dc3b18893e11a45bf74242e' ARCHIVE_BASE_0_PART3_NAME='setup_disco_elysium_ee8d3b39_(64bit)_(58288)-3.bin' ARCHIVE_BASE_0_PART3_MD5='20d337ae2de345628b5e4a6b9a2f55c7' ARCHIVE_BASE_0_SIZE='10000000' ARCHIVE_BASE_0_VERSION='1.0.ee8d3b39-gog58288' UNITY3D_NAME='disco' UNITY3D_NAME_2='disco elysium' UNITY3D_NAME_1='disco elysium' UNITY3D_NAME_0='disco elysium' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_DATA_STREAMINGASSETS_FILES=" ${UNITY3D_NAME}_data/streamingassets" CONTENT_GAME_DATA_STREAMINGASSETS_FILES_2=" ${UNITY3D_NAME_2}_data/streamingassets" CONTENT_GAME_DATA_STREAMINGASSETS_FILES_1=" ${UNITY3D_NAME_1}_data/streamingassets" CONTENT_GAME_DATA_STREAMINGASSETS_FILES_0=" ${UNITY3D_NAME_0}_data/streamingassets" WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/ZAUM Studio/Disco Elysium' PACKAGES_LIST=' PKG_BIN PKG_DATA_STREAMINGASSETS 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_STREAMINGASSETS' PKG_DATA_STREAMINGASSETS_ID="${PKG_DATA_ID}-streamingassets" PKG_DATA_STREAMINGASSETS_DESCRIPTION="$PKG_DATA_DESCRIPTION - streamingassets" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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-distance.sh0000750000000000000000000000603514471751340013751 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Distance # send your bug reports to vv221@dotslashplay.it ### script_version=20250724.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='distance' GAME_NAME='Distance' ARCHIVE_BASE_5_NAME='distance_6895_linux.tar.gz' ARCHIVE_BASE_5_MD5='8c71eb4ebd4dbe0b89ee90ba538eadd9' ARCHIVE_BASE_5_SIZE='2600000' ARCHIVE_BASE_5_VERSION='1.4.0-humble190905' ARCHIVE_BASE_5_URL='https://www.humblebundle.com/store/distance' ARCHIVE_BASE_4_NAME='distance_6842_linux.tar.gz' ARCHIVE_BASE_4_MD5='58e05033c1a0ae206718be5d5ee800db' ARCHIVE_BASE_4_SIZE='2400000' ARCHIVE_BASE_4_VERSION='1.3.1-humble190618' ARCHIVE_BASE_3_NAME='distance_6839_linux.tar.gz' ARCHIVE_BASE_3_MD5='308b8276a490f641476098900180d1d3' ARCHIVE_BASE_3_SIZE='2400000' ARCHIVE_BASE_3_VERSION='1.3.0-humble190609' ARCHIVE_BASE_2_NAME='distance_6802_linux.tar.gz' ARCHIVE_BASE_2_MD5='e98812e71ce42e667c33cdf3f38793b7' ARCHIVE_BASE_2_SIZE='2400000' ARCHIVE_BASE_2_VERSION='1.2.4-humble190418' ARCHIVE_BASE_1_NAME='distance_6714_linux.tar.gz' ARCHIVE_BASE_1_MD5='6b82a258c4fe4c5fe5dcf3ec70f7c326' ARCHIVE_BASE_1_SIZE='2300000' ARCHIVE_BASE_1_VERSION='1.1.1-humble190120' ARCHIVE_BASE_0_NAME='distance_6670_linux.tar.gz' ARCHIVE_BASE_0_MD5='7542f19db3aa2f00368b4efb91907a4f' ARCHIVE_BASE_0_SIZE='1800000' ARCHIVE_BASE_0_VERSION='1.0.2-humble181103' UNITY3D_NAME='Distance' UNITY3D_PLUGINS=' libAkFlanger.so libAkGuitarDistortion.so libAkHarmonizer.so libAkPitchShifter.so libAkSoundEngine.so libAkStereoDelay.so libAkTremolo.so libSynthOne.so ScreenSelector.so' CONTENT_PATH_DEFAULT='bin' CONTENT_DOC_DATA_PATH='.' CONTENT_DOC_DATA_FILES=' EULA.txt' 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 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-dungeon-keeper-1.sh0000750000000000000000000001463414471751340015231 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # Dungeon Keeper 1 # send your bug reports to vv221@dotslashplay.it ### script_version=20250722.2 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='dungeon-keeper-1' GAME_NAME='Dungeon Keeper' ARCHIVE_BASE_2_NAME='setup_dungeon_keeper_gold_1.01_fix_(76190).exe' ARCHIVE_BASE_2_MD5='bb51a55e868c7b22c505cbf6bfaa3789' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_SIZE='393045' ARCHIVE_BASE_2_VERSION='1.01-gog76190' ARCHIVE_BASE_2_URL='https://www.gog.com/game/dungeon_keeper' ARCHIVE_BASE_1_NAME='setup_dungeon_keeper_gold_10.1_(28184).exe' ARCHIVE_BASE_1_MD5='5d9c6f723c0375590cd77f79bed44eff' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='370026' ARCHIVE_BASE_1_VERSION='1.01-gog28184' ARCHIVE_BASE_0_NAME='setup_dungeon_keeper_gold_2.1.0.7.exe' ARCHIVE_BASE_0_MD5='8f8890d743c171fb341c9d9c87c52343' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='400000' ARCHIVE_BASE_0_VERSION='1.01-gog2.1.0.7' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_MAIN_FILES=' data ldata levels sound game.gog game.ins dpatch.1 wpatch.1 deeper.exe dos4gw.exe keeper.exe patch1.exe keeper.pat keeper.pti *.ogg' CONTENT_GAME0_MAIN_PATH='__support/save' CONTENT_GAME0_MAIN_PATH_0='app' CONTENT_GAME0_MAIN_FILES=' keeper.cfg sound/dig.ini' CONTENT_DOC_MAIN_FILES=' readme.txt *.pdf' ## Localisation files, extracted from the disk image. CONTENT_L10N_TXT_PATH='keeper/data' CONTENT_L10N_TXT_EN_PATH="${CONTENT_L10N_TXT_PATH}/english" CONTENT_L10N_TXT_FR_PATH="${CONTENT_L10N_TXT_PATH}/french" CONTENT_L10N_TXT_FILES=' dd1text.dat text.dat' CONTENT_L10N_TXT_EN_FILES="$CONTENT_L10N_TXT_FILES" CONTENT_L10N_TXT_FR_FILES="$CONTENT_L10N_TXT_FILES" CONTENT_L10N_VOICES_SPEECH_PATH='keeper/sound/speech' CONTENT_L10N_VOICES_SPEECH_EN_PATH="${CONTENT_L10N_VOICES_SPEECH_PATH}/english" CONTENT_L10N_VOICES_SPEECH_FR_PATH="${CONTENT_L10N_VOICES_SPEECH_PATH}/french" CONTENT_L10N_VOICES_SPEECH_FILES=' speech.dat' CONTENT_L10N_VOICES_SPEECH_EN_FILES="$CONTENT_L10N_VOICES_SPEECH_FILES" CONTENT_L10N_VOICES_SPEECH_FR_FILES="$CONTENT_L10N_VOICES_SPEECH_FILES" CONTENT_L10N_VOICES_ATLAS_PATH='keeper/sound/atlas' CONTENT_L10N_VOICES_ATLAS_EN_PATH="${CONTENT_L10N_VOICES_ATLAS_PATH}/english" CONTENT_L10N_VOICES_ATLAS_FR_PATH="${CONTENT_L10N_VOICES_ATLAS_PATH}/french" CONTENT_L10N_VOICES_ATLAS_FILES=' bad??.wav good??.wav' CONTENT_L10N_VOICES_ATLAS_EN_FILES="$CONTENT_L10N_VOICES_ATLAS_FILES" CONTENT_L10N_VOICES_ATLAS_FR_FILES="$CONTENT_L10N_VOICES_ATLAS_FILES" DOSBOX_DISK_IMAGE_PATH='game.ins' USER_PERSISTENT_DIRECTORIES=' save' USER_PERSISTENT_FILES=' *.cfg data/HISCORES.DAT' APP_MAIN_EXE='keeper.exe' APP_MAIN_ICON='goggame-1207658934.ico' APP_ADDON_ID="${GAME_ID}-deeper-dungeons" APP_ADDON_NAME="$GAME_NAME - Deeper Dungeons" APP_ADDON_EXE='deeper.exe' APP_ADDON_ICON='gfw_high_addon.ico' PACKAGES_LIST=' PKG_L10N_TXT_EN PKG_L10N_TXT_FR PKG_L10N_VOICES_EN PKG_L10N_VOICES_FR PKG_MAIN' PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_L10N_TXT PKG_L10N_VOICES' PKG_L10N_TXT_ID="${GAME_ID}-l10n-txt" PKG_L10N_TXT_EN_ID="${PKG_L10N_TXT_ID}-en" PKG_L10N_TXT_FR_ID="${PKG_L10N_TXT_ID}-fr" PKG_L10N_TXT_PROVIDES=" $PKG_L10N_TXT_ID" PKG_L10N_TXT_EN_PROVIDES="$PKG_L10N_TXT_PROVIDES" PKG_L10N_TXT_FR_PROVIDES="$PKG_L10N_TXT_PROVIDES" PKG_L10N_TXT_EN_DESCRIPTION='English text' PKG_L10N_TXT_FR_DESCRIPTION='French text' PKG_L10N_VOICES_ID="${GAME_ID}-l10n-voices" PKG_L10N_VOICES_EN_ID="${PKG_L10N_VOICES_ID}-en" PKG_L10N_VOICES_FR_ID="${PKG_L10N_VOICES_ID}-fr" PKG_L10N_VOICES_PROVIDES=" $PKG_L10N_VOICES_ID" PKG_L10N_VOICES_EN_PROVIDES="$PKG_L10N_VOICES_PROVIDES" PKG_L10N_VOICES_FR_PROVIDES="$PKG_L10N_VOICES_PROVIDES" PKG_L10N_VOICES_EN_DESCRIPTION='English voices' PKG_L10N_VOICES_FR_DESCRIPTION='French voices' # unar is used to extract files from the disk image. REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} unar" # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Delete files that should not be included in the base package. ## These files are provided by localisation packages. rm --force --recursive \ 'data/dd1text.dat' \ 'data/text.dat' \ 'sound/atlas' \ 'sound/speech.dat' ## Enforce consistent name for the disk image table of content. if [ -e 'game.inst' ]; then mv 'game.inst' "$(dosbox_disk_image_path)" fi ) ## Extract localisation files from the disk image. ARCHIVE_L10N_PATH="${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/game.gog" ARCHIVE_L10N_EXTRACTOR='unar' archive_extraction 'ARCHIVE_L10N' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Convert all file paths to lowercase. tolower . ) # Include game data. content_inclusion_icons 'PKG_MAIN' content_inclusion 'L10N_TXT_EN' 'PKG_L10N_TXT_EN' "$(path_game_data)/data" content_inclusion 'L10N_TXT_FR' 'PKG_L10N_TXT_FR' "$(path_game_data)/data" content_inclusion 'L10N_VOICES_SPEECH_EN' 'PKG_L10N_VOICES_EN' "$(path_game_data)/sound" content_inclusion 'L10N_VOICES_SPEECH_FR' 'PKG_L10N_VOICES_FR' "$(path_game_data)/sound" content_inclusion 'L10N_VOICES_ATLAS_EN' 'PKG_L10N_VOICES_EN' "$(path_game_data)/sound/atlas" content_inclusion 'L10N_VOICES_ATLAS_FR' 'PKG_L10N_VOICES_FR' "$(path_game_data)/sound/atlas" content_inclusion_default # Write launchers. launchers_generation 'PKG_MAIN' # Build packages. packages_generation case "$(messages_language)" in ('fr') lang_string='version %s :' lang_en='anglaise' lang_fr='française' ;; ('en'|*) lang_string='%s version:' lang_en='English' lang_fr='French' ;; esac printf '\n' printf "$lang_string" "$lang_en" print_instructions 'PKG_L10N_TXT_EN' 'PKG_L10N_VOICES_EN' 'PKG_MAIN' printf "$lang_string" "$lang_fr" print_instructions 'PKG_L10N_TXT_FR' 'PKG_L10N_VOICES_FR' 'PKG_MAIN' # Clean up. working_directory_cleanup exit 0 games/play-dungeon-keeper-2.sh0000750000000000000000000000764614471751340015237 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # Dungeon Keeper 2 # send your bug reports to vv221@dotslashplay.it ### script_version=20241123.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='dungeon-keeper-2' GAME_NAME='Dungeon Keeper Ⅱ' ARCHIVE_BASE_EN_2_NAME='setup_dungeon_keepertm_2_1.7_alttab_hotfix_(77775).exe' ARCHIVE_BASE_EN_2_MD5='250ba86776e434e2fc65534a97e68e41' ARCHIVE_BASE_EN_2_TYPE='innosetup' ARCHIVE_BASE_EN_2_PART1_NAME='setup_dungeon_keepertm_2_1.7_alttab_hotfix_(77775)-1.bin' ARCHIVE_BASE_EN_2_PART1_MD5='4cf9a2db8dfba58d6e869e2b124edbe0' ARCHIVE_BASE_EN_2_SIZE='514101' ARCHIVE_BASE_EN_2_VERSION='1.7-gog77775' ARCHIVE_BASE_EN_2_URL='https://www.gog.com/game/dungeon_keeper_2' ARCHIVE_BASE_FR_2_NAME='setup_dungeon_keepertm_2_1.7_alttab_hotfix_(french)_(77775).exe' ARCHIVE_BASE_FR_2_MD5='1ce059082cddb831ea25e571c571eaef' ARCHIVE_BASE_FR_2_TYPE='innosetup' ARCHIVE_BASE_FR_2_PART1_NAME='setup_dungeon_keepertm_2_1.7_alttab_hotfix_(french)_(77775)-1.bin' ARCHIVE_BASE_FR_2_PART1_MD5='5cd909d382a35f22ad93470e5281fa2e' ARCHIVE_BASE_FR_2_SIZE='512981' ARCHIVE_BASE_FR_2_VERSION='1.7-gog77775' ARCHIVE_BASE_FR_2_URL='https://www.gog.com/game/dungeon_keeper_2' ARCHIVE_BASE_EN_1_NAME='setup_dungeon_keeper_2_1.7_(22280).exe' ARCHIVE_BASE_EN_1_MD5='eeb2229ee49518504884a9ac65f611ad' ARCHIVE_BASE_EN_1_TYPE='innosetup' ARCHIVE_BASE_EN_1_SIZE='500537' ARCHIVE_BASE_EN_1_VERSION='1.7-gog22280' ARCHIVE_BASE_EN_0_NAME='setup_dungeon_keeper2_2.0.0.32.exe' ARCHIVE_BASE_EN_0_MD5='92d04f84dd870d9624cd18449d3622a5' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_SIZE='510000' ARCHIVE_BASE_EN_0_VERSION='1.7-gog2.0.0.32' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_BIN_FILES=' aweman32.dll patch.dll qmixer.dll sfman32.dll weanetr.dll dkii.exe dkii-dx.exe' CONTENT_GAME_L10N_FILES=' data/sound/sfx/speech_* data/text/default' CONTENT_GAME_DATA_FILES=' data dk2texturecache' CONTENT_DOC_L10N_FILES=' eamseula.txt readme.txt' CONTENT_DOC_DATA_FILES=' manual.pdf reference_card.pdf' USER_PERSISTENT_DIRECTORIES=' data/settings data/save' WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\Bullfrog Productions Ltd\Dungeon Keeper II' ## Without a virtual desktop, some models can disappear after Alt-Tabbing out of the game. WINE_VIRTUAL_DESKTOP='auto' ## Work around poor performances using hardware rendering with Intel+Mesa. WINE_WINETRICKS_VERBS='csmt=off' APP_MAIN_EXE='dkii-dx.exe' APP_MAIN_ICON='dkii.exe' PACKAGES_LIST=' PKG_BIN PKG_L10N PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N_BASE PKG_DATA' PKG_L10N_BASE_ID="${GAME_ID}-l10n" PKG_L10N_ID_EN="${PKG_L10N_BASE_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_BASE_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_BASE_ID" PKG_L10N_PROVIDES_EN="$PKG_L10N_PROVIDES" PKG_L10N_PROVIDES_FR="$PKG_L10N_PROVIDES" PKG_L10N_DESCRIPTION_EN='English localisation' PKG_L10N_DESCRIPTION_FR='French localisation' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run 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-factorio.sh0000750000000000000000000002311014471751340013756 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2021 HS-157 # SPDX-FileCopyrightText: © 2021 Hoël Bézier set -o errexit ### # Factorio # send your bug reports to vv221@dotslashplay.it ### script_version=20241121.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='factorio' GAME_NAME='Factorio' GAME_NAME_SPACEAGE="${GAME_NAME}: Space Age" GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" # Archives ## Factorio (full game) ARCHIVE_BASE_0_NAME='factorio_linux_2.0.7.tar.xz' ARCHIVE_BASE_0_MD5='016efe181a57ebb649260b68b0696b3a' ARCHIVE_BASE_0_SIZE='1973608' ARCHIVE_BASE_0_VERSION='2.0.7-1' ARCHIVE_BASE_0_URL='https://www.factorio.com/' ARCHIVE_BASE_PRE2_15_NAME='factorio_alpha_x64_1.1.107.tar.xz' ARCHIVE_BASE_PRE2_15_MD5='5c3294a7b2bd3b93a7cd9f8a7e785885' ARCHIVE_BASE_PRE2_15_SIZE='1783701' ARCHIVE_BASE_PRE2_15_VERSION='1.1.107-1' ARCHIVE_BASE_PRE2_14_NAME='factorio_alpha_x64_1.1.91.tar.xz' ARCHIVE_BASE_PRE2_14_MD5='3d906d237f44c5a3d7cd019f5733c53c' ARCHIVE_BASE_PRE2_14_SIZE='1894576' ARCHIVE_BASE_PRE2_14_VERSION='1.1.91-1' ARCHIVE_BASE_PRE2_13_NAME='factorio_alpha_x64_1.1.87.tar.xz' ARCHIVE_BASE_PRE2_13_MD5='d7972ea941172301e18ebb64694a10b6' ARCHIVE_BASE_PRE2_13_SIZE='1750584' ARCHIVE_BASE_PRE2_13_VERSION='1.1.87-1' ARCHIVE_BASE_PRE2_12_NAME='factorio_alpha_x64_1.1.80.tar.xz' ARCHIVE_BASE_PRE2_12_MD5='fc2e68ed66beedb82ad4a25023ac32aa' ARCHIVE_BASE_PRE2_12_SIZE='1800000' ARCHIVE_BASE_PRE2_12_VERSION='1.1.80-1' ARCHIVE_BASE_PRE2_11_NAME='factorio_alpha_x64_1.1.77.tar.xz' ARCHIVE_BASE_PRE2_11_MD5='ea6a481b694d73a956e45ea3ebe17a43' ARCHIVE_BASE_PRE2_11_SIZE='1800000' ARCHIVE_BASE_PRE2_11_VERSION='1.1.77-1' ARCHIVE_BASE_PRE2_10_NAME='factorio_alpha_x64_1.1.76.tar.xz' ARCHIVE_BASE_PRE2_10_MD5='c2a2302f2c1819a453a023789b3b8558' ARCHIVE_BASE_PRE2_10_SIZE='1800000' ARCHIVE_BASE_PRE2_10_VERSION='1.1.76-1' ARCHIVE_BASE_PRE2_9_NAME='factorio_alpha_x64_1.1.61.tar.xz' ARCHIVE_BASE_PRE2_9_MD5='d829704d00f92bef8d72ba3f36910529' ARCHIVE_BASE_PRE2_9_SIZE='1800000' ARCHIVE_BASE_PRE2_9_VERSION='1.1.61-1' ARCHIVE_BASE_PRE2_8_NAME='factorio_alpha_x64_1.1.59.tar.xz' ARCHIVE_BASE_PRE2_8_MD5='568328112d5b6e57c9e7a13237c85500' ARCHIVE_BASE_PRE2_8_SIZE='1800000' ARCHIVE_BASE_PRE2_8_VERSION='1.1.59-1' ARCHIVE_BASE_PRE2_7_NAME='factorio_alpha_x64_1.1.57.tar.xz' ARCHIVE_BASE_PRE2_7_MD5='c1e5392a9c7d2ead37de90c1ce4732ff' ARCHIVE_BASE_PRE2_7_SIZE='1800000' ARCHIVE_BASE_PRE2_7_VERSION='1.1.57-1' ARCHIVE_BASE_PRE2_6_NAME='factorio_alpha_x64_1.1.53.tar.xz' ARCHIVE_BASE_PRE2_6_MD5='3197e3b0de006f3c14027604ba39a244' ARCHIVE_BASE_PRE2_6_SIZE='1800000' ARCHIVE_BASE_PRE2_6_VERSION='1.1.53-1' ARCHIVE_BASE_PRE2_5_NAME='factorio_alpha_x64_1.1.41.tar.xz' ARCHIVE_BASE_PRE2_5_MD5='9dbe3f0b17a2f217f62b1d6b756897dc' ARCHIVE_BASE_PRE2_5_SIZE='1800000' ARCHIVE_BASE_PRE2_5_VERSION='1.1.41-1' ARCHIVE_BASE_PRE2_4_NAME='factorio_alpha_x64_1.1.39.tar.xz' ARCHIVE_BASE_PRE2_4_MD5='92dae2519513f87cc9b25c26930a21a9' ARCHIVE_BASE_PRE2_4_SIZE='1800000' ARCHIVE_BASE_PRE2_4_VERSION='1.1.39-1' ARCHIVE_BASE_PRE2_3_NAME='factorio_alpha_x64_1.1.30.tar.xz' ARCHIVE_BASE_PRE2_3_MD5='b039e25fef976f2ebe77bf5d9bca3c90' ARCHIVE_BASE_PRE2_3_SIZE='1800000' ARCHIVE_BASE_PRE2_3_VERSION='1.1.30-1' ARCHIVE_BASE_PRE2_2_NAME='factorio_alpha_x64_1.1.27.tar.xz' ARCHIVE_BASE_PRE2_2_MD5='71c370e0363c40e95f0a9af56b8f4a9b' ARCHIVE_BASE_PRE2_2_SIZE='1800000' ARCHIVE_BASE_PRE2_2_VERSION='1.1.27-1' ARCHIVE_BASE_PRE2_1_NAME='factorio_alpha_x64_1.1.19.tar.xz' ARCHIVE_BASE_PRE2_1_MD5='ffe7310259e6176d20fc4add10d8a3d3' ARCHIVE_BASE_PRE2_1_SIZE='1800000' ARCHIVE_BASE_PRE2_1_VERSION='1.1.19-1' ARCHIVE_BASE_PRE2_0_NAME='factorio_alpha_x64_1.0.0.tar.xz' ARCHIVE_BASE_PRE2_0_MD5='001910cafbfa8f4ac61b2897f91fe77e' ARCHIVE_BASE_PRE2_0_SIZE='1700000' ARCHIVE_BASE_PRE2_0_VERSION='1.0.0-1' ## Factorio including Space Age expansion ARCHIVE_BASE_SPACEAGE_0_NAME='factorio-space-age_linux_2.0.7.tar.xz' ARCHIVE_BASE_SPACEAGE_0_MD5='56559ce107be62443b8743dc8696f65e' ARCHIVE_BASE_SPACEAGE_0_SIZE='4741087' ARCHIVE_BASE_SPACEAGE_0_VERSION='2.0.7-1' ARCHIVE_BASE_SPACEAGE_0_URL='https://www.factorio.com/' ## Factorio (demo) ARCHIVE_BASE_DEMO_13_NAME='factorio_demo_x64_1.1.107.tar.xz' ARCHIVE_BASE_DEMO_13_MD5='e59b6e296f2080d1f80df3090f3b40d4' ARCHIVE_BASE_DEMO_13_SIZE='1645945' ARCHIVE_BASE_DEMO_13_VERSION='1.1.107-1' ARCHIVE_BASE_DEMO_13_URL='https://www.factorio.com/download' ARCHIVE_BASE_DEMO_12_NAME='factorio_demo_x64_1.1.91.tar.xz' ARCHIVE_BASE_DEMO_12_MD5='b4c599f44952033e5830f3fee78cb41f' ARCHIVE_BASE_DEMO_12_SIZE='1687672' ARCHIVE_BASE_DEMO_12_VERSION='1.1.91-1' ARCHIVE_BASE_DEMO_11_NAME='factorio_demo_x64_1.1.87.tar.xz' ARCHIVE_BASE_DEMO_11_MD5='7968cbd443ad7d562c6bbbb5a5f99d0d' ARCHIVE_BASE_DEMO_11_SIZE='1687456' ARCHIVE_BASE_DEMO_11_VERSION='1.1.87-1' ARCHIVE_BASE_DEMO_10_NAME='factorio_demo_x64_1.1.76.tar.xz' ARCHIVE_BASE_DEMO_10_MD5='bf5eb5cf72137a87ea1055cf9b39967a' ARCHIVE_BASE_DEMO_10_SIZE='1700000' ARCHIVE_BASE_DEMO_10_VERSION='1.1.76-1' ARCHIVE_BASE_DEMO_9_NAME='factorio_demo_x64_1.1.59.tar.xz' ARCHIVE_BASE_DEMO_9_MD5='c40c223284a8a373800bf777d364f5b2' ARCHIVE_BASE_DEMO_9_SIZE='1700000' ARCHIVE_BASE_DEMO_9_VERSION='1.1.59-1' ARCHIVE_BASE_DEMO_8_NAME='factorio_demo_x64_1.1.53.tar.xz' ARCHIVE_BASE_DEMO_8_MD5='79bafca740b1ea6fb13ab94b79845601' ARCHIVE_BASE_DEMO_8_SIZE='1700000' ARCHIVE_BASE_DEMO_8_VERSION='1.1.53-1' ARCHIVE_BASE_DEMO_7_NAME='factorio_demo_x64_1.1.41.tar.xz' ARCHIVE_BASE_DEMO_7_MD5='df020fa5c98690d8aedf8cb23b80bce3' ARCHIVE_BASE_DEMO_7_VERSION='1.1.41-1' ARCHIVE_BASE_DEMO_7_SIZE='1700000' ARCHIVE_BASE_DEMO_6_NAME='factorio_demo_x64_1.1.39.tar.xz' ARCHIVE_BASE_DEMO_6_MD5='cabef150f9b7af9b1480d2590b7799ec' ARCHIVE_BASE_DEMO_6_VERSION='1.1.39-1' ARCHIVE_BASE_DEMO_6_SIZE='1700000' ARCHIVE_BASE_DEMO_5_NAME='factorio_demo_x64_1.1.33.tar.xz' ARCHIVE_BASE_DEMO_5_MD5='82cc1137048cf98121cd6943e51ae597' ARCHIVE_BASE_DEMO_5_VERSION='1.1.33-1' ARCHIVE_BASE_DEMO_5_SIZE='1700000' ARCHIVE_BASE_DEMO_4_NAME='factorio_demo_x64_1.1.32.tar.xz' ARCHIVE_BASE_DEMO_4_MD5='275b63133ac56e59ccb73e98f5bebed2' ARCHIVE_BASE_DEMO_4_VERSION='1.1.32-1' ARCHIVE_BASE_DEMO_4_SIZE='1700000' ARCHIVE_BASE_DEMO_3_NAME='factorio_demo_x64_1.1.30.tar.xz' ARCHIVE_BASE_DEMO_3_MD5='36186abcbe560591bd8e4c207291409f' ARCHIVE_BASE_DEMO_3_VERSION='1.1.30-1' ARCHIVE_BASE_DEMO_3_SIZE='1700000' ARCHIVE_BASE_DEMO_2_NAME='factorio_demo_x64_1.1.27.tar.xz' ARCHIVE_BASE_DEMO_2_MD5='cdb61b4b98a704e9c6a1090938dfabee' ARCHIVE_BASE_DEMO_2_VERSION='1.1.27-1' ARCHIVE_BASE_DEMO_2_SIZE='1700000' ARCHIVE_BASE_DEMO_1_NAME='factorio_demo_x64_1.0.0.tar.xz' ARCHIVE_BASE_DEMO_1_MD5='3995194f9c4b4368ecf27ffa9234008e' ARCHIVE_BASE_DEMO_1_VERSION='1.0.0-1' ARCHIVE_BASE_DEMO_1_SIZE='1400000' ARCHIVE_BASE_DEMO_0_NAME='factorio_demo_x64_0.16.51.tar.xz' ARCHIVE_BASE_DEMO_0_MD5='130267c91df0be6c2034b64fb05d389b' ARCHIVE_BASE_DEMO_0_VERSION='0.16.51-1' ARCHIVE_BASE_DEMO_0_SIZE='680000' CONTENT_PATH_DEFAULT='factorio' CONTENT_GAME_BIN_FILES=' bin/x64/factorio' CONTENT_GAME_DATA_SPACEAGE_FILES=' data/elevated-rails data/quality data/space-age' CONTENT_GAME_DATA_FILES=' data config-path.cfg' CONTENT_DOC_DATA_FILES=' doc-html' USER_PERSISTENT_FILES=' *.cfg *.dat player-data.json' USER_PERSISTENT_DIRECTORIES=' config mods saves' APP_MAIN_EXE='bin/x64/factorio' APP_MAIN_ICON='data/core/graphics/factorio-icon.png' ## Work around the engine poor support for symbolic links APP_MAIN_PRERUN=' # Work around the engine poor support for symbolic links for mod in core base elevated-rails quality space-age; do if [ ! -h "data/${mod}" ] && [ -e "${PATH_GAME_DATA}/data/${mod}" ]; then rm --force --recursive "data/${mod}" ln --symbolic "${PATH_GAME_DATA}/data/${mod}" "data/${mod}" fi done ' PACKAGES_LIST=' PKG_BIN PKG_DATA' PACKAGES_LIST_SPACEAGE=' PKG_BIN PKG_DATA_SPACEAGE PKG_DATA' PKG_BIN_ID_SPACEAGE="${GAME_ID}-space-age" PKG_BIN_ID_DEMO="$GAME_ID_DEMO" PKG_BIN_PROVIDES_SPACEAGE=" $GAME_ID" PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_SIBLINGS_SPACEAGE=' PKG_DATA PKG_DATA_SPACEAGE' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libm.so.6 libpthread.so.0 libresolv.so.2 librt.so.1' PKG_BIN_DEPENDENCIES_LIBRARIES_PRE2=' libasound.so.2 libc.so.6 libdl.so.2 libGL.so.1 libm.so.6 libpthread.so.0 libpulse-simple.so.0 libpulse.so.0 libresolv.so.2 librt.so.1 libX11.so.6 libXcursor.so.1 libXext.so.6 libXinerama.so.1 libXrandr.so.2' PKG_BIN_DEPENDENCIES_LIBRARIES_DEMO="$PKG_BIN_DEPENDENCIES_LIBRARIES_PRE2" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_SPACEAGE_ID="${PKG_DATA_ID}-space-age" PKG_DATA_SPACEAGE_DESCRIPTION="$PKG_DATA_DESCRIPTION - Space Age" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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-faster-than-light.sh0000750000000000000000000001070714471751340015501 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2018 BetaRays set -o errexit ### # Faster Than Light # send your bug reports to vv221@dotslashplay.it ### script_version=20250429.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='faster-than-light' GAME_NAME='FTL: Faster Than Light' # Archives ## Installers sold from gog.com ARCHIVE_BASE_GOG_6_NAME='ftl_advanced_edition_1_6_12_2_35269.sh' ARCHIVE_BASE_GOG_6_MD5='fc012e9ac7515f0b7b119a73ccfd7190' ARCHIVE_BASE_GOG_6_SIZE='401336' ARCHIVE_BASE_GOG_6_VERSION='1.6.12.2-gog35269' ARCHIVE_BASE_GOG_6_URL='https://www.gog.com/game/faster_than_light' ARCHIVE_BASE_GOG_5_NAME='ftl_advanced_edition_1_6_12_2_34795.sh' ARCHIVE_BASE_GOG_5_MD5='d62355fc9339cd901242fc1828e8c248' ARCHIVE_BASE_GOG_5_SIZE='410000' ARCHIVE_BASE_GOG_5_VERSION='1.6.12.2-gog34795' ARCHIVE_BASE_GOG_4_NAME='ftl_advanced_edition_1_6_9_25330.sh' ARCHIVE_BASE_GOG_4_MD5='c3598ab0c07d1f038eb1642da066b6a5' ARCHIVE_BASE_GOG_4_SIZE='230000' ARCHIVE_BASE_GOG_4_VERSION='1.6.9-gog25330' ARCHIVE_BASE_GOG_3_NAME='ftl_advanced_edition_1_6_8_24110.sh' ARCHIVE_BASE_GOG_3_MD5='4d654aeca32de557c109fa5c642ff455' ARCHIVE_BASE_GOG_3_SIZE='230000' ARCHIVE_BASE_GOG_3_VERSION='1.6.8-gog24110' ARCHIVE_BASE_GOG_2_NAME='ftl_advanced_edition_1_6_7_24012.sh' ARCHIVE_BASE_GOG_2_MD5='43392da0d11548b1c16f1263fc5fad65' ARCHIVE_BASE_GOG_2_SIZE='230000' ARCHIVE_BASE_GOG_2_VERSION='1.6.8-gog24012' ARCHIVE_BASE_GOG_1_NAME='ftl_advanced_edition_en_1_6_7_18662.sh' ARCHIVE_BASE_GOG_1_MD5='2c5254547639b7718dac7a06dabd1d82' ARCHIVE_BASE_GOG_1_SIZE='210000' ARCHIVE_BASE_GOG_1_VERSION='1.6.7-gog18662' ARCHIVE_BASE_GOG_0_NAME='ftl_advanced_edition_en_1_6_3_17917.sh' ARCHIVE_BASE_GOG_0_MD5='b64692d5302a1ab60d912c5eb5fbc5e4' ARCHIVE_BASE_GOG_0_SIZE='210000' ARCHIVE_BASE_GOG_0_VERSION='1.6.3-gog17917' # Installers sold from humblebundle.com ARCHIVE_BASE_HUMBLE_2_NAME='FTL.1.6.12.Linux.zip' ARCHIVE_BASE_HUMBLE_2_MD5='4ee7ea561d7753c8a003570364e15311' ARCHIVE_BASE_HUMBLE_2_SIZE='400104' ARCHIVE_BASE_HUMBLE_2_VERSION='1.6.12-humble191220' ARCHIVE_BASE_HUMBLE_2_URL='https://www.humblebundle.com/store/ftl-faster-than-light' ARCHIVE_BASE_HUMBLE_1_NAME='FTL.1.6.9.tar.gz' ARCHIVE_BASE_HUMBLE_1_MD5='c70d9cbc55217a5f83e0d51189240ec2' ARCHIVE_BASE_HUMBLE_1_SIZE='230000' ARCHIVE_BASE_HUMBLE_1_VERSION='1.6.9-humble181120' ARCHIVE_BASE_HUMBLE_0_NAME='FTL-linux-1.6.8.tar.gz' ARCHIVE_BASE_HUMBLE_0_MD5='5898d476dae289dae20d93ecfc1b8390' ARCHIVE_BASE_HUMBLE_0_SIZE='230000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.6.8-humble180928' CONTENT_PATH_DEFAULT_GOG='data/noarch/game/data' CONTENT_PATH_DEFAULT_HUMBLE='FTL-linux/data' CONTENT_PATH_DEFAULT_HUMBLE_2='FTL.1.6.12.Linux/data' CONTENT_GAME_BIN64_FILES=' FTL.amd64' CONTENT_GAME_BIN32_FILES=' FTL.x86' CONTENT_GAME_DATA_FILES=' exe_icon.bmp ftl.dat' CONTENT_DOC_DATA_FILES=' licenses' CONTENT_DOC0_DATA_RELATIVE_PATH='..' CONTENT_DOC0_DATA_FILES=' FTL_README.html' APP_MAIN_EXE_BIN64='FTL.amd64' APP_MAIN_EXE_BIN32='FTL.x86' APP_MAIN_ICON='exe_icon.bmp' ## Work around problems with non-US locales. APP_MAIN_PRERUN=' # Work around problems with non-US locales export LANG=C ' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libasound.so.2 libc.so.6 libdl.so.2 libGL.so.1 libm.so.6 libpthread.so.0 librt.so.1 libX11.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-freelancer.sh0000750000000000000000000001123614471751340014264 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Freelancer # send your bug reports to vv221@dotslashplay.it ### script_version=20250606.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='freelancer' GAME_NAME='Freelancer' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" ARCHIVE_BASE_DEMO_EN_0_NAME='freelancer_demo.exe' ARCHIVE_BASE_DEMO_EN_0_MD5='1af0a4cc730a64de9f6a6ecde30edc11' ARCHIVE_BASE_DEMO_EN_0_TYPE='cabinet' ARCHIVE_BASE_DEMO_EN_0_VERSION='1.0-archiveorg1' ARCHIVE_BASE_DEMO_EN_0_SIZE='450000' ARCHIVE_BASE_DEMO_EN_0_URL='https://archive.org/details/freelancer_demo' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_RELATIVE_PATH='game' CONTENT_GAME_BIN_FILES=' exe/freelancer.exe' CONTENT_GAME0_BIN_PATH='cab1' CONTENT_GAME0_BIN_FILES=' dlls exe/1033 exe/alchemy.dll exe/common.dll exe/dacom.dll exe/dalib.dll exe/debuglib.dll exe/deformable2.dll exe/ebueula.dll exe/engbase.dll exe/flmaterials.dll exe/gundll.dll exe/imeui.dll exe/luaprofile.dll exe/movie.dll exe/msxml3a.dll exe/msxml3.dll exe/msxml3r.dll exe/readfile.dll exe/remoteclient.dll exe/remoteserver.dll exe/rendcomp.dll exe/rp8.dll exe/rpclocal.dll exe/server.dll exe/shading.dll exe/soundmanager.dll exe/soundstreamer.dll exe/system.dll exe/thorn.dll exe/unicows.dll exe/x86math.dll exe/ximage.dll exe/zlib.dll exe/*.bmp exe/*.exe exe/*.fl exe/*.hta exe/*.ini exe/*.txt' CONTENT_GAME_L10N_PATH='cab1' CONTENT_GAME_L10N_FILES=' data/audio/dialogue data/audio/mixes data/audio/sounds/ui/news_vendor_open.wav data/audio/*.ini data/audio/*.utf exe/equipresources.dll exe/infocards.dll exe/misctext.dll exe/misctextinfo2.dll exe/nameresources.dll exe/offerbriberesources.dll exe/resources.dll exe/serverresources.dll' CONTENT_GAME0_L10N_PATH='cab2' CONTENT_GAME0_L10N_FILES=' data/audio/dialogue data/audio/mixes data/audio/sounds/ui/news_vendor_open.wav data/audio/*.ini data/audio/*.utf' CONTENT_FONTS_DATA_PATH='fonts' CONTENT_FONTS_DATA_FILES=' agencyb.ttf agencyr.ttf arialuni.ttf' CONTENT_GAME_DATA_FILES=' fl.ico' CONTENT_GAME0_DATA_PATH='cab1' CONTENT_GAME0_DATA_FILES=' data' CONTENT_GAME1_DATA_PATH='cab2' CONTENT_GAME1_DATA_FILES=' data' CONTENT_DOC_DATA_FILES=' eula.rtf readme.rtf' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/My Games/Freelancer Trial' ## Without a virtual desktop, loss of focus due to workspace switch can lead to loss of keyboard input. ## Keyboard input can then be restored when the mouse cursor leaves then re-enter the game window, ## but the game tries to trap the mouse in the game window. ## (WINE 10.0) WINE_VIRTUAL_DESKTOP='1280x960' APP_MAIN_EXE='exe/freelancer.exe' APP_MAIN_ICON='fl.ico' PACKAGES_LIST=' PKG_BIN PKG_L10N PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N_BASE PKG_DATA' PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' deinterlace video/x-ms-asf' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_DESCRIPTION='data' PKG_L10N_BASE_ID="${GAME_ID}-l10n" PKG_L10N_BASE_ID_DEMO="${GAME_ID_DEMO}-l10n" PKG_L10N_ID_EN="${PKG_L10N_BASE_ID}-en" PKG_L10N_ID_DEMO_EN="${PKG_L10N_BASE_ID_DEMO}-en" PKG_L10N_PROVIDES=" $PKG_L10N_BASE_ID" PKG_L10N_PROVIDES_DEMO=" $PKG_L10N_BASE_ID_DEMO" PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_DEMO_EN='English localization' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ARCHIVE_INNER1_PATH="${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/cab1.cab" archive_extraction 'ARCHIVE_INNER1' rm "$(archive_path 'ARCHIVE_INNER1')" ARCHIVE_INNER2_PATH="${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/cab2.cab" archive_extraction 'ARCHIVE_INNER2' rm "$(archive_path 'ARCHIVE_INNER2')" ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path 'GAME_BIN')" ## Rename files with truncated names. mv 'exe/freela_1.exe' 'exe/freelancer.exe' ) # 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-frostpunk-expansions.sh0000750000000000000000000000514214471751340016375 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Frostpunk expansions: # - The Rifts # - The Last Autumn # - On The Edge # send your bug reports to vv221@dotslashplay.it ### script_version=20241227.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='frostpunk' GAME_NAME='Frostpunk' EXPANSION_ID_RIFTS='the-rifts' EXPANSION_NAME_RIFTS='The Rifts' EXPANSION_ID_AUTUMN='the-last-autumn' EXPANSION_NAME_AUTUMN='The Last Autumn' EXPANSION_ID_EDGE='on-the-edge' EXPANSION_NAME_EDGE='On The Edge' # Archives ## The Rifts ARCHIVE_BASE_RIFTS_0_NAME='setup_frostpunk_-_szczeliny_1.6.1_51852_59618_(51757).exe' ARCHIVE_BASE_RIFTS_0_MD5='28b7855428687f3e819e141e78f0efce' ARCHIVE_BASE_RIFTS_0_TYPE='innosetup' ARCHIVE_BASE_RIFTS_0_SIZE='7457' ARCHIVE_BASE_RIFTS_0_VERSION='1.6.1-gog51757' ARCHIVE_BASE_RIFTS_0_URL='https://www.gog.com/game/frostpunk_the_rifts' ## The Last Autumn ARCHIVE_BASE_AUTUMN_0_NAME='setup_frostpunk_the_last_autumn_1.6.1_51852_59618_(51757).exe' ARCHIVE_BASE_AUTUMN_0_MD5='caf40e3e2fc0354b4a4ac130abba1f9e' ARCHIVE_BASE_AUTUMN_0_TYPE='innosetup' ARCHIVE_BASE_AUTUMN_0_SIZE='7132' ARCHIVE_BASE_AUTUMN_0_VERSION='1.6.1-gog51757' ARCHIVE_BASE_AUTUMN_0_URL='https://www.gog.com/game/frostpunk_the_last_autumn' ## On The Edge ARCHIVE_BASE_EDGE_0_NAME='setup_frostpunk_on_the_edge_1.6.1_51852_59618_(51757).exe' ARCHIVE_BASE_EDGE_0_MD5='ac91f06f1e421f0ae8061eefaaf42859' ARCHIVE_BASE_EDGE_0_TYPE='innosetup' ARCHIVE_BASE_EDGE_0_SIZE='7926' ARCHIVE_BASE_EDGE_0_VERSION='1.6.1-gog51757' ARCHIVE_BASE_EDGE_0_URL='https://www.gog.com/game/frostpunk_on_the_edge' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES=' goggame-*.info' PKG_PARENT_ID="$GAME_ID" PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_PARENT' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_default # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-frostpunk.sh0000750000000000000000000002006014471751340014204 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # Frostpunk # send your bug reports to vv221@dotslashplay.it ### script_version=20241227.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='frostpunk' GAME_NAME='Frostpunk' ARCHIVE_BASE_8_NAME='setup_frostpunk_1.6.1_51852_59618_(51757).exe' ARCHIVE_BASE_8_MD5='6d1f0d7c81821c949c5a7eb9c7f26133' ARCHIVE_BASE_8_TYPE='innosetup' ARCHIVE_BASE_8_PART1_NAME='setup_frostpunk_1.6.1_51852_59618_(51757)-1.bin' ARCHIVE_BASE_8_PART1_MD5='43f6adbfdc53299d4591a2abb1c84457' ARCHIVE_BASE_8_PART2_NAME='setup_frostpunk_1.6.1_51852_59618_(51757)-2.bin' ARCHIVE_BASE_8_PART2_MD5='6689f6a289b899ddcd69af920f4ecdc4' ARCHIVE_BASE_8_PART3_NAME='setup_frostpunk_1.6.1_51852_59618_(51757)-3.bin' ARCHIVE_BASE_8_PART3_MD5='a72c123ddeef82cdebeed57792b02e4c' ARCHIVE_BASE_8_SIZE='9593582' ARCHIVE_BASE_8_VERSION='1.6.1-gog51757' ARCHIVE_BASE_8_URL='https://www.gog.com/game/frostpunk' ARCHIVE_BASE_7_NAME='setup_frostpunk_1.6.1_51795_59550_(42925).exe' ARCHIVE_BASE_7_MD5='77bc92a7242dea010d766cf83bbace36' ARCHIVE_BASE_7_TYPE='innosetup' ARCHIVE_BASE_7_PART1_NAME='setup_frostpunk_1.6.1_51795_59550_(42925)-1.bin' ARCHIVE_BASE_7_PART1_MD5='cfdfccd316e3e1b82e285f9a54f3307a' ARCHIVE_BASE_7_PART2_NAME='setup_frostpunk_1.6.1_51795_59550_(42925)-2.bin' ARCHIVE_BASE_7_PART2_MD5='ff9cc388079e949bd1ac0f888315282b' ARCHIVE_BASE_7_PART3_NAME='setup_frostpunk_1.6.1_51795_59550_(42925)-3.bin' ARCHIVE_BASE_7_PART3_MD5='966cf1daaa31538c2dfa3b2125f86c34' ARCHIVE_BASE_7_SIZE='9500000' ARCHIVE_BASE_7_VERSION='1.6.1-gog42925' ARCHIVE_BASE_6_NAME='setup_frostpunk_1.6.1_51791_59537_(42472).exe' ARCHIVE_BASE_6_MD5='ec9795eb841cde30cb62d9983517aa68' ARCHIVE_BASE_6_TYPE='innosetup' ARCHIVE_BASE_6_PART1_NAME='setup_frostpunk_1.6.1_51791_59537_(42472)-1.bin' ARCHIVE_BASE_6_PART1_MD5='cb3996ecfa56f3ee102317d21392c034' ARCHIVE_BASE_6_PART2_NAME='setup_frostpunk_1.6.1_51791_59537_(42472)-2.bin' ARCHIVE_BASE_6_PART2_MD5='80af46c57e1e2d0fdb4fd97e4ba685f2' ARCHIVE_BASE_6_PART3_NAME='setup_frostpunk_1.6.1_51791_59537_(42472)-3.bin' ARCHIVE_BASE_6_PART3_MD5='652fb81dda4ca761d6fa08eba603c268' ARCHIVE_BASE_6_SIZE='9600000' ARCHIVE_BASE_6_VERSION='1.6.1-gog42472' ARCHIVE_BASE_5_NAME='setup_frostpunk_1.6.0_hotfix_candidate_3_(40765).exe' ARCHIVE_BASE_5_MD5='103d278de0b32670596d48fa0a3e1e7a' ARCHIVE_BASE_5_TYPE='innosetup' ARCHIVE_BASE_5_PART1_NAME='setup_frostpunk_1.6.0_hotfix_candidate_3_(40765)-1.bin' ARCHIVE_BASE_5_PART1_MD5='fc12ac7dc545219d54c0d547f30f77be' ARCHIVE_BASE_5_PART2_NAME='setup_frostpunk_1.6.0_hotfix_candidate_3_(40765)-2.bin' ARCHIVE_BASE_5_PART2_MD5='8393d7ff2b240fa894ad0523f6ffd3a0' ARCHIVE_BASE_5_PART3_NAME='setup_frostpunk_1.6.0_hotfix_candidate_3_(40765)-3.bin' ARCHIVE_BASE_5_PART3_MD5='77e9e8c6cfa3953a33d82b5fa822f226' ARCHIVE_BASE_5_SIZE='9800000' ARCHIVE_BASE_5_VERSION='1.6.0-gog40765' ARCHIVE_BASE_4_NAME='setup_frostpunk_1.6.0_(40599).exe' ARCHIVE_BASE_4_MD5='da7acf8c314c798743645d218567960d' ARCHIVE_BASE_4_TYPE='innosetup' ARCHIVE_BASE_4_PART1_NAME='setup_frostpunk_1.6.0_(40599)-1.bin' ARCHIVE_BASE_4_PART1_MD5='9ad1b9c0fe5ca877bbda422b465f81fc' ARCHIVE_BASE_4_PART2_NAME='setup_frostpunk_1.6.0_(40599)-2.bin' ARCHIVE_BASE_4_PART2_MD5='0aaed0691be9193110e8179e0468cd1c' ARCHIVE_BASE_4_PART3_NAME='setup_frostpunk_1.6.0_(40599)-3.bin' ARCHIVE_BASE_4_PART3_MD5='097ab0962232b97bb568350208e84dae' ARCHIVE_BASE_4_SIZE='9800000' ARCHIVE_BASE_4_VERSION='1.6.0-gog40599' ARCHIVE_BASE_3_NAME='setup_frostpunk_1.5.0.51146.56648_(2020-02-14_17-22)_(36204).exe' ARCHIVE_BASE_3_MD5='cc9bd3aba061dacd4f83e79e6a13d4e8' ARCHIVE_BASE_3_TYPE='innosetup' ARCHIVE_BASE_3_PART1_NAME='setup_frostpunk_1.5.0.51146.56648_(2020-02-14_17-22)_(36204)-1.bin' ARCHIVE_BASE_3_PART1_MD5='ba31654b9f3b1d24b22df3999e5ff78e' ARCHIVE_BASE_3_PART2_NAME='setup_frostpunk_1.5.0.51146.56648_(2020-02-14_17-22)_(36204)-2.bin' ARCHIVE_BASE_3_PART2_MD5='fc560cb127691e6fdcd9e1a82f0e7b26' ARCHIVE_BASE_3_PART3_NAME='setup_frostpunk_1.5.0.51146.56648_(2020-02-14_17-22)_(36204)-3.bin' ARCHIVE_BASE_3_PART3_MD5='b82e3dc7bd981c8a30b8da51813acbf6' ARCHIVE_BASE_3_SIZE='8700000' ARCHIVE_BASE_3_VERSION='1.5.0-gog36204' ARCHIVE_BASE_2_NAME='setup_frostpunk_1.5.0.51029.56354_(2020-01-21_1545)_(35558).exe' ARCHIVE_BASE_2_MD5='c31ecb7aa2497bc12bf83324d52b413f' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_PART1_NAME='setup_frostpunk_1.5.0.51029.56354_(2020-01-21_1545)_(35558)-1.bin' ARCHIVE_BASE_2_PART1_MD5='92cc54cc6c91f8435c3e7bc80fb22a20' ARCHIVE_BASE_2_PART2_NAME='setup_frostpunk_1.5.0.51029.56354_(2020-01-21_1545)_(35558)-2.bin' ARCHIVE_BASE_2_PART2_MD5='22489f0c14736cd5c473a3e091dfed51' ARCHIVE_BASE_2_PART3_NAME='setup_frostpunk_1.5.0.51029.56354_(2020-01-21_1545)_(35558)-3.bin' ARCHIVE_BASE_2_PART3_MD5='24013bb92bf78991e110463579685461' ARCHIVE_BASE_2_SIZE='8700000' ARCHIVE_BASE_2_VERSION='1.5.0-gog35558' ARCHIVE_BASE_1_NAME='setup_frostpunk_1.4.1.50110.53938_(2019-11-05_1825)_(33713).exe' ARCHIVE_BASE_1_MD5='99b71af138d5fdcb67418392b0a14d62' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_frostpunk_1.4.1.50110.53938_(2019-11-05_1825)_(33713)-1.bin' ARCHIVE_BASE_1_PART1_MD5='3fbe880a3c3acaf00ede07c998b13c92' ARCHIVE_BASE_1_PART2_NAME='setup_frostpunk_1.4.1.50110.53938_(2019-11-05_1825)_(33713)-2.bin' ARCHIVE_BASE_1_PART2_MD5='86267bb5dc870db828c50ccaa45d6091' ARCHIVE_BASE_1_SIZE='6500000' ARCHIVE_BASE_1_VERSION='1.4.1-gog33713' ARCHIVE_BASE_0_NAME='setup_frostpunk_1.4.0.48534.51933_(2019-08-30_1543)_(32102).exe' ARCHIVE_BASE_0_MD5='08e52207d9385bd5d3d66755facad69a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_frostpunk_1.4.0.48534.51933_(2019-08-30_1543)_(32102)-1.bin' ARCHIVE_BASE_0_PART1_MD5='60245c2ede7e99f526fa5cb87a660ebe' ARCHIVE_BASE_0_PART2_NAME='setup_frostpunk_1.4.0.48534.51933_(2019-08-30_1543)_(32102)-2.bin' ARCHIVE_BASE_0_PART2_MD5='48dcdc8acb8bfd93b5eab09b8695854e' ARCHIVE_BASE_0_SIZE='6500000' ARCHIVE_BASE_0_VERSION='1.4.0-gog32102' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' anselsdk64.dll libcurl.dll libeay32.dll libssh2.dll pctouchhelper.dll ssleay32.dll frostpunk.exe gfxconfig.ini' ## frostpunk.exe is linked against galaxy64.dll. CONTENT_GAME0_BIN_FILES=' galaxy64.dll' CONTENT_GAME_TEXTURES_FILES=' textures-s3.dat textures-s3.idx' CONTENT_GAME_DATA_PATH='app' CONTENT_GAME_DATA_FILES=' custom_localizations.dat voices.dat' CONTENT_GAME0_DATA_FILES=' *.dat *.idx *.str' CONTENT_DOC_DATA_FILES=' openfontlicense.txt' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/11bitstudios/Frostpunk' USER_PERSISTENT_FILES=' gfxconfig.ini' APP_MAIN_EXE='frostpunk.exe' APP_MAIN_ICON='frostpunk.exe' ## The game crashes on launch with some SDL settings. APP_MAIN_PRERUN=' # The game crashes on launch with some SDL settings if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi if [ "${SDL_AUDIODRIVER:-}" = "alsa" ]; then unset SDL_AUDIODRIVER fi ' PACKAGES_LIST=' PKG_BIN PKG_TEXTURES 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_TEXTURES' PKG_TEXTURES_ID="${GAME_ID}-textures" PKG_TEXTURES_DESCRIPTION='textures' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # 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-galacticare.sh0000750000000000000000000001066214471751340014417 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2025 Antoine Le Gonidec set -o errexit ### # Galacticare # send your bug reports to vv221@dotslashplay.it ### script_version=20250609.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='galacticare' GAME_NAME='Galacticare' ARCHIVE_BASE_2_NAME='setup_galacticare_1.2.3.1plus6d76582b76_(82662).exe' ARCHIVE_BASE_2_MD5='7b070946d0dc45e0df58b073195d48fb' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_PART1_NAME='setup_galacticare_1.2.3.1plus6d76582b76_(82662)-1.bin' ARCHIVE_BASE_2_PART1_MD5='dd3d876d9b90e018a83e3722d4f89f3f' ARCHIVE_BASE_2_PART2_NAME='setup_galacticare_1.2.3.1plus6d76582b76_(82662)-2.bin' ARCHIVE_BASE_2_PART2_MD5='c4bc049c0f14a2cf190d27763513f65e' ARCHIVE_BASE_2_SIZE='29191051' ARCHIVE_BASE_2_VERSION='1.2.3.1-gog82662' ARCHIVE_BASE_2_URL='https://www.gog.com/game/galacticare' ARCHIVE_BASE_1_NAME='setup_galacticare_1.2.3plus6d76582b76_(82235).exe' ARCHIVE_BASE_1_MD5='7d95382f9ccd962ed3c571f30c8ca642' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_galacticare_1.2.3plus6d76582b76_(82235)-1.bin' ARCHIVE_BASE_1_PART1_MD5='54c02d98af9b70b80e6438e12c4c9611' ARCHIVE_BASE_1_PART2_NAME='setup_galacticare_1.2.3plus6d76582b76_(82235)-2.bin' ARCHIVE_BASE_1_PART2_MD5='d420139ae4cebdcae18183d5fb77c982' ARCHIVE_BASE_1_PART3_NAME='setup_galacticare_1.2.3plus6d76582b76_(82235)-3.bin' ARCHIVE_BASE_1_PART3_MD5='ad4998209a459ccc9fd23c43fa53554f' ARCHIVE_BASE_1_PART4_NAME='setup_galacticare_1.2.3plus6d76582b76_(82235)-4.bin' ARCHIVE_BASE_1_PART4_MD5='0c927f423541c464acf3e27d0922f7fe' ARCHIVE_BASE_1_SIZE='34968590' ARCHIVE_BASE_1_VERSION='1.2.3-gog82235' ARCHIVE_BASE_0_NAME='setup_galacticare_1.2.0plus73e3612ea7_(81088).exe' ARCHIVE_BASE_0_MD5='87f45a1769017c88f4a0ed323d1ca6e5' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_galacticare_1.2.0plus73e3612ea7_(81088)-1.bin' ARCHIVE_BASE_0_PART1_MD5='54c02d98af9b70b80e6438e12c4c9611' ARCHIVE_BASE_0_PART2_NAME='setup_galacticare_1.2.0plus73e3612ea7_(81088)-2.bin' ARCHIVE_BASE_0_PART2_MD5='8afab5b704640ef48ea419517feda31f' ARCHIVE_BASE_0_PART3_NAME='setup_galacticare_1.2.0plus73e3612ea7_(81088)-3.bin' ARCHIVE_BASE_0_PART3_MD5='9042ba9cb019e5ec52e8ff0560d5470d' ARCHIVE_BASE_0_PART4_NAME='setup_galacticare_1.2.0plus73e3612ea7_(81088)-4.bin' ARCHIVE_BASE_0_PART4_MD5='94cc896f1bf5ada6099d75200b666178' ARCHIVE_BASE_0_SIZE='34948708' ARCHIVE_BASE_0_VERSION='1.2.0-gog81088' UNITY3D_NAME='galacticare' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_DATA_CHARACTERS_FILES=' galacticare_data/streamingassets/assetbundles/characters-*' CONTENT_GAME_DATA_ENVIRONMENT_FILES=' galacticare_data/streamingassets/assetbundles/environment-*' CONTENT_GAME_DATA_ROOMS_FILES=' galacticare_data/streamingassets/assetbundles/rooms-* galacticare_data/streamingassets/assetbundles/props-*' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Brightrock Games/Galacticare' PACKAGES_LIST=' PKG_BIN PKG_DATA_CHARACTERS PKG_DATA_ENVIRONMENT PKG_DATA_ROOMS 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_CHARACTERS PKG_DATA_ENVIRONMENT PKG_DATA_ROOMS' PKG_DATA_CHARACTERS_ID="${PKG_DATA_ID}-characters" PKG_DATA_CHARACTERS_DESCRIPTION="$PKG_DATA_DESCRIPTION - characters" PKG_DATA_ENVIRONMENT_ID="${PKG_DATA_ID}-environment" PKG_DATA_ENVIRONMENT_DESCRIPTION="$PKG_DATA_DESCRIPTION - environment" PKG_DATA_ROOMS_ID="${PKG_DATA_ID}-rooms" PKG_DATA_ROOMS_DESCRIPTION="$PKG_DATA_DESCRIPTION - rooms and props" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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-gamedec.sh0000750000000000000000000000635114471751340013545 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 vv221@dotslashplay.it ### script_version=20241124.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 launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-ghost-master.sh0000750000000000000000000000526414471751340014577 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # Ghost Master # send your bug reports to vv221@dotslashplay.it ### script_version=20241227.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='ghost-master' GAME_NAME='Ghost Master' ARCHIVE_BASE_1_NAME='setup_ghost_master_20171020_(15806).exe' ARCHIVE_BASE_1_MD5='bbc7b8d6ed9b08c54cba6f2b1048a0fd' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='658670' ARCHIVE_BASE_1_VERSION='1.1-gog15806' ARCHIVE_BASE_1_URL='https://www.gog.com/game/ghost_master' ARCHIVE_BASE_0_NAME='setup_ghost_master_2.0.0.3.exe' ARCHIVE_BASE_0_MD5='f581e0e08d7d9dfc89838c3ac892611a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='650000' ARCHIVE_BASE_0_VERSION='1.1-gog2.0.0.3' CONTENT_PATH_DEFAULT='app/ghostdata' CONTENT_GAME_BIN_FILES=' spdrv.cfg ogg.dll vorbis.dll vorbisfile.dll ghost.exe' CONTENT_GAME_DATA_FILES=' characters cursors fonts icons levels movies music new_animations otherobjects psparams pstextures scenarios screenshots scripts sound text ui voice lsize.txt' CONTENT_DOC_DATA_PATH='app' CONTENT_DOC_DATA_FILES=' manual.pdf readme.txt' WINE_PERSISTENT_DIRECTORIES=' users/Public/Documents/Ghost Master/SaveGames' USER_PERSISTENT_DIRECTORIES=' screenshots' USER_PERSISTENT_FILES=' *.cfg' APP_MAIN_EXE='ghost.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' ## Even with all the required decoders available, ## the introduction movie only shows still frames. ## cf. https://bugs.winehq.org/show_bug.cgi?id=53734 PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' deinterlace video/x-ms-asf audio/x-wma, wmaversion=(int)1 video/x-wmv, wmvversion=(int)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-gibbous-a-cthulhu-adventure.sh0000750000000000000000000000424514471751340017475 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Gibbous - A Cthulhu Adventure # send your bug reports to vv221@dotslashplay.it ### script_version=20241227.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='gibbous-a-cthulhu-adventure' GAME_NAME='Gibbous - A Cthulhu Adventure' ARCHIVE_BASE_0_NAME='gibbous_a_cthulhu_adventure_x86_64_1_8_35773.sh' ARCHIVE_BASE_0_MD5='c92315690df34ee8affa24f184486ccb' ARCHIVE_BASE_0_SIZE='9478807' ARCHIVE_BASE_0_VERSION='1.8-gog35773' ARCHIVE_BASE_0_URL='https://www.gog.com/game/gibbous_a_cthulhu_adventure' UNITY3D_NAME='Gibbous - A Cthulhu Adventure' UNITY3D_PLUGINS=' ScreenSelector.so' ## If libsteam_api.so is not included, ## the game crashes after the new game opening video. UNITY3D_PLUGINS="${UNITY3D_PLUGINS:-}"' libsteam_api.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # 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-goblins-5.sh0000750000000000000000000001161014471751340013751 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Gobliiins 5: L'invasion des Morglotons # send your bug reports to vv221@dotslashplay.it ### script_version=20250111.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='goblins-5' GAME_ID_PART1="${GAME_ID}-part-1" GAME_ID_PART2="${GAME_ID}-part-2" GAME_ID_PART3="${GAME_ID}-part-3" GAME_ID_PART4="${GAME_ID}-part-4" GAME_NAME='Gobliiins 5: L’invasion des Morglotons' GAME_NAME_PART1="$GAME_NAME - Part 1" GAME_NAME_PART2="$GAME_NAME - Part 2" GAME_NAME_PART3="$GAME_NAME - Part 3" GAME_NAME_PART4="$GAME_NAME - Part 4" ARCHIVE_BASE_0_NAME='Gobliiins5.zip' ARCHIVE_BASE_0_MD5='9ec74c3b393736b3e7ea3b345355d537' ARCHIVE_BASE_0_SIZE='939801' ARCHIVE_BASE_0_VERSION='1.0-itch.2023.11.17' ARCHIVE_BASE_0_URL='https://pierre-gilhodes.itch.io/gobliiins5' ARCHIVE_BASE_DEMO_0_NAME='Gobliiins5-Part1.zip' ARCHIVE_BASE_DEMO_0_MD5='814a2e01fbf5a253fa56dd51c2e4d206' ARCHIVE_BASE_DEMO_0_SIZE='182592' ARCHIVE_BASE_DEMO_0_VERSION='1.0-itch.2023.11.17' ARCHIVE_BASE_DEMO_0_URL='https://pierre-gilhodes.itch.io/gobliiins5' AGS_NAME_PART1='gobliiins5-1' AGS_NAME_PART2='gobliiins5-2' AGS_NAME_PART3='gobliiins5-3' AGS_NAME_PART4='gobliiins5-4' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_COMMON_FILES=' acsetup.cfg *.ags *.tra *.vox' CONTENT_GAME_PART1_FILES="$CONTENT_GAME_COMMON_FILES" CONTENT_GAME_PART2_FILES="$CONTENT_GAME_COMMON_FILES" CONTENT_GAME_PART3_FILES="$CONTENT_GAME_COMMON_FILES" CONTENT_GAME_PART4_FILES="$CONTENT_GAME_COMMON_FILES" APP_MAIN_ICON_PART1='Gobliiins5-Part1.exe' APP_MAIN_ICON_PART2='Gobliiins5-Part2.exe' APP_MAIN_ICON_PART3='Gobliiins5-Part3.exe' APP_MAIN_ICON_PART4='Gobliiins5-Part4.exe' PACKAGES_LIST=' PKG_PART1 PKG_PART2 PKG_PART3 PKG_PART4' PACKAGES_LIST_DEMO=' PKG_PART1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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 and include data archive_extraction_default ## Each game part is handled one at a time to prevent unwanted file overwrites. case "$(current_archive)" in ('ARCHIVE_BASE_DEMO_'*) ## The game demo only includes the first part of the game. content_inclusion_icons 'PKG_PART1' content_inclusion 'GAME_PART1' 'PKG_PART1' "$( set_current_package 'PKG_PART1' path_game_data )" ;; (*) ## Allow the content inclusion message to be shown multiple times information_content_inclusion() { local messages_language message messages_language=$(messages_language) case "$messages_language" in ('fr') message='Inclusion des fichiers du jeu…\n' ;; ('en'|*) message='Including game files…\n' ;; esac print_message 'info' "$message" } ARCHIVE_PART1_PATH="${PLAYIT_WORKDIR}/gamedata/Gobliiins5-Part1.zip" archive_extraction 'ARCHIVE_PART1' content_inclusion_icons 'PKG_PART1' content_inclusion 'GAME_PART1' 'PKG_PART1' "$( set_current_package 'PKG_PART1' path_game_data )" rm "$ARCHIVE_PART1_PATH" ARCHIVE_PART2_PATH="${PLAYIT_WORKDIR}/gamedata/Gobliiins5-Part2.zip" archive_extraction 'ARCHIVE_PART2' content_inclusion_icons 'PKG_PART2' content_inclusion 'GAME_PART2' 'PKG_PART2' "$( set_current_package 'PKG_PART2' path_game_data )" rm "$ARCHIVE_PART2_PATH" ARCHIVE_PART3_PATH="${PLAYIT_WORKDIR}/gamedata/Gobliiins5-Part3.zip" archive_extraction 'ARCHIVE_PART3' content_inclusion_icons 'PKG_PART3' content_inclusion 'GAME_PART3' 'PKG_PART3' "$( set_current_package 'PKG_PART3' path_game_data )" rm "$ARCHIVE_PART3_PATH" ARCHIVE_PART4_PATH="${PLAYIT_WORKDIR}/gamedata/Gobliiins5-Part4.zip" archive_extraction 'ARCHIVE_PART4' content_inclusion_icons 'PKG_PART4' content_inclusion 'GAME_PART4' 'PKG_PART4' "$( set_current_package 'PKG_PART4' path_game_data )" rm "$ARCHIVE_PART4_PATH" ;; esac rm --force --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers case "$(current_archive)" in ('ARCHIVE_BASE_DEMO_'*) ## The game demo only includes the first part of the game. launchers_generation 'PKG_PART1' ;; (*) launchers_generation 'PKG_PART1' launchers_generation 'PKG_PART2' launchers_generation 'PKG_PART3' launchers_generation 'PKG_PART4' ;; esac # Build packages packages_generation ## Ensure that the generic game name is shown, not a package-specific one. unset GAME_NAME_PART1 print_instructions # Clean up working_directory_cleanup exit 0 games/play-goblins-trilogy.sh0000750000000000000000000001313314471751340015300 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2015 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2020 macaron set -o errexit ### # Goblins series: # - Goblins 1 # - Goblins 2 # - Goblins 3 # send your bug reports to vv221@dotslashplay.it ### script_version=20250311.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID_GOB1='goblins-1' GAME_NAME_GOB1='Gobliiins' GAME_ID_GOB2='goblins-2' GAME_NAME_GOB2='Gobliins 2: The Prince Buffoon' GAME_ID_GOB3='goblins-3' GAME_NAME_GOB3='Goblins 3' # Archives ## Goblins 1 ARCHIVE_BASE_GOB1_0_NAME='setup_gobliiins_1.02_(20270).exe' ARCHIVE_BASE_GOB1_0_MD5='dd4fa52b7ed43b964d82f2056c18b681' ARCHIVE_BASE_GOB1_0_TYPE='innosetup' ARCHIVE_BASE_GOB1_0_SIZE='99000' ARCHIVE_BASE_GOB1_0_VERSION='1.02-gog20270' ARCHIVE_BASE_GOB1_0_URL='https://www.gog.com/game/gobliiins_pack' ## Goblins 2 ARCHIVE_BASE_GOB2_0_NAME='setup_gobliins_2_-_the_prince_buffoon_1.02_(20270).exe' ARCHIVE_BASE_GOB2_0_MD5='3607f4ab042fea51e3b6544775955701' ARCHIVE_BASE_GOB2_0_TYPE='innosetup' ARCHIVE_BASE_GOB2_0_SIZE='110000' ARCHIVE_BASE_GOB2_0_VERSION='1.02-gog20270' ARCHIVE_BASE_GOB2_0_URL='https://www.gog.com/game/gobliiins_pack' ## Goblins 3 ARCHIVE_BASE_GOB3_EN_0_NAME='setup_goblins_quest_3_1.02_(20270).exe' ARCHIVE_BASE_GOB3_EN_0_MD5='9d98b9f643dad9c793416d50bcbd9f17' ARCHIVE_BASE_GOB3_EN_0_TYPE='innosetup' ARCHIVE_BASE_GOB3_EN_0_SIZE='210000' ARCHIVE_BASE_GOB3_EN_0_VERSION='1.02-gog20270' ARCHIVE_BASE_GOB3_EN_0_URL='https://www.gog.com/game/gobliiins_pack' ARCHIVE_BASE_GOB3_FR_0_NAME='setup_goblins_quest_3_1.02_(french)_(20270).exe' ARCHIVE_BASE_GOB3_FR_0_MD5='52649e08b57d8edfdbb4b72bc032e625' ARCHIVE_BASE_GOB3_FR_0_TYPE='innosetup' ARCHIVE_BASE_GOB3_FR_0_SIZE='200000' ARCHIVE_BASE_GOB3_FR_0_VERSION='1.02-gog20270' ARCHIVE_BASE_GOB3_FR_0_URL='https://www.gog.com/game/gobliiins_pack' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_L10N_FILES_GOB3=' ??gob3.itk' CONTENT_GAME_FLOPPY_RELATIVE_PATH='fdd' CONTENT_GAME_FLOPPY_FILES=' *.stk' CONTENT_GAME_CDROM_FILES=' *.itk *.lic *.stk *.mp3' CONTENT_DOC_COMMON_FILES=' *.pdf' # Applications ## Goblins 1 APP_MAIN_SCUMMID_GOB1='gob:gob1' APP_MAIN_ICON_GOB1='goggame-1207662273.ico' ## Goblins 2 APP_MAIN_SCUMMID_GOB2='gob:gob2' APP_MAIN_ICON_GOB2='goggame-1207662293.ico' ## Goblins 3 APP_MAIN_SCUMMID_GOB3='gob:gob3' APP_MAIN_ICON_GOB3='goggame-1207662313.ico' # Packages ## Common PACKAGES_LIST=' PKG_COMMON PKG_FLOPPY PKG_CDROM' PKG_FLOPPY_DEPENDENCIES_SIBLINGS=' PKG_COMMON' PKG_CDROM_DEPENDENCIES_SIBLINGS=' PKG_COMMON' ## Goblins 1 PKG_COMMON_ID_GOB1="${GAME_ID_GOB1}-common" PKG_MAIN_ID_GOB1="$GAME_ID_GOB1" PKG_FLOPPY_ID_GOB1="${PKG_MAIN_ID_GOB1}-floppy" PKG_FLOPPY_PROVIDES_GOB1=" $PKG_MAIN_ID_GOB1" PKG_CDROM_ID_GOB1="${PKG_MAIN_ID_GOB1}-cdrom" PKG_CDROM_PROVIDES_GOB1=" $PKG_MAIN_ID_GOB1" ## Goblins 2 PKG_COMMON_ID_GOB2="${GAME_ID_GOB2}-common" PKG_MAIN_ID_GOB2="$GAME_ID_GOB2" PKG_FLOPPY_ID_GOB2="${PKG_MAIN_ID_GOB2}-floppy" PKG_FLOPPY_PROVIDES_GOB2=" $PKG_MAIN_ID_GOB2" PKG_CDROM_ID_GOB2="${PKG_MAIN_ID_GOB2}-cdrom" PKG_CDROM_PROVIDES_GOB2=" $PKG_MAIN_ID_GOB2" ## Goblins 3 PACKAGES_LIST_GOB3=" PKG_L10N $PACKAGES_LIST" PKG_COMMON_ID_GOB3="${GAME_ID_GOB3}-common" PKG_L10N_BASE_ID="${GAME_ID_GOB3}-l10n" PKG_L10N_ID_GOB3_EN="${PKG_L10N_BASE_ID}-en" PKG_L10N_ID_GOB3_FR="${PKG_L10N_BASE_ID}-fr" PKG_L10N_PROVIDES_GOB3=" $PKG_L10N_BASE_ID" PKG_L10N_DESCRIPTION_GOB3_EN='English localization' PKG_L10N_DESCRIPTION_GOB3_FR='French localization' PKG_MAIN_ID_GOB3="$GAME_ID_GOB3" PKG_FLOPPY_ID_GOB3="${PKG_MAIN_ID_GOB3}-floppy" PKG_FLOPPY_PROVIDES_GOB3=" $PKG_MAIN_ID_GOB3" PKG_CDROM_ID_GOB3="${PKG_MAIN_ID_GOB3}-cdrom" PKG_CDROM_PROVIDES_GOB3=" $PKG_MAIN_ID_GOB3" PKG_CDROM_DEPENDENCIES_SIBLINGS_GOB3=' PKG_COMMON PKG_L10N_BASE' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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 # Incude game data content_inclusion_icons 'PKG_COMMON' content_inclusion_default # Write launchers launchers_generation 'PKG_FLOPPY' ## Goblins 3 - Set game language based on the available localization case "$(current_archive)" in ('ARCHIVE_BASE_GOB3_'*) game_exec_line() { cat <<- 'EOF' if [ -e "${PATH_GAME_DATA}/frgob3.itk" ]; then scummvm --language=fr --path="$PATH_GAME_DATA" "$@" gob:gob3 elif [ -e "${PATH_GAME_DATA}/usgob3.itk" ]; then scummvm --language=us --path="$PATH_GAME_DATA" "$@" gob:gob3 fi EOF } ;; esac launchers_generation 'PKG_CDROM' # Build packages packages_generation case "$(messages_language)" in ('fr') version_string='version %s :' version_floppy='disquette' version_cdrom='CD-ROM' ;; ('en'|*) version_string='%s version:' version_floppy='Floppy' version_cdrom='CD-ROM' ;; esac printf '\n' printf "$version_string" "$version_floppy" print_instructions 'PKG_FLOPPY' 'PKG_COMMON' printf "$version_string" "$version_cdrom" case "$(current_archive)" in ('ARCHIVE_BASE_GOB3_'*) print_instructions 'PKG_CDROM' 'PKG_L10N' 'PKG_COMMON' ;; (*) print_instructions 'PKG_CDROM' 'PKG_COMMON' ;; esac # Clean up working_directory_cleanup exit 0 games/play-grim-dawn-expansions.sh0000750000000000000000000002420714471751340016232 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Grim Dawn expansions: # - Ashes of Malmouth # - Forgotten Gods # send your bug reports to vv221@dotslashplay.it ### script_version=20250211.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='grim-dawn' GAME_NAME='Grim Dawn' EXPANSION_ID_ASHES='ashes-of-malmouth' EXPANSION_NAME_ASHES='Ashes of Malmouth' EXPANSION_ID_GODS='forgotten-gods' EXPANSION_NAME_GODS='Forgotten Gods' # Archives ## Ashes of Malmouth ARCHIVE_BASE_ASHES_9_NAME='setup_grim_dawn_-_ashes_of_malmouth_1.2.1.5a_(79771).exe' ARCHIVE_BASE_ASHES_9_MD5='978c79a533de6d7553044534d6085bdc' ARCHIVE_BASE_ASHES_9_TYPE='innosetup' ARCHIVE_BASE_ASHES_9_PART1_NAME='setup_grim_dawn_-_ashes_of_malmouth_1.2.1.5a_(79771)-1.bin' ARCHIVE_BASE_ASHES_9_PART1_MD5='d4f7ef400d31a460d0c671b6d0fdd9fe' ARCHIVE_BASE_ASHES_9_SIZE='2511022' ARCHIVE_BASE_ASHES_9_VERSION='1.2.1.5a-gog79771' ARCHIVE_BASE_ASHES_9_URL='https://www.gog.com/game/grim_dawn_ashes_of_malmouth' ARCHIVE_BASE_ASHES_8_NAME='setup_grim_dawn_-_ashes_of_malmouth_1.2.1.4_hotfix_1_(78646).exe' ARCHIVE_BASE_ASHES_8_MD5='e4b981d5a960f465fedd6c25e47434a5' ARCHIVE_BASE_ASHES_8_TYPE='innosetup' ARCHIVE_BASE_ASHES_8_PART1_NAME='setup_grim_dawn_-_ashes_of_malmouth_1.2.1.4_hotfix_1_(78646)-1.bin' ARCHIVE_BASE_ASHES_8_PART1_MD5='8f0261ab3eabece7ef4a6667964ba1d0' ARCHIVE_BASE_ASHES_8_SIZE='2510794' ARCHIVE_BASE_ASHES_8_VERSION='1.2.1.4-gog78646' ARCHIVE_BASE_ASHES_7_NAME='setup_grim_dawn_-_ashes_of_malmouth_1.2.1.2_(74537).exe' ARCHIVE_BASE_ASHES_7_MD5='24e439773a3b6935e766110b0ec80fff' ARCHIVE_BASE_ASHES_7_TYPE='innosetup' ARCHIVE_BASE_ASHES_7_PART1_NAME='setup_grim_dawn_-_ashes_of_malmouth_1.2.1.2_(74537)-1.bin' ARCHIVE_BASE_ASHES_7_PART1_MD5='164321d7ecee354a62dc77b57a9088a0' ARCHIVE_BASE_ASHES_7_SIZE='2510434' ARCHIVE_BASE_ASHES_7_VERSION='1.2.1.2-gog74537' ARCHIVE_BASE_ASHES_6_NAME='setup_grim_dawn_-_ashes_of_malmouth_1.2.1.1_(74365).exe' ARCHIVE_BASE_ASHES_6_MD5='01617f6a1fae6a2d8cd68061a4b7ed71' ARCHIVE_BASE_ASHES_6_TYPE='innosetup' ARCHIVE_BASE_ASHES_6_PART1_NAME='setup_grim_dawn_-_ashes_of_malmouth_1.2.1.1_(74365)-1.bin' ARCHIVE_BASE_ASHES_6_PART1_MD5='d687516b6ab638161aa0f8bd47416b66' ARCHIVE_BASE_ASHES_6_SIZE='2508370' ARCHIVE_BASE_ASHES_6_VERSION='1.2.1.1-gog74365' ARCHIVE_BASE_ASHES_5_NAME='setup_grim_dawn_-_ashes_of_malmouth_1.2.0.5a_(71558).exe' ARCHIVE_BASE_ASHES_5_MD5='459923324f4f32779885fe03f192fe3a' ARCHIVE_BASE_ASHES_5_TYPE='innosetup' ARCHIVE_BASE_ASHES_5_PART1_NAME='setup_grim_dawn_-_ashes_of_malmouth_1.2.0.5a_(71558)-1.bin' ARCHIVE_BASE_ASHES_5_PART1_MD5='11d3e5371bb3b9ecceb0a72b99671a24' ARCHIVE_BASE_ASHES_5_SIZE='2508049' ARCHIVE_BASE_ASHES_5_VERSION='1.2.0.5a-gog71558' ARCHIVE_BASE_ASHES_4_NAME='setup_grim_dawn_-_ashes_of_malmouth_1.2.0.5_(71516).exe' ARCHIVE_BASE_ASHES_4_MD5='c692033a7f8a57cfc83fe0caecf763e9' ARCHIVE_BASE_ASHES_4_TYPE='innosetup' ARCHIVE_BASE_ASHES_4_PART1_NAME='setup_grim_dawn_-_ashes_of_malmouth_1.2.0.5_(71516)-1.bin' ARCHIVE_BASE_ASHES_4_PART1_MD5='270e20c090ddf4a172b3e4c7a869222b' ARCHIVE_BASE_ASHES_4_SIZE='2508622' ARCHIVE_BASE_ASHES_4_VERSION='1.2.0.5-gog71516' ARCHIVE_BASE_ASHES_3_NAME='setup_grim_dawn_-_ashes_of_malmouth_1.2.0.3_hotfix_3_(69499).exe' ARCHIVE_BASE_ASHES_3_MD5='921796d60998467c4c753d80f99a6584' ARCHIVE_BASE_ASHES_3_TYPE='innosetup' ARCHIVE_BASE_ASHES_3_PART1_NAME='setup_grim_dawn_-_ashes_of_malmouth_1.2.0.3_hotfix_3_(69499)-1.bin' ARCHIVE_BASE_ASHES_3_PART1_MD5='618cfba9ba745a2d3fd6e5b9ae744cb2' ARCHIVE_BASE_ASHES_3_SIZE='2510332' ARCHIVE_BASE_ASHES_3_VERSION='1.2.0.3-gog69499' ARCHIVE_BASE_ASHES_2_NAME='setup_grim_dawn_-_ashes_of_malmouth_1.2.0.2_hotfix_2_(69134).exe' ARCHIVE_BASE_ASHES_2_MD5='49194993f6649141ac9f118d61eb8f90' ARCHIVE_BASE_ASHES_2_TYPE='innosetup' ARCHIVE_BASE_ASHES_2_PART1_NAME='setup_grim_dawn_-_ashes_of_malmouth_1.2.0.2_hotfix_2_(69134)-1.bin' ARCHIVE_BASE_ASHES_2_PART1_MD5='798f63fd270edfdac9938fd77d73752c' ARCHIVE_BASE_ASHES_2_SIZE='2509140' ARCHIVE_BASE_ASHES_2_VERSION='1.2.0.2-gog69134' ARCHIVE_BASE_ASHES_1_NAME='setup_grim_dawn_-_ashes_of_malmouth_1.2.0.1_hotfix_1_(69098).exe' ARCHIVE_BASE_ASHES_1_MD5='f8935c6d6ca9c354a9336d51efd823f9' ARCHIVE_BASE_ASHES_1_TYPE='innosetup' ARCHIVE_BASE_ASHES_1_PART1_NAME='setup_grim_dawn_-_ashes_of_malmouth_1.2.0.1_hotfix_1_(69098)-1.bin' ARCHIVE_BASE_ASHES_1_PART1_MD5='c2e7bd56299023afa261d43fb89a43f7' ARCHIVE_BASE_ASHES_1_SIZE='2507692' ARCHIVE_BASE_ASHES_1_VERSION='1.2.0.1-gog69098' ARCHIVE_BASE_ASHES_0_NAME='setup_grim_dawn_-_ashes_of_malmouth_1.1.9.8_(65199).exe' ARCHIVE_BASE_ASHES_0_MD5='0754f567005ecc7d758d905992e5d7f7' ARCHIVE_BASE_ASHES_0_TYPE='innosetup' ARCHIVE_BASE_ASHES_0_PART1_NAME='setup_grim_dawn_-_ashes_of_malmouth_1.1.9.8_(65199)-1.bin' ARCHIVE_BASE_ASHES_0_PART1_MD5='49bc0c617d4ab9415298994ba4a085b8' ARCHIVE_BASE_ASHES_0_SIZE='2506744' ARCHIVE_BASE_ASHES_0_VERSION='1.1.9.8-gog65199' ## Forgotten Gods ARCHIVE_BASE_GODS_9_NAME='setup_grim_dawn_-_forgotten_gods_1.2.1.5a_(79771).exe' ARCHIVE_BASE_GODS_9_MD5='e8850233a15d8e898c53e393f6de3226' ARCHIVE_BASE_GODS_9_TYPE='innosetup' ARCHIVE_BASE_GODS_9_PART1_NAME='setup_grim_dawn_-_forgotten_gods_1.2.1.5a_(79771)-1.bin' ARCHIVE_BASE_GODS_9_PART1_MD5='6f5c139cd8416882627d1536e83c1ac8' ARCHIVE_BASE_GODS_9_SIZE='3223745' ARCHIVE_BASE_GODS_9_VERSION='1.2.1.5a-gog79771' ARCHIVE_BASE_GODS_9_URL='https://www.gog.com/game/grim_dawn_forgotten_gods' ARCHIVE_BASE_GODS_8_NAME='setup_grim_dawn_-_forgotten_gods_1.2.1.4_hotfix_1_(78646).exe' ARCHIVE_BASE_GODS_8_MD5='e1718e47e7e3efb5b7e30720237d7ca0' ARCHIVE_BASE_GODS_8_TYPE='innosetup' ARCHIVE_BASE_GODS_8_PART1_NAME='setup_grim_dawn_-_forgotten_gods_1.2.1.4_hotfix_1_(78646)-1.bin' ARCHIVE_BASE_GODS_8_PART1_MD5='e2d2f437f6cabf93953d280443a37fed' ARCHIVE_BASE_GODS_8_SIZE='3222704' ARCHIVE_BASE_GODS_8_VERSION='1.2.1.4-gog78646' ARCHIVE_BASE_GODS_7_NAME='setup_grim_dawn_-_forgotten_gods_1.2.1.2_(74537).exe' ARCHIVE_BASE_GODS_7_MD5='2d71e98f2aafdd7096b7f1b30279a7d5' ARCHIVE_BASE_GODS_7_TYPE='innosetup' ARCHIVE_BASE_GODS_7_PART1_NAME='setup_grim_dawn_-_forgotten_gods_1.2.1.2_(74537)-1.bin' ARCHIVE_BASE_GODS_7_PART1_MD5='430063cc53a07cd77ac491bb22c85e3b' ARCHIVE_BASE_GODS_7_SIZE='3220867' ARCHIVE_BASE_GODS_7_VERSION='1.2.1.2-gog74537' ARCHIVE_BASE_GODS_6_NAME='setup_grim_dawn_-_forgotten_gods_1.2.1.1_(74365).exe' ARCHIVE_BASE_GODS_6_MD5='45e52392fb4f503b2078ddf6af6a3411' ARCHIVE_BASE_GODS_6_TYPE='innosetup' ARCHIVE_BASE_GODS_6_PART1_NAME='setup_grim_dawn_-_forgotten_gods_1.2.1.1_(74365)-1.bin' ARCHIVE_BASE_GODS_6_PART1_MD5='195f5f735715d9ae59080774d0a98bd0' ARCHIVE_BASE_GODS_6_SIZE='3221131' ARCHIVE_BASE_GODS_6_VERSION='1.2.1.1-gog74365' ARCHIVE_BASE_GODS_5_NAME='setup_grim_dawn_-_forgotten_gods_1.2.0.5a_(71558).exe' ARCHIVE_BASE_GODS_5_MD5='f4e80fca2102e244a47a218171c0f336' ARCHIVE_BASE_GODS_5_TYPE='innosetup' ARCHIVE_BASE_GODS_5_PART1_NAME='setup_grim_dawn_-_forgotten_gods_1.2.0.5a_(71558)-1.bin' ARCHIVE_BASE_GODS_5_PART1_MD5='3199f7442939194091a2d534553b8007' ARCHIVE_BASE_GODS_5_SIZE='3220483' ARCHIVE_BASE_GODS_5_VERSION='1.2.0.5a-gog71558' ARCHIVE_BASE_GODS_4_NAME='setup_grim_dawn_-_forgotten_gods_1.2.0.5_(71516).exe' ARCHIVE_BASE_GODS_4_MD5='cef5d93af87d3a4690bca2f78eb6e172' ARCHIVE_BASE_GODS_4_TYPE='innosetup' ARCHIVE_BASE_GODS_4_PART1_NAME='setup_grim_dawn_-_forgotten_gods_1.2.0.5_(71516)-1.bin' ARCHIVE_BASE_GODS_4_PART1_MD5='8079bd9c7dfbf5234355bd9ecb56d524' ARCHIVE_BASE_GODS_4_SIZE='3220210' ARCHIVE_BASE_GODS_4_VERSION='1.2.0.5-gog71516' ARCHIVE_BASE_GODS_3_NAME='setup_grim_dawn_-_forgotten_gods_1.2.0.3_hotfix_3_(69499).exe' ARCHIVE_BASE_GODS_3_MD5='75b0ed8db6996ae3b5fb4df2177b8507' ARCHIVE_BASE_GODS_3_TYPE='innosetup' ARCHIVE_BASE_GODS_3_PART1_NAME='setup_grim_dawn_-_forgotten_gods_1.2.0.3_hotfix_3_(69499)-1.bin' ARCHIVE_BASE_GODS_3_PART1_MD5='a0c5c5a18b150c8349d247c593fb71d5' ARCHIVE_BASE_GODS_3_SIZE='3220424' ARCHIVE_BASE_GODS_3_VERSION='1.2.0.3-gog69499' ARCHIVE_BASE_GODS_2_NAME='setup_grim_dawn_-_forgotten_gods_1.2.0.2_hotfix_2_(69134).exe' ARCHIVE_BASE_GODS_2_MD5='3506b7cfcbb6b475b8c182024932d332' ARCHIVE_BASE_GODS_2_TYPE='innosetup' ARCHIVE_BASE_GODS_2_PART1_NAME='setup_grim_dawn_-_forgotten_gods_1.2.0.2_hotfix_2_(69134)-1.bin' ARCHIVE_BASE_GODS_2_PART1_MD5='40b9f598aa048680c9f7dc4651b99d71' ARCHIVE_BASE_GODS_2_SIZE='3220892' ARCHIVE_BASE_GODS_2_VERSION='1.2.0.2-gog691341' ARCHIVE_BASE_GODS_1_NAME='setup_grim_dawn_-_forgotten_gods_1.2.0.1_hotfix_1_(69098).exe' ARCHIVE_BASE_GODS_1_MD5='f0809d0007e3e3634b24dcdbf2bf25fd' ARCHIVE_BASE_GODS_1_TYPE='innosetup' ARCHIVE_BASE_GODS_1_PART1_NAME='setup_grim_dawn_-_forgotten_gods_1.2.0.1_hotfix_1_(69098)-1.bin' ARCHIVE_BASE_GODS_1_PART1_MD5='82c069ab14fcec774fb075706fa3cce1' ARCHIVE_BASE_GODS_1_SIZE='3218872' ARCHIVE_BASE_GODS_1_VERSION='1.2.0.1-gog69098' ARCHIVE_BASE_GODS_0_NAME='setup_grim_dawn_-_forgotten_gods_1.1.9.8_(65199).exe' ARCHIVE_BASE_GODS_0_MD5='6615eb32a355092c4d0173457f701e31' ARCHIVE_BASE_GODS_0_TYPE='innosetup' ARCHIVE_BASE_GODS_0_PART1_NAME='setup_grim_dawn_-_forgotten_gods_1.1.9.8_(65199)-1.bin' ARCHIVE_BASE_GODS_0_PART1_MD5='55ac480dee30aa6cfa6a8b466f521406' ARCHIVE_BASE_GODS_0_SIZE='3220672' ARCHIVE_BASE_GODS_0_VERSION='1.1.9.8-gog65199' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES=' gdx? survivalmode?' PKG_PARENT_ID="$GAME_ID" PKG_ASH_ID="${GAME_ID}-${EXPANSION_ID_ASHES}" PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_PARENT' PKG_MAIN_DEPENDENCIES_SIBLINGS_GODS="$PKG_MAIN_DEPENDENCIES_SIBLINGS PKG_ASH" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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-grim-dawn.sh0000750000000000000000000001471314471751340014046 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Grim Dawn # send your bug reports to vv221@dotslashplay.it ### script_version=20250603.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='grim-dawn' GAME_NAME='Grim Dawn' ARCHIVE_BASE_9_NAME='setup_grim_dawn_1.2.1.5a_(64bit)_(79771).exe' ARCHIVE_BASE_9_MD5='298b7115cb10d141474e3deada484cfa' ARCHIVE_BASE_9_TYPE='innosetup' ARCHIVE_BASE_9_PART1_NAME='setup_grim_dawn_1.2.1.5a_(64bit)_(79771)-1.bin' ARCHIVE_BASE_9_PART1_MD5='f3fd27887478cf9e4b91a9ccec978a5e' ARCHIVE_BASE_9_PART2_NAME='setup_grim_dawn_1.2.1.5a_(64bit)_(79771)-2.bin' ARCHIVE_BASE_9_PART2_MD5='8da34220573b78a73028f4aa8945f660' ARCHIVE_BASE_9_SIZE='4837497' ARCHIVE_BASE_9_VERSION='1.2.1.5a-gog79771' ARCHIVE_BASE_9_URL='https://www.gog.com/game/grim_dawn' ARCHIVE_BASE_8_NAME='setup_grim_dawn_1.2.1.4_hotfix_1_(64bit)_(78646).exe' ARCHIVE_BASE_8_MD5='f8578ada2efb2b5a8a2342c18b15d9eb' ARCHIVE_BASE_8_TYPE='innosetup' ARCHIVE_BASE_8_PART1_NAME='setup_grim_dawn_1.2.1.4_hotfix_1_(64bit)_(78646)-1.bin' ARCHIVE_BASE_8_PART1_MD5='b43dcb38aafbb74c841a568f58adb44a' ARCHIVE_BASE_8_PART2_NAME='setup_grim_dawn_1.2.1.4_hotfix_1_(64bit)_(78646)-2.bin' ARCHIVE_BASE_8_PART2_MD5='b3cfefce65e64effc0d2a3e00a204fec' ARCHIVE_BASE_8_SIZE='4820603' ARCHIVE_BASE_8_VERSION='1.2.1.4-gog78646' ARCHIVE_BASE_7_NAME='setup_grim_dawn_1.2.1.2_(64bit)_(74537).exe' ARCHIVE_BASE_7_MD5='defc9ce6611401d67b04c3c86252ca9b' ARCHIVE_BASE_7_TYPE='innosetup' ARCHIVE_BASE_7_PART1_NAME='setup_grim_dawn_1.2.1.2_(64bit)_(74537)-1.bin' ARCHIVE_BASE_7_PART1_MD5='46d0391d8757224f8157792839424dcd' ARCHIVE_BASE_7_SIZE='4782087' ARCHIVE_BASE_7_VERSION='1.2.1.2-gog74537' ARCHIVE_BASE_6_NAME='setup_grim_dawn_1.2.1.1_(64bit)_(74365).exe' ARCHIVE_BASE_6_MD5='419c765ff7d14cc19142774ae44c3eb9' ARCHIVE_BASE_6_TYPE='innosetup' ARCHIVE_BASE_6_PART1_NAME='setup_grim_dawn_1.2.1.1_(64bit)_(74365)-1.bin' ARCHIVE_BASE_6_PART1_MD5='e3f6f66a0aa88c6f7a47e9c6a07c208b' ARCHIVE_BASE_6_SIZE='4787490' ARCHIVE_BASE_6_VERSION='1.2.1.1-gog74365' ARCHIVE_BASE_5_NAME='setup_grim_dawn_1.2.0.5a_(64bit)_(71558).exe' ARCHIVE_BASE_5_MD5='f232c25a9c69a5776dd4ce65b40df6df' ARCHIVE_BASE_5_TYPE='innosetup' ARCHIVE_BASE_5_PART1_NAME='setup_grim_dawn_1.2.0.5a_(64bit)_(71558)-1.bin' ARCHIVE_BASE_5_PART1_MD5='c78a59aa61b124030e6d96cabaaabd2d' ARCHIVE_BASE_5_SIZE='4768460' ARCHIVE_BASE_5_VERSION='1.2.0.5a-gog71558' ARCHIVE_BASE_4_NAME='setup_grim_dawn_1.2.0.5_(64bit)_(71516).exe' ARCHIVE_BASE_4_MD5='0ec082fed3fa62b70979fcf9fd5ed919' ARCHIVE_BASE_4_TYPE='innosetup' ARCHIVE_BASE_4_PART1_NAME='setup_grim_dawn_1.2.0.5_(64bit)_(71516)-1.bin' ARCHIVE_BASE_4_PART1_MD5='8f7dd61efc9962fddd88dc19da4a8efe' ARCHIVE_BASE_4_SIZE='4767825' ARCHIVE_BASE_4_VERSION='1.2.0.5-gog71516' ARCHIVE_BASE_3_NAME='setup_grim_dawn_1.2.0.3_hotfix_3_(64bit)_(69499).exe' ARCHIVE_BASE_3_MD5='d407d7f0c13b2e9a09c9d507a6dd9406' ARCHIVE_BASE_3_TYPE='innosetup' ARCHIVE_BASE_3_PART1_NAME='setup_grim_dawn_1.2.0.3_hotfix_3_(64bit)_(69499)-1.bin' ARCHIVE_BASE_3_PART1_MD5='cb0b21ec562a0023650928cabd3f2aac' ARCHIVE_BASE_3_SIZE='4716376' ARCHIVE_BASE_3_VERSION='1.2.0.3-gog69499' ARCHIVE_BASE_2_NAME='setup_grim_dawn_1.2.0.2_hotfix_2_(64bit)_(69134).exe' ARCHIVE_BASE_2_MD5='a86614183a27085a644642e73c89dc31' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_PART1_NAME='setup_grim_dawn_1.2.0.2_hotfix_2_(64bit)_(69134)-1.bin' ARCHIVE_BASE_2_PART1_MD5='d4088f8591111a2aa1c5af081179ec38' ARCHIVE_BASE_2_SIZE='4414600' ARCHIVE_BASE_2_VERSION='1.2.0.2-gog69134' ARCHIVE_BASE_1_NAME='setup_grim_dawn_1.2.0.1_hotfix_1_(64bit)_(69098).exe' ARCHIVE_BASE_1_MD5='0b4edacfee791cc6d83af7a2c36cb11c' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_grim_dawn_1.2.0.1_hotfix_1_(64bit)_(69098)-1.bin' ARCHIVE_BASE_1_PART1_MD5='9450bc1b82d609709356e7b3bb76570f' ARCHIVE_BASE_1_SIZE='4411128' ARCHIVE_BASE_1_VERSION='1.2.0.1-gog69098' ARCHIVE_BASE_0_NAME='setup_grim_dawn_1.1.9.8_(64bit)_(65199).exe' ARCHIVE_BASE_0_MD5='c0fb173132b21833052d1496f6ab832e' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_grim_dawn_1.1.9.8_(64bit)_(65199)-1.bin' ARCHIVE_BASE_0_PART1_MD5='d97de2b8cd7ae7aa723e720ec2fa21f5' ARCHIVE_BASE_0_SIZE='4332472' ARCHIVE_BASE_0_VERSION='1.1.9.8-gog65199' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' x64 crashreport.dll d3d9.dll devil.dll dinput8.dll direct3d.dll direct3d11.dll directinput.dll ds8sound.dll dxgi.dll engine.dll freeimage.dll game.dll libogg.dll libvorbis.dll libvorbisfile.dll lua51.dll sourcecontrol.dll statreport.dll ucrtbase.dll widget.dll xinput1_3.dll zlibwapi.dll api-ms-win-*.dll aifeditor.exe animationcompiler.exe archivetool.exe assetmanager.exe bitmapcreator.exe conversationeditor.exe crashreporter.exe dbreditor.exe editor.exe fontcompiler.exe grim dawn.exe mapcompiler.exe modelcompiler.exe pseditor.exe questeditor.exe repair.exe shadercompiler.exe sourceserver.exe texturecompiler.exe texviewer.exe viewer.exe *.dlo' CONTENT_GAME_DATA_FILES=' database resources video *.zip minimap.atn' CONTENT_DOC_DATA_FILES=' grim dawn modding guide.pdf' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/My Games/Grim Dawn' ## The following winetricks verb prevents a rendering failure with WINE 9.0, ## with the following error repeated many times if WINE debug is enabled: ## 019c:fixme:d3dcompiler:skip_u32_unknown WINE_WINETRICKS_VERBS='d3dcompiler_43' APP_MAIN_EXE='x64/grim dawn.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run 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-heroes-of-might-and-magic-4.sh0000750000000000000000000001532614471751340017136 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # Heroes of Might and Magic 4 # send your bug reports to vv221@dotslashplay.it ### script_version=20241121.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='heroes-of-might-and-magic-4' GAME_NAME='Heroes of Might and Magic Ⅳ' ARCHIVE_BASE_EN_4_NAME='setup_heroes_of_might_and_magic_4_complete_3.0_win11_gog_0.2_(76223).exe' ARCHIVE_BASE_EN_4_MD5='7737a4617848cb701f6577128b17fdc4' ARCHIVE_BASE_EN_4_TYPE='innosetup' ARCHIVE_BASE_EN_4_PART1_NAME='setup_heroes_of_might_and_magic_4_complete_3.0_win11_gog_0.2_(76223)-1.bin' ARCHIVE_BASE_EN_4_PART1_MD5='fb953df444f1716b856db53d4c08520a' ARCHIVE_BASE_EN_4_SIZE='1126546' ARCHIVE_BASE_EN_4_VERSION='3.0-gog76223' ARCHIVE_BASE_EN_4_URL='https://www.gog.com/game/heroes_of_might_and_magic_4_complete' ARCHIVE_BASE_FR_4_NAME='setup_heroes_of_might_and_magic_4_complete_3.0_win11_gog_0.2_(french)_(76223).exe' ARCHIVE_BASE_FR_4_MD5='d87e74674382d446332cf257ef6cbf74' ARCHIVE_BASE_FR_4_TYPE='innosetup' ARCHIVE_BASE_FR_4_PART1_NAME='setup_heroes_of_might_and_magic_4_complete_3.0_win11_gog_0.2_(french)_(76223)-1.bin' ARCHIVE_BASE_FR_4_PART1_MD5='00c24ec39905f65ed033d8dc2a77e7b3' ARCHIVE_BASE_FR_4_SIZE='1173753' ARCHIVE_BASE_FR_4_VERSION='3.0-gog76223' ARCHIVE_BASE_FR_4_URL='https://www.gog.com/game/heroes_of_might_and_magic_4_complete' ARCHIVE_BASE_EN_3_NAME='setup_heroes_of_might_and_magic_4_complete_3.0_win11_(58571).exe' ARCHIVE_BASE_EN_3_MD5='4f342558b1f93f4057666bc510127a3b' ARCHIVE_BASE_EN_3_TYPE='innosetup' ARCHIVE_BASE_EN_3_PART1_NAME='setup_heroes_of_might_and_magic_4_complete_3.0_win11_(58571)-1.bin' ARCHIVE_BASE_EN_3_PART1_MD5='c82afd73219eb772ce21f5ab43ef34ce' ARCHIVE_BASE_EN_3_SIZE='1200000' ARCHIVE_BASE_EN_3_VERSION='3.0-gog58571' ARCHIVE_BASE_FR_3_NAME='setup_heroes_of_might_and_magic_4_complete_3.0_win11_(french)_(58571).exe' ARCHIVE_BASE_FR_3_MD5='27d3987a5001beff61176d39199b9284' ARCHIVE_BASE_FR_3_TYPE='innosetup' ARCHIVE_BASE_FR_3_PART1_NAME='setup_heroes_of_might_and_magic_4_complete_3.0_win11_(french)_(58571)-1.bin' ARCHIVE_BASE_FR_3_PART1_MD5='588b0ecacc6b91df76042af7a7667d24' ARCHIVE_BASE_FR_3_SIZE='1200000' ARCHIVE_BASE_FR_3_VERSION='3.0-gog58571' ARCHIVE_BASE_EN_2_NAME='setup_heroes_of_might_and_magic_4_complete_3.0_(25023).exe' ARCHIVE_BASE_EN_2_MD5='2694dfef6827142866fb778588966d8e' ARCHIVE_BASE_EN_2_TYPE='innosetup' ARCHIVE_BASE_EN_2_PART1_NAME='setup_heroes_of_might_and_magic_4_complete_3.0_(25023)-1.bin' ARCHIVE_BASE_EN_2_PART1_MD5='54bfa42a4e23236729f8b0724216ee83' ARCHIVE_BASE_EN_2_SIZE='1100000' ARCHIVE_BASE_EN_2_VERSION='3.0-gog25023' ARCHIVE_BASE_FR_2_NAME='setup_heroes_of_might_and_magic_4_complete_3.0_(french)_(25023).exe' ARCHIVE_BASE_FR_2_MD5='4a90a92d637bc7d1af5354565ae5cd70' ARCHIVE_BASE_FR_2_TYPE='innosetup' ARCHIVE_BASE_FR_2_PART1_NAME='setup_heroes_of_might_and_magic_4_complete_3.0_(french)_(25023)-1.bin' ARCHIVE_BASE_FR_2_PART1_MD5='46d1239b8491d3adec647a7526f763b2' ARCHIVE_BASE_FR_2_SIZE='1100000' ARCHIVE_BASE_FR_2_VERSION='3.0-gog25023' ARCHIVE_BASE_EN_1_NAME='setup_heroes_of_might_and_magic_4_complete_3.0_(22812).exe' ARCHIVE_BASE_EN_1_MD5='d5e0a55e2bba4f0ac643ec1fb2ba17cc' ARCHIVE_BASE_EN_1_TYPE='innosetup' ARCHIVE_BASE_EN_1_PART1_NAME='setup_heroes_of_might_and_magic_4_complete_3.0_(22812)-1.bin' ARCHIVE_BASE_EN_1_PART1_MD5='3457ead5c208a3d40498d6e1f08bf588' ARCHIVE_BASE_EN_1_SIZE='1100000' ARCHIVE_BASE_EN_1_VERSION='3.0-gog22812' ARCHIVE_BASE_FR_1_NAME='setup_heroes_of_might_and_magic_4_complete_3.0_(french)_(22812).exe' ARCHIVE_BASE_FR_1_MD5='e15ec7a308ea442bfeeb3410314b39d7' ARCHIVE_BASE_FR_1_TYPE='innosetup' ARCHIVE_BASE_FR_1_PART1_NAME='setup_heroes_of_might_and_magic_4_complete_3.0_(french)_(22812)-1.bin' ARCHIVE_BASE_FR_1_PART1_MD5='7abff7182f6bed3199d2b71cdd60d926' ARCHIVE_BASE_FR_1_SIZE='1100000' ARCHIVE_BASE_FR_1_VERSION='3.0-gog22812' ARCHIVE_BASE_EN_0_NAME='setup_homm4_complete_2.0.0.12.exe' ARCHIVE_BASE_EN_0_MD5='74de66eb408bb2916dd0227781ba96dc' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_SIZE='1100000' ARCHIVE_BASE_EN_0_VERSION='3.0-gog2.0.0.12' ARCHIVE_BASE_FR_0_NAME='setup_homm4_complete_french_2.1.0.14.exe' ARCHIVE_BASE_FR_0_MD5='2af96eb28226e563bbbcd62771f3a319' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_SIZE='1100000' ARCHIVE_BASE_FR_0_VERSION='3.0-gog2.1.0.14' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_EN_0='app' CONTENT_PATH_DEFAULT_FR_0='app' CONTENT_GAME_BIN_FILES=' mp3dec.asi binkw32.dll mss32.dll data/binkw32.dll data/mss32.dll campaign_editor.exe dxcfg.exe heroes4.exe' CONTENT_GAME_DATA_FILES=' data maps' CONTENT_DOC_DATA_FILES=' campaign_editor_help.chm h4gsmanual.pdf h4manual.pdf h4qref.pdf h4towntrees.pdf h4wwmanual.pdf multiplayer.txt readme.txt' USER_PERSISTENT_DIRECTORIES=' games' USER_PERSISTENT_FILES=' data/high_scores.dat' WINE_VIRTUAL_DESKTOP='1280x1024' APP_MAIN_EXE='heroes4.exe' APP_MAIN_ICON='heroes4.exe' APP_EDITOR_ID="${GAME_ID}-campaign-editor" APP_EDITOR_EXE='campaign_editor.exe' APP_EDITOR_ICON='campaign_editor.exe' APP_EDITOR_NAME="$GAME_NAME - campaign editor" PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_BASE_ID="$GAME_ID" PKG_BIN_ID_EN="${PKG_BIN_BASE_ID}-en" PKG_BIN_ID_FR="${PKG_BIN_BASE_ID}-fr" PKG_BIN_PROVIDES=" $PKG_BIN_BASE_ID" PKG_BIN_DESCRIPTION_EN='English version' PKG_BIN_DESCRIPTION_FR='French version' ## A dependency on the language-specific variant of the data package is set, ## not on the common name provided by both variants of this package. PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_BASE_ID="${GAME_ID}-data" PKG_DATA_ID_EN="${PKG_DATA_BASE_ID}-en" PKG_DATA_ID_FR="${PKG_DATA_BASE_ID}-fr" PKG_DATA_PROVIDES=" $PKG_DATA_BASE_ID" PKG_DATA_DESCRIPTION='data' PKG_DATA_DESCRIPTION_EN="${PKG_DATA_DESCRIPTION} - English version" PKG_DATA_DESCRIPTION_FR="${PKG_DATA_DESCRIPTION} - French version" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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-heroes-of-might-and-magic-5.sh0000750000000000000000000001736014471751340017137 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2015 Antoine Le Gonidec set -o errexit ### # Heroes of Might and Magic 5: # - Heroes of Might and Magic 5 (base game) + Hammer of Fate # - Tribes of the East stand-alone expansion # send your bug reports to vv221@dotslashplay.it ### script_version=20250103.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='heroes-of-might-and-magic-5' GAME_NAME='Heroes of Might and Magic Ⅴ' GAME_ID_TOTE="${GAME_ID}-tribes-of-the-east" GAME_NAME_TOTE="${GAME_NAME} - Tribes of the East" # Archives ## Heroes of Might and Magic 5 (base game) + Hammer of Fate ARCHIVE_BASE_EN_1_NAME='setup_heroes_of_might_and_magic_v_2.1_v2_(28567).exe' ARCHIVE_BASE_EN_1_MD5='657775b4eb545150f5895e61e67eda73' ARCHIVE_BASE_EN_1_TYPE='innosetup' ARCHIVE_BASE_EN_1_PART1_NAME='setup_heroes_of_might_and_magic_v_2.1_v2_(28567)-1.bin' ARCHIVE_BASE_EN_1_PART1_MD5='bb4dd38f472fd94f82aa22cb256f4b9c' ARCHIVE_BASE_EN_1_SIZE='2600000' ARCHIVE_BASE_EN_1_VERSION='2.1-gog28567' ARCHIVE_BASE_EN_1_URL='https://www.gog.com/game/heroes_of_might_and_magic_5_bundle' ARCHIVE_BASE_FR_1_NAME='setup_heroes_of_might_and_magic_v_2.1_v2_(french)_(28567).exe' ARCHIVE_BASE_FR_1_MD5='78e860af17d9ce220d8c60c1e594cf40' ARCHIVE_BASE_FR_1_TYPE='innosetup' ARCHIVE_BASE_FR_1_PART1_NAME='setup_heroes_of_might_and_magic_v_2.1_v2_(french)_(28567)-1.bin' ARCHIVE_BASE_FR_1_PART1_MD5='9e8017cc5d84231bf8eb9c8c757631f8' ARCHIVE_BASE_FR_1_SIZE='2600000' ARCHIVE_BASE_FR_1_VERSION='2.1-gog28567' ARCHIVE_BASE_FR_1_URL='https://www.gog.com/game/heroes_of_might_and_magic_5_bundle' ARCHIVE_BASE_EN_0_NAME='setup_heroes_of_might_and_magic_v_2.1_(25025).exe' ARCHIVE_BASE_EN_0_MD5='6e36b7fb9f1e8362326688d383e4bdb9' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_PART1_NAME='setup_heroes_of_might_and_magic_v_2.1_(25025)-1.bin' ARCHIVE_BASE_EN_0_PART1_MD5='3e38f48f450f58833728cd73e9266d2d' ARCHIVE_BASE_EN_0_SIZE='2600000' ARCHIVE_BASE_EN_0_VERSION='2.1-gog25025' ARCHIVE_BASE_FR_0_NAME='setup_heroes_of_might_and_magic_v_2.1_(french)_(25025).exe' ARCHIVE_BASE_FR_0_MD5='b9e278ee60d574b89068479a4e6c84c1' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_PART1_NAME='setup_heroes_of_might_and_magic_v_2.1_(french)_(25025)-1.bin' ARCHIVE_BASE_FR_0_PART1_MD5='57ca61178fca9ed2e50a5dc667f6d565' ARCHIVE_BASE_FR_0_SIZE='2600000' ARCHIVE_BASE_FR_0_VERSION='2.1-gog25025' ## Tribes of the East stand-alone expansion ARCHIVE_BASE_TOTE_EN_1_NAME='setup_heroes_of_might_and_magic_v_-_tribes_of_the_east_3.1_v2_(28569).exe' ARCHIVE_BASE_TOTE_EN_1_MD5='9593ad538a39638bacb4d7ef45368ce2' ARCHIVE_BASE_TOTE_EN_1_TYPE='innosetup' ARCHIVE_BASE_TOTE_EN_1_PART1_NAME='setup_heroes_of_might_and_magic_v_-_tribes_of_the_east_3.1_v2_(28569)-1.bin' ARCHIVE_BASE_TOTE_EN_1_PART1_MD5='8e03271dc4aff5834110664b5d6eefde' ARCHIVE_BASE_TOTE_EN_1_SIZE='2300000' ARCHIVE_BASE_TOTE_EN_1_VERSION='3.1-gog28569' ARCHIVE_BASE_TOTE_EN_1_URL='https://www.gog.com/game/heroes_of_might_and_magic_5_bundle' ARCHIVE_BASE_TOTE_FR_1_NAME='setup_heroes_of_might_and_magic_v_-_tribes_of_the_east_3.1_v2_(french)_(28569).exe' ARCHIVE_BASE_TOTE_FR_1_MD5='6a1a915180d1cee32e78419f6917be87' ARCHIVE_BASE_TOTE_FR_1_TYPE='innosetup' ARCHIVE_BASE_TOTE_FR_1_PART1_NAME='setup_heroes_of_might_and_magic_v_-_tribes_of_the_east_3.1_v2_(french)_(28569)-1.bin' ARCHIVE_BASE_TOTE_FR_1_PART1_MD5='f48ed6725126696bf3e67ce327db6263' ARCHIVE_BASE_TOTE_FR_1_SIZE='2300000' ARCHIVE_BASE_TOTE_FR_1_VERSION='3.1-gog28569' ARCHIVE_BASE_TOTE_FR_1_URL='https://www.gog.com/game/heroes_of_might_and_magic_5_bundle' ARCHIVE_BASE_TOTE_EN_0_NAME='setup_heroes_of_might_and_magic_v_-_tribes_of_the_east_3.1_(25025).exe' ARCHIVE_BASE_TOTE_EN_0_MD5='3096f296d5d8b6cb0b4ab479fc06474b' ARCHIVE_BASE_TOTE_EN_0_TYPE='innosetup' ARCHIVE_BASE_TOTE_EN_0_PART1_NAME='setup_heroes_of_might_and_magic_v_-_tribes_of_the_east_3.1_(25025)-1.bin' ARCHIVE_BASE_TOTE_EN_0_PART1_MD5='5f4840b0105bd6b4228ff9b707bc0434' ARCHIVE_BASE_TOTE_EN_0_SIZE='2300000' ARCHIVE_BASE_TOTE_EN_0_VERSION='3.1-gog25025' ARCHIVE_BASE_TOTE_FR_0_NAME='setup_heroes_of_might_and_magic_v_-_tribes_of_the_east_3.1_(french)_(25025).exe' ARCHIVE_BASE_TOTE_FR_0_MD5='a2b5d18f34d3fa1a760de4fa63aa3819' ARCHIVE_BASE_TOTE_FR_0_TYPE='innosetup' ARCHIVE_BASE_TOTE_FR_0_PART1_NAME='setup_heroes_of_might_and_magic_v_-_tribes_of_the_east_3.1_(french)_(25025)-1.bin' ARCHIVE_BASE_TOTE_FR_0_PART1_MD5='08a5ec9aaf674235db4d96072bf373fc' ARCHIVE_BASE_TOTE_FR_0_SIZE='2300000' ARCHIVE_BASE_TOTE_FR_0_VERSION='3.1-gog25025' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' bin bina1 bindm fandocuments/*.exe' CONTENT_GAME_L10N_FILES=' music/cs/death-berein.ogg music/cs/death-nico.ogg music/cs/heart-griffin.ogg music/cs/isabel-trap.ogg music/cs/nico-vampire.ogg music/cs/ritual-isabel.ogg video/intro.ogg video/outro.ogg data*/*sound.pak data*/*texts.pak' CONTENT_GAME_DATA_FILES=' customcontentdm duelpresets editor hwcursors music profiles video data* *.bmp' CONTENT_DOC_L10N_FILES=' editor documentation *.pdf *.txt' # Applications APPLICATIONS_LIST=' APP_MAIN APP_HOF' APPLICATIONS_LIST_TOTE=' APP_MAIN APP_DM APP_SKILLS' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/My Games/Heroes of Might and Magic V' WINE_PERSISTENT_DIRECTORIES_TOTE=' users/${USER}/Documents/My Games/Heroes of Might and Magic V - Tribes of the East' APP_MAIN_EXE='bin/h5_game.exe' ## Hammer of Fate APP_HOF_ID="${GAME_ID}-hammers-of-fate" APP_HOF_NAME="$GAME_NAME - Hammers of Fate" APP_HOF_EXE='bina1/h5_game.exe' ## Tribes of the East APP_DM_ID="${GAME_ID_TOTE}-dark-messiah" APP_DM_NAME="$GAME_NAME_TOTE - Dark Messiah" APP_DM_EXE='bindm/h5_game.exe' APP_DM_ICON_WRESTOOL_OPTIONS='--type=14 --name=101' APP_SKILLS_ID="${GAME_ID_TOTE}-skill-wheel" APP_SKILLS_NAME="$GAME_NAME_TOTE - SkillWheel" APP_SKILLS_EXE='fandocuments/skillwheel.exe' APP_SKILLS_ICON_WRESTOOL_OPTIONS='--type=14 --name=200' 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_BASE_ID_TOTE="${GAME_ID_TOTE}-l10n" PKG_L10N_ID_EN="${PKG_L10N_BASE_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_BASE_ID}-fr" PKG_L10N_ID_TOTE_EN="${PKG_L10N_BASE_ID_TOTE}-en" PKG_L10N_ID_TOTE_FR="${PKG_L10N_BASE_ID_TOTE}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_BASE_ID" PKG_L10N_PROVIDES_TOTE=" $PKG_L10N_BASE_ID_TOTE" PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' PKG_L10N_DESCRIPTION_TOTE_EN="$PKG_L10N_DESCRIPTION_EN" PKG_L10N_DESCRIPTION_TOTE_FR="$PKG_L10N_DESCRIPTION_FR" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_TOTE="${GAME_ID_TOTE}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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() { local application application="$1" local application_exe application_exe=$(application_exe "$application") cat <<- EOF cd "$(dirname "$application_exe")" \$(wine_command) "$(basename "$application_exe")" "\$@" EOF } launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-human-resource-machine.sh0000750000000000000000000000613614471751340016520 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2018 BetaRays set -o errexit ### # Human Resource Machine # send your bug reports to vv221@dotslashplay.it ### script_version=20250429.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='human-resource-machine' GAME_NAME='Human Resource Machine' ARCHIVE_BASE_HUMBLE_0_NAME='HumanResourceMachine-Linux-2016-03-23.sh' ARCHIVE_BASE_HUMBLE_0_MD5='ac6013284194203c4732e713dcc0f543' ARCHIVE_BASE_HUMBLE_0_SIZE='73000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0.8262-humble.2016.03.23' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/human-resource-machine' ARCHIVE_BASE_GOG_1_NAME='gog_human_resource_machine_2.0.0.3.sh' ARCHIVE_BASE_GOG_1_MD5='4670105392afc503b880c78d56a2f1ad' ARCHIVE_BASE_GOG_1_SIZE='74000' ARCHIVE_BASE_GOG_1_VERSION='1.0.8262-gog2.0.0.3' ARCHIVE_BASE_GOG_1_URL='https://www.gog.com/game/human_resource_machine' ARCHIVE_BASE_GOG_0_NAME='gog_human_resource_machine_2.0.0.2.sh' ARCHIVE_BASE_GOG_0_MD5='35bc19839c73ddf4b503c58a0a887f98' ARCHIVE_BASE_GOG_0_SIZE='74000' ARCHIVE_BASE_GOG_0_VERSION='1.0.8262-gog2.0.0.2' CONTENT_PATH_DEFAULT_HUMBLE='data' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_GAME_BIN64_RELATIVE_PATH_HUMBLE='x86_64' CONTENT_GAME_BIN64_FILES=' HumanResourceMachine.bin.x86_64' CONTENT_GAME_BIN32_RELATIVE_PATH_HUMBLE='x86' CONTENT_GAME_BIN32_FILES=' HumanResourceMachine.bin.x86' CONTENT_GAME_DATA_RELATIVE_PATH_HUMBLE='noarch' CONTENT_GAME_DATA_FILES=' shaders resource.pak icon.png' CONTENT_DOC_DATA_RELATIVE_PATH_HUMBLE='noarch' CONTENT_DOC_DATA_FILES=' LICENSE.txt README.linux' APP_MAIN_EXE_BIN64='HumanResourceMachine.bin.x86_64' APP_MAIN_EXE_BIN32='HumanResourceMachine.bin.x86' APP_MAIN_ICON_HUMBLE='noarch/icon.png' APP_MAIN_ICON_GOG='icon.png' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 libSDL2-2.0.so.0 libstdc++.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # 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-impression-games-city-builders.sh0000750000000000000000000000656114471751340020222 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2015 Antoine Le Gonidec set -o errexit ### # Impression Games city builders: # - Zeus: Master of Olympus # - Emperor: Rise of the Middle Kingdom # send your bug reports to vv221@dotslashplay.it ### script_version=20250606.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID_ZEUS='zeus-master-of-olympus' GAME_NAME_ZEUS='Zeus: Master of Olympus' GAME_ID_EMPEROR='emperor-rise-of-the-middle-kingdom' GAME_NAME_EMPEROR='Emperor: Rise of the Middle Kingdom' # Game archives ## Zeus ARCHIVE_BASE_ZEUS_0_NAME='setup_zeus_and_poseidon_2.1.0.10.exe' ARCHIVE_BASE_ZEUS_0_MD5='f26f9ed5ecaa4e58fca64acb88255107' ARCHIVE_BASE_ZEUS_0_TYPE='innosetup' ARCHIVE_BASE_ZEUS_0_SIZE='800000' ARCHIVE_BASE_ZEUS_0_VERSION='2.1-gog2.1.0.10' ARCHIVE_BASE_ZEUS_0_URL='https://www.gog.com/game/zeus_poseidon' ## Emperor ARCHIVE_BASE_EMPEROR_0_NAME='setup_emperor_rise_of_the_middle_kingdom_2.0.0.2.exe' ARCHIVE_BASE_EMPEROR_0_MD5='5e50e84c028a85eafe5dd5f2aa277fea' ARCHIVE_BASE_EMPEROR_0_TYPE='innosetup' ARCHIVE_BASE_EMPEROR_0_SIZE='820000' ARCHIVE_BASE_EMPEROR_0_VERSION='1.0.1.0-gog2.0.0.2' ARCHIVE_BASE_EMPEROR_0_URL='https://www.gog.com/game/emperor_rise_of_the_middle_kingdom' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' *.asi *.dll *.exe *.ini *.m3d' CONTENT_GAME_DATA_FILES=' adventures audio binks campaigns cities data model res dragon.ico poseidon.ico zeus.ico *.eng *.inf' CONTENT_DOC_DATA_FILES=' *.pdf *.txt' CONTENT_DOC_DATA_FILES=' *readme.txt *editor*.txt *.pdf' # Applications USER_PERSISTENT_DIRECTORIES=' save' USER_PERSISTENT_FILES=' *.ini' ## With the default OpenGL renderer, text boxes are not displayed (WINE 9.0). WINE_DIRECT3D_RENDERER='wined3d/gdi' ## The game window fails to render anything unless the game runs in a WINE virtual desktop (WINE 9.0). WINE_VIRTUAL_DESKTOP='auto' APPLICATIONS_LIST='APP_MAIN' ## Zeus APP_MAIN_EXE_ZEUS='zeus.exe' APP_MAIN_ICON_ZEUS='poseidon.ico' ## Emperor APPLICATIONS_LIST_EMPEROR="$APPLICATIONS_LIST APP_EDIT" APP_MAIN_EXE_EMPEROR='emperor.exe' APP_MAIN_ICON_EMPEROR='dragon.ico' APP_EDIT_ID="${GAME_ID_EMPEROR}-editor" APP_EDIT_NAME="$GAME_NAME_EMPEROR - Editor" APP_EDIT_EXE='emperoredit.exe' APP_EDIT_ICON="$APP_MAIN_ICON_EMPEROR" PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID_ZEUS="${GAME_ID_ZEUS}-data" PKG_DATA_ID_EMPEROR="${GAME_ID_EMPEROR}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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-infinity-engine-enhanced-edition-expansions.sh0000750000000000000000000000671614471751340022642 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Dawnmist # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Infinity Engine Enhanced Edition expansions: # - Baldur's Gate 1 Enhanced Edition - Siege of Dragonspear # - Baldur's Gate 1 Enhanced Edition - Faces of Good and Evil # send your bug reports to vv221@dotslashplay.it ### script_version=20250507.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID_DRAGONSPEAR='baldurs-gate-1-enhanced-edition' GAME_NAME_DRAGONSPEAR='Baldurʼs Gate Enhanced Edition' GAME_ID_FACES='baldurs-gate-1-enhanced-edition' GAME_NAME_FACES='Baldurʼs Gate Enhanced Edition' EXPANSION_ID_DRAGONSPEAR='siege-of-dragonspear' EXPANSION_NAME_DRAGONSPEAR='Siege of Dragonspear' EXPANSION_ID_FACES='faces-of-good-and-evil' EXPANSION_NAME_FACES='Faces of Good and Evil' # Archives ## Baldur's Gate 1 Enhanced Edition - Siege of Dragonspear ARCHIVE_BASE_DRAGONSPEAR_2_NAME='baldur_s_gate_siege_of_dragonspear_2_6_6_0_p_81762.sh' ARCHIVE_BASE_DRAGONSPEAR_2_MD5='2bb1b6eaefb2744f9bbb32f82a30e60c' ARCHIVE_BASE_DRAGONSPEAR_2_SIZE='1887043' ARCHIVE_BASE_DRAGONSPEAR_2_VERSION='2.6.6.0-gog81762' ARCHIVE_BASE_DRAGONSPEAR_2_URL='https://www.gog.com/game/baldurs_gate_siege_of_dragonspear' ARCHIVE_BASE_DRAGONSPEAR_1_NAME='baldur_s_gate_siege_of_dragonspear_2_6_6_0_47291.sh' ARCHIVE_BASE_DRAGONSPEAR_1_MD5='36d275f6822b3cd2946ca606c0ebdb67' ARCHIVE_BASE_DRAGONSPEAR_1_SIZE='1900000' ARCHIVE_BASE_DRAGONSPEAR_1_VERSION='2.6.6.0-gog47291' ARCHIVE_BASE_DRAGONSPEAR_0_NAME='baldur_s_gate_siege_of_dragonspear_2_6_5_0_46477.sh' ARCHIVE_BASE_DRAGONSPEAR_0_MD5='27970876d9252fcb3174df8201db3ca3' ARCHIVE_BASE_DRAGONSPEAR_0_SIZE='1900000' ARCHIVE_BASE_DRAGONSPEAR_0_VERSION='2.6.5.0-gog46477' ## Baldur's Gate 1 Enhanced Edition - Faces of Good and Evil ARCHIVE_BASE_FACES_2_NAME='baldur_s_gate_faces_of_good_and_evil_2_6_6_0_p_81762.sh' ARCHIVE_BASE_FACES_2_MD5='6289884d62f5b9726c52050787be8099' ARCHIVE_BASE_FACES_2_SIZE='2119' ARCHIVE_BASE_FACES_2_VERSION='2.6.6.0-gog81762' ARCHIVE_BASE_FACES_2_URL='https://www.gog.com/game/baldurs_gate_faces_of_good_and_evil' ARCHIVE_BASE_FACES_1_NAME='baldur_s_gate_faces_of_good_and_evil_2_6_6_0_47291.sh' ARCHIVE_BASE_FACES_1_MD5='5bcc622e44bdf9b03af64f5fe0a83d38' ARCHIVE_BASE_FACES_1_SIZE='2500' ARCHIVE_BASE_FACES_1_VERSION='2.6.6.0-gog47291' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES_DRAGONSPEAR=' sod-dlc.zip' CONTENT_GAME_MAIN_FILES_FACES=' override/yanner2?.bmp override/M_YANN2.lua' PKG_PARENT_ID_DRAGONSPEAR="$GAME_ID_DRAGONSPEAR" PKG_PARENT_ID_FACES="$GAME_ID_FACES" 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-infinity-engine-enhanced-edition-games.sh0000750000000000000000000002277514471751340021552 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2017 Mopi set -o errexit ### # Infinity Engine games (Enhanced Edition): # - Baldur's Gate 1 Enhanced Edition # - Baldur's Gate 2 Enhanced Edition # - Icewind Dale 1 Enhanced Edition # - Planescape: Torment Enhanced Edition # send your bug reports to vv221@dotslashplay.it ### script_version=20250721.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID_BG1='baldurs-gate-1-enhanced-edition' GAME_NAME_BG1='Baldurʼs Gate Enhanced Edition' GAME_ID_BG2='baldurs-gate-2-enhanced-edition' GAME_NAME_BG2='Baldurʼs Gate Ⅱ Enhanced Edition' GAME_ID_IWD1='icewind-dale-1-enhanced-edition' GAME_NAME_IWD1='Icewind Dale Enhanced Edition' GAME_ID_PST='planescape-torment-enhanced-edition' GAME_NAME_PST='Planescape: Torment Enhanced Edition' # Game archives ## Baldur's Gate 1 Enhanced Edition ARCHIVE_BASE_BG1_2_NAME='baldur_s_gate_enhanced_edition_2_6_6_0_p_81762.sh' ARCHIVE_BASE_BG1_2_MD5='69a65780f1fe8292e47e922f9b16a4be' ARCHIVE_BASE_BG1_2_SIZE='3263827' ARCHIVE_BASE_BG1_2_VERSION='2.6.6.0-gog81762' ARCHIVE_BASE_BG1_2_URL='https://www.gog.com/game/baldurs_gate_enhanced_edition' ARCHIVE_BASE_BG1_1_NAME='baldur_s_gate_enhanced_edition_2_6_6_0_47291.sh' ARCHIVE_BASE_BG1_1_MD5='6f7be163ebb80a0fbc9d6331f9c6f09c' ARCHIVE_BASE_BG1_1_SIZE='3300000' ARCHIVE_BASE_BG1_1_VERSION='2.6.6.0-gog47291' ARCHIVE_BASE_BG1_0_NAME='baldur_s_gate_enhanced_edition_2_6_5_0_46477.sh' ARCHIVE_BASE_BG1_0_MD5='a87444f36602b5059e3c885ec2ff50e1' ARCHIVE_BASE_BG1_0_SIZE='3300000' ARCHIVE_BASE_BG1_0_VERSION='2.6.5.0-gog46477' ### Option icons pack ARCHIVE_OPTIONAL_ICONS_NAME_BG1='baldurs-gate-1-enhanced-edition_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5_BG1='58401cf80bc9f1a9e9a0896f5d74b02a' ARCHIVE_OPTIONAL_ICONS_URL_BG1='https://downloads.dotslashplay.it/resources/baldurs-gate-1-enhanced-edition/' CONTENT_ICONS_PATH_BG1='.' CONTENT_ICONS_FILES_BG1=' 16x16 24x42 32x32 48x48 64x64 256x256' ## Baldur's Gate 2 Enhanced Edition ARCHIVE_BASE_BG2_2_NAME='baldur_s_gate_ii_enhanced_edition_2_6_6_0_p_81762.sh' ARCHIVE_BASE_BG2_2_MD5='55a058ab9fbc40f78ce1d89bac7370a0' ARCHIVE_BASE_BG2_2_SIZE='3721955' ARCHIVE_BASE_BG2_2_VERSION='2.6.6.0-gog81762' ARCHIVE_BASE_BG2_2_URL='https://www.gog.com/game/baldurs_gate_2_enhanced_edition' ARCHIVE_BASE_BG2_1_NAME='baldur_s_gate_ii_enhanced_edition_2_6_6_0_47292.sh' ARCHIVE_BASE_BG2_1_MD5='43b37a554ffb712176ea8709fc98ed84' ARCHIVE_BASE_BG2_1_SIZE='380000' ARCHIVE_BASE_BG2_1_VERSION='2.6.6.0-gog47292' ARCHIVE_BASE_BG2_0_NAME='baldur_s_gate_ii_enhanced_edition_2_6_5_0_46477.sh' ARCHIVE_BASE_BG2_0_MD5='aa62efd4b1c69f074a784e637234e7c4' ARCHIVE_BASE_BG2_0_SIZE='3800000' ARCHIVE_BASE_BG2_0_VERSION='2.6.5.0-gog46477' ### Optional icons pack ARCHIVE_OPTIONAL_ICONS_NAME_BG2='baldurs-gate-2-enhanced-edition_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5_BG2='36055600f9461793995a318e74b133e8' ARCHIVE_OPTIONAL_ICONS_URL_BG2='https://downloads.dotslashplay.it/games/baldurs-gate-2-enhanced-edition/' CONTENT_ICONS_PATH_BG2='.' CONTENT_ICONS_FILES_BG2=' 16x16 32x32 48x48 64x64 128x128 256x256' ## Icewind Dale 1 Enhanced Edition ARCHIVE_BASE_IWD1_1_NAME='icewind_dale_enhanced_edition_2_6_6_0_47290.sh' ARCHIVE_BASE_IWD1_1_MD5='fd7721f10a6d39c545ef46c58d80e2cc' ARCHIVE_BASE_IWD1_1_SIZE='3000000' ARCHIVE_BASE_IWD1_1_VERSION='2.6.6.0-gog47290' ARCHIVE_BASE_IWD1_1_URL='https://www.gog.com/game/icewind_dale_enhanced_edition' ARCHIVE_BASE_IWD1_0_NAME='icewind_dale_enhanced_edition_2_6_5_0_46474.sh' ARCHIVE_BASE_IWD1_0_MD5='7fa481705b5d5b7f5d714a6a19c856e0' ARCHIVE_BASE_IWD1_0_SIZE='3000000' ARCHIVE_BASE_IWD1_0_VERSION='2.6.5.0-gog46474' ### Optional icons pack ARCHIVE_OPTIONAL_ICONS_NAME_IWD1='icewind-dale-1-enhanced-edition_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5_IWD1='2e7db406aca79f9182c4efa93df80bf4' ARCHIVE_OPTIONAL_ICONS_URL_IWD1='https://downloads.dotslashplay.it/resources/icewind-dale-1-enhanced-edition/' CONTENT_ICONS_PATH_IWD1='.' CONTENT_ICONS_FILES_IWD1=' 16x16 32x32 48x48 64x64 128x128 256x256' ## Planescape: Torment ARCHIVE_BASE_PST_1_NAME='planescape_torment_enhanced_edition_3_1_4_26532.sh' ARCHIVE_BASE_PST_1_MD5='7d42ae99df8c0a4ff460235ae406f2d6' ARCHIVE_BASE_PST_1_SIZE='1800000' ARCHIVE_BASE_PST_1_VERSION='3.1.4-gog26532' ARCHIVE_BASE_PST_1_URL='https://www.gog.com/game/planescape_torment_enhanced_edition' ARCHIVE_BASE_PST_0_NAME='gog_planescape_torment_enhanced_edition_2.1.0.3.sh' ARCHIVE_BASE_PST_0_MD5='649c1bf9d7ccd81553c574ff1bec2cef' ARCHIVE_BASE_PST_0_SIZE='1800000' ARCHIVE_BASE_PST_0_VERSION='3.1.3-gog2.1.0.3' ### Optional icons pack ARCHIVE_OPTIONAL_ICONS_NAME_PST='planescape-torment-enhanced-edition_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5_PST='ed1c9961e2ecfa401af825d75723fe9c' ARCHIVE_OPTIONAL_ICONS_URL_PST='https://downloads.dotslashplay.it/games/planescape-torment-enhanced-edition/' CONTENT_ICONS_PATH_PST='.' CONTENT_ICONS_FILES_PST=' 16x16 32x32 48x48 64x64 96x96 128x128 256x256' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES_BG1=' BaldursGate' CONTENT_GAME_BIN_FILES_BG2=' BaldursGateII' CONTENT_GAME_BIN_FILES_IWD1=' IcewindDale' CONTENT_GAME_BIN_FILES_PST=' Torment64' CONTENT_GAME_L10N_FR_FILES=' lang/fr_FR' CONTENT_GAME_DATA_FILES=' chitin.key engine.lua Manuals movies music scripts data' ## The English localization files are always included, ## so they can be used as a fallback for incomplete localizations. CONTENT_GAME0_DATA_FILES=' lang/en_US' APP_MAIN_EXE_BG1='BaldursGate' APP_MAIN_EXE_BG2='BaldursGateII' APP_MAIN_EXE_IWD1='IcewindDale' APP_MAIN_EXE_PST='Torment64' APP_MAIN_ICON='../support/icon.png' ## Trying to run the game with the wayland SDL backend leads to a segmentation fault: ## ## #0 0x00005555558d999f in DrawInit_GL(void*) () ## #1 0x00005555559188ee in CVidMode::SetDisplayMode() () ## #2 0x00005555558f9585 in CChitin::InitializeServices() () ## #3 0x00005555558fd75d in CChitin::WinMain() () ## #4 0x00005555554988d8 in main () ## ## Forcing the use of system-provided SDL does not avoid this crash. APP_MAIN_PRERUN=' # Trying to run the game with the wayland SDL backend leads to a segmentation fault if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' # Packages PACKAGES_LIST=' PKG_BIN PKG_L10N_FR PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libexpat.so.1 libgcc_s.so.1 libGL.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' PKG_L10N_FR_DESCRIPTION='French localization' PKG_L10N_DEPENDENCIES_SIBLINGS=' PKG_BIN' PKG_DATA_DESCRIPTION='data' ## Baldur's Gate 1 Enhanced Edition PKG_L10N_ID_BG1="${GAME_ID_BG1}-l10n" PKG_L10N_FR_ID_BG1="${PKG_L10N_ID_BG1}-fr" PKG_L10N_PROVIDES_BG1=" $PKG_L10N_ID_BG1" PKG_DATA_ID_BG1="${GAME_ID_BG1}-data" ## Ensure easy upgrades from packaged generated with pre-20250103.1 game scripts PKG_DATA_PROVIDES_BG1="${PKG_DATA_PROVIDES_BG1:-} baldurs-gate-1-enhanced-edition-l10n-en" ## Baldur's Gate 2 Enhanced Edition PKG_L10N_ID_BG2="${GAME_ID_BG2}-l10n" PKG_L10N_FR_ID_BG2="${PKG_L10N_ID_BG2}-fr" PKG_L10N_PROVIDES_BG2=" $PKG_L10N_ID_BG2" PKG_DATA_ID_BG2="${GAME_ID_BG2}-data" ## Ensure easy upgrades from packaged generated with pre-20250103.1 game scripts PKG_DATA_PROVIDES_BG2="${PKG_DATA_PROVIDES_BG2:-} baldurs-gate-2-enhanced-edition-l10n-en" ## Icewind Dale 1 Enhanced Edition PKG_L10N_ID_IWD1="${GAME_ID_IWD1}-l10n" PKG_L10N_FR_ID_IWD1="${PKG_L10N_ID_IWD1}-fr" PKG_L10N_PROVIDES_IWD1=" $PKG_L10N_ID_IWD1" PKG_DATA_ID_IWD1="${GAME_ID_IWD1}-data" ## Ensure easy upgrades from packaged generated with pre-20250103.1 game scripts PKG_DATA_PROVIDES_IWD1="${PKG_DATA_PROVIDES_IWD1:-} icewind-dale-1-enhanced-edition-l10n-en" ## Planescape: Torment Enhanced Edition PKG_L10N_ID_PST="${GAME_ID_PST}-l10n" PKG_L10N_FR_ID_PST="${PKG_L10N_ID_PST}-fr" PKG_L10N_PROVIDES_PST=" $PKG_L10N_ID_PST" PKG_DATA_ID_PST="${GAME_ID_PST}-data" ## Ensure easy upgrades from packaged generated with pre-20250103.1 game scripts PKG_DATA_PROVIDES_PST="${PKG_DATA_PROVIDES_PST:-} planescape-torment-enhanced-edition-l10n-en" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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" 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_DATA' printf "$lang_string" "$lang_fr" print_instructions 'PKG_BIN' 'PKG_DATA' 'PKG_L10N_FR' # Clean up working_directory_cleanup exit 0 games/play-infinity-engine-games.sh0000750000000000000000000004371614471751340016354 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2015 Antoine Le Gonidec set -o errexit ### # Infinity Engine games: # - Baldur's Gate 1 # - Baldur's Gate 2 # - Icewind Dale 1 # - Icewind Dale 2 # - Planescape: Torment # send your bug reports to vv221@dotslashplay.it ### script_version=20250611.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID_BG1='baldurs-gate-1' GAME_NAME_BG1='Baldurʼs Gate' GAME_ID_BG2='baldurs-gate-2' GAME_NAME_BG2='Baldurʼs Gate Ⅱ' GAME_ID_IWD1='icewind-dale-1' GAME_NAME_IWD1='Icewind Dale' GAME_ID_IWD2='icewind-dale-2' GAME_NAME_IWD2='Icewind Dale Ⅱ' GAME_ID_PST='planescape-torment' GAME_NAME_PST='Planescape: Torment' # Game archives ## Baldur's Gate 1 ARCHIVE_BASE_BG1_EN_1_NAME='baldur_s_gate_the_original_saga_gog_3_23532.sh' ARCHIVE_BASE_BG1_EN_1_MD5='f1750a05b52a5c8bb4810f0dbdb92091' ARCHIVE_BASE_BG1_EN_1_SIZE='3400000' ARCHIVE_BASE_BG1_EN_1_VERSION='1.3.5521-gog23532' ARCHIVE_BASE_BG1_EN_1_URL='https://www.gog.com/game/baldurs_gate_enhanced_edition' ARCHIVE_BASE_BG1_FR_1_NAME='baldur_s_gate_the_original_saga_french_gog_3_23532.sh' ARCHIVE_BASE_BG1_FR_1_MD5='09073e75602383c2c90d7c82436a8d91' ARCHIVE_BASE_BG1_FR_1_VERSION='1.3.5521-gog23532' ARCHIVE_BASE_BG1_FR_1_SIZE='3400000' ARCHIVE_BASE_BG1_FR_1_URL='https://www.gog.com/game/baldurs_gate_enhanced_edition' ARCHIVE_BASE_BG1_PL_1_NAME='baldur_s_gate_the_original_saga_polish_gog_3_23532.sh' ARCHIVE_BASE_BG1_PL_1_MD5='9db5d4dd953e4bc7b42fbb6d0680437a' ARCHIVE_BASE_BG1_PL_1_SIZE='3400000' ARCHIVE_BASE_BG1_PL_1_VERSION='1.3.5521-gog23532' ARCHIVE_BASE_BG1_PL_1_URL='https://www.gog.com/game/baldurs_gate_enhanced_edition' ARCHIVE_BASE_BG1_EN_0_NAME='gog_baldur_s_gate_the_original_saga_2.1.0.10.sh' ARCHIVE_BASE_BG1_EN_0_MD5='6810388ef67960dded254db5750f9aa5' ARCHIVE_BASE_BG1_EN_0_SIZE='3100000' ARCHIVE_BASE_BG1_EN_0_VERSION='1.3.5521-gog2.1.0.10' ARCHIVE_BASE_BG1_FR_0_NAME='gog_baldur_s_gate_the_original_saga_french_2.1.0.10.sh' ARCHIVE_BASE_BG1_FR_0_MD5='87ed67decb79e497b8c0ce9e0b16ac4c' ARCHIVE_BASE_BG1_FR_0_SIZE='3100000' ARCHIVE_BASE_BG1_FR_0_VERSION='1.3.5521-gog2.1.0.10' ## Baldur's Gate 2 ARCHIVE_BASE_BG2_EN_1_NAME='baldur_s_gate_2_complete_gog_3_23651.sh' ARCHIVE_BASE_BG2_EN_1_MD5='030a61ce961ac88cd9506f1fd42135d6' ARCHIVE_BASE_BG2_EN_1_SIZE='3400000' ARCHIVE_BASE_BG2_EN_1_VERSION='2.5.26498-gog23651' ARCHIVE_BASE_BG2_EN_1_URL='https://www.gog.com/game/baldurs_gate_2_enhanced_edition' ARCHIVE_BASE_BG2_FR_1_NAME='baldur_s_gate_2_complete_french_gog_3_23651.sh' ARCHIVE_BASE_BG2_FR_1_MD5='c72eb1b9bae7109de6a7005b3dc44e2c' ARCHIVE_BASE_BG2_FR_1_SIZE='3400000' ARCHIVE_BASE_BG2_FR_1_VERSION='2.5.26498-gog23651' ARCHIVE_BASE_BG2_FR_1_URL='https://www.gog.com/game/baldurs_gate_2_enhanced_edition' ARCHIVE_BASE_BG2_EN_0_NAME='gog_baldur_s_gate_2_complete_2.1.0.7.sh' ARCHIVE_BASE_BG2_EN_0_MD5='e92161d7fc0a2eea234b2c93760c9cdb' ARCHIVE_BASE_BG2_EN_0_SIZE='3000000' ARCHIVE_BASE_BG2_EN_0_VERSION='2.5.26498-gog2.1.0.7' ARCHIVE_BASE_BG2_FR_0_NAME='gog_baldur_s_gate_2_complete_french_2.1.0.7.sh' ARCHIVE_BASE_BG2_FR_0_MD5='6551bda3d8c7330b7ad66842ac1d4ed4' ARCHIVE_BASE_BG2_FR_0_SIZE='3000000' ARCHIVE_BASE_BG2_FR_0_VERSION='2.5.26498-gog2.1.0.7' ## Icewind Dale 1 ARCHIVE_BASE_IWD1_0_NAME='setup_icewind_dale_complete_2.0.0.11.exe' ARCHIVE_BASE_IWD1_0_MD5='b1395109232aac8d7f8455dad418b084' ARCHIVE_BASE_IWD1_0_TYPE='innosetup' ARCHIVE_BASE_IWD1_0_SIZE='2100000' ARCHIVE_BASE_IWD1_0_VERSION='1.42.062714-gog2.0.0.11' ARCHIVE_BASE_IWD1_0_URL='https://www.gog.com/game/icewind_dale_enhanced_edition' ## Icewind Dale 2 ARCHIVE_BASE_IWD2_EN_1_NAME='setup_icewind_dale_2_2.01_fixes_(77030).exe' ARCHIVE_BASE_IWD2_EN_1_MD5='7579f564757a6d9261a29b599a11f335' ARCHIVE_BASE_IWD2_EN_1_TYPE='innosetup' ARCHIVE_BASE_IWD2_EN_1_PART1_NAME='setup_icewind_dale_2_2.01_fixes_(77030)-1.bin' ARCHIVE_BASE_IWD2_EN_1_PART1_MD5='79a7e58ea11380bbbf7329a97d522e3f' ARCHIVE_BASE_IWD2_EN_1_SIZE='1555964' ARCHIVE_BASE_IWD2_EN_1_VERSION='2.01.101615-gog77030' ARCHIVE_BASE_IWD2_EN_1_URL='https://www.gog.com/game/icewind_dale_2' ARCHIVE_BASE_IWD2_FR_1_NAME='setup_icewind_dale_2_2.01_fixes_(french)_(77030).exe' ARCHIVE_BASE_IWD2_FR_1_MD5='8b25fcc3e12641efd79d6c2780f3cc03' ARCHIVE_BASE_IWD2_FR_1_TYPE='innosetup' ARCHIVE_BASE_IWD2_FR_1_PART1_NAME='setup_icewind_dale_2_2.01_fixes_(french)_(77030)-1.bin' ARCHIVE_BASE_IWD2_FR_1_PART1_MD5='0d25ffba9a37471185327d0beedd7aaf' ARCHIVE_BASE_IWD2_FR_1_SIZE='1552369' ARCHIVE_BASE_IWD2_FR_1_VERSION='2.01.101615-gog77030' ARCHIVE_BASE_IWD2_FR_1_URL='https://www.gog.com/game/icewind_dale_2' ARCHIVE_BASE_IWD2_EN_0_NAME='setup_icewind_dale2_2.1.0.13.exe' ARCHIVE_BASE_IWD2_EN_0_MD5='9a68fdabdaff58bebc67092d47d4174e' ARCHIVE_BASE_IWD2_EN_0_TYPE='innosetup' ARCHIVE_BASE_IWD2_EN_0_SIZE='1500000' ARCHIVE_BASE_IWD2_EN_0_VERSION='2.01.101615-gog2.1.0.13' ARCHIVE_BASE_IWD2_FR_0_NAME='setup_icewind_dale2_french_2.1.0.13.exe' ARCHIVE_BASE_IWD2_FR_0_MD5='04f25433d405671a8975be6540dd55fa' ARCHIVE_BASE_IWD2_FR_0_TYPE='innosetup' ARCHIVE_BASE_IWD2_FR_0_SIZE='1500000' ARCHIVE_BASE_IWD2_FR_0_VERSION='2.01.101615-gog2.1.0.13' ## Planescape: Torment ARCHIVE_BASE_PST_EN_1_NAME='planescape_torment_gog_3_23483.sh' ARCHIVE_BASE_PST_EN_1_MD5='3eb98c2c34d628b7da6e4e914ac8e622' ARCHIVE_BASE_PST_EN_1_SIZE='2700000' ARCHIVE_BASE_PST_EN_1_VERSION='1.1-gog23483' ARCHIVE_BASE_PST_EN_1_URL='https://www.gog.com/game/planescape_torment_enhanced_edition' ARCHIVE_BASE_PST_FR_1_NAME='planescape_torment_french_gog_3_23483.sh' ARCHIVE_BASE_PST_FR_1_MD5='3374385ab6c5ca8aa489ee8de6161637' ARCHIVE_BASE_PST_FR_1_SIZE='2700000' ARCHIVE_BASE_PST_FR_1_VERSION='1.1-gog23483' ARCHIVE_BASE_PST_FR_1_URL='https://www.gog.com/game/planescape_torment_enhanced_edition' ARCHIVE_BASE_PST_RU_1_NAME='planescape_torment_russian_gog_3_23483.sh' ARCHIVE_BASE_PST_RU_1_MD5='6f6744e90691126c884dccf925423e2d' ARCHIVE_BASE_PST_RU_1_SIZE='2700000' ARCHIVE_BASE_PST_RU_1_VERSION='1.1-gog23483' ARCHIVE_BASE_PST_RU_1_URL='https://www.gog.com/game/planescape_torment_enhanced_edition' ARCHIVE_BASE_PST_EN_0_NAME='gog_planescape_torment_2.1.0.9.sh' ARCHIVE_BASE_PST_EN_0_MD5='a48bb772f60da3b5b2cac804b6e92670' ARCHIVE_BASE_PST_EN_0_SIZE='2400000' ARCHIVE_BASE_PST_EN_0_VERSION='1.1-gog2.1.0.9' ARCHIVE_BASE_PST_FR_0_NAME='gog_planescape_torment_french_2.1.0.9.sh' ARCHIVE_BASE_PST_FR_0_MD5='c3af554300a90297d4fca0b591d9c3fd' ARCHIVE_BASE_PST_FR_0_SIZE='2400000' ARCHIVE_BASE_PST_FR_0_VERSION='1.1-gog2.1.0.9' ARCHIVE_BASE_PST_RU_0_NAME='gog_planescape_torment_russian_2.2.0.10.sh' ARCHIVE_BASE_PST_RU_0_MD5='d6fd52fe9946bcc067eed441945127f1' ARCHIVE_BASE_PST_RU_0_SIZE='2400000' ARCHIVE_BASE_PST_RU_0_VERSION='1.1-gog2.2.0.10' # Archives content ## Baldur's Gate CONTENT_PATH_DEFAULT_BG1_EN="data/noarch/prefix/drive_c/GOG Games/Baldur's Gate" CONTENT_PATH_DEFAULT_BG1_FR="data/noarch/prefix/drive_c/GOG Games/Baldur's Gate (French)" CONTENT_PATH_DEFAULT_BG1_PL="data/noarch/prefix/drive_c/GOG Games/Baldur's Gate (Polish)" CONTENT_GAME_BIN_FILES_BG1=' luaauto.cfg baldur.exe bgmain2.exe bgmain.exe config.exe mconvert.exe keymap.ini' ## The following configuration file is generated by the current game script, ## the shipped version is ignored. CONTENT_GAME0_BIN_FILES_BG1=' baldur.ini' CONTENT_GAME_L10N_FILES_BG1=' characters override movies mpsave save sounds chitin.key dialog.tlk dialogf.tlk data/areas.bif data/objanim.bif data/scripts.bif data/*sound*.bif' CONTENT_GAME_DATA_FILES_BG1=' data music scripts' CONTENT_DOC_L10N_PATH_BG1_EN='data/noarch/docs/english' CONTENT_DOC_L10N_PATH_BG1_FR='data/noarch/docs/french' CONTENT_DOC_L10N_PATH_BG1_PL='data/noarch/docs/polish' CONTENT_DOC_L10N_PATH_BG1_EN_0='data/noarch/docs' CONTENT_DOC_L10N_PATH_BG1_FR_0='data/noarch/docs' CONTENT_DOC_L10N_FILES_BG1=' *.pdf *.txt' ## Baldur's Gate 2 CONTENT_PATH_DEFAULT_BG2_EN="data/noarch/prefix/drive_c/GOG Games/Baldur's Gate 2" CONTENT_PATH_DEFAULT_BG2_FR="data/noarch/prefix/drive_c/GOG Games/Baldur's Gate 2 (French)" CONTENT_GAME_BIN_FILES_BG2=' script compiler lasnil32.dll baldur.exe bgconfig.exe bgdxtest.exe bggltest.exe bgmain.exe charview.exe glsetup.exe keymap.ini' ## The following configuration file is generated by the current game script, ## the shipped version is ignored. CONTENT_GAME0_BIN_FILES_BG2=' baldur.ini' CONTENT_GAME_L10N_FILES_BG2=' characters override sounds chitin.key dialog.tlk dialogf.tlk language.txt data/movies data/25npcso.bif data/areas.bif data/npchd0so.bif data/objanim.bif data/scripts.bif data/npcsocd?.bif data/*sound*.bif' CONTENT_GAME_DATA_FILES_BG2=' data music scripts baldur.ico bgate2.mpi' CONTENT_DOC_L10N_PATH_BG2_EN='data/noarch/docs/english' CONTENT_DOC_L10N_PATH_BG2_FR='data/noarch/docs/french' CONTENT_DOC_L10N_PATH_BG2_EN_0='data/noarch/docs' CONTENT_DOC_L10N_PATH_BG2_FR_0='data/noarch/docs' CONTENT_DOC_L10N_FILES_BG2=' *.pdf *.txt' ## Icewind Dale CONTENT_PATH_DEFAULT_IWD1='app' CONTENT_GAME_BIN_FILES_IWD1=' 3dfx.dll config.exe glsetup.exe idmain.exe keymap.ini' ## The following configuration file is generated by the current game script, ## the shipped version is ignored. CONTENT_GAME0_BIN_FILES_IWD1=' icewind.ini' CONTENT_GAME_L10N_FILES_IWD1=' characters override mpsave sounds language.ini chitin.key dialog.tlk cd2/data/sndvo.bif' CONTENT_GAME_DATA_FILES_IWD1=' cd2 cd3 data music scripts' CONTENT_DOC_L10N_FILES_IWD1=' manual.pdf patch_addon.txt patch_addon2.txt readme.txt readme_addon.txt readme_addon2.txt readme_eng.txt' ## Icewind Dale 2 CONTENT_PATH_DEFAULT_IWD2='.' CONTENT_PATH_DEFAULT_IWD2_EN_0='app' CONTENT_PATH_DEFAULT_IWD2_FR_0='app' CONTENT_GAME_BIN_FILES_IWD2=' binkw32.dll config.exe iwd2.exe keymap.ini' ## The following configuration file is generated by the current game script, ## the shipped version is ignored. CONTENT_GAME0_BIN_FILES_IWD2=' icewind2.ini' CONTENT_GAME1_BIN_RELATIVE_PATH_IWD2='__support/app' CONTENT_GAME1_BIN_FILES_IWD2=' iwd2.exe keymap.ini' CONTENT_GAME_L10N_FILES_IWD2=' characters override sounds language.ini party.ini chitin.key dialog.tlk dialogf.tlk cd2/data/sndvo.bif cd2/data/*.mve' CONTENT_GAME0_L10N_RELATIVE_PATH_IWD2='__support/app' CONTENT_GAME0_L10N_FILES_IWD2=' party.ini' CONTENT_GAME_DATA_FILES_IWD2=' cd2 data music scripts' CONTENT_DOC_L10N_FILES_IWD2=' readme.htm manual.pdf patch.txt' ## Planescape: Torment CONTENT_PATH_DEFAULT_PST_EN='data/noarch/prefix/drive_c/GOG Games/Planescape Torment' CONTENT_PATH_DEFAULT_PST_RU='data/noarch/prefix/drive_c/GOG Games/Planescape Torment (Russian)' CONTENT_PATH_DEFAULT_PST_FR='data/noarch/prefix/drive_c/GOG Games/Planescape Torment (French)' CONTENT_GAME_BIN_FILES_PST=' torment.exe autonote.ini beast.ini keymap.ini layout.ini quests.ini' ## The following configuration file is generated by the current game script, ## the shipped version is ignored. CONTENT_GAME0_BIN_FILES_PST=' torment.ini' CONTENT_GAME_L10N_FILES_PST=' override cachemos.bif crefiles.bif cs_0404.bif interface.bif sound.bif voice.bif chitin.key dialog.tlk dialogf.tlk data/genmova.bif data/movies?.bif' CONTENT_GAME_DATA_FILES_PST=' data music var.var *.bif' CONTENT_DOC_L10N_PATH_PST_EN='data/noarch/docs/english' CONTENT_DOC_L10N_PATH_PST_FR='data/noarch/docs/french' CONTENT_DOC_L10N_PATH_PST_RU='data/noarch/docs/russian' CONTENT_DOC_L10N_PATH_PST_EN_0='data/noarch/docs' CONTENT_DOC_L10N_PATH_PST_FR_0='data/noarch/docs' CONTENT_DOC_L10N_PATH_PST_RU_0='data/noarch/docs' CONTENT_DOC_L10N_FILES_PST=' *.pdf *.txt' # Applications USER_PERSISTENT_FILES=' *.ini' USER_PERSISTENT_DIRECTORIES=' characters mpsave save' ## Disable the multi-threaded command stream feature, as it has a very severe impact on performances. WINE_WINETRICKS_VERBS='csmt=off' APPLICATIONS_LIST='APP_MAIN APP_CONFIG' APPLICATIONS_LIST_PST='APP_MAIN' APP_CONFIG_CAT='Settings' ## Baldur's Gate 1 APP_MAIN_EXE_BG1='bgmain2.exe' APP_MAIN_ICON_BG1='baldur.exe' APP_CONFIG_ID_BG1="${GAME_ID_BG1}-config" APP_CONFIG_NAME_BG1="$GAME_NAME_BG1 - configuration" APP_CONFIG_EXE_BG1='config.exe' ## Baldur's Gate 2 APP_MAIN_EXE_BG2='bgmain.exe' APP_MAIN_ICON_BG2='baldur.exe' APP_CONFIG_ID_BG2="${GAME_ID_BG2}-config" APP_CONFIG_NAME_BG2="$GAME_NAME_BG2 - configuration" APP_CONFIG_EXE_BG2='bgconfig.exe' ## Icewind Dale 1 APP_MAIN_EXE_IWD1='idmain.exe' APP_CONFIG_ID_IWD1="${GAME_ID_IWD1}-config" APP_CONFIG_NAME_IWD1="$GAME_NAME_IWD1 - configuration" APP_CONFIG_EXE_IWD1='config.exe' ## Icewind Dale 2 APP_MAIN_EXE_IWD2='iwd2.exe' APP_MAIN_ICON_IWD2='__support/app/iwd2.exe' APP_MAIN_ICON_IWD2_EN_0='iwd2.exe' APP_MAIN_ICON_IWD2_FR_0='iwd2.exe' APP_CONFIG_ID_IWD2="${GAME_ID_IWD2}-config" APP_CONFIG_NAME_IWD2="$GAME_NAME_IWD2 - configuration" APP_CONFIG_EXE_IWD2='config.exe' ## Planescape: Torment APP_MAIN_EXE_PST='torment.exe' # Packages ## Common PACKAGES_LIST=' PKG_BIN PKG_L10N PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N_BASE PKG_DATA' PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' PKG_L10N_DESCRIPTION_PL='Polish localization' PKG_L10N_DESCRIPTION_RU='Russian localization' PKG_DATA_DESCRIPTION='data' ## Baldur's Gate 1 PKG_L10N_BASE_ID_BG1="${GAME_ID_BG1}-l10n" PKG_L10N_ID_BG1_EN="${PKG_L10N_BASE_ID_BG1}-en" PKG_L10N_ID_BG1_FR="${PKG_L10N_BASE_ID_BG1}-fr" PKG_L10N_ID_BG1_PL="${PKG_L10N_BASE_ID_BG1}-pl" PKG_L10N_PROVIDES_BG1=" $PKG_L10N_BASE_ID_BG1" PKG_L10N_DESCRIPTION_BG1_EN="$PKG_L10N_DESCRIPTION_EN" PKG_L10N_DESCRIPTION_BG1_FR="$PKG_L10N_DESCRIPTION_FR" PKG_L10N_DESCRIPTION_BG1_PL="$PKG_L10N_DESCRIPTION_PL" PKG_DATA_ID_BG1="${GAME_ID_BG1}-data" ## Baldur's Gate 2 PKG_L10N_BASE_ID_BG2="${GAME_ID_BG2}-l10n" PKG_L10N_ID_BG2_EN="${PKG_L10N_BASE_ID_BG2}-en" PKG_L10N_ID_BG2_FR="${PKG_L10N_BASE_ID_BG2}-fr" PKG_L10N_PROVIDES_BG2=" $PKG_L10N_BASE_ID_BG2" PKG_L10N_DESCRIPTION_BG2_EN="$PKG_L10N_DESCRIPTION_EN" PKG_L10N_DESCRIPTION_BG2_FR="$PKG_L10N_DESCRIPTION_FR" PKG_DATA_ID_BG2="${GAME_ID_BG2}-data" ## Icewind Dale 1 PKG_L10N_BASE_ID_IWD1="${GAME_ID_IWD1}-l10n" PKG_L10N_ID_IWD1="${PKG_L10N_BASE_ID_IWD1}-en" PKG_L10N_PROVIDES_IWD1=" $PKG_L10N_BASE_ID_IWD1" PKG_L10N_DESCRIPTION_IWD1="$PKG_L10N_DESCRIPTION_EN" PKG_DATA_ID_IWD1="${GAME_ID_IWD1}-data" ## Icewind Dale 2 PKG_L10N_BASE_ID_IWD2="${GAME_ID_IWD2}-l10n" PKG_L10N_ID_IWD2_EN="${PKG_L10N_BASE_ID_IWD2}-en" PKG_L10N_ID_IWD2_FR="${PKG_L10N_BASE_ID_IWD2}-fr" PKG_L10N_PROVIDES_IWD2=" $PKG_L10N_BASE_ID_IWD2" PKG_L10N_DESCRIPTION_IWD2_EN="$PKG_L10N_DESCRIPTION_EN" PKG_L10N_DESCRIPTION_IWD2_FR="$PKG_L10N_DESCRIPTION_FR" PKG_DATA_ID_IWD2="${GAME_ID_IWD2}-data" ## Planescape: Torment PKG_L10N_BASE_ID_PST="${GAME_ID_PST}-l10n" PKG_L10N_ID_PST_EN="${PKG_L10N_BASE_ID_PST}-en" PKG_L10N_ID_PST_FR="${PKG_L10N_BASE_ID_PST}-fr" PKG_L10N_ID_PST_RU="${PKG_L10N_BASE_ID_PST}-ru" PKG_L10N_PROVIDES_PST=" $PKG_L10N_BASE_ID_PST" PKG_L10N_DESCRIPTION_PST_EN="$PKG_L10N_DESCRIPTION_EN" PKG_L10N_DESCRIPTION_PST_FR="$PKG_L10N_DESCRIPTION_FR" PKG_L10N_DESCRIPTION_PST_RU="$PKG_L10N_DESCRIPTION_RU" PKG_DATA_ID_PST="${GAME_ID_PST}-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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)" ## Mojosetup installers ## - Convert all file names to lowercase if [ "$(archive_type "$(current_archive)")" = 'mojosetup' ]; then tolower . fi # Baldur's Gate 2 - Delete broken symbolic links. case "$(current_archive)" in ('ARCHIVE_BASE_BG2_'*) rm --force --recursive \ 'mpsave' \ 'temp' ;; esac # Baldur's Gate 2 - Drop duplicated files. case "$(current_archive)" in ('ARCHIVE_BASE_BG2_'*) rm \ 'data/data/cd3crean.bif' \ 'data/data/cd4crea3.bif' ;; esac ## Generate a minimal configuration file case "$(current_archive)" in ('ARCHIVE_BASE_BG1_'*) config_file='baldur.ini' ;; ('ARCHIVE_BASE_BG2_'*) config_file='baldur.ini' ;; ('ARCHIVE_BASE_IWD1_'*) config_file='icewind.ini' ;; ('ARCHIVE_BASE_IWD2_'*) config_file='icewind2.ini' ;; ('ARCHIVE_BASE_PST_'*) config_file='torment.ini' ;; esac game_path="C:\\$(game_id)" case "$(current_archive)" in ('ARCHIVE_BASE_BG1_'*) cat > "$config_file" <<- EOF [Alias] HD0:=${game_path}\\ CD1:=${game_path}\\data\\ CD2:=${game_path}\\data\\ CD3:=${game_path}\\data\\ CD4:=${game_path}\\data\\ CD5:=${game_path}\\data\\ CD6:=${game_path}\\data\\ EOF ;; ('ARCHIVE_BASE_BG2_'*) cat > "$config_file" <<- EOF [Alias] HD0:=${game_path}\\ CD1:=${game_path}\\data\\ CD2:=${game_path}\\data\\ CD3:=${game_path}\\data\\ CD4:=${game_path}\\data\\ CD5:=${game_path}\\data\\ CD6:=${game_path}\\data\\ EOF ;; ('ARCHIVE_BASE_IWD1_'*) cat > "$config_file" <<- EOF [Alias] HD0:=${game_path}\\ CD1:=${game_path}\\ CD2:=${game_path}\\cd2\\ CD3:=${game_path}\\cd3\\ EOF ;; ('ARCHIVE_BASE_IWD2_'*) cat > "$config_file" <<- EOF [Alias] HD0:=${game_path}\\ CD1:=${game_path}\\data\\ CD2:=${game_path}\\cd2\\ [Movies] INTRO=1 EOF ;; ('ARCHIVE_BASE_PST_'*) cat > "$config_file" <<- EOF [Alias] HD0:=${game_path}\\ CD1:=${game_path}\\data\\ CD2:=${game_path}\\data\\ CD3:=${game_path}\\data\\ CD4:=${game_path}\\data\\ CD5:=${game_path}\\data\\ EOF ;; esac ## The native windowed mode is used instead of a WINE virtual desktop, ## as using a WINE virtual desktop would cause cursor flickering (WINE 9.0). ## cf. https://bugs.winehq.org/show_bug.cgi?id=56986 cat >> "$config_file" <<- EOF [Program Options] Full Screen=0 EOF ) # 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-jade-empire.sh0000750000000000000000000001226314471751340014341 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 vv221@dotslashplay.it ### script_version=20250312.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 d3d9.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' ## FIXME: An explicit list of files should be set CONTENT_DOC_L10N_FILES=' *' CONTENT_DOC_DATA_FILES=' *.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-jazz-jackrabbit-2.sh0000750000000000000000000001425514471751340015371 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Jazz Jackrabbit 2 # send your bug reports to vv221@dotslashplay.it ### script_version=20250725.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='jazz-jackrabbit-2' GAME_NAME='Jazz Jackrabbit 2' GAME_ID_JJ2PLUS="${GAME_ID}-jj2plus" GAME_NAME_JJ2PLUS="$GAME_NAME - JJ2+" GAME_ID_CHRISTMAS="${GAME_ID}-the-christmas-chronicles" GAME_NAME_CHRISTMAS="$GAME_NAME - The Christmas Chronicles" # Game archives ## Jazz Jackrabbit 2 (including The Secret Files) ARCHIVE_BASE_2_NAME='setup_jazz_jackrabbit_2_1.24hf_(16886).exe' ARCHIVE_BASE_2_MD5='25a730c0813eb006555e6bbaf9613487' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_SIZE='66354' ARCHIVE_BASE_2_VERSION='1.24-gog16886' ARCHIVE_BASE_2_URL='https://www.gog.com/game/jazz_jackrabbit_2_collection' ARCHIVE_BASE_1_NAME='setup_jazz_jackrabbit_2_1.24hf_(16886).exe' ARCHIVE_BASE_1_MD5='45be80bad040ea821bc6096abe6f3196' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='66986' ARCHIVE_BASE_1_VERSION='1.24-gog16886' ARCHIVE_BASE_0_NAME='setup_jazz_jackrabbit_2_1.24hf_(16886).exe' ARCHIVE_BASE_0_MD5='48a48258ed60b24068cbbb2f110b049b' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='67000' ARCHIVE_BASE_0_VERSION='1.24-gog16886' ## Jazz Jackrabbit 2 (including The Secret Files) + JJ2+ expansion ARCHIVE_BASE_JJ2PLUS_1_NAME='setup_jazz_jackrabbit_2_1.24_jj2_(5.12)_(66703).exe' ARCHIVE_BASE_JJ2PLUS_1_MD5='e76181591367d1ad986a6dec22fa6f9f' ARCHIVE_BASE_JJ2PLUS_1_TYPE='innosetup' ARCHIVE_BASE_JJ2PLUS_1_SIZE='76618' ARCHIVE_BASE_JJ2PLUS_1_VERSION='1.24-gog66703' ARCHIVE_BASE_JJ2PLUS_1_URL='https://www.gog.com/game/jazz_jackrabbit_2_collection' ARCHIVE_BASE_JJ2PLUS_0_NAME='setup_jazz_jackrabbit_2_1.24_jj2_(5.9)_(46861).exe' ARCHIVE_BASE_JJ2PLUS_0_MD5='94f8477d51e35b4cdc6b3d999b502580' ARCHIVE_BASE_JJ2PLUS_0_TYPE='innosetup' ARCHIVE_BASE_JJ2PLUS_0_SIZE='78000' ARCHIVE_BASE_JJ2PLUS_0_VERSION='1.24-gog46861' ## Jazz Jackrabbit 2 - The Christmas Chronicles ARCHIVE_BASE_CHRISTMAS_1_NAME='setup_jazz_jackrabbit_2_the_christmas_chronicles_1.2x_(16742).exe' ARCHIVE_BASE_CHRISTMAS_1_MD5='7ef514ecfdbbe321665b507b47f55fc5' ARCHIVE_BASE_CHRISTMAS_1_TYPE='innosetup' ARCHIVE_BASE_CHRISTMAS_1_SIZE='71308' ARCHIVE_BASE_CHRISTMAS_1_VERSION='1.2x-gog16742' ARCHIVE_BASE_CHRISTMAS_1_URL='https://www.gog.com/game/jazz_jackrabbit_2_collection' ARCHIVE_BASE_CHRISTMAS_0_NAME='setup_jazz_jackrabbit_2_cc_1.2x_(16742).exe' ARCHIVE_BASE_CHRISTMAS_0_MD5='3289263ea6bad8bc35f02176e22109f2' ARCHIVE_BASE_CHRISTMAS_0_TYPE='innosetup' ARCHIVE_BASE_CHRISTMAS_0_SIZE='70000' ARCHIVE_BASE_CHRISTMAS_0_VERSION='1.2x-gog16742' ## Jazz² Resurrection (native engine) ARCHIVE_JAZZ2NATIVE_4_NAME='Jazz2_3.3.0_Linux.zip' ARCHIVE_JAZZ2NATIVE_4_MD5='09b746e3bb4248eefcf3695931e99986' ARCHIVE_JAZZ2NATIVE_4_SIZE='42311' ARCHIVE_JAZZ2NATIVE_4_VERSION='3.3.0-1' ARCHIVE_JAZZ2NATIVE_4_URL='http://deat.tk/jazz2/' ARCHIVE_JAZZ2NATIVE_3_NAME='Jazz2_2.9.1_Linux.zip' ARCHIVE_JAZZ2NATIVE_3_MD5='7a0b286248e54ab652f4f0e437912961' ARCHIVE_JAZZ2NATIVE_3_SIZE='30115' ARCHIVE_JAZZ2NATIVE_3_VERSION='2.9.1-1' ARCHIVE_JAZZ2NATIVE_2_NAME='Jazz2_2.7.0_Linux.zip' ARCHIVE_JAZZ2NATIVE_2_MD5='50fd07614c030c2e86498894f67cf203' ARCHIVE_JAZZ2NATIVE_2_SIZE='29747' ARCHIVE_JAZZ2NATIVE_2_VERSION='2.7.0-1' ARCHIVE_JAZZ2NATIVE_1_NAME='Jazz2_2.6.0_Linux.zip' ARCHIVE_JAZZ2NATIVE_1_MD5='ff2ff3acc2213f4133ca8138603feb67' ARCHIVE_JAZZ2NATIVE_1_SIZE='29553' ARCHIVE_JAZZ2NATIVE_1_VERSION='2.6.0-1' # Archives content ## Jazz Jackrabbit 2 CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_PATH_DEFAULT_CHRISTMAS_0='app' CONTENT_GAME_DATA_FILES=' html jcshelp tiles userlevels *.asc *.it *.j2? *.j2as *.mo3 *.mod *.mut *.pal *.s3m *.wav' CONTENT_DOC_DATA_FILES=' *.doc *.html *.pdf *.txt' ## Jazz² Resurrection CONTENT_GAME0_DATA_PATH='x64' CONTENT_GAME0_DATA_FILES=' Content' CONTENT_GAME_BIN_PATH='x64' CONTENT_GAME_BIN_FILES=' jazz2_sdl2' APP_MAIN_EXE_BIN='jazz2_sdl2' APP_MAIN_ICON='jazz2.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libm.so.6 libopenal.so.1 libOpenGL.so.0 libopenmpt.so.0 libSDL2-2.0.so.0 libstdc++.so.6 libvorbisfile.so.3 libz.so.1' ## Easier upgrades from pre-20250605.2 packages PKG_BIN_PROVIDES="${PKG_BIN_PROVIDES:-} jazz-jackrabbit-2-bin" PKG_BIN_PROVIDES_CHRISTMAS="${PKG_BIN_PROVIDES_CHRISTMAS:-} jazz-jackrabbit-2-the-christmas-chronicles-bin" PKG_BIN_PROVIDES_JJ2PLUS="${PKG_BIN_PROVIDES_JJ2PLUS:-} jazz-jackrabbit-2-jj2plus-bin" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_JJ2PLUS="${GAME_ID_JJ2PLUS}-data" PKG_DATA_ID_CHRISTMAS="${GAME_ID_CHRISTMAS}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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 the game engine archive. archive_initialize_required \ 'ARCHIVE_JAZZ2NATIVE' \ 'ARCHIVE_JAZZ2NATIVE_4' \ 'ARCHIVE_JAZZ2NATIVE_3' \ 'ARCHIVE_JAZZ2NATIVE_2' \ 'ARCHIVE_JAZZ2NATIVE_1' archive_version=$(archive_version 'ARCHIVE_JAZZ2NATIVE' | cut --delimiter='-' --fields=1) archive_release=$(archive_version "$(current_archive)" | cut --delimiter='-' --fields=2) export "$(current_archive)_VERSION=${archive_version}-${archive_release}" # Extract game data archive_extraction_default archive_extraction 'ARCHIVE_JAZZ2NATIVE' # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion 'GAME_DATA' 'PKG_DATA' "$(path_game_data)/Source" content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-kathy-rain-series.sh0000750000000000000000000000617314471751340015521 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Kathy Rain series: # - Kathy Rain # - Kathy Rain 2: Soothsayer # send your bug reports to vv221@dotslashplay.it ### script_version=20250531.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID_ORIGINAL='kathy-rain-1' GAME_NAME_ORIGINAL='Kathy Rain' GAME_ID_SOOTHSAYER='kathy-rain-2' GAME_NAME_SOOTHSAYER='Kathy Rain 2: Soothsayer' ARCHIVE_BASE_ORIGINAL_0_NAME='kathy_rain_director_s_cut_v_1_0_3_5225_53868.sh' ARCHIVE_BASE_ORIGINAL_0_MD5='0bcbe5aa3508431c685b8ecd1617d560' ARCHIVE_BASE_ORIGINAL_0_SIZE='842486' ARCHIVE_BASE_ORIGINAL_0_VERSION='1.0.3.5225-gog53868' ARCHIVE_BASE_ORIGINAL_0_URL='https://www.gog.com/game/kathy_rain_directors_cut' ARCHIVE_BASE_SOOTHSAYER_0_NAME='kathy_rain_2_soothsayer_4089_82456.sh' ARCHIVE_BASE_SOOTHSAYER_0_MD5='886b73b2d10088df60ed5102adb32a56' ARCHIVE_BASE_SOOTHSAYER_0_SIZE='3224799' ARCHIVE_BASE_SOOTHSAYER_0_VERSION='1.0.3.4089-gog82456' ARCHIVE_BASE_SOOTHSAYER_0_URL='https://www.gog.com/game/kathy_rain_2_soothsayer' UNITY3D_NAME_ORIGINAL='KathyRainDirectorsCut' UNITY3D_NAME_SOOTHSAYER='KathyRain2' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME0_BIN_FILES_ORIGINAL=" ${UNITY3D_NAME_ORIGINAL}.x64" CONTENT_GAME0_BIN_FILES_SOOTHSAYER=" ${UNITY3D_NAME_SOOTHSAYER}.x64" ## These games use a non-standard binary name. APP_MAIN_EXE_ORIGINAL="${UNITY3D_NAME_ORIGINAL}.x64" APP_MAIN_EXE_SOOTHSAYER="${UNITY3D_NAME_SOOTHSAYER}.x64" 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' ## Easier upgrades from pre-20250531.1 packages. PKG_BIN_PROVIDES_ORIGINAL="${PKG_BIN_PROVIDES_ORIGINAL:-} kathy-rain" PKG_DATA_ID_ORIGINAL="${GAME_ID_ORIGINAL}-data" PKG_DATA_ID_SOOTHSAYER="${GAME_ID_SOOTHSAYER}-data" PKG_DATA_DESCRIPTION='data' ## Easier upgrades from pre-20250531.1 packages. PKG_DATA_PROVIDES_ORIGINAL="${PKG_DATA_PROVIDES_ORIGINAL:-} kathy-rain-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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 inclusion of shipped Steam library. 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-kingdom-rush-series.sh0000750000000000000000000000751614471751340016063 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # Kingdom Rush series: # - Kingdom Rush # - Kingdom Rush: Frontiers # - Kingdom Rush: Origins # send your bug reports to vv221@dotslashplay.it ### script_version=20241227.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID_ORIGINAL='kingdom-rush' GAME_NAME_ORIGINAL='Kingdom Rush' GAME_ID_FRONTIERS='kingdom-rush-frontiers' GAME_NAME_FRONTIERS='Kingdom Rush: Frontiers' GAME_ID_ORIGINS='kingdom-rush-origins' GAME_NAME_ORIGINS='Kingdom Rush: Origins' # Archives ## Kingdom Rush (original game) ARCHIVE_BASE_ORIGINAL_2_NAME='kingdom_rush_5_6_12_52189.sh' ARCHIVE_BASE_ORIGINAL_2_MD5='ca0bd3ede3d5768d51b66c366d4c68cb' ARCHIVE_BASE_ORIGINAL_2_SIZE='378545' ARCHIVE_BASE_ORIGINAL_2_VERSION='5.6.12-gog52189' ARCHIVE_BASE_ORIGINAL_2_URL='https://www.gog.com/game/kingdom_rush' ARCHIVE_BASE_ORIGINAL_1_NAME='kingdom_rush_4_2_33_43930.sh' ARCHIVE_BASE_ORIGINAL_1_MD5='1423a27078042c5fc9d7ee45d06a5744' ARCHIVE_BASE_ORIGINAL_1_SIZE='380000' ARCHIVE_BASE_ORIGINAL_1_VERSION='4.2.33-gog43930' ARCHIVE_BASE_ORIGINAL_0_NAME='kingdom_rush_4_2_15_40260.sh' ARCHIVE_BASE_ORIGINAL_0_MD5='025031489b81493e3816e077ab62214a' ARCHIVE_BASE_ORIGINAL_0_SIZE='380000' ARCHIVE_BASE_ORIGINAL_0_VERSION='4.2.15-gog40260' ## Kingdom Rush: Frontiers ARCHIVE_BASE_FRONTIERS_0_NAME='kingdom_rush_frontiers_4_2_33_43930.sh' ARCHIVE_BASE_FRONTIERS_0_MD5='6e00968ec07cec1bbafd8c43ed4416cb' ARCHIVE_BASE_FRONTIERS_0_SIZE='449652' ARCHIVE_BASE_FRONTIERS_0_VERSION='4.2.33-gog43930' ARCHIVE_BASE_FRONTIERS_0_URL='https://www.gog.com/game/kingdom_rush_frontiers' ## Kingdom Rush: Origins ARCHIVE_BASE_ORIGINS_0_NAME='kingdom_rush_origins_4_2_15_40260.sh' ARCHIVE_BASE_ORIGINS_0_MD5='864fb8a387081304df1d0674c40d718e' ARCHIVE_BASE_ORIGINS_0_SIZE='497827' ARCHIVE_BASE_ORIGINS_0_VERSION='4.2.15-gog40260' ARCHIVE_BASE_ORIGINS_0_URL='https://www.gog.com/game/kingdom_rush_origins' CONTENT_PATH_DEFAULT='data/noarch/game' ## System-provided love2d runtime can not be used, it crashes on launch with the following error: ## Error: [love "boot.lua"]:276: Syntax error: conf.lua: cannot load incompatible bytecode CONTENT_LIBS_MAIN_FILES=' liblove.so.0' ## System-provided libluajit-5.1.so.2 can not be used, as it triggers a crash on launch. CONTENT_LIBS0_MAIN_FILES=' libluajit-5.1.so.2' CONTENT_GAME_MAIN_FILES=' icon.png Kingdom Rush Kingdom Rush Frontiers Kingdom Rush Origins' CONTENT_DOC_MAIN_PATH=' license-kr-desktop.txt' APP_MAIN_EXE_ORIGINAL='Kingdom Rush' APP_MAIN_EXE_FRONTIERS='Kingdom Rush Frontiers' APP_MAIN_EXE_ORIGINS='Kingdom Rush Origins' APP_MAIN_ICON='icon.png' PKG_MAIN_ARCH='64' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libfreetype.so.6 libgcc_s.so.1 libmodplug.so.1 libmpg123.so.0 libm.so.6 libogg.so.0 libopenal.so.1 libphysfs.so.1 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libstdc++.so.6 libtheoradec.so.1 libvorbisfile.so.3 libvorbis.so.0 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run 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-little-inferno-expansions.sh0000750000000000000000000000342114471751340017273 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Little Inferno expansions: # - Ho Ho Holiday # send your bug reports to vv221@dotslashplay.it ### script_version=20241227.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='little-inferno' GAME_NAME='Little Inferno' EXPANSION_ID_HOHOHOLIDAY='ho-ho-holiday' EXPANSION_NAME_HOHOHOLIDAY='Ho Ho Holiday' # Archives ## Ho Ho Holiday ARCHIVE_BASE_HOHOHOLIDAY_0_NAME='LittleInfernoHoHoHoliday-Linux-2022-12-07.sh' ARCHIVE_BASE_HOHOHOLIDAY_0_MD5='7124105953b1a899f239a0fdbd492458' ARCHIVE_BASE_HOHOHOLIDAY_0_SIZE='381' ARCHIVE_BASE_HOHOHOLIDAY_0_VERSION='1.0-humble.2022.12.07' ARCHIVE_BASE_HOHOHOLIDAY_0_URL='http://tomorrowcorporation.com/littleinferno#hohoholiday' CONTENT_PATH_DEFAULT='data/noarch' CONTENT_GAME_MAIN_FILES=' .tcgame-4097.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-little-inferno.sh0000750000000000000000000001155714471751340015117 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 VA # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Little Inferno # send your bug reports to vv221@dotslashplay.it ### script_version=20250429.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='little-inferno' GAME_NAME='Little Inferno' ARCHIVE_BASE_HUMBLE_0_NAME='LittleInferno_Linux_v2.0.3.sh' ARCHIVE_BASE_HUMBLE_0_MD5='2d104de7966405f905d36bfbc7722808' ARCHIVE_BASE_HUMBLE_0_SIZE='274737' ARCHIVE_BASE_HUMBLE_0_VERSION='2.0.3-humble.2022.12.08' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/little-inferno' ARCHIVE_BASE_32BIT_HUMBLE_0_NAME='little-inferno_0_20130509-0ubuntu1_i386.deb' ARCHIVE_BASE_32BIT_HUMBLE_0_MD5='cd7eac96e33de3089c665915b1a7239c' ARCHIVE_BASE_32BIT_HUMBLE_0_SIZE='200000' ARCHIVE_BASE_32BIT_HUMBLE_0_VERSION='1.3.20130509-humble1' ARCHIVE_BASE_32BIT_GOG_0_NAME='gog_little_inferno_2.0.0.2.sh' ARCHIVE_BASE_32BIT_GOG_0_MD5='29375d30d03f12db44d09a1c32398d33' ARCHIVE_BASE_32BIT_GOG_0_SIZE='200000' ARCHIVE_BASE_32BIT_GOG_0_VERSION='1.3.20130509-gog2.0.0.2' ARCHIVE_BASE_32BIT_GOG_0_URL='https://www.gog.com/game/little_inferno' CONTENT_PATH_DEFAULT_HUMBLE='data' CONTENT_PATH_DEFAULT_32BIT_HUMBLE='opt/little-inferno' CONTENT_PATH_DEFAULT_32BIT_GOG='data/noarch/game' CONTENT_GAME_BIN64_RELATIVE_PATH_HUMBLE='x86_64' CONTENT_GAME_BIN64_FILES=' LittleInferno.bin.x86_64' CONTENT_GAME_BIN32_RELATIVE_PATH_HUMBLE='x86' CONTENT_GAME_BIN32_FILES=' LittleInferno.bin.x86' CONTENT_GAME_DATA_RELATIVE_PATH_HUMBLE='noarch' CONTENT_GAME_DATA_FILES=' shaders .tc-edition icon.png *.pak' CONTENT_DOC_DATA_RELATIVE_PATH_HUMBLE='noarch' CONTENT_DOC_DATA_FILES=' LICENSE.txt README.linux' ## Include shipped libvorbis.so.0 for game build 1.x, ## the game segfaults when using a system-provided library instead CONTENT_LIBS_BIN32_RELATIVE_PATH_32BIT='lib' CONTENT_LIBS_BIN32_FILES_32BIT=' libvorbis.so.0' ## When playing Little Inferno with Mesa, the game might be shown as a black screen or be full of black artifacts. ## Switching out of fullscreen then back to it with the F key might help in mitigating the rendering issues. ## A bug report has been sent to Mesa developers: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7903 ## TODO: Support for the Windows build should be provided as an alternative. APP_MAIN_EXE_BIN64='LittleInferno.bin.x86_64' APP_MAIN_EXE_BIN32='LittleInferno.bin.x86' APP_MAIN_ICON='noarch/icon.png' APP_MAIN_ICONS_LIST_32BIT_HUMBLE='APP_MAIN_ICON_HUMBLE_16 APP_MAIN_ICON_HUMBLE_32 APP_MAIN_ICON_HUMBLE_64 APP_MAIN_ICON_HUMBLE_128' APP_MAIN_ICON_HUMBLE_16='../../usr/share/icons/hicolor/16x16/apps/little-inferno.png' APP_MAIN_ICON_HUMBLE_32='../../usr/share/icons/hicolor/32x32/apps/little-inferno.png' APP_MAIN_ICON_HUMBLE_64='../../usr/share/icons/hicolor/64x64/apps/little-inferno.png' APP_MAIN_ICON_HUMBLE_128='../../usr/share/icons/hicolor/128x128/apps/little-inferno.png' APP_MAIN_ICONS_LIST_32BIT_GOG='APP_MAIN_ICON_GOG' APP_MAIN_ICON_GOG='../support/icon.png' PACKAGES_LIST=' PKG_BIN32 PKG_BIN64 PKG_DATA' PACKAGES_LIST_32BIT=' PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 libSDL2-2.0.so.0 libstdc++.so.6' PKG_BIN32_DEPENDENCIES_LIBRARIES_32BIT=' libc.so.6 libcurl.so.4 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libstdc++.so.6 libvorbis.so.0 libX11.so.6' ## Include shipped libvorbis.so.0 for game build 1.x, ## the game segfaults when using a system-provided library instead PKG_BIN32_DEPENDENCIES_LIBRARIES_32BIT="${PKG_BIN32_DEPENDENCIES_LIBRARIES_32BIT:-} libc.so.6 libm.so.6 libogg.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 the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers case "$(current_archive)" in ('ARCHIVE_BASE_32BIT_'*) ## Old 1.x builds provide a 32-bit binary only. launchers_generation 'PKG_BIN32' ;; (*) launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' ;; esac # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-loop-hero.sh0000750000000000000000000000756114471751340014070 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Loop Hero # send your bug reports to vv221@dotslashplay.it ### script_version=20250103.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='loop-hero' GAME_NAME='Loop Hero' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" # Archives ## Full game (gog.com) ARCHIVE_BASE_2_NAME='loop_hero_1_1054_55873.sh' ARCHIVE_BASE_2_MD5='28197c34cb00548770b6878f95f69b89' ARCHIVE_BASE_2_SIZE='220000' ARCHIVE_BASE_2_VERSION='1.1054-gog55873' ARCHIVE_BASE_2_URL='https://www.gog.com/game/loop_hero' ARCHIVE_BASE_1_NAME='loop_hero_1_105_50560.sh' ARCHIVE_BASE_1_MD5='7ce0680d3dc6d945b0db0e3719addb21' ARCHIVE_BASE_1_SIZE='160000' ARCHIVE_BASE_1_VERSION='1.105-gog50560' ARCHIVE_BASE_0_NAME='loop_hero_1_102_48813.sh' ARCHIVE_BASE_0_MD5='fc860d85d59d02360d2d6aeb57cc8538' ARCHIVE_BASE_0_SIZE='160000' ARCHIVE_BASE_0_VERSION='1.102-gog48813' ## Demo (itch.io) ARCHIVE_BASE_DEMO_0_NAME='LooPatHerO_demo_linux.zip' ARCHIVE_BASE_DEMO_0_MD5='8698b73828300da7a519b026cd85d4aa' ARCHIVE_BASE_DEMO_0_SIZE='23000' ARCHIVE_BASE_DEMO_0_VERSION='1.0-itch1' ARCHIVE_BASE_DEMO_0_URL='https://fourquarters.itch.io/loopathero-demo' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_PATH_DEFAULT_DEMO='.' CONTENT_GAME_BIN_FILES=' Loop_Hero' CONTENT_GAME_BIN_FILES_DEMO=' LooPatHerO' CONTENT_GAME_DATA_FILES=' assets/*.dat assets/*.ini assets/*.png assets/*.unx assets/fonts assets/local' APP_MAIN_EXE='Loop_Hero' ## The demo crashes on launch. ## ## Thread 1 "LooPatHerO" received signal SIGFPE, Arithmetic exception. ## ## gdb trace: ## #0 0x000000000064bf80 in ?? () ## #1 0x000000000064be69 in ?? () ## #2 0x000000000064b80f in ?? () ## #3 0x000000000072db2e in ?? () ## #4 0x0000000000744415 in ?? () ## #5 0x00000000005ad6da in ?? () ## #6 0x00007ffff6efcc8a in __libc_start_call_main (main=main@entry=0x5acfc0, argc=argc@entry=1, argv=argv@entry=0x7fffffffde38) at ../sysdeps/nptl/libc_start_call_main.h:58 ## #7 0x00007ffff6efcd45 in __libc_start_main_impl (main=0x5acfc0, argc=1, argv=0x7fffffffde38, init=, fini=, rtld_fini=, stack_end=0x7fffffffde28) at ../csu/libc-start.c:360 ## #8 0x00000000004098ea in ?? () ## ## cf. https://forge.dotslashplay.it/vv221/games/-/issues/32 APP_MAIN_EXE_DEMO='LooPatHerO' APP_MAIN_ICON='assets/icon.png' ## Work around broken support for non-US locales APP_MAIN_PRERUN=' # Work around broken support for non-US locales export LC_NUMERIC=C ' 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_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-mask-of-the-rose-expansions.sh0000750000000000000000000000540114471751340017421 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Mask of the Rose expansions: # - The Murder Crow # send your bug reports to vv221@dotslashplay.it ### script_version=20241124.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='mask-of-the-rose' GAME_NAME='Mask of the Rose' EXPANSION_ID_CROW='murder-crow' EXPANSION_NAME_CROW='The Murder Crow' # Archives ## The Murder Crow ARCHIVE_BASE_CROW_5_NAME='mask_of_the_rose_the_murder_crow_1_6_1043_linux_70837.sh' ARCHIVE_BASE_CROW_5_MD5='1e492aad8f1b246055c485c924fb607b' ARCHIVE_BASE_CROW_5_SIZE='999' ARCHIVE_BASE_CROW_5_VERSION='1.6.1043-gog70837' ARCHIVE_BASE_CROW_4_NAME='mask_of_the_rose_the_murder_crow_1_6_1024_linux_70649.sh' ARCHIVE_BASE_CROW_4_MD5='f6b9cd36e7c57a775170d6953eeff7e2' ARCHIVE_BASE_CROW_4_SIZE='999' ARCHIVE_BASE_CROW_4_VERSION='1.6.1024-gog70649' ARCHIVE_BASE_CROW_3_NAME='mask_of_the_rose_the_murder_crow_1_5_943_linux_68850.sh' ARCHIVE_BASE_CROW_3_MD5='d528ab03cbfb76463b5c49774de1be0e' ARCHIVE_BASE_CROW_3_SIZE='1300' ARCHIVE_BASE_CROW_3_VERSION='1.5.943-gog68850' ARCHIVE_BASE_CROW_2_NAME='mask_of_the_rose_the_murder_crow_1_4_835_linux_66472.sh' ARCHIVE_BASE_CROW_2_MD5='1141e6eb61e618486cfe01d78bc2db90' ARCHIVE_BASE_CROW_2_SIZE='1300' ARCHIVE_BASE_CROW_2_VERSION='1.4.835-gog66472' ARCHIVE_BASE_CROW_1_NAME='mask_of_the_rose_the_murder_crow_1_3_765_linux_65488.sh' ARCHIVE_BASE_CROW_1_MD5='93ea92a56956663cd42b66ea9b04820a' ARCHIVE_BASE_CROW_1_SIZE='1300' ARCHIVE_BASE_CROW_1_VERSION='1.3.765-gog65488' ARCHIVE_BASE_CROW_0_NAME='mask_of_the_rose_the_murder_crow_1_2_666_linux_65143.sh' ARCHIVE_BASE_CROW_0_MD5='43b3b6e5025d8b2521f4d72c337aff3c' ARCHIVE_BASE_CROW_0_SIZE='1300' ARCHIVE_BASE_CROW_0_VERSION='1.2.666-gog65143' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' goggame-1879903382.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-mask-of-the-rose.sh0000750000000000000000000000656514471751340015250 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Mask of the Rose # send your bug reports to vv221@dotslashplay.it ### script_version=20250606.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='mask-of-the-rose' GAME_NAME='Mask of the Rose' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" # Archives ## Full game ARCHIVE_BASE_5_NAME='mask_of_the_rose_1_6_1043_linux_70837.sh' ARCHIVE_BASE_5_MD5='f7fc5f6adb0621cc0c3560658de3f372' ARCHIVE_BASE_5_SIZE='2674740' ARCHIVE_BASE_5_VERSION='1.6.1043-gog70837' ARCHIVE_BASE_5_URL='https://www.gog.com/game/mask_of_the_rose' ARCHIVE_BASE_4_NAME='mask_of_the_rose_1_6_1024_linux_70649.sh' ARCHIVE_BASE_4_MD5='6342815fe4de7b9e2998d6563e27ec6f' ARCHIVE_BASE_4_SIZE='2674723' ARCHIVE_BASE_4_VERSION='1.6.1024-gog70649' ARCHIVE_BASE_3_NAME='mask_of_the_rose_1_5_943_linux_68850.sh' ARCHIVE_BASE_3_MD5='950ad3b9a759c4c21fd31b155cb85f2c' ARCHIVE_BASE_3_SIZE='2676548' ARCHIVE_BASE_3_VERSION='1.5.943-gog68850' ARCHIVE_BASE_2_NAME='mask_of_the_rose_1_4_835_linux_66472.sh' ARCHIVE_BASE_2_MD5='2b132223cfe6558d100b1edc410be00a' ARCHIVE_BASE_2_SIZE='2700000' ARCHIVE_BASE_2_VERSION='1.4.835-gog66472' ARCHIVE_BASE_1_NAME='mask_of_the_rose_1_3_765_linux_65488.sh' ARCHIVE_BASE_1_MD5='d793ec177ee72e9ea04c025775896842' ARCHIVE_BASE_1_SIZE='2700000' ARCHIVE_BASE_1_VERSION='1.3.765-gog65488' ARCHIVE_BASE_0_NAME='mask_of_the_rose_1_2_666_linux_65143.sh' ARCHIVE_BASE_0_MD5='5c9b396ead2343237ff588f9ad784cff' ARCHIVE_BASE_0_SIZE='2700000' ARCHIVE_BASE_0_VERSION='1.2.666-gog65143' ## Demo ## This game demo is no longer available from GOG. ARCHIVE_BASE_DEMO_0_NAME='mask_of_the_rose_demo_0_1_94_56552.sh' ARCHIVE_BASE_DEMO_0_MD5='81da92a188178423523e0d1f1251e094' ARCHIVE_BASE_DEMO_0_SIZE='1500000' ARCHIVE_BASE_DEMO_0_VERSION='0.1.94-gog56552' UNITY3D_NAME='Mask of the Rose' UNITY3D_NAME_DEMO='Mask of the Rose Demo' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_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 ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Drop unused Unity3D plugins. rm --force --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-monkey-island-3.sh0000750000000000000000000001020314471751340015061 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Monkey Island 3 # send your bug reports to vv221@dotslashplay.it ### script_version=20250604.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='monkey-island-3' GAME_NAME='Monkey Island 3: The Curse of Monkey Island' ARCHIVE_BASE_EN_2_NAME='setup_the_curse_of_monkey_islandtm_1.0l_(20627).exe' ARCHIVE_BASE_EN_2_MD5='42de5e8ca7f26eb8350db318430d24a1' ARCHIVE_BASE_EN_2_TYPE='innosetup' ARCHIVE_BASE_EN_2_PART1_NAME='setup_the_curse_of_monkey_islandtm_1.0l_(20627)-1.bin' ARCHIVE_BASE_EN_2_PART1_MD5='1f89d0a37bd2e82361b11cff176daf90' ARCHIVE_BASE_EN_2_SIZE='1224692' ARCHIVE_BASE_EN_2_VERSION='1.0l-gog20627' ARCHIVE_BASE_EN_2_URL='https://www.gog.com/game/the_curse_of_monkey_island' ARCHIVE_BASE_FR_2_NAME='setup_the_curse_of_monkey_islandtm_1.0l_(french)_(20627).exe' ARCHIVE_BASE_FR_2_MD5='2999c1f94902ce2093347f4f53adb14f' ARCHIVE_BASE_FR_2_TYPE='innosetup' ARCHIVE_BASE_FR_2_PART1_NAME='setup_the_curse_of_monkey_islandtm_1.0l_(french)_(20627)-1.bin' ARCHIVE_BASE_FR_2_PART1_MD5='9431d663d5264b41e03118cdad24f217' ARCHIVE_BASE_FR_2_SIZE='1238398' ARCHIVE_BASE_FR_2_VERSION='1.0l-gog20627' ARCHIVE_BASE_FR_2_URL='https://www.gog.com/game/the_curse_of_monkey_island' ARCHIVE_BASE_EN_1_NAME='setup_the_curse_of_monkey_islandtm_1.0l_(20628).exe' ARCHIVE_BASE_EN_1_MD5='fcd4a7cd9c0304c15a0a059f6eb299e8' ARCHIVE_BASE_EN_1_TYPE='innosetup' ARCHIVE_BASE_EN_1_PART1_NAME='setup_the_curse_of_monkey_islandtm_1.0l_(20628)-1.bin' ARCHIVE_BASE_EN_1_PART1_MD5='931e6e35fdc7e0a14f2559984620f8f3' ARCHIVE_BASE_EN_1_SIZE='1200000' ARCHIVE_BASE_EN_1_VERSION='1.0l-gog20628' ARCHIVE_BASE_FR_1_NAME='setup_the_curse_of_monkey_islandtm_1.0l_(french)_(20628).exe' ARCHIVE_BASE_FR_1_MD5='a0ebaa26154de4a76d20b0ef882445cf' ARCHIVE_BASE_FR_1_TYPE='innosetup' ARCHIVE_BASE_FR_1_PART1_NAME='setup_the_curse_of_monkey_islandtm_1.0l_(french)_(20628)-1.bin' ARCHIVE_BASE_FR_1_PART1_MD5='10356610b119b917dbba13df9ed207a5' ARCHIVE_BASE_FR_1_SIZE='1200000' ARCHIVE_BASE_FR_1_VERSION='1.0l-gog20628' ARCHIVE_BASE_EN_0_NAME='setup_the_curse_of_monkey_island_1.0_(18253).exe' ARCHIVE_BASE_EN_0_MD5='20c74e5f60bd724182ec2bdbae6d9a49' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_SIZE='1200000' ARCHIVE_BASE_EN_0_VERSION='1.0-gog18253' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_EN_0='app' CONTENT_GAME_L10N_FILES=' resource/bbsan.san resource/curserng.san resource/finale.san resource/language.tab resource/lavaride.san resource/liftcrse.san resource/moreslaw.san resource/newboots.san resource/opening.san resource/sinkshp.san resource/voxdisk1.bun resource/voxdisk2.bun resource/wrecksan.san' CONTENT_GAME_MAIN_FILES=' comi.la? resource' CONTENT_DOC_L10N_FILES=' *.pdf' APP_MAIN_SCUMMID='scumm:comi' APP_MAIN_ICON='app/goggame-1528148981.ico' APP_MAIN_ICON_EN_0='goggame-1528148981.ico' PACKAGES_LIST=' PKG_L10N PKG_MAIN' PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_L10N_BASE' PKG_L10N_BASE_ID="${GAME_ID}-l10n" PKG_L10N_ID_EN="${PKG_L10N_BASE_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_BASE_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_BASE_ID" PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_MAIN' content_inclusion_default # Write launchers launchers_generation 'PKG_MAIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-monkey-island-4.sh0000750000000000000000000001326114471751340015071 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2020 macaron set -o errexit ### # Monkey Island 4 # send your bug reports to vv221@dotslashplay.it ### script_version=20250722.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='monkey-island-4' GAME_NAME='Monkey Island 4: Escape from Monkey Island' # Archives ## Monkey Island 4 (game installer) ARCHIVE_BASE_EN_0_NAME='setup_escape_from_monkey_islandtm_1.1_(20987).exe' ARCHIVE_BASE_EN_0_MD5='54978965b60294d5c1639b71c0a8159a' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_PART1_NAME='setup_escape_from_monkey_islandtm_1.1_(20987)-1.bin' ARCHIVE_BASE_EN_0_PART1_MD5='21bc4e362f73b76e6808649167ee9d20' ARCHIVE_BASE_EN_0_SIZE='1300000' ARCHIVE_BASE_EN_0_VERSION='1.1-gog20987' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/escape_from_monkey_island' ARCHIVE_BASE_FR_0_NAME='setup_escape_from_monkey_islandtm_1.1_(french)_(20987).exe' ARCHIVE_BASE_FR_0_MD5='5ca039d42d53ad7fe206b289abe15deb' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_PART1_NAME='setup_escape_from_monkey_islandtm_1.1_(french)_(20987)-1.bin' ARCHIVE_BASE_FR_0_PART1_MD5='c5bf233f09cca2a8e33d78d25cf58329' ARCHIVE_BASE_FR_0_SIZE='1300000' ARCHIVE_BASE_FR_0_VERSION='1.1-gog20987' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/escape_from_monkey_island' ## ScummVM patches ARCHIVE_REQUIRED_PATCH_EN_NAME='MonkeyUpdate.exe' ARCHIVE_REQUIRED_PATCH_EN_MD5='7c7dbd2349d49e382a2dea40bed448e0' ARCHIVE_REQUIRED_PATCH_EN_URL='https://downloads.scummvm.org/frs/extras/patches/' ARCHIVE_REQUIRED_PATCH_FR_NAME='MonkeyUpdate_FRA.exe' ARCHIVE_REQUIRED_PATCH_FR_MD5='cc5ff3bb8f78a0eb4b8e0feb9cdd2e87' ARCHIVE_REQUIRED_PATCH_FR_URL='https://downloads.scummvm.org/frs/extras/patches/' # Archives content CONTENT_PATH_DEFAULT='.' CONTENT_GAME_L10N_FILES=' movies art???.m4b i9n.m4b lip.m4b voice???.m4b' CONTENT_GAME_DATA_FILES=' textures local.m4b patch.m4b sfx.m4b' CONTENT_DOC_L10N_FILES=' *.pdf *.txt' ## WINE CONTENT_GAME_BIN_WINE_FILES=' mp3dec.asi binkw32.dll mss32.dll monkey.exe monkey4.exe syscheck.exe chorus.flt reverb3.flt sdelay.flt' CONTENT_GAME0_BIN_WINE_PATH='__support/save' CONTENT_GAME0_BIN_WINE_FILES=' saves' # Launchers ## ScummVM APP_SCUMMVM_SCUMMID='grim:monkey4' APP_SCUMMVM_ICON='monkey4.exe' ## WINE USER_PERSISTENT_DIRECTORIES=' saves' ## Silence a ShellCheck false positive ## SC1003 (info): Want to escape a single quote? echo 'This is how it'\''s done'. # shellcheck disable=SC1003 WINE_REGISTRY_INIT=' [HKEY_LOCAL_MACHINE\Software\LucasArts Entertainment Company LLC\Monkey4\Retail] "Install path"="C:\\'"${GAME_ID}"'"' WINE_VIRTUAL_DESKTOP='auto' APP_WINE_EXE='monkey4.exe' # Packages PACKAGES_LIST=' PKG_BIN_SCUMMVM PKG_BIN_WINE PKG_L10N PKG_DATA' PKG_BIN_BASE_ID="$GAME_ID" PKG_BIN_PROVIDES=" $PKG_BIN_BASE_ID" ## A dependency on the language-specific variant of the localization package is set, ## not on the common name provided by both variants of this package. PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_L10N_BASE_ID="${GAME_ID}-l10n" PKG_L10N_ID_EN="${PKG_L10N_BASE_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_BASE_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_BASE_ID" PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' ## ScummVM PKG_BIN_SCUMMVM_BASE_ID="${PKG_BIN_BASE_ID}-scummvm" PKG_BIN_SCUMMVM_ID_EN="${PKG_BIN_SCUMMVM_BASE_ID}-en" PKG_BIN_SCUMMVM_ID_FR="${PKG_BIN_SCUMMVM_BASE_ID}-fr" PKG_BIN_SCUMMVM_PROVIDES="$PKG_BIN_BASE_PROVIDES" PKG_BIN_SCUMMVM_DESCRIPTION_EN='English version' PKG_BIN_SCUMMVM_DESCRIPTION_FR='French version' PKG_BIN_SCUMMVM_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" ## WINE PKG_BIN_WINE_ARCH='32' PKG_BIN_WINE_BASE_ID="${PKG_BIN_BASE_ID}-wine" PKG_BIN_WINE_ID_EN="${PKG_BIN_WINE_BASE_ID}-en" PKG_BIN_WINE_ID_FR="${PKG_BIN_WINE_BASE_ID}-fr" PKG_BIN_WINE_PROVIDES="$PKG_BIN_PROVIDES" PKG_BIN_WINE_DESCRIPTION_EN='English version' PKG_BIN_WINE_DESCRIPTION_FR='French version' PKG_BIN_WINE_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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 required extra archives case "$(current_archive)" in ('ARCHIVE_BASE_EN_'*) archive_initialize_required \ 'ARCHIVE_PATCH' \ 'ARCHIVE_REQUIRED_PATCH_EN' ;; ('ARCHIVE_BASE_FR_'*) archive_initialize_required \ 'ARCHIVE_PATCH' \ 'ARCHIVE_REQUIRED_PATCH_FR' ;; esac # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default ## ScummVM - Include required patch. install -D --mode=644 \ "$(archive_path 'ARCHIVE_PATCH')" \ "$(package_path 'PKG_BIN_SCUMMVM')$(path_game_data)/$(archive_name 'ARCHIVE_PATCH')" # Write launchers launchers_generation 'PKG_BIN_SCUMMVM' 'APP_SCUMMVM' launchers_generation 'PKG_BIN_WINE' 'APP_WINE' # Build packages packages_generation printf '\n' printf 'ScummVM:' print_instructions 'PKG_DATA' 'PKG_L10N' 'PKG_BIN_SCUMMVM' printf 'WINE:' print_instructions 'PKG_DATA' 'PKG_L10N' 'PKG_BIN_WINE' # Clean up working_directory_cleanup exit 0 games/play-monkey-island-special-edition.sh0000750000000000000000000001021614471751340017774 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 macaron # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Monkey Island Special Edition: # - Monkey Island 1 # - Monkey Island 2 # send your bug reports to vv221@dotslashplay.it ### script_version=20241121.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID_MONKEY1='monkey-island-1-special-edition' GAME_NAME_MONKEY1='Monkey Island 1 Special Edition: The Secret of Monkey Island' GAME_ID_MONKEY2='monkey-island-2-special-edition' GAME_NAME_MONKEY2='Monkey Island 2 Special Edition: LeChuckʼs Revenge' # Archives ## Monkey Island 1 ARCHIVE_BASE_MONKEY1_1_NAME='setup_the_secret_of_monkey_islandtm_special_edition_1.0_(18587).exe' ARCHIVE_BASE_MONKEY1_1_MD5='dc463e4d640e417df53684afb9921dd1' ARCHIVE_BASE_MONKEY1_1_TYPE='innosetup' ARCHIVE_BASE_MONKEY1_1_SIZE='2594611' ARCHIVE_BASE_MONKEY1_1_VERSION='1.0-gog18587' ARCHIVE_BASE_MONKEY1_1_URL='https://www.gog.com/game/the_secret_of_monkey_island_special_edition' ARCHIVE_BASE_MONKEY1_0_NAME='setup_monkey_island_1_se_1.0_(18587).exe' ARCHIVE_BASE_MONKEY1_0_MD5='ff2eaa21af8f59371583b007b439b873' ARCHIVE_BASE_MONKEY1_0_TYPE='innosetup' ARCHIVE_BASE_MONKEY1_0_PART1_NAME='setup_monkey_island_1_se_1.0_(18587)-1.bin' ARCHIVE_BASE_MONKEY1_0_PART1_MD5='6a3ca78328b99ae0d9d0a3d7a4fb3cd9' ARCHIVE_BASE_MONKEY1_0_SIZE='2600000' ARCHIVE_BASE_MONKEY1_0_VERSION='1.0-gog18587' ## Monkey Island 2 ARCHIVE_BASE_MONKEY2_0_NAME='setup_monkey_island2_se_2.0.0.10.exe' ARCHIVE_BASE_MONKEY2_0_MD5='20a0bc39dcf543856f0d463649c482c4' ARCHIVE_BASE_MONKEY2_0_TYPE='innosetup' ARCHIVE_BASE_MONKEY2_0_SIZE='2300000' ARCHIVE_BASE_MONKEY2_0_VERSION='1.0-gog2.0.0.10' ARCHIVE_BASE_MONKEY2_0_URL='https://www.gog.com/game/monkey_island_2_special_edition_lechucks_revenge' # Archive contents ## Monkey Island 1 CONTENT_PATH_DEFAULT_MONKEY1='.' CONTENT_PATH_DEFAULT_MONKEY1_0='app' CONTENT_GAME_BIN_FILES_MONKEY1=' mise.exe' CONTENT_GAME_DATA_FILES_MONKEY1=' audio localization monkey1.pak' CONTENT_DOC_DATA_FILES_MONKEY1=' *.pdf' ## Monkey Island 2 CONTENT_PATH_DEFAULT_MONKEY2='app' CONTENT_GAME_BIN_FILES_MONKEY2=' monkey2.exe lang.ini' CONTENT_GAME_DATA_FILES_MONKEY2=' audio ui monkey2.pak' USER_PERSISTENT_FILES_MONKEY2=' monkey2.bin' WINE_PERSISTENT_DIRECTORIES_MONKEY1=' users/${USER}/AppData/Roaming/LucasArts/The Secret of Monkey Island Special Edition' WINE_PERSISTENT_DIRECTORIES_MONKEY2=' users/${USER}/AppData/Roaming/LucasArts/Monkey Island 2 Special Edition' ## Native d3dcompiler_47 is required to prevent a crash on launch: ## ## 0024:err:d3dcompiler:D3DCompile2 Failed to compile shader, vkd3d result -4. ## 0024:err:d3dcompiler:D3DCompile2 Shader log: ## 0024:err:d3dcompiler:D3DCompile2 :7:1: E5000: syntax error, unexpected KW_SAMPLER_STATE ## 0024:err:d3dcompiler:D3DCompile2 ## ## (WINE 10.0) WINE_WINETRICKS_VERBS='d3dcompiler_47' APP_MAIN_EXE_MONKEY1='mise.exe' APP_MAIN_EXE_MONKEY2='monkey2.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' audioconvert audio/x-wma, wmaversion=(int)1' PKG_DATA_ID_MONKEY1="${GAME_ID_MONKEY1}-data" PKG_DATA_ID_MONKEY2="${GAME_ID_MONKEY2}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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-myst-scummvm.sh0000750000000000000000000003377514471751340014653 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2020 Fabien Givors set -o errexit ### # Myst series: # - Myst (Masterpiece Edition) # - Riven: The Sequel to Myst # - Myst 3: Exile # send your bug reports to vv221@dotslashplay.it ### script_version=20250628.3 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID_MYST1='myst-1' GAME_NAME_MYST1='Myst' GAME_ID_RIVEN='myst-2-riven' GAME_NAME_RIVEN='Riven: The Sequel to Myst' GAME_ID_EXILE='myst-3-exile' GAME_NAME_EXILE='Myst Ⅲ: Exile' # Archives ## Myst (Masterpiece Edition) ARCHIVE_BASE_MYST1_4_NAME='setup_myst_masterpiece_edition_2.0.5_(64bit)_(83079).exe' ARCHIVE_BASE_MYST1_4_MD5='3da8caf76c12e66fac4cedd945127c2e' ARCHIVE_BASE_MYST1_4_TYPE='innosetup' ARCHIVE_BASE_MYST1_4_SIZE='1885140' ARCHIVE_BASE_MYST1_4_VERSION='2.0.5-gog83079' ARCHIVE_BASE_MYST1_4_URL='https://www.gog.com/game/myst_masterpiece_edition' ARCHIVE_BASE_MYST1_3_NAME='setup_myst_masterpiece_edition_2.0.3_(64bit)_(82361).exe' ARCHIVE_BASE_MYST1_3_MD5='1c72d6dd734478aba521c8764449c94e' ARCHIVE_BASE_MYST1_3_TYPE='innosetup' ARCHIVE_BASE_MYST1_3_SIZE='1885314' ARCHIVE_BASE_MYST1_3_VERSION='2.0.3-gog82361' ARCHIVE_BASE_MYST1_2_NAME='setup_myst_masterpiece_edition_1.0_svm_update_4_(22597).exe' ARCHIVE_BASE_MYST1_2_MD5='cee43afef96ec781a18c578a1cc8bdcc' ARCHIVE_BASE_MYST1_2_TYPE='innosetup' ARCHIVE_BASE_MYST1_2_PART1_NAME='setup_myst_masterpiece_edition_1.0_svm_update_4_(22597)-1.bin' ARCHIVE_BASE_MYST1_2_PART1_MD5='1417de6ceaaaac67064529c3afab6792' ARCHIVE_BASE_MYST1_2_SIZE='1409531' ARCHIVE_BASE_MYST1_2_VERSION='1.0.4-gog22597' ARCHIVE_BASE_MYST1_1_NAME='setup_myst_masterpiece_edition_1.0_svm_update_4_(22598).exe' ARCHIVE_BASE_MYST1_1_MD5='e3c62eeb19abd2c9a947aee8300e995d' ARCHIVE_BASE_MYST1_1_TYPE='innosetup' ARCHIVE_BASE_MYST1_1_PART1_NAME='setup_myst_masterpiece_edition_1.0_svm_update_4_(22598)-1.bin' ARCHIVE_BASE_MYST1_1_PART1_MD5='4b84a68ec57e55bcc9b522c6333c669c' ARCHIVE_BASE_MYST1_1_SIZE='1500000' ARCHIVE_BASE_MYST1_1_VERSION='1.0.4-gog22598' ## Riven: The Sequel to Myst ARCHIVE_BASE_RIVEN_5_NAME='setup_riven_(1997)_2.0.5_(64bit)_(83079).exe' ARCHIVE_BASE_RIVEN_5_MD5='0c348854e43bdf6636521c1531bb8864' ARCHIVE_BASE_RIVEN_5_TYPE='innosetup' ARCHIVE_BASE_RIVEN_5_PART1_NAME='setup_riven_(1997)_2.0.5_(64bit)_(83079)-1.bin' ARCHIVE_BASE_RIVEN_5_PART1_MD5='1462cd4eaaccc833f640c10ddc3fc31e' ARCHIVE_BASE_RIVEN_5_PART2_NAME='setup_riven_(1997)_2.0.5_(64bit)_(83079)-2.bin' ARCHIVE_BASE_RIVEN_5_PART2_MD5='3fb3e2125a77c78d3bf76bd3b28f8684' ARCHIVE_BASE_RIVEN_5_SIZE='7402416' ARCHIVE_BASE_RIVEN_5_VERSION='2.0.5-gog83079' ARCHIVE_BASE_RIVEN_5_URL='https://www.gog.com/game/riven_the_sequel_to_myst' ARCHIVE_BASE_RIVEN_4_NAME='setup_riven_(1997)_2.0.3_(64bit)_(82361).exe' ARCHIVE_BASE_RIVEN_4_MD5='4cc4222f47dd95879c022a00b88a3265' ARCHIVE_BASE_RIVEN_4_TYPE='innosetup' ARCHIVE_BASE_RIVEN_4_PART1_NAME='setup_riven_(1997)_2.0.3_(64bit)_(82361)-1.bin' ARCHIVE_BASE_RIVEN_4_PART1_MD5='6d2287790cbbf147a37501be07f9d503' ARCHIVE_BASE_RIVEN_4_PART2_NAME='setup_riven_(1997)_2.0.3_(64bit)_(82361)-2.bin' ARCHIVE_BASE_RIVEN_4_PART2_MD5='0fb47e21468e9664a7d47b3b81200342' ARCHIVE_BASE_RIVEN_4_SIZE='7401427' ARCHIVE_BASE_RIVEN_4_VERSION='2.0.3-gog82361' ARCHIVE_BASE_RIVEN_3_NAME='setup_riven_(1997)_2.0.2_(64bit)_(82312).exe' ARCHIVE_BASE_RIVEN_3_MD5='22a6bb23b3ca1ae25fabc0e85c293519' ARCHIVE_BASE_RIVEN_3_TYPE='innosetup' ARCHIVE_BASE_RIVEN_3_PART1_NAME='setup_riven_(1997)_2.0.2_(64bit)_(82312)-1.bin' ARCHIVE_BASE_RIVEN_3_PART1_MD5='f04c236767db0f5fe4166afe01a7e811' ARCHIVE_BASE_RIVEN_3_PART2_NAME='setup_riven_(1997)_2.0.2_(64bit)_(82312)-2.bin' ARCHIVE_BASE_RIVEN_3_PART2_MD5='22ec68ce3002b0aaf7f637846aad975f' ARCHIVE_BASE_RIVEN_3_SIZE='7399203' ARCHIVE_BASE_RIVEN_3_VERSION='2.0.2-gog82312' ARCHIVE_BASE_RIVEN_2_NAME='setup_riven_-_the_sequel_to_myst_1.2_svm_no_launcher_(55114).exe' ARCHIVE_BASE_RIVEN_2_MD5='e3bb9372a059a7284b0dc02f39aba929' ARCHIVE_BASE_RIVEN_2_TYPE='innosetup' ARCHIVE_BASE_RIVEN_2_PART1_NAME='setup_riven_-_the_sequel_to_myst_1.2_svm_no_launcher_(55114)-1.bin' ARCHIVE_BASE_RIVEN_2_PART1_MD5='99921a49f1834af00e5f6dda7227d456' ARCHIVE_BASE_RIVEN_2_PART2_NAME='setup_riven_-_the_sequel_to_myst_1.2_svm_no_launcher_(55114)-2.bin' ARCHIVE_BASE_RIVEN_2_PART2_MD5='2db5912fc46865a8992cb32417674fca' ARCHIVE_BASE_RIVEN_2_SIZE='6946550' ARCHIVE_BASE_RIVEN_2_VERSION='1.2-gog55114' ARCHIVE_BASE_RIVEN_1_NAME='setup_riven_-_the_sequel_to_myst_1.2_svm_no_launcher_(55114).exe' ARCHIVE_BASE_RIVEN_1_MD5='879b8aaa724f4f422661634186ee2534' ARCHIVE_BASE_RIVEN_1_TYPE='innosetup' ARCHIVE_BASE_RIVEN_1_PART1_NAME='setup_riven_-_the_sequel_to_myst_1.2_svm_no_launcher_(55114)-1.bin' ARCHIVE_BASE_RIVEN_1_PART1_MD5='dd91f1256d819d6f26d9d0bcaa81548f' ARCHIVE_BASE_RIVEN_1_PART2_NAME='setup_riven_-_the_sequel_to_myst_1.2_svm_no_launcher_(55114)-2.bin' ARCHIVE_BASE_RIVEN_1_PART2_MD5='2d03d82b784666472e1a3f436ed20924' ARCHIVE_BASE_RIVEN_1_SIZE='6947081' ARCHIVE_BASE_RIVEN_1_VERSION='1.2-gog55114' ARCHIVE_BASE_RIVEN_0_NAME='setup_riven_-_the_sequel_to_myst_1.2_svm_update3_(22594).exe' ARCHIVE_BASE_RIVEN_0_MD5='0520fac1f2ae966aa5c490850b51930f' ARCHIVE_BASE_RIVEN_0_TYPE='innosetup' ARCHIVE_BASE_RIVEN_0_PART1_NAME='setup_riven_-_the_sequel_to_myst_1.2_svm_update3_(22594)-1.bin' ARCHIVE_BASE_RIVEN_0_PART1_MD5='4ee339ad50203020e717a78ff95bb590' ARCHIVE_BASE_RIVEN_0_PART2_NAME='setup_riven_-_the_sequel_to_myst_1.2_svm_update3_(22594)-2.bin' ARCHIVE_BASE_RIVEN_0_PART2_MD5='2ff2d7d25f2e8c2995c17d8b122d672c' ARCHIVE_BASE_RIVEN_0_SIZE='6954413' ARCHIVE_BASE_RIVEN_0_VERSION='1.2-gog22594' ## Myst 3: Exile ARCHIVE_BASE_EXILE_2_NAME='setup_myst_iii_exile_2.0.5_(64bit)_(83079).exe' ARCHIVE_BASE_EXILE_2_MD5='596d1683253f8c2111b20d23e8c320ed' ARCHIVE_BASE_EXILE_2_TYPE='innosetup' ARCHIVE_BASE_EXILE_2_PART1_NAME='setup_myst_iii_exile_2.0.5_(64bit)_(83079)-1.bin' ARCHIVE_BASE_EXILE_2_PART1_MD5='d0e247e34be60a4040653193a586b394' ARCHIVE_BASE_EXILE_2_SIZE='2946948' ARCHIVE_BASE_EXILE_2_VERSION='2.0.5-gog83079' ARCHIVE_BASE_EXILE_2_URL='https://www.gog.com/game/myst_3_exile' ARCHIVE_BASE_EXILE_1_NAME='setup_myst_iii_exile_2.0.3_(64bit)_(82361).exe' ARCHIVE_BASE_EXILE_1_MD5='fed3b0b13eee6fa6969c5235bdab122f' ARCHIVE_BASE_EXILE_1_TYPE='innosetup' ARCHIVE_BASE_EXILE_1_PART1_NAME='setup_myst_iii_exile_2.0.3_(64bit)_(82361)-1.bin' ARCHIVE_BASE_EXILE_1_PART1_MD5='d3c1bd80c58b50345fd9ab84e98374e5' ARCHIVE_BASE_EXILE_1_SIZE='2947141' ARCHIVE_BASE_EXILE_1_VERSION='2.0.3-gog82361' ARCHIVE_BASE_EXILE_0_NAME='setup_myst_3_exile_1.27_rvm_(21807).exe' ARCHIVE_BASE_EXILE_0_MD5='e2b8e962326b8802009d3e30b9e4c8ff' ARCHIVE_BASE_EXILE_0_TYPE='innosetup' ARCHIVE_BASE_EXILE_0_PART1_NAME='setup_myst_3_exile_1.27_rvm_(21807)-1.bin' ARCHIVE_BASE_EXILE_0_PART1_MD5='c69e2780274f2830ab210d230889e5bb' ARCHIVE_BASE_EXILE_0_SIZE='2422163' ARCHIVE_BASE_EXILE_0_VERSION='1.27-gog21807' # Archives content CONTENT_PATH_DEFAULT='.' ## Myst (Masterpiece Edition) CONTENT_GAME_MAIN_FILES_MYST1=' qtw/channel/holoalgh.mov qtw/channel/holoamth.mov qtw/channel/holoasir.mov qtw/channel/holosmsg.mov qtw/channel/monalgh.mov qtw/channel/monamth.mov qtw/channel/monasirs.mov qtw/channel/monsmsg.mov qtw/dunny/atr1nopg.mov qtw/dunny/atr1page.mov qtw/dunny/atrmidc2.mov qtw/dunny/atrus2.mov qtw/intro/broder.mov qtw/intro/intro.mov qtw/mech/holoon.mov qtw/myst/aextra.mov qtw/myst/alose.mov qtw/myst/apage1.mov qtw/myst/apage2.mov qtw/myst/apage3.mov qtw/myst/apage4.mov qtw/myst/apage5.mov qtw/myst/atrusbk1.mov qtw/myst/atrusbk2.mov qtw/myst/sextra.mov qtw/myst/slose.mov qtw/myst/spage1.mov qtw/myst/spage2.mov qtw/myst/spage3.mov qtw/myst/spage4.mov qtw/myst/spage5.mov qtw/myst/vltatrus.mov' CONTENT_GAME_MAIN_FR_PATH_MYST1='french' CONTENT_GAME_MAIN_FR_FILES_MYST1="$CONTENT_GAME_MAIN_FILES_MYST1" CONTENT_GAME_MAIN_EN_FILES_MYST1="$CONTENT_GAME_MAIN_FILES_MYST1" CONTENT_GAME0_MAIN_FR_FILES_MYST1=' channel_french.dat credits_french.dat help_french.dat mechan_french.dat myst_french.dat selen_french.dat stone_french.dat' CONTENT_GAME_COMMON_FILES_MYST1=' channel.dat credits.dat dunny.dat help.dat intro.dat mechan.dat menu.dat myst.dat selen.dat stone.dat qtw' CONTENT_DOC_COMMON_FILES_MYST1=' manual.pdf readme.txt' ## Riven: The Sequel to Myst CONTENT_GAME_MAIN_FR_FILES_RIVEN=' b_data_french.mhk j_data_french.mhk o_data_french.mhk p_data_french.mhk r_data_french.mhk t_data_french.mhk' ## TODO: System-provided fonts should be used instead, ScummVM expects to find them in the game directory. CONTENT_FONTS_COMMON_FILES_RIVEN=' freesans.ttf mplus-2c-regular.ttf' CONTENT_GAME_COMMON_FILES_RIVEN=' riven.exe a_data.mhk b_data.mhk b2_data.mhk g_data.mhk j_data1.mhk j_data2.mhk o_data.mhk p_data.mhk r_data.mhk t_data1.mhk t_data2.mhk a_sounds.mhk b_sounds.mhk g_sounds.mhk j_sounds.mhk o_sounds.mhk p_sounds.mhk r_sounds.mhk t_sounds.mhk extras.mhk' ## The following localization files must be included, or ScummVM fails to detect the correct game version. CONTENT_GAME0_COMMON_FILES_RIVEN=' a_data_french.mhk a_data_german.mhk a_data_italian.mhk a_data_japanese.mhk a_data_polish.mhk a_data_russian.mhk a_data_spanish.mhk' CONTENT_DOC_COMMON_FILES_RIVEN=' manual.pdf readme.txt' ## Myst 3: Exile CONTENT_GAME_MAIN_FILES_EXILE=' data m3data' CONTENT_DOC_MAIN_FILES_EXILE=' manual.pdf' CONTENT_DOC_L10N_FILES_EXILE=' manual.pdf readme.txt' CONTENT_DOC_L10N_EN_RELATIVE_PATH_EXILE='myst iii english' CONTENT_DOC_L10N_EN_FILES_EXILE="$CONTENT_DOC_L10N_FILES_EXILE" CONTENT_DOC_L10N_FR_RELATIVE_PATH_EXILE='myst iii french' CONTENT_DOC_L10N_FR_FILES_EXILE="$CONTENT_DOC_L10N_FILES_EXILE" APP_MAIN_SCUMMID_MYST1='mohawk:myst' APP_MAIN_ICON_MYST1='app/goggame-1207658818.ico' APP_MAIN_OPTIONS_MAIN_EN_MYST1='--language=en' APP_MAIN_OPTIONS_MAIN_FR_MYST1='--language=fr' APP_MAIN_SCUMMID_RIVEN='mohawk:riven' APP_MAIN_ICON_RIVEN='riven.exe' APP_MAIN_ICON_RIVEN_WRESTOOL_OPTIONS='--type=14 --name=APPICON' APP_MAIN_OPTIONS_MAIN_EN_RIVEN='--language=en' APP_MAIN_OPTIONS_MAIN_FR_RIVEN='--language=fr' APP_MAIN_SCUMMID_EXILE='myst3:myst3' APP_MAIN_ICON_EXILE='myst iii english/m3.exe' APP_MAIN_ICON_EXILE_0='app/goggame-1766899243.ico' # Packages PACKAGES_LIST=' PKG_MAIN_EN PKG_MAIN_FR PKG_COMMON' ## Myst (Masterpiece Edition) PKG_MAIN_ID_MYST1="$GAME_ID_MYST1" PKG_MAIN_EN_ID_MYST1="${PKG_MAIN_ID_MYST1}-en" PKG_MAIN_FR_ID_MYST1="${PKG_MAIN_ID_MYST1}-fr" PKG_MAIN_PROVIDES_MYST1=" $PKG_MAIN_ID_MYST1" PKG_MAIN_EN_PROVIDES_MYST1="$PKG_MAIN_PROVIDES_MYST1" PKG_MAIN_FR_PROVIDES_MYST1="$PKG_MAIN_PROVIDES_MYST1" PKG_MAIN_EN_DESCRIPTION_MYST1='English localization' PKG_MAIN_EN_DESCRIPTION_MYST1='French localization' PKG_MAIN_DEPENDENCIES_SIBLINGS_MYST1=' PKG_COMMON' PKG_MAIN_EN_DEPENDENCIES_SIBLINGS_MYST1="$PKG_MAIN_DEPENDENCIES_SIBLINGS_MYST1" PKG_MAIN_FR_DEPENDENCIES_SIBLINGS_MYST1="$PKG_MAIN_DEPENDENCIES_SIBLINGS_MYST1" PKG_COMMON_ID_MYST1="${GAME_ID_MYST1}-common" PKG_COMMON_DESCRIPTION_MYST1='Common data' ## Riven: The Sequel to Myst PKG_MAIN_ID_RIVEN="$GAME_ID_RIVEN" PKG_MAIN_EN_ID_RIVEN="${PKG_MAIN_ID_RIVEN}-en" PKG_MAIN_FR_ID_RIVEN="${PKG_MAIN_ID_RIVEN}-fr" PKG_MAIN_PROVIDES_RIVEN=" $PKG_MAIN_ID_RIVEN" PKG_MAIN_EN_PROVIDES_RIVEN="$PKG_MAIN_PROVIDES_RIVEN" PKG_MAIN_FR_PROVIDES_RIVEN="$PKG_MAIN_PROVIDES_RIVEN" PKG_MAIN_EN_DESCRIPTION_RIVEN='English localization' PKG_MAIN_EN_DESCRIPTION_RIVEN='French localization' PKG_MAIN_DEPENDENCIES_SIBLINGS_RIVEN=' PKG_COMMON' PKG_MAIN_EN_DEPENDENCIES_SIBLINGS_RIVEN="$PKG_MAIN_DEPENDENCIES_SIBLINGS_RIVEN" PKG_MAIN_FR_DEPENDENCIES_SIBLINGS_RIVEN="$PKG_MAIN_DEPENDENCIES_SIBLINGS_RIVEN" PKG_COMMON_ID_RIVEN="${GAME_ID_RIVEN}-common" PKG_COMMON_DESCRIPTION_RIVEN='Common data' ## Ensure easy upgrades from packages generated with pre-20250114.1 game scripts PKG_COMMON_PROVIDES_RIVEN="${PKG_COMMON_PROVIDES_RIVEN:-} myst-2-riven-data" ## Myst 3: Exile PACKAGES_LIST_EXILE=' PKG_MAIN' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data case "$(current_archive)" in ('ARCHIVE_BASE_EXILE_'*) content_inclusion_icons content_inclusion 'DOC_L10N_EN' 'PKG_MAIN' "$(path_documentation)/en" content_inclusion 'DOC_L10N_FR' 'PKG_MAIN' "$(path_documentation)/fr" ;; (*) content_inclusion_icons 'PKG_COMMON' ;; esac content_inclusion_default ## Riven - Link the fonts in the hardcoded path the game engine expects. case "$(current_archive)" in ('ARCHIVE_BASE_RIVEN_'*) fonts_source=$(path_fonts_ttf) fonts_destination="$(package_path 'PKG_COMMON')$(path_game_data)" mkdir --parents "$fonts_destination" ln --symbolic --target-directory="$fonts_destination" \ "${fonts_source}/freesans.ttf" \ "${fonts_source}/mplus-2c-regular.ttf" ;; esac # Write launchers case "$(current_archive)" in ('ARCHIVE_BASE_EXILE_'*) launchers_generation ;; (*) APP_MAIN_OPTIONS_MAIN_EN=$(context_value 'APP_MAIN_OPTIONS_MAIN_EN') APP_MAIN_OPTIONS_MAIN_FR=$(context_value 'APP_MAIN_OPTIONS_MAIN_FR') launchers_generation 'PKG_MAIN_EN' launchers_generation 'PKG_MAIN_FR' ;; esac # Build packages packages_generation case "$(current_archive)" in ('ARCHIVE_BASE_EXILE_'*) print_instructions ;; (*) 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_MAIN_EN' 'PKG_COMMON' printf "$lang_string" "$lang_fr" print_instructions 'PKG_MAIN_FR' 'PKG_COMMON' ;; esac # Clean up working_directory_cleanup exit 0 games/play-near-mage-expansions.sh0000750000000000000000000000435714471751340016205 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2025 Antoine Le Gonidec set -o errexit ### # Near-Mage expansions: # - Clothes & Hair Pack # send your bug reports to vv221@dotslashplay.it ### script_version=20250623.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='near-mage' GAME_NAME='Near-Mage' EXPANSION_ID_CLOTHESANDHAIR='clothes-and-hair' EXPANSION_NAME_CLOTHESANDHAIR='Clothes & Hair Pack' ARCHIVE_BASE_CLOTHESANDHAIR_3_NAME='near_mage_clothes_hair_pack_1_1_4_83077.sh' ARCHIVE_BASE_CLOTHESANDHAIR_3_MD5='500cf750790e1e9d176fd1910d92f335' ARCHIVE_BASE_CLOTHESANDHAIR_3_SIZE='45829' ARCHIVE_BASE_CLOTHESANDHAIR_3_VERSION='1.1.4-gog83077' ARCHIVE_BASE_CLOTHESANDHAIR_3_URL='https://www.gog.com/game/nearmage_clothes_hair_pack' ARCHIVE_BASE_CLOTHESANDHAIR_1_NAME='near_mage_clothes_hair_pack_1_1_0c_82721.sh' ARCHIVE_BASE_CLOTHESANDHAIR_1_MD5='8bf42f8553c5715fbc88a64a37d539e0' ARCHIVE_BASE_CLOTHESANDHAIR_1_SIZE='45829' ARCHIVE_BASE_CLOTHESANDHAIR_1_VERSION='1.1.0c-gog82721' ARCHIVE_BASE_CLOTHESANDHAIR_0_NAME='near_mage_clothes_hair_pack_1_0_1_82443.sh' ARCHIVE_BASE_CLOTHESANDHAIR_0_MD5='d0cebff002280f7292af44d5be4b72cb' ARCHIVE_BASE_CLOTHESANDHAIR_0_SIZE='45829' ARCHIVE_BASE_CLOTHESANDHAIR_0_VERSION='1.0.1-gog82443' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' Near-Mage_Data' 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-near-mage.sh0000750000000000000000000000441314471751340014011 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2025 Antoine Le Gonidec set -o errexit ### # Near-Mage # send your bug reports to vv221@dotslashplay.it ### script_version=20250623.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='near-mage' GAME_NAME='Near-Mage' ARCHIVE_BASE_3_NAME='near_mage_1_1_4_83077.sh' ARCHIVE_BASE_3_MD5='61888c75eb3253b84081e67cda59830e' ARCHIVE_BASE_3_SIZE='9249571' ARCHIVE_BASE_3_VERSION='1.1.4-gog83077' ARCHIVE_BASE_3_URL='https://www.gog.com/game/nearmage' ARCHIVE_BASE_1_NAME='near_mage_1_1_0c_82721.sh' ARCHIVE_BASE_1_MD5='bc67408fced128913aff39f6065eeba7' ARCHIVE_BASE_1_SIZE='9249077' ARCHIVE_BASE_1_VERSION='1.1.0c-gog82721' ARCHIVE_BASE_0_NAME='near_mage_1_0_1_82443.sh' ARCHIVE_BASE_0_MD5='ccbb2228270b80e9a110419f0819d7f9' ARCHIVE_BASE_0_SIZE='9370785' ARCHIVE_BASE_0_VERSION='1.0.1-gog82443' UNITY3D_NAME='Near-Mage' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Prevent inclusion of shipped Steam library. 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-off-world-resource-base.sh0000750000000000000000000000515314471751340016613 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Off-World Resource Base # send your bug reports to vv221@dotslashplay.it ### script_version=20241229.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='off-world-resource-base' GAME_NAME='O.R.B.: Off-World Resource Base' ARCHIVE_BASE_0_NAME='setup_orb_2.0.0.5.exe' ARCHIVE_BASE_0_MD5='b1cab44f6fe398ed008dda23e1538c03' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='651435' ARCHIVE_BASE_0_VERSION='1.04-gog2.0.0.5' ARCHIVE_BASE_0_URL='https://www.gog.com/game/orb_offworld_resource_base' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' bobo.dat binkw32.dll c4dll-d.dll dbghelp.dll mss32.dll msvcrtd.dll msvcrt.dll orb.exe orbscenarioeditor.exe orbsetup.exe lensflares.ini netcolors.ini orb.ini orbsetup.ini *.asi *.flt *.m3d' CONTENT_GAME_DATA_FILES=' orbdata cdkey game.positions credits.txt *.bmp *.flg *.sup' CONTENT_DOC_DATA_FILES=' readme.txt scen_eula.txt *.pdf' ## The intro video and game menu fail to render ## unless a virtual desktop is used (WINE 9.0). WINE_VIRTUAL_DESKTOP='auto' APP_MAIN_EXE='orb.exe' APP_EDITOR_ID="${GAME_ID}-editor" APP_EDITOR_NAME="$GAME_NAME - Scenario editor" APP_EDITOR_EXE='orbscenarioeditor.exe' APP_SETUP_ID="${GAME_ID}-setup" APP_SETUP_NAME="$GAME_NAME - Settings" APP_SETUP_CAT='Settings' APP_SETUP_EXE='orbsetup.exe' USER_PERSISTENT_DIRECTORIES=' orbdata/players orbdata/scenarios' USER_PERSISTENT_FILES=' orb.ini orbdata/frontend/players.dat orbdata/language/current.lang' 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-oil-rush.sh0000750000000000000000000001046014471751340013716 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Oil Rush # send your bug reports to vv221@dotslashplay.it ### script_version=20250429.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='oil-rush' GAME_NAME='Oil Rush' ## This archive used to be provided by Humble Bundle, ## but it is no longer available for sale. ARCHIVE_BASE_0_NAME='OilRush_1.35_Linux_1370041755.run' ARCHIVE_BASE_0_MD5='5a38d0545a64e0d21ddfe4afc15253a8' ARCHIVE_BASE_0_SIZE='1351677' ARCHIVE_BASE_0_VERSION='1.35-humble1' CONTENT_PATH_DEFAULT='.' CONTENT_LIBS_BIN64_RELATIVE_PATH='bin' CONTENT_LIBS_BIN64_FILES=' libOilRush_x64.so libQtCoreUnigine_x64.so.4 libQtGuiUnigine_x64.so.4 libQtNetworkUnigine_x64.so.4 libQtWebKitUnigine_x64.so.4 libQtXmlUnigine_x64.so.4 libRakNet_x64.so libUnigine_x64.so' CONTENT_LIBS_BIN32_RELATIVE_PATH='bin' CONTENT_LIBS_BIN32_FILES=' libOilRush_x86.so libQtCoreUnigine_x86.so.4 libQtGuiUnigine_x86.so.4 libQtNetworkUnigine_x86.so.4 libQtWebKitUnigine_x86.so.4 libQtXmlUnigine_x86.so.4 libRakNet_x86.so libUnigine_x86.so' CONTENT_GAME_BIN64_FILES=' bin/launcher_x64 bin/OilRush_x64' CONTENT_GAME_BIN32_FILES=' bin/launcher_x86 bin/OilRush_x86' CONTENT_GAME_DATA_FILES=' data oilrush.cfg' CONTENT_DOC_DATA_PATH='documentation' CONTENT_DOC_DATA_FILES=' user_manual.pdf' USER_PERSISTENT_FILES=' oilrush.cfg data/launcher/launcher*.xml' APP_MAIN_EXE_BIN64='bin/launcher_x64' APP_MAIN_EXE_BIN32='bin/launcher_x86' APP_MAIN_OPTIONS='-config ../data/launcher/launcher.xml' APP_MAIN_ICON='data/launcher/oilrush.png' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXext.so.6 libXinerama.so.1 libXrandr.so.2 libXrender.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Set the execution bit on the game binaries chmod 755 'bin/OilRush_x86' 'bin/OilRush_x64' ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## Run the game binary from its parent directory game_exec_line() { local application application="$1" local application_exe application_options application_exe=$(application_exe "$application") application_options=$(application_options "$application") cat <<- EOF cd "$(dirname "$application_exe")" "./$(basename "$application_exe")" $application_options "\$@" EOF } ## Copy the real game binary into the game prefix. ## (bin/OilRush_x64 instead of bin/launcher_x64) native_launcher_binary_copy() { cat <<- 'EOF' # Copy the game binary into the user prefix exe_destination="${PATH_PREFIX}/bin/OilRush_x64" if [ -h "$exe_destination" ]; then exe_source=$(realpath "$exe_destination") cp --remove-destination "$exe_source" "$exe_destination" fi unset exe_destination exe_source EOF } launchers_generation 'PKG_BIN64' ## Copy the real game binary into the game prefix. ## (bin/OilRush_x86 instead of bin/launcher_x86) native_launcher_binary_copy() { cat <<- 'EOF' # Copy the game binary into the user prefix exe_destination="${PATH_PREFIX}/bin/OilRush_x86" if [ -h "$exe_destination" ]; then exe_source=$(realpath "$exe_destination") cp --remove-destination "$exe_source" "$exe_destination" fi unset exe_destination exe_source EOF } launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-old-skies.sh0000750000000000000000000000633614471751340014055 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2025 Antoine Le Gonidec set -o errexit ### # Old Skies # send your bug reports to vv221@dotslashplay.it ### script_version=20250611.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='old-skies' GAME_NAME='Old Skies' ARCHIVE_BASE_0_NAME='old_skies_v2_0a_82221.sh' ARCHIVE_BASE_0_MD5='ccc4e578bf71a86a70dca8b4c12bab73' ARCHIVE_BASE_0_SIZE='4406691' ARCHIVE_BASE_0_VERSION='2.0a-gog82221' ARCHIVE_BASE_0_URL='https://www.gog.com/game/old_skies' ## Optional icons pack ARCHIVE_OPTIONAL_ICONS_NAME='old-skies_icons.tar.xz' ARCHIVE_OPTIONAL_ICONS_MD5='6994d258c4a03bc48a91b89e515dca9c' ARCHIVE_OPTIONAL_ICONS_URL='https://downloads.dotslashplay.it/games/old-skies/' CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 16x16 32x32 48x48 64x64 128x128 256x256' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_AGS_RELATIVE_PATH='lib64' CONTENT_LIBS_BIN_AGS_FILES=' alleg-sdl2digi.so libagscontrollerpulp.so libagsshell.so' CONTENT_GAME_MAIN_FILES=' OldSkies.ags acsetup.cfg vernum.osk winsetup *.vox' CONTENT_GAME_BIN_AGS_FILES=' ags64' CONTENT_DOC_MAIN_FILES=' licenses' APP_MAIN_ICON='../support/icon.png' ## Dedicated Old Skies support is not available from ScummVM 2.9.1. APP_SCUMMVM_SCUMMID='ags:ags' ## With ScummVM 2.9.1 animation is slowed down, ## support for the shipped engine is provided as a workaround. APP_AGS_EXE='ags64' PACKAGES_LIST=' PKG_MAIN PKG_BIN_SCUMMVM PKG_BIN_AGS' PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_BIN' PKG_BIN_ID="${GAME_ID}-bin" PKG_BIN_PROVIDES=" $PKG_BIN_ID" PKG_BIN_SCUMMVM_ID="${PKG_BIN_ID}-scummvm" PKG_BIN_SCUMMVM_PROVIDES="$PKG_BIN_PROVIDES" PKG_BIN_SCUMMVM_DESCRIPTION='Run with ScummVM' PKG_BIN_AGS_ID="${PKG_BIN_ID}-ags" PKG_BIN_AGS_PROVIDES="$PKG_BIN_PROVIDES" PKG_BIN_AGS_DESCRIPTION='Run with shipped AGS binaries' PKG_BIN_AGS_ARCH='64' PKG_BIN_AGS_DEPENDENCIES_LIBRARIES=' alleg-alsadigi.so alleg-alsamidi.so libaldmb.so.1 liballeg.so.4.4 libc.so.6 libdl.so.2 libdumb.so.1 libgcc_s.so.1 libm.so.6 libogg.so.0 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libstdc++.so.6 libtheora.so.0 libvorbis.so.0' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # 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_MAIN' 'APP_MAIN' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN_SCUMMVM' 'APP_SCUMMVM' launchers_generation 'PKG_BIN_AGS' 'APP_AGS' # Build packages packages_generation printf '\n' printf 'ScummVM:' print_instructions 'PKG_MAIN' 'PKG_BIN_SCUMMVM' printf 'Adventure Game Studio:' print_instructions 'PKG_MAIN' 'PKG_BIN_AGS' # Clean up working_directory_cleanup exit 0 games/play-orwell-series.sh0000750000000000000000000001132214471751340014746 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Orwell series: # - Orwell: Keeping an Eye on You # - Orwell: Ignorance is Strength # send your bug reports to vv221@dotslashplay.it ### script_version=20250331.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID_ORWELL1='orwell-1' GAME_NAME_ORWELL1='Orwell: Keeping an Eye on You' GAME_ID_ORWELL2='orwell-2' GAME_NAME_ORWELL2='Orwell: Ignorance is Strength' # Archives ## Orwell: Keeping an Eye on You ARCHIVE_BASE_ORWELL1_ITCH_0_NAME='orwell_eye_v1_4_9208_linux_drm_free.zip' ARCHIVE_BASE_ORWELL1_ITCH_0_MD5='225102f2ba1d765efc47f44834aa72c9' ARCHIVE_BASE_ORWELL1_ITCH_0_SIZE='647393' ARCHIVE_BASE_ORWELL1_ITCH_0_VERSION='1.4.9208-itch.2025.03.27' ARCHIVE_BASE_ORWELL1_ITCH_0_URL='https://osmoticstudios.itch.io/orwell-keeping-an-eye-on-you' ARCHIVE_BASE_ORWELL1_GOG_3_NAME='orwell_1_4_9208_80802.sh' ARCHIVE_BASE_ORWELL1_GOG_3_MD5='d2e4e194d5f1eed3d02fe5466e534a89' ARCHIVE_BASE_ORWELL1_GOG_3_SIZE='648793' ARCHIVE_BASE_ORWELL1_GOG_3_VERSION='1.4.9208-gog80802' ARCHIVE_BASE_ORWELL1_GOG_3_URL='https://www.gog.com/game/orwell' ARCHIVE_BASE_ORWELL1_GOG_2_NAME='orwell_1_4_7424_39231.sh' ARCHIVE_BASE_ORWELL1_GOG_2_MD5='8ac1915d9de7532717730b7f33a544b9' ARCHIVE_BASE_ORWELL1_GOG_2_SIZE='570000' ARCHIVE_BASE_ORWELL1_GOG_2_VERSION='1.4.7424-gog39231' ARCHIVE_BASE_ORWELL1_GOG_2_URL='https://www.gog.com/game/orwell' ARCHIVE_BASE_ORWELL1_GOG_1_NAME='orwell_en_1_21_21014.sh' ARCHIVE_BASE_ORWELL1_GOG_1_MD5='8fcd84cd3989175d1da377c78e1b4ff2' ARCHIVE_BASE_ORWELL1_GOG_1_SIZE='360000' ARCHIVE_BASE_ORWELL1_GOG_1_VERSION='1.21-gog21014' ARCHIVE_BASE_ORWELL1_GOG_0_NAME='gog_orwell_2.0.0.1.sh' ARCHIVE_BASE_ORWELL1_GOG_0_MD5='471470546952015fce024bdcb5431a07' ARCHIVE_BASE_ORWELL1_GOG_0_SIZE='630000' ARCHIVE_BASE_ORWELL1_GOG_0_VERSION='1.1-gog2.0.0.1' ### Optional icons pack ARCHIVE_OPTIONAL_ICONS_NAME_ORWELL1='orwell-1_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5_ORWELL1='acb6711e5f6b26828097b2828f74e522' ARCHIVE_OPTIONAL_ICONS_URL_ORWELL1='https://downloads.dotslashplay.it/games/orwell-1/' CONTENT_ICONS_PATH_ORWELL1='.' CONTENT_ICONS_FILES_ORWELL1=' 128x128' ## Orwell: Ignorance is Strength ARCHIVE_BASE_ORWELL2_1_NAME='orwell_ignorance_is_strength_en_1_1_6771_23686_22333.sh' ARCHIVE_BASE_ORWELL2_1_MD5='a69fb6e02fdce982cb3a56b2b32a70e6' ARCHIVE_BASE_ORWELL2_1_SIZE='730000' ARCHIVE_BASE_ORWELL2_1_VERSION='1.1.6771-gog22333' ARCHIVE_BASE_ORWELL2_1_URL='https://www.gog.com/game/orwell_ignorance_is_strength' ARCHIVE_BASE_ORWELL2_0_NAME='orwell_ignorance_is_strength_en_1_11_21014.sh' ARCHIVE_BASE_ORWELL2_0_MD5='3d50e953ad7029ac9a292bcc9b137426' ARCHIVE_BASE_ORWELL2_0_SIZE='730000' ARCHIVE_BASE_ORWELL2_0_VERSION='1.1.6717-gog21014' UNITY3D_NAME_ORWELL1='Orwell' UNITY3D_NAME_ORWELL2='Ignorance' UNITY3D_PLUGINS_ORWELL1=' ScreenSelector.so' CONTENT_PATH_DEFAULT_ORWELL1_ITCH='.' CONTENT_PATH_DEFAULT_ORWELL1_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_ORWELL2='data/noarch/game' CONTENT_DOC_DATA_FILES=' *.txt' ## Both games use the same path. FAKE_HOME_PERSISTENT_DIRECTORIES=' My Games/Orwell' ## Orwell 1 - The original game icon is not provided by installers for Orwell 1.4. ## Other archives can use the default icon path for Unity3D games. APP_MAIN_ICON_ORWELL1_GOG_3='../support/icon.png' APP_MAIN_ICON_ORWELL1_GOG_2='../support/icon.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 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_ORWELL1="${GAME_ID_ORWELL1}-data" PKG_DATA_ID_ORWELL2="${GAME_ID_ORWELL2}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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-painkiller.sh0000750000000000000000000000574214471751340014315 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Painkiller # send your bug reports to vv221@dotslashplay.it ### script_version=20241227.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='painkiller' GAME_NAME='Painkiller' ARCHIVE_BASE_EN_0_NAME='setup_painkiller_black_1.64_lang_update_(24538).exe' ARCHIVE_BASE_EN_0_MD5='328381c6d874b5c6822cdcf596b6c00e' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_PART1_NAME='setup_painkiller_black_1.64_lang_update_(24538)-1.bin' ARCHIVE_BASE_EN_0_PART1_MD5='26cf8f833c5b75efb006eac0e731a0af' ARCHIVE_BASE_EN_0_SIZE='3934610' ARCHIVE_BASE_EN_0_VERSION='1.6.4-gog24538' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/painkiller' ARCHIVE_BASE_FR_0_NAME='setup_painkiller_black_1.64_lang_update_(french)_(24538).exe' ARCHIVE_BASE_FR_0_MD5='9a4301af374c500ac7d00b5e7ad70b65' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_PART1_NAME='setup_painkiller_black_1.64_lang_update_(french)_(24538)-1.bin' ARCHIVE_BASE_FR_0_PART1_MD5='09e9614cadf2973ead1f826c24ebf2fe' ARCHIVE_BASE_FR_0_SIZE='3612122' ARCHIVE_BASE_FR_0_VERSION='1.6.0-gog24538' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/painkiller' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' bin/miles bin/*.dll bin/*.exe bin/*.ini' CONTENT_GAME_MOVIES_FILES=' data/movies' CONTENT_GAME_DATA_FILES=' data/models data/music data/*.pak data/*.pkm' CONTENT_DOC_DATA_RELATIVE_PATH='docs' CONTENT_DOC_DATA_FILES=' *.pdf *.txt' USER_PERSISTENT_DIRECTORIES=' savegames' USER_PERSISTENT_FILES=' bin/config.ini' APP_MAIN_EXE='bin/painkiller.exe' APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=128' PACKAGES_LIST=' PKG_BIN PKG_MOVIES PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_MOVIES PKG_DATA' PKG_MOVIES_ID="${GAME_ID}-movies" PKG_MOVIES_ID_EN="${PKG_MOVIES_ID}-en" PKG_MOVIES_ID_FR="${PKG_MOVIES_ID}-fr" PKG_MOVIES_PROVIDES=" $PKG_MOVIES_ID" PKG_MOVIES_DESCRIPTION_EN='English movies' PKG_MOVIES_DESCRIPTION_FR='French movies' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run 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-pandora-first-contact.sh0000750000000000000000000000626214471751340016363 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Pandora: First Contact # send your bug reports to vv221@dotslashplay.it ### script_version=20250104.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='pandora-first-contact' GAME_NAME='Pandora: First Contact' ARCHIVE_BASE_0_NAME='pandora_first_contact_en_1_6_7_16815.sh' ARCHIVE_BASE_0_MD5='0d9343d1693fc561823811a0cd3e279c' ARCHIVE_BASE_0_SIZE='720000' ARCHIVE_BASE_0_VERSION='1.6.7-gog16815' ARCHIVE_BASE_0_URL='https://www.gog.com/game/pandora' ## Optional icons pack ARCHIVE_OPTIONAL_ICONS_NAME='pandora-first-contact_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5='66b1d99166b738b2130449a49b9cd58c' ARCHIVE_OPTIONAL_ICONS_URL='https://downloads.dotslashplay.it/resources/pandora-first-contact/' CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 256x256' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_RELATIVE_PATH='Binaries' CONTENT_LIBS_BIN_FILES=' libavcodec.so.53 libavformat.so.53 libavutil.so.51 libboost_date_time.so.1.58.0 libboost_filesystem.so.1.58.0 libboost_locale.so.1.58.0 libboost_regex.so.1.58.0 libboost_system.so.1.58.0 libboost_thread.so.1.58.0 libGLEW.so.1.6 libjpeg.so.8 libpng15.so.15 libswscale.so.2' CONTENT_GAME_BIN_FILES=' Binaries/Pandora.bin Binaries/PandoraServer.bin' CONTENT_GAME_DATA_FILES=' Data' CONTENT_DOC_DATA_RELATIVE_PATH='Documents' CONTENT_DOC_DATA_FILES=' Dutch English French German Italian Licenses PandoraWebsite.url' APP_MAIN_EXE='Binaries/Pandora.bin' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libbz2.so.1 libc.so.6 libcurl.so.4 libfreetype.so.6 libgcc_s.so.1 libglfw.so.3 libGL.so.1 libGLU.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libstdc++.so.6 libvorbisfile.so.3 libX11.so.6 libXi.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)" # Set the required execution permissions on the server binary chmod 755 'Binaries/PandoraServer.bin' ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## Run the game binary from its parent directory game_exec_line() { cat <<- 'EOF' cd Binaries ./Pandora.bin "$@" EOF } launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-pharaoh.sh0000750000000000000000000001703214471751340013600 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2015 Antoine Le Gonidec set -o errexit ### # Pharaoh # send your bug reports to vv221@dotslashplay.it ### script_version=20250713.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='pharaoh' GAME_NAME='Pharaoh' # Archives ## Pharaoh + Cleopatra ARCHIVE_BASE_0_NAME='setup_pharaoh_gold_2.1.0.15.exe' ARCHIVE_BASE_0_MD5='62298f00f1f2268c8d5004f5b2e9fc93' ## innoextract --lowercase option should not be used, or Akhenaten will fail to find some required files. ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS=' ' ARCHIVE_BASE_0_SIZE='804849' ARCHIVE_BASE_0_VERSION='2.1-gog2.1.0.15' ARCHIVE_BASE_0_URL='https://www.gog.com/game/pharaoh_cleopatra' ## Akhenaten ## cf. https://github.com/dalerank/Akhenaten ### release 1466 (0.2.5) ### WARNING: This build crashes on launch with the following trace: ### ### #0 0x000055d27448a432 in sig_handler at /home/runner/work/Akhenaten/Akhenaten/src/core/log.cpp:77:49 ### #1 0x00007f4f3c3c0def at /lib/x86_64-linux-gnu/libc.so.6 ### #2 0x00007f4f3c41595c in __pthread_kill_implementation at ./nptl/pthread_kill.c:44:76 ### #3 0x00007f4f3c3c0cc1 in __GI_raise at ./signal/../sysdeps/posix/raise.c:26:13 ### #4 0x00007f4f3c3a94ab in __GI_abort at ./stdlib/abort.c:73:3 ### #5 0x00007f4f3c3aa290 in __libc_message_impl at ./libio/../sysdeps/posix/libc_fatal.c:134:3 ### #6 0x00007f4f3c49c994 in __GI___fortify_fail at ./debug/fortify_fail.c:24:3 ### #7 0x00007f4f3c49c39f in __GI___chk_fail at ./debug/chk_fail.c:28:3 ### #8 0x00007f4f3c49d9a3 in __realpath_chk at ./debug/realpath_chk.c:30:5 ### #9 (inlined) in realpath at /usr/include/x86_64-linux-gnu/bits/stdlib.h:48:25 ### 46: size_t __sz = __glibc_objsize (__resolved); ### 47: ### 48: if (__sz == (size_t) -1) ### 49: return __realpath_alias (__name, __resolved); ### #10 0x000055d274711185 in js_vm_get_absolute_path(bstring<256ul>) at /home/runner/work/Akhenaten/Akhenaten/src/js/js.cpp:280:21 ### #11 0x000055d2747114d7 in js_vm_load_file_and_exec(char const*) at /home/runner/work/Akhenaten/Akhenaten/src/js/js.cpp:71:40 ### #12 0x000055d2747118af in js_reset_vm_state() at /home/runner/work/Akhenaten/Akhenaten/src/js/js.cpp:248:38 ### #13 0x000055d274711a12 in js_vm_setup() at /home/runner/work/Akhenaten/Akhenaten/src/js/js.cpp:302:22 ### #14 0x000055d27446d0aa in setup at /home/runner/work/Akhenaten/Akhenaten/src/platform/akhenaten.cpp:408:16 ### #15 0x000055d27443a78f in main at /home/runner/work/Akhenaten/Akhenaten/src/platform/akhenaten.cpp:628:10 ### #16 0x00007f4f3c3aaca7 in __libc_start_call_main at ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16 ### #17 0x00007f4f3c3aad64 in __libc_start_main_impl at ./csu/../csu/libc-start.c:360:3 ### #18 0x000055d27446c0b4 at (…)/akhenaten.linux ARCHIVE_OPTIONAL_AKHENATEN_4_NAME='akhenaten.linux' ARCHIVE_OPTIONAL_AKHENATEN_4_MD5='a7e38f4e0863065754817285e193752b' ARCHIVE_OPTIONAL_AKHENATEN_4_SIZE='126251' ARCHIVE_OPTIONAL_AKHENATEN_4_URL='https://dalerank.itch.io/akhenaten' ### release 1036 ARCHIVE_OPTIONAL_AKHENATEN_3_NAME='akhenaten.linux' ARCHIVE_OPTIONAL_AKHENATEN_3_MD5='d35934a08420b82d55ed41405d5bea61' ARCHIVE_OPTIONAL_AKHENATEN_3_SIZE='87467' ### release 784 ARCHIVE_OPTIONAL_AKHENATEN_2_NAME='akhenaten.linux' ARCHIVE_OPTIONAL_AKHENATEN_2_MD5='eebce8cd3a284399d271b1f9e2b02461' ARCHIVE_OPTIONAL_AKHENATEN_2_SIZE='64301' ### release 205 ARCHIVE_OPTIONAL_AKHENATEN_1_NAME='akhenaten.linux' ARCHIVE_OPTIONAL_AKHENATEN_1_MD5='cdd40aa1ab541035b1a2c5e02cbe5064' ARCHIVE_OPTIONAL_AKHENATEN_1_SIZE='34006' ### release 108 (still called "Ozyamandias") ARCHIVE_OPTIONAL_AKHENATEN_0_NAME='ozymandias.linux' ARCHIVE_OPTIONAL_AKHENATEN_0_MD5='7e52e2e90f5b00069cd312507d55c518' ARCHIVE_OPTIONAL_AKHENATEN_0_SIZE='31820' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_WINE_FILES=' MP3DEC.ASI BINKW32.DLL mss16.dll mss32.dll SMACKW32.DLL Pharaoh.exe Pharaoh.ini mssb16.tsk *.M3D' CONTENT_GAME_DATA_FILES=' AUDIO BINKS Data Maps cleoicon.ico auto reason phrases.txt campaign.txt eventmsg.txt Figure_model.txt Figure_model_*.txt music.txt Pharaoh_MM.txt Pharaoh_Model_*.txt Pharaoh_Text.txt Tax_Sentiment_Model_*.txt trade_recommends.txt Pharaoh2.emp Pharaoh_MM.eng Pharaoh_Text.eng mission1.pak *.inf' CONTENT_DOC_DATA_FILES=' Mission Editor Guide.txt Readme.txt *.pdf' USER_PERSISTENT_DIRECTORIES=' Save' USER_PERSISTENT_FILES=' *.ini' ## WINE - With the default OpenGL renderer, the game menu is not displayed (WINE 9.0). WINE_DIRECT3D_RENDERER='wined3d/gdi' ## WINE - The game window fails to render anything unless the game runs in a WINE virtual desktop (WINE 9.0). WINE_VIRTUAL_DESKTOP='auto' APP_MAIN_EXE_BIN_LINUX='akhenaten.linux' APP_MAIN_EXE_BIN_WINE='Pharaoh.exe' APP_MAIN_ICON='cleoicon.ico' PACKAGES_LIST=' PKG_BIN_WINE PKG_DATA' PACKAGES_LIST_AKHENATEN=" PKG_BIN_LINUX $PACKAGES_LIST" PKG_BIN_ID="$GAME_ID" PKG_BIN_PROVIDES=" $PKG_BIN_ID" PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_LINUX_ID="${PKG_BIN_ID}-akhenaten" PKG_BIN_LINUX_PROVIDES="$PKG_BIN_PROVIDES" PKG_BIN_LINUX_DESCRIPTION='using the Akhenaten engine' PKG_BIN_LINUX_ARCH='64' PKG_BIN_LINUX_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_LINUX_DEPENDENCIES_LIBRARIES=' libc.so.6 libm.so.6 libSDL2-2.0.so.0 libSDL2_mixer-2.0.so.0' ## Ensure smooth upgrades from packages generated with pre-20231105.3 game scripts PKG_BIN_LINUX_PROVIDES="${PKG_BIN_LINUX_PROVIDES:-} pharaoh-ozymandias" PKG_BIN_WINE_ID="${PKG_BIN_ID}-wine" PKG_BIN_WINE_PROVIDES="$PKG_BIN_PROVIDES" PKG_BIN_WINE_DESCRIPTION='using WINE' PKG_BIN_WINE_ARCH='32' PKG_BIN_WINE_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Check for the presence of the Akhenaten native engine binary (optional) archive_initialize_optional \ 'ARCHIVE_AKHENATEN' \ 'ARCHIVE_OPTIONAL_AKHENATEN_4' \ 'ARCHIVE_OPTIONAL_AKHENATEN_3' \ 'ARCHIVE_OPTIONAL_AKHENATEN_2' \ 'ARCHIVE_OPTIONAL_AKHENATEN_1' \ 'ARCHIVE_OPTIONAL_AKHENATEN_0' if archive_is_available 'ARCHIVE_AKHENATEN'; then export PACKAGES_LIST="$PACKAGES_LIST_AKHENATEN" fi # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default if archive_is_available 'ARCHIVE_AKHENATEN'; then application_exe=$( set_current_package 'PKG_BIN_LINUX' application_exe 'APP_MAIN' ) install -D --mode=755 \ "$(archive_path 'ARCHIVE_AKHENATEN')" \ "$(package_path 'PKG_BIN_LINUX')$(path_game_data)/${application_exe}" fi # Write launchers launchers_generation 'PKG_BIN_WINE' if archive_is_available 'ARCHIVE_AKHENATEN'; then launchers_generation 'PKG_BIN_LINUX' fi # Build packages packages_generation printf '\n' if archive_is_available 'ARCHIVE_AKHENATEN'; then printf 'Akhenaten:' print_instructions 'PKG_DATA' 'PKG_BIN_LINUX' printf 'WINE:' print_instructions 'PKG_DATA' 'PKG_BIN_WINE' else print_instructions fi # Clean up working_directory_cleanup exit 0 games/play-pillars-of-eternity-1-expansions.sh0000750000000000000000000002026214471751340020411 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # Pillars of Eternity expansions: # - Kickstarter item # - Kickstarter pet # - Pre-order item and pet # - The White March, Part 1 # - The White March, Part 2 # - Deadfire Pack # send your bug reports to vv221@dotslashplay.it ### script_version=20250403.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='pillars-of-eternity-1' GAME_NAME='Pillars of Eternity' EXPANSION_ID_TIER1BACKER='kickstarter-item' EXPANSION_NAME_TIER1BACKER='Kickstarter item' EXPANSION_ID_TIER2BACKER='kickstarter-pet' EXPANSION_NAME_TIER2BACKER='Kickstarter pet' EXPANSION_ID_PREORDER='preorder-content' EXPANSION_NAME_PREORDER='Pre-order item and pet' EXPANSION_ID_TWM1='the-white-march-part-1' EXPANSION_NAME_TWM1='The White March Part Ⅰ' EXPANSION_ID_TWM2='the-white-march-part-2' EXPANSION_NAME_TWM2='The White March Part Ⅱ' EXPANSION_ID_DEADFIRE='deadfire-pack' EXPANSION_NAME_DEADFIRE='Deadfire Pack' # Archives ## Kickstarter item ARCHIVE_BASE_TIER1BACKER_1_NAME='pillars_of_eternity_kickstarter_item_3_8_0_87535_80946.sh' ARCHIVE_BASE_TIER1BACKER_1_MD5='67b7ae65b7c1502e37110b7f4402a19f' ARCHIVE_BASE_TIER1BACKER_1_SIZE='971' ARCHIVE_BASE_TIER1BACKER_1_VERSION='3.8.0.87535-gog80946' ARCHIVE_BASE_TIER1BACKER_0_NAME='gog_pillars_of_eternity_kickstarter_item_dlc_2.0.0.2.sh' ARCHIVE_BASE_TIER1BACKER_0_MD5='b4c29ae17c87956471f2d76d8931a4e5' ARCHIVE_BASE_TIER1BACKER_0_SIZE='924' ARCHIVE_BASE_TIER1BACKER_0_VERSION='1.0-gog2.0.0.2' ## Kickstarter pet ARCHIVE_BASE_TIER2BACKER_1_NAME='pillars_of_eternity_kickstarter_pet_3_8_0_87535_80946.sh' ARCHIVE_BASE_TIER2BACKER_1_MD5='f5ee7919aaf466d45c12689a4de327e9' ARCHIVE_BASE_TIER2BACKER_1_SIZE='978' ARCHIVE_BASE_TIER2BACKER_1_VERSION='3.8.0.87535-gog80946' ARCHIVE_BASE_TIER2BACKER_0_NAME='gog_pillars_of_eternity_kickstarter_pet_dlc_2.0.0.2.sh' ARCHIVE_BASE_TIER2BACKER_0_MD5='3653fc2a98ef578335f89b607f0b7968' ARCHIVE_BASE_TIER2BACKER_0_SIZE='924' ARCHIVE_BASE_TIER2BACKER_0_VERSION='1.0-gog2.0.0.2' ## Pre-order item and pet ARCHIVE_BASE_PREORDER_1_NAME='pillars_of_eternity_preorder_item_and_pet_3_8_0_87535_80946.sh' ARCHIVE_BASE_PREORDER_1_MD5='ad7a6c20a937f76a356e1613495c43c0' ARCHIVE_BASE_PREORDER_1_SIZE='963' ARCHIVE_BASE_PREORDER_1_VERSION='3.8.0.87535-gog80946' ARCHIVE_BASE_PREORDER_0_NAME='gog_pillars_of_eternity_preorder_item_and_pet_dlc_2.0.0.2.sh' ARCHIVE_BASE_PREORDER_0_MD5='b86ad866acb62937d2127407e4beab19' ARCHIVE_BASE_PREORDER_0_SIZE='924' ARCHIVE_BASE_PREORDER_0_VERSION='1.0-gog2.0.0.2' ## The White March, Part 1 ARCHIVE_BASE_TWM1_4_NAME='pillars_of_eternity_the_white_march_part_1_3_8_0_87535_80946.sh' ARCHIVE_BASE_TWM1_4_MD5='ad2218672a0aba7ee0a30b73eefc81dd' ARCHIVE_BASE_TWM1_4_SIZE='7564726' ARCHIVE_BASE_TWM1_4_VERSION='3.8.0.87535-gog80946' ARCHIVE_BASE_TWM1_4_URL='https://www.gog.com/game/pillars_of_eternity_the_white_march_part_1' ARCHIVE_BASE_TWM1_3_NAME='pillars_of_eternity_white_march_part_1_dlc_en_3_07_0_1318_17464.sh' ARCHIVE_BASE_TWM1_3_MD5='cc72f59ee20238ff05c47646b4618f01' ARCHIVE_BASE_TWM1_3_SIZE='5507108' ARCHIVE_BASE_TWM1_3_VERSION='3.7.0.1318-gog17464' ARCHIVE_BASE_TWM1_2_NAME='pillars_of_eternity_white_march_part_1_dlc_en_3_07_16598.sh' ARCHIVE_BASE_TWM1_2_MD5='054b6af430da1ed2635b9c6b4ed56866' ARCHIVE_BASE_TWM1_2_SIZE='5500000' ARCHIVE_BASE_TWM1_2_VERSION='3.7.0.1284-gog16598' ARCHIVE_BASE_TWM1_1_NAME='gog_pillars_of_eternity_white_march_part_1_dlc_2.10.0.12.sh' ARCHIVE_BASE_TWM1_1_MD5='8fafcb549fffd2de24f381a85e859622' ARCHIVE_BASE_TWM1_1_SIZE='5500000' ARCHIVE_BASE_TWM1_1_VERSION='3.06.0.1254-gog2.10.0.12' ARCHIVE_BASE_TWM1_0_NAME='gog_pillars_of_eternity_white_march_part_1_dlc_2.9.0.11.sh' ARCHIVE_BASE_TWM1_0_MD5='98424615626c82ed723860d421f187b6' ARCHIVE_BASE_TWM1_0_SIZE='5500000' ARCHIVE_BASE_TWM1_0_VERSION='3.05.0.1186-gog2.9.0.11' ## The White March, Part 2 ARCHIVE_BASE_TWM2_4_NAME='pillars_of_eternity_the_white_march_part_2_3_8_0_87535_80946.sh' ARCHIVE_BASE_TWM2_4_MD5='b64f8528243197aaec1a6a99fb43e728' ARCHIVE_BASE_TWM2_4_SIZE='6845084' ARCHIVE_BASE_TWM2_4_VERSION='3.8.0.87535-gog80946' ARCHIVE_BASE_TWM2_4_URL='https://www.gog.com/game/pillars_of_eternity_the_white_march_part_2' ARCHIVE_BASE_TWM2_3_NAME='pillars_of_eternity_white_march_part_2_dlc_en_3_07_0_1318_17464.sh' ARCHIVE_BASE_TWM2_3_MD5='03067ebdd878cc16c283f63ddf015e90' ARCHIVE_BASE_TWM2_3_SIZE='4360158' ARCHIVE_BASE_TWM2_3_VERSION='3.7.0.1318-gog17464' ARCHIVE_BASE_TWM2_2_NAME='pillars_of_eternity_white_march_part_2_dlc_en_3_07_16598.sh' ARCHIVE_BASE_TWM2_2_MD5='db3a345b2b2782e2ad075dd32567f303' ARCHIVE_BASE_TWM2_2_SIZE='4300000' ARCHIVE_BASE_TWM2_2_VERSION='3.7.0.1284-gog16598' ARCHIVE_BASE_TWM2_1_NAME='gog_pillars_of_eternity_white_march_part_2_dlc_2.6.0.7.sh' ARCHIVE_BASE_TWM2_1_MD5='fdc1446661a358961379fbec24c44680' ARCHIVE_BASE_TWM2_1_SIZE='4400000' ARCHIVE_BASE_TWM2_1_VERSION='3.06.1254-gog2.6.0.7' ARCHIVE_BASE_TWM2_0_NAME='gog_pillars_of_eternity_white_march_part_2_dlc_2.5.0.6.sh' ARCHIVE_BASE_TWM2_0_MD5='483d4b8cc046a07ec91a6306d3409e23' ARCHIVE_BASE_TWM2_0_SIZE='4400000' ARCHIVE_BASE_TWM2_0_VERSION='3.05.1186-gog2.5.0.6' ## Deadfire Pack ARCHIVE_BASE_DEADFIRE_3_NAME='pillars_of_eternity_deadfire_pack_3_8_0_87535_80946.sh' ARCHIVE_BASE_DEADFIRE_3_MD5='ece6e59bc5bd1f59498140d3a4f1fb74' ARCHIVE_BASE_DEADFIRE_3_SIZE='73988' ARCHIVE_BASE_DEADFIRE_3_VERSION='3.8.0.87535-gog80946' ARCHIVE_BASE_DEADFIRE_3_URL='https://www.gog.com/game/pillars_of_eternity_deadfire_pack' ARCHIVE_BASE_DEADFIRE_2_NAME='pillars_of_eternity_deadfire_pack_dlc_en_3_07_0_1318_20099.sh' ARCHIVE_BASE_DEADFIRE_2_MD5='da315aba26784e55aa51139cebb7f9d2' ARCHIVE_BASE_DEADFIRE_2_SIZE='922' ARCHIVE_BASE_DEADFIRE_2_VERSION='3.07.0.1318-gog20099' ARCHIVE_BASE_DEADFIRE_1_NAME='pillars_of_eternity_deadfire_pack_dlc_en_3_07_0_1318_17462.sh' ARCHIVE_BASE_DEADFIRE_1_MD5='021362da5912dc8a3e47473e97726f7f' ARCHIVE_BASE_DEADFIRE_1_SIZE='1300' ARCHIVE_BASE_DEADFIRE_1_VERSION='3.07.0.1318-gog17462' ARCHIVE_BASE_DEADFIRE_0_NAME='pillars_of_eternity_deadfire_pack_dlc_en_3_07_16380.sh' ARCHIVE_BASE_DEADFIRE_0_MD5='2fc0dc21648953be1c571e28b1e3d002' ARCHIVE_BASE_DEADFIRE_0_SIZE='1300' ARCHIVE_BASE_DEADFIRE_0_VERSION='3.07-gog16380' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' PillarsOfEternity_Data' CONTENT_GAME_MAIN_FILES_TIER1BACKER=' PillarsOfEternity_Data/assetbundles/prefabs/objectbundle/tier1backer*' CONTENT_GAME_MAIN_FILES_TIER2BACKER=' PillarsOfEternity_Data/assetbundles/prefabs/objectbundle/tier2backer*' CONTENT_GAME_MAIN_FILES_PREORDER=' PillarsOfEternity_Data/assetbundles/prefabs/objectbundle/tier1preorder*' PKG_PARENT_ID="$GAME_ID" PKG_TWM1_ID="${GAME_ID}-${EXPANSION_ID_TWM1}" PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_PARENT' PKG_MAIN_DEPENDENCIES_SIBLINGS_TWM2="$PKG_MAIN_DEPENDENCIES_SIBLINGS PKG_TWM1" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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)" # The White March, Part 2 - Remove a file already provided by a dependency case "$(current_archive)" in ('ARCHIVE_BASE_TWM2_'*) rm --force \ 'PillarsOfEternity_Data/assetbundles/prefabs/objectbundle/px1_cre_blight_ice_terror' \ 'PillarsOfEternity_Data/assetbundles/prefabs/objectbundle/px1_cre_blight_ice_terror.unity3d' ;; esac # Deadfire Pack - Fix a typo in a file path case "$(current_archive)" in ('ARCHIVE_BASE_DEADFIRE_'*) if [ -e 'PillarsOfEternity_data' ]; then mv 'PillarsOfEternity_data' 'PillarsOfEternity_Data' fi ;; esac ) # Include game data content_inclusion_default # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-pillars-of-eternity-1.sh0000750000000000000000000000606514471751340016231 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2017 Mopi set -o errexit ### # Pillars of Eternity # send your bug reports to vv221@dotslashplay.it ### script_version=20250403.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='pillars-of-eternity-1' GAME_NAME='Pillars of Eternity' ARCHIVE_BASE_4_NAME='pillars_of_eternity_3_8_0_87535_80946.sh' ARCHIVE_BASE_4_MD5='805f0a9f9d467937ae52cb33c5aa7515' ARCHIVE_BASE_4_SIZE='17022011' ARCHIVE_BASE_4_VERSION='3.8.0.87535-gog80946' ARCHIVE_BASE_4_URL='https://www.gog.com/game/pillars_of_eternity_hero_edition' ARCHIVE_BASE_3_NAME='pillars_of_eternity_en_3_07_0_1318_17461.sh' ARCHIVE_BASE_3_MD5='57164ad0cbc53d188dde0b38e7491916' ARCHIVE_BASE_3_SIZE='14801525' ARCHIVE_BASE_3_VERSION='3.7.0.1318-gog17461' ARCHIVE_BASE_2_NAME='pillars_of_eternity_en_3_07_16405.sh' ARCHIVE_BASE_2_MD5='e4271b5e72f1ecc9fbbc4d90937ede05' ARCHIVE_BASE_2_SIZE='15000000' ARCHIVE_BASE_2_VERSION='3.7.0.1284-gog16405' ARCHIVE_BASE_1_NAME='gog_pillars_of_eternity_2.16.0.20.sh' ARCHIVE_BASE_1_MD5='0d21cf95bda070bdbfbe3e79f8fc32d6' ARCHIVE_BASE_1_SIZE='15000000' ARCHIVE_BASE_1_VERSION='3.06.1254-gog2.16.0.20' ARCHIVE_BASE_0_NAME='gog_pillars_of_eternity_2.15.0.19.sh' ARCHIVE_BASE_0_MD5='2000052541abb1ef8a644049734e8526' ARCHIVE_BASE_0_SIZE='15000000' ARCHIVE_BASE_0_VERSION='3.05.1186-gog2.15.0.19' UNITY3D_NAME='PillarsOfEternity' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_DATA_AREAS_FILES=" ${UNITY3D_NAME}_Data/assetbundles/st_ar_*" PACKAGES_LIST=' PKG_BIN PKG_DATA_AREAS PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 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' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_DATA_AREAS' PKG_DATA_AREAS_ID="${PKG_DATA_ID}-areas" PKG_DATA_AREAS_DESCRIPTION="$PKG_DATA_DESCRIPTION - areas" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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-primordia.sh0000750000000000000000000001046514471751340014147 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Primordia # send your bug reports to vv221@dotslashplay.it ### script_version=20250722.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='primordia' GAME_NAME='Primordia' ARCHIVE_BASE_14_NAME='primordia_5_2b_80906.sh' ARCHIVE_BASE_14_MD5='accf027b4f322dfea11d0ccb5514285d' ARCHIVE_BASE_14_SIZE='1404856' ARCHIVE_BASE_14_VERSION='5.2b-gog80906' ARCHIVE_BASE_14_URL='https://www.gog.com/game/primordia' ARCHIVE_BASE_13_NAME='primordia_5_2a_79719.sh' ARCHIVE_BASE_13_MD5='ce24004eaf34646660a01eaf8b3315ee' ARCHIVE_BASE_13_SIZE='1426939' ARCHIVE_BASE_13_VERSION='5.2a-gog79719' ARCHIVE_BASE_12_NAME='primordia_4_0b_79076.sh' ARCHIVE_BASE_12_MD5='34d1bb696c4ff865a76ba0d06f978def' ARCHIVE_BASE_12_SIZE='1426936' ARCHIVE_BASE_12_VERSION='4.0b-gog79076' ARCHIVE_BASE_11_NAME='primordia_4_0a_77194.sh' ARCHIVE_BASE_11_MD5='75efd6a2e3344a3bc22cbf69459ea79f' ARCHIVE_BASE_11_SIZE='1426936' ARCHIVE_BASE_11_VERSION='4.0a-gog77194' ARCHIVE_BASE_10_NAME='primordia_4_0_75697.sh' ARCHIVE_BASE_10_MD5='cbe5608e47f6bf70364208f686e55161' ARCHIVE_BASE_10_SIZE='1426935' ARCHIVE_BASE_10_VERSION='4.0-gog75697' ARCHIVE_BASE_9_NAME='primordia_3_9_75550.sh' ARCHIVE_BASE_9_MD5='d28470e41889897e45d0f6f400517499' ARCHIVE_BASE_9_SIZE='1426932' ARCHIVE_BASE_9_VERSION='3.9-gog75550' ARCHIVE_BASE_8_NAME='primordia_3_8_75071.sh' ARCHIVE_BASE_8_MD5='6f184b62fb442f7e6f0f791bc51717f0' ARCHIVE_BASE_8_SIZE='1426930' ARCHIVE_BASE_8_VERSION='3.8-gog75071' ARCHIVE_BASE_7_NAME='primordia_3_7_73438.sh' ARCHIVE_BASE_7_MD5='8bae6792e72a9ac69263b6eb4f0e03e6' ARCHIVE_BASE_7_SIZE='1426929' ARCHIVE_BASE_7_VERSION='3.7-gog73438' ARCHIVE_BASE_6_NAME='primordia_3_6_70667.sh' ARCHIVE_BASE_6_MD5='dc254ed674114e4776a91454e35d3741' ARCHIVE_BASE_6_SIZE='1426928' ARCHIVE_BASE_6_VERSION='3.6-gog70667' ARCHIVE_BASE_5_NAME='primordia_3_6_70159.sh' ARCHIVE_BASE_5_MD5='d1f9eeec2084933463d1b43b5466f5f1' ARCHIVE_BASE_5_SIZE='1426928' ARCHIVE_BASE_5_VERSION='3.6-gog70159' ARCHIVE_BASE_4_NAME='primordia_3_5b_69802.sh' ARCHIVE_BASE_4_MD5='b3ca4bfa8341f68ec6eb2d6c36f36e0f' ARCHIVE_BASE_4_SIZE='1426833' ARCHIVE_BASE_4_VERSION='3.5b-gog69802' ARCHIVE_BASE_3_NAME='primordia_3_5a_69504.sh' ARCHIVE_BASE_3_MD5='62d64492018c9b7fe020303040c5dbe9' ARCHIVE_BASE_3_SIZE='1427316' ARCHIVE_BASE_3_VERSION='3.5a-gog69504' ARCHIVE_BASE_2_NAME='primordia_3_0a_65125.sh' ARCHIVE_BASE_2_MD5='5b096e36b814c16c0ce067046e194c94' ARCHIVE_BASE_2_SIZE='1500000' ARCHIVE_BASE_2_VERSION='3.0a-gog65125' ARCHIVE_BASE_1_NAME='primordia_3_58594.sh' ARCHIVE_BASE_1_MD5='3cd92a7767d561f2d982014117ee0576' ARCHIVE_BASE_1_SIZE='1500000' ARCHIVE_BASE_1_VERSION='3.0-gog58594' ARCHIVE_BASE_0_NAME='primordia_italian_53699.sh' ARCHIVE_BASE_0_MD5='812917de017fde37b1c448f156e4ae7d' ARCHIVE_BASE_0_SIZE='1500000' ARCHIVE_BASE_0_VERSION='2.6-gog53699' ## Optional icons pack ARCHIVE_OPTIONAL_ICONS_NAME='primordia_icons.tar.xz' ARCHIVE_OPTIONAL_ICONS_MD5='66c1d186075708574ee870a9015b4ff6' ARCHIVE_OPTIONAL_ICONS_URL='https://downloads.dotslashplay.it/games/primordia/' CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 16x16 24x24 32x32 48x48 256x256' AGS_NAME='primordia' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME0_MAIN_FILES=' ENGV.tmp' CONTENT_DOC_MAIN_FILES=' licenses' APP_MAIN_ICON='../support/icon.png' APP_MAIN_ICON_2='Primordia.exe' APP_MAIN_ICON_1='Primordia.exe' APP_MAIN_ICON_0='Primordia.exe' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-prince-of-persia-the-sands-of-time.sh0000750000000000000000000001223014471751340020536 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Prince of Persia: The Sands of Time # send your bug reports to vv221@dotslashplay.it ### script_version=20241125.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='prince-of-persia-the-sands-of-time' GAME_NAME='Prince of Persia: The Sands of Time' ARCHIVE_BASE_FR_0_NAME='setup_prince_of_persia_-_the_sands_of_time_181_(french)_(28548).exe' ARCHIVE_BASE_FR_0_MD5='b71ed96b13461f56c8a47e16fbecadbb' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_PART1_NAME='setup_prince_of_persia_-_the_sands_of_time_181_(french)_(28548)-1.bin' ARCHIVE_BASE_FR_0_PART1_MD5='691e5144e34bf71ab15d45de11089b34' ARCHIVE_BASE_FR_0_SIZE='1408358' ARCHIVE_BASE_FR_0_VERSION='1.00.181-gog28548' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/prince_of_persia_the_sands_of_time' ARCHIVE_BASE_EN_0_NAME='setup_prince_of_persia_-_the_sands_of_time_181_(28548).exe' ARCHIVE_BASE_EN_0_MD5='008b4359cafb21dd4e437860dc23e2cf' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_PART1_NAME='setup_prince_of_persia_-_the_sands_of_time_181_(28548)-1.bin' ARCHIVE_BASE_EN_0_PART1_MD5='639fd428677dc8fb52e864422cbfe26d' ARCHIVE_BASE_EN_0_SIZE='1413339' ARCHIVE_BASE_EN_0_VERSION='1.00.181-gog28548' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/prince_of_persia_the_sands_of_time' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' binkw32.dll detectionapi.dll directx8tests.dll directx9tests.dll eax.dll mfc71.dll msvcp71.dll msvcr71.dll pop.exe princeofpersia.exe directxtests.tst systemtests.tst' CONTENT_GAME0_BIN_PATH='__support/app' ## "Hardware.ini" instead of "hardware.ini" is not a typo. CONTENT_GAME0_BIN_FILES=' Hardware.ini sound/dare.ini' CONTENT_GAME_L10N_FILES=' poplauncherres.dll popdata.bf sound/soundlocal.big sound/soundlocal.fat video/loading.int' CONTENT_GAME_DATA_FILES=' profiles sound video prince.bf' CONTENT_DOC_L10N_FILES=' manual.pdf licence.txt readme.txt' USER_PERSISTENT_FILES=' Hardware.ini sound/dare.ini' USER_PERSISTENT_DIRECTORIES=' profiles' APP_MAIN_EXE='princeofpersia.exe' ## Work around fog rendering problems ## On first launch, the game runs with display problems related to fog rendering. ## Quit the game and launch it again, it should automatically be fixed on the second launch. APP_MAIN_PRERUN=' # Work around fog rendering problems # On first launch, the game runs with display problems related to fog rendering. # Quit the game and launch it again, it should automatically be fixed on the second launch. config_file="Hardware.ini" dos2unix --quiet "$config_file" sed \ --in-place \ --expression="s/InvertFogRange=.*/InvertFogRange=0/" \ "$config_file" unix2dos --quiet "$config_file" ' ## Work around an override of configuration file APP_MAIN_POSTRUN=' # Work around an override of configuration file config_file="Hardware.ini" config_file_persistent="${PATH_PERSISTENT}/${config_file}" if \ [ -f "$config_file" ] \ && [ ! -h "$config_file" ] then cp --remove-destination "$config_file" "$config_file_persistent" rm "$config_file" ln --symbolic "$config_file_persistent" "$config_file" fi ' PACKAGES_LIST=' PKG_BIN PKG_L10N PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N_BASE PKG_DATA' ## Work around fog rendering problems PKG_BIN_DEPENDENCIES_COMMANDS="${PKG_BIN_DEPENDENCIES_COMMANDS:-} dos2unix" ## Ensure a smooth upgrade from packages generated with pre-20231018.1 scripts. PKG_BIN_PROVIDES="${PKG_BIN_PROVIDES:-} prince-of-persia" 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' ## Ensure a smooth upgrade from packages generated with pre-20231018.1 scripts. PKG_L10N_PROVIDES="${PKG_L10N_PROVIDES:-} prince-of-persia-l10n" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' ## Ensure a smooth upgrade from packages generated with pre-20231018.1 scripts. PKG_DATA_PROVIDES="${PKG_DATA_PROVIDES:-} prince-of-persia-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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 'GAME0_BIN')" # Work around case-related problems caused by file deletion-creation instead of in-place edition mv 'hardware.ini' 'Hardware.ini' ) # 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-pyre.sh0000750000000000000000000001050114471751340013127 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Pyre # send your bug reports to vv221@dotslashplay.it ### script_version=20250731.2 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='pyre' GAME_NAME='Pyre' ARCHIVE_BASE_ITCH_1_NAME='pyre-linux.zip' ARCHIVE_BASE_ITCH_1_MD5='44e0fe30a9d8bcf73c4fa288dd4324ab' ARCHIVE_BASE_ITCH_1_SIZE='8051755' ARCHIVE_BASE_ITCH_1_VERSION='1.50476-itch.2019.03.19' ARCHIVE_BASE_ITCH_1_URL='https://supergiant-games.itch.io/pyre' ARCHIVE_BASE_GOG_1_NAME='pyre_1_50427_11957_23366.sh' ARCHIVE_BASE_GOG_1_MD5='ae34d8b4c069ffd7a98f295af4596e1f' ARCHIVE_BASE_GOG_1_SIZE='8104850' ARCHIVE_BASE_GOG_1_VERSION='1.50427-gog23366' ARCHIVE_BASE_GOG_1_URL='https://www.gog.com/game/pyre' ARCHIVE_BASE_GOG_0_NAME='pyre_en_1_0_18732.sh' ARCHIVE_BASE_GOG_0_MD5='83ea264e95e2519aba72078d35290d49' ARCHIVE_BASE_GOG_0_SIZE='8100000' ARCHIVE_BASE_GOG_0_VERSION='1.0-gog18732' CONTENT_PATH_DEFAULT_ITCH='.' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_LIBS_FILES=' libBink2.so libFModPlugins.so libfmod.so.8 libfmodstudio.so.8 liblua52.so libMonoPosixHelper.so' CONTENT_LIBS_BIN64_RELATIVE_PATH='lib64' CONTENT_LIBS_BIN64_FILES="$CONTENT_LIBS_FILES" CONTENT_LIBS_BIN32_RELATIVE_PATH='lib' CONTENT_LIBS_BIN32_FILES="$CONTENT_LIBS_FILES" CONTENT_GAME_BIN64_FILES=' Pyre.bin.x86_64' CONTENT_GAME_BIN32_FILES=' Pyre.bin.x86' CONTENT_GAME_DATA_FILES=' gamecontrollerdb.txt monoconfig monomachineconfig Content *.bmp *.config *.cur *.dll *.exe *.pdb *.xml' CONTENT_DOC_DATA_FILES=' Linux.README ReadMe.txt' ## Using system-provided Mono 6.8.0.105, the game crashes at the end of the initial loading phase, ## right before showing the game menu, with the following trace: ## ## [FMOD] d:\Jenkins\workspace\Ursa_SDL2\GSGE\GSGE\Code\Audio\AudioManager.cs:ln - 597 Unsupported file or audio format. Failed to create VO sound bank: Content/Audio/FMOD/Build/Desktop/VO.fsb ## at GSGE.AudioManager.LoadVoiceBank () [0x0034a] in <160751e4f5c141ae8efac1285e76459f>:0 ## at GSGE.AudioManager.Preload () [0x00021] in <160751e4f5c141ae8efac1285e76459f>:0 ## at GSGE.Code.GUI.LaunchScreen+<>c__DisplayClassc.b__9 () [0x00040] in <160751e4f5c141ae8efac1285e76459f>:0 ## at System.Threading.Tasks.Task.InnerInvoke () [0x00012] in <12b418a7818c4ca0893feeaaf67f1e7f>:0 ## at System.Threading.Tasks.Task.Execute () [0x00000] in <12b418a7818c4ca0893feeaaf67f1e7f>:0 ## ## To work around it, we use the shipped Mono binaries instead of system-provided Mono. APP_MAIN_EXE_BIN64='Pyre.bin.x86_64' APP_MAIN_EXE_BIN32='Pyre.bin.x86' APP_MAIN_ICON='PyreIcon.bmp' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0 libstdc++.so.6 libudev.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 ## Apply common Mono tweaks. APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN') $(mono_launcher_tweaks)" ## This game expects an executable stack through dynamically loaded libraries. game_exec_line() { local application="$1" application_exe application_exe=$(application_exe "$application") cat <<- EOF GLIBC_TUNABLES=glibc.rtld.execstack=2 "./${application_exe}" "\$@" EOF } launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-raji-an-ancient-epic.sh0000750000000000000000000001047614471751340016041 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Raji: An Ancient Epic # send your bug reports to vv221@dotslashplay.it ### script_version=20250609.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='raji-an-ancient-epic' GAME_NAME='Raji: An Ancient Epic' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" # Archives ## Raji: An Ancient Epic (full game) ARCHIVE_BASE_1_NAME='setup_raji_an_ancient_epic_1.6.0_(64bit)_(57469).exe' ARCHIVE_BASE_1_MD5='d05e588d8f7a32b5471a0c193ca10adb' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_raji_an_ancient_epic_1.6.0_(64bit)_(57469)-1.bin' ARCHIVE_BASE_1_PART1_MD5='84f8c041aba726936ce450c481a1962c' ARCHIVE_BASE_1_PART2_NAME='setup_raji_an_ancient_epic_1.6.0_(64bit)_(57469)-2.bin' ARCHIVE_BASE_1_PART2_MD5='3dc293acb794752426baa2e6174b25dc' ARCHIVE_BASE_1_SIZE='6400000' ARCHIVE_BASE_1_VERSION='1.6.0-gog57469' ARCHIVE_BASE_1_URL='https://www.gog.com/game/raji_an_ancient_epic' ARCHIVE_BASE_0_NAME='setup_raji_an_ancient_epic_1.4.0_(64bit)_(45493).exe' ARCHIVE_BASE_0_MD5='5defde7fed6a972c5f40f7b58a4631a9' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_raji_an_ancient_epic_1.4.0_(64bit)_(45493)-1.bin' ARCHIVE_BASE_0_PART1_MD5='db0573d9b6647e12989ef8d46842bdce' ARCHIVE_BASE_0_PART2_NAME='setup_raji_an_ancient_epic_1.4.0_(64bit)_(45493)-2.bin' ARCHIVE_BASE_0_PART2_MD5='dfabd86fda6c240335eea1d2338c6b5f' ARCHIVE_BASE_0_SIZE='5900000' ARCHIVE_BASE_0_VERSION='1.4.0-gog45493' ## Raji: An Ancient Epic (demo) ARCHIVE_BASE_DEMO_0_NAME='Raji Demo v11.zip' ARCHIVE_BASE_DEMO_0_MD5='b021b724963d80b4e4690fe096969a32' ARCHIVE_BASE_DEMO_0_SIZE='3100000' ARCHIVE_BASE_DEMO_0_VERSION='11-itch.2020.10.21' ARCHIVE_BASE_DEMO_0_URL='https://rajithegame.itch.io/raji-an-ancient-epic' ## Optional icons pack ARCHIVE_OPTIONAL_ICONS_NAME='raji-an-ancient-epic_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5='befa06adad5d44a2946cc19f54b0a267' ARCHIVE_OPTIONAL_ICONS_URL='http://downloads.dotslashplay.it/games/raji-an-ancient-epic/' CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 256x256' UNREALENGINE4_NAME='raji' UNREALENGINE4_NAME_DEMO='Raji' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_DEMO='Raji Demo v11' APP_MAIN_EXE='raji/binaries/win64/raji-win64-shipping.exe' APP_MAIN_EXE_DEMO='Raji/Binaries/Win64/Raji-Win64-Shipping.exe' APP_MAIN_ICON='raji.exe' APP_MAIN_ICON_DEMO='Raji.exe' ## The rendering is done using Direct3D 12 by default starting with game version 1.6.0. ## We force Direct3D 11 instead as it provides better performance load with DXVK. ## (WINE 10.0) APP_MAIN_OPTIONS='-d3d11' 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 ## Convert icon file name for the game demo, ## if it has been provided by the optional icons archive case "$(current_archive)" in ('ARCHIVE_BASE_DEMO_'*) icon_source="$(package_path 'PKG_DATA')$(path_icons)/256x256/apps/${GAME_ID}.png" icon_destination="$(package_path 'PKG_DATA')$(path_icons)/256x256/apps/$(game_id).png" if [ -e "$icon_source" ]; then mv "$icon_source" "$icon_destination" fi ;; esac # Write launchers ## Do not install the Visual C++ Runtime, ## as it is not actually required by this game. 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-rayman-1.sh0000750000000000000000000000642314471751340013605 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # Rayman # send your bug reports to vv221@dotslashplay.it ### script_version=20250722.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='rayman-1' GAME_NAME='Rayman' ARCHIVE_BASE_1_NAME='setup_rayman_forever_1.21_(28045).exe' ARCHIVE_BASE_1_MD5='304cca5f14923730c76bb61f669be575' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='279703' ARCHIVE_BASE_1_VERSION='1.21-gog28045' ARCHIVE_BASE_1_URL='https://www.gog.com/game/rayman_forever' ARCHIVE_BASE_0_NAME='setup_rayman_forever_2.0.0.15.exe' ARCHIVE_BASE_0_MD5='96e71ea03261646f7f5ce4cb27d6a222' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='290000' ARCHIVE_BASE_0_VERSION='1.21-gog2.0.0.15' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_MAIN_FILES=' game.gog game.ins music rayfan raykit rayman' CONTENT_DOC_DATA_FILES=' manual.pdf' DOSBOX_DISK_IMAGE_PATH='game.ins' USER_PERSISTENT_FILES=' rayman/vignet.dat *.cfg *.SAV' APP_MAIN_EXE='rayman/rayman.exe' APP_MAIN_OPTIONS='save=C:\rayman' APP_MAIN_ICON='goggame-1207658919.ico' APP_MAIN_ICON_0='gfw_high.ico' ## Use fixed cpu cycles, to improve performances APP_MAIN_DOSBOX_PRERUN=' config -set cpu cycles=fixed 80000 ' APP_FAN_ID="${GAME_ID}-rayfan" APP_FAN_NAME="$GAME_NAME - Rayman by his Fans" APP_FAN_EXE='rayfan/rayfan.exe' APP_FAN_OPTIONS='ver=usa' APP_FAN_ICON='rayfan/rayfan.ico' ## Use fixed cpu cycles, to improve performances APP_FAN_DOSBOX_PRERUN=' config -set cpu cycles=fixed 20000 ' APP_KIT_ID="${GAME_ID}-raykit" APP_KIT_NAME="$GAME_NAME - Rayman Designer" APP_KIT_EXE='raykit/raykit.exe' APP_KIT_OPTIONS='ver=usa' APP_KIT_ICON='raykit/raykit.ico' ## Use fixed cpu cycles, to improve performances APP_KIT_DOSBOX_PRERUN=' config -set cpu cycles=fixed 20000 ' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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 consistent name for the disk image table of content. if [ -e 'game.inst' ]; then mv 'game.inst' "$(dosbox_disk_image_path)" fi ) # Include game data content_inclusion_icons content_inclusion_default # Write launchers ## Run the game binary from its parent directory game_exec_line() { local application application="$1" local application_exe application_options application_exe=$(application_exe "$application") application_options=$(application_options "$application") cat <<- EOF cd $(dirname "$application_exe") $(basename "$application_exe") $application_options \$@ EOF } launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-rayman-origins.sh0000750000000000000000000001026414471751340015115 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Rayman Origins # send your bug reports to vv221@dotslashplay.it ### script_version=20250713.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='rayman-origins' GAME_NAME='Rayman Origins' ARCHIVE_BASE_HUMBLE_0_NAME='RaymanOrigins_windows.zip' ARCHIVE_BASE_HUMBLE_0_MD5='f9e657afbfac436fe2aea720cdc72196' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0.32504-humble' ARCHIVE_BASE_HUMBLE_0_SIZE='2400000' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/rayman-origins' ARCHIVE_BASE_GOG_0_NAME='setup_rayman_origins_1.0.32504_(18757).exe' ARCHIVE_BASE_GOG_0_MD5='a1021275180a433cd26ccb708c03dde4' ARCHIVE_BASE_GOG_0_TYPE='innosetup' ARCHIVE_BASE_GOG_0_PART1_NAME='setup_rayman_origins_1.0.32504_(18757)-1.bin' ARCHIVE_BASE_GOG_0_PART1_MD5='813c51f290371869157b62b26abad411' ARCHIVE_BASE_GOG_0_SIZE='2500000' ARCHIVE_BASE_GOG_0_VERSION='1.0.32504-gog18757' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/rayman_origins' CONTENT_PATH_DEFAULT_GOG='app' CONTENT_PATH_DEFAULT_HUMBLE='game' CONTENT_GAME_BIN_FILES=' *.dll *.exe *.ini' CONTENT_GAME_DATA_FILES=' gamedata' ## These documentation files are not provided by the Humble Bundle archive CONTENT_DOC_DATA_RELATIVE_PATH_GOG='support' CONTENT_DOC_DATA_FILES_GOG=' *.pdf *.txt' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/My Games/Rayman Origins' ## Work around rendering issues making the game menu unusable. WINE_WINETRICKS_VERBS='d3dcompiler_47' APPLICATIONS_LIST='APP_MAIN' APPLICATIONS_LIST_GOG="$APPLICATIONS_LIST APP_L10N" APP_MAIN_EXE='rayman origins.exe' ## This application is only provided by the gog.com archive. APP_L10N_ID="${GAME_ID}-language-setup" APP_L10N_NAME="${GAME_NAME} - Language setup" APP_L10N_CAT='Settings' APP_L10N_EXE='language_setup.exe' APP_L10N_ICON='rayman origins.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' # Set extra tools required to extract data from the Humble Bundle archive REQUIREMENTS_LIST_HUMBLE="${REQUIREMENTS_LIST:-} dd truncate unshield" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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 case "$(current_archive)" in ('ARCHIVE_BASE_HUMBLE'*) ARCHIVE_INNER_PATH="${PLAYIT_WORKDIR}/gamedata/RaymondOrigins_windows/Rayman Origins.exe" information_archive_data_extraction "$(archive_name 'ARCHIVE_INNER')" ( cd "${PLAYIT_WORKDIR}/gamedata" archive_path=$(archive_path 'ARCHIVE_INNER') dd \ if="$archive_path" \ of='data1.hdr' \ bs=3 skip=7740856 count=11107 2>/dev/null dd \ if="$archive_path" \ of='data1.cab' \ bs=8 skip=2655105 count=247706 2>/dev/null ## The extraction of data2.cab is done in two steps with big block size values. ## This is a big file that would take a lot of time to get using a small block size. dd \ if="$archive_path" \ of='data2.cab' \ bs=567219 skip=41 2>/dev/null rm "$archive_path" truncate --io-blocks --size=2125482963 'data2.cab' ) ARCHIVE_INNER_PATH="${PLAYIT_WORKDIR}/gamedata/data1.hdr" ARCHIVE_INNER_TYPE='installshield' archive_extraction 'ARCHIVE_INNER' rm \ "${PLAYIT_WORKDIR}/gamedata/data1.hdr" \ "${PLAYIT_WORKDIR}/gamedata/data1.cab" \ "${PLAYIT_WORKDIR}/gamedata/data2.cab" ;; esac # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-realmyst.sh0000750000000000000000000000424114471751340014014 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2020 Fabien Givors set -o errexit ### # realMyst: Masterpiece Edition # send your bug reports to vv221@dotslashplay.it ### script_version=20250112.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='myst-1-realmyst-masterpiece-edition' GAME_NAME='realMyst: Masterpiece Edition' ARCHIVE_BASE_0_NAME='setup_real_myst_masterpiece_edition_2.2_rev_10535_(64bit)_(23829).exe' ARCHIVE_BASE_0_MD5='fcb23e0256ab826e9a2ba9cad00d9a66' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_real_myst_masterpiece_edition_2.2_rev_10535_(64bit)_(23829)-1.bin' ARCHIVE_BASE_0_PART1_MD5='038b24ec51a18b325574293d7f2d0ec2' ARCHIVE_BASE_0_VERSION='2.2.10535-gog23829' ARCHIVE_BASE_0_SIZE='2800000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/real_myst_masterpiece_edition' UNITY3D_NAME='realmyst' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Cyan Worlds/realMyst' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-renowned-explorers-expansions.sh0000750000000000000000000002136414471751340020210 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Renowned Explorers: International Society expansions: # - More To Explore # - The Emperor's Challenge # send your bug reports to vv221@dotslashplay.it ### script_version=20250401.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='renowned-explorers' GAME_NAME='Renowned Explorers: International Society' EXPANSION_ID_MORETOEXPLORE='more-to-explore' EXPANSION_NAME_MORETOEXPLORE='More To Explore' EXPANSION_ID_EMPERORSCHALLENGE='emperors-challenge' EXPANSION_NAME_EMPERORSCHALLENGE='The Emperorʼs Challenge' # Archives ## More To Explore ARCHIVE_BASE_MORETOEXPLORE_LINUX_7_NAME='renowned_explorers_international_society_more_to_explore_dlc_522_26056.sh' ARCHIVE_BASE_MORETOEXPLORE_LINUX_7_MD5='46b6534ff70a9efa4fc21b2ba139b52f' ARCHIVE_BASE_MORETOEXPLORE_LINUX_7_SIZE='68263' ARCHIVE_BASE_MORETOEXPLORE_LINUX_7_VERSION='522-gog26056' ARCHIVE_BASE_MORETOEXPLORE_LINUX_7_URL='https://www.gog.com/game/renowned_explorers_more_to_explore' ARCHIVE_BASE_MORETOEXPLORE_LINUX_6_NAME='renowned_explorers_international_society_more_to_explore_dlc_520_25983.sh' ARCHIVE_BASE_MORETOEXPLORE_LINUX_6_MD5='3d3e97fc73e63ac992c9afa9f620282e' ARCHIVE_BASE_MORETOEXPLORE_LINUX_6_SIZE='69000' ARCHIVE_BASE_MORETOEXPLORE_LINUX_6_VERSION='520-gog25983' ARCHIVE_BASE_MORETOEXPLORE_LINUX_5_NAME='renowned_explorers_international_society_more_to_explore_dlc_516_25864.sh' ARCHIVE_BASE_MORETOEXPLORE_LINUX_5_MD5='db21406827c77caecb92c96bb2f4e473' ARCHIVE_BASE_MORETOEXPLORE_LINUX_5_SIZE='69000' ARCHIVE_BASE_MORETOEXPLORE_LINUX_5_VERSION='516-gog25864' ARCHIVE_BASE_MORETOEXPLORE_LINUX_4_NAME='renowned_explorers_international_society_more_to_explore_dlc_512_25169.sh' ARCHIVE_BASE_MORETOEXPLORE_LINUX_4_MD5='94112f4cfc91fa67855a310618bdeacf' ARCHIVE_BASE_MORETOEXPLORE_LINUX_4_SIZE='69000' ARCHIVE_BASE_MORETOEXPLORE_LINUX_4_VERSION='512-gog25169' ARCHIVE_BASE_MORETOEXPLORE_LINUX_3_NAME='renowned_explorers_international_society_more_to_explore_dlc_508_23701.sh' ARCHIVE_BASE_MORETOEXPLORE_LINUX_3_MD5='5f43443fc81111bc27461e39145c6db6' ARCHIVE_BASE_MORETOEXPLORE_LINUX_3_SIZE='69000' ARCHIVE_BASE_MORETOEXPLORE_LINUX_3_VERSION='508-gog23701' ARCHIVE_BASE_MORETOEXPLORE_LINUX_2_NAME='renowned_explorers_international_society_more_to_explore_dlc_503_23529.sh' ARCHIVE_BASE_MORETOEXPLORE_LINUX_2_MD5='058fa329bbeeb0f8b3a3e7e60dc472bf' ARCHIVE_BASE_MORETOEXPLORE_LINUX_2_SIZE='69000' ARCHIVE_BASE_MORETOEXPLORE_LINUX_2_VERSION='503-gog23529' ARCHIVE_BASE_MORETOEXPLORE_LINUX_1_NAME='renowned_explorers_more_to_explore_dlc_en_489_20916.sh' ARCHIVE_BASE_MORETOEXPLORE_LINUX_1_MD5='cc51077bdcb04086349f81da8b1d19ff' ARCHIVE_BASE_MORETOEXPLORE_LINUX_1_SIZE='69000' ARCHIVE_BASE_MORETOEXPLORE_LINUX_1_VERSION='489-gog20916' ARCHIVE_BASE_MORETOEXPLORE_LINUX_0_NAME='renowned_explorers_more_to_explore_dlc_en_466_15616.sh' ARCHIVE_BASE_MORETOEXPLORE_LINUX_0_MD5='c99ca440cb312b90052939db49aeef03' ARCHIVE_BASE_MORETOEXPLORE_LINUX_0_SIZE='69000' ARCHIVE_BASE_MORETOEXPLORE_LINUX_0_VERSION='466-gog15616' ARCHIVE_BASE_MORETOEXPLORE_WINDOWS_0_NAME='setup_renowned_explorers_more_to_explore_525_(46550).exe' ARCHIVE_BASE_MORETOEXPLORE_WINDOWS_0_MD5='cad29861f3bd3a74e0f8848a31f56845' ARCHIVE_BASE_MORETOEXPLORE_WINDOWS_0_TYPE='innosetup' ARCHIVE_BASE_MORETOEXPLORE_WINDOWS_0_SIZE='74726' ARCHIVE_BASE_MORETOEXPLORE_WINDOWS_0_VERSION='525-gog46550' ARCHIVE_BASE_MORETOEXPLORE_WINDOWS_0_URL='https://www.gog.com/game/renowned_explorers_more_to_explore' ## The Emperor's Challenge ARCHIVE_BASE_EMPERORSCHALLENGE_LINUX_7_NAME='renowned_explorers_international_society_the_emperors_challenge_dlc_522_26056.sh' ARCHIVE_BASE_EMPERORSCHALLENGE_LINUX_7_MD5='e87af99e5a726b06ee5b94d7f94d9f5a' ARCHIVE_BASE_EMPERORSCHALLENGE_LINUX_7_SIZE='21170' ARCHIVE_BASE_EMPERORSCHALLENGE_LINUX_7_VERSION='522-gog26056' ARCHIVE_BASE_EMPERORSCHALLENGE_LINUX_7_URL='https://www.gog.com/game/renowned_explorers_the_emperors_challenge' ARCHIVE_BASE_EMPERORSCHALLENGE_LINUX_6_NAME='renowned_explorers_international_society_the_emperors_challenge_dlc_520_25983.sh' ARCHIVE_BASE_EMPERORSCHALLENGE_LINUX_6_MD5='a2ea1ff34a78c9d3cb389373b6948604' ARCHIVE_BASE_EMPERORSCHALLENGE_LINUX_6_SIZE='22000' ARCHIVE_BASE_EMPERORSCHALLENGE_LINUX_6_VERSION='520-gog25983' ARCHIVE_BASE_EMPERORSCHALLENGE_LINUX_5_NAME='renowned_explorers_international_society_the_emperors_challenge_dlc_516_25864.sh' ARCHIVE_BASE_EMPERORSCHALLENGE_LINUX_5_MD5='cd76b4c9b334d5b859c4dff171ec4c0f' ARCHIVE_BASE_EMPERORSCHALLENGE_LINUX_5_SIZE='22000' ARCHIVE_BASE_EMPERORSCHALLENGE_LINUX_5_VERSION='516-gog25864' ARCHIVE_BASE_EMPERORSCHALLENGE_LINUX_4_NAME='renowned_explorers_international_society_the_emperors_challenge_dlc_512_25169.sh' ARCHIVE_BASE_EMPERORSCHALLENGE_LINUX_4_MD5='b402cec7fbc05fec42be3ae4ff1a26ec' ARCHIVE_BASE_EMPERORSCHALLENGE_LINUX_4_SIZE='22000' ARCHIVE_BASE_EMPERORSCHALLENGE_LINUX_4_VERSION='512-gog25169' ARCHIVE_BASE_EMPERORSCHALLENGE_LINUX_3_NAME='renowned_explorers_international_society_the_emperors_challenge_dlc_508_23701.sh' ARCHIVE_BASE_EMPERORSCHALLENGE_LINUX_3_MD5='7f0b5df5318af767bfb306bd4e3f1e13' ARCHIVE_BASE_EMPERORSCHALLENGE_LINUX_3_SIZE='22000' ARCHIVE_BASE_EMPERORSCHALLENGE_LINUX_3_VERSION='508-gog23701' ARCHIVE_BASE_EMPERORSCHALLENGE_LINUX_2_NAME='renowned_explorers_international_society_the_emperors_challenge_dlc_503_23529.sh' ARCHIVE_BASE_EMPERORSCHALLENGE_LINUX_2_MD5='fb2c6bc1201a3346c47e01f0e7aa136c' ARCHIVE_BASE_EMPERORSCHALLENGE_LINUX_2_SIZE='22000' ARCHIVE_BASE_EMPERORSCHALLENGE_LINUX_2_VERSION='503-gog23529' ARCHIVE_BASE_EMPERORSCHALLENGE_LINUX_1_NAME='renowned_explorers_the_emperor_s_challenge_dlc_en_489_20916.sh' ARCHIVE_BASE_EMPERORSCHALLENGE_LINUX_1_MD5='553e0fa1ffed73c9c99022c20cfff707' ARCHIVE_BASE_EMPERORSCHALLENGE_LINUX_1_SIZE='23000' ARCHIVE_BASE_EMPERORSCHALLENGE_LINUX_1_VERSION='489-gog20916' ARCHIVE_BASE_EMPERORSCHALLENGE_LINUX_0_NAME='renowned_explorers_the_emperor_s_challenge_dlc_en_466_15616.sh' ARCHIVE_BASE_EMPERORSCHALLENGE_LINUX_0_MD5='12baa49b557c92e2f5eae7ff99623d34' ARCHIVE_BASE_EMPERORSCHALLENGE_LINUX_0_SIZE='23000' ARCHIVE_BASE_EMPERORSCHALLENGE_LINUX_0_VERSION='466-gog15616' ARCHIVE_BASE_EMPERORSCHALLENGE_WINDOWS_0_NAME='setup_renowned_explorers_the_emperors_challenge_525_(46550).exe' ARCHIVE_BASE_EMPERORSCHALLENGE_WINDOWS_0_MD5='13bb9e6b93eb98268f6a4be96d67c88a' ARCHIVE_BASE_EMPERORSCHALLENGE_WINDOWS_0_TYPE='innosetup' ARCHIVE_BASE_EMPERORSCHALLENGE_WINDOWS_0_SIZE='27910' ARCHIVE_BASE_EMPERORSCHALLENGE_WINDOWS_0_VERSION='525-gog46550' ARCHIVE_BASE_EMPERORSCHALLENGE_WINDOWS_0_URL='https://www.gog.com/game/renowned_explorers_the_emperors_challenge' CONTENT_PATH_DEFAULT_LINUX='data/noarch/game' CONTENT_PATH_DEFAULT_WINDOWS='.' CONTENT_PATH_DEFAULT_MORETOEXPLORE_LINUX="$CONTENT_PATH_DEFAULT_LINUX" CONTENT_PATH_DEFAULT_MORETOEXPLORE_WINDOWS="$CONTENT_PATH_DEFAULT_WINDOWS" CONTENT_PATH_DEFAULT_EMPERORSCHALLENGE_LINUX="$CONTENT_PATH_DEFAULT_LINUX" CONTENT_PATH_DEFAULT_EMPERORSCHALLENGE_WINDOWS="$CONTENT_PATH_DEFAULT_WINDOWS" CONTENT_GAME_MAIN_FILES=' data/dlc_???.tim' PKG_PARENT_ID_LINUX="${GAME_ID}-bin-linux" PKG_PARENT_ID_WINDOWS="${GAME_ID}-bin-windows" PKG_PARENT_ID_MORETOEXPLORE_LINUX="$PKG_PARENT_ID_LINUX" PKG_PARENT_ID_MORETOEXPLORE_WINDOWS="$PKG_PARENT_ID_WINDOWS" PKG_PARENT_ID_EMPERORSCHALLENGE_LINUX="$PKG_PARENT_ID_LINUX" PKG_PARENT_ID_EMPERORSCHALLENGE_WINDOWS="$PKG_PARENT_ID_WINDOWS" PKG_MAIN_ID_MORETOEXPLORE="${GAME_ID}-${EXPANSION_ID_MORETOEXPLORE}" PKG_MAIN_ID_MORETOEXPLORE_LINUX="${PKG_MAIN_ID_MORETOEXPLORE}-linux" PKG_MAIN_ID_MORETOEXPLORE_WINDOWS="${PKG_MAIN_ID_MORETOEXPLORE}-windows" PKG_MAIN_ID_EMPERORSCHALLENGE="${GAME_ID}-${EXPANSION_ID_EMPERORSCHALLENGE}" PKG_MAIN_ID_EMPERORSCHALLENGE_LINUX="${PKG_MAIN_ID_EMPERORSCHALLENGE}-linux" PKG_MAIN_ID_EMPERORSCHALLENGE_WINDOWS="${PKG_MAIN_ID_EMPERORSCHALLENGE}-windows" PKG_MAIN_PROVIDES_MORETOEXPLORE=" $PKG_MAIN_ID_MORETOEXPLORE" PKG_MAIN_PROVIDES_EMPERORSCHALLENGE=" $PKG_MAIN_ID_EMPERORSCHALLENGE" 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-renowned-explorers.sh0000750000000000000000000001513714471751340016024 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Renowned Explorers: International Society # send your bug reports to vv221@dotslashplay.it ### script_version=20250721.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='renowned-explorers' GAME_NAME='Renowned Explorers: International Society' ARCHIVE_BASE_LINUX_9_NAME='renowned_explorers_international_society_522_26056.sh' ARCHIVE_BASE_LINUX_9_MD5='fe38ae1c4dc2607923cc2a60019bff38' ARCHIVE_BASE_LINUX_9_SIZE='1107554' ARCHIVE_BASE_LINUX_9_VERSION='522-gog26056' ARCHIVE_BASE_LINUX_9_URL='https://www.gog.com/game/renowned_explorers' ARCHIVE_BASE_LINUX_8_NAME='renowned_explorers_international_society_520_25983.sh' ARCHIVE_BASE_LINUX_8_MD5='2af1dedb29ac1b929971cc0912722760' ARCHIVE_BASE_LINUX_8_SIZE='1200000' ARCHIVE_BASE_LINUX_8_VERSION='520-gog25983' ARCHIVE_BASE_LINUX_7_NAME='renowned_explorers_international_society_516_25864.sh' ARCHIVE_BASE_LINUX_7_MD5='d868d4b76613b93a94650b750a52752f' ARCHIVE_BASE_LINUX_7_SIZE='1200000' ARCHIVE_BASE_LINUX_7_VERSION='516-gog25864' ARCHIVE_BASE_LINUX_6_NAME='renowned_explorers_international_society_512_25169.sh' ARCHIVE_BASE_LINUX_6_MD5='3f2eb242da5200a78c53162d152a3cac' ARCHIVE_BASE_LINUX_6_SIZE='1100000' ARCHIVE_BASE_LINUX_6_VERSION='512-gog25169' ARCHIVE_BASE_LINUX_5_NAME='renowned_explorers_international_society_508_23701.sh' ARCHIVE_BASE_LINUX_5_MD5='247551613c7aba4b4b31f7a98fa31949' ARCHIVE_BASE_LINUX_5_SIZE='1100000' ARCHIVE_BASE_LINUX_5_VERSION='508-gog23701' ARCHIVE_BASE_LINUX_4_NAME='renowned_explorers_international_society_503_23529.sh' ARCHIVE_BASE_LINUX_4_MD5='6b7555749bc89cc3dda223e2d43bd838' ARCHIVE_BASE_LINUX_4_SIZE='1100000' ARCHIVE_BASE_LINUX_4_VERSION='503-gog23529' ARCHIVE_BASE_LINUX_3_NAME='renowned_explorers_international_society_en_489_21590.sh' ARCHIVE_BASE_LINUX_3_MD5='9fb2cbe095d437d788eb8ec6402db20b' ARCHIVE_BASE_LINUX_3_SIZE='1100000' ARCHIVE_BASE_LINUX_3_VERSION='489-gog21590' ARCHIVE_BASE_LINUX_2_NAME='renowned_explorers_international_society_en_489_20916.sh' ARCHIVE_BASE_LINUX_2_MD5='42d0ecb54d8302545e78f41ed43acef6' ARCHIVE_BASE_LINUX_2_SIZE='1100000' ARCHIVE_BASE_LINUX_2_VERSION='489-gog20916' ARCHIVE_BASE_LINUX_1_NAME='renowned_explorers_international_society_en_466_15616.sh' ARCHIVE_BASE_LINUX_1_MD5='fbad4b4d361a0e7d29b9781e3c5a5e85' ARCHIVE_BASE_LINUX_1_SIZE='1100000' ARCHIVE_BASE_LINUX_1_VERSION='466-gog15616' ARCHIVE_BASE_LINUX_0_NAME='renowned_explorers_international_society_en_459_14894.sh' ARCHIVE_BASE_LINUX_0_MD5='ff6b368b3919002d2db750213d33fcef' ARCHIVE_BASE_LINUX_0_SIZE='1100000' ARCHIVE_BASE_LINUX_0_VERSION='459-gog14894' ARCHIVE_BASE_WINDOWS_0_NAME='setup_renowned_explorers_international_society_525_(64bit)_(46550).exe' ARCHIVE_BASE_WINDOWS_0_MD5='dbb958ec50e3e39d282a92dac1b0953a' ARCHIVE_BASE_WINDOWS_0_TYPE='innosetup' ARCHIVE_BASE_WINDOWS_0_SIZE='1114877' ARCHIVE_BASE_WINDOWS_0_VERSION='525-gog46550' ARCHIVE_BASE_WINDOWS_0_URL='https://www.gog.com/game/renowned_explorers' CONTENT_GAME_DATA_FILES=' data soundbanks settings.ini *.bni' CONTENT_PATH_DEFAULT_LINUX='data/noarch/game' CONTENT_GAME_BIN64_FILES_LINUX=' x86_64/abbeycore' CONTENT_GAME_BIN32_FILES_LINUX=' x86/abbeycore' CONTENT_PATH_DEFAULT_WINDOWS='.' CONTENT_GAME_BIN64_FILES_WINDOWS=' win64/amd_ags_x64.dll win64/d3d11.dll win64/d3dcompiler_47.dll win64/dxgi.dll win64/abbeycore_win32.exe' ## The Windows build fails to start if the GOG Galaxy librarie are not included. CONTENT_GAME0_BIN64_FILES_WINDOWS=' win64/galaxy64.dll win64/galaxypeer64.dll win64/goggalaxyhooks.dll' CONTENT_GAME_BIN32_FILES_WINDOWS=' win32/amd_ags_x86.dll win32/d3d11.dll win32/d3dcompiler_47.dll win32/dxgi.dll win32/abbeycore_win32.exe' ## The Windows build fails to start if the GOG Galaxy librarie are not included. CONTENT_GAME0_BIN32_FILES_WINDOWS=' win32/galaxy.dll win32/galaxypeer.dll win32/goggalaxyhooks.dll' ## The game renders only a black screen and the mouse cursor ## when using the default wined3d renderer (WINE 10.0). WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/Renowned Explorers International Society' ## The game seems to save files randomly in either "savedata" or "userdata". ## We save both, even if it will probably end up using only one. USER_PERSISTENT_DIRECTORIES_LINUX=' savedata userdata' APP_MAIN_EXE_BIN64_LINUX='x86_64/abbeycore' APP_MAIN_EXE_BIN64_WINDOWS='win64/abbeycore_win32.exe' APP_MAIN_EXE_BIN32_LINUX='x86/abbeycore' APP_MAIN_EXE_BIN32_WINDOWS='win32/abbeycore_win32.exe' APP_MAIN_ICON_LINUX='../support/icon.png' APP_MAIN_ICON_WINDOWS='app/goggame-1435329098.ico' ## Work around inconsistent behaviour with some locales APP_MAIN_PRERUN=' # Work around inconsistent behaviour with some locales export LANG=C ' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN_ID="${GAME_ID}-bin" PKG_BIN_ID_LINUX="${PKG_BIN_ID}-linux" PKG_BIN_ID_WINDOWS="${PKG_BIN_ID}-windows" PKG_BIN_PROVIDES=" $PKG_BIN_ID" PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES_LINUX=' libc++abi.so.1 libc++.so.1 libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libpthread.so.0 libSDL2-2.0.so.0 libX11.so.6 libXcursor.so.1 libXrandr.so.2' ## Ensure easy upgrades from packages generated with pre-20250104.1 game scripts PKG_BIN_PROVIDES="${PKG_BIN_PROVIDES:-} renowned-explorers" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_LINUX="${PKG_DATA_ID}-linux" PKG_DATA_ID_WINDOWS="${PKG_DATA_ID}-windows" PKG_DATA_PROVIDES=" $PKG_DATA_ID" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers APP_MAIN_EXE_BIN64=$(context_value 'APP_MAIN_EXE_BIN64') APP_MAIN_EXE_BIN32=$(context_value 'APP_MAIN_EXE_BIN32') launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-return-to-monkey-island.sh0000750000000000000000000000422014471751340016660 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Return to Monkey Island # send your bug reports to vv221@dotslashplay.it ### script_version=20241126.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='return-to-monkey-island' GAME_NAME='Return to Monkey Island' ARCHIVE_BASE_0_NAME='return_to_monkey_island_1_5_linux_60417.sh' ARCHIVE_BASE_0_MD5='ef405e58f99c56b69bdd1da811b79580' ARCHIVE_BASE_0_SIZE='4477001' ARCHIVE_BASE_0_VERSION='1.5-gog60417' ARCHIVE_BASE_0_URL='https://www.gog.com/game/return_to_monkey_island' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_FILES=' libfmod.so.13 libfmodstudio.so.13' CONTENT_GAME_BIN_FILES=' Return to Monkey Island' CONTENT_GAME_DATA_FILES=' Resources ReturnToMonkeyIsland.png Weird.ggpack??' APP_MAIN_EXE='Return to Monkey Island' APP_MAIN_ICON='ReturnToMonkeyIsland.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 libEGL.so.1 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libuuid.so.1 libX11.so.6 libXi.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-reus-1.sh0000750000000000000000000000763514471751340013302 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Reus # send your bug reports to vv221@dotslashplay.it ### script_version=20250721.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='reus-1' GAME_NAME='Reus' ARCHIVE_BASE_GOG_1_NAME='reus_en_1_6_5_20844.sh' ARCHIVE_BASE_GOG_1_MD5='a768dd2347ac7f6be16ffa9e3f0952c4' ARCHIVE_BASE_GOG_1_SIZE='480000' ARCHIVE_BASE_GOG_1_VERSION='1.6.5-gog20844' ARCHIVE_BASE_GOG_1_URL='https://www.gog.com/game/reus' ARCHIVE_BASE_GOG_0_NAME='gog_reus_2.0.0.2.sh' ARCHIVE_BASE_GOG_0_MD5='25fe7ec93305e804558e4ef8a31fbbf8' ARCHIVE_BASE_GOG_0_SIZE='480000' ARCHIVE_BASE_GOG_0_VERSION='1.5.1-gog2.0.0.2' ARCHIVE_BASE_HUMBLE_1_NAME='reus-linux-1.6.5.tar.gz' ARCHIVE_BASE_HUMBLE_1_MD5='2b61251f7aa41542db03a1fe637b57dc' ARCHIVE_BASE_HUMBLE_1_SIZE='480000' ARCHIVE_BASE_HUMBLE_1_VERSION='1.6.5-humble180612' ARCHIVE_BASE_HUMBLE_1_URL='https://www.humblebundle.com/store/reus' ARCHIVE_BASE_HUMBLE_0_NAME='reus_linux_1389636757-bin' ARCHIVE_BASE_HUMBLE_0_MD5='9914e7fcb5f3b761941169ae13ec205c' ARCHIVE_BASE_HUMBLE_0_SIZE='380000' ARCHIVE_BASE_HUMBLE_0_VERSION='0.beta-humble140113' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='.' CONTENT_PATH_DEFAULT_HUMBLE_0='data' CONTENT_GAME_MAIN_FILES=' Audio Cursors Effects Fonts MainMenu Particles Settings Skeletons Textures UI Reus.exe Reus.bmp FNA.dll FNA.dll.config Game.*.dll Newtonsoft.Json.dll Reus.*.dll SpaceTech.dll SpaceTech.*.dll SpaceTech.*.dll.config SpaceTech2D.dll' CONTENT_DOC_MAIN_FILES=' Linux.README' ## Include shipped libraries that can not be replaced by system ones. CONTENT_LIBS_FILES=' libFontNative.so libmojoshader.so libtheorafile.so' CONTENT_LIBS_LIBS64_RELATIVE_PATH='lib64' CONTENT_LIBS_LIBS64_FILES="$CONTENT_LIBS_FILES libfmodevent64-4.44.00.so libfmodex64-4.44.00.so" CONTENT_LIBS_LIBS32_RELATIVE_PATH='lib' CONTENT_LIBS_LIBS32_FILES="$CONTENT_LIBS_FILES libfmodevent-4.44.00.so libfmodex-4.44.00.so" APP_MAIN_EXE='Reus.exe' APP_MAIN_ICON='Reus.bmp' PACKAGES_LIST=' PKG_MAIN PKG_LIBS64 PKG_LIBS32' PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_LIBS' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libSDL2-2.0.so.0 libSDL2_image-2.0.so.0' PKG_MAIN_DEPENDENCIES_MONO_LIBRARIES=' mscorlib.dll Microsoft.CSharp.dll Mono.CSharp.dll Mono.Posix.dll Mono.Security.dll System.dll System.Configuration.dll System.Core.dll System.Data.dll System.Design.dll System.Drawing.dll System.Management.dll System.Numerics.dll System.Runtime.Serialization.dll System.Security.dll System.Transactions.dll System.Xml.dll System.Xml.Linq.dll' ## Ensure easy upgrade from pre-20250429.2 packages PKG_MAIN_PROVIDES="${PKG_MAIN_PROVIDES:-} reus" PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS64_ARCH='64' PKG_LIBS32_ARCH='32' PKG_LIBS_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libfreetype.so.6 libm.so.6 libogg.so.0 libpthread.so.0 libstdc++.so.6 libtheoradec.so.1 libvorbis.so.0' ## Ensure easy upgrade from pre-20250429.2 packages PKG_LIBS_PROVIDES="${PKG_LIBS_PROVIDES:-} reus-libs" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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_MAIN' content_inclusion_default # Write launchers launchers_generation 'PKG_MAIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-reus-2.sh0000750000000000000000000000371614471751340013277 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2025 Antoine Le Gonidec set -o errexit ### # Reus 2 # send your bug reports to vv221@dotslashplay.it ### script_version=20250719.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='reus-2' GAME_NAME='Reus 2' ARCHIVE_BASE_1_NAME='setup_reus_2_1.8.0_(83653).exe' ARCHIVE_BASE_1_MD5='2ced0663287c4540efaffac336d42b88' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='3858778' ARCHIVE_BASE_1_VERSION='1.8.0-gog83653' ARCHIVE_BASE_1_URL='https://www.gog.com/game/reus_2' ARCHIVE_BASE_0_NAME='setup_reus_2_1.6.3_(80797).exe' ARCHIVE_BASE_0_MD5='7d8a3aa3d7f7457cf8ef4fba979e3a7e' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='3234044' ARCHIVE_BASE_0_VERSION='1.6.3-gog80797' UNITY3D_NAME='reus 2' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Abbey Games/Reus 2' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run 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-roadwarden.sh0000750000000000000000000000560714471751340014311 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Roadwarden # send your bug reports to vv221@dotslashplay.it ### script_version=20241126.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='roadwarden' GAME_NAME='Roadwarden' ARCHIVE_BASE_4_NAME='roadwarden_1_1_31_67621.sh' ARCHIVE_BASE_4_MD5='c5ce0e6b2b92a0ca49ab0bd06e018957' ARCHIVE_BASE_4_SIZE='867056' ARCHIVE_BASE_4_VERSION='1.1.31-gog67621' ARCHIVE_BASE_4_URL='https://www.gog.com/game/roadwarden' ARCHIVE_BASE_3_NAME='roadwarden_1_1_2_67478.sh' ARCHIVE_BASE_3_MD5='f62eb9f3027ea9b6fb4f76b87cc71471' ARCHIVE_BASE_3_SIZE='867052' ARCHIVE_BASE_3_VERSION='1.1.2-gog67478' ARCHIVE_BASE_2_NAME='roadwarden_1_0_92_63495.sh' ARCHIVE_BASE_2_MD5='1808e2f215bdca65324b909f2706574b' ARCHIVE_BASE_2_SIZE='870000' ARCHIVE_BASE_2_VERSION='1.0.92-gog63495' ARCHIVE_BASE_1_NAME='roadwarden_1_0_9_62941.sh' ARCHIVE_BASE_1_MD5='4fa5f13a40a2ae3e287493298e326e96' ARCHIVE_BASE_1_SIZE='870000' ARCHIVE_BASE_1_VERSION='1.0.9-gog62941' ARCHIVE_BASE_1_URL='https://www.gog.com/game/roadwarden' ARCHIVE_BASE_0_NAME='roadwarden_1_0_8_61761.sh' ARCHIVE_BASE_0_MD5='659218d7803632a38f8e72e4f4f83a26' ARCHIVE_BASE_0_SIZE='870000' ARCHIVE_BASE_0_VERSION='1.0.8-gog61761' CONTENT_PATH_DEFAULT='data/noarch/game/game' CONTENT_FONTS_MAIN_FILES=' munro.ttf philosopher.ttf' CONTENT_GAME_MAIN_FILES=' areas audio cache gui images tl script_version.txt *.png *.rpy *.rpyc *.ttf' APP_MAIN_TYPE='renpy' APP_MAIN_ICON='../../support/icon.png' ## Ensure easy upgrades from packages generated with pre-20240427.1 game scripts. PKG_MAIN_PROVIDES="${PKG_MAIN_PROVIDES:-} roadwarden-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default ## Link the fonts in the hardcoded path the game engine expects. fonts_source=$(path_fonts_ttf) fonts_destination="$(package_path "$(current_package)")$(path_game_data)" mkdir --parents "$fonts_destination" for font_file in \ 'munro.ttf' \ 'philosopher.ttf' do ln --symbolic "${fonts_source}/${font_file}" "$fonts_destination" done # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-sales-gosses.sh0000750000000000000000000000623714471751340014573 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Sales Gosses # send your bug reports to vv221@dotslashplay.it ### script_version=20250610.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='sales-gosses' GAME_NAME='Sales Gosses !' ARCHIVE_BASE_4_NAME='little-brats-4.2-gnunux.tar.gz' ARCHIVE_BASE_4_MD5='c818f5582d1c0f46c08c58f9343a0b52' ARCHIVE_BASE_4_SIZE='245380' ARCHIVE_BASE_4_VERSION='4.2-itch.2025.04.15' ARCHIVE_BASE_4_URL='https://ptilouk.itch.io/little-brats' ARCHIVE_BASE_3_NAME='little-brats-4.1-gnunux.tar.gz' ARCHIVE_BASE_3_MD5='0a89edc5a989b828b29697f70f89fbff' ARCHIVE_BASE_3_SIZE='245352' ARCHIVE_BASE_3_VERSION='4.1-itch.2025.03.21' ARCHIVE_BASE_2_NAME='little-brats-3.2-gnunux.tar.gz' ARCHIVE_BASE_2_MD5='a9f9925168fcfb82a260d0d6b3ea6221' ARCHIVE_BASE_2_SIZE='225679' ARCHIVE_BASE_2_VERSION='3.2-itch.2025.02.04' ARCHIVE_BASE_1_NAME='little-brats-3.1-gnunux.tar.gz' ARCHIVE_BASE_1_MD5='0d89b9d55c2873ce0407070d181e03fa' ARCHIVE_BASE_1_SIZE='225679' ARCHIVE_BASE_1_VERSION='3.1-itch.2024.12.28' ARCHIVE_BASE_0_NAME='little-brats-2.2-gnunux.tar.gz' ARCHIVE_BASE_0_MD5='d8518a619ccb1391311204557ac9441c' ARCHIVE_BASE_0_SIZE='211184' ARCHIVE_BASE_0_VERSION='2.2-itch.2024.11.12' CONTENT_PATH_DEFAULT_4='little-brats-4.2-gnunux' CONTENT_PATH_DEFAULT_3='little-brats-4.1-gnunux' CONTENT_PATH_DEFAULT_2='little-brats-3.2-gnunux' CONTENT_PATH_DEFAULT_1='little-brats-3.1-gnunux' CONTENT_PATH_DEFAULT_0='little-brats-2.2-gnunux' CONTENT_GAME_BIN_RELATIVE_PATH='lib/little-brats' CONTENT_GAME_BIN_FILES=' little-brats.x86_64' CONTENT_GAME_DATA_RELATIVE_PATH='share/little-brats' CONTENT_GAME_DATA_FILES=' little-brats.pck little-brats-*-resource-pack.pck' APP_MAIN_EXE='little-brats.x86_64' APP_MAIN_OPTIONS='--main-pack "${PWD}/little-brats.pck" --pack-path "${PWD}"' 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 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 # Include game data install -D --mode=644 --no-target-directory \ "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/share/icons/little-brats.svg" \ "$(package_path 'PKG_DATA')$(path_icons)/scalable/apps/$(game_id).svg" content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-sam-and-max-hit-the-road.sh0000750000000000000000000000524614471751340016550 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2015 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2020 macaron set -o errexit ### # Sam and Max Hit the Road # send your bug reports to vv221@dotslashplay.it ### script_version=20250103.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='sam-and-max-hit-the-road' GAME_NAME='Sam & Max Hit the Road' ARCHIVE_BASE_EN_1_NAME='sam_and_max_hit_the_road_en_gog_2_20100.sh' ARCHIVE_BASE_EN_1_MD5='0771889c051c7e1cc6e6c8e8ca8fbe1f' ARCHIVE_BASE_EN_1_SIZE='390000' ARCHIVE_BASE_EN_1_VERSION='1.0-gog20100' ARCHIVE_BASE_EN_1_URL='https://www.gog.com/game/sam_max_hit_the_road' ARCHIVE_BASE_FR_1_NAME='sam_and_max_hit_the_road_fr_gog_2_20100.sh' ARCHIVE_BASE_FR_1_MD5='52b35282832b477c7f1bb06688ba3b95' ARCHIVE_BASE_FR_1_SIZE='280000' ARCHIVE_BASE_FR_1_VERSION='1.0-gog20100' ARCHIVE_BASE_FR_1_URL='https://www.gog.com/game/sam_max_hit_the_road' ARCHIVE_BASE_EN_0_NAME='gog_sam_max_hit_the_road_2.0.0.8.sh' ARCHIVE_BASE_EN_0_MD5='00e6de62115b581f01f49354212ce545' ARCHIVE_BASE_EN_0_SIZE='270000' ARCHIVE_BASE_EN_0_VERSION='1.0-gog2.0.0.1' ARCHIVE_BASE_FR_0_NAME='gog_sam_max_hit_the_road_french_2.0.0.8.sh' ARCHIVE_BASE_FR_0_MD5='127be643ebaa9af24ddd9f2618e4433e' ARCHIVE_BASE_FR_0_SIZE='160000' ARCHIVE_BASE_FR_0_VERSION='1.0-gog2.0.0.1' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' samnmax.000 samnmax.001 monster.so[3fgu]' CONTENT_DOC_MAIN_PATH_EN='data/noarch/docs/english' CONTENT_DOC_MAIN_PATH_FR='data/noarch/docs/french' CONTENT_DOC_MAIN_FILES=' *.pdf' APP_MAIN_SCUMMID='scumm:samnmax' APP_MAIN_ICON='../support/icon.png' PKG_MAIN_ID="$GAME_ID" PKG_MAIN_ID_EN="${PKG_MAIN_ID}-en" PKG_MAIN_ID_FR="${PKG_MAIN_ID}-fr" PKG_MAIN_PROVIDES=" $PKG_MAIN_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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-scrapland.sh0000750000000000000000000001014414471751340014122 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Scrapland # send your bug reports to vv221@dotslashplay.it ### script_version=20250721.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='scrapland' GAME_NAME='Scrapland' ARCHIVE_BASE_0_NAME='setup_scrapland_remastered_1.6.1_(52159).exe' ARCHIVE_BASE_0_MD5='5f1a6494309632a2536c46e2bf3226bc' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_scrapland_remastered_1.6.1_(52159)-1.bin' ARCHIVE_BASE_0_PART1_MD5='93c07bedabd25a0d63c7ae36cf5abd47' ARCHIVE_BASE_0_PART2_NAME='setup_scrapland_remastered_1.6.1_(52159)-2.bin' ARCHIVE_BASE_0_PART2_MD5='8543d603b9c8eb6d666aec35387c311c' ARCHIVE_BASE_0_SIZE='8943631' ARCHIVE_BASE_0_VERSION='1.6.1-gog52159' ARCHIVE_BASE_0_URL='https://www.gog.com/game/scrapland_remastered' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' bin dedicated scrap.cfg' CONTENT_GAME_L10N_EN_FILES=' language/english.txt video/bishop.vds video/intro.vds video/mayor.vds video/police.vds video/viscous.vds english.packed' CONTENT_GAME_L10N_FR_FILES=' language/french.txt french.packed' CONTENT_GAME_DATA_FILES=' video/mse.vds video/mse-short.vds data.packed data??.packed' CONTENT_VIDEO_L10N_FR_PATH='video/french' CONTENT_VIDEO_L10N_FR_FILES=' *.vds' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/MercurySteam/Scrapland' APP_MAIN_EXE='bin/scrap.exe' PACKAGES_LIST=' PKG_BIN PKG_L10N_EN PKG_L10N_FR PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N PKG_DATA' PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/x-msvideo' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_EN_ID="${PKG_L10N_ID}-en" PKG_L10N_FR_ID="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_EN_DESCRIPTION='English localization' PKG_L10N_FR_DESCRIPTION='English localization' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' ## Include language setting file language_file_origin="${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/goggame-1688988400.info" language_file_l10n_en_destination="$(package_path 'PKG_L10N_EN')$(path_game_data)/goggame-1688988400.info" language_file_l10n_fr_destination="$(package_path 'PKG_L10N_FR')$(path_game_data)/goggame-1688988400.info" mkdir --parents \ "$(dirname "$language_file_l10n_en_destination")" \ "$(dirname "$language_file_l10n_fr_destination")" sed --expression='s/"language": ".*",/"language": "English",/' \ "$language_file_origin" > "$language_file_l10n_en_destination" sed --expression='s/"language": ".*",/"language": "French",/' \ "$language_file_origin" > "$language_file_l10n_fr_destination" ## Include videos in the French localization content_inclusion 'VIDEO_L10N_FR' 'PKG_L10N_FR' "$(path_game_data)/video" content_inclusion_default # Write launchers ## Run the game binary from its parent directory game_exec_line() { cat <<- 'EOF' cd bin $(wine_command) scrap.exe "$@" EOF } launchers_generation 'PKG_BIN' # Build packages packages_generation case "$(messages_language)" in ('fr') lang_string='version %s :' lang_en='anglaise' lang_fr='française' ;; ('en'|*) lang_string='%s version:' lang_en='English' lang_fr='French' ;; esac printf '\n' printf "$lang_string" "$lang_en" print_instructions 'PKG_L10N_EN' 'PKG_DATA' 'PKG_BIN' printf "$lang_string" "$lang_fr" print_instructions 'PKG_L10N_FR' 'PKG_DATA' 'PKG_BIN' # Clean up working_directory_cleanup exit 0 games/play-shadow-gambit-expansions.sh0000750000000000000000000000437614471751340017100 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Shadow Gambit expansions: # - Yuki's Wish # - Zagan's Ritual # send your bug reports to vv221@dotslashplay.it ### script_version=20241023.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='shadow-gambit' GAME_NAME='Shadow Gambit: The Cursed Crew' EXPANSION_ID_YUKI='yukis-wish' EXPANSION_NAME_YUKI='Yuki’s Wish' EXPANSION_ID_ZAGAN='zagans-ritual' EXPANSION_NAME_ZAGAN='Zagan’s Ritual' # Archives ## Yuki's Wish ARCHIVE_BASE_YUKI_0_NAME='setup_shadow_gambit_the_cursed_crew__dlctrp_1.2.133.f.r40893_(64bit)_(69829).exe' ARCHIVE_BASE_YUKI_0_MD5='da9c4f3c92dc2eec996592f3e96acf33' ARCHIVE_BASE_YUKI_0_TYPE='innosetup' ARCHIVE_BASE_YUKI_0_SIZE='7198' ARCHIVE_BASE_YUKI_0_VERSION='1.2.133.f-gog69829' ARCHIVE_BASE_YUKI_0_URL='https://www.gog.com/game/shadow_gambit_yukis_wish' ## Zagan's Ritual ARCHIVE_BASE_ZAGAN_0_NAME='setup_shadow_gambit_the_cursed_crew__dlcchc_1.2.133.f.r40893_(64bit)_(69829).exe' ARCHIVE_BASE_ZAGAN_0_MD5='a715770254fe1f451c616503c19ecb2e' ARCHIVE_BASE_ZAGAN_0_TYPE='innosetup' ARCHIVE_BASE_ZAGAN_0_SIZE='7058' ARCHIVE_BASE_ZAGAN_0_VERSION='1.2.133.f-gog69829' ARCHIVE_BASE_ZAGAN_0_URL='https://www.gog.com/game/shadow_gambit_zagans_ritual' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES=' goggame-*.info' PKG_PARENT_ID="$GAME_ID" PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_PARENT' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_default # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-shadow-gambit.sh0000750000000000000000000001622514471751340014707 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Shadow Gambit # send your bug reports to vv221@dotslashplay.it ### script_version=20241023.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='shadow-gambit' GAME_NAME='Shadow Gambit: The Cursed Crew' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" ARCHIVE_BASE_0_NAME='setup_shadow_gambit_the_cursed_crew_1.2.133.f.r40893_(64bit)_(69829).exe' ARCHIVE_BASE_0_MD5='b394c7866b3e2106b8659f76dcf3b814' ARCHIVE_BASE_0_EXTRACTOR='innoextract' ## Do not convert the paths to lower case. ARCHIVE_BASE_0_EXTRACTOR_OPTIONS=' ' ARCHIVE_BASE_0_PART1_NAME='setup_shadow_gambit_the_cursed_crew_1.2.133.f.r40893_(64bit)_(69829)-1.bin' ARCHIVE_BASE_0_PART1_MD5='33d84cef13cae8cb1a27e03101cda2cc' ARCHIVE_BASE_0_PART2_NAME='setup_shadow_gambit_the_cursed_crew_1.2.133.f.r40893_(64bit)_(69829)-2.bin' ARCHIVE_BASE_0_PART2_MD5='aa475cf51a8a6b9f151a63e7f8acd226' ARCHIVE_BASE_0_PART3_NAME='setup_shadow_gambit_the_cursed_crew_1.2.133.f.r40893_(64bit)_(69829)-3.bin' ARCHIVE_BASE_0_PART3_MD5='8019f8a20edf33e894a49ccc84fdf867' ARCHIVE_BASE_0_PART4_NAME='setup_shadow_gambit_the_cursed_crew_1.2.133.f.r40893_(64bit)_(69829)-4.bin' ARCHIVE_BASE_0_PART4_MD5='d499dd2ab3f31e1ddb7c6b6c6f9d35c7' ARCHIVE_BASE_0_SIZE='27989056' ARCHIVE_BASE_0_VERSION='1.2.133.f-gog69829' ARCHIVE_BASE_0_URL='https://www.gog.com/game/shadow_gambit_the_cursed_crew' ARCHIVE_BASE_DEMO_0_NAME='setup_shadow_gambit_the_cursed_crew_demo_1.0.46.r37840.d_(64bit)_(66564).exe' ARCHIVE_BASE_DEMO_0_MD5='ad6c5d562cb5166301b82311495eb4fc' ARCHIVE_BASE_DEMO_0_EXTRACTOR='innoextract' ## Do not convert the paths to lower case. ARCHIVE_BASE_DEMO_0_EXTRACTOR_OPTIONS=' ' ARCHIVE_BASE_DEMO_0_PART1_NAME='setup_shadow_gambit_the_cursed_crew_demo_1.0.46.r37840.d_(64bit)_(66564)-1.bin' ARCHIVE_BASE_DEMO_0_PART1_MD5='2ed0f7c0fe3bcba3cfe562ff687743cc' ARCHIVE_BASE_DEMO_0_PART2_NAME='setup_shadow_gambit_the_cursed_crew_demo_1.0.46.r37840.d_(64bit)_(66564)-2.bin' ARCHIVE_BASE_DEMO_0_PART2_MD5='cf8746aaa4ff9b40366c562367155876' ARCHIVE_BASE_DEMO_0_PART3_NAME='setup_shadow_gambit_the_cursed_crew_demo_1.0.46.r37840.d_(64bit)_(66564)-3.bin' ARCHIVE_BASE_DEMO_0_PART3_MD5='190c8d547cd6f3217a10038079431c9c' ARCHIVE_BASE_DEMO_0_SIZE='15729374' ARCHIVE_BASE_DEMO_0_VERSION='1.0.46-gog66564' ARCHIVE_BASE_DEMO_0_URL='https://www.gog.com/game/shadow_gambit_the_cursed_crew_demo' UNITY3D_NAME='ShadowGambit_TCC' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_DATA_EXPANSION_YUKI_FILES=" ${UNITY3D_NAME}_Data/StreamingAssets/aa/StandaloneWindows64/dlctrp_content_00" CONTENT_GAME_DATA_EXPANSION_ZAGAN_FILES=" ${UNITY3D_NAME}_Data/StreamingAssets/aa/StandaloneWindows64/dlcchc_content_00" CONTENT_GAME_DATA_BUNDLES1_FILES=" ${UNITY3D_NAME}_Data/StreamingAssets/aa/StandaloneWindows64/mis_*" CONTENT_GAME_DATA_BUNDLES2_FILES=" ${UNITY3D_NAME}_Data/StreamingAssets/aa/StandaloneWindows64/main_*" CONTENT_GAME_DATA_BUNDLES3_FILES=" ${UNITY3D_NAME}_Data/StreamingAssets/aa/StandaloneWindows64" WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Local/ShadowGambit_TCC' WINE_PERSISTENT_DIRECTORIES_DEMO=' users/${USER}/AppData/Local/ShadowGambit_TCC_Demo' PACKAGES_LIST=' PKG_BIN PKG_DATA_EXPANSION_YUKI PKG_DATA_EXPANSION_ZAGAN PKG_DATA_BUNDLES1 PKG_DATA_BUNDLES2 PKG_DATA_BUNDLES3 PKG_DATA' PACKAGES_LIST_DEMO=' PKG_BIN PKG_DATA_BUNDLES1 PKG_DATA_BUNDLES2 PKG_DATA_BUNDLES3 PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_DATA_EXPANSION_YUKI PKG_DATA_EXPANSION_ZAGAN PKG_DATA_BUNDLES1 PKG_DATA_BUNDLES2 PKG_DATA_BUNDLES3' PKG_DATA_DEPENDENCIES_SIBLINGS_DEMO=' PKG_DATA_BUNDLES1 PKG_DATA_BUNDLES2 PKG_DATA_BUNDLES3' PKG_DATA_EXPANSION_ID="${PKG_DATA_ID}-expansion" PKG_DATA_EXPANSION_YUKI_ID="${PKG_DATA_EXPANSION_ID}-yuki" PKG_DATA_EXPANSION_ZAGAN_ID="${PKG_DATA_EXPANSION_ID}-zagan" PKG_DATA_EXPANSION_DESCRIPTION="$PKG_DATA_DESCRIPTION - expansion" PKG_DATA_EXPANSION_YUKI_DESCRIPTION="$PKG_DATA_EXPANSION_DESCRIPTION - Yuki's Wish" PKG_DATA_EXPANSION_ZAGAN_DESCRIPTION="$PKG_DATA_EXPANSION_DESCRIPTION - Zagan's Ritual" PKG_DATA_BUNDLES_ID="${PKG_DATA_ID}-bundles" PKG_DATA_BUNDLES1_ID="${PKG_DATA_BUNDLES_ID}-1" PKG_DATA_BUNDLES2_ID="${PKG_DATA_BUNDLES_ID}-2" PKG_DATA_BUNDLES3_ID="${PKG_DATA_BUNDLES_ID}-3" PKG_DATA_BUNDLES_ID_DEMO="${PKG_DATA_ID_DEMO}-bundles" PKG_DATA_BUNDLES1_ID_DEMO="${PKG_DATA_BUNDLES_ID_DEMO}-1" PKG_DATA_BUNDLES2_ID_DEMO="${PKG_DATA_BUNDLES_ID_DEMO}-2" PKG_DATA_BUNDLES3_ID_DEMO="${PKG_DATA_BUNDLES_ID_DEMO}-3" PKG_DATA_BUNDLES_DESCRIPTION="$PKG_DATA_DESCRIPTION - bundles" PKG_DATA_BUNDLES1_DESCRIPTION="$PKG_DATA_BUNDLES_DESCRIPTION - 1" PKG_DATA_BUNDLES2_DESCRIPTION="$PKG_DATA_BUNDLES_DESCRIPTION - 2" PKG_DATA_BUNDLES3_DESCRIPTION="$PKG_DATA_BUNDLES_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 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 ## Store the game prefix into the WINE prefix, instead of using a symbolic link ## This is required for the expansions to be correctly detected ## The generated launchers will ignore $PLAYIT_PREFIX_PATH launcher_path_prefix() { local game_id game_id=$(game_id) cat <<- EOF ## Set the path to the volatile game prefix ## This launcher ignores \$PLAYIT_PREFIX_PATH path_prefix() { # Store the game prefix into the WINE prefix, instead of using a symbolic link # This is required for the expansions to be correctly detected printf '%s/drive_c/%s' \\ "\$PATH_WINEPREFIX" \\ '$(game_id)' } PATH_PREFIX=\$(path_prefix) EOF } wine_wineprefix_init_actions() { cat <<- 'EOF' ## Do not link the game prefix into the WINE prefix, as its real path is already there ## Remove most links pointing outside of the WINE prefix rm "$WINEPREFIX/dosdevices/z:" find "$WINEPREFIX/drive_c/users/$(whoami)" -type l | while read -r directory; do rm "$directory" mkdir "$directory" done unset directory ## Set symbolic links to the legacy paths wineprefix_legacy_link 'AppData/Roaming' 'Application Data' wineprefix_legacy_link 'AppData/Local' 'Local Settings/Application Data' wineprefix_legacy_link 'Documents' 'My Documents' EOF } launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-shadow-tactics.sh0000750000000000000000000001122614471751340015072 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Shadow Tactics: # - Shadow Tactics: Blades of the Shogun # - Aiko's Choice # send your bug reports to vv221@dotslashplay.it ### script_version=20241227.5 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID_BLADES='shadow-tactics' GAME_NAME_BLADES='Shadow Tactics: Blades of the Shogun' GAME_ID_BLADES_DEMO="${GAME_ID_BLADES}-demo" GAME_NAME_BLADES_DEMO="$GAME_NAME_BLADES (demo)" GAME_ID_AIKO='shadow-tactics-aikos-choice' GAME_NAME_AIKO='Shadow Tactics: Blades of the Shogun - Aikoʼs Choice' ARCHIVE_BASE_BLADES_1_NAME='shadow_tactics_blades_of_the_shogun_en_2_2_10_f_21297.sh' ARCHIVE_BASE_BLADES_1_MD5='e7772e7a5f4fee760e9311a9a899dbb3' ARCHIVE_BASE_BLADES_1_SIZE='7642154' ARCHIVE_BASE_BLADES_1_VERSION='2.2.10.f-gog21297' ARCHIVE_BASE_BLADES_1_URL='https://www.gog.com/game/shadow_tactics_blades_of_the_shogun' ARCHIVE_BASE_BLADES_0_NAME='shadow_tactics_blades_of_the_shogun_en_1_4_4_f_14723.sh' ARCHIVE_BASE_BLADES_0_MD5='93faa090d5bcaa22f0faabd1e32c5909' ARCHIVE_BASE_BLADES_0_SIZE='9600000' ARCHIVE_BASE_BLADES_0_VERSION='1.4.4.f-gog14723' ARCHIVE_BASE_BLADES_DEMO_0_NAME='shadow_tactics_blades_of_the_shogun_demo_en_1_4_4_d_14915.sh' ARCHIVE_BASE_BLADES_DEMO_0_MD5='9238093a25ce9c911d9f19789ca18878' ARCHIVE_BASE_BLADES_DEMO_0_SIZE='2764963' ARCHIVE_BASE_BLADES_DEMO_0_VERSION='1.4.4.d-gog14915' ARCHIVE_BASE_BLADES_DEMO_0_URL='https://www.gog.com/game/shadow_tactics_demo' ARCHIVE_BASE_AIKO_0_NAME='setup_shadow_tactics_blades_of_the_shogun_-_aikos_choice_3.2.25.f.r4769a_(51855).exe' ARCHIVE_BASE_AIKO_0_MD5='5e0cfcc243f249fded7906fea04f6544' ARCHIVE_BASE_AIKO_0_TYPE='innosetup' ARCHIVE_BASE_AIKO_0_PART1_NAME='setup_shadow_tactics_blades_of_the_shogun_-_aikos_choice_3.2.25.f.r4769a_(51855)-1.bin' ARCHIVE_BASE_AIKO_0_PART1_MD5='8bdc4420659b2382d742165fddb09705' ARCHIVE_BASE_AIKO_0_SIZE='4569291' ARCHIVE_BASE_AIKO_0_VERSION='3.2.25.f.r4769a-gog51855' ARCHIVE_BASE_AIKO_0_URL='https://www.gog.com/game/shadow_tactics_blades_of_the_shogun_aikos_choice' UNITY3D_NAME_BLADES='Shadow Tactics' UNITY3D_NAME_AIKO='shadow tactics' UNITY3D_PLUGINS_BLADES=' libRenderingPlugin.so ScreenSelector.so' CONTENT_PATH_DEFAULT_BLADES='data/noarch/game' CONTENT_PATH_DEFAULT_AIKO='.' CONTENT_GAME_LIGHTING_FILES_BLADES=" ${UNITY3D_NAME_BLADES}_Data/GI" ## Aiko's Choice WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Local/Daedalic Entertainment GmbH/Shadow Tactics Blades of the Shogun Aikos Choice' PACKAGES_LIST_BLADES=' PKG_BIN PKG_LIGHTING PKG_DATA' PACKAGES_LIST_AIKO=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS_BLADES=' PKG_LIGHTING PKG_DATA' PKG_BIN_DEPENDENCIES_SIBLINGS_AIKO=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES_BLADES=' 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' ## Blades of the Shogun PKG_LIGHTING_ID_BLADES="${GAME_ID_BLADES}-lighting" PKG_LIGHTING_ID_BLADES_DEMO="${GAME_ID_BLADES_DEMO}-lighting" PKG_LIGHTING_DESCRIPTION='lighting' PKG_DATA_ID_BLADES="${GAME_ID_BLADES}-data" PKG_DATA_ID_BLADES_DEMO="${GAME_ID_BLADES_DEMO}-data" PKG_DATA_ID_AIKO="${GAME_ID_AIKO}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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 ## Blades of the Shogun - Link libRenderingPlugin.so to the harcoded path expected by the game engine case "$(current_archive)" in ('ARCHIVE_BASE_BLADES_'*) file_destination="$(package_path 'PKG_BIN')$(path_game_data)/$(unity3d_name)_Data/Plugins/x86/libRenderingPlugin.so" mkdir --parents "$(dirname "$file_destination")" ln --symbolic "$(path_libraries)/libRenderingPlugin.so" "$file_destination" ;; esac # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-shadowrun-trilogy.sh0000750000000000000000000001267714471751340015671 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2015 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2017 Mopi set -o errexit ### # Shadowrun trilogy: # - Shadowrun Returns # - Shadowrun: Dragonfall # - Shadowrun: Hong Kong # send your bug reports to vv221@dotslashplay.it ### script_version=20241226.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID_RETURNS='shadowrun-returns' GAME_NAME_RETURNS='Shadowrun Returns' GAME_ID_DRAGONFALL='shadowrun-dragonfall' GAME_NAME_DRAGONFALL='Shadowrun: Dragonfall' GAME_ID_HONGKONG='shadowrun-hong-kong' GAME_NAME_HONGKONG='Shadowrun: Hong Kong' # Archives ## Shadowrun Returns ARCHIVE_BASE_RETURNS_GOG_1_NAME='gog_shadowrun_returns_2.0.0.7.sh' ARCHIVE_BASE_RETURNS_GOG_1_MD5='61c12b14c7e6040cb1465390320a61da' ARCHIVE_BASE_RETURNS_GOG_1_SIZE='3000000' ARCHIVE_BASE_RETURNS_GOG_1_VERSION='1.2.7-gog2.0.0.7' ARCHIVE_BASE_RETURNS_GOG_1_URL='https://www.gog.com/game/shadowrun_returns' ARCHIVE_BASE_RETURNS_GOG_0_NAME='gog_shadowrun_returns_2.0.0.5.sh' ARCHIVE_BASE_RETURNS_GOG_0_MD5='feb59e116eb3fd7a12f484a135e37fa4' ARCHIVE_BASE_RETURNS_GOG_0_SIZE='3000000' ARCHIVE_BASE_RETURNS_GOG_0_VERSION='1.2.7-gog2.0.0.5' ARCHIVE_BASE_RETURNS_HUMBLE_0_NAME='shadowrun-returns-linux127.tar.gz' ARCHIVE_BASE_RETURNS_HUMBLE_0_MD5='ff3146b1ad046f81bf8f3deba277e472' ARCHIVE_BASE_RETURNS_HUMBLE_0_SIZE='3000000' ARCHIVE_BASE_RETURNS_HUMBLE_0_VERSION='1.2.7-humble140311' ARCHIVE_BASE_RETURNS_HUMBLE_0_URL='https://www.humblebundle.com/store/shadowrun-returns' ## Shadowrun: Dragonfall ARCHIVE_BASE_DRAGONFALL_0_NAME='gog_shadowrun_dragonfall_director_s_cut_2.6.0.11.sh' ARCHIVE_BASE_DRAGONFALL_0_MD5='ee3db5bc8554852337b063b993f66012' ARCHIVE_BASE_DRAGONFALL_0_SIZE='7200000' ARCHIVE_BASE_DRAGONFALL_0_VERSION='2.0.9-gog2.6.0.11' ARCHIVE_BASE_DRAGONFALL_0_URL='https://www.gog.com/game/shadowrun_dragonfall_directors_cut' ## Shadowrun: Hong Kong ARCHIVE_BASE_HONGKONG_0_NAME='gog_shadowrun_hong_kong_extended_edition_2.8.0.11.sh' ARCHIVE_BASE_HONGKONG_0_MD5='643ba68e47c309d391a6482f838e46af' ARCHIVE_BASE_HONGKONG_0_SIZE='12000000' ARCHIVE_BASE_HONGKONG_0_VERSION='3.1.2-gog2.8.0.11' ARCHIVE_BASE_HONGKONG_0_URL='https://www.gog.com/game/shadowrun_hong_kong_extended_edition' UNITY3D_NAME_RETURNS='Shadowrun' UNITY3D_NAME_DRAGONFALL='Dragonfall' UNITY3D_NAME_HONGKONG='SRHK' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT_RETURNS_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_RETURNS_HUMBLE='Shadowrun Returns' CONTENT_PATH_DEFAULT_DRAGONFALL='data/noarch/game' CONTENT_PATH_DEFAULT_HONGKONG='data/noarch/game' CONTENT_GAME_DATA_STANDALONE_FILES=' *_Data/StreamingAssets/standalone' CONTENT_GAME0_DATA_FILES_HONGKONG=' dictionary' FAKE_HOME_PERSISTENT_DIRECTORIES_RETURNS=' Documents/Shadowrun Returns' FAKE_HOME_PERSISTENT_DIRECTORIES_DRAGONFALL=' Documents/Shadowrun Dragonfall' FAKE_HOME_PERSISTENT_DIRECTORIES_HONGKONG=' Documents/Shadowrun Hong Kong' ## Create required writable directory APP_MAIN_PRERUN=' # Create required writable directory mkdir --parents DumpBox ' PACKAGES_LIST=' PKG_BIN PKG_DATA_STANDALONE PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES_RETURNS=' 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_BIN_DEPENDENCIES_LIBRARIES_DRAGONFALL=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgthread-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXext.so.6' PKG_BIN_DEPENDENCIES_LIBRARIES_HONGKONG=' 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_RETURNS="${GAME_ID_RETURNS}-data" PKG_DATA_ID_DRAGONFALL="${GAME_ID_DRAGONFALL}-data" PKG_DATA_ID_HONGKONG="${GAME_ID_HONGKONG}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_DATA_STANDALONE' PKG_DATA_STANDALONE_ID_RETURNS="${PKG_DATA_ID_RETURNS}-standalone" PKG_DATA_STANDALONE_ID_DRAGONFALL="${PKG_DATA_ID_DRAGONFALL}-standalone" PKG_DATA_STANDALONE_ID_HONGKONG="${PKG_DATA_ID_HONGKONG}-standalone" PKG_DATA_STANDALONE_DESCRIPTION="$PKG_DATA_DESCRIPTION - standalone" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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-shardlight.sh0000750000000000000000000000533414471751340014311 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Shardlight # send your bug reports to vv221@dotslashplay.it ### script_version=20250722.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='shardlight' GAME_NAME='Shardlight' ARCHIVE_BASE_5_NAME='shardlight_3_2a_81406.sh' ARCHIVE_BASE_5_MD5='38f7d5ee0b0d9fbeed331231abbbf860' ARCHIVE_BASE_5_SIZE='958077' ARCHIVE_BASE_5_VERSION='3.2a-gog81406' ARCHIVE_BASE_5_URL='https://www.gog.com/game/shardlight' ARCHIVE_BASE_4_NAME='shardlight_3_2_73879.sh' ARCHIVE_BASE_4_MD5='0207dcb6ee38949386c7ebe49ef18160' ARCHIVE_BASE_4_SIZE='952797' ARCHIVE_BASE_4_VERSION='3.2-gog73879' ARCHIVE_BASE_3_NAME='shardlight_3_1_70695.sh' ARCHIVE_BASE_3_MD5='824cd0bf02463cfce8acd9c491399197' ARCHIVE_BASE_3_SIZE='952796' ARCHIVE_BASE_3_VERSION='3.1-gog70695' ARCHIVE_BASE_2_NAME='shardlight_3_0_66305.sh' ARCHIVE_BASE_2_MD5='2c3d7b7e0a541ee3a635189449608713' ARCHIVE_BASE_2_SIZE='960000' ARCHIVE_BASE_2_VERSION='3.0-gog66305' ARCHIVE_BASE_1_NAME='shardlight_2_4_56258.sh' ARCHIVE_BASE_1_MD5='854c59dcb914d934468a9475d17181e4' ARCHIVE_BASE_1_SIZE='1200000' ARCHIVE_BASE_1_VERSION='2.4-gog56258' ARCHIVE_BASE_0_NAME='shardlight_2_2_53577.sh' ARCHIVE_BASE_0_MD5='b48f7b1aac9b32ee7f5b236b6cc82e81' ARCHIVE_BASE_0_SIZE='1200000' ARCHIVE_BASE_0_VERSION='2.2-gog53577' ## Optional icons pack ARCHIVE_OPTIONAL_ICONS_NAME='shardlight_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5='59bce49abce9678d963cecd72be8b512' ARCHIVE_OPTIONAL_ICONS_URL='https://downloads.dotslashplay.it/games/shardlight/' CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 16x16 32x32' AGS_NAME='shardlight' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_DOC_MAIN_FILES=' licenses' APP_MAIN_ICON='../support/icon.png' APP_MAIN_ICON_1='Shardlight.exe' APP_MAIN_ICON_0='Shardlight.exe' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-shogo-mobile-armor-division.sh0000750000000000000000000000613314471751340017502 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Shogo: Mobile Armor Division # send your bug reports to vv221@dotslashplay.it ### script_version=20250603.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='shogo-mobile-armor-division' GAME_NAME='Shogo: Mobile Armor Division' ARCHIVE_BASE_EN_0_NAME='setup_shogo_-_mobile_armor_division_2.2.14_(19498).exe' ARCHIVE_BASE_EN_0_MD5='371cd8bbd32355f78ee7f52e4d34e94a' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_VERSION='2.2.14-gog19498' ARCHIVE_BASE_EN_0_SIZE='481454' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/shogo_mobile_armor_division' ARCHIVE_BASE_FR_0_NAME='setup_shogo_-_mobile_armor_division_2.2.14_(french)_(19498).exe' ARCHIVE_BASE_FR_0_MD5='ca3029d8c6efe0d273a174b73d95e920' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_VERSION='2.2.14-gog19498' ARCHIVE_BASE_FR_0_SIZE='487166' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/shogo_mobile_armor_division' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' am18.dll cdaudio.dll de_msg.dll ima.dll imrt1625.dll imrt25.dll imrt3225.dll imusic25.dll launch.dll mss16.dll mss32.dll msynth25.dll server.dll smackw32.dll softsnd.dll client.exe ct.exe shogo.exe shogosrv.exe start.exe ct.ini *.m3d *.pcx *.ren *.tsk' CONTENT_GAME0_BIN_PATH='__support/app' CONTENT_GAME0_BIN_FILES=' *.cfg' CONTENT_GAME_DATA_FILES=' custom joystick music save *.msk *.rez' CONTENT_DOC_DATA_FILES=' *.cnt *.hlp *.gid *.pdf readme.txt shogosrv.txt' USER_PERSISTENT_DIRECTORIES=' save' USER_PERSISTENT_FILES=' *.cfg' APP_MAIN_EXE='shogo.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_ID="$GAME_ID" PKG_BIN_ID_EN="${PKG_BIN_ID}-en" PKG_BIN_ID_FR="${PKG_BIN_ID}-fr" PKG_BIN_PROVIDES=" $GAME_ID" PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DESCRIPTION_EN='English version' PKG_BIN_DESCRIPTION_FR='French version' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_EN="${PKG_DATA_ID}-en" PKG_DATA_ID_FR="${PKG_DATA_ID}-fr" PKG_DATA_PROVIDES=" $PKG_DATA_ID" PKG_DATA_DESCRIPTION='data' PKG_DATA_DESCRIPTION_EN="$PKG_DATA_DESCRIPTION - English version" PKG_DATA_DESCRIPTION_FR="$PKG_DATA_DESCRIPTION - French version" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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-skullgirls.sh0000750000000000000000000000757314471751340014362 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Skullgirls # send your bug reports to vv221@dotslashplay.it ### script_version=20250701.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='skullgirls' GAME_NAME='Skullgirls' # The following DRM-free archives are no longer available for sale from Humble Bundle. # The game is still listed on their store, but only provided as a Steam key. ARCHIVE_BASE_1_NAME='Skullgirls-15719.tar' ARCHIVE_BASE_1_MD5='104a6976aec70d423756e008a5b8554c' ARCHIVE_BASE_1_SIZE='4172735' ARCHIVE_BASE_1_VERSION='15719-humble170628' ARCHIVE_BASE_0_NAME='Skullgirls-1.0.1.sh' ARCHIVE_BASE_0_MD5='bf110f7d29bfd4b9e075584e41fef402' ARCHIVE_BASE_0_SIZE='4200000' ARCHIVE_BASE_0_VERSION='1.0.1-humble152310' CONTENT_PATH_DEFAULT='SkullGirls' CONTENT_PATH_DEFAULT_0='data' CONTENT_LIBS_BIN_FILES=' libSDL2_locale.so.0' ## libSDL2_mixer-2.0.so.0 must be included, because it provides a non-standard symbol ## (SDL_AudioStreamGet) that libSDL2_locale.so.0 relies on. CONTENT_LIBS_BIN_FILES="$CONTENT_LIBS_BIN_FILES libSDL2_mixer-2.0.so.0" ## libSDL2-2.0.so.0 must be included to prevent a silent crash on start-up. CONTENT_LIBS_BIN_FILES="$CONTENT_LIBS_BIN_FILES libSDL2-2.0.so.0" CONTENT_LIBS_BIN64_RELATIVE_PATH='lib/x86_64-pc-linux-gnu' CONTENT_LIBS_BIN64_RELATIVE_PATH_0='x86_64/lib/x86_64-pc-linux-gnu' CONTENT_LIBS_BIN64_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_LIBS_BIN32_RELATIVE_PATH='lib/i686-pc-linux-gnu' CONTENT_LIBS_BIN32_RELATIVE_PATH_0='i686/lib/i686-pc-linux-gnu' CONTENT_LIBS_BIN32_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_GAME_BIN64_RELATIVE_PATH_0='x86_64' CONTENT_GAME_BIN64_FILES=' SkullGirls.x86_64-pc-linux-gnu' CONTENT_GAME_BIN32_RELATIVE_PATH_0='i686' CONTENT_GAME_BIN32_FILES=' SkullGirls.i686-pc-linux-gnu' CONTENT_GAME_DATA_RELATIVE_PATH_0='noarch' CONTENT_GAME_DATA_FILES=' data01 Salmon Icon.png gamecontrollerdb.txt ProgressionInit.txt' APP_MAIN_EXE_BIN64='SkullGirls.x86_64-pc-linux-gnu' APP_MAIN_EXE_BIN32='SkullGirls.i686-pc-linux-gnu' APP_MAIN_ICON='Icon.png' APP_MAIN_ICON_0='noarch/Icon.png' ## Trying to run the game with wayland SDL backend leads to a crash on launch: ## CRITICAL: Unable to create SDL Window APP_MAIN_PRERUN=' # Prevent a crash on launch when wayland SDL backend is used. if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' 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 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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-slay-the-princess.sh0000750000000000000000000001766714471751340015546 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2025 BetaRays set -o errexit ### # Slay the Princess # send your bug reports to vv221@dotslashplay.it ### script_version=20250331.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='slay-the-princess' GAME_NAME='Slay the Princess' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" ## The Pristine Cut ARCHIVE_BASE_18_NAME='slay_the_princess_the_pristine_cut_slay_the_princess_the_pristine_cut_march_5_linux_80450.sh' ARCHIVE_BASE_18_MD5='711ddf89d77c92c9d225a76a0917b2ca' ARCHIVE_BASE_18_SIZE='12719976' ARCHIVE_BASE_18_VERSION='1.4a-gog80450' ARCHIVE_BASE_18_URL='https://www.gog.com/game/slay_the_princess' ARCHIVE_BASE_17_NAME='slay_the_princess_the_pristine_cut_the_pristine_cut_linux_1_4a_80374.sh' ARCHIVE_BASE_17_MD5='3006483812c9d874039b59776a894b6f' ARCHIVE_BASE_17_SIZE='12720003' ARCHIVE_BASE_17_VERSION='1.4a-gog80374' ARCHIVE_BASE_16_NAME='slay_the_princess_the_pristine_cut_the_pristine_cut_linux_1_1a_79534.sh' ARCHIVE_BASE_16_MD5='4b7dfeb531a7431bbd2fe84e0fc2cfde' ARCHIVE_BASE_16_SIZE='12700851' ARCHIVE_BASE_16_VERSION='1.1a-gog79534' ARCHIVE_BASE_15_NAME='slay_the_princess_the_pristine_cut_the_pristine_cut_linux_1_0z_77466.sh' ARCHIVE_BASE_15_MD5='9492a8cffbf5ab5ac79593ceb763d072' ARCHIVE_BASE_15_SIZE='12706022' ARCHIVE_BASE_15_VERSION='1.0z-gog77466' ARCHIVE_BASE_15_URL='https://www.gog.com/game/slay_the_princess' ARCHIVE_BASE_14_NAME='slay_the_princess_the_pristine_cut_the_pristine_cut_linux_1_0p_77354.sh' ARCHIVE_BASE_14_MD5='9cde15f2957c37f7679d73f3fa8eed8c' ARCHIVE_BASE_14_SIZE='12689218' ARCHIVE_BASE_14_VERSION='1.0p-gog77354' ARCHIVE_BASE_13_NAME='slay_the_princess_the_pristine_cut_the_pristine_cut_linux_1_0l_77303.sh' ARCHIVE_BASE_13_MD5='23fb0cd438f5936479d56846c65be179' ARCHIVE_BASE_13_SIZE='12684306' ARCHIVE_BASE_13_VERSION='1.0l-gog77303' ARCHIVE_BASE_12_NAME='slay_the_princess_the_pristine_cut_linux_1_0_77121.sh' ARCHIVE_BASE_12_MD5='df352f8474c406976f9cd3d87d0b9e79' ARCHIVE_BASE_12_SIZE='12679961' ARCHIVE_BASE_12_VERSION='1.0-gog77121' ARCHIVE_BASE_12_URL='https://www.gog.com/game/slay_the_princess' ## End of Everything update ARCHIVE_BASE_11_NAME='slay_the_princess_end_of_everything_update_1_2e_scrollbar_73222.sh' ARCHIVE_BASE_11_MD5='f1e7f54e99ceae8aa4c1314274708b1d' ARCHIVE_BASE_11_SIZE='8799577' ARCHIVE_BASE_11_VERSION='1.2e-gog73222' ARCHIVE_BASE_11_URL='https://www.gog.com/game/slay_the_princess' ARCHIVE_BASE_10_NAME='slay_the_princess_end_of_everything_update_1_2d_linux_better_controller_73049.sh' ARCHIVE_BASE_10_MD5='bf46a8f8820d6821bd9313dd49c35771' ARCHIVE_BASE_10_SIZE='8799553' ARCHIVE_BASE_10_VERSION='1.2d-gog73049' ARCHIVE_BASE_9_NAME='slay_the_princess_end_of_everything_update_1_2c_linux_better_controller_72957.sh' ARCHIVE_BASE_9_MD5='c93f7c398fc157d14679c93fcea26299' ARCHIVE_BASE_9_SIZE='8799548' ARCHIVE_BASE_9_VERSION='1.2c-gog72957' ARCHIVE_BASE_8_NAME='slay_the_princess_end_of_everything_update_1_2b_linux_72856.sh' ARCHIVE_BASE_8_MD5='6b9588bc80145f05bfc0105d4f97fda7' ARCHIVE_BASE_8_SIZE='8799541' ARCHIVE_BASE_8_VERSION='1.2b-gog72856' ARCHIVE_BASE_7_NAME='slay_the_princess_end_of_everything_update_1_2a_linux_72334.sh' ARCHIVE_BASE_7_MD5='caa8432a8b7e8c6d75191bf143714957' ARCHIVE_BASE_7_SIZE='8799532' ARCHIVE_BASE_7_VERSION='1.2a-gog72334' ARCHIVE_BASE_6_NAME='slay_the_princess_end_of_everything_update_1_2_linux_72260.sh' ARCHIVE_BASE_6_MD5='950c30b1f3496691ce2560cf3d55ed07' ARCHIVE_BASE_6_SIZE='8799446' ARCHIVE_BASE_6_VERSION='1.2-gog72260' ## Original builds ARCHIVE_BASE_5_NAME='slay_the_princess_linux_1_1c_release_70031.sh' ARCHIVE_BASE_5_MD5='d2ab1e74725c1e28f2f3a8e74347b4ee' ARCHIVE_BASE_5_SIZE='8362317' ARCHIVE_BASE_5_VERSION='1.1c-gog70031' ARCHIVE_BASE_4_NAME='slay_the_princess_linux_1_1af_release_69960.sh' ARCHIVE_BASE_4_MD5='f179e501f2edd3357c73b81eca40b34d' ARCHIVE_BASE_4_SIZE='8378490' ARCHIVE_BASE_4_VERSION='1.1af-gog69960' ARCHIVE_BASE_3_NAME='slay_the_princess_linux_1_0h_release_69787.sh' ARCHIVE_BASE_3_MD5='851f53732e9dc6314677271f67852f35' ARCHIVE_BASE_3_SIZE='11000045' ARCHIVE_BASE_3_VERSION='1.0h-gog69787' ARCHIVE_BASE_2_NAME='slay_the_princess_linux_1_0g_release_68787.sh' ARCHIVE_BASE_2_MD5='3b8417d581d1d721ab4016720a1ea881' ARCHIVE_BASE_2_SIZE='10989272' ARCHIVE_BASE_2_VERSION='1.0g-gog68787' ARCHIVE_BASE_1_NAME='slay_the_princess_linux_1_0f_release_68611.sh' ARCHIVE_BASE_1_MD5='a4fd4334624bbc469a481fc874df2750' ARCHIVE_BASE_1_SIZE='11003752' ARCHIVE_BASE_1_VERSION='1.0f-gog68611' ARCHIVE_BASE_0_NAME='slay_the_princess_linux_1_0d_release_68521.sh' ARCHIVE_BASE_0_MD5='7acf7f8093cdddff8d484aa4043e5c51' ARCHIVE_BASE_0_SIZE='11014500' ARCHIVE_BASE_0_VERSION='1.0d-gog68521' ## Free demo ARCHIVE_BASE_DEMO_0_NAME='SlaythePrincessDemo-1.0-market.zip' ARCHIVE_BASE_DEMO_0_MD5='135628b57b5e4debbaf21680d493cd74' ARCHIVE_BASE_DEMO_0_SIZE='2839604' ARCHIVE_BASE_DEMO_0_VERSION='1.0-itch' ARCHIVE_BASE_DEMO_0_URL='https://blacktabbygames.itch.io/slay-the-princess' CONTENT_PATH_DEFAULT='data/noarch/game/game' CONTENT_PATH_DEFAULT_DEMO='game' CONTENT_GAME_MAIN_FILES=' audio cache gui images staging script_version.txt' CONTENT_GAME0_MAIN_FILES_DEMO=' tl archive.rpa' CONTENT_GAME_ARCHIVE_1_FILES=' archive.rpa.split00' CONTENT_GAME_ARCHIVE_2_FILES=' archive.rpa.split01' ## archive.rpa.split02 is only provided with some old builds. CONTENT_GAME0_ARCHIVE_2_FILES=' archive.rpa.split02' APP_MAIN_TYPE='renpy' APP_MAIN_ICON='../SlaythePrincess.exe' APP_MAIN_ICON_DEMO='../SlaythePrincessDemo.exe' PACKAGES_LIST=' PKG_MAIN PKG_ARCHIVE_1 PKG_ARCHIVE_2' PACKAGES_LIST_DEMO=' PKG_MAIN' PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_ARCHIVE_1 PKG_ARCHIVE_2' PKG_ARCHIVE_ID="${GAME_ID}-archive" PKG_ARCHIVE_1_ID="${PKG_ARCHIVE_ID}-1" PKG_ARCHIVE_2_ID="${PKG_ARCHIVE_ID}-2" PKG_ARCHIVE_DESCRIPTION='archive chunks' PKG_ARCHIVE_1_DESCRIPTION="$PKG_ARCHIVE_DESCRIPTION - 1" PKG_ARCHIVE_2_DESCRIPTION="$PKG_ARCHIVE_DESCRIPTION - 2" ## Ensure easy upgrades from packages generated with pre-20240427.1 game scripts PKG_MAIN_PROVIDES="${PKG_MAIN_PROVIDES:-} slay-the-princess-data" PKG_ARCHIVE_1_PROVIDES="${PKG_ARCHIVE_1_PROVIDES:-} slay-the-princess-data-archive-1" PKG_ARCHIVE_2_PROVIDES="${PKG_ARCHIVE_2_PROVIDES:-} slay-the-princess-data-archive-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 ## Check for the presence of the original game icon, fall back on the GOG-specific one if required case "$(current_archive)" in ('ARCHIVE_BASE_DEMO_'*) # The game demo is not provided by GOG. ;; (*) if [ ! -e "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/${APP_MAIN_ICON}" ]; then APP_MAIN_ICON='../../support/icon.png' fi ;; esac content_inclusion_icons 'PKG_MAIN' content_inclusion_default # Write launchers launchers_generation 'PKG_MAIN' # Build packages case "$(current_archive)" in ('ARCHIVE_BASE_DEMO_'*) # Prevent some properties of the full game from applying to the demo unset PKG_MAIN_DEPENDENCIES_SIBLINGS unset PKG_MAIN_PROVIDES ;; (*) # Rebuild the huge file from its chunks huge_file='archive.rpa' PKG_MAIN_POSTINST_RUN="$(package_postinst_actions 'PKG_MAIN') $(huge_file_concatenate "$huge_file")" PKG_MAIN_PRERM_RUN="$(package_prerm_actions 'PKG_MAIN') $(huge_file_delete "$huge_file")" ;; esac packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-song-of-farca.sh0000750000000000000000000000432314471751340014577 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Song of Farca # send your bug reports to vv221@dotslashplay.it ### script_version=20241124.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='song-of-farca' GAME_NAME='Song of Farca' ARCHIVE_BASE_2_NAME='song_of_farca_1_0_2_15_59133.sh' ARCHIVE_BASE_2_MD5='3130d206d897c7e41b8349a426fe0a49' ARCHIVE_BASE_2_SIZE='1820017' ARCHIVE_BASE_2_VERSION='1.0.2.15-gog59133' ARCHIVE_BASE_2_URL='https://www.gog.com/game/song_of_farca' ARCHIVE_BASE_1_NAME='song_of_farca_1_0_2_8_52330.sh' ARCHIVE_BASE_1_MD5='dd45ac62732f088acc44f60ddbb97724' ARCHIVE_BASE_1_SIZE='1900000' ARCHIVE_BASE_1_VERSION='1.0.2.8-gog52330' ARCHIVE_BASE_0_NAME='song_of_farca_1_0_2_2_49499.sh' ARCHIVE_BASE_0_MD5='d06f0dd62349c0834f1a8366f5525935' ARCHIVE_BASE_0_SIZE='1900000' ARCHIVE_BASE_0_VERSION='1.0.2.2-gog49499' UNITY3D_NAME='Song of Farca' UNITY3D_PLUGINS=' libzipw.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run 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-songs-of-conquest.sh0000750000000000000000000001211314471751340015543 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Songs of Conquest # send your bug reports to vv221@dotslashplay.it ### script_version=20250626.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='songs-of-conquest' GAME_NAME='Songs of Conquest' ARCHIVE_BASE_8_NAME='setup_songs_of_conquest_1.6.1_1c165726cf_3547_(83102).exe' ARCHIVE_BASE_8_MD5='1d02d310853568e03a6e052960844841' ARCHIVE_BASE_8_TYPE='innosetup' ARCHIVE_BASE_8_PART1_NAME='setup_songs_of_conquest_1.6.1_1c165726cf_3547_(83102)-1.bin' ARCHIVE_BASE_8_PART1_MD5='5788080ea7520a9ede5a89ecd7a0dceb' ARCHIVE_BASE_8_SIZE='2355359' ARCHIVE_BASE_8_VERSION='1.6.1-gog83102' ARCHIVE_BASE_8_URL='https://www.gog.com/game/songs_of_conquest' ARCHIVE_BASE_7_NAME='setup_songs_of_conquest_1.6.0_52a28cd7d5_3538_(82930).exe' ARCHIVE_BASE_7_MD5='b54f2148db8e175789d69c890b4e4b02' ARCHIVE_BASE_7_TYPE='innosetup' ARCHIVE_BASE_7_PART1_NAME='setup_songs_of_conquest_1.6.0_52a28cd7d5_3538_(82930)-1.bin' ARCHIVE_BASE_7_PART1_MD5='7a14a09e120d260142e7a519c88bff62' ARCHIVE_BASE_7_SIZE='2356914' ARCHIVE_BASE_7_VERSION='1.6.0-gog82930' ARCHIVE_BASE_6_NAME='setup_songs_of_conquest_1.5.5_4e813b3773_3204_(80582).exe' ARCHIVE_BASE_6_MD5='d88ee6892bd1a93a275596e8ed5fb028' ARCHIVE_BASE_6_TYPE='innosetup' ARCHIVE_BASE_6_PART1_NAME='setup_songs_of_conquest_1.5.5_4e813b3773_3204_(80582)-1.bin' ARCHIVE_BASE_6_PART1_MD5='9c7470e8bce4972cd4eebcf71da9964a' ARCHIVE_BASE_6_SIZE='2246884' ARCHIVE_BASE_6_VERSION='1.5.5-gog80582' ARCHIVE_BASE_5_NAME='setup_songs_of_conquest_1.4.13_2d9731f566_3063_(79474).exe' ARCHIVE_BASE_5_MD5='ff47f9178c22a9804a4e513185ce6122' ARCHIVE_BASE_5_TYPE='innosetup' ARCHIVE_BASE_5_PART1_NAME='setup_songs_of_conquest_1.4.13_2d9731f566_3063_(79474)-1.bin' ARCHIVE_BASE_5_PART1_MD5='d080b22508bcafe99f81b63dca1471db' ARCHIVE_BASE_5_SIZE='2238908' ARCHIVE_BASE_5_VERSION='1.4.13-gog79474' ARCHIVE_BASE_4_NAME='setup_songs_of_conquest_1.4.12_a5624b455d_3033_(79217).exe' ARCHIVE_BASE_4_MD5='d5e6bbfb4a7a6e27696f22f2915b1269' ARCHIVE_BASE_4_TYPE='innosetup' ARCHIVE_BASE_4_PART1_NAME='setup_songs_of_conquest_1.4.12_a5624b455d_3033_(79217)-1.bin' ARCHIVE_BASE_4_PART1_MD5='8d25598cf45e67b54faaa76708e1a642' ARCHIVE_BASE_4_SIZE='2240483' ARCHIVE_BASE_4_VERSION='1.4.12-gog79217' ARCHIVE_BASE_3_NAME='setup_songs_of_conquest_1.4.11_a56e2e9ed1_3013_(78972).exe' ARCHIVE_BASE_3_MD5='af79080c297f067b66a45625abd50104' ARCHIVE_BASE_3_TYPE='innosetup' ARCHIVE_BASE_3_PART1_NAME='setup_songs_of_conquest_1.4.11_a56e2e9ed1_3013_(78972)-1.bin' ARCHIVE_BASE_3_PART1_MD5='7d35955cb78e863fa90db91fb690859b' ARCHIVE_BASE_3_SIZE='2238284' ARCHIVE_BASE_3_VERSION='1.4.11-gog78972' ARCHIVE_BASE_2_NAME='setup_songs_of_conquest_1.4.10_967940f7ee_3002_(78614).exe' ARCHIVE_BASE_2_MD5='3f7c811f0a316df65446cbce9f294ba6' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_PART1_NAME='setup_songs_of_conquest_1.4.10_967940f7ee_3002_(78614)-1.bin' ARCHIVE_BASE_2_PART1_MD5='87bffffbb31fec05c4deba26a40ce42a' ARCHIVE_BASE_2_SIZE='2239689' ARCHIVE_BASE_2_VERSION='1.4.10-gog78614' ARCHIVE_BASE_1_NAME='setup_songs_of_conquest_1.4.8_b1dfeaadfa_2989_(78547).exe' ARCHIVE_BASE_1_MD5='f3d225f934b63608e707bbd9b9821c78' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_songs_of_conquest_1.4.8_b1dfeaadfa_2989_(78547)-1.bin' ARCHIVE_BASE_1_PART1_MD5='ecb65717e71b6a8a2f28911512a1f0eb' ARCHIVE_BASE_1_SIZE='2237801' ARCHIVE_BASE_1_VERSION='1.4.8-gog78547' ARCHIVE_BASE_0_NAME='setup_songs_of_conquest_1.3.2_ab33a56fa6_2566_(76712).exe' ARCHIVE_BASE_0_MD5='ea01d32299258ee757fc349e5d4f9b1e' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_songs_of_conquest_1.3.2_ab33a56fa6_2566_(76712)-1.bin' ARCHIVE_BASE_0_PART1_MD5='e1a0a815f1f9500d7b5cfdfdf65223f1' ARCHIVE_BASE_0_SIZE='2544156' ARCHIVE_BASE_0_VERSION='1.3.2-gog76712' UNITY3D_NAME='songsofconquest' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Lavapotion/SongsOfConquest' 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-star-wars-galactic-battlegrounds.sh0000750000000000000000000000656214471751340020527 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # Star Wars: Galactic Battlegrounds # send your bug reports to vv221@dotslashplay.it ### script_version=20250310.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='star-wars-galactic-battlegrounds' GAME_NAME='Star Wars: Galactic Battlegrounds' ARCHIVE_BASE_EN_0_NAME='setup_sw_galactic_battlegrounds_saga_2.0.0.4.exe' ARCHIVE_BASE_EN_0_MD5='6af25835c5f240914cb04f7b4f741813' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_SIZE='819518' ARCHIVE_BASE_EN_0_VERSION='1.1-gog2.0.0.4' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/star_wars_galactic_battlegrounds_saga' ARCHIVE_BASE_FR_0_NAME='setup_sw_galactic_battlegrounds_saga_french_2.0.0.4.exe' ARCHIVE_BASE_FR_0_MD5='b30458033e825ad252e2d5b3dc8a7845' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_SIZE='807572' ARCHIVE_BASE_FR_0_VERSION='1.1-gog2.0.0.4' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/star_wars_galactic_battlegrounds_saga' CONTENT_PATH_DEFAULT='app/game' CONTENT_GAME_BIN_FILES=' libogg-0.dll libvorbis-0.dll libvorbisfile-3.dll win32.dll *.exe' CONTENT_GAME_L10N_FILES=' history taunt sound/campaign sound/scenario campaign/media/1c2s6_end.mm data/gamedata_x1.drs scenario/default0.scx data/list*.crx data/genie*.dat language*.dll data/sounds.*drs' CONTENT_GAME_DATA_FILES=' ai campaign data extras music random savegame scenario sound *.avi' CONTENT_DOC_DATA_PATH="${CONTENT_PATH_DEFAULT}/.." CONTENT_DOC_DATA_FILES=' *.pdf' USER_PERSISTENT_DIRECTORIES=' ai campaign random savegame scenario' USER_PERSISTENT_FILES=' data/*.dat player.nf*' ## Work around CD check WINE_REGISTRY_INIT=' [HKEY_LOCAL_MACHINE\Software\LucasArts Entertainment Company LLC\Star Wars Galactic Battlegrounds\1.0] "CDPath"="C:"' ## Without a WINE virtual desktop, only a black screen is rendered. WINE_VIRTUAL_DESKTOP='auto' APP_MAIN_EXE='battlegrounds.exe' APP_ADDON_ID="${GAME_ID}-clone-wars" APP_ADDON_NAME="$GAME_NAME - Clone Wars" APP_ADDON_EXE='battlegrounds_x1.exe' PACKAGES_LIST=' PKG_BIN PKG_L10N PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N_BASE PKG_DATA' PKG_L10N_BASE_ID="${GAME_ID}-l10n" PKG_L10N_ID_EN="${PKG_L10N_BASE_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_BASE_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_BASE_ID" PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-star-wars-knights-of-the-old-republic-series.sh0000750000000000000000000002222714471751340022577 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2015 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2019 BetaRays set -o errexit ### # Star Wars: Knights of the Old Republic series: # - Star Wars: Knights of the Old Republic # - Star Wars: Knights of the Old Republic 2 # send your bug reports to vv221@dotslashplay.it ### script_version=20250310.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID_KOTOR1='star-wars-knights-of-the-old-republic-1' GAME_NAME_KOTOR1='Star Wars: Knights of the Old Republic' GAME_ID_KOTOR2='star-wars-knights-of-the-old-republic-2' GAME_NAME_KOTOR2='Star Wars: Knights of the Old Republic Ⅱ - The Sith Lords' # Archives ## Star Wars: Knights of the Old Republic ARCHIVE_BASE_KOTOR1_EN_0_NAME='setup_star_wars_-_knights_of_the_old_republic_1.03_(29871).exe' ARCHIVE_BASE_KOTOR1_EN_0_MD5='6ea3df208a9cb3c8ca54eac2d0e2e4a9' ARCHIVE_BASE_KOTOR1_EN_0_TYPE='innosetup' ARCHIVE_BASE_KOTOR1_EN_0_PART1_NAME='setup_star_wars_-_knights_of_the_old_republic_1.03_(29871)-1.bin' ARCHIVE_BASE_KOTOR1_EN_0_PART1_MD5='51d4eea9a76df9b99fba114c40005cfe' ARCHIVE_BASE_KOTOR1_EN_0_SIZE='3800000' ARCHIVE_BASE_KOTOR1_EN_0_VERSION='1.03-gog29871' ARCHIVE_BASE_KOTOR1_EN_0_URL='https://www.gog.com/game/star_wars_knights_of_the_old_republic' ARCHIVE_BASE_KOTOR1_FR_0_NAME='setup_star_wars_-_knights_of_the_old_republic_1.03_(french)_(29871).exe' ARCHIVE_BASE_KOTOR1_FR_0_MD5='8db7abdf7dc05e8f65ea2599c9486b8d' ARCHIVE_BASE_KOTOR1_FR_0_TYPE='innosetup' ARCHIVE_BASE_KOTOR1_FR_0_PART1_NAME='setup_star_wars_-_knights_of_the_old_republic_1.03_(french)_(29871)-1.bin' ARCHIVE_BASE_KOTOR1_FR_0_PART1_MD5='010bce761719c5e4570e136092a075fe' ARCHIVE_BASE_KOTOR1_FR_0_SIZE='3800000' ARCHIVE_BASE_KOTOR1_FR_0_VERSION='1.03-gog29871' ARCHIVE_BASE_KOTOR1_FR_0_URL='https://www.gog.com/game/star_wars_knights_of_the_old_republic' ARCHIVE_BASE_KOTOR1_DE_0_NAME='setup_star_wars_-_knights_of_the_old_republic_1.03_(german)_(29871).exe' ARCHIVE_BASE_KOTOR1_DE_0_MD5='ba963a9d4e61aabd7f654437b1f6a69e' ARCHIVE_BASE_KOTOR1_DE_0_TYPE='innosetup' ARCHIVE_BASE_KOTOR1_DE_0_PART1_NAME='setup_star_wars_-_knights_of_the_old_republic_1.03_(german)_(29871)-1.bin' ARCHIVE_BASE_KOTOR1_DE_0_PART1_MD5='ac11ebefb89767bc38d3521ba048ec31' ARCHIVE_BASE_KOTOR1_DE_0_SIZE='3900000' ARCHIVE_BASE_KOTOR1_DE_0_VERSION='1.03-gog29871' ARCHIVE_BASE_KOTOR1_DE_0_URL='https://www.gog.com/game/star_wars_knights_of_the_old_republic' ## Star Wars: Knights of the Old Republic 2 ARCHIVE_BASE_KOTOR2_EN_1_NAME='setup_star_wars_-_knights_of_the_old_republic_ii_1.0b_update_(56101).exe' ARCHIVE_BASE_KOTOR2_EN_1_MD5='8ebaa4234c475ef66f8fcf7aa8835d80' ARCHIVE_BASE_KOTOR2_EN_1_TYPE='innosetup' ARCHIVE_BASE_KOTOR2_EN_1_PART1_NAME='setup_star_wars_-_knights_of_the_old_republic_ii_1.0b_update_(56101)-1.bin' ARCHIVE_BASE_KOTOR2_EN_1_PART1_MD5='9ba032cb1cdd08f07c0968ed7c4efa50' ARCHIVE_BASE_KOTOR2_EN_1_SIZE='4900000' ARCHIVE_BASE_KOTOR2_EN_1_VERSION='1.0b-gog56101' ARCHIVE_BASE_KOTOR2_EN_1_URL='https://www.gog.com/game/star_wars_knights_of_the_old_republic_ii_the_sith_lords' ARCHIVE_BASE_KOTOR2_FR_1_NAME='setup_star_wars_-_knights_of_the_old_republic_ii_1.0b_update_(french)_(56101).exe' ARCHIVE_BASE_KOTOR2_FR_1_MD5='17f853ecf017b408bee397a4f127dc37' ARCHIVE_BASE_KOTOR2_FR_1_TYPE='innosetup' ARCHIVE_BASE_KOTOR2_FR_1_PART1_NAME='setup_star_wars_-_knights_of_the_old_republic_ii_1.0b_update_(french)_(56101)-1.bin' ARCHIVE_BASE_KOTOR2_FR_1_PART1_MD5='7958318830a662b45fa3b79456713b40' ARCHIVE_BASE_KOTOR2_FR_1_SIZE='4800000' ARCHIVE_BASE_KOTOR2_FR_1_VERSION='1.0b-gog56101' ARCHIVE_BASE_KOTOR2_FR_1_URL='https://www.gog.com/game/star_wars_knights_of_the_old_republic_ii_the_sith_lords' ARCHIVE_BASE_KOTOR2_DE_1_NAME='setup_star_wars_-_knights_of_the_old_republic_ii_1.0b_update_(german)_(56101).exe' ARCHIVE_BASE_KOTOR2_DE_1_MD5='f67334a28b571238993d85ab9fdba3ef' ARCHIVE_BASE_KOTOR2_DE_1_TYPE='innosetup' ARCHIVE_BASE_KOTOR2_DE_1_PART1_NAME='setup_star_wars_-_knights_of_the_old_republic_ii_1.0b_update_(german)_(56101)-1.bin' ARCHIVE_BASE_KOTOR2_DE_1_PART1_MD5='64a734389a26611b8bec1d597c6efb52' ARCHIVE_BASE_KOTOR2_DE_1_SIZE='4800000' ARCHIVE_BASE_KOTOR2_DE_1_VERSION='1.0b-gog56101' ARCHIVE_BASE_KOTOR2_DE_1_URL='https://www.gog.com/game/star_wars_knights_of_the_old_republic_ii_the_sith_lords' ARCHIVE_BASE_KOTOR2_EN_0_NAME='setup_star_wars_-_knights_of_the_old_republic_ii_1.0b_(29869).exe' ARCHIVE_BASE_KOTOR2_EN_0_MD5='7f7a2e14e5ebadf14c0cdbb1ee807521' ARCHIVE_BASE_KOTOR2_EN_0_TYPE='innosetup' ARCHIVE_BASE_KOTOR2_EN_0_PART1_NAME='setup_star_wars_-_knights_of_the_old_republic_ii_1.0b_(29869)-1.bin' ARCHIVE_BASE_KOTOR2_EN_0_PART1_MD5='8092cf5da5fa165f88d67e172c610c5e' ARCHIVE_BASE_KOTOR2_EN_0_SIZE='4700000' ARCHIVE_BASE_KOTOR2_EN_0_VERSION='1.0b-gog29869' ARCHIVE_BASE_KOTOR2_FR_0_NAME='setup_star_wars_-_knights_of_the_old_republic_ii_1.0b_(french)_(29869).exe' ARCHIVE_BASE_KOTOR2_FR_0_MD5='a16a80f377111ec4152e5d1b196f64f5' ARCHIVE_BASE_KOTOR2_FR_0_TYPE='innosetup' ARCHIVE_BASE_KOTOR2_FR_0_PART1_NAME='setup_star_wars_-_knights_of_the_old_republic_ii_1.0b_(french)_(29869)-1.bin' ARCHIVE_BASE_KOTOR2_FR_0_PART1_MD5='e68c85d7f0ad6212c9841276526aa5d3' ARCHIVE_BASE_KOTOR2_FR_0_SIZE='4600000' ARCHIVE_BASE_KOTOR2_FR_0_VERSION='1.0b-gog29869' ARCHIVE_BASE_KOTOR2_DE_0_NAME='setup_star_wars_-_knights_of_the_old_republic_ii_1.0b_(german)_(29869).exe' ARCHIVE_BASE_KOTOR2_DE_0_MD5='fa7e9e961dfe14d730c4ec571ebe6f0e' ARCHIVE_BASE_KOTOR2_DE_0_TYPE='innosetup' ARCHIVE_BASE_KOTOR2_DE_0_PART1_NAME='setup_star_wars_-_knights_of_the_old_republic_ii_1.0b_(german)_(29869)-1.bin' ARCHIVE_BASE_KOTOR2_DE_0_PART1_MD5='26ebb49d133a564538be2d3a5b35c3d2' ARCHIVE_BASE_KOTOR2_DE_0_SIZE='4600000' ARCHIVE_BASE_KOTOR2_DE_0_VERSION='1.0b-gog29869' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' miles utils binkw32.dll mss32.dll mss32midi.dll patchw32.dll swconfig.exe swkotor.exe swkotor2.exe' CONTENT_GAME_L10N_FILES=' patch.erf lips override streamwaves streamsounds streamvoice movies/01a.bik movies/02.bik movies/09.bik movies/31a.bik movies/50.bik movies/56b.bik movies/kre* movies/leclogo.bik movies/legal.bik movies/permov01.bik movies/scn* movies/trailer.bik *.tlk' CONTENT_GAME_DATA_FILES=' chitin.key data modules rims streammusic texturepacks movies' CONTENT_GAME0_DATA_PATH='__support/app' CONTENT_GAME0_DATA_FILES=' *.ini' CONTENT_DOC_L10N_FILES=' docs *.pdf *.txt' # Applications USER_PERSISTENT_DIRECTORIES=' saves' USER_PERSISTENT_FILES=' *.ini' ## Ensure ability fo fully control the camera with the mouse WINE_REGISTRY_INIT=' [HKEY_CURRENT_USER\Software\Wine\X11 Driver] "GrabFullscreen"="Y"' APP_CONFIG_CAT='Settings' APP_CONFIG_EXE='swconfig.exe' ## Star Wars: Knights of the Old Republic APP_MAIN_EXE_KOTOR1='swkotor.exe' APP_CONFIG_ID_KOTOR1="${GAME_ID_KOTOR1}-config" APP_CONFIG_NAME_KOTOR1="$GAME_NAME_KOTOR1 - Configuration" ## Star Wars: Knights of the Old Republic 2 APP_MAIN_EXE_KOTOR2='swkotor2.exe' APP_CONFIG_ID_KOTOR2="${GAME_ID_KOTOR2}-config" APP_CONFIG_NAME_KOTOR2="$GAME_NAME_KOTOR2 - configuration" # Packages PACKAGES_LIST=' PKG_BIN PKG_L10N PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N_BASE PKG_DATA' PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' PKG_L10N_DESCRIPTION_DE='German localization' PKG_DATA_DESCRIPTION='data' ## Star Wars: Knights of the Old Republic PKG_L10N_BASE_ID_KOTOR1="${GAME_ID_KOTOR1}-l10n" PKG_L10N_ID_KOTOR1_EN="${PKG_L10N_BASE_ID_KOTOR1}-en" PKG_L10N_ID_KOTOR1_FR="${PKG_L10N_BASE_ID_KOTOR1}-fr" PKG_L10N_ID_KOTOR1_DE="${PKG_L10N_BASE_ID_KOTOR1}-de" PKG_L10N_PROVIDES_KOTOR1=" $PKG_L10N_BASE_ID_KOTOR1" PKG_L10N_DESCRIPTION_KOTOR1_EN="$PKG_L10N_DESCRIPTION_EN" PKG_L10N_DESCRIPTION_KOTOR1_FR="$PKG_L10N_DESCRIPTION_FR" PKG_L10N_DESCRIPTION_KOTOR1_DE="$PKG_L10N_DESCRIPTION_DE" PKG_DATA_ID_KOTOR1="${GAME_ID_KOTOR1}-data" ## Star Wars: Knights of the Old Republic 2 PKG_L10N_BASE_ID_KOTOR2="${GAME_ID_KOTOR2}-l10n" PKG_L10N_ID_KOTOR2_EN="${PKG_L10N_BASE_ID_KOTOR2}-en" PKG_L10N_ID_KOTOR2_FR="${PKG_L10N_BASE_ID_KOTOR2}-fr" PKG_L10N_ID_KOTOR2_DE="${PKG_L10N_BASE_ID_KOTOR2}-de" PKG_L10N_PROVIDES_KOTOR2=" $PKG_L10N_BASE_ID_KOTOR2" PKG_L10N_DESCRIPTION_KOTOR2_EN="$PKG_L10N_DESCRIPTION_EN" PKG_L10N_DESCRIPTION_KOTOR2_FR="$PKG_L10N_DESCRIPTION_FR" PKG_L10N_DESCRIPTION_KOTOR2_DE="$PKG_L10N_DESCRIPTION_DE" PKG_DATA_ID_KOTOR2="${GAME_ID_KOTOR2}-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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-starcraft.sh0000750000000000000000000001442414471751340014151 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # StarCraft # send your bug reports to vv221@dotslashplay.it ### script_version=20250306.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='starcraft' GAME_NAME='StarCraft' ARCHIVE_BASE_EN_0_NAME='Installer Tome.mpq' ARCHIVE_BASE_EN_0_MD5='209b1757b3d10aad3e5055e7d11d7599' ARCHIVE_BASE_EN_0_PART1_NAME='Installer Tome 2.mpq' ARCHIVE_BASE_EN_0_PART1_MD5='d3d1bb36d4d256693a1df430d853cfe9' ARCHIVE_BASE_EN_0_SIZE='1294777' ARCHIVE_BASE_EN_0_VERSION='1.15.2-blizzard1' ARCHIVE_BASE_EN_0_URL='https://eu.battle.net/download/getLegacy?os=win&locale=enUS&product=STAR' ARCHIVE_BASE_FR_0_NAME='Installer Tome.mpq' ARCHIVE_BASE_FR_0_MD5='5f94ac518b98829cc5a8078fc13f0b6f' ARCHIVE_BASE_FR_0_PART1_NAME='Installer Tome 2.mpq' ARCHIVE_BASE_FR_0_PART1_MD5='57f632256a23caaf19457773832027f7' ARCHIVE_BASE_FR_0_SIZE='1314699' ARCHIVE_BASE_FR_0_VERSION='1.15.2-blizzard1' ARCHIVE_BASE_FR_0_URL='https://eu.battle.net/download/getLegacy?os=win&locale=frF&product=STAR' ## This archive is required to update the game to a build not affected by the following WINE bug: ## https://bugs.winehq.org/show_bug.cgi?id=57758 — Starcraft Brood War 1.16.1 does not launch on Wine 10 ARCHIVE_REQUIRED_UPDATE_NAME='starcraft_update_1.17.0.tar.xz' ARCHIVE_REQUIRED_UPDATE_MD5='f13f15dce9e4ce581888cd0fbd69ad70' ARCHIVE_REQUIRED_UPDATE_VERSION='1.17.0-blizzard1' ARCHIVE_REQUIRED_UPDATE_URL='https://downloads.dotslashplay.it/games/starcraft/' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_PATH='PC' CONTENT_GAME_BIN_FILES=' *.snp *.dll *.exe *.loc *.mpq' CONTENT_GAME_DATA_PATH='Common' CONTENT_GAME_DATA_FILES=' Maps *.mpq' CONTENT_DOC_DATA_PATH='PC' CONTENT_DOC_DATA_FILES=' *.cnt *.hlp *.pdf *.txt *.url' CONTENT_UPDATE_PATH='.' CONTENT_UPDATE_GAME_FILES=' storm.dll BlizzardError.exe bnupdate.exe StarCraft.exe StarEdit.exe SystemSurvey.exe Patch_rt.mpq battle.snp standard.snp' CONTENT_UPDATE_DOC_FILES=' patch.txt' APP_MAIN_EXE='StarCraft.exe' APP_MAIN_ICON='PC/StarCraft.exe' USER_PERSISTENT_DIRECTORIES=' Characters Maps' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA_BASE' PKG_DATA_BASE_ID="${GAME_ID}-data" PKG_DATA_ID_EN="${PKG_DATA_BASE_ID}-en" PKG_DATA_ID_FR="${PKG_DATA_BASE_ID}-fr" PKG_DATA_PROVIDES=" $PKG_DATA_BASE_ID" PKG_DATA_DESCRIPTION='data' # Set list of requirements to extract the archive data REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} smpq" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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 the CD key files ## During a regular install of StarCraft, CD keys are stored encrypted into StarDat.mpq, ## in the files under the "font" directory. ## In order to build a package that includes the CD key (required, or the game will not launch), ## you need to provide the following files in addition to the installer .mpq: ## - font.clh ## - font.gid ## They can be extracted from a regular StarCraft install with: ## smpq --extract StarDat.mpq font/font.clh font/font.gid ARCHIVE_REQUIRED_CDKEY_1_NAME='font.clh' ARCHIVE_REQUIRED_CDKEY_2_NAME='font.gid' archive_initialize_required \ 'ARCHIVE_CDKEY_1' \ 'ARCHIVE_REQUIRED_CDKEY_1' archive_initialize_required \ 'ARCHIVE_CDKEY_2' \ 'ARCHIVE_REQUIRED_CDKEY_2' # Check for the presence of the 1.17.0 update archive archive_initialize_required \ 'ARCHIVE_UPDATE' \ 'ARCHIVE_REQUIRED_UPDATE' export "$(current_archive)_VERSION=$ARCHIVE_REQUIRED_UPDATE_VERSION" # Extract game data mkdir --parents "${PLAYIT_WORKDIR}/gamedata" ( cd "${PLAYIT_WORKDIR}/gamedata" # Extract the content from the installer information_archive_data_extraction "$(archive_name "$(current_archive)")" smpq --extract "$(archive_path "$(current_archive)")" information_archive_data_extraction "$(archive_name "$(current_archive)_PART1")" smpq --extract --overwrite "$(archive_path "$(current_archive)_PART1")" # Include the CD key files install -D --mode=644 \ "$(archive_path 'ARCHIVE_CDKEY_1')" \ "${PLAYIT_WORKDIR}/gamedata/Files/font/font.clh" install -D --mode=644 \ "$(archive_path 'ARCHIVE_CDKEY_2')" \ "${PLAYIT_WORKDIR}/gamedata/Files/font/font.gid" # Update the main .mpq file ( cd 'PC' smpq --append ../Common/StarDat.mpq \ StarEdit.cnt \ EditLocal.dll \ Local.dll \ Riched20.dll \ Smackw32.dll ) ( cd 'PC-100' smpq --append ../Common/StarDat.mpq \ Readme.cnt \ storm.dll \ StarCraft.exe \ StarEdit.exe \ battle.snp \ standard.snp \ License.txt \ ./*.hlp ## This file is only included in the English build of the game case "$(current_archive)" in ('ARCHIVE_BASE_EN_'*) smpq --append ../Common/StarDat.mpq \ rez/License.txt ;; esac ## Compression must be disabled when adding this file to the .mpq archive, to prevent a crash on launch smpq --append --compression none ../Common/StarDat.mpq \ Smk/Blizzard.smk ) ( cd 'Files' ## Compression must be disabled when adding these files to the .mpq archive, to prevent a crash on launch smpq --append --compression none ../Common/StarDat.mpq \ font/*.fnt \ font/font.ccd \ font/font.clh \ font/font.gid ) ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Extract update data archive_extraction 'ARCHIVE_UPDATE' # Include patch data ## Delete a duplicated file rm "$(package_path 'PKG_BIN')$(path_game_data)/patch_rt.mpq" content_inclusion 'UPDATE_GAME' 'PKG_BIN' "$(path_game_data)" content_inclusion 'UPDATE_DOC' 'PKG_DATA' "$(path_documentation)" rm --force --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-startopia.sh0000750000000000000000000000633014471751340014163 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2015 Antoine Le Gonidec set -o errexit ### # Startopia # send your bug reports to vv221@dotslashplay.it ### script_version=20250123.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='startopia' GAME_NAME='Startopia' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" ## Archives ### Full game ARCHIVE_BASE_0_NAME='setup_startopia_2.0.0.17.exe' ARCHIVE_BASE_0_MD5='4fe8d194afc1012e136ed3e82f1de171' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='600000' ARCHIVE_BASE_0_VERSION='1.01b-gog2.0.0.17' ARCHIVE_BASE_0_URL='https://www.gog.com/game/startopia' ### Free demo ARCHIVE_BASE_DEMO_0_NAME='startopia_demo.exe' ARCHIVE_BASE_DEMO_0_MD5='2e170f8c4700b2d271ac2a6fac23920a' ARCHIVE_BASE_DEMO_0_EXTRACTOR='unzip' ARCHIVE_BASE_DEMO_0_SIZE='149364' ARCHIVE_BASE_DEMO_0_VERSION='2001.5.15.1-archive.org' ARCHIVE_BASE_DEMO_0_URL='https://archive.org/details/startopia_demo' CONTENT_PATH_DEFAULT='app' CONTENT_PATH_DEFAULT_DEMO='.' CONTENT_GAME_BIN_FILES=' binkw32.dll startopia.exe' CONTENT_GAME_L10N_FILES=' data/speech/english text/english startopia.ini' CONTENT_GAME_DATA_FILES=' startopia.jpg cardid.tom data intro languageinis missions' CONTENT_DOC_DATA_FILES=' eula weblinks *.doc *.html *.pdf *.rtf *.txt' USER_PERSISTENT_DIRECTORIES=' profiles' USER_PERSISTENT_FILES=' startopia.ini' WINE_VIRTUAL_DESKTOP='auto' APP_MAIN_EXE='startopia.exe' APP_MAIN_EXE_DEMO='StarTopia.exe' PACKAGES_LIST=' PKG_BIN PKG_L10N PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N PKG_DATA' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_ID_DEMO="${GAME_ID_DEMO}-l10n" PKG_L10N_DESCRIPTION='English localization' 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 ## Generate a minimal configuration file game_path="C:\\$(game_id)" intro_path="${game_path}\\intro\\" drive_path_music="${game_path}\\data\\" drive_path_sound="${game_path}\\data\\" sound_path_voice="${game_path}\\data\\" config_file="$(package_path 'PKG_L10N')$(path_game_data)/startopia.ini" cat > "$config_file" <<- EOF [Intro] IntroPath=$intro_path [Sound] DrivePathMusic=$drive_path_music DrivePathSound=$drive_path_sound SoundPathVoice=$sound_path_voice [Language] TextLanguage=English SpeechLanguage=English EOF # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-stellaris-expansions-extra.sh0000750000000000000000000002636414471751340017476 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Stellaris expansions (extra content): # - Arachnoid Portrait Pack # - Horizon Signal # - Anniversary Portraits # send your bug reports to vv221@dotslashplay.it ### script_version=20250504.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='stellaris' GAME_NAME='Stellaris' EXPANSION_ID_ARACHNOID='arachnoid' EXPANSION_NAME_ARACHNOID='Arachnoid Portrait Pack' EXPANSION_ID_HORIZONSIGNAL='horizon-signal' EXPANSION_NAME_HORIZONSIGNAL='Horizon Signal' EXPANSION_ID_ANNIVERSARY='anniversary' EXPANSION_NAME_ANNIVERSARY='Anniversary Portraits' # Archives ## Arachnoid Portrait Pack ARCHIVE_BASE_ARACHNOID_64_NAME='stellaris_arachnoid_portrait_pack_3_14_1592653_81105.sh' ARCHIVE_BASE_ARACHNOID_64_MD5='4168a3e72b2c19b0e7072e381b235314' ARCHIVE_BASE_ARACHNOID_64_SIZE='817' ARCHIVE_BASE_ARACHNOID_64_VERSION='3.14.1592653-gog81105' ARCHIVE_BASE_ARACHNOID_64_URL='https://www.gog.com/game/stellaris_galaxy_edition_upgrade_pack' ARCHIVE_BASE_ARACHNOID_63_NAME='stellaris_arachnoid_portrait_pack_3_14_15926_78464.sh' ARCHIVE_BASE_ARACHNOID_63_MD5='9da0b12f862958f4af43ae7612445adb' ARCHIVE_BASE_ARACHNOID_63_SIZE='817' ARCHIVE_BASE_ARACHNOID_63_VERSION='3.14.15926-gog78464' ARCHIVE_BASE_ARACHNOID_62_NAME='stellaris_arachnoid_portrait_pack_3_13_2_0_76713.sh' ARCHIVE_BASE_ARACHNOID_62_MD5='6584255df86295e64f59c6e9c1b69503' ARCHIVE_BASE_ARACHNOID_62_SIZE='817' ARCHIVE_BASE_ARACHNOID_62_VERSION='3.13.2-gog76713' ARCHIVE_BASE_ARACHNOID_59_NAME='stellaris_arachnoid_portrait_pack_3_12_5_74193.sh' ARCHIVE_BASE_ARACHNOID_59_MD5='f753906a3ff33592d853b6634d14cfb9' ARCHIVE_BASE_ARACHNOID_59_SIZE='817' ARCHIVE_BASE_ARACHNOID_59_VERSION='3.12.5-gog74193' ARCHIVE_BASE_ARACHNOID_55_NAME='stellaris_arachnoid_portrait_pack_3_11_3_0_72561.sh' ARCHIVE_BASE_ARACHNOID_55_MD5='5e073b99755aa71fa8b4063e53b4335c' ARCHIVE_BASE_ARACHNOID_55_SIZE='817' ARCHIVE_BASE_ARACHNOID_55_VERSION='3.11.3-gog72561' ARCHIVE_BASE_ARACHNOID_52_NAME='stellaris_arachnoid_portrait_pack_3_10_4_70670.sh' ARCHIVE_BASE_ARACHNOID_52_MD5='a1adad0576df7d51e3035c0f1ad23c1b' ARCHIVE_BASE_ARACHNOID_52_SIZE='817' ARCHIVE_BASE_ARACHNOID_52_VERSION='3.10.4-gog70670' ARCHIVE_BASE_ARACHNOID_46_NAME='stellaris_arachnoid_portrait_pack_3_9_3_68314.sh' ARCHIVE_BASE_ARACHNOID_46_MD5='7e9c3036c905d049728186576f8a56eb' ARCHIVE_BASE_ARACHNOID_46_SIZE='1136' ARCHIVE_BASE_ARACHNOID_46_VERSION='3.9.3-gog68314' ARCHIVE_BASE_ARACHNOID_43_NAME='stellaris_arachnoid_portrait_pack_3_8_4_1_65337.sh' ARCHIVE_BASE_ARACHNOID_43_MD5='3c4a57c69955b4b7fc63e46ea06684a5' ARCHIVE_BASE_ARACHNOID_43_SIZE='1200' ARCHIVE_BASE_ARACHNOID_43_VERSION='3.8.4.1-gog65337' ARCHIVE_BASE_ARACHNOID_39_NAME='stellaris_arachnoid_portrait_pack_3_7_4_63489.sh' ARCHIVE_BASE_ARACHNOID_39_MD5='e4d76799d90bf18a2666460bae14db93' ARCHIVE_BASE_ARACHNOID_39_SIZE='1200' ARCHIVE_BASE_ARACHNOID_39_VERSION='3.7.4-gog63489' ARCHIVE_BASE_ARACHNOID_36_NAME='stellaris_arachnoid_portrait_pack_3_6_1_60754.sh' ARCHIVE_BASE_ARACHNOID_36_MD5='41240ed75d7100557b57914ee66c1f49' ARCHIVE_BASE_ARACHNOID_36_SIZE='1200' ARCHIVE_BASE_ARACHNOID_36_VERSION='3.6.1-gog60754' ARCHIVE_BASE_ARACHNOID_34_NAME='stellaris_arachnoid_portrait_pack_3_5_3_59410.sh' ARCHIVE_BASE_ARACHNOID_34_MD5='6aff6463161944a265b502f434577fc9' ARCHIVE_BASE_ARACHNOID_34_SIZE='1200' ARCHIVE_BASE_ARACHNOID_34_VERSION='3.5.3-gog59410' ARCHIVE_BASE_ARACHNOID_32_NAME='stellaris_arachnoid_portrait_pack_3_4_5_56913.sh' ARCHIVE_BASE_ARACHNOID_32_MD5='ace768013cc7aaa46182586349432ddf' ARCHIVE_BASE_ARACHNOID_32_SIZE='1200' ARCHIVE_BASE_ARACHNOID_32_VERSION='3.4.5-gog56913' ARCHIVE_BASE_ARACHNOID_28_NAME='stellaris_arachnoid_portrait_pack_3_3_4_54421.sh' ARCHIVE_BASE_ARACHNOID_28_MD5='2d7bd0d2246fcec48ca8bbf8cdb456e8' ARCHIVE_BASE_ARACHNOID_28_SIZE='1200' ARCHIVE_BASE_ARACHNOID_28_VERSION='3.3.4-gog54421' ARCHIVE_BASE_ARACHNOID_24_NAME='stellaris_arachnoid_portrait_pack_3_2_1_1_51520.sh' ARCHIVE_BASE_ARACHNOID_24_MD5='fab840f6c4a70dcb7c19c913d711af20' ARCHIVE_BASE_ARACHNOID_24_SIZE='1200' ARCHIVE_BASE_ARACHNOID_24_VERSION='3.2.1.1-gog51520' ARCHIVE_BASE_ARACHNOID_23_NAME='stellaris_arachnoid_portrait_pack_3_1_1_50008.sh' ARCHIVE_BASE_ARACHNOID_23_MD5='0ccdf6386dc2b9c062e9d272550392a1' ARCHIVE_BASE_ARACHNOID_23_SIZE='1200' ARCHIVE_BASE_ARACHNOID_23_VERSION='3.1.1-gog50008' ARCHIVE_BASE_ARACHNOID_22_NAME='stellaris_arachnoid_portrait_pack_3_0_3_47193.sh' ARCHIVE_BASE_ARACHNOID_22_MD5='d9619c256ed79a50cce26398b9ac8c11' ARCHIVE_BASE_ARACHNOID_22_SIZE='1200' ARCHIVE_BASE_ARACHNOID_22_VERSION='3.0.3-gog47193' ## Horizon Signal ARCHIVE_BASE_HORIZONSIGNAL_64_NAME='stellaris_horizon_signal_3_14_1592653_81105.sh' ARCHIVE_BASE_HORIZONSIGNAL_64_MD5='b5f000f1f6ab8e30cb90ffffcbb07716' ARCHIVE_BASE_HORIZONSIGNAL_64_SIZE='817' ARCHIVE_BASE_HORIZONSIGNAL_64_VERSION='3.14.1592653-gog81105' ARCHIVE_BASE_HORIZONSIGNAL_64_URL='https://www.gog.com/game/stellaris_horizon_signal' ARCHIVE_BASE_HORIZONSIGNAL_63_NAME='stellaris_horizon_signal_3_14_15926_78464.sh' ARCHIVE_BASE_HORIZONSIGNAL_63_MD5='2e1dd57ce9e7f96216b7afd9ac2ad81b' ARCHIVE_BASE_HORIZONSIGNAL_63_SIZE='817' ARCHIVE_BASE_HORIZONSIGNAL_63_VERSION='3.14.15926-gog78464' ARCHIVE_BASE_HORIZONSIGNAL_62_NAME='stellaris_horizon_signal_3_13_2_0_76713.sh' ARCHIVE_BASE_HORIZONSIGNAL_62_MD5='9719994a74b4778c50a5a9a0a1390d4a' ARCHIVE_BASE_HORIZONSIGNAL_62_SIZE='817' ARCHIVE_BASE_HORIZONSIGNAL_62_VERSION='3.13.2-gog76713' ARCHIVE_BASE_HORIZONSIGNAL_59_NAME='stellaris_horizon_signal_3_12_5_74193.sh' ARCHIVE_BASE_HORIZONSIGNAL_59_MD5='e0f7d5e0308ee01cd9fd4f3bc787e1b9' ARCHIVE_BASE_HORIZONSIGNAL_59_SIZE='817' ARCHIVE_BASE_HORIZONSIGNAL_59_VERSION='3.12.5-gog74193' ARCHIVE_BASE_HORIZONSIGNAL_55_NAME='stellaris_horizon_signal_3_11_3_0_72561.sh' ARCHIVE_BASE_HORIZONSIGNAL_55_MD5='d9074aa886455537cbeffb4364164b10' ARCHIVE_BASE_HORIZONSIGNAL_55_SIZE='817' ARCHIVE_BASE_HORIZONSIGNAL_55_VERSION='3.11.3-gog72561' ARCHIVE_BASE_HORIZONSIGNAL_52_NAME='stellaris_horizon_signal_3_10_4_70670.sh' ARCHIVE_BASE_HORIZONSIGNAL_52_MD5='d81d5a8fcf2a2d406d9670530e80c4ea' ARCHIVE_BASE_HORIZONSIGNAL_52_SIZE='817' ARCHIVE_BASE_HORIZONSIGNAL_52_VERSION='3.10.4-gog70670' ARCHIVE_BASE_HORIZONSIGNAL_46_NAME='stellaris_horizon_signal_3_9_3_68314.sh' ARCHIVE_BASE_HORIZONSIGNAL_46_MD5='b3b8eb00b7ca9c70445bf8b13641ae5e' ARCHIVE_BASE_HORIZONSIGNAL_46_SIZE='1136' ARCHIVE_BASE_HORIZONSIGNAL_46_VERSION='3.9.3-gog68314' ARCHIVE_BASE_HORIZONSIGNAL_43_NAME='stellaris_horizon_signal_3_8_4_1_65337.sh' ARCHIVE_BASE_HORIZONSIGNAL_43_MD5='97befa175f3b19a1bb0457ef9342b477' ARCHIVE_BASE_HORIZONSIGNAL_43_SIZE='1200' ARCHIVE_BASE_HORIZONSIGNAL_43_VERSION='3.8.4.1-gog65337' ARCHIVE_BASE_HORIZONSIGNAL_39_NAME='stellaris_horizon_signal_3_7_4_63489.sh' ARCHIVE_BASE_HORIZONSIGNAL_39_MD5='2c110df9fde65ba833611299f9089f11' ARCHIVE_BASE_HORIZONSIGNAL_39_SIZE='1200' ARCHIVE_BASE_HORIZONSIGNAL_39_VERSION='3.7.4-gog63489' ARCHIVE_BASE_HORIZONSIGNAL_36_NAME='stellaris_horizon_signal_3_6_1_60754.sh' ARCHIVE_BASE_HORIZONSIGNAL_36_MD5='2aa466583664f7849a8887288cc11c64' ARCHIVE_BASE_HORIZONSIGNAL_36_SIZE='1200' ARCHIVE_BASE_HORIZONSIGNAL_36_VERSION='3.6.1-gog60754' ARCHIVE_BASE_HORIZONSIGNAL_34_NAME='stellaris_horizon_signal_3_5_3_59410.sh' ARCHIVE_BASE_HORIZONSIGNAL_34_MD5='d8ed88b305b2b59eff219050dfefaaeb' ARCHIVE_BASE_HORIZONSIGNAL_34_SIZE='1200' ARCHIVE_BASE_HORIZONSIGNAL_34_VERSION='3.5.3-gog59410' ARCHIVE_BASE_HORIZONSIGNAL_32_NAME='stellaris_horizon_signal_3_4_5_56913.sh' ARCHIVE_BASE_HORIZONSIGNAL_32_MD5='6799f7b49323c768c3db7a2744e07e09' ARCHIVE_BASE_HORIZONSIGNAL_32_SIZE='1200' ARCHIVE_BASE_HORIZONSIGNAL_32_VERSION='3.4.5-gog56913' ARCHIVE_BASE_HORIZONSIGNAL_28_NAME='stellaris_horizon_signal_3_3_4_54421.sh' ARCHIVE_BASE_HORIZONSIGNAL_28_MD5='80c81dc86845976789437875b8fd3b2e' ARCHIVE_BASE_HORIZONSIGNAL_28_SIZE='1200' ARCHIVE_BASE_HORIZONSIGNAL_28_VERSION='3.3.4-gog54421' ARCHIVE_BASE_HORIZONSIGNAL_24_NAME='stellaris_horizon_signal_3_2_1_1_51520.sh' ARCHIVE_BASE_HORIZONSIGNAL_24_MD5='d9153fc1cf20a225e55cb001aa6b8c51' ARCHIVE_BASE_HORIZONSIGNAL_24_SIZE='1200' ARCHIVE_BASE_HORIZONSIGNAL_24_VERSION='3.2.1.1-gog51520' ARCHIVE_BASE_HORIZONSIGNAL_23_NAME='stellaris_horizon_signal_3_1_1_50008.sh' ARCHIVE_BASE_HORIZONSIGNAL_23_MD5='5c64e490ee6ac5e72816be2530e90f2b' ARCHIVE_BASE_HORIZONSIGNAL_23_SIZE='1200' ARCHIVE_BASE_HORIZONSIGNAL_23_VERSION='3.1.1-gog50008' ARCHIVE_BASE_HORIZONSIGNAL_22_NAME='stellaris_horizon_signal_3_0_3_47193.sh' ARCHIVE_BASE_HORIZONSIGNAL_22_MD5='40ddcd078680c3ab2bb5e98d7658bfa9' ARCHIVE_BASE_HORIZONSIGNAL_22_SIZE='1200' ARCHIVE_BASE_HORIZONSIGNAL_22_VERSION='3.0.3-gog47193' ## Anniversary Portraits ### Starting with game release 3.7.2, ### this expansion is included in the base game. ARCHIVE_BASE_ANNIVERSARY_35_NAME='stellaris_anniversary_portraits_3_6_1_60754.sh' ARCHIVE_BASE_ANNIVERSARY_35_MD5='13d5ed75ed18ae47fd8377a3c0f58eec' ARCHIVE_BASE_ANNIVERSARY_35_SIZE='1200' ARCHIVE_BASE_ANNIVERSARY_35_VERSION='3.6.1-gog60754' ARCHIVE_BASE_ANNIVERSARY_33_NAME='stellaris_anniversary_portraits_3_5_3_59410.sh' ARCHIVE_BASE_ANNIVERSARY_33_MD5='7fb42ed038df8658a160a1a575e92ca4' ARCHIVE_BASE_ANNIVERSARY_33_SIZE='1200' ARCHIVE_BASE_ANNIVERSARY_33_VERSION='3.5.3-gog59410' ARCHIVE_BASE_ANNIVERSARY_31_NAME='stellaris_anniversary_portraits_3_4_5_56913.sh' ARCHIVE_BASE_ANNIVERSARY_31_MD5='3e31e34d9abb5118a704b904275a14c5' ARCHIVE_BASE_ANNIVERSARY_31_SIZE='1200' ARCHIVE_BASE_ANNIVERSARY_31_VERSION='3.4.5-gog56913' ARCHIVE_BASE_ANNIVERSARY_27_NAME='stellaris_anniversary_portraits_3_3_4_54421.sh' ARCHIVE_BASE_ANNIVERSARY_27_MD5='d61fc4a3daaebdfa73b002e1865d65f8' ARCHIVE_BASE_ANNIVERSARY_27_SIZE='1200' ARCHIVE_BASE_ANNIVERSARY_27_VERSION='3.3.4-gog54421' ARCHIVE_BASE_ANNIVERSARY_23_NAME='stellaris_anniversary_portraits_3_2_1_1_51520.sh' ARCHIVE_BASE_ANNIVERSARY_23_MD5='8ef72fb6a3a0f648d5c484bad729194c' ARCHIVE_BASE_ANNIVERSARY_23_SIZE='1200' ARCHIVE_BASE_ANNIVERSARY_23_VERSION='3.2.1.1-gog51520' ARCHIVE_BASE_ANNIVERSARY_22_NAME='stellaris_anniversary_portraits_3_1_1_50008.sh' ARCHIVE_BASE_ANNIVERSARY_22_MD5='d6a97a96a73effc93e41f247b86db8e3' ARCHIVE_BASE_ANNIVERSARY_22_SIZE='1200' ARCHIVE_BASE_ANNIVERSARY_22_VERSION='3.1.1-gog50008' ARCHIVE_BASE_ANNIVERSARY_21_NAME='stellaris_anniversary_portraits_3_0_3_47193.sh' ARCHIVE_BASE_ANNIVERSARY_21_MD5='53b0dd554774acd8aa821b5be741b4d8' ARCHIVE_BASE_ANNIVERSARY_21_SIZE='1200' ARCHIVE_BASE_ANNIVERSARY_21_VERSION='3.0.3-gog47193' 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-stellaris-expansions-mechanical.sh0000750000000000000000000000423114471751340020424 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Stellaris expansions (mechanical expansions): # - Cosmic Storms # send your bug reports to vv221@dotslashplay.it ### script_version=20250504.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='stellaris' GAME_NAME='Stellaris' EXPANSION_ID_STORMS='cosmic-storms' EXPANSION_NAME_STORMS='Cosmic Storms' # Archives ## Cosmic Storms ARCHIVE_BASE_STORMS_4_NAME='stellaris_cosmic_storms_3_14_1592653_81105.sh' ARCHIVE_BASE_STORMS_4_MD5='672c8bb0d4992b1e76f827fe351fb69a' ARCHIVE_BASE_STORMS_4_SIZE='829' ARCHIVE_BASE_STORMS_4_VERSION='3.14.1592653-gog81105' ARCHIVE_BASE_STORMS_4_URL='https://www.gog.com/game/stellaris_cosmic_storms' ARCHIVE_BASE_STORMS_3_NAME='stellaris_cosmic_storms_3_14_15926_78464.sh' ARCHIVE_BASE_STORMS_3_MD5='6cf3fcb0ef883746b11eb3dd55c67a89' ARCHIVE_BASE_STORMS_3_SIZE='829' ARCHIVE_BASE_STORMS_3_VERSION='3.14.15926-gog78464' ARCHIVE_BASE_STORMS_2_NAME='stellaris_cosmic_storms_3_13_2_0_76713.sh' ARCHIVE_BASE_STORMS_2_MD5='a011e1ef5f111c624be7cbbcd5a924fa' ARCHIVE_BASE_STORMS_2_SIZE='829' ARCHIVE_BASE_STORMS_2_VERSION='3.13.2-gog76713' 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-stellaris-expansions-narrative.sh0000750000000000000000000000546314471751340020343 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Stellaris expansions (narrative expansions): # - Astral Planes # send your bug reports to vv221@dotslashplay.it ### script_version=20250504.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='stellaris' GAME_NAME='Stellaris' EXPANSION_ID_PLANES='astral-planes' EXPANSION_NAME_PLANES='Astral Planes' # Archives ## Astral Planes ARCHIVE_BASE_PLANES_17_NAME='stellaris_astral_planes_3_14_1592653_81105.sh' ARCHIVE_BASE_PLANES_17_MD5='27e12dbda8a5734ec6bd94e6eda650d9' ARCHIVE_BASE_PLANES_17_SIZE='46789' ARCHIVE_BASE_PLANES_17_VERSION='3.14.1592653-gog81105' ARCHIVE_BASE_PLANES_17_URL='https://www.gog.com/game/stellaris_astral_planes' ARCHIVE_BASE_PLANES_16_NAME='stellaris_astral_planes_3_14_15926_78464.sh' ARCHIVE_BASE_PLANES_16_MD5='d59eceb01b9846df80331cd57e41c899' ARCHIVE_BASE_PLANES_16_SIZE='46789' ARCHIVE_BASE_PLANES_16_VERSION='3.14.15926-gog78464' ARCHIVE_BASE_PLANES_15_NAME='stellaris_astral_planes_3_13_2_0_76713.sh' ARCHIVE_BASE_PLANES_15_MD5='8350550427b8df4980d5b10b680f8068' ARCHIVE_BASE_PLANES_15_SIZE='46789' ARCHIVE_BASE_PLANES_15_VERSION='3.13.2-gog76713' ARCHIVE_BASE_PLANES_12_NAME='stellaris_astral_planes_3_12_5_74193.sh' ARCHIVE_BASE_PLANES_12_MD5='8cbaaaa68306cc90effacd2510cbe089' ARCHIVE_BASE_PLANES_12_SIZE='46789' ARCHIVE_BASE_PLANES_12_VERSION='3.12.5-gog74193' ARCHIVE_BASE_PLANES_8_NAME='stellaris_astral_planes_3_11_3_0_72561.sh' ARCHIVE_BASE_PLANES_8_MD5='7d43cac5e6dd18238fff6f06b82be7c1' ARCHIVE_BASE_PLANES_8_SIZE='46789' ARCHIVE_BASE_PLANES_8_VERSION='3.11.3-gog72561' ARCHIVE_BASE_PLANES_5_NAME='stellaris_astral_planes_3_10_4_70670.sh' ARCHIVE_BASE_PLANES_5_MD5='fab105e52dffbf0ec425d4cedf89feae' ARCHIVE_BASE_PLANES_5_SIZE='46789' ARCHIVE_BASE_PLANES_5_VERSION='3.10.4-gog70670' 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-stellaris-expansions-species-packs.sh0000750000000000000000000005245114471751340021101 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Stellaris expansions (species packs): # - Plantoids # - Humanoids # - Lithoids # - Necroids # - Aquatics # - Toxoids # send your bug reports to vv221@dotslashplay.it ### script_version=20250504.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='stellaris' GAME_NAME='Stellaris' EXPANSION_ID_PLANTOID='plantoid' EXPANSION_NAME_PLANTOID='Plantoids Species Pack' EXPANSION_ID_HUMANOIDS='humanoids' EXPANSION_NAME_HUMANOIDS='Humanoids Species Pack' EXPANSION_ID_LITHOIDS='lithoids' EXPANSION_NAME_LITHOIDS='Lithoids Species Pack' EXPANSION_ID_NECROIDS='necroids' EXPANSION_NAME_NECROIDS='Necroids Species Pack' EXPANSION_ID_AQUATICS='aquatics' EXPANSION_NAME_AQUATICS='Aquatics Species Pack' EXPANSION_ID_TOXOIDS='toxoids' EXPANSION_NAME_TOXOIDS='Toxoids Species Pack' # Archives ## Plantoids ARCHIVE_BASE_PLANTOID_61_NAME='stellaris_plantoids_species_pack_3_14_1592653_81105.sh' ARCHIVE_BASE_PLANTOID_61_MD5='f2096d98d49833c1f900cd91b427b99d' ARCHIVE_BASE_PLANTOID_61_SIZE='837' ARCHIVE_BASE_PLANTOID_61_VERSION='3.14.1592653-gog81105' ARCHIVE_BASE_PLANTOID_61_URL='https://www.gog.com/game/stellaris_plantoids_species_pack' ARCHIVE_BASE_PLANTOID_60_NAME='stellaris_plantoids_species_pack_3_14_15926_78464.sh' ARCHIVE_BASE_PLANTOID_60_MD5='d35b66bc263d6111755f070bd9029832' ARCHIVE_BASE_PLANTOID_60_SIZE='837' ARCHIVE_BASE_PLANTOID_60_VERSION='3.14.15926-gog78464' ARCHIVE_BASE_PLANTOID_59_NAME='stellaris_plantoids_species_pack_3_13_2_0_76713.sh' ARCHIVE_BASE_PLANTOID_59_MD5='3b5da3bbc12bef1778070cb48c0d5b5e' ARCHIVE_BASE_PLANTOID_59_SIZE='837' ARCHIVE_BASE_PLANTOID_59_VERSION='3.13.2-gog76713' ARCHIVE_BASE_PLANTOID_56_NAME='stellaris_plantoids_species_pack_3_12_5_74193.sh' ARCHIVE_BASE_PLANTOID_56_MD5='c97796440232a0afa39a793efae40c67' ARCHIVE_BASE_PLANTOID_56_SIZE='837' ARCHIVE_BASE_PLANTOID_56_VERSION='3.12.5-gog74193' ARCHIVE_BASE_PLANTOID_52_NAME='stellaris_plantoids_species_pack_3_11_3_0_72561.sh' ARCHIVE_BASE_PLANTOID_52_MD5='c301172fde38bcd14b9e7546f35e49d2' ARCHIVE_BASE_PLANTOID_52_SIZE='837' ARCHIVE_BASE_PLANTOID_52_VERSION='3.11.3-gog72561' ARCHIVE_BASE_PLANTOID_49_NAME='stellaris_plantoids_species_pack_3_10_4_70670.sh' ARCHIVE_BASE_PLANTOID_49_MD5='fc70ea7215520e885c61d072463b9be4' ARCHIVE_BASE_PLANTOID_49_SIZE='837' ARCHIVE_BASE_PLANTOID_49_VERSION='3.10.4-gog70670' ARCHIVE_BASE_PLANTOID_43_NAME='stellaris_plantoids_species_pack_3_9_3_68314.sh' ARCHIVE_BASE_PLANTOID_43_MD5='f38e8c826f876f52cea68b69f85ca079' ARCHIVE_BASE_PLANTOID_43_SIZE='1156' ARCHIVE_BASE_PLANTOID_43_VERSION='3.9.3-gog68314' ARCHIVE_BASE_PLANTOID_40_NAME='stellaris_plantoids_species_pack_3_8_4_1_65337.sh' ARCHIVE_BASE_PLANTOID_40_MD5='c64fed3a260b17bdb07e439dc20304c7' ARCHIVE_BASE_PLANTOID_40_SIZE='1200' ARCHIVE_BASE_PLANTOID_40_VERSION='3.8.4.1-gog65337' ARCHIVE_BASE_PLANTOID_39_NAME='stellaris_plantoids_species_pack_3_8_3_1_64953.sh' ARCHIVE_BASE_PLANTOID_39_MD5='7b0cec949d962b027bc7bd108d79eeaf' ARCHIVE_BASE_PLANTOID_39_SIZE='1200' ARCHIVE_BASE_PLANTOID_39_VERSION='3.8.3.1-gog64953' ARCHIVE_BASE_PLANTOID_36_NAME='stellaris_plantoids_species_pack_3_7_4_63489.sh' ARCHIVE_BASE_PLANTOID_36_MD5='5a2a9101e09cddc83e29c802b33639ed' ARCHIVE_BASE_PLANTOID_36_SIZE='1200' ARCHIVE_BASE_PLANTOID_36_VERSION='3.7.4-gog63489' ARCHIVE_BASE_PLANTOID_33_NAME='stellaris_plantoids_species_pack_3_6_1_60754.sh' ARCHIVE_BASE_PLANTOID_33_MD5='298bdd7c0f717f90c2045d0c9a68c1c9' ARCHIVE_BASE_PLANTOID_33_SIZE='1200' ARCHIVE_BASE_PLANTOID_33_VERSION='3.6.1-gog60754' ARCHIVE_BASE_PLANTOID_31_NAME='stellaris_plantoids_species_pack_3_5_3_59410.sh' ARCHIVE_BASE_PLANTOID_31_MD5='fabc6b9d5580dac6a456da962a765709' ARCHIVE_BASE_PLANTOID_31_SIZE='1200' ARCHIVE_BASE_PLANTOID_31_VERSION='3.5.3-gog59410' ARCHIVE_BASE_PLANTOID_29_NAME='stellaris_plantoids_species_pack_3_4_5_56913.sh' ARCHIVE_BASE_PLANTOID_29_MD5='b2b5023834509b4a5c2a12bb345380a1' ARCHIVE_BASE_PLANTOID_29_SIZE='1200' ARCHIVE_BASE_PLANTOID_29_VERSION='3.4.5-gog56913' ARCHIVE_BASE_PLANTOID_25_NAME='stellaris_plantoids_species_pack_3_3_4_54421.sh' ARCHIVE_BASE_PLANTOID_25_MD5='b8ea82b781639c7031ea53d4e155c5d1' ARCHIVE_BASE_PLANTOID_25_SIZE='1200' ARCHIVE_BASE_PLANTOID_25_VERSION='3.3.4-gog54421' ARCHIVE_BASE_PLANTOID_21_NAME='stellaris_plantoids_species_pack_3_2_1_1_51520.sh' ARCHIVE_BASE_PLANTOID_21_MD5='260d8bc704b93f307d31807efbb5568f' ARCHIVE_BASE_PLANTOID_21_SIZE='1200' ARCHIVE_BASE_PLANTOID_21_VERSION='3.2.1.1-gog51520' ARCHIVE_BASE_PLANTOID_20_NAME='stellaris_plantoids_species_pack_3_1_1_50008.sh' ARCHIVE_BASE_PLANTOID_20_MD5='fb947af6a98e45645b482a484bd6d42e' ARCHIVE_BASE_PLANTOID_20_SIZE='1200' ARCHIVE_BASE_PLANTOID_20_VERSION='3.1.1-gog50008' ARCHIVE_BASE_PLANTOID_19_NAME='stellaris_plantoids_species_pack_3_0_3_47193.sh' ARCHIVE_BASE_PLANTOID_19_MD5='d1dc616e45d6d035ed3414687228f95a' ARCHIVE_BASE_PLANTOID_19_SIZE='1200' ARCHIVE_BASE_PLANTOID_19_VERSION='3.0.3-gog47193' ## Humanoids ARCHIVE_BASE_HUMANOIDS_61_NAME='stellaris_humanoids_species_pack_3_14_1592653_81105.sh' ARCHIVE_BASE_HUMANOIDS_61_MD5='b0ca9dba864d8726f822b03749cc680c' ARCHIVE_BASE_HUMANOIDS_61_SIZE='84675' ARCHIVE_BASE_HUMANOIDS_61_VERSION='3.14.1592653-gog81105' ARCHIVE_BASE_HUMANOIDS_61_URL='https://www.gog.com/game/stellaris_humanoids_species_pack' ARCHIVE_BASE_HUMANOIDS_60_NAME='stellaris_humanoids_species_pack_3_14_15926_78464.sh' ARCHIVE_BASE_HUMANOIDS_60_MD5='783bfe3b3ddc324fc0b8d29b2e41a56a' ARCHIVE_BASE_HUMANOIDS_60_SIZE='84675' ARCHIVE_BASE_HUMANOIDS_60_VERSION='3.14.15926-gog78464' ARCHIVE_BASE_HUMANOIDS_59_NAME='stellaris_humanoids_species_pack_3_13_2_0_76713.sh' ARCHIVE_BASE_HUMANOIDS_59_MD5='ae7cc19055d5cdcad0642008cb75bd93' ARCHIVE_BASE_HUMANOIDS_59_SIZE='84675' ARCHIVE_BASE_HUMANOIDS_59_VERSION='3.13.2-gog76713' ARCHIVE_BASE_HUMANOIDS_56_NAME='stellaris_humanoids_species_pack_3_12_5_74193.sh' ARCHIVE_BASE_HUMANOIDS_56_MD5='f7fa5900c87f3fb8cd43d9dcead97de2' ARCHIVE_BASE_HUMANOIDS_56_SIZE='116312' ARCHIVE_BASE_HUMANOIDS_56_VERSION='3.12.5-gog74193' ARCHIVE_BASE_HUMANOIDS_52_NAME='stellaris_humanoids_species_pack_3_11_3_0_72561.sh' ARCHIVE_BASE_HUMANOIDS_52_MD5='833ef910df4b00cfb7e3177b7525bee9' ARCHIVE_BASE_HUMANOIDS_52_SIZE='116312' ARCHIVE_BASE_HUMANOIDS_52_VERSION='3.11.3-gog72561' ARCHIVE_BASE_HUMANOIDS_49_NAME='stellaris_humanoids_species_pack_3_10_4_70670.sh' ARCHIVE_BASE_HUMANOIDS_49_MD5='515dd7f2ae1c68fe53a589f77b7af19c' ARCHIVE_BASE_HUMANOIDS_49_SIZE='116312' ARCHIVE_BASE_HUMANOIDS_49_VERSION='3.10.4-gog70670' ARCHIVE_BASE_HUMANOIDS_43_NAME='stellaris_humanoids_species_pack_3_9_3_68314.sh' ARCHIVE_BASE_HUMANOIDS_43_MD5='d970689331dfae6ad559b4dd8d146080' ARCHIVE_BASE_HUMANOIDS_43_SIZE='116636' ARCHIVE_BASE_HUMANOIDS_43_VERSION='3.9.3-gog68314' ARCHIVE_BASE_HUMANOIDS_40_NAME='stellaris_humanoids_species_pack_3_8_4_1_65337.sh' ARCHIVE_BASE_HUMANOIDS_40_MD5='435cdbbe3a8affded29b3b6f9d36125a' ARCHIVE_BASE_HUMANOIDS_40_SIZE='120000' ARCHIVE_BASE_HUMANOIDS_40_VERSION='3.8.4.1-gog65337' ARCHIVE_BASE_HUMANOIDS_36_NAME='stellaris_humanoids_species_pack_3_7_4_63489.sh' ARCHIVE_BASE_HUMANOIDS_36_MD5='de7661496eba8a9d125b44f3075a71b7' ARCHIVE_BASE_HUMANOIDS_36_SIZE='120000' ARCHIVE_BASE_HUMANOIDS_36_VERSION='3.7.4-gog63489' ARCHIVE_BASE_HUMANOIDS_33_NAME='stellaris_humanoids_species_pack_3_6_1_60754.sh' ARCHIVE_BASE_HUMANOIDS_33_MD5='5124b47dce3c7a7282087e521920fee9' ARCHIVE_BASE_HUMANOIDS_33_SIZE='120000' ARCHIVE_BASE_HUMANOIDS_33_VERSION='3.6.1-gog60754' ARCHIVE_BASE_HUMANOIDS_31_NAME='stellaris_humanoids_species_pack_3_5_3_59410.sh' ARCHIVE_BASE_HUMANOIDS_31_MD5='9f92e8b6853b26bc31da38b5a0991a37' ARCHIVE_BASE_HUMANOIDS_31_SIZE='120000' ARCHIVE_BASE_HUMANOIDS_31_VERSION='3.5.3-gog59410' ARCHIVE_BASE_HUMANOIDS_29_NAME='stellaris_humanoids_species_pack_3_4_5_56913.sh' ARCHIVE_BASE_HUMANOIDS_29_MD5='5fcd93a54b01f93bae743d49bf61860b' ARCHIVE_BASE_HUMANOIDS_29_SIZE='120000' ARCHIVE_BASE_HUMANOIDS_29_VERSION='3.4.5-gog56913' ARCHIVE_BASE_HUMANOIDS_25_NAME='stellaris_humanoids_species_pack_3_3_4_54421.sh' ARCHIVE_BASE_HUMANOIDS_25_MD5='b7ccaa9303516274f7945882bd6a2d2f' ARCHIVE_BASE_HUMANOIDS_25_SIZE='120000' ARCHIVE_BASE_HUMANOIDS_25_VERSION='3.3.4-gog54421' ARCHIVE_BASE_HUMANOIDS_21_NAME='stellaris_humanoids_species_pack_3_2_1_1_51520.sh' ARCHIVE_BASE_HUMANOIDS_21_MD5='d56625b5ce55405530929bea32852f54' ARCHIVE_BASE_HUMANOIDS_21_SIZE='120000' ARCHIVE_BASE_HUMANOIDS_21_VERSION='3.2.1.1-gog51520' ARCHIVE_BASE_HUMANOIDS_20_NAME='stellaris_humanoids_species_pack_3_1_1_50008.sh' ARCHIVE_BASE_HUMANOIDS_20_MD5='974908ceeb80ade57dfa00c957604d06' ARCHIVE_BASE_HUMANOIDS_20_SIZE='120000' ARCHIVE_BASE_HUMANOIDS_20_VERSION='3.1.1-gog50008' ARCHIVE_BASE_HUMANOIDS_19_NAME='stellaris_humanoids_species_pack_3_0_3_47193.sh' ARCHIVE_BASE_HUMANOIDS_19_MD5='9dc8511383a7c36c54660d6d77d61117' ARCHIVE_BASE_HUMANOIDS_19_SIZE='120000' ARCHIVE_BASE_HUMANOIDS_19_VERSION='3.0.3-gog47193' ## Lithoids ARCHIVE_BASE_LITHOIDS_49_NAME='stellaris_lithoids_species_pack_3_14_1592653_81105.sh' ARCHIVE_BASE_LITHOIDS_49_MD5='61bc2f350ab85060fa192a4ab9d0449f' ARCHIVE_BASE_LITHOIDS_49_SIZE='25612' ARCHIVE_BASE_LITHOIDS_49_VERSION='3.14.1592653-gog81105' ARCHIVE_BASE_LITHOIDS_49_URL='https://www.gog.com/game/stellaris_lithoids_species_pack' ARCHIVE_BASE_LITHOIDS_48_NAME='stellaris_lithoids_species_pack_3_14_15926_78464.sh' ARCHIVE_BASE_LITHOIDS_48_MD5='588c9fe39ff00c406bdb731808c1d43d' ARCHIVE_BASE_LITHOIDS_48_SIZE='25612' ARCHIVE_BASE_LITHOIDS_48_VERSION='3.14.15926-gog78464' ARCHIVE_BASE_LITHOIDS_47_NAME='stellaris_lithoids_species_pack_3_13_2_0_76713.sh' ARCHIVE_BASE_LITHOIDS_47_MD5='4fba44ef615444494f99af497e4d2b5f' ARCHIVE_BASE_LITHOIDS_47_SIZE='25612' ARCHIVE_BASE_LITHOIDS_47_VERSION='3.13.2-gog76713' ARCHIVE_BASE_LITHOIDS_44_NAME='stellaris_lithoids_species_pack_3_12_5_74193.sh' ARCHIVE_BASE_LITHOIDS_44_MD5='bc4810ff3047e688c1ec0ae0991987ae' ARCHIVE_BASE_LITHOIDS_44_SIZE='52603' ARCHIVE_BASE_LITHOIDS_44_VERSION='3.12.5-gog74193' ARCHIVE_BASE_LITHOIDS_40_NAME='stellaris_lithoids_species_pack_3_11_3_0_72561.sh' ARCHIVE_BASE_LITHOIDS_40_MD5='8ca00268fd2b3b4fb611b65bc2f4edb7' ARCHIVE_BASE_LITHOIDS_40_SIZE='52603' ARCHIVE_BASE_LITHOIDS_40_VERSION='3.11.3-gog72561' ARCHIVE_BASE_LITHOIDS_37_NAME='stellaris_lithoids_species_pack_3_10_4_70670.sh' ARCHIVE_BASE_LITHOIDS_37_MD5='96caaa7c76349f34823372cc7f9dc769' ARCHIVE_BASE_LITHOIDS_37_SIZE='52603' ARCHIVE_BASE_LITHOIDS_37_VERSION='3.10.4-gog70670' ARCHIVE_BASE_LITHOIDS_31_NAME='stellaris_lithoids_species_pack_3_9_3_68314.sh' ARCHIVE_BASE_LITHOIDS_31_MD5='baecdaa00168fe891ff419b71334f313' ARCHIVE_BASE_LITHOIDS_31_SIZE='52924' ARCHIVE_BASE_LITHOIDS_31_VERSION='3.9.3-gog68314' ARCHIVE_BASE_LITHOIDS_28_NAME='stellaris_lithoids_species_pack_3_8_4_1_65337.sh' ARCHIVE_BASE_LITHOIDS_28_MD5='65723d6948a9380c1397b280f9bc20f4' ARCHIVE_BASE_LITHOIDS_28_SIZE='53000' ARCHIVE_BASE_LITHOIDS_28_VERSION='3.8.4.1-gog65337' ARCHIVE_BASE_LITHOIDS_24_NAME='stellaris_lithoids_species_pack_3_7_4_63489.sh' ARCHIVE_BASE_LITHOIDS_24_MD5='bfc5632131852032fda229260aa179d6' ARCHIVE_BASE_LITHOIDS_24_SIZE='53000' ARCHIVE_BASE_LITHOIDS_24_VERSION='3.7.4-gog63489' ARCHIVE_BASE_LITHOIDS_21_NAME='stellaris_lithoids_species_pack_3_6_1_60754.sh' ARCHIVE_BASE_LITHOIDS_21_MD5='0adc3e342f420e26a04b256595eee248' ARCHIVE_BASE_LITHOIDS_21_SIZE='53000' ARCHIVE_BASE_LITHOIDS_21_VERSION='3.6.1-gog60754' ARCHIVE_BASE_LITHOIDS_19_NAME='stellaris_lithoids_species_pack_3_5_3_59410.sh' ARCHIVE_BASE_LITHOIDS_19_MD5='30bac0aa5302f556fb13511df2e8194b' ARCHIVE_BASE_LITHOIDS_19_SIZE='53000' ARCHIVE_BASE_LITHOIDS_19_VERSION='3.5.3-gog59410' ARCHIVE_BASE_LITHOIDS_17_NAME='stellaris_lithoids_species_pack_3_4_5_56913.sh' ARCHIVE_BASE_LITHOIDS_17_MD5='54fb17af3ed8b442074c83cf2b818693' ARCHIVE_BASE_LITHOIDS_17_SIZE='53000' ARCHIVE_BASE_LITHOIDS_17_VERSION='3.4.5-gog56913' ARCHIVE_BASE_LITHOIDS_13_NAME='stellaris_lithoids_species_pack_3_3_4_54421.sh' ARCHIVE_BASE_LITHOIDS_13_MD5='cde1e9ed0deaeff8850242e4157783be' ARCHIVE_BASE_LITHOIDS_13_SIZE='53000' ARCHIVE_BASE_LITHOIDS_13_VERSION='3.3.4-gog54421' ARCHIVE_BASE_LITHOIDS_9_NAME='stellaris_lithoids_species_pack_3_2_1_1_51520.sh' ARCHIVE_BASE_LITHOIDS_9_MD5='ed5aca5df6d72a84f0572200e1d432fe' ARCHIVE_BASE_LITHOIDS_9_SIZE='53000' ARCHIVE_BASE_LITHOIDS_9_VERSION='3.2.1.1-gog51520' ARCHIVE_BASE_LITHOIDS_8_NAME='stellaris_lithoids_species_pack_3_1_1_50008.sh' ARCHIVE_BASE_LITHOIDS_8_MD5='c935a54a2e9ac78d195440d7ca1391f9' ARCHIVE_BASE_LITHOIDS_8_SIZE='53000' ARCHIVE_BASE_LITHOIDS_8_VERSION='3.1.1-gog50008' ARCHIVE_BASE_LITHOIDS_7_NAME='stellaris_lithoids_species_pack_3_0_3_47193.sh' ARCHIVE_BASE_LITHOIDS_7_MD5='44a8e1008468825af82ec138be388fe9' ARCHIVE_BASE_LITHOIDS_7_SIZE='53000' ARCHIVE_BASE_LITHOIDS_7_VERSION='3.0.3-gog47193' ## Necroids ARCHIVE_BASE_NECROIDS_34_NAME='stellaris_necroids_species_pack_3_14_1592653_81105.sh' ARCHIVE_BASE_NECROIDS_34_MD5='5725e03dc497001f9837877ea2beff8d' ARCHIVE_BASE_NECROIDS_34_SIZE='24881' ARCHIVE_BASE_NECROIDS_34_VERSION='3.14.1592653-gog81105' ARCHIVE_BASE_NECROIDS_34_URL='https://www.gog.com/game/stellaris_necroids_species_pack' ARCHIVE_BASE_NECROIDS_33_NAME='stellaris_necroids_species_pack_3_14_15926_78464.sh' ARCHIVE_BASE_NECROIDS_33_MD5='fea1b49566e99f4e1b008c31a85b9bd1' ARCHIVE_BASE_NECROIDS_33_SIZE='24881' ARCHIVE_BASE_NECROIDS_33_VERSION='3.14.15926-gog78464' ARCHIVE_BASE_NECROIDS_32_NAME='stellaris_necroids_species_pack_3_13_2_0_76713.sh' ARCHIVE_BASE_NECROIDS_32_MD5='0d3e8d5a8614c7b327584add2c38d13b' ARCHIVE_BASE_NECROIDS_32_SIZE='24881' ARCHIVE_BASE_NECROIDS_32_VERSION='3.13.2-gog76713' ARCHIVE_BASE_NECROIDS_29_NAME='stellaris_necroids_species_pack_3_12_5_74193.sh' ARCHIVE_BASE_NECROIDS_29_MD5='3df3d9f80ed1d79a2f0f412535b77d54' ARCHIVE_BASE_NECROIDS_29_SIZE='49209' ARCHIVE_BASE_NECROIDS_29_VERSION='3.12.5-gog74193' ARCHIVE_BASE_NECROIDS_25_NAME='stellaris_necroids_species_pack_3_11_3_0_72561.sh' ARCHIVE_BASE_NECROIDS_25_MD5='d0f677482b688ebe46e0abf20ece8477' ARCHIVE_BASE_NECROIDS_25_SIZE='49209' ARCHIVE_BASE_NECROIDS_25_VERSION='3.11.3-gog72561' ARCHIVE_BASE_NECROIDS_22_NAME='stellaris_necroids_species_pack_3_10_4_70670.sh' ARCHIVE_BASE_NECROIDS_22_MD5='5549b1dfec82af2de64537ed751a1920' ARCHIVE_BASE_NECROIDS_22_SIZE='49209' ARCHIVE_BASE_NECROIDS_22_VERSION='3.10.4-gog70670' ARCHIVE_BASE_NECROIDS_16_NAME='stellaris_necroids_species_pack_3_9_3_68314.sh' ARCHIVE_BASE_NECROIDS_16_MD5='8afbc28fb3af625dd145381e44fe7bde' ARCHIVE_BASE_NECROIDS_16_SIZE='49524' ARCHIVE_BASE_NECROIDS_16_VERSION='3.9.3-gog68314' ARCHIVE_BASE_NECROIDS_13_NAME='stellaris_necroids_species_pack_3_8_4_1_65337.sh' ARCHIVE_BASE_NECROIDS_13_MD5='2614b147a120b97e0d5e4f0a24719f82' ARCHIVE_BASE_NECROIDS_13_SIZE='50000' ARCHIVE_BASE_NECROIDS_13_VERSION='3.8.4.1-gog65337' ARCHIVE_BASE_NECROIDS_9_NAME='stellaris_necroids_species_pack_3_7_4_63489.sh' ARCHIVE_BASE_NECROIDS_9_MD5='631269beefca458e901a727af53e09d0' ARCHIVE_BASE_NECROIDS_9_SIZE='50000' ARCHIVE_BASE_NECROIDS_9_VERSION='3.7.4-gog63489' ARCHIVE_BASE_NECROIDS_6_NAME='stellaris_necroids_species_pack_3_6_1_60754.sh' ARCHIVE_BASE_NECROIDS_6_MD5='13605c18c7d483b3c8abeff2d60c65f7' ARCHIVE_BASE_NECROIDS_6_SIZE='50000' ARCHIVE_BASE_NECROIDS_6_VERSION='3.6.1-gog60754' ARCHIVE_BASE_NECROIDS_4_NAME='stellaris_necroids_species_pack_3_5_3_59410.sh' ARCHIVE_BASE_NECROIDS_4_MD5='23faec896d52d6f2773e19838f365113' ARCHIVE_BASE_NECROIDS_4_SIZE='50000' ARCHIVE_BASE_NECROIDS_4_VERSION='3.5.3-gog59410' ARCHIVE_BASE_NECROIDS_2_NAME='stellaris_necroids_species_pack_3_4_5_56913.sh' ARCHIVE_BASE_NECROIDS_2_MD5='e64ecf03e49671cedf3e164709a5837a' ARCHIVE_BASE_NECROIDS_2_SIZE='50000' ARCHIVE_BASE_NECROIDS_2_VERSION='3.4.5-gog56913' ## Aquatics ARCHIVE_BASE_AQUATICS_32_NAME='stellaris_aquatics_species_pack_3_14_1592653_81105.sh' ARCHIVE_BASE_AQUATICS_32_MD5='1eda07287d1d1fe6bf6cefcf2c142d8e' ARCHIVE_BASE_AQUATICS_32_SIZE='29883' ARCHIVE_BASE_AQUATICS_32_VERSION='3.14.1592653-gog81105' ARCHIVE_BASE_AQUATICS_32_URL='https://www.gog.com/game/stellaris_aquatics_species_pack' ARCHIVE_BASE_AQUATICS_31_NAME='stellaris_aquatics_species_pack_3_14_15926_78464.sh' ARCHIVE_BASE_AQUATICS_31_MD5='9d08da8254187e23fb6334972edd881f' ARCHIVE_BASE_AQUATICS_31_SIZE='29883' ARCHIVE_BASE_AQUATICS_31_VERSION='3.14.15926-gog78464' ARCHIVE_BASE_AQUATICS_30_NAME='stellaris_aquatics_species_pack_3_13_2_0_76713.sh' ARCHIVE_BASE_AQUATICS_30_MD5='fc83fab4aa3748870d373f1fe24f0be3' ARCHIVE_BASE_AQUATICS_30_SIZE='29883' ARCHIVE_BASE_AQUATICS_30_VERSION='3.13.2-gog76713' ARCHIVE_BASE_AQUATICS_27_NAME='stellaris_aquatics_species_pack_3_12_5_74193.sh' ARCHIVE_BASE_AQUATICS_27_MD5='0d9d2d2a38c60025b79e72011b52837c' ARCHIVE_BASE_AQUATICS_27_SIZE='57544' ARCHIVE_BASE_AQUATICS_27_VERSION='3.12.5-gog74193' ARCHIVE_BASE_AQUATICS_23_NAME='stellaris_aquatics_species_pack_3_11_3_0_72561.sh' ARCHIVE_BASE_AQUATICS_23_MD5='818beaf18d82951df0b1028eb0d7f78a' ARCHIVE_BASE_AQUATICS_23_SIZE='120876' ARCHIVE_BASE_AQUATICS_23_VERSION='3.11.3-gog72561' ARCHIVE_BASE_AQUATICS_20_NAME='stellaris_aquatics_species_pack_3_10_4_70670.sh' ARCHIVE_BASE_AQUATICS_20_MD5='335d95744fa5467cad87e276fb8d6997' ARCHIVE_BASE_AQUATICS_20_SIZE='120876' ARCHIVE_BASE_AQUATICS_20_VERSION='3.10.4-gog70670' ARCHIVE_BASE_AQUATICS_14_NAME='stellaris_aquatics_species_pack_3_9_3_68314.sh' ARCHIVE_BASE_AQUATICS_14_MD5='39294019e3f068916fea06f68e35b1ee' ARCHIVE_BASE_AQUATICS_14_SIZE='121448' ARCHIVE_BASE_AQUATICS_14_VERSION='3.9.3-gog68314' ARCHIVE_BASE_AQUATICS_11_NAME='stellaris_aquatics_species_pack_3_8_4_1_65337.sh' ARCHIVE_BASE_AQUATICS_11_MD5='34a45daa4a4d1bf204dc9798917692b5' ARCHIVE_BASE_AQUATICS_11_SIZE='130000' ARCHIVE_BASE_AQUATICS_11_VERSION='3.8.4.1-gog65337' ARCHIVE_BASE_AQUATICS_7_NAME='stellaris_aquatics_species_pack_3_7_4_63489.sh' ARCHIVE_BASE_AQUATICS_7_MD5='f825b3f150a7d936b04b3f5bd35d9f5b' ARCHIVE_BASE_AQUATICS_7_SIZE='130000' ARCHIVE_BASE_AQUATICS_7_VERSION='3.7.4-gog63489' ARCHIVE_BASE_AQUATICS_4_NAME='stellaris_aquatics_species_pack_3_6_1_60754.sh' ARCHIVE_BASE_AQUATICS_4_MD5='5cfdb2861b8c3de9c83798799b477ad6' ARCHIVE_BASE_AQUATICS_4_SIZE='130000' ARCHIVE_BASE_AQUATICS_4_VERSION='3.6.1-gog60754' ARCHIVE_BASE_AQUATICS_2_NAME='stellaris_aquatics_species_pack_3_5_3_59410.sh' ARCHIVE_BASE_AQUATICS_2_MD5='7e3210b2d64b851907a97ed3455ad035' ARCHIVE_BASE_AQUATICS_2_SIZE='130000' ARCHIVE_BASE_AQUATICS_2_VERSION='3.5.3-gog59410' ARCHIVE_BASE_AQUATICS_0_NAME='stellaris_aquatics_species_pack_3_4_5_56913.sh' ARCHIVE_BASE_AQUATICS_0_MD5='0d6fe86d3ec24b114742a333b8de4a3b' ARCHIVE_BASE_AQUATICS_0_SIZE='130000' ARCHIVE_BASE_AQUATICS_0_VERSION='3.4.5-gog56913' ## Toxoids ARCHIVE_BASE_TOXOIDS_25_NAME='stellaris_toxoids_species_pack_3_14_1592653_81105.sh' ARCHIVE_BASE_TOXOIDS_25_MD5='80a09c9500cd8afa5b1a3b0135a64223' ARCHIVE_BASE_TOXOIDS_25_SIZE='21991' ARCHIVE_BASE_TOXOIDS_25_VERSION='3.14.1592653-gog81105' ARCHIVE_BASE_TOXOIDS_25_URL='https://www.gog.com/game/stellaris_toxoids_species_pack' ARCHIVE_BASE_TOXOIDS_24_NAME='stellaris_toxoids_species_pack_3_14_15926_78464.sh' ARCHIVE_BASE_TOXOIDS_24_MD5='eb217db0b1389b6e62e228fe216391ed' ARCHIVE_BASE_TOXOIDS_24_SIZE='21991' ARCHIVE_BASE_TOXOIDS_24_VERSION='3.14.15926-gog78464' ARCHIVE_BASE_TOXOIDS_23_NAME='stellaris_toxoids_species_pack_3_13_2_0_76713.sh' ARCHIVE_BASE_TOXOIDS_23_MD5='a201f70c2f26f9945459e0a9db4a3ea6' ARCHIVE_BASE_TOXOIDS_23_SIZE='21991' ARCHIVE_BASE_TOXOIDS_23_VERSION='3.13.2-gog76713' ARCHIVE_BASE_TOXOIDS_20_NAME='stellaris_toxoids_species_pack_3_12_5_74193.sh' ARCHIVE_BASE_TOXOIDS_20_MD5='788f0afe85d1f90c91567e3958ddcae1' ARCHIVE_BASE_TOXOIDS_20_SIZE='41495' ARCHIVE_BASE_TOXOIDS_20_VERSION='3.12.5-gog74193' ARCHIVE_BASE_TOXOIDS_16_NAME='stellaris_toxoids_species_pack_3_11_3_0_72561.sh' ARCHIVE_BASE_TOXOIDS_16_MD5='4dc7bf366e2e84febbe88f77057c018c' ARCHIVE_BASE_TOXOIDS_16_SIZE='41495' ARCHIVE_BASE_TOXOIDS_16_VERSION='3.11.3-gog72561' ARCHIVE_BASE_TOXOIDS_13_NAME='stellaris_toxoids_species_pack_3_10_4_70670.sh' ARCHIVE_BASE_TOXOIDS_13_MD5='ee41aba19af2f2f91bbe3c156bf614f5' ARCHIVE_BASE_TOXOIDS_13_SIZE='41495' ARCHIVE_BASE_TOXOIDS_13_VERSION='3.10.4-gog70670' ARCHIVE_BASE_TOXOIDS_7_NAME='stellaris_toxoids_species_pack_3_9_3_68314.sh' ARCHIVE_BASE_TOXOIDS_7_MD5='69ee5d18ffe310c64ee61934ec64aa1f' ARCHIVE_BASE_TOXOIDS_7_SIZE='41812' ARCHIVE_BASE_TOXOIDS_7_VERSION='3.9.3-gog68314' ARCHIVE_BASE_TOXOIDS_4_NAME='stellaris_toxoids_species_pack_3_8_4_1_65337.sh' ARCHIVE_BASE_TOXOIDS_4_MD5='90926bd74621bf180a074d4721b594f9' ARCHIVE_BASE_TOXOIDS_4_SIZE='42000' ARCHIVE_BASE_TOXOIDS_4_VERSION='3.8.4.1-gog65337' ARCHIVE_BASE_TOXOIDS_0_NAME='stellaris_toxoids_species_pack_3_7_4_63489.sh' ARCHIVE_BASE_TOXOIDS_0_MD5='e6af2b93063b67bc78d6a44c70caee1c' ARCHIVE_BASE_TOXOIDS_0_SIZE='42000' ARCHIVE_BASE_TOXOIDS_0_VERSION='3.7.4-gog63489' 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-stellaris-expansions-story-packs.sh0000750000000000000000000005010314471751340020616 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Stellaris expansions (story packs): # - Leviathans # - Synthetic Dawn # - Distant Stars # - Ancient Relics # - First Contact # send your bug reports to vv221@dotslashplay.it ### script_version=20250504.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='stellaris' GAME_NAME='Stellaris' EXPANSION_ID_LEVIATHANS='leviathans' EXPANSION_NAME_LEVIATHANS='Leviathans Story Pack' EXPANSION_ID_SYNTHETICDAWN='synthetic-dawn' EXPANSION_NAME_SYNTHETICDAWN='Synthetic Dawn Story Pack' EXPANSION_ID_DISTANTSTARS='distant-stars' EXPANSION_NAME_DISTANTSTARS='Distant Stars Story Pack' EXPANSION_ID_ANCIENTRELICS='ancient-relics' EXPANSION_NAME_ANCIENTRELICS='Ancient Relics Story Pack' EXPANSION_ID_FIRSTCONTACT='first-contact' EXPANSION_NAME_FIRSTCONTACT='First Contact Story Pack' # Archives ## Leviathans ARCHIVE_BASE_LEVIATHANS_61_NAME='stellaris_leviathans_story_pack_3_14_1592653_81105.sh' ARCHIVE_BASE_LEVIATHANS_61_MD5='9c18773594ff2456258e6b6716311b20' ARCHIVE_BASE_LEVIATHANS_61_SIZE='58426' ARCHIVE_BASE_LEVIATHANS_61_VERSION='3.14.1592653-gog81105' ARCHIVE_BASE_LEVIATHANS_61_URL='https://www.gog.com/game/stellaris_leviathans_story_pack' ARCHIVE_BASE_LEVIATHANS_60_NAME='stellaris_leviathans_story_pack_3_14_15926_78464.sh' ARCHIVE_BASE_LEVIATHANS_60_MD5='ae80f10988cea54f567a8d9bbc34b6d9' ARCHIVE_BASE_LEVIATHANS_60_SIZE='58426' ARCHIVE_BASE_LEVIATHANS_60_VERSION='3.14.15926-gog78464' ARCHIVE_BASE_LEVIATHANS_59_NAME='stellaris_leviathans_story_pack_3_13_2_0_76713.sh' ARCHIVE_BASE_LEVIATHANS_59_MD5='07773ecc28478515fc25fd000941fd38' ARCHIVE_BASE_LEVIATHANS_59_SIZE='58426' ARCHIVE_BASE_LEVIATHANS_59_VERSION='3.13.2-gog76713' ARCHIVE_BASE_LEVIATHANS_56_NAME='stellaris_leviathans_story_pack_3_12_5_74193.sh' ARCHIVE_BASE_LEVIATHANS_56_MD5='8ab8f647d2405c443ee699b1ec3e17b4' ARCHIVE_BASE_LEVIATHANS_56_SIZE='58426' ARCHIVE_BASE_LEVIATHANS_56_VERSION='3.12.5-gog74193' ARCHIVE_BASE_LEVIATHANS_52_NAME='stellaris_leviathans_story_pack_3_11_3_0_72561.sh' ARCHIVE_BASE_LEVIATHANS_52_MD5='bbdede0f81d260b3225f671518d6f135' ARCHIVE_BASE_LEVIATHANS_52_SIZE='58426' ARCHIVE_BASE_LEVIATHANS_52_VERSION='3.11.3-gog72561' ARCHIVE_BASE_LEVIATHANS_49_NAME='stellaris_leviathans_story_pack_3_10_4_70670.sh' ARCHIVE_BASE_LEVIATHANS_49_MD5='ca7bd55fd1121dff315cf4bdc748ce5c' ARCHIVE_BASE_LEVIATHANS_49_SIZE='58426' ARCHIVE_BASE_LEVIATHANS_49_VERSION='3.10.4-gog70670' ARCHIVE_BASE_LEVIATHANS_43_NAME='stellaris_leviathans_story_pack_3_9_3_68314.sh' ARCHIVE_BASE_LEVIATHANS_43_MD5='12ed6b4e72c61d7d5a2223acfe3dec45' ARCHIVE_BASE_LEVIATHANS_43_SIZE='58744' ARCHIVE_BASE_LEVIATHANS_43_VERSION='3.9.3-gog68314' ARCHIVE_BASE_LEVIATHANS_40_NAME='stellaris_leviathans_story_pack_3_8_4_1_65337.sh' ARCHIVE_BASE_LEVIATHANS_40_MD5='575490fe9da72c0211e65e42e2667544' ARCHIVE_BASE_LEVIATHANS_40_SIZE='59000' ARCHIVE_BASE_LEVIATHANS_40_VERSION='3.8.4.1-gog65337' ARCHIVE_BASE_LEVIATHANS_36_NAME='stellaris_leviathans_story_pack_3_7_4_63489.sh' ARCHIVE_BASE_LEVIATHANS_36_MD5='e9bc3c4a49159663d905892a0f7f5a75' ARCHIVE_BASE_LEVIATHANS_36_SIZE='59000' ARCHIVE_BASE_LEVIATHANS_36_VERSION='3.7.4-gog63489' ARCHIVE_BASE_LEVIATHANS_33_NAME='stellaris_leviathans_story_pack_3_6_1_60754.sh' ARCHIVE_BASE_LEVIATHANS_33_MD5='9ef91ba3bb1633cf4cb907f5de892817' ARCHIVE_BASE_LEVIATHANS_33_SIZE='59000' ARCHIVE_BASE_LEVIATHANS_33_VERSION='3.6.1-gog60754' ARCHIVE_BASE_LEVIATHANS_31_NAME='stellaris_leviathans_story_pack_3_5_3_59410.sh' ARCHIVE_BASE_LEVIATHANS_31_MD5='46f80e45435155c5c94aa1f3bbabf797' ARCHIVE_BASE_LEVIATHANS_31_SIZE='59000' ARCHIVE_BASE_LEVIATHANS_31_VERSION='3.5.3-gog59410' ARCHIVE_BASE_LEVIATHANS_29_NAME='stellaris_leviathans_story_pack_3_4_5_56913.sh' ARCHIVE_BASE_LEVIATHANS_29_MD5='514ca47c97e6edf951697ba361df53bd' ARCHIVE_BASE_LEVIATHANS_29_SIZE='59000' ARCHIVE_BASE_LEVIATHANS_29_VERSION='3.4.5-gog56913' ARCHIVE_BASE_LEVIATHANS_25_NAME='stellaris_leviathans_story_pack_3_3_4_54421.sh' ARCHIVE_BASE_LEVIATHANS_25_MD5='367a1abfe37c32461302cf84c9bdd551' ARCHIVE_BASE_LEVIATHANS_25_SIZE='59000' ARCHIVE_BASE_LEVIATHANS_25_VERSION='3.3.4-gog54421' ARCHIVE_BASE_LEVIATHANS_21_NAME='stellaris_leviathans_story_pack_3_2_1_1_51520.sh' ARCHIVE_BASE_LEVIATHANS_21_MD5='33a7db46efae680eb6718ccd6c386e53' ARCHIVE_BASE_LEVIATHANS_21_SIZE='59000' ARCHIVE_BASE_LEVIATHANS_21_VERSION='3.2.1.1-gog51520' ARCHIVE_BASE_LEVIATHANS_20_NAME='stellaris_leviathans_story_pack_3_1_1_50008.sh' ARCHIVE_BASE_LEVIATHANS_20_MD5='162521d883f491fcb4e397b9a60c46fd' ARCHIVE_BASE_LEVIATHANS_20_SIZE='59000' ARCHIVE_BASE_LEVIATHANS_20_VERSION='3.1.1-gog50008' ARCHIVE_BASE_LEVIATHANS_19_NAME='stellaris_leviathans_story_pack_3_0_3_47193.sh' ARCHIVE_BASE_LEVIATHANS_19_MD5='70f70d4656a3b3069bec4b138b1c27d5' ARCHIVE_BASE_LEVIATHANS_19_SIZE='59000' ARCHIVE_BASE_LEVIATHANS_19_VERSION='3.0.3-gog47193' ## Synthetic Dawn ARCHIVE_BASE_SYNTHETICDAWN_60_NAME='stellaris_synthetic_dawn_story_pack_3_14_1592653_81105.sh' ARCHIVE_BASE_SYNTHETICDAWN_60_MD5='8da0b258eb5e670ecc758dc938e97878' ARCHIVE_BASE_SYNTHETICDAWN_60_SIZE='48245' ARCHIVE_BASE_SYNTHETICDAWN_60_VERSION='3.14.1592653-gog81105' ARCHIVE_BASE_SYNTHETICDAWN_60_URL='https://www.gog.com/game/stellaris_synthetic_dawn_story_pack' ARCHIVE_BASE_SYNTHETICDAWN_59_NAME='stellaris_synthetic_dawn_story_pack_3_14_15926_78464.sh' ARCHIVE_BASE_SYNTHETICDAWN_59_MD5='6f0eed28ff1d4ed3e0ca8a0470e04b8a' ARCHIVE_BASE_SYNTHETICDAWN_59_SIZE='48245' ARCHIVE_BASE_SYNTHETICDAWN_59_VERSION='3.14.15926-gog78464' ARCHIVE_BASE_SYNTHETICDAWN_58_NAME='stellaris_synthetic_dawn_story_pack_3_13_2_0_76713.sh' ARCHIVE_BASE_SYNTHETICDAWN_58_MD5='2d9bc46f1afe830229ac56b7800a1aba' ARCHIVE_BASE_SYNTHETICDAWN_58_SIZE='48245' ARCHIVE_BASE_SYNTHETICDAWN_58_VERSION='3.13.2-gog76713' ARCHIVE_BASE_SYNTHETICDAWN_55_NAME='stellaris_synthetic_dawn_story_pack_3_12_5_74193.sh' ARCHIVE_BASE_SYNTHETICDAWN_55_MD5='28f5282f2422cce01ca868a906eb499c' ARCHIVE_BASE_SYNTHETICDAWN_55_SIZE='48244' ARCHIVE_BASE_SYNTHETICDAWN_55_VERSION='3.12.5-gog74193' ARCHIVE_BASE_SYNTHETICDAWN_51_NAME='stellaris_synthetic_dawn_story_pack_3_11_3_0_72561.sh' ARCHIVE_BASE_SYNTHETICDAWN_51_MD5='dacbf32f6358906934c4168ad06fff0d' ARCHIVE_BASE_SYNTHETICDAWN_51_SIZE='48244' ARCHIVE_BASE_SYNTHETICDAWN_51_VERSION='3.11.3-gog72561' ARCHIVE_BASE_SYNTHETICDAWN_48_NAME='stellaris_synthetic_dawn_story_pack_3_10_4_70670.sh' ARCHIVE_BASE_SYNTHETICDAWN_48_MD5='4b16f920acc6b2257386f020192aafce' ARCHIVE_BASE_SYNTHETICDAWN_48_SIZE='48244' ARCHIVE_BASE_SYNTHETICDAWN_48_VERSION='3.10.4-gog70670' ARCHIVE_BASE_SYNTHETICDAWN_42_NAME='stellaris_synthetic_dawn_story_pack_3_9_3_68314.sh' ARCHIVE_BASE_SYNTHETICDAWN_42_MD5='b2f35b4c887634e98fbce5e737dd78d1' ARCHIVE_BASE_SYNTHETICDAWN_42_SIZE='48564' ARCHIVE_BASE_SYNTHETICDAWN_42_VERSION='3.9.3-gog68314' ARCHIVE_BASE_SYNTHETICDAWN_39_NAME='stellaris_synthetic_dawn_story_pack_3_8_4_1_65337.sh' ARCHIVE_BASE_SYNTHETICDAWN_39_MD5='8752ebda6f3ff2a6f1f3ae38ee50e3e8' ARCHIVE_BASE_SYNTHETICDAWN_39_SIZE='49000' ARCHIVE_BASE_SYNTHETICDAWN_39_VERSION='3.8.4.1-gog65337' ARCHIVE_BASE_SYNTHETICDAWN_35_NAME='stellaris_synthetic_dawn_story_pack_3_7_4_63489.sh' ARCHIVE_BASE_SYNTHETICDAWN_35_MD5='09458636f871c76f7e22cc468a7a9f41' ARCHIVE_BASE_SYNTHETICDAWN_35_SIZE='49000' ARCHIVE_BASE_SYNTHETICDAWN_35_VERSION='3.7.4-gog63489' ARCHIVE_BASE_SYNTHETICDAWN_32_NAME='stellaris_synthetic_dawn_story_pack_3_6_1_60754.sh' ARCHIVE_BASE_SYNTHETICDAWN_32_MD5='1e203e5c19fe5c63400cf566fea62164' ARCHIVE_BASE_SYNTHETICDAWN_32_SIZE='49000' ARCHIVE_BASE_SYNTHETICDAWN_32_VERSION='3.6.1-gog60754' ARCHIVE_BASE_SYNTHETICDAWN_30_NAME='stellaris_synthetic_dawn_story_pack_3_5_3_59410.sh' ARCHIVE_BASE_SYNTHETICDAWN_30_MD5='8f6b7a85ca65572e15f61d724ea99317' ARCHIVE_BASE_SYNTHETICDAWN_30_SIZE='49000' ARCHIVE_BASE_SYNTHETICDAWN_30_VERSION='3.5.3-gog59410' ARCHIVE_BASE_SYNTHETICDAWN_28_NAME='stellaris_synthetic_dawn_story_pack_3_4_5_56913.sh' ARCHIVE_BASE_SYNTHETICDAWN_28_MD5='cbcd2a2c6d1b088b634842b9d4abb941' ARCHIVE_BASE_SYNTHETICDAWN_28_SIZE='49000' ARCHIVE_BASE_SYNTHETICDAWN_28_VERSION='3.4.5-gog56913' ARCHIVE_BASE_SYNTHETICDAWN_24_NAME='stellaris_synthetic_dawn_story_pack_3_3_4_54421.sh' ARCHIVE_BASE_SYNTHETICDAWN_24_MD5='b89665cf745898060051099d606a889d' ARCHIVE_BASE_SYNTHETICDAWN_24_SIZE='49000' ARCHIVE_BASE_SYNTHETICDAWN_24_VERSION='3.3.4-gog54421' ARCHIVE_BASE_SYNTHETICDAWN_20_NAME='stellaris_synthetic_dawn_story_pack_3_2_1_1_51520.sh' ARCHIVE_BASE_SYNTHETICDAWN_20_MD5='9b00445bf6b381832f6de06e2f5b7827' ARCHIVE_BASE_SYNTHETICDAWN_20_SIZE='49000' ARCHIVE_BASE_SYNTHETICDAWN_20_VERSION='3.2.1.1-gog51520' ARCHIVE_BASE_SYNTHETICDAWN_19_NAME='stellaris_synthetic_dawn_story_pack_3_1_1_50008.sh' ARCHIVE_BASE_SYNTHETICDAWN_19_MD5='69ba65596bc537841adc7c70ff0778a9' ARCHIVE_BASE_SYNTHETICDAWN_19_SIZE='49000' ARCHIVE_BASE_SYNTHETICDAWN_19_VERSION='3.1.1-gog50008' ARCHIVE_BASE_SYNTHETICDAWN_18_NAME='stellaris_synthetic_dawn_story_pack_3_0_3_47193.sh' ARCHIVE_BASE_SYNTHETICDAWN_18_MD5='b4231ca3b95b4bdb9e9a2e33c747d8c5' ARCHIVE_BASE_SYNTHETICDAWN_18_SIZE='49000' ARCHIVE_BASE_SYNTHETICDAWN_18_VERSION='3.0.3-gog47193' ## Distant Stars ARCHIVE_BASE_DISTANTSTARS_60_NAME='stellaris_distant_stars_story_pack_3_14_1592653_81105.sh' ARCHIVE_BASE_DISTANTSTARS_60_MD5='eb6a9ad65dd727662706598256581265' ARCHIVE_BASE_DISTANTSTARS_60_SIZE='20832' ARCHIVE_BASE_DISTANTSTARS_60_VERSION='3.14.1592653-gog81105' ARCHIVE_BASE_DISTANTSTARS_60_URL='https://www.gog.com/game/stellaris_distant_stars_story_pack' ARCHIVE_BASE_DISTANTSTARS_59_NAME='stellaris_distant_stars_story_pack_3_14_15926_78464.sh' ARCHIVE_BASE_DISTANTSTARS_59_MD5='1249e6a985f8cd62ecfa37a27b14e877' ARCHIVE_BASE_DISTANTSTARS_59_SIZE='20832' ARCHIVE_BASE_DISTANTSTARS_59_VERSION='3.14.15926-gog78464' ARCHIVE_BASE_DISTANTSTARS_58_NAME='stellaris_distant_stars_story_pack_3_13_2_0_76713.sh' ARCHIVE_BASE_DISTANTSTARS_58_MD5='ee7f70b07d50956b05d0eb64ae752222' ARCHIVE_BASE_DISTANTSTARS_58_SIZE='20832' ARCHIVE_BASE_DISTANTSTARS_58_VERSION='3.13.2-gog76713' ARCHIVE_BASE_DISTANTSTARS_55_NAME='stellaris_distant_stars_story_pack_3_12_5_74193.sh' ARCHIVE_BASE_DISTANTSTARS_55_MD5='be7d046f1e0165f607e0d19cf28eddc9' ARCHIVE_BASE_DISTANTSTARS_55_SIZE='20832' ARCHIVE_BASE_DISTANTSTARS_55_VERSION='3.12.5-gog74193' ARCHIVE_BASE_DISTANTSTARS_51_NAME='stellaris_distant_stars_story_pack_3_11_3_0_72561.sh' ARCHIVE_BASE_DISTANTSTARS_51_MD5='1c05d748caac4118b22b1e7524936427' ARCHIVE_BASE_DISTANTSTARS_51_SIZE='20832' ARCHIVE_BASE_DISTANTSTARS_51_VERSION='3.11.3-gog72561' ARCHIVE_BASE_DISTANTSTARS_48_NAME='stellaris_distant_stars_story_pack_3_10_4_70670.sh' ARCHIVE_BASE_DISTANTSTARS_48_MD5='35b7b4c4e536fdefae1668c74e3932cc' ARCHIVE_BASE_DISTANTSTARS_48_SIZE='20832' ARCHIVE_BASE_DISTANTSTARS_48_VERSION='3.10.4-gog70670' ARCHIVE_BASE_DISTANTSTARS_42_NAME='stellaris_distant_stars_story_pack_3_9_3_68314.sh' ARCHIVE_BASE_DISTANTSTARS_42_MD5='9a03b641cc29f77008530d21e64f5232' ARCHIVE_BASE_DISTANTSTARS_42_SIZE='21148' ARCHIVE_BASE_DISTANTSTARS_42_VERSION='3.9.3-gog68314' ARCHIVE_BASE_DISTANTSTARS_39_NAME='stellaris_distant_stars_story_pack_3_8_4_1_65337.sh' ARCHIVE_BASE_DISTANTSTARS_39_MD5='dcbb606208a16bc8f5f413239bfe69a4' ARCHIVE_BASE_DISTANTSTARS_39_SIZE='22000' ARCHIVE_BASE_DISTANTSTARS_39_VERSION='3.8.4.1-gog65337' ARCHIVE_BASE_DISTANTSTARS_35_NAME='stellaris_distant_stars_story_pack_3_7_4_63489.sh' ARCHIVE_BASE_DISTANTSTARS_35_MD5='d2989715cc656a73c1e2ca922bba10aa' ARCHIVE_BASE_DISTANTSTARS_35_SIZE='22000' ARCHIVE_BASE_DISTANTSTARS_35_VERSION='3.7.4-gog63489' ARCHIVE_BASE_DISTANTSTARS_32_NAME='stellaris_distant_stars_story_pack_3_6_1_60754.sh' ARCHIVE_BASE_DISTANTSTARS_32_MD5='1581145f5d4f4dbb491f3d3e1624577d' ARCHIVE_BASE_DISTANTSTARS_32_SIZE='22000' ARCHIVE_BASE_DISTANTSTARS_32_VERSION='3.6.1-gog60754' ARCHIVE_BASE_DISTANTSTARS_30_NAME='stellaris_distant_stars_story_pack_3_5_3_59410.sh' ARCHIVE_BASE_DISTANTSTARS_30_MD5='5ca6cc0d7554484af76e491211d75233' ARCHIVE_BASE_DISTANTSTARS_30_SIZE='22000' ARCHIVE_BASE_DISTANTSTARS_30_VERSION='3.5.3-gog59410' ARCHIVE_BASE_DISTANTSTARS_28_NAME='stellaris_distant_stars_story_pack_3_4_5_56913.sh' ARCHIVE_BASE_DISTANTSTARS_28_MD5='b2e6d53683346c48d44a058abd18eff9' ARCHIVE_BASE_DISTANTSTARS_28_SIZE='22000' ARCHIVE_BASE_DISTANTSTARS_28_VERSION='3.4.5-gog56913' ARCHIVE_BASE_DISTANTSTARS_24_NAME='stellaris_distant_stars_story_pack_3_3_4_54421.sh' ARCHIVE_BASE_DISTANTSTARS_24_MD5='1ca0abfacce33943685ad442ebf9d81a' ARCHIVE_BASE_DISTANTSTARS_24_SIZE='22000' ARCHIVE_BASE_DISTANTSTARS_24_VERSION='3.3.4-gog54421' ARCHIVE_BASE_DISTANTSTARS_20_NAME='stellaris_distant_stars_story_pack_3_2_1_1_51520.sh' ARCHIVE_BASE_DISTANTSTARS_20_MD5='a24264507765c470fa5d579b02fc8e32' ARCHIVE_BASE_DISTANTSTARS_20_SIZE='22000' ARCHIVE_BASE_DISTANTSTARS_20_VERSION='3.2.1.1-gog51520' ARCHIVE_BASE_DISTANTSTARS_19_NAME='stellaris_distant_stars_story_pack_3_1_1_50008.sh' ARCHIVE_BASE_DISTANTSTARS_19_MD5='31eeae1be998363fec20a8a09affd7b4' ARCHIVE_BASE_DISTANTSTARS_19_SIZE='22000' ARCHIVE_BASE_DISTANTSTARS_19_VERSION='3.1.1-gog50008' ARCHIVE_BASE_DISTANTSTARS_18_NAME='stellaris_distant_stars_story_pack_3_0_3_47193.sh' ARCHIVE_BASE_DISTANTSTARS_18_MD5='a19db33750977b3334a553f8c4259bf4' ARCHIVE_BASE_DISTANTSTARS_18_SIZE='22000' ARCHIVE_BASE_DISTANTSTARS_18_VERSION='3.0.3-gog47193' ## Ancient Relics ARCHIVE_BASE_ANCIENTRELICS_49_NAME='stellaris_ancient_relics_3_14_1592653_81105.sh' ARCHIVE_BASE_ANCIENTRELICS_49_MD5='2ee7c8d5cb9e6d14af6ea68e269960e6' ARCHIVE_BASE_ANCIENTRELICS_49_SIZE='32739' ARCHIVE_BASE_ANCIENTRELICS_49_VERSION='3.14.1592653-gog81105' ARCHIVE_BASE_ANCIENTRELICS_49_URL='https://www.gog.com/game/stellaris_ancient_relics_story_pack' ARCHIVE_BASE_ANCIENTRELICS_48_NAME='stellaris_ancient_relics_3_14_15926_78464.sh' ARCHIVE_BASE_ANCIENTRELICS_48_MD5='df19c65b00fa9fe93f07bd78896a7840' ARCHIVE_BASE_ANCIENTRELICS_48_SIZE='32739' ARCHIVE_BASE_ANCIENTRELICS_48_VERSION='3.14.15926-gog78464' ARCHIVE_BASE_ANCIENTRELICS_47_NAME='stellaris_ancient_relics_3_13_2_0_76713.sh' ARCHIVE_BASE_ANCIENTRELICS_47_MD5='a5154d3b51af853b0c45eeb0685a7f7d' ARCHIVE_BASE_ANCIENTRELICS_47_SIZE='32739' ARCHIVE_BASE_ANCIENTRELICS_47_VERSION='3.13.2-gog76713' ARCHIVE_BASE_ANCIENTRELICS_44_NAME='stellaris_ancient_relics_3_12_5_74193.sh' ARCHIVE_BASE_ANCIENTRELICS_44_MD5='35a896e2d8a9044a15898e9f55a39d47' ARCHIVE_BASE_ANCIENTRELICS_44_SIZE='32739' ARCHIVE_BASE_ANCIENTRELICS_44_VERSION='3.12.5-gog74193' ARCHIVE_BASE_ANCIENTRELICS_40_NAME='stellaris_ancient_relics_3_11_3_0_72561.sh' ARCHIVE_BASE_ANCIENTRELICS_40_MD5='a1468916582d7e7ad9c73ad58d2a37ec' ARCHIVE_BASE_ANCIENTRELICS_40_SIZE='32739' ARCHIVE_BASE_ANCIENTRELICS_40_VERSION='3.11.3-gog72561' ARCHIVE_BASE_ANCIENTRELICS_37_NAME='stellaris_ancient_relics_3_10_4_70670.sh' ARCHIVE_BASE_ANCIENTRELICS_37_MD5='dacebe45d724aa535d28dc73fd2b78ab' ARCHIVE_BASE_ANCIENTRELICS_37_SIZE='32739' ARCHIVE_BASE_ANCIENTRELICS_37_VERSION='3.10.4-gog70670' ARCHIVE_BASE_ANCIENTRELICS_31_NAME='stellaris_ancient_relics_3_9_3_68314.sh' ARCHIVE_BASE_ANCIENTRELICS_31_MD5='19909812633ca0d83ad774683f60451f' ARCHIVE_BASE_ANCIENTRELICS_31_SIZE='33060' ARCHIVE_BASE_ANCIENTRELICS_31_VERSION='3.9.3-gog68314' ARCHIVE_BASE_ANCIENTRELICS_28_NAME='stellaris_ancient_relics_3_8_4_1_65337.sh' ARCHIVE_BASE_ANCIENTRELICS_28_MD5='491929cb272a6a866020c69a94f3e01b' ARCHIVE_BASE_ANCIENTRELICS_28_SIZE='34000' ARCHIVE_BASE_ANCIENTRELICS_28_VERSION='3.8.4.1-gog65337' ARCHIVE_BASE_ANCIENTRELICS_24_NAME='stellaris_ancient_relics_3_7_4_63489.sh' ARCHIVE_BASE_ANCIENTRELICS_24_MD5='51f5bc20188137581737a446b1b7498b' ARCHIVE_BASE_ANCIENTRELICS_24_SIZE='34000' ARCHIVE_BASE_ANCIENTRELICS_24_VERSION='3.7.4-gog63489' ARCHIVE_BASE_ANCIENTRELICS_21_NAME='stellaris_ancient_relics_3_6_1_60754.sh' ARCHIVE_BASE_ANCIENTRELICS_21_MD5='40806c04f94d933aa555bc9d9605396c' ARCHIVE_BASE_ANCIENTRELICS_21_SIZE='34000' ARCHIVE_BASE_ANCIENTRELICS_21_VERSION='3.6.1-gog60754' ARCHIVE_BASE_ANCIENTRELICS_19_NAME='stellaris_ancient_relics_3_5_3_59410.sh' ARCHIVE_BASE_ANCIENTRELICS_19_MD5='1052a7d2b77ba0ebbd8af19767952b47' ARCHIVE_BASE_ANCIENTRELICS_19_SIZE='34000' ARCHIVE_BASE_ANCIENTRELICS_19_VERSION='3.5.3-gog59410' ARCHIVE_BASE_ANCIENTRELICS_17_NAME='stellaris_ancient_relics_3_4_5_56913.sh' ARCHIVE_BASE_ANCIENTRELICS_17_MD5='b7536ac852bebe9b12a359c4c0a6ca5e' ARCHIVE_BASE_ANCIENTRELICS_17_SIZE='34000' ARCHIVE_BASE_ANCIENTRELICS_17_VERSION='3.4.5-gog56913' ARCHIVE_BASE_ANCIENTRELICS_13_NAME='stellaris_ancient_relics_3_3_4_54421.sh' ARCHIVE_BASE_ANCIENTRELICS_13_MD5='c09ef087df7e271758b4b8a47a1353bd' ARCHIVE_BASE_ANCIENTRELICS_13_SIZE='34000' ARCHIVE_BASE_ANCIENTRELICS_13_VERSION='3.3.4-gog54421' ARCHIVE_BASE_ANCIENTRELICS_9_NAME='stellaris_ancient_relics_3_2_1_1_51520.sh' ARCHIVE_BASE_ANCIENTRELICS_9_MD5='45de001d3d2b3999d6c4c8948fc22458' ARCHIVE_BASE_ANCIENTRELICS_9_SIZE='34000' ARCHIVE_BASE_ANCIENTRELICS_9_VERSION='3.2.1.1-gog51520' ARCHIVE_BASE_ANCIENTRELICS_8_NAME='stellaris_ancient_relics_3_1_1_50008.sh' ARCHIVE_BASE_ANCIENTRELICS_8_MD5='ec441d202f321a3d8b23af35fed33531' ARCHIVE_BASE_ANCIENTRELICS_8_SIZE='34000' ARCHIVE_BASE_ANCIENTRELICS_8_VERSION='3.1.1-gog50008' ARCHIVE_BASE_ANCIENTRELICS_7_NAME='stellaris_ancient_relics_3_0_3_47193.sh' ARCHIVE_BASE_ANCIENTRELICS_7_MD5='d98a169dca98257b3944517d98cd17a0' ARCHIVE_BASE_ANCIENTRELICS_7_SIZE='34000' ARCHIVE_BASE_ANCIENTRELICS_7_VERSION='3.0.3-gog47193' ## First Contact ARCHIVE_BASE_FIRSTCONTACT_23_NAME='stellaris_first_contact_story_pack_3_14_1592653_81105.sh' ARCHIVE_BASE_FIRSTCONTACT_23_MD5='08a96e2468e6bf4530ea0a9dc966efe4' ARCHIVE_BASE_FIRSTCONTACT_23_SIZE='832' ARCHIVE_BASE_FIRSTCONTACT_23_VERSION='3.14.1592653-gog81105' ARCHIVE_BASE_FIRSTCONTACT_23_URL='https://www.gog.com/game/stellaris_first_contact_story_pack' ARCHIVE_BASE_FIRSTCONTACT_22_NAME='stellaris_first_contact_story_pack_3_14_15926_78464.sh' ARCHIVE_BASE_FIRSTCONTACT_22_MD5='b7e4021113960f1ca6a26db56a7d13fb' ARCHIVE_BASE_FIRSTCONTACT_22_SIZE='832' ARCHIVE_BASE_FIRSTCONTACT_22_VERSION='3.14.15926-gog78464' ARCHIVE_BASE_FIRSTCONTACT_21_NAME='stellaris_first_contact_story_pack_3_13_2_0_76713.sh' ARCHIVE_BASE_FIRSTCONTACT_21_MD5='12877f96dc523f3328a8f8231ebb2d84' ARCHIVE_BASE_FIRSTCONTACT_21_SIZE='832' ARCHIVE_BASE_FIRSTCONTACT_21_VERSION='3.13.2-gog76713' ARCHIVE_BASE_FIRSTCONTACT_18_NAME='stellaris_first_contact_story_pack_3_12_5_74193.sh' ARCHIVE_BASE_FIRSTCONTACT_18_MD5='d3e6622881abe21c5883e5fa61988f6b' ARCHIVE_BASE_FIRSTCONTACT_18_SIZE='832' ARCHIVE_BASE_FIRSTCONTACT_18_VERSION='3.12.5-gog74193' ARCHIVE_BASE_FIRSTCONTACT_14_NAME='stellaris_first_contact_story_pack_3_11_3_0_72561.sh' ARCHIVE_BASE_FIRSTCONTACT_14_MD5='946d0530c559cc4275177143f808a4e6' ARCHIVE_BASE_FIRSTCONTACT_14_SIZE='832' ARCHIVE_BASE_FIRSTCONTACT_14_VERSION='3.11.3-gog72561' ARCHIVE_BASE_FIRSTCONTACT_11_NAME='stellaris_first_contact_story_pack_3_10_4_70670.sh' ARCHIVE_BASE_FIRSTCONTACT_11_MD5='aa77a6af433d0ed023357b1af69876ce' ARCHIVE_BASE_FIRSTCONTACT_11_SIZE='832' ARCHIVE_BASE_FIRSTCONTACT_11_VERSION='3.10.4-gog70670' ARCHIVE_BASE_FIRSTCONTACT_5_NAME='stellaris_first_contact_story_pack_3_9_3_68314.sh' ARCHIVE_BASE_FIRSTCONTACT_5_MD5='870a8a53a98f020d9cb55e2b962b6172' ARCHIVE_BASE_FIRSTCONTACT_5_SIZE='1152' ARCHIVE_BASE_FIRSTCONTACT_5_VERSION='3.9.3-gog68314' ARCHIVE_BASE_FIRSTCONTACT_2_NAME='stellaris_first_contact_story_pack_3_8_4_1_65337.sh' ARCHIVE_BASE_FIRSTCONTACT_2_MD5='dd862bf0d12f5bf0a7a7c116a57f2bbb' ARCHIVE_BASE_FIRSTCONTACT_2_SIZE='1200' ARCHIVE_BASE_FIRSTCONTACT_2_VERSION='3.8.4.1-gog65337' 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-stellaris-expansions.sh0000750000000000000000000005562014471751340016352 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Stellaris expansions (main expansions): # - Utopia # - Apocalypse # - MegaCorp # - Federations # - Nemesis # - Overlord # - Galactic Paragons # - The Machine Age # send your bug reports to vv221@dotslashplay.it ### script_version=20250504.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='stellaris' GAME_NAME='Stellaris' EXPANSION_ID_UTOPIA='utopia' EXPANSION_NAME_UTOPIA='Utopia' EXPANSION_ID_APOCALYPSE='apocalypse' EXPANSION_NAME_APOCALYPSE='Apocalypse' EXPANSION_ID_MEGACORP='megacorp' EXPANSION_NAME_MEGACORP='MegaCorp' EXPANSION_ID_FEDERATIONS='federations' EXPANSION_NAME_FEDERATIONS='Federations' EXPANSION_ID_NEMESIS='nemesis' EXPANSION_NAME_NEMESIS='Nemesis' EXPANSION_ID_OVERLORD='overlord' EXPANSION_NAME_OVERLORD='Overlord' EXPANSION_ID_PARAGONS='galactic-paragons' EXPANSION_NAME_PARAGONS='Galactic Paragons' EXPANSION_ID_MACHINE='the-machine-age' EXPANSION_NAME_MACHINE='The Machine Age' # Archives ## Utopia ARCHIVE_BASE_UTOPIA_59_NAME='stellaris_utopia_3_14_1592653_81105.sh' ARCHIVE_BASE_UTOPIA_59_MD5='ce44b8d0f9afa3e05927c914d1033341' ARCHIVE_BASE_UTOPIA_59_SIZE='75007' ARCHIVE_BASE_UTOPIA_59_VERSION='3.14.1592653-gog81105' ARCHIVE_BASE_UTOPIA_59_URL='https://www.gog.com/game/stellaris_utopia' ARCHIVE_BASE_UTOPIA_58_NAME='stellaris_utopia_3_14_15926_78464.sh' ARCHIVE_BASE_UTOPIA_58_MD5='62b9c4f468f049c1943cfcda6ff8c79e' ARCHIVE_BASE_UTOPIA_58_SIZE='75007' ARCHIVE_BASE_UTOPIA_58_VERSION='3.14.15926-gog78464' ARCHIVE_BASE_UTOPIA_57_NAME='stellaris_utopia_3_13_2_0_76713.sh' ARCHIVE_BASE_UTOPIA_57_MD5='12459f9b139ca756b2c19a5755e41b67' ARCHIVE_BASE_UTOPIA_57_SIZE='75007' ARCHIVE_BASE_UTOPIA_57_VERSION='3.13.2-gog76713' ARCHIVE_BASE_UTOPIA_54_NAME='stellaris_utopia_3_12_5_74193.sh' ARCHIVE_BASE_UTOPIA_54_MD5='94ce113fad5b52d0464bfa48905412cc' ARCHIVE_BASE_UTOPIA_54_SIZE='75007' ARCHIVE_BASE_UTOPIA_54_VERSION='3.12.5-gog74193' ARCHIVE_BASE_UTOPIA_50_NAME='stellaris_utopia_3_11_3_0_72561.sh' ARCHIVE_BASE_UTOPIA_50_MD5='b459de0ff28f660f9f9f6a38b5963df8' ARCHIVE_BASE_UTOPIA_50_SIZE='75007' ARCHIVE_BASE_UTOPIA_50_VERSION='3.11.3-gog72561' ARCHIVE_BASE_UTOPIA_47_NAME='stellaris_utopia_3_10_4_70670.sh' ARCHIVE_BASE_UTOPIA_47_MD5='34740602274bd7cb248a25dbcf68ae50' ARCHIVE_BASE_UTOPIA_47_SIZE='75007' ARCHIVE_BASE_UTOPIA_47_VERSION='3.10.4-gog70670' ARCHIVE_BASE_UTOPIA_41_NAME='stellaris_utopia_3_9_3_68314.sh' ARCHIVE_BASE_UTOPIA_41_MD5='b720f9ac6deec5dda989e0b52c2cee80' ARCHIVE_BASE_UTOPIA_41_SIZE='75324' ARCHIVE_BASE_UTOPIA_41_VERSION='3.9.3-gog68314' ARCHIVE_BASE_UTOPIA_38_NAME='stellaris_utopia_3_8_4_1_65337.sh' ARCHIVE_BASE_UTOPIA_38_MD5='f37db816affaea32fa037afcf05e6f5c' ARCHIVE_BASE_UTOPIA_38_SIZE='76000' ARCHIVE_BASE_UTOPIA_38_VERSION='3.8.4.1-gog65337' ARCHIVE_BASE_UTOPIA_34_NAME='stellaris_utopia_3_7_4_63489.sh' ARCHIVE_BASE_UTOPIA_34_MD5='757c0a5000d03c0c977ea3feb4ac4bec' ARCHIVE_BASE_UTOPIA_34_SIZE='76000' ARCHIVE_BASE_UTOPIA_34_VERSION='3.7.4-gog63489' ARCHIVE_BASE_UTOPIA_31_NAME='stellaris_utopia_3_6_1_60754.sh' ARCHIVE_BASE_UTOPIA_31_MD5='6942f80fac13261e2de34e350d96e6b8' ARCHIVE_BASE_UTOPIA_31_SIZE='76000' ARCHIVE_BASE_UTOPIA_31_VERSION='3.6.1-gog60754' ARCHIVE_BASE_UTOPIA_29_NAME='stellaris_utopia_3_5_3_59410.sh' ARCHIVE_BASE_UTOPIA_29_MD5='b71a7c123fa029a65fdeee0f46112560' ARCHIVE_BASE_UTOPIA_29_SIZE='76000' ARCHIVE_BASE_UTOPIA_29_VERSION='3.5.3-gog59410' ARCHIVE_BASE_UTOPIA_27_NAME='stellaris_utopia_3_4_5_56913.sh' ARCHIVE_BASE_UTOPIA_27_MD5='c78bbd8859e22b93534f8aeec16ef08f' ARCHIVE_BASE_UTOPIA_27_SIZE='76000' ARCHIVE_BASE_UTOPIA_27_VERSION='3.4.5-gog56913' ARCHIVE_BASE_UTOPIA_23_NAME='stellaris_utopia_3_3_4_54421.sh' ARCHIVE_BASE_UTOPIA_23_MD5='9b4715a94ffdca001ff56e6e6d9a807d' ARCHIVE_BASE_UTOPIA_23_SIZE='76000' ARCHIVE_BASE_UTOPIA_23_VERSION='3.3.4-gog54421' ARCHIVE_BASE_UTOPIA_19_NAME='stellaris_utopia_3_2_1_1_51520.sh' ARCHIVE_BASE_UTOPIA_19_MD5='bb6b18eabd4e45d846468e1c38d2e7ea' ARCHIVE_BASE_UTOPIA_19_SIZE='76000' ARCHIVE_BASE_UTOPIA_19_VERSION='3.2.1.1-gog51520' ARCHIVE_BASE_UTOPIA_18_NAME='stellaris_utopia_3_1_1_50008.sh' ARCHIVE_BASE_UTOPIA_18_MD5='129501ad6bf862bc04aa775f6538e7fe' ARCHIVE_BASE_UTOPIA_18_SIZE='76000' ARCHIVE_BASE_UTOPIA_18_VERSION='3.1.1-gog50008' ARCHIVE_BASE_UTOPIA_17_NAME='stellaris_utopia_3_0_3_47193.sh' ARCHIVE_BASE_UTOPIA_17_MD5='0987db58e4cb8629714bbe9b2d01906e' ARCHIVE_BASE_UTOPIA_17_SIZE='76000' ARCHIVE_BASE_UTOPIA_17_VERSION='3.0.3-gog47193' ## Apocalypse ARCHIVE_BASE_APOCALYPSE_49_NAME='stellaris_apocalypse_3_14_1592653_81105.sh' ARCHIVE_BASE_APOCALYPSE_49_MD5='7f21a52edafc0c8a80e97a947dc5afa6' ARCHIVE_BASE_APOCALYPSE_49_SIZE='37877' ARCHIVE_BASE_APOCALYPSE_49_VERSION='3.14.1592653-gog81105' ARCHIVE_BASE_APOCALYPSE_49_URL='https://www.gog.com/game/stellaris_apocalypse' ARCHIVE_BASE_APOCALYPSE_48_NAME='stellaris_apocalypse_3_14_15926_78464.sh' ARCHIVE_BASE_APOCALYPSE_48_MD5='fe095847b18e9279daca3f2eb407cc2b' ARCHIVE_BASE_APOCALYPSE_48_SIZE='37877' ARCHIVE_BASE_APOCALYPSE_48_VERSION='3.14.15926-gog78464' ARCHIVE_BASE_APOCALYPSE_47_NAME='stellaris_apocalypse_3_13_2_0_76713.sh' ARCHIVE_BASE_APOCALYPSE_47_MD5='ee89fa59d427166031964f106053fd39' ARCHIVE_BASE_APOCALYPSE_47_SIZE='37877' ARCHIVE_BASE_APOCALYPSE_47_VERSION='3.13.2-gog76713' ARCHIVE_BASE_APOCALYPSE_44_NAME='stellaris_apocalypse_3_12_5_74193.sh' ARCHIVE_BASE_APOCALYPSE_44_MD5='72c6721003d27d922fd134210da8b82f' ARCHIVE_BASE_APOCALYPSE_44_SIZE='37877' ARCHIVE_BASE_APOCALYPSE_44_VERSION='3.12.5-gog74193' ARCHIVE_BASE_APOCALYPSE_40_NAME='stellaris_apocalypse_3_11_3_0_72561.sh' ARCHIVE_BASE_APOCALYPSE_40_MD5='5865125d875c8ddc549b8f0f4fd79ebd' ARCHIVE_BASE_APOCALYPSE_40_SIZE='37877' ARCHIVE_BASE_APOCALYPSE_40_VERSION='3.11.3-gog72561' ARCHIVE_BASE_APOCALYPSE_37_NAME='stellaris_apocalypse_3_10_4_70670.sh' ARCHIVE_BASE_APOCALYPSE_37_MD5='77856badbd6716a8d4b2b7c3d50dac7d' ARCHIVE_BASE_APOCALYPSE_37_SIZE='37877' ARCHIVE_BASE_APOCALYPSE_37_VERSION='3.10.4-gog70670' ARCHIVE_BASE_APOCALYPSE_31_NAME='stellaris_apocalypse_3_9_3_68314.sh' ARCHIVE_BASE_APOCALYPSE_31_MD5='1e81c558321b0c494118f5eaa320a31a' ARCHIVE_BASE_APOCALYPSE_31_SIZE='38196' ARCHIVE_BASE_APOCALYPSE_31_VERSION='3.9.3-gog68314' ARCHIVE_BASE_APOCALYPSE_28_NAME='stellaris_apocalypse_3_8_4_1_65337.sh' ARCHIVE_BASE_APOCALYPSE_28_MD5='a01fd114beedaae30f8036532aeaa3a5' ARCHIVE_BASE_APOCALYPSE_28_SIZE='39000' ARCHIVE_BASE_APOCALYPSE_28_VERSION='3.8.4.1-gog65337' ARCHIVE_BASE_APOCALYPSE_24_NAME='stellaris_apocalypse_3_7_4_63489.sh' ARCHIVE_BASE_APOCALYPSE_24_MD5='635fad17d0a6dbcb51bc4bc134f7a2fc' ARCHIVE_BASE_APOCALYPSE_24_SIZE='39000' ARCHIVE_BASE_APOCALYPSE_24_VERSION='3.7.4-gog63489' ARCHIVE_BASE_APOCALYPSE_21_NAME='stellaris_apocalypse_3_6_1_60754.sh' ARCHIVE_BASE_APOCALYPSE_21_MD5='ba7aa69bc21ddc041767975d6891c394' ARCHIVE_BASE_APOCALYPSE_21_SIZE='39000' ARCHIVE_BASE_APOCALYPSE_21_VERSION='3.6.1-gog60754' ARCHIVE_BASE_APOCALYPSE_19_NAME='stellaris_apocalypse_3_5_3_59410.sh' ARCHIVE_BASE_APOCALYPSE_19_MD5='40e997269f2806e26c3cef5b604009e2' ARCHIVE_BASE_APOCALYPSE_19_SIZE='39000' ARCHIVE_BASE_APOCALYPSE_19_VERSION='3.5.3-gog59410' ARCHIVE_BASE_APOCALYPSE_17_NAME='stellaris_apocalypse_3_4_5_56913.sh' ARCHIVE_BASE_APOCALYPSE_17_MD5='2294a815d331a90c2a226ea679d1b9c2' ARCHIVE_BASE_APOCALYPSE_17_SIZE='39000' ARCHIVE_BASE_APOCALYPSE_17_VERSION='3.4.5-gog56913' ARCHIVE_BASE_APOCALYPSE_13_NAME='stellaris_apocalypse_3_3_4_54421.sh' ARCHIVE_BASE_APOCALYPSE_13_MD5='df86d7aa67f4be37822523fef72d15ee' ARCHIVE_BASE_APOCALYPSE_13_SIZE='39000' ARCHIVE_BASE_APOCALYPSE_13_VERSION='3.3.4-gog54421' ARCHIVE_BASE_APOCALYPSE_9_NAME='stellaris_apocalypse_3_2_1_1_51520.sh' ARCHIVE_BASE_APOCALYPSE_9_MD5='0db5f6b23432efa4941f7e4e89ff9488' ARCHIVE_BASE_APOCALYPSE_9_SIZE='39000' ARCHIVE_BASE_APOCALYPSE_9_VERSION='3.2.1.1-gog51520' ARCHIVE_BASE_APOCALYPSE_8_NAME='stellaris_apocalypse_3_1_1_50008.sh' ARCHIVE_BASE_APOCALYPSE_8_MD5='a4d25b308d2daf3c81fef2aef33727da' ARCHIVE_BASE_APOCALYPSE_8_SIZE='39000' ARCHIVE_BASE_APOCALYPSE_8_VERSION='3.1.1-gog50008' ARCHIVE_BASE_APOCALYPSE_7_NAME='stellaris_apocalypse_3_0_3_47193.sh' ARCHIVE_BASE_APOCALYPSE_7_MD5='3cdf97dedf2514fbb1e9fd123cb253b7' ARCHIVE_BASE_APOCALYPSE_7_SIZE='39000' ARCHIVE_BASE_APOCALYPSE_7_VERSION='3.0.3-gog47193' ## MegaCorp ARCHIVE_BASE_MEGACORP_46_NAME='stellaris_megacorp_3_14_1592653_81105.sh' ARCHIVE_BASE_MEGACORP_46_MD5='897bda9d1e5eda534a4913245e3af69b' ARCHIVE_BASE_MEGACORP_46_SIZE='90404' ARCHIVE_BASE_MEGACORP_46_VERSION='3.14.1592653-gog81105' ARCHIVE_BASE_MEGACORP_46_URL='https://www.gog.com/game/stellaris_megacorp' ARCHIVE_BASE_MEGACORP_45_NAME='stellaris_megacorp_3_14_15926_78464.sh' ARCHIVE_BASE_MEGACORP_45_MD5='a16aec518e86ad716206899230871099' ARCHIVE_BASE_MEGACORP_45_SIZE='90404' ARCHIVE_BASE_MEGACORP_45_VERSION='3.14.15926-gog78464' ARCHIVE_BASE_MEGACORP_44_NAME='stellaris_megacorp_3_13_2_0_76713.sh' ARCHIVE_BASE_MEGACORP_44_MD5='e6b76bb98c26ec597e3a37b3aa915f46' ARCHIVE_BASE_MEGACORP_44_SIZE='90404' ARCHIVE_BASE_MEGACORP_44_VERSION='3.13.2-gog76713' ARCHIVE_BASE_MEGACORP_41_NAME='stellaris_megacorp_3_12_5_74193.sh' ARCHIVE_BASE_MEGACORP_41_MD5='056684f8cabd2bff919a6f1e1b12837a' ARCHIVE_BASE_MEGACORP_41_SIZE='130614' ARCHIVE_BASE_MEGACORP_41_VERSION='3.12.5-gog74193' ARCHIVE_BASE_MEGACORP_37_NAME='stellaris_megacorp_3_11_3_0_72561.sh' ARCHIVE_BASE_MEGACORP_37_MD5='9c9fda0324405590e48d4da9741dcdb0' ARCHIVE_BASE_MEGACORP_37_SIZE='130614' ARCHIVE_BASE_MEGACORP_37_VERSION='3.11.3-gog72561' ARCHIVE_BASE_MEGACORP_34_NAME='stellaris_megacorp_3_10_4_70670.sh' ARCHIVE_BASE_MEGACORP_34_MD5='c155eb5f1b6f3283e068b17574107070' ARCHIVE_BASE_MEGACORP_34_SIZE='130614' ARCHIVE_BASE_MEGACORP_34_VERSION='3.10.4-gog70670' ARCHIVE_BASE_MEGACORP_28_NAME='stellaris_megacorp_3_9_3_68314.sh' ARCHIVE_BASE_MEGACORP_28_MD5='b4bf123675295aa81910698500cdd33b' ARCHIVE_BASE_MEGACORP_28_SIZE='130940' ARCHIVE_BASE_MEGACORP_28_VERSION='3.9.3-gog68314' ARCHIVE_BASE_MEGACORP_25_NAME='stellaris_megacorp_3_8_4_1_65337.sh' ARCHIVE_BASE_MEGACORP_25_MD5='3b00aacd428ef943bbbd7a4d0e6b50b2' ARCHIVE_BASE_MEGACORP_25_SIZE='140000' ARCHIVE_BASE_MEGACORP_25_VERSION='3.8.4.1-gog65337' ARCHIVE_BASE_MEGACORP_21_NAME='stellaris_megacorp_3_7_4_63489.sh' ARCHIVE_BASE_MEGACORP_21_MD5='5b9573bb4261bd177dad3f4acc74a6a1' ARCHIVE_BASE_MEGACORP_21_SIZE='140000' ARCHIVE_BASE_MEGACORP_21_VERSION='3.7.4-gog63489' ARCHIVE_BASE_MEGACORP_18_NAME='stellaris_megacorp_3_6_1_60754.sh' ARCHIVE_BASE_MEGACORP_18_MD5='af184beefdd7efc6f2d3973bf0d50c71' ARCHIVE_BASE_MEGACORP_18_SIZE='140000' ARCHIVE_BASE_MEGACORP_18_VERSION='3.6.1-gog60754' ARCHIVE_BASE_MEGACORP_16_NAME='stellaris_megacorp_3_5_3_59410.sh' ARCHIVE_BASE_MEGACORP_16_MD5='2a95d9ff26ed58860be33c860c41fd63' ARCHIVE_BASE_MEGACORP_16_SIZE='140000' ARCHIVE_BASE_MEGACORP_16_VERSION='3.5.3-gog59410' ARCHIVE_BASE_MEGACORP_14_NAME='stellaris_megacorp_3_4_5_56913.sh' ARCHIVE_BASE_MEGACORP_14_MD5='893df0403e44e6e36060756740230147' ARCHIVE_BASE_MEGACORP_14_SIZE='140000' ARCHIVE_BASE_MEGACORP_14_VERSION='3.4.5-gog56913' ARCHIVE_BASE_MEGACORP_10_NAME='stellaris_megacorp_3_3_4_54421.sh' ARCHIVE_BASE_MEGACORP_10_MD5='44fb07a81f15d0954088f4bfd88fb933' ARCHIVE_BASE_MEGACORP_10_SIZE='140000' ARCHIVE_BASE_MEGACORP_10_VERSION='3.3.4-gog54421' ARCHIVE_BASE_MEGACORP_6_NAME='stellaris_megacorp_3_2_1_1_51520.sh' ARCHIVE_BASE_MEGACORP_6_MD5='5965b8b2b51ae9e3dca5726c5d466792' ARCHIVE_BASE_MEGACORP_6_SIZE='140000' ARCHIVE_BASE_MEGACORP_6_VERSION='3.2.1.1-gog51520' ARCHIVE_BASE_MEGACORP_5_NAME='stellaris_megacorp_3_1_1_50008.sh' ARCHIVE_BASE_MEGACORP_5_MD5='fa01a1fb786ae3625437bd23275ac401' ARCHIVE_BASE_MEGACORP_5_SIZE='140000' ARCHIVE_BASE_MEGACORP_5_VERSION='3.1.1-gog50008' ARCHIVE_BASE_MEGACORP_4_NAME='stellaris_megacorp_3_0_3_47193.sh' ARCHIVE_BASE_MEGACORP_4_MD5='8992c77ac7de034c7d3deceb656fb3f6' ARCHIVE_BASE_MEGACORP_4_SIZE='140000' ARCHIVE_BASE_MEGACORP_4_VERSION='3.0.3-gog47193' ## Federations ARCHIVE_BASE_FEDERATIONS_41_NAME='stellaris_federations_3_14_1592653_81105.sh' ARCHIVE_BASE_FEDERATIONS_41_MD5='ce2828f957f35b1ce114c1bf66fa65c2' ARCHIVE_BASE_FEDERATIONS_41_SIZE='14433' ARCHIVE_BASE_FEDERATIONS_41_VERSION='3.14.1592653-gog81105' ARCHIVE_BASE_FEDERATIONS_41_URL='https://www.gog.com/game/stellaris_federations' ARCHIVE_BASE_FEDERATIONS_40_NAME='stellaris_federations_3_14_15926_78464.sh' ARCHIVE_BASE_FEDERATIONS_40_MD5='11fb43cc5b19aebd6bbece34c75492c5' ARCHIVE_BASE_FEDERATIONS_40_SIZE='14433' ARCHIVE_BASE_FEDERATIONS_40_VERSION='3.14.15926-gog78464' ARCHIVE_BASE_FEDERATIONS_39_NAME='stellaris_federations_3_13_2_0_76713.sh' ARCHIVE_BASE_FEDERATIONS_39_MD5='48ff77ab8c028f6088a0c6743da2bbed' ARCHIVE_BASE_FEDERATIONS_39_SIZE='14433' ARCHIVE_BASE_FEDERATIONS_39_VERSION='3.13.2-gog76713' ARCHIVE_BASE_FEDERATIONS_36_NAME='stellaris_federations_3_12_5_74193.sh' ARCHIVE_BASE_FEDERATIONS_36_MD5='77b14499ea1a8fe7d643e3881a473d0d' ARCHIVE_BASE_FEDERATIONS_36_SIZE='14433' ARCHIVE_BASE_FEDERATIONS_36_VERSION='3.12.5-gog74193' ARCHIVE_BASE_FEDERATIONS_32_NAME='stellaris_federations_3_11_3_0_72561.sh' ARCHIVE_BASE_FEDERATIONS_32_MD5='de18cbab731d65f25fcc58ea98a16a12' ARCHIVE_BASE_FEDERATIONS_32_SIZE='14433' ARCHIVE_BASE_FEDERATIONS_32_VERSION='3.11.3-gog72561' ARCHIVE_BASE_FEDERATIONS_29_NAME='stellaris_federations_3_10_4_70670.sh' ARCHIVE_BASE_FEDERATIONS_29_MD5='00836b70d3d84d95de238c607e25e309' ARCHIVE_BASE_FEDERATIONS_29_SIZE='14433' ARCHIVE_BASE_FEDERATIONS_29_VERSION='3.10.4-gog70670' ARCHIVE_BASE_FEDERATIONS_23_NAME='stellaris_federations_3_9_3_68314.sh' ARCHIVE_BASE_FEDERATIONS_23_MD5='5c2ecccea91eeeea578cd2925a5621eb' ARCHIVE_BASE_FEDERATIONS_23_SIZE='14752' ARCHIVE_BASE_FEDERATIONS_23_VERSION='3.9.3-gog68314' ARCHIVE_BASE_FEDERATIONS_20_NAME='stellaris_federations_3_8_4_1_65337.sh' ARCHIVE_BASE_FEDERATIONS_20_MD5='6fd1449caf09cfd06baff37237aff954' ARCHIVE_BASE_FEDERATIONS_20_SIZE='15000' ARCHIVE_BASE_FEDERATIONS_20_VERSION='3.8.4.1-gog65337' ARCHIVE_BASE_FEDERATIONS_16_NAME='stellaris_federations_3_7_4_63489.sh' ARCHIVE_BASE_FEDERATIONS_16_MD5='df6d008a05e26559ba65d184e52d5926' ARCHIVE_BASE_FEDERATIONS_16_SIZE='15000' ARCHIVE_BASE_FEDERATIONS_16_VERSION='3.7.4-gog63489' ARCHIVE_BASE_FEDERATIONS_13_NAME='stellaris_federations_3_6_1_60754.sh' ARCHIVE_BASE_FEDERATIONS_13_MD5='7f86c6a7c6d13946528a58c90c7eebc8' ARCHIVE_BASE_FEDERATIONS_13_SIZE='15000' ARCHIVE_BASE_FEDERATIONS_13_VERSION='3.6.1-gog60754' ARCHIVE_BASE_FEDERATIONS_11_NAME='stellaris_federations_3_5_3_59410.sh' ARCHIVE_BASE_FEDERATIONS_11_MD5='02dee79bf1c26ba1b1cfca5103dccdca' ARCHIVE_BASE_FEDERATIONS_11_SIZE='15000' ARCHIVE_BASE_FEDERATIONS_11_VERSION='3.5.3-gog59410' ARCHIVE_BASE_FEDERATIONS_9_NAME='stellaris_federations_3_4_5_56913.sh' ARCHIVE_BASE_FEDERATIONS_9_MD5='96170769d5fef74f2aedf9f3fd85f656' ARCHIVE_BASE_FEDERATIONS_9_SIZE='15000' ARCHIVE_BASE_FEDERATIONS_9_VERSION='3.4.5-gog56913' ARCHIVE_BASE_FEDERATIONS_5_NAME='stellaris_federations_3_3_4_54421.sh' ARCHIVE_BASE_FEDERATIONS_5_MD5='d0dcbaef570563bb87dd16e600e162bd' ARCHIVE_BASE_FEDERATIONS_5_SIZE='15000' ARCHIVE_BASE_FEDERATIONS_5_VERSION='3.3.4-gog54421' ARCHIVE_BASE_FEDERATIONS_1_NAME='stellaris_federations_3_2_2_51685.sh' ARCHIVE_BASE_FEDERATIONS_1_MD5='df17fc878abd4eb957e147feb5b7e39b' ARCHIVE_BASE_FEDERATIONS_1_SIZE='15000' ARCHIVE_BASE_FEDERATIONS_1_VERSION='3.2.2-gog51685' ## Nemesis ARCHIVE_BASE_NEMESIS_28_NAME='stellaris_nemesis_3_14_1592653_81105.sh' ARCHIVE_BASE_NEMESIS_28_MD5='7d686008bc3b604c55578cb7b72b711b' ARCHIVE_BASE_NEMESIS_28_SIZE='38539' ARCHIVE_BASE_NEMESIS_28_VERSION='3.14.1592653-gog81105' ARCHIVE_BASE_NEMESIS_28_URL='https://www.gog.com/game/stellaris_nemesis' ARCHIVE_BASE_NEMESIS_27_NAME='stellaris_nemesis_3_14_15926_78464.sh' ARCHIVE_BASE_NEMESIS_27_MD5='d950bf759ba6311143b1be3ec6811fd7' ARCHIVE_BASE_NEMESIS_27_SIZE='38539' ARCHIVE_BASE_NEMESIS_27_VERSION='3.14.15926-gog78464' ARCHIVE_BASE_NEMESIS_26_NAME='stellaris_nemesis_3_13_2_0_76713.sh' ARCHIVE_BASE_NEMESIS_26_MD5='3ab5141b829c7747c4622b92789fbe43' ARCHIVE_BASE_NEMESIS_26_SIZE='38539' ARCHIVE_BASE_NEMESIS_26_VERSION='3.13.2-gog76713' ARCHIVE_BASE_NEMESIS_23_NAME='stellaris_nemesis_3_12_5_74193.sh' ARCHIVE_BASE_NEMESIS_23_MD5='30187118ff7f8fed4db3b453f2b1a467' ARCHIVE_BASE_NEMESIS_23_SIZE='38539' ARCHIVE_BASE_NEMESIS_23_VERSION='3.12.5-gog74193' ARCHIVE_BASE_NEMESIS_19_NAME='stellaris_nemesis_3_11_3_0_72561.sh' ARCHIVE_BASE_NEMESIS_19_MD5='a6380543924bf1479101511337238f29' ARCHIVE_BASE_NEMESIS_19_SIZE='38539' ARCHIVE_BASE_NEMESIS_19_VERSION='3.11.3-gog72561' ARCHIVE_BASE_NEMESIS_16_NAME='stellaris_nemesis_3_10_4_70670.sh' ARCHIVE_BASE_NEMESIS_16_MD5='749b70150b8b77b9f905d50b641594c7' ARCHIVE_BASE_NEMESIS_16_SIZE='38539' ARCHIVE_BASE_NEMESIS_16_VERSION='3.10.4-gog70670' ARCHIVE_BASE_NEMESIS_10_NAME='stellaris_nemesis_3_9_3_68314.sh' ARCHIVE_BASE_NEMESIS_10_MD5='105f2c56365c3b2b3c329806e4b5272b' ARCHIVE_BASE_NEMESIS_10_SIZE='38856' ARCHIVE_BASE_NEMESIS_10_VERSION='3.9.3-gog68314' ARCHIVE_BASE_NEMESIS_7_NAME='stellaris_nemesis_3_8_4_1_65337.sh' ARCHIVE_BASE_NEMESIS_7_MD5='ea624db6ea0f9f485cb194c1358dda62' ARCHIVE_BASE_NEMESIS_7_SIZE='40000' ARCHIVE_BASE_NEMESIS_7_VERSION='3.8.4.1-gog65337' ARCHIVE_BASE_NEMESIS_3_NAME='stellaris_nemesis_3_7_4_63489.sh' ARCHIVE_BASE_NEMESIS_3_MD5='9fa7ca1ebe2ffb736787f18bf2611311' ARCHIVE_BASE_NEMESIS_3_SIZE='40000' ARCHIVE_BASE_NEMESIS_3_VERSION='3.7.4-gog63489' ARCHIVE_BASE_NEMESIS_0_NAME='stellaris_nemesis_3_6_1_60754.sh' ARCHIVE_BASE_NEMESIS_0_MD5='ec08053da0ef60ea42a974b26892031a' ARCHIVE_BASE_NEMESIS_0_SIZE='40000' ARCHIVE_BASE_NEMESIS_0_VERSION='3.6.1-gog60754' ## Overlord ARCHIVE_BASE_OVERLORD_23_NAME='stellaris_overlord_3_14_1592653_81105.sh' ARCHIVE_BASE_OVERLORD_23_MD5='b556024c88c3d9dec03c8e5945de49b4' ARCHIVE_BASE_OVERLORD_23_SIZE='99860' ARCHIVE_BASE_OVERLORD_23_VERSION='3.14.1592653-gog81105' ARCHIVE_BASE_OVERLORD_23_URL='https://www.gog.com/game/stellaris_overlord' ARCHIVE_BASE_OVERLORD_22_NAME='stellaris_overlord_3_14_15926_78464.sh' ARCHIVE_BASE_OVERLORD_22_MD5='cbc6247838f41c5d8f78c6fb6dba8ac4' ARCHIVE_BASE_OVERLORD_22_SIZE='99860' ARCHIVE_BASE_OVERLORD_22_VERSION='3.14.15926-gog78464' ARCHIVE_BASE_OVERLORD_21_NAME='stellaris_overlord_3_13_2_0_76713.sh' ARCHIVE_BASE_OVERLORD_21_MD5='dbf1a321e0fe23a463030e436dafcda2' ARCHIVE_BASE_OVERLORD_21_SIZE='99860' ARCHIVE_BASE_OVERLORD_21_VERSION='3.13.2-gog76713' ARCHIVE_BASE_OVERLORD_18_NAME='stellaris_overlord_3_12_5_74193.sh' ARCHIVE_BASE_OVERLORD_18_MD5='62f8f8bf6a5f9774bd1fb036d73e2843' ARCHIVE_BASE_OVERLORD_18_SIZE='99860' ARCHIVE_BASE_OVERLORD_18_VERSION='3.12.5-gog74193' ARCHIVE_BASE_OVERLORD_14_NAME='stellaris_overlord_3_11_3_0_72561.sh' ARCHIVE_BASE_OVERLORD_14_MD5='dd8189cd8134fc866c374864d0700b83' ARCHIVE_BASE_OVERLORD_14_SIZE='99860' ARCHIVE_BASE_OVERLORD_14_VERSION='3.11.3-gog72561' ARCHIVE_BASE_OVERLORD_11_NAME='stellaris_overlord_3_10_4_70670.sh' ARCHIVE_BASE_OVERLORD_11_MD5='a6bf968c0f6c7dc75998884b333025ec' ARCHIVE_BASE_OVERLORD_11_SIZE='99860' ARCHIVE_BASE_OVERLORD_11_VERSION='3.10.4-gog70670' ARCHIVE_BASE_OVERLORD_5_NAME='stellaris_overlord_3_9_3_68314.sh' ARCHIVE_BASE_OVERLORD_5_MD5='580bcbdf375ead938c80956f27e1069d' ARCHIVE_BASE_OVERLORD_5_SIZE='100180' ARCHIVE_BASE_OVERLORD_5_VERSION='3.9.3-gog68314' ARCHIVE_BASE_OVERLORD_2_NAME='stellaris_overlord_3_8_4_1_65337.sh' ARCHIVE_BASE_OVERLORD_2_MD5='e1c1700fa00f2c2d0c86ec4d7d1d63ea' ARCHIVE_BASE_OVERLORD_2_SIZE='110000' ARCHIVE_BASE_OVERLORD_2_VERSION='3.8.4.1-gog65337' ## Galactic Paragons ARCHIVE_BASE_PARAGONS_23_NAME='stellaris_galactic_paragons_3_14_1592653_81105.sh' ARCHIVE_BASE_PARAGONS_23_MD5='b3a00f45cec93aea1ff6a2a0108935a5' ARCHIVE_BASE_PARAGONS_23_SIZE='832' ARCHIVE_BASE_PARAGONS_23_VERSION='3.14.1592653-gog81105' ARCHIVE_BASE_PARAGONS_23_URL='https://www.gog.com/game/stellaris_galactic_paragons' ARCHIVE_BASE_PARAGONS_22_NAME='stellaris_galactic_paragons_3_14_15926_78464.sh' ARCHIVE_BASE_PARAGONS_22_MD5='fd01b388fa76e46e8739a70d26c682f0' ARCHIVE_BASE_PARAGONS_22_SIZE='832' ARCHIVE_BASE_PARAGONS_22_VERSION='3.14.15926-gog78464' ARCHIVE_BASE_PARAGONS_21_NAME='stellaris_galactic_paragons_3_13_2_0_76713.sh' ARCHIVE_BASE_PARAGONS_21_MD5='ce85a2dffe8e2f5dc5fd691622d96518' ARCHIVE_BASE_PARAGONS_21_SIZE='832' ARCHIVE_BASE_PARAGONS_21_VERSION='3.13.2-gog76713' ARCHIVE_BASE_PARAGONS_18_NAME='stellaris_galactic_paragons_3_12_5_74193.sh' ARCHIVE_BASE_PARAGONS_18_MD5='00b9ebf125e6812ccd02840db3f7bcd7' ARCHIVE_BASE_PARAGONS_18_SIZE='832' ARCHIVE_BASE_PARAGONS_18_VERSION='3.12.5-gog74193' ARCHIVE_BASE_PARAGONS_14_NAME='stellaris_galactic_paragons_3_11_3_0_72561.sh' ARCHIVE_BASE_PARAGONS_14_MD5='ee6878f407ab24721974463a3c957d68' ARCHIVE_BASE_PARAGONS_14_SIZE='832' ARCHIVE_BASE_PARAGONS_14_VERSION='3.11.3-gog72561' ARCHIVE_BASE_PARAGONS_11_NAME='stellaris_galactic_paragons_3_10_4_70670.sh' ARCHIVE_BASE_PARAGONS_11_MD5='e081e220e0a862bd8adc42860b9bd1f4' ARCHIVE_BASE_PARAGONS_11_SIZE='832' ARCHIVE_BASE_PARAGONS_11_VERSION='3.10.4-gog70670' ARCHIVE_BASE_PARAGONS_5_NAME='stellaris_galactic_paragons_3_9_3_68314.sh' ARCHIVE_BASE_PARAGONS_5_MD5='4e1ad6ceb7a5e3bb6d55d1bc7547954e' ARCHIVE_BASE_PARAGONS_5_SIZE='1152' ARCHIVE_BASE_PARAGONS_5_VERSION='3.9.3-gog68314' ARCHIVE_BASE_PARAGONS_2_NAME='stellaris_galactic_paragons_3_8_4_1_65337.sh' ARCHIVE_BASE_PARAGONS_2_MD5='e47a7ab7c264021f49b8419e1aedc580' ARCHIVE_BASE_PARAGONS_2_SIZE='1200' ARCHIVE_BASE_PARAGONS_2_VERSION='3.8.4.1-gog65337' ## The Machine Age ARCHIVE_BASE_MACHINE_8_NAME='stellaris_the_machine_age_3_14_1592653_81105.sh' ARCHIVE_BASE_MACHINE_8_MD5='07b714aa18a9c9ff40f5fbf03cf59e2d' ARCHIVE_BASE_MACHINE_8_SIZE='100390' ARCHIVE_BASE_MACHINE_8_VERSION='3.14.1592653-gog81105' ARCHIVE_BASE_MACHINE_8_URL='https://www.gog.com/game/stellaris_the_machine_age' ARCHIVE_BASE_MACHINE_7_NAME='stellaris_the_machine_age_3_14_15926_78464.sh' ARCHIVE_BASE_MACHINE_7_MD5='ab74106e42a9b5525ae852ca27b7020f' ARCHIVE_BASE_MACHINE_7_SIZE='100390' ARCHIVE_BASE_MACHINE_7_VERSION='3.14.15926-gog78464' ARCHIVE_BASE_MACHINE_6_NAME='stellaris_the_machine_age_3_13_2_0_76713.sh' ARCHIVE_BASE_MACHINE_6_MD5='113ee29d7d37fc5de99f1716114a12f3' ARCHIVE_BASE_MACHINE_6_SIZE='100390' ARCHIVE_BASE_MACHINE_6_VERSION='3.13.2-gog76713' ARCHIVE_BASE_MACHINE_3_NAME='stellaris_the_machine_age_3_12_5_74193.sh' ARCHIVE_BASE_MACHINE_3_MD5='06614dbbb8a94b20449f6a3a6f863347' ARCHIVE_BASE_MACHINE_3_SIZE='118726' ARCHIVE_BASE_MACHINE_3_VERSION='3.12.5-gog74193' 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-stellaris.sh0000750000000000000000000001462514471751340014165 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # Stellaris # send your bug reports to vv221@dotslashplay.it ### script_version=20250504.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='stellaris' GAME_NAME='Stellaris' ARCHIVE_BASE_60_NAME='stellaris_3_14_1592653_81105.sh' ARCHIVE_BASE_60_MD5='1cc50dc7470ed4ddd58fc755e9cf3024' ARCHIVE_BASE_60_SIZE='20346386' ARCHIVE_BASE_60_VERSION='3.14.1592653-gog81105' ARCHIVE_BASE_60_URL='https://www.gog.com/game/stellaris' ARCHIVE_BASE_59_NAME='stellaris_3_14_15926_78464.sh' ARCHIVE_BASE_59_MD5='0e93163e55e8bddbcdfd6c7c9c0307bd' ARCHIVE_BASE_59_SIZE='20344787' ARCHIVE_BASE_59_VERSION='3.14.15926-gog78464' ARCHIVE_BASE_58_NAME='stellaris_3_13_2_0_76713.sh' ARCHIVE_BASE_58_MD5='e8a71267c39846f3fa51a7f14f0d2177' ARCHIVE_BASE_58_SIZE='19165769' ARCHIVE_BASE_58_VERSION='3.13.2-gog76713' ARCHIVE_BASE_55_NAME='stellaris_3_12_5_74193.sh' ARCHIVE_BASE_55_MD5='bb1b18f25732a09a6f257554a1d98375' ARCHIVE_BASE_55_SIZE='18792782' ARCHIVE_BASE_55_VERSION='3.12.5-gog74193' ARCHIVE_BASE_51_NAME='stellaris_3_11_3_0_72561.sh' ARCHIVE_BASE_51_MD5='a03584bd08d67544607fade70c8cb157' ARCHIVE_BASE_51_SIZE='16450506' ARCHIVE_BASE_51_VERSION='3.11.3-gog72561' ARCHIVE_BASE_48_NAME='stellaris_3_10_4_70670.sh' ARCHIVE_BASE_48_MD5='8703e439a2588f88987ad7d600674714' ARCHIVE_BASE_48_SIZE='16449439' ARCHIVE_BASE_48_VERSION='3.10.4-gog70670' ARCHIVE_BASE_42_NAME='stellaris_3_9_3_68314.sh' ARCHIVE_BASE_42_MD5='fb96d68d043643b032328023c09bbb53' ARCHIVE_BASE_42_SIZE='16222112' ARCHIVE_BASE_42_VERSION='3.9.3-gog68314' ARCHIVE_BASE_39_NAME='stellaris_3_8_4_1_65337.sh' ARCHIVE_BASE_39_MD5='95e375ad5250a5ecc525e9f873edf642' ARCHIVE_BASE_39_SIZE='17000000' ARCHIVE_BASE_39_VERSION='3.8.4.1-gog65337' ARCHIVE_BASE_35_NAME='stellaris_3_7_4_63489.sh' ARCHIVE_BASE_35_MD5='2c0200a3eac988cf300b259ec0e75745' ARCHIVE_BASE_35_SIZE='16000000' ARCHIVE_BASE_35_VERSION='3.7.4-gog63489' ARCHIVE_BASE_32_NAME='stellaris_3_6_1_60754.sh' ARCHIVE_BASE_32_MD5='d2a56659e3ff14f1916e54cda1848efb' ARCHIVE_BASE_32_SIZE='16000000' ARCHIVE_BASE_32_VERSION='3.6.1-gog60754' ARCHIVE_BASE_30_NAME='stellaris_3_5_3_59410.sh' ARCHIVE_BASE_30_MD5='4476050de7a99e8de7dfb9674d770ab4' ARCHIVE_BASE_30_SIZE='16000000' ARCHIVE_BASE_30_VERSION='3.5.3-gog59410' ARCHIVE_BASE_28_NAME='stellaris_3_4_5_56913.sh' ARCHIVE_BASE_28_MD5='aadcdd3e618635fe0a014ee649ed9204' ARCHIVE_BASE_28_SIZE='16000000' ARCHIVE_BASE_28_VERSION='3.4.5-gog56913' ARCHIVE_BASE_24_NAME='stellaris_3_3_4_54421.sh' ARCHIVE_BASE_24_MD5='2fe3bf9955468eed06bfaaf6e8e48f89' ARCHIVE_BASE_24_SIZE='15000000' ARCHIVE_BASE_24_VERSION='3.3.4-gog54421' ARCHIVE_BASE_20_NAME='stellaris_3_2_1_1_51520.sh' ARCHIVE_BASE_20_MD5='91d1173e84573c04b4b84978dfe068e5' ARCHIVE_BASE_20_SIZE='15000000' ARCHIVE_BASE_20_VERSION='3.2.1.1-gog51520' ARCHIVE_BASE_19_NAME='stellaris_3_1_1_50008.sh' ARCHIVE_BASE_19_MD5='157bbf508ea354ced1cbbf0d06c15b0f' ARCHIVE_BASE_19_SIZE='12000000' ARCHIVE_BASE_19_VERSION='3.1.1-gog50008' ARCHIVE_BASE_18_NAME='stellaris_3_0_3_47193.sh' ARCHIVE_BASE_18_MD5='3c818f2b540998ddcc9c18dd98e15cba' ARCHIVE_BASE_18_SIZE='12000000' ARCHIVE_BASE_18_VERSION='3.0.3-gog47193' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_FILES=' libnakama-cpp.so libpops_api.so' CONTENT_GAME_BIN_FILES=' crash_reporter tools stellaris' CONTENT_GAME_DATA_MODELS_SHIPS_FILES=' gfx/models/ships' CONTENT_GAME_DATA_MODELS_FILES=' gfx/models' CONTENT_GAME_DATA_FILES=' common curated_save_games dlc dlc_metadata events flags fonts gfx interface licenses locales localisation localisation_synced map music prescripted_countries previewer_assets sound tweakergui_assets unchecked_defines ChangeLog.txt ChangeLogBlank.txt checksum_manifest.txt ThirdPartyLicenses.txt' CONTENT_GAME_MULTIPLAYER_FILES=' launcher-assets livepp pdx_launcher pdx_online_assets dowser launcher-installer-linux_2024.14 pdx_core_test launcher-settings.json' ## Symbolic links are explicitly unsupported by the game engine. ## Trying to run the game from a symlinks farm prefix leads to the following errors: ## ## [virtualfilesystem_physfs.cpp:797] File 'gfx/exe_icon.bmp' does not exist : symlinks are forbidden ## [virtualfilesystem_physfs.cpp:797] File 'gfx/loadingscreens/init.bmp' does not exist : symlinks are forbidden APP_MAIN_PREFIX_TYPE='none' APP_MAIN_EXE='stellaris' APP_MAIN_ICON='gfx/exe_icon.bmp' PACKAGES_LIST=' PKG_BIN PKG_DATA_MODELS_SHIPS PKG_DATA_MODELS PKG_DATA PKG_MULTIPLAYER' 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 libpthread.so.0 libresolv.so.2 libSDL2-2.0.so.0 libstdc++.so.6 libuuid.so.1 libX11.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_DATA_MODELS' PKG_DATA_MODELS_ID="${PKG_DATA_ID}-models" PKG_DATA_MODELS_DESCRIPTION="${PKG_DATA_DESCRIPTION} - models" PKG_DATA_MODELS_DEPENDENCIES_SIBLINGS=' PKG_DATA_MODELS_SHIPS' PKG_DATA_MODELS_SHIPS_ID="${PKG_DATA_MODELS_ID}-ships" PKG_DATA_MODELS_SHIPS_DESCRIPTION="${PKG_DATA_MODELS_DESCRIPTION} - ships" PKG_MULTIPLAYER_ID="${GAME_ID}-multiplayer" PKG_MULTIPLAYER_DESCRIPTION='Paradox launcher' PKG_MULTIPLAYER_ARCH='64' PKG_MULTIPLAYER_DEPENDENCIES_SIBLINGS=' PKG_BIN' PKG_MULTIPLAYER_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.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" # 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)" launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-sunless-sea.sh0000750000000000000000000001655014471751340014424 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2018 BetaRays set -o errexit ### # Sunless Sea # send your bug reports to vv221@dotslashplay.it ### script_version=20250429.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='sunless-sea' GAME_NAME='Sunless Sea' # Archives ## Zubmariner (stand-alone expansion, gog.com) ARCHIVE_BASE_GOG_ZUBMARINER_5_NAME='sunless_sea_zubmariner_2_2_11_3212_64426.sh' ARCHIVE_BASE_GOG_ZUBMARINER_5_MD5='35dfc1ccb8a152e7eae5e1468d33098e' ARCHIVE_BASE_GOG_ZUBMARINER_5_VERSION='2.2.11.3212-gog64426' ARCHIVE_BASE_GOG_ZUBMARINER_5_SIZE='928276' ARCHIVE_BASE_GOG_ZUBMARINER_5_URL='https://www.gog.com/game/sunless_sea_zubmariner' ARCHIVE_BASE_GOG_ZUBMARINER_4_NAME='sunless_sea_zubmariner_v2_2_7_3165_a_53438.sh' ARCHIVE_BASE_GOG_ZUBMARINER_4_MD5='2d160c6c91b3b7e603447714b3112fba' ARCHIVE_BASE_GOG_ZUBMARINER_4_VERSION='2.2.7.3165-gog53438' ARCHIVE_BASE_GOG_ZUBMARINER_4_SIZE='930000' ARCHIVE_BASE_GOG_ZUBMARINER_3_NAME='sunless_sea_zubmariner_2_2_7_3165_29003.sh' ARCHIVE_BASE_GOG_ZUBMARINER_3_MD5='7527c8f7a87c6d8f04a0cf2d75f30f4c' ARCHIVE_BASE_GOG_ZUBMARINER_3_VERSION='2.2.7.3165-gog29003' ARCHIVE_BASE_GOG_ZUBMARINER_3_SIZE='930000' ARCHIVE_BASE_GOG_ZUBMARINER_2_NAME='sunless_sea_zubmariner_2_2_6_3150_24613.sh' ARCHIVE_BASE_GOG_ZUBMARINER_2_MD5='427440ff2f5e57e5e556bbaa1ffcfa7c' ARCHIVE_BASE_GOG_ZUBMARINER_2_VERSION='2.2.6.3150-gog24613' ARCHIVE_BASE_GOG_ZUBMARINER_2_SIZE='930000' ARCHIVE_BASE_GOG_ZUBMARINER_1_NAME='sunless_sea_zubmariner_en_v2_2_4_3141_21326.sh' ARCHIVE_BASE_GOG_ZUBMARINER_1_MD5='438471f35119ca0131971082f6eb805c' ARCHIVE_BASE_GOG_ZUBMARINER_1_VERSION='2.2.4.3141-gog21326' ARCHIVE_BASE_GOG_ZUBMARINER_1_SIZE='930000' ARCHIVE_BASE_GOG_ZUBMARINER_0_NAME='gog_sunless_sea_zubmariner_2.5.0.6.sh' ARCHIVE_BASE_GOG_ZUBMARINER_0_MD5='692cd0dac832d5254bd38d7e1a05b918' ARCHIVE_BASE_GOG_ZUBMARINER_0_VERSION='2.2.2.3130-gog2.5.0.6' ARCHIVE_BASE_GOG_ZUBMARINER_0_SIZE='870000' ## Sunless Sea (base game, gog.com) ARCHIVE_BASE_GOG_5_NAME='sunless_sea_2_2_11_3212_64426.sh' ARCHIVE_BASE_GOG_5_MD5='f5ab5552b618f33c5ddf0d952aa1294c' ARCHIVE_BASE_GOG_5_VERSION='2.2.11.3212-gog64426' ARCHIVE_BASE_GOG_5_SIZE='756028' ARCHIVE_BASE_GOG_5_URL='https://www.gog.com/game/sunless_sea' ARCHIVE_BASE_GOG_4_NAME='sunless_sea_v2_2_7_3165_a_53438.sh' ARCHIVE_BASE_GOG_4_MD5='e7cdef68377026c0f61327342a6b68b4' ARCHIVE_BASE_GOG_4_VERSION='2.2.7.3165-gog53438' ARCHIVE_BASE_GOG_4_SIZE='760000' ARCHIVE_BASE_GOG_3_NAME='sunless_sea_2_2_7_3165_29003.sh' ARCHIVE_BASE_GOG_3_MD5='0feebd54ae67c772d189e19d2042fe91' ARCHIVE_BASE_GOG_3_VERSION='2.2.7.3165-gog29003' ARCHIVE_BASE_GOG_3_SIZE='760000' ARCHIVE_BASE_GOG_2_NAME='sunless_sea_2_2_6_3150_24613.sh' ARCHIVE_BASE_GOG_2_MD5='1ea56377e7636f354656c1f791f29a5c' ARCHIVE_BASE_GOG_2_VERSION='2.2.6.3150-gog24613' ARCHIVE_BASE_GOG_2_SIZE='760000' ARCHIVE_BASE_GOG_1_NAME='sunless_sea_en_v2_2_4_3141_21326.sh' ARCHIVE_BASE_GOG_1_MD5='df453a83ac1fb2767bdeafafb40f037a' ARCHIVE_BASE_GOG_1_VERSION='2.2.4.3141-gog21326' ARCHIVE_BASE_GOG_1_SIZE='760000' ARCHIVE_BASE_GOG_0_NAME='gog_sunless_sea_2.8.0.11.sh' ARCHIVE_BASE_GOG_0_MD5='1cf6bb7a440ce796abf8e7afcb6f7a54' ARCHIVE_BASE_GOG_0_VERSION='2.2.2.3129-gog2.8.0.11' ARCHIVE_BASE_GOG_0_SIZE='700000' ## Sunless Sea (base game, humblebundle.com) ARCHIVE_BASE_HUMBLE_1_NAME='Sunless_Sea_Setup_V2.2.4.3141_LINUX.zip' ARCHIVE_BASE_HUMBLE_1_MD5='076c6784bb96e4189f675f114c98ae85' ARCHIVE_BASE_HUMBLE_1_VERSION='2.2.4.3141-humble180606' ARCHIVE_BASE_HUMBLE_1_SIZE='760000' ARCHIVE_BASE_HUMBLE_1_URL='https://www.humblebundle.com/store/sunless-sea' ARCHIVE_BASE_HUMBLE_0_NAME='Sunless_Sea_Setup_V2.2.2.3129_LINUX.zip' ARCHIVE_BASE_HUMBLE_0_MD5='bdb37932e56fd0655a2e4263631e2582' ARCHIVE_BASE_HUMBLE_0_VERSION='2.2.2.3129-humble170131' ARCHIVE_BASE_HUMBLE_0_SIZE='700000' UNITY3D_NAME='Sunless Sea' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='data/noarch' CONTENT_GAME_BIN64_PATH_HUMBLE='data/x86_64' CONTENT_GAME_BIN32_PATH_HUMBLE='data/x86' CONTENT_DOC_DATA_FILES=' README.linux' ## Application type can not be automatically guessed when using the Humble Bundle archive, because the game binary is not stored under CONTENT_PATH_DEFAULT. ## This application type is required to automatically generate the default files list for archive contents inclusion. APP_MAIN_TYPE_HUMBLE='native' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_GOG_ZUBMARINER="${PKG_DATA_ID}-zubmariner" PKG_DATA_PROVIDES=" $PKG_DATA_ID" PKG_DATA_DESCRIPTION='data' PKG_DATA_DESCRIPTION_GOG_ZUBMARINER="$PKG_DATA_DESCRIPTION (including Zubmariner DLC)" ## Ensure smooth upgrades from packages generated with pre-20231020.1 scripts. PKG_DATA_PROVIDES="${PKG_DATA_PROVIDES:-} sunless-sea-zubmariner-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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 "$@" # humblebundle.com - Check that tools required to handle the inner archive are available. case "$(current_archive)" in ('ARCHIVE_BASE_HUMBLE_'*) REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} $(archive_requirements_mojosetup_list)" requirements_check ;; esac # Extract game data archive_extraction_default case "$(current_archive)" in ('ARCHIVE_BASE_HUMBLE_'*) ARCHIVE_INNER_PATH="${PLAYIT_WORKDIR}/gamedata/Sunless Sea.sh" archive_extraction 'ARCHIVE_INNER' rm "$(archive_path 'ARCHIVE_INNER')" ;; esac ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## humblebundle.com - Some arch-specific files in the archive are stored in the arch-independent path. case "$(current_archive)" in ('ARCHIVE_BASE_HUMBLE_'*) cp --link --parents --recursive \ "$(unity3d_name)_Data/Mono/x86_64" \ "$(unity3d_name)_Data/Plugins/x86_64" \ "${PLAYIT_WORKDIR}/gamedata/$(content_path 'GAME_BIN64')" cp --link --parents --recursive \ "$(unity3d_name)_Data/Mono/x86" \ "$(unity3d_name)_Data/Plugins/x86" \ "${PLAYIT_WORKDIR}/gamedata/$(content_path 'GAME_BIN32')" rm --recursive \ "$(unity3d_name)_Data/Mono/x86_64" \ "$(unity3d_name)_Data/Mono/x86" \ "$(unity3d_name)_Data/Plugins/x86_64" \ "$(unity3d_name)_Data/Plugins/x86" rmdir "$(unity3d_name)_Data/Plugins" ;; esac ) # 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-sunless-skies-expansions.sh0000750000000000000000000000425614471751340017157 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 vv221@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.sh0000750000000000000000000000473314471751340014772 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 vv221@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-superflu-riteurnz.sh0000750000000000000000000001312114471751340015676 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Superflu Riteurnz # send your bug reports to vv221@dotslashplay.it ### script_version=20241021.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='superflu-riteurnz' GAME_NAME='Superflu Riteurnz' ARCHIVE_BASE_1_NAME='superfluous-returnz-1.6.0-d13-gnunux.tar.gz' ARCHIVE_BASE_1_MD5='bbefabb57d0525a6e219251db7937e50' ARCHIVE_BASE_1_SIZE='256197' ARCHIVE_BASE_1_VERSION='1.6.0-itch.2023.12.20' ARCHIVE_BASE_1_URL='https://ptilouk.itch.io/superfluous-returnz' ARCHIVE_BASE_0_NAME='superfluous-returnz-1.5.5-d12-gnunux.tar.gz' ARCHIVE_BASE_0_MD5='a147cebc30b9439321b5d6c8b8f04539' ARCHIVE_BASE_0_SIZE='353012' ARCHIVE_BASE_0_VERSION='1.5.5-itch.2023.11.22' ARCHIVE_BASE_MONOARCH_7_NAME='superfluous-returnz-1.5.5-d12-gnunux.tar.gz' ARCHIVE_BASE_MONOARCH_7_MD5='6410e666d262dc32b4a143e5670d1805' ARCHIVE_BASE_MONOARCH_7_SIZE='315764' ARCHIVE_BASE_MONOARCH_7_VERSION='1.5.5-itch.2023.10.09' ARCHIVE_BASE_MONOARCH_6_NAME='superfluous-returnz-1.5.4-d11-gnunux.tar.gz' ARCHIVE_BASE_MONOARCH_6_MD5='8f1f27107d8195b252a4a95be4e49961' ARCHIVE_BASE_MONOARCH_6_SIZE='315924' ARCHIVE_BASE_MONOARCH_6_VERSION='1.5.4-itch.2023.09.14' ARCHIVE_BASE_MONOARCH_5_NAME='superfluous-returnz-1.5.3-d10-gnunux.tar.gz' ARCHIVE_BASE_MONOARCH_5_MD5='bf0989ee6fc571c5dfb1546700630a9a' ARCHIVE_BASE_MONOARCH_5_SIZE='315888' ARCHIVE_BASE_MONOARCH_5_VERSION='1.5.3-itch1' ARCHIVE_BASE_MONOARCH_4_NAME='superfluous-returnz-1.5.2-d10-gnunux.tar.gz' ARCHIVE_BASE_MONOARCH_4_MD5='8b07a4ee3c36e12335bfdad784aefcdf' ARCHIVE_BASE_MONOARCH_4_SIZE='320000' ARCHIVE_BASE_MONOARCH_4_VERSION='1.5.2-itch1' ARCHIVE_BASE_MONOARCH_3_NAME='superfluous-returnz-1.5.1-d10-gnunux.tar.gz' ARCHIVE_BASE_MONOARCH_3_MD5='34ca505142784f66a30f1c0d387aa920' ARCHIVE_BASE_MONOARCH_3_SIZE='320000' ARCHIVE_BASE_MONOARCH_3_VERSION='1.5.1-itch.2023.06.14' ARCHIVE_BASE_MONOARCH_2_NAME='superfluous-returnz-1.5.0-d10-gnunux.tar.gz' ARCHIVE_BASE_MONOARCH_2_MD5='0a243baf9fcc7dbe83a18394eb87a37f' ARCHIVE_BASE_MONOARCH_2_SIZE='320000' ARCHIVE_BASE_MONOARCH_2_VERSION='1.5.0-itch.2023.06.08' ARCHIVE_BASE_MONOARCH_1_NAME='superfluous-returnz-1.4.2-d7-gnunux.tar.gz' ARCHIVE_BASE_MONOARCH_1_MD5='a2086175774ea0038e5ea0f952971560' ARCHIVE_BASE_MONOARCH_1_SIZE='310000' ARCHIVE_BASE_MONOARCH_1_VERSION='1.4.2-itch.2023.05.16' ARCHIVE_BASE_MONOARCH_0_NAME='superfluous-returnz-1.4.1-d6-gnunux.tar.gz' ARCHIVE_BASE_MONOARCH_0_MD5='93a5592d1d10f4a73047ec46d4cc966b' ARCHIVE_BASE_MONOARCH_0_SIZE='310000' ARCHIVE_BASE_MONOARCH_0_VERSION='1.4.1-itch.2023.05.15' CONTENT_PATH_DEFAULT_1='superfluous-returnz-1.6.0-d13' CONTENT_PATH_DEFAULT_0='superfluous-returnz-1.5.5-d12' CONTENT_PATH_DEFAULT_MONOARCH_7='superfluous-returnz-1.5.5-d12' CONTENT_PATH_DEFAULT_MONOARCH_6='superfluous-returnz-1.5.4-d11' CONTENT_PATH_DEFAULT_MONOARCH_5='superfluous-returnz-1.5.3-d10' CONTENT_PATH_DEFAULT_MONOARCH_4='superfluous-returnz-1.5.2-d10' CONTENT_PATH_DEFAULT_MONOARCH_3='superfluous-returnz-1.5.1-d10' CONTENT_PATH_DEFAULT_MONOARCH_2='superfluous-returnz-1.5.0-d10' CONTENT_PATH_DEFAULT_MONOARCH_1='superfluous-returnz-1.4.2-d7' CONTENT_PATH_DEFAULT_MONOARCH_0='superfluous-returnz-1.4.1-d6' CONTENT_GAME_BIN_FILES=' bin64/superfluous-returnz' CONTENT_GAME_BIN_FILES_MONOARCH=' bin/superfluous-returnz' CONTENT_GAME_DATA_FILES=' share/superfluous-returnz/*.data' CONTENT_DOC_DATA_FILES=' LICENSE.md' APP_MAIN_EXE='bin64/superfluous-returnz' APP_MAIN_EXE_MONOARCH='bin/superfluous-returnz' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 liblz4.so.1 libm.so.6 libpthread.so.0 libSDL2-2.0.so.0 libSDL2_ttf-2.0.so.0 libstdc++.so.6 libyaml-0.so.2' ## libSDL2_image-2.0.so.0 is required by < 1.6 game builds. PKG_BIN_DEPENDENCIES_LIBRARIES_PRE16=' libc.so.6 libgcc_s.so.1 liblz4.so.1 libm.so.6 libpthread.so.0 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0 libSDL2_ttf-2.0.so.0 libstdc++.so.6 libyaml-0.so.2' PKG_BIN_DEPENDENCIES_LIBRARIES_0="$PKG_BIN_DEPENDENCIES_LIBRARIES_PRE16" PKG_BIN_DEPENDENCIES_LIBRARIES_MONOARCH="$PKG_BIN_DEPENDENCIES_LIBRARIES_PRE16" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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 ## An alternative icon path is used for < 1.6 game builds. case "$(current_archive)" in ('ARCHIVE_BASE_0'|'ARCHIVE_BASE_MONOARCH_'*) icon_path_source="${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/share/icons/hicolor/scalable/apps/superfluous-returnz.svg" ;; (*) icon_path_source="${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/share/icons/superfluous-returnz.svg" ;; esac install -D --mode=644 --no-target-directory \ "$icon_path_source" \ "$(package_path 'PKG_DATA')$(path_icons)/scalable/apps/$(game_id).svg" 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-elder-scrolls-3.sh0000750000000000000000000001402014471751340015640 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # The Elder Scrolls 3 # send your bug reports to vv221@dotslashplay.it ### script_version=20241121.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='the-elder-scrolls-3' GAME_NAME='The Elder Scrolls Ⅲ: Morrowind' ARCHIVE_BASE_EN_1_NAME='setup_the_elder_scrolls_iii_morrowind_goty_1.6.0.1820_gog_0.1_(77582).exe' ARCHIVE_BASE_EN_1_MD5='c3ea7739b81d457e4c7d91758b762f4e' ## Do not convert file paths to lowercase, as it causes problems when importing morrowind.ini default settings ARCHIVE_BASE_EN_1_EXTRACTOR='innoextract' ARCHIVE_BASE_EN_1_EXTRACTOR_OPTIONS=' ' ARCHIVE_BASE_EN_1_PART1_NAME='setup_the_elder_scrolls_iii_morrowind_goty_1.6.0.1820_gog_0.1_(77582)-1.bin' ARCHIVE_BASE_EN_1_PART1_MD5='1158ea779b50c704c17bedee0ad2612c' ARCHIVE_BASE_EN_1_SIZE='2209531' ARCHIVE_BASE_EN_1_VERSION='1.6.0.1820-gog77582' ARCHIVE_BASE_EN_1_URL='https://www.gog.com/game/the_elder_scrolls_iii_morrowind_goty_edition' ARCHIVE_BASE_FR_1_NAME='setup_the_elder_scrolls_iii_morrowind_goty_1.6.0.1820_gog_0.1_(french)_(77582).exe' ARCHIVE_BASE_FR_1_MD5='5f56a00e9256d930f63ab677c43c8b75' ## Do not convert file paths to lowercase, as it causes problems when importing morrowind.ini default settings ARCHIVE_BASE_FR_1_EXTRACTOR='innoextract' ARCHIVE_BASE_FR_1_EXTRACTOR_OPTIONS=' ' ARCHIVE_BASE_FR_1_PART1_NAME='setup_the_elder_scrolls_iii_morrowind_goty_1.6.0.1820_gog_0.1_(french)_(77582)-1.bin' ARCHIVE_BASE_FR_1_PART1_MD5='38571e142c67f9c8edd433902abe1454' ARCHIVE_BASE_FR_1_SIZE='2239754' ARCHIVE_BASE_FR_1_VERSION='1.6.0.1820-gog77582' ARCHIVE_BASE_FR_1_URL='https://www.gog.com/game/the_elder_scrolls_iii_morrowind_goty_edition' ARCHIVE_BASE_EN_0_NAME='setup_tes_morrowind_goty_2.0.0.7.exe' ARCHIVE_BASE_EN_0_MD5='3a027504a0e4599f8c6b5b5bcc87a5c6' ## Do not convert file paths to lowercase, as it causes problems when importing morrowind.ini default settings ARCHIVE_BASE_EN_0_EXTRACTOR='innoextract' ARCHIVE_BASE_EN_0_EXTRACTOR_OPTIONS=' ' ARCHIVE_BASE_EN_0_SIZE='2300000' ARCHIVE_BASE_EN_0_VERSION='1.6.1820-gog2.0.0.7' ARCHIVE_BASE_FR_0_NAME='setup_tes_morrowind_goty_french_2.0.0.7.exe' ARCHIVE_BASE_FR_0_MD5='2aee024e622786b2cb5454ff074faf9b' ## Do not convert file paths to lowercase, as it causes problems when importing morrowind.ini default settings ARCHIVE_BASE_FR_0_EXTRACTOR='innoextract' ARCHIVE_BASE_FR_0_EXTRACTOR_OPTIONS=' ' ARCHIVE_BASE_FR_0_SIZE='2300000' ARCHIVE_BASE_FR_0_VERSION='1.6.1820-gog2.0.0.7' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_EN_0='app' CONTENT_PATH_DEFAULT_FR_0='app' CONTENT_GAME_L10N_FILES=' Morrowind.ini Data Files/BookArt Data Files/Sound/Vo Data Files/Splash Data Files/Video Data Files/*.bsa Data Files/*.esm' CONTENT_GAME_DATA_FILES=' Data Files Knife.ico' CONTENT_GAME_DATAFILES_DATA_RELATIVE_PATH='_OfficialPlugins/_unpacked_files' CONTENT_GAME_DATAFILES_DATA_FILES=' Icons Meshes Sound Textures *.esp *.txt' CONTENT_DOC_L10N_FILES=' *.txt' CONTENT_DOC_DATA_FILES=' *.pdf' APP_MAIN_TYPE='custom' APP_MAIN_ICON='Morrowind.exe' PACKAGES_LIST=' PKG_BIN PKG_L10N PKG_DATA' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N_BASE PKG_DATA' PKG_BIN_DEPENDENCIES_COMMANDS=' openmw-iniimporter openmw-launcher' 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 ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Fix .bsa/.esm dates on French version. case "$(current_archive)" in ('ARCHIVE_BASE_FR_'*) touch --date='2002-06-21 17:31:46.000000000 +0200' \ 'Data Files/Morrowind.bsa' touch --date='2002-07-17 18:59:22.000000000 +0200' \ 'Data Files/Morrowind.esm' touch --date='2002-10-29 21:22:06.000000000 +0100' \ 'Data Files/Tribunal.bsa' touch --date='2003-06-26 20:05:06.000000000 +0200' \ 'Data Files/Tribunal.esm' touch --date='2003-05-01 13:37:30.000000000 +0200' \ 'Data Files/Bloodmoon.bsa' touch --date='2003-07-07 17:27:56.000000000 +0200' \ 'Data Files/Bloodmoon.esm' ;; esac ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion 'GAME_DATAFILES_DATA' 'PKG_DATA' "$(path_game_data)/Data Files" content_inclusion_default # Write launchers custom_launcher() { launcher_headers cat <<- EOF PATH_GAME_DATA="$(path_game_data)" EOF cat <<- 'OUTEREOF' OPENMW_CONFIG_PATH="${XDG_CONFIG_HOME:=${HOME}/.config}/openmw" OPENMW_CONFIG_FILE="${OPENMW_CONFIG_PATH}/openmw.cfg" OPENMW_CONFIG_LAUNCHER_FILE="${OPENMW_CONFIG_PATH}/launcher.cfg" # Initialize OpenMW configuration on first launch if [ ! -e "$OPENMW_CONFIG_FILE" ]; then mkdir --parents "$OPENMW_CONFIG_PATH" cat > "$OPENMW_CONFIG_FILE" <<- EOF data="${PATH_GAME_DATA}/Data Files" content=Morrowind.esm EOF openmw-iniimporter --ini "${PATH_GAME_DATA}/Morrowind.ini" --cfg "$OPENMW_CONFIG_FILE" if [ ! -e "$OPENMW_CONFIG_LAUNCHER_FILE" ]; then cat > "$OPENMW_CONFIG_LAUNCHER_FILE" <<- EOF [General] firstrun=false EOF fi fi openmw-launcher exit 0 OUTEREOF } launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-the-lamplighters-league.sh0000750000000000000000000000702114471751340016664 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 vv221@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-settlers-2.sh0000750000000000000000000001432614471751340014743 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2015 Antoine Le Gonidec set -o errexit ### # The Settlers 2 # send your bug reports to vv221@dotslashplay.it ### script_version=20250722.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='the-settlers-2' GAME_NAME='The Settlers Ⅱ' # Archives ## German version ARCHIVE_BASE_DE_1_NAME='setup_the_settlers_2_gold_1.5.1_(german)_(30319).exe' ARCHIVE_BASE_DE_1_MD5='c360aaabd05e99b0f0752e52dd105107' ARCHIVE_BASE_DE_1_TYPE='innosetup' ARCHIVE_BASE_DE_1_SIZE='358538' ARCHIVE_BASE_DE_1_VERSION='1.5.1-gog30319' ARCHIVE_BASE_DE_1_URL='https://www.gog.com/game/the_settlers_2_gold_edition' ARCHIVE_BASE_DE_0_NAME='setup_settlers2_gold_german_2.1.0.17.exe' ARCHIVE_BASE_DE_0_MD5='f87a8fded6de455af4e6a284b3c4ed5e' ARCHIVE_BASE_DE_0_TYPE='innosetup' ARCHIVE_BASE_DE_0_SIZE='370000' ARCHIVE_BASE_DE_0_VERSION='1.5.1-gog2.1.0.17' ## English version ARCHIVE_BASE_EN_1_NAME='setup_the_settlers_2_gold_1.5.1_(30319).exe' ARCHIVE_BASE_EN_1_MD5='8381240ee580a298798b6afe863bac52' ARCHIVE_BASE_EN_1_TYPE='innosetup' ARCHIVE_BASE_EN_1_SIZE='359765' ARCHIVE_BASE_EN_1_VERSION='1.5.1-gog30319' ARCHIVE_BASE_EN_1_URL='https://www.gog.com/game/the_settlers_2_gold_edition' ARCHIVE_BASE_EN_0_NAME='setup_settlers2_gold_2.0.0.14.exe' ARCHIVE_BASE_EN_0_MD5='6f64b47b15f6ba5d43670504dd0bb229' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_SIZE='370000' ARCHIVE_BASE_EN_0_VERSION='1.5.1-gog2.0.0.14' ## French version ARCHIVE_BASE_FR_1_NAME='setup_the_settlers_2_gold_1.5.1_(french)_(30319).exe' ARCHIVE_BASE_FR_1_MD5='55a9d15f1260de5e711ea649120ece50' ARCHIVE_BASE_FR_1_TYPE='innosetup' ARCHIVE_BASE_FR_1_SIZE='395295' ARCHIVE_BASE_FR_1_VERSION='1.5.1-gog30319' ARCHIVE_BASE_FR_1_URL='https://www.gog.com/game/the_settlers_2_gold_edition' ARCHIVE_BASE_FR_0_NAME='setup_settlers2_gold_french_2.1.0.16.exe' ARCHIVE_BASE_FR_0_MD5='1eca72ca45d63e4390590d495657d213' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_SIZE='410000' ARCHIVE_BASE_FR_0_VERSION='1.5.1-gog2.1.0.16' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_DE_0='app' CONTENT_PATH_DEFAULT_EN_0='app' CONTENT_PATH_DEFAULT_FR_0='app' CONTENT_GAME_COMMON_FILES=' DOS4GW.EXE SETTLER2.VMC SETTLERS2.GOG SETTLERS2.INS DATA/*.DAT DATA/EDITRES.IDX DATA/ANIMDAT DATA/BOBS DATA/CBOB DATA/IO/*.DAT DATA/IO/*.FNT DATA/*.LST DATA/MASKS DATA/MBOB DATA/MISSIONS/MIS_00*.RTX DATA/MISSIONS/MIS_10*.RTX DATA/SOUNDDAT/SNG DATA/SOUNDDAT/SOUND.LST DATA/TEXTURES DRIVERS/*.AD DRIVERS/*.DIG DRIVERS/DIG.INI DRIVERS/*.EXE DRIVERS/*.LST DRIVERS/*.MDI DRIVERS/*.OPL GFX/PALETTE GFX/PICS2 GFX/PICS/INSTALL.LBM GFX/PICS/MISSION GFX/PICS/SETUP013.LBM GFX/PICS/SETUP015.LBM GFX/PICS/SETUP666.LBM GFX/PICS/SETUP667.LBM GFX/PICS/SETUP801.LBM GFX/PICS/SETUP802.LBM GFX/PICS/SETUP803.LBM GFX/PICS/SETUP804.LBM GFX/PICS/SETUP805.LBM GFX/PICS/SETUP806.LBM GFX/PICS/SETUP810.LBM GFX/PICS/SETUP811.LBM GFX/PICS/SETUP895.LBM GFX/PICS/SETUP896.LBM GFX/PICS/SETUP899.LBM GFX/PICS/SETUP990.LBM GFX/PICS/WORLD.LBM GFX/PICS/WORLDMSK.LBM GFX/TEXTURES VIDEO/SMACKPLY.EXE' CONTENT_GAME_MAIN_FILES=' DATA/RESOURCE.IDX DATA/IO/*.IDX DATA/MAPS* DATA/MISSIONS/MIS_0100.RTX DATA/ONLINE DATA/TXT* DRIVERS/MDI.INI GFX/PICS/SETUP000.LBM GFX/PICS/SETUP010.LBM GFX/PICS/SETUP011.LBM GFX/PICS/SETUP012.LBM GFX/PICS/SETUP014.LBM GFX/PICS/SETUP897.LBM GFX/PICS/SETUP898.LBM GFX/PICS/SETUP900.LBM GFX/PICS/SETUP901.LBM GFX/PICS/SETUP996.LBM GFX/PICS/SETUP997.LBM GFX/PICS/SETUP998.LBM SAVE/MISSION.DAT VIDEO/*.SMK *.EXE *.INI *.SCR' CONTENT_GAME0_MAIN_RELATIVE_PATH='__SUPPORT/SAVE' CONTENT_GAME0_MAIN_FILES=' SAVE/MISSION.DAT' CONTENT_DOC_MAIN_FILES=' EULA *.TXT' USER_PERSISTENT_FILES=' SETUP.INI' USER_PERSISTENT_DIRECTORIES=' DATA GFX SAVE WORLDS' DOSBOX_DISK_IMAGE_PATH='SETTLERS2.INS' APP_MAIN_EXE='S2.EXE' APP_MAIN_ICON='APP/GOGGAME-1207658786.ICO' ## Play the intro movie before starting the game. APP_MAIN_DOSBOX_PRERUN=' @VIDEO\SMACKPLY VIDEO\INTRO.SMK' APP_EDITOR_ID="${GAME_ID}-editor" APP_EDITOR_EXE='S2EDIT.EXE' APP_EDITOR_NAME="$GAME_NAME - Editor" APP_EDITOR_ICON="$APP_MAIN_ICON" APP_SETUP_ID="${GAME_ID}-setup" APP_SETUP_EXE='SETUP.EXE' APP_SETUP_NAME="$GAME_NAME - Setup" APP_SETUP_CAT='Settings' APP_SETUP_ICON="$APP_MAIN_ICON" PACKAGES_LIST=' PKG_COMMON PKG_MAIN' PKG_COMMON_ID="${GAME_ID}-common" PKG_COMMON_DESCRIPTION='common data' PKG_MAIN_ID="$GAME_ID" PKG_MAIN_ID_DE="${GAME_ID}-de" PKG_MAIN_ID_EN="${GAME_ID}-en" PKG_MAIN_ID_FR="${GAME_ID}-fr" PKG_MAIN_PROVIDES=" $PKG_MAIN_ID" PKG_MAIN_DESCRIPTION_DE='German version' PKG_MAIN_DESCRIPTION_EN='English version' PKG_MAIN_DESCRIPTION_FR='French version' PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_COMMON' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Convert all file paths to uppercase. toupper . ## Enforce consistent name for the disk image table of content. if [ -e 'SETTLERS2.INST' ]; then mv 'SETTLERS2.INST' "$(dosbox_disk_image_path)" fi ## Ensure case consistency in disk image table of contents. sed_pattern='settlers2.gog' sed_replacement='SETTLERS2.GOG' sed_expression="s/${sed_pattern}/${sed_replacement}/i" sed --in-place --expression="$sed_expression" "$(dosbox_disk_image_path)" ## Enforce icon name and path. for icon_path in \ 'GOGGAME-1207658786.ICO' \ 'GFW_HIGH.ICO' do if [ -e "$icon_path" ]; then mkdir --parents 'APP' mv "$icon_path" "$(icon_path 'APP_MAIN_ICON')" fi done ) # Include game data content_inclusion_icons 'PKG_COMMON' content_inclusion_default # Write launchers launchers_generation 'PKG_MAIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-the-witcher-1.sh0000750000000000000000000001403014471751340014532 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2015 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2019 BetaRays set -o errexit ### # The Witcher # send your bug reports to vv221@dotslashplay.it ### script_version=20250802.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='the-witcher-1' GAME_NAME='The Witcher' ## FIXME: This archive and the previous one could be merged, ## if ARCHIVE_xxx_MD5 had support for multiple values. ## (./play.it 2.33.0) ARCHIVE_BASE_2_NAME='setup_the_witcher_enhanced_edition_directors_cut_1.5_(cs)_gog_0.2_(77554).exe' ARCHIVE_BASE_2_MD5='97cffb60d12f41bf03c84165a79a9157' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_PART1_NAME='setup_the_witcher_enhanced_edition_directors_cut_1.5_(cs)_gog_0.2_(77554)-1.bin' ARCHIVE_BASE_2_PART1_MD5='12107f584732052c4e11e09657df655a' ARCHIVE_BASE_2_PART2_NAME='setup_the_witcher_enhanced_edition_directors_cut_1.5_(cs)_gog_0.2_(77554)-2.bin' ARCHIVE_BASE_2_PART2_MD5='ee77b189cf42bde0e89ea86c071b830e' ARCHIVE_BASE_2_PART3_NAME='setup_the_witcher_enhanced_edition_directors_cut_1.5_(cs)_gog_0.2_(77554)-3.bin' ARCHIVE_BASE_2_PART3_MD5='b5fd3359b7129903a13baf731496f0c7' ARCHIVE_BASE_2_SIZE='14785291' ARCHIVE_BASE_2_VERSION='1.5.726-gog77554' ARCHIVE_BASE_2_URL='https://www.gog.com/game/the_witcher' ARCHIVE_BASE_1_NAME='setup_the_witcher_enhanced_edition_directors_cut_1.5_(cs)_gog_0.2_(77554).exe' ARCHIVE_BASE_1_MD5='3d8467c76abe8cd16711ada268e1600f' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_the_witcher_enhanced_edition_directors_cut_1.5_(cs)_gog_0.2_(77554)-1.bin' ARCHIVE_BASE_1_PART1_MD5='149adafe38e79c246103e664613558c7' ARCHIVE_BASE_1_PART2_NAME='setup_the_witcher_enhanced_edition_directors_cut_1.5_(cs)_gog_0.2_(77554)-2.bin' ARCHIVE_BASE_1_PART2_MD5='baa94a6d83dc3a4703d8c414b4442ce5' ARCHIVE_BASE_1_PART3_NAME='setup_the_witcher_enhanced_edition_directors_cut_1.5_(cs)_gog_0.2_(77554)-3.bin' ARCHIVE_BASE_1_PART3_MD5='5b74090cd3314dd0db1849c0dce5aa84' ARCHIVE_BASE_1_SIZE='14781823' ARCHIVE_BASE_1_VERSION='1.5.726-gog77554' ARCHIVE_BASE_1_URL='https://www.gog.com/game/the_witcher' ARCHIVE_BASE_0_NAME='setup_the_witcher_enhanced_edition_1.5_(a)_(10712).exe' ARCHIVE_BASE_0_MD5='2440cfb5fb4890ff4b9bc4b88b434d38' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_the_witcher_enhanced_edition_1.5_(a)_(10712)-1.bin' ARCHIVE_BASE_0_PART1_MD5='e530a1a2e86094740b45a14f63260804' ARCHIVE_BASE_0_PART2_NAME='setup_the_witcher_enhanced_edition_1.5_(a)_(10712)-2.bin' ARCHIVE_BASE_0_PART2_MD5='fb3a478bcb6e4702e1e8d392cb55391d' ARCHIVE_BASE_0_PART3_NAME='setup_the_witcher_enhanced_edition_1.5_(a)_(10712)-3.bin' ARCHIVE_BASE_0_PART3_MD5='2df8369af401815a736f5d88f85fbf8d' ARCHIVE_BASE_0_SIZE='15000000' ARCHIVE_BASE_0_VERSION='1.5.726-gog10712' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_witcher' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_BIN_FILES=' installed launcher register system thewitchergdf.dll' CONTENT_GAME_VOICES_FILES=' data/voices_*.bif' CONTENT_GAME_DATA_FILES=' data' CONTENT_DOC_DATA_FILES=' manual.pdf readme.rtf release.txt' CONTENT_ADDONS_RELATIVE_PATH='__support/add/the witcher' CONTENT_ADDONS_FILES=' *.adv' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/The Witcher' WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\CD Projekt RED\Witcher\Bindings HKEY_CURRENT_USER\Software\CD Projekt RED\Witcher\Settings' ## Silence a ShellCheck false positive ## SC1003 (info): Want to escape a single quote? echo 'This is how it'\''s done'. # shellcheck disable=SC1003 WINE_REGISTRY_INIT=' [HKEY_LOCAL_MACHINE\Software\CD Projekt Red\The Witcher] "InstallFolder"="C:\\'"${GAME_ID}"'\\" "IsDjinniInstalled"=dword:00000001 "Language"="3" "RegionVersion"="WE"' ## Work around texture display problems. ## cf. https://bugs.winehq.org/show_bug.cgi?id=46553 ## (WINE 10.0) WINE_WINETRICKS_VERBS='d3dx9_35' ## Prevent the mouse from leaving the game window, ## to avoid problems with camera control. ## (WINE 10.0) WINE_WINETRICKS_VERBS="${WINE_WINETRICKS_VERBS:-} grabfullscreen=y" ## Without a virtual desktop, the game loses input on loss of focus. ## In addition, the game window turns into a black screen. ## (WINE 10.0) WINE_VIRTUAL_DESKTOP='auto' APP_MAIN_EXE='system/witcher.exe' ## Include "Enhanced Edition" add-ons. APP_MAIN_PRERUN=' # Include "Enhanced Edition" add-ons. addons_destination="${WINEPREFIX}/drive_c/users/Public/Documents/The Witcher" if [ ! -e "${addons_destination}/podstepy.adv" ] && [ -e "${PATH_GAME_DATA}/addons" ] then install -D --mode=644 \ --target-directory="$addons_destination" \ "${PATH_GAME_DATA}/addons"/*.adv fi ' PACKAGES_LIST=' PKG_BIN PKG_VOICES PKG_DATA PKG_ADDONS' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_VOICES_ID="${GAME_ID}-voices" PKG_VOICES_DESCRIPTION='voices' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_VOICES' PKG_ADDONS_ID="${GAME_ID}-addons" PKG_ADDONS_DESCRIPTION='Enhanced Edition add-ons' PKG_ADDONS_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' ## Include "Enhanced Edition" add-ons. content_inclusion 'ADDONS' 'PKG_ADDONS' "$(path_game_data)/addons" content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-titan-quest-expansions.sh0000750000000000000000000000570214471751340016622 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Titan Quest expansions: # - Ragnarök # - Atlantis # send your bug reports to vv221@dotslashplay.it ### script_version=20241229.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='titan-quest' GAME_NAME='Titan Quest' EXPANSION_ID_RAGNAROK='ragnarok' EXPANSION_NAME_RAGNAROK='Ragnarök' EXPANSION_ID_ATLANTIS='atlantis' EXPANSION_NAME_ATLANTIS='Atlantis' # Archives ## Ragnarök ARCHIVE_BASE_RAGNAROK_0_NAME='setup_titan_quest_ragnarok_2.10.6_(59562).exe' ARCHIVE_BASE_RAGNAROK_0_MD5='cb8f5a3f5567d9f84ad3add23347ad07' ARCHIVE_BASE_RAGNAROK_0_TYPE='innosetup' ARCHIVE_BASE_RAGNAROK_0_PART1_NAME='setup_titan_quest_ragnarok_2.10.6_(59562)-1.bin' ARCHIVE_BASE_RAGNAROK_0_PART1_MD5='e4a5d3bb1264c1a3881e2263cd3d6af3' ARCHIVE_BASE_RAGNAROK_0_SIZE='2553284' ARCHIVE_BASE_RAGNAROK_0_VERSION='2.10.6-gog59562' ARCHIVE_BASE_RAGNAROK_0_URL='https://www.gog.com/game/titan_quest_ragnarok' ## Atlantis ARCHIVE_BASE_ATLANTIS_0_NAME='setup_titan_quest_atlantis_2.10.6_(59562).exe' ARCHIVE_BASE_ATLANTIS_0_MD5='6924de3dc1dd15eec6f1e4e6d465f33c' ARCHIVE_BASE_ATLANTIS_0_TYPE='innosetup' ARCHIVE_BASE_ATLANTIS_0_PART1_NAME='setup_titan_quest_atlantis_2.10.6_(59562)-1.bin' ARCHIVE_BASE_ATLANTIS_0_PART1_MD5='2ad964c3cf35c13a0e05b7680b62d718' ARCHIVE_BASE_ATLANTIS_0_SIZE='2265041' ARCHIVE_BASE_ATLANTIS_0_VERSION='2.10.6-gog59562' ARCHIVE_BASE_ATLANTIS_0_URL='https://www.gog.com/game/titan_quest_atlantis' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES_RAGNAROK=' resources/quests.arc resources/xpack2/dialog.arc resources/xpack2/dialog_de.arc resources/xpack2/dialog_fr.arc resources/xpack2/dialog_ru.arc resources/xpack2/menu.arc resources/xpack2/quests.arc' CONTENT_GAME_MAIN_FILES_ATLANTIS=' resources/xpack3/dialog.arc resources/xpack3/dialog_de.arc resources/xpack3/dialog_fr.arc resources/xpack3/dialog_ru.arc resources/xpack3/menu.arc resources/xpack3/quests.arc resources/xpack3/system.arc' PKG_PARENT_ID="$GAME_ID" PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_PARENT' PKG_MAIN_PROVIDES_RAGNAROK=" ${GAME_ID}-data-xpack2" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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-titan-quest.sh0000750000000000000000000000772714471751340014446 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Titan Quest # send your bug reports to vv221@dotslashplay.it ### script_version=20241229.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='titan-quest' GAME_NAME='Titan Quest' ARCHIVE_BASE_0_NAME='setup_titan_quest_-_anniversary_edition_2.10.6_(59562).exe' ARCHIVE_BASE_0_MD5='a8b9399e2f968ca819c7138ff2ce5ab1' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_titan_quest_-_anniversary_edition_2.10.6_(59562)-1.bin' ARCHIVE_BASE_0_PART1_MD5='7164d6f1cf600aaa17101b4a263d4a70' ARCHIVE_BASE_0_PART2_NAME='setup_titan_quest_-_anniversary_edition_2.10.6_(59562)-2.bin' ARCHIVE_BASE_0_PART2_MD5='b8b5821c04bfed43068e02b5a1431511' ARCHIVE_BASE_0_PART3_NAME='setup_titan_quest_-_anniversary_edition_2.10.6_(59562)-3.bin' ARCHIVE_BASE_0_PART3_MD5='bb6bcb03b2ef688ef57d46d12d4b1233' ARCHIVE_BASE_0_PART4_NAME='setup_titan_quest_-_anniversary_edition_2.10.6_(59562)-4.bin' ARCHIVE_BASE_0_PART4_MD5='2a61ebe44e9424cdbad29f14e072c743' ARCHIVE_BASE_0_SIZE='13753628' ARCHIVE_BASE_0_VERSION='2.10.21415-gog59562' ARCHIVE_BASE_0_URL='https://www.gog.com/game/titan_quest_anniversary_edition' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' milesredist settings binkw32.dll concrt140.dll devil.dll direct3d11.dll direct3d.dll engine.dll game.dll gfsdk_ssao_d3d11.win32.dll libcurl.dll libeay32.dll libfbxsdk.dll memorymgr.dll mss32.dll msvcp140.dll msvcp71.dll msvcr71.dll natlib.dll pathengine.dll sourcecontrol.dll ssleay32.dll thqgdscore.dll thqno_api.dll vcruntime140.dll widget.dll zlib1.dll maxplugins.dlo aifeditor.exe animationcompiler.exe archivetool.exe artmanager.exe bitmapcreator.exe editor.exe fbxexporter.exe fontcompiler.exe mapcompiler.exe modelcompiler.exe pseditor.exe questeditor.exe resourcetree.exe shadercompiler.exe sourceserver.exe texturecompiler.exe tq.exe viewer.exe' ## The game crashes on launch if some store-specific libraries are missing: ## ## [2024-06-06-23:20:08][ERROR]: LoadPlugin: Unable to load plugin 'gog' from THQNOnline\gog\ ## [2024-06-06-23:20:08][ERROR]: LoadPlugin: Unable to load plugin 'gog' from THQNOnline\gog\ CONTENT_GAME0_BIN_FILES=' thqnonline/gog' CONTENT_GAME_DATA_XPACK2_FILES=' resources/quests.arc' CONTENT_GAME_DATA_RESOURCES_FILES=' resources' CONTENT_GAME_DATA_FILES=' audio database text toolset videos thqnocfg.dat' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/My Games/Titan Quest - Immortal Throne' APP_MAIN_EXE='tq.exe' APP_MAIN_OPTIONS='/dx11' PACKAGES_LIST=' PKG_BIN PKG_DATA_XPACK2 PKG_DATA_RESOURCES PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_DATA_XPACK2 PKG_DATA_RESOURCES' PKG_DATA_XPACK2_ID="${PKG_DATA_ID}-xpack2" PKG_DATA_XPACK2_DESCRIPTION='resources shared between the base game and the Raganarök expansion' PKG_DATA_RESOURCES_ID="${PKG_DATA_ID}-resources" PKG_DATA_RESOURCES_DESCRIPTION="$PKG_DATA_DESCRIPTION - resources" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run 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-tomb-raider-2.sh0000750000000000000000000000607414471751340014526 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Tomb Raider 2 # send your bug reports to vv221@dotslashplay.it ### script_version=20241125.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='tomb-raider-2' GAME_NAME='Tomb Raider Ⅱ' ARCHIVE_BASE_EN_0_NAME='setup_tomb_raider_2_20180108_(17720).exe' ARCHIVE_BASE_EN_0_MD5='858aa88bf7654a8fb7b7f8070cf1021b' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_VERSION='1.1-gog17720' ARCHIVE_BASE_EN_0_SIZE='340000' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/tomb_raider_123' ARCHIVE_BASE_FR_0_NAME='setup_tomb_raider_2_french_20180108_(17720).exe' ARCHIVE_BASE_FR_0_MD5='12ebe01ec7b4366862af31b860097f14' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_VERSION='1.1-gog17720' ARCHIVE_BASE_FR_0_SIZE='410000' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/tomb_raider_123' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' dec130.dll edec.dll libogg-0.dll libvorbis-0.dll libvorbisfile-3.dll msvcp90.dll msvcr90.dll sound.dll winplay.dll winsdec.dll winstr.dll data/dsetup16.dll data/dsetup32.dll data/dsetup.dll data/_setup.dll tomb2.exe' CONTENT_GAME_L10N_FILES=' audio data/*.dat data/*.pcx' CONTENT_GAME_DATA_FILES=' fmv music tombpc.dat data/*.sfx data/*.tr2' CONTENT_DOC_L10N_FILES=' manual.pdf readme.txt' CONTENT_DOC0_L10N_FILES_EN=' tomb raider ii_pc eula english.docx' CONTENT_DOC0_L10N_FILES_FR=' tomb raider ii_pc eula french.doc' USER_PERSISTENT_FILES=' savegame.*' APP_MAIN_EXE='tomb2.exe' APP_SETUP_ID="${GAME_ID}-setup" APP_SETUP_NAME="$GAME_NAME - setup" APP_SETUP_CAT='Settings' APP_SETUP_EXE='tomb2.exe' APP_SETUP_OPTIONS='-setup' PACKAGES_LIST=' PKG_BIN PKG_L10N 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' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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-tomb-raider-remastered.sh0000750000000000000000000000514414471751340016515 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # Tomb Raider Remastered: # - Tomb Raider # - Tomb Raider 2 # - Tomb Raider 3 # send your bug reports to vv221@dotslashplay.it ### script_version=20241228.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='tomb-raider-remastered-1-2-3' GAME_NAME='Tomb Raider I-III Remastered' ARCHIVE_BASE_0_NAME='setup_tomb_raider_i-iii_remastered_1.01_patch_4_(77558).exe' ARCHIVE_BASE_0_MD5='9172c7570c8c0dfd47c3925aaecf360d' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_tomb_raider_i-iii_remastered_1.01_patch_4_(77558)-1.bin' ARCHIVE_BASE_0_PART1_MD5='dbcec0aba1dd597efe96bace51e79140' ARCHIVE_BASE_0_SIZE='6109084' ARCHIVE_BASE_0_VERSION='1.01-gog77558' ARCHIVE_BASE_0_URL='https://www.gog.com/game/tomb_raider_i_to_iii_remastered' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' tomb123.exe 1/tomb1.dll 2/tomb2.dll 3/tomb3.dll' CONTENT_GAME_DATA_1_FILES=' 1' CONTENT_GAME_DATA_2_FILES=' 2' CONTENT_GAME_DATA_3_FILES=' 3' WINE_PERSISTENT_DIRECTORIES=' users/$[USER}/AppData/Roaming/TRX' APP_MAIN_EXE='tomb123.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA_1 PKG_DATA_2 PKG_DATA_3 PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_1_ID="${PKG_DATA_ID}-episode-1" PKG_DATA_2_ID="${PKG_DATA_ID}-episode-2" PKG_DATA_3_ID="${PKG_DATA_ID}-episode-3" PKG_DATA_DESCRIPTION='data' PKG_DATA_1_DESCRIPTION="$PKG_DATA_DESCRIPTION - Episode 1" PKG_DATA_2_DESCRIPTION="$PKG_DATA_DESCRIPTION - Episode 2" PKG_DATA_3_DESCRIPTION="$PKG_DATA_DESCRIPTION - Episode 3" PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_DATA_1 PKG_DATA_2 PKG_DATA_3' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-tonight-we-riot.sh0000750000000000000000000000526414471751340015222 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Tonight We Riot # send your bug reports to vv221@dotslashplay.it ### script_version=20241124.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='tonight-we-riot' GAME_NAME='Tonight We Riot' ARCHIVE_BASE_ITCH_0_NAME='TonightWeRiot_Linux.zip' ARCHIVE_BASE_ITCH_0_MD5='293a595ea44b5e80a0ca0eeb7b5a925a' ARCHIVE_BASE_ITCH_0_SIZE='690000' ARCHIVE_BASE_ITCH_0_VERSION='1.0-itch.2020.06.08' ARCHIVE_BASE_ITCH_0_URL='https://meansinteractive.itch.io/tonight-we-riot' ARCHIVE_BASE_GOG_2_NAME='tonight_we_riot_linuxrelease_c_38381.sh' ARCHIVE_BASE_GOG_2_MD5='7afc74aefbccaa58627d934e63c16247' ARCHIVE_BASE_GOG_2_SIZE='690000' ARCHIVE_BASE_GOG_2_VERSION='1.0.c-gog38381' ARCHIVE_BASE_GOG_2_URL='https://www.gog.com/game/tonight_we_riot' ARCHIVE_BASE_GOG_1_NAME='tonight_we_riot_linuxrelease_b_38278.sh' ARCHIVE_BASE_GOG_1_MD5='7ca6aedccb70bcd027b9e79d5cfb8585' ARCHIVE_BASE_GOG_1_SIZE='690000' ARCHIVE_BASE_GOG_1_VERSION='1.0.b-gog38278' ARCHIVE_BASE_GOG_0_NAME='tonight_we_riot_linuxrelease_a_38076.sh' ARCHIVE_BASE_GOG_0_MD5='38b03db54a7d80895d2abe0d9f153ae7' ARCHIVE_BASE_GOG_0_SIZE='690000' ARCHIVE_BASE_GOG_0_VERSION='1.0.a-gog38076' UNITY3D_NAME='TonightWeRiot_Linux' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT_ITCH='TonightWeRiot_Linux' CONTENT_PATH_DEFAULT_GOG='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 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-torchlight-1.sh0000750000000000000000000000507714471751340014471 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2015 Antoine Le Gonidec set -o errexit ### # Torchlight # send your bug reports to vv221@dotslashplay.it ### script_version=20241229.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='torchlight-1' GAME_NAME='Torchlight' ARCHIVE_BASE_1_NAME='setup_torchlight_1.15(a)_(23675).exe' ARCHIVE_BASE_1_MD5='a29e51f55aae740f4046d227d33fa64b' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='453318' ARCHIVE_BASE_1_VERSION='1.15-gog23675' ARCHIVE_BASE_1_URL='https://www.gog.com/game/torchlight' ARCHIVE_BASE_0_NAME='setup_torchlight_2.0.0.12.exe' ARCHIVE_BASE_0_MD5='4b721e1b3da90f170d66f42e60a3fece' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='460000' ARCHIVE_BASE_0_VERSION='1.15-gog2.0.0.12' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_BIN_FILES=' plugins.cfg resources.cfg ceguibase.dll ceguiexpatparser.dll ceguifalagardwrbase.dll cg.dll d3dx9_39.dll fmodex.dll msvcp90.dll msvcr90.dll ogreguirenderer.dll ogremain.dll ois.dll particleuniverse.dll plugin_cgprogrammanager.dll plugin_octreescenemanager.dll plugin_particlefx.dll referenceapplayer.dll rendersystem_direct3d9.dll rendersystem_gl.dll torchlight.exe' CONTENT_GAME_DATA_FILES=' icons music programs logo.bmp runicgames.ico torchlight.ico buildver.txt pak.zip' CONTENT_DOC_DATA_FILES=' *.pdf' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/runic games/torchlight' APP_MAIN_EXE='torchlight.exe' APP_MAIN_ICON='torchlight.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-torchlight-2.sh0000750000000000000000000000736014471751340014467 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2015 Antoine Le Gonidec set -o errexit ### # Torchlight 2 # send your bug reports to vv221@dotslashplay.it ### script_version=20250429.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='torchlight-2' GAME_NAME='Torchlight Ⅱ' ARCHIVE_BASE_GOG_0_NAME='gog_torchlight_2_2.0.0.2.sh' ARCHIVE_BASE_GOG_0_MD5='e107f6d4c6d4cecea37ade420a8d4892' ARCHIVE_BASE_GOG_0_SIZE='1673501' ARCHIVE_BASE_GOG_0_VERSION='1.25.9.7-gog2.0.0.2' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/torchlight_ii' ARCHIVE_BASE_HUMBLE_0_NAME='Torchlight2-linux-2015-04-01.sh' ARCHIVE_BASE_HUMBLE_0_MD5='730a5d08c8f1cd4a65afbc0ca631d85c' ARCHIVE_BASE_HUMBLE_0_SIZE='1672909' ARCHIVE_BASE_HUMBLE_0_VERSION='1.25.2.4-humble150402' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/torchlight-ii' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='data' CONTENT_LIBS_BIN_FILES=' libCEGUIBase.so.1 libCEGUIExpatParser.so libCEGUIFalagardWRBase.so libCEGUIFreeImageImageCodec.so libfmodex.so libOgreMain.so.1 Plugin_OctreeSceneManager.so RenderSystem_GL.so' CONTENT_LIBS_BIN64_RELATIVE_PATH_GOG='lib64' CONTENT_LIBS_BIN64_RELATIVE_PATH_HUMBLE='x86_64/lib64' CONTENT_LIBS_BIN64_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_LIBS_BIN32_RELATIVE_PATH_GOG='lib' CONTENT_LIBS_BIN32_RELATIVE_PATH_HUMBLE='x86/lib' CONTENT_LIBS_BIN32_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_GAME_BIN64_RELATIVE_PATH_HUMBLE='x86_64' CONTENT_GAME_BIN64_FILES=' Torchlight2.bin.x86_64 ModLauncher.bin.x86_64' CONTENT_GAME_BIN32_RELATIVE_PATH_HUMBLE='x86' CONTENT_GAME_BIN32_FILES=' Torchlight2.bin.x86 ModLauncher.bin.x86' CONTENT_GAME_DATA_RELATIVE_PATH_HUMBLE='noarch' CONTENT_GAME_DATA_FILES=' icons movies music PAKS porting programs *.bmp *.cfg *.png' CONTENT_DOC_DATA_RELATIVE_PATH_HUMBLE='noarch' CONTENT_DOC_DATA_FILES=' licenses' APP_MAIN_EXE_BIN64='Torchlight2.bin.x86_64' APP_MAIN_EXE_BIN32='Torchlight2.bin.x86' APP_MAIN_ICON='Delvers.png' APP_MAIN_ICON_HUMBLE='noarch/Delvers.png' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libexpat.so.1 libfontconfig.so.1 libfreeimage.so.3 libfreetype.so.6 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libICE.so.6 libm.so.6 libpthread.so.0 libSDL2-2.0.so.0 libSM.so.6 libstdc++.so.6 libuuid.so.1 libX11.so.6 libXext.so.6 libXft.so.2 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path 'GAME_BIN32')" ## Add required execution bit on extra binaries. chmod 755 'ModLauncher.bin.x86' ) ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path 'GAME_BIN64')" ## Add required execution bit on extra binaries. chmod 755 'ModLauncher.bin.x86_64' ) # 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-torment-tides-of-numenera.sh0000750000000000000000000001116214471751340017164 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Torment: Tides of Numenera # send your bug reports to vv221@dotslashplay.it ### script_version=20250724.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='torment-tides-of-numenera' GAME_NAME='Torment: Tides of Numenera' ARCHIVE_BASE_0_NAME='gog_torment_tides_of_numenera_2.3.0.4.sh' ARCHIVE_BASE_0_MD5='839337b42a1618f3b445f363eca210d3' ARCHIVE_BASE_0_SIZE='9300000' ARCHIVE_BASE_0_VERSION='1.1.0-gog2.3.0.4' ARCHIVE_BASE_0_URL='https://www.gog.com/game/torment_tides_of_numenera' UNITY3D_NAME='TidesOfNumenera' UNITY3D_PLUGINS=' libAkFlanger.so libAkGuitarDistortion.so libAkHarmonizer.so libAkPitchShifter.so libAkSoundEngine.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_DATA_AUDIO_FILES=" ${UNITY3D_NAME}_Data/StreamingAssets/Audio" CONTENT_GAME_DATA_RESOURCES_FILES=" ${UNITY3D_NAME}_Data/resources.assets ${UNITY3D_NAME}_Data/resources.assets.resS" PACKAGES_LIST=' PKG_BIN PKG_DATA_AUDIO PKG_DATA_RESOURCES PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_DATA_AUDIO PKG_DATA_RESOURCES' PKG_DATA_AUDIO_ID="${PKG_DATA_ID}-audio" PKG_DATA_AUDIO_DESCRIPTION="$PKG_DATA_DESCRIPTION - audio" ## Ensure smooth upgrades from packages generated with pre-20231020.1 game scripts. PKG_DATA_AUDIO_PROVIDES="${PKG_DATA_AUDIO_PROVIDES:-} torment-tides-of-numenera-audio" PKG_DATA_RESOURCES_ID="${PKG_DATA_ID}-resources" PKG_DATA_RESOURCES_DESCRIPTION="$PKG_DATA_DESCRIPTION - resources" ## Ensure smooth upgrades from packages generated with pre-20231020.1 game scripts. PKG_DATA_RESOURCES_PROVIDES="${PKG_DATA_RESOURCES_PROVIDES:-} torment-tides-of-numenera-resources" # Include a workaround for the quest-breaking Anechoic Lazaret bugs # cf. https://steamcommunity.com/app/272270/discussions/1/1473096694453357831/?ctp=15#c1708438376918556245 REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} sed unix2dos" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Include a workaround for the quest-breaking Anechoic Lazaret bugs ## cf. https://steamcommunity.com/app/272270/discussions/1/1473096694453357831/?ctp=15#c1708438376918556245 conversation_file="$(unity3d_name)_Data/StreamingAssets/data/conversations/a_sagus/a2623_damaged_peerless_drone.conversation" sed_pattern=' ' sed_replacement=' \n' sed_replacement="$sed_replacement"' \n' sed_replacement="$sed_replacement"' \n' sed_replacement="$sed_replacement"' false\n' sed_replacement="$sed_replacement"' Void SetGlobalValue(String, Int32)\n' sed_replacement="$sed_replacement"' \n' sed_replacement="$sed_replacement"' Quest_AnechoicLazaret_DefeatedDrones\n' sed_replacement="$sed_replacement"' 1\n' sed_replacement="$sed_replacement"' \n' sed_replacement="$sed_replacement"' \n' sed_replacement="$sed_replacement"' \n' sed_replacement="$sed_replacement"' ' sed_expression="1010s#${sed_pattern}#${sed_replacement}#" sed --in-place --expression="$sed_expression" "$conversation_file" unix2dos --quiet "$conversation_file" ) # 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-total-overdose.sh0000750000000000000000000000375114471751340015130 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Total Overdose # send your bug reports to vv221@dotslashplay.it ### script_version=20241125.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='total-overdose' GAME_NAME='Total Overdose' ARCHIVE_BASE_0_NAME='setup_total_overdose_1.00_(18925).exe' ARCHIVE_BASE_0_MD5='df9f6750e5f12fd83ee775365dfd9637' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1700000' ARCHIVE_BASE_0_VERSION='1.00-gog18925' ARCHIVE_BASE_0_URL='https://www.gog.com/game/total_overdose_a_gunslingers_tale_in_mexico' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' tod.exe *.dll' CONTENT_GAME_DATA_FILES=' *.dpc *.naz' CONTENT_DOC_DATA_FILES=' *.doc *.docx *.pdf' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/Total Overdose' APP_MAIN_EXE='tod.exe' APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=101' 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-trailblazers.sh0000750000000000000000000000373014471751340014654 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Trailblazers # send your bug reports to vv221@dotslashplay.it ### script_version=20250103.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='trailblazers' GAME_NAME='Trailblazers' ARCHIVE_BASE_0_NAME='Trailblazers_Linux_DRMFreeRelease_6157.zip' ARCHIVE_BASE_0_MD5='822d2532036da1b5ffa5c7821a7cbcc6' ARCHIVE_BASE_0_SIZE='1121434' ARCHIVE_BASE_0_VERSION='6157-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/trailblazers' UNITY3D_NAME='Trailblazers' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='Trailblazers_LinuxGenericRelease_6157' 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-transistor.sh0000750000000000000000000000746114471751340014373 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2015 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2017 Mopi set -o errexit ### # Transistor # send your bug reports to vv221@dotslashplay.it ### script_version=20250721.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='transistor' GAME_NAME='Transistor' ARCHIVE_BASE_2_NAME='transistor_1_50440_8123_23365.sh' ARCHIVE_BASE_2_MD5='dc89c175267dc1a1f3434a9d4f903cce' ARCHIVE_BASE_2_SIZE='3580037' ARCHIVE_BASE_2_VERSION='1.50440.8123-gog23365' ARCHIVE_BASE_2_URL='https://www.gog.com/game/transistor' ARCHIVE_BASE_1_NAME='transistor_en_v1_50423_21516.sh' ARCHIVE_BASE_1_MD5='52d0df1d959b333b17ede106f8e53062' ARCHIVE_BASE_1_SIZE='3600000' ARCHIVE_BASE_1_VERSION='1.50423-gog21516' ARCHIVE_BASE_0_NAME='gog_transistor_2.0.0.3.sh' ARCHIVE_BASE_0_MD5='53dbaf643471f3b8494548261584dd13' ARCHIVE_BASE_0_SIZE='3200000' ARCHIVE_BASE_0_VERSION='1.20140310-gog2.0.0.3' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_FILES=' libBink.so libFModPlugins.so libfmod.so.4 libfmodstudio.so.4 liblua52.so' CONTENT_LIBS_LIBS64_RELATIVE_PATH='lib64' CONTENT_LIBS_LIBS64_FILES="$CONTENT_LIBS_FILES" CONTENT_LIBS_LIBS32_RELATIVE_PATH='lib' CONTENT_LIBS_LIBS32_FILES="$CONTENT_LIBS_FILES" CONTENT_GAME_MAIN_FILES=' Content monoconfig monomachineconfig Transistor.exe Transistor.exe.config Engine.dll Engine.dll.config Engine.SDL2.dll Engine.SDL2.dll.config HostessProtocol.dll KeraLua.dll MonoGame.Framework.SDL2.dll NLua.dll SDL2-CS.dll SDL2-CS.dll.config Newtonsoft.Json.dll Newtonsoft.Json.pdb Newtonsoft.Json.xml *.bmp *.cfg *.pdb *.xml *.txt' CONTENT_DOC_MAIN_FILES=' Linux.README' APP_MAIN_EXE='Transistor.exe' APP_MAIN_ICON='Transistor.bmp' ## If the Content/Movies/*.bik files are symbolic links, the game crashes when trying to load them. APP_MAIN_PRERUN=' # Prevent a crash due to the inability of libBink.so to properly handle symbolic links. if [ -d Content/Movies ]; then rm --recursive Content/Movies ln --symbolic "${PATH_GAME_DATA}/Content/Movies" Content/Movies fi ' PACKAGES_LIST=' PKG_MAIN PKG_LIBS64 PKG_LIBS32' PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_LIBS' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libGL.so.1 libSDL2-2.0.so.0' PKG_MAIN_DEPENDENCIES_MONO_LIBRARIES=' mscorlib.dll Mono.Posix.dll Mono.Security.dll System.dll System.Configuration.dll System.Core.dll System.Data.dll System.Design.dll System.Drawing.dll System.Management.dll System.Numerics.dll System.Runtime.Serialization.dll System.Security.dll System.Transactions.dll System.Xml.dll System.Xml.Linq.dll' PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS64_ARCH='64' PKG_LIBS32_ARCH='32' PKG_LIBS_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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_MAIN' content_inclusion_default # Write launchers ## This game expects an executable stack through dynamically loaded libraries. game_exec_line() { cat <<- 'EOF' GLIBC_TUNABLES=glibc.rtld.execstack=2 mono Transistor.exe "$@" EOF } launchers_generation 'PKG_MAIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-tropico.sh0000750000000000000000000001350214471751340013633 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2015 Antoine Le Gonidec set -o errexit ### # Tropico games: # - Tropico 1 # - Tropico 2 # send your bug reports to vv221@dotslashplay.it ### script_version=20241103.3 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID_TROPICO1='tropico-1' GAME_NAME_TROPICO1='Tropico' GAME_ID_TROPICO2='tropico-2' GAME_NAME_TROPICO2='Tropico 2: Pirate Cove' # Archives ## Tropico 1 ARCHIVE_BASE_TROPICO1_EN_0_NAME='setup_tropico_2.1.0.14.exe' ARCHIVE_BASE_TROPICO1_EN_0_MD5='1bd761bc4a40a42a9caeb41c70d46465' ARCHIVE_BASE_TROPICO1_EN_0_TYPE='innosetup' ARCHIVE_BASE_TROPICO1_EN_0_SIZE='1400000' ARCHIVE_BASE_TROPICO1_EN_0_VERSION='1.5.3-gog2.1.0.14' ARCHIVE_BASE_TROPICO1_EN_0_URL='https://www.gog.com/game/tropico_reloaded' ARCHIVE_BASE_TROPICO1_FR_0_NAME='setup_tropico_french_2.1.0.14.exe' ARCHIVE_BASE_TROPICO1_FR_0_MD5='aad4ea5a6fe2b2c2f347cfa7aae058b3' ARCHIVE_BASE_TROPICO1_FR_0_TYPE='innosetup' ARCHIVE_BASE_TROPICO1_FR_0_SIZE='1400000' ARCHIVE_BASE_TROPICO1_FR_0_VERSION='1.5.3-gog2.1.0.14' ARCHIVE_BASE_TROPICO1_FR_0_URL='https://www.gog.com/game/tropico_reloaded' ## Tropico 2 ARCHIVE_BASE_TROPICO2_EN_0_NAME='setup_tropico2_2.1.0.14.exe' ARCHIVE_BASE_TROPICO2_EN_0_MD5='59a41778988f4b0a45d144f29187ffd8' ARCHIVE_BASE_TROPICO2_EN_0_TYPE='innosetup' ARCHIVE_BASE_TROPICO2_EN_0_SIZE='1900000' ARCHIVE_BASE_TROPICO2_EN_0_VERSION='1.20-gog2.1.0.14' ARCHIVE_BASE_TROPICO2_EN_0_URL='https://www.gog.com/game/tropico_reloaded' ARCHIVE_BASE_TROPICO2_FR_0_NAME='setup_tropico2_french_2.1.0.14.exe' ARCHIVE_BASE_TROPICO2_FR_0_MD5='e9cb36d88a03fd65b7152c815f05a7cc' ARCHIVE_BASE_TROPICO2_FR_0_TYPE='innosetup' ARCHIVE_BASE_TROPICO2_FR_0_SIZE='1900000' ARCHIVE_BASE_TROPICO2_FR_0_VERSION='1.20-gog2.1.0.14' ARCHIVE_BASE_TROPICO2_FR_0_URL='https://www.gog.com/game/tropico_reloaded' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' *.asi *.dll *.exe *.ini' CONTENT_GAME_L10N_FILES=' maps data/soun.{} data/text.{} data2/*.cfg data2/*.lng data2/*.txt data2/x1.dap data2/x2.dap movies/*.txt movies/campaigntoexit.bik movies/desktooutside.bik movies/s_f2o.bik movies/s_m2o.bik movies/s_s2o.bik' CONTENT_GAME_DATA_FILES=' data data2 movies voices' CONTENT_DOC_L10N_FILES=' *.doc *.pdf *.rtf *.txt' USER_PERSISTENT_DIRECTORIES=' campaign games maps save' USER_PERSISTENT_FILES=' *.ini *.cfg *.dat' WINE_VIRTUAL_DESKTOP='auto' APP_MAIN_EXE_TROPICO1='tropico.exe' APP_MAIN_EXE_TROPICO2='tropico2.exe' # Packages PACKAGES_LIST=' PKG_BIN PKG_L10N PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N_BASE PKG_DATA' PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' PKG_DATA_DESCRIPTION='data' ## Tropico 1 PKG_L10N_BASE_ID_TROPICO1="${GAME_ID_TROPICO1}-l10n" PKG_L10N_ID_TROPICO1_EN="${PKG_L10N_BASE_ID_TROPICO1}-en" PKG_L10N_ID_TROPICO1_FR="${PKG_L10N_BASE_ID_TROPICO1}-fr" PKG_L10N_PROVIDES_TROPICO1=" $PKG_L10N_BASE_ID_TROPICO1" PKG_L10N_DESCRIPTION_TROPICO1_EN="$PKG_L10N_DESCRIPTION_EN" PKG_L10N_DESCRIPTION_TROPICO1_FR="$PKG_L10N_DESCRIPTION_FR" PKG_DATA_ID_TROPICO1="${GAME_ID_TROPICO1}-data" ## Tropico 2 PKG_L10N_BASE_ID_TROPICO2="${GAME_ID_TROPICO2}-l10n" PKG_L10N_ID_TROPICO2_EN="${PKG_L10N_BASE_ID_TROPICO2}-en" PKG_L10N_ID_TROPICO2_FR="${PKG_L10N_BASE_ID_TROPICO2}-fr" PKG_L10N_PROVIDES_TROPICO2=" $PKG_L10N_BASE_ID_TROPICO2" PKG_L10N_DESCRIPTION_TROPICO2_EN="$PKG_L10N_DESCRIPTION_EN" PKG_L10N_DESCRIPTION_TROPICO2_FR="$PKG_L10N_DESCRIPTION_FR" PKG_DATA_ID_TROPICO2="${GAME_ID_TROPICO2}-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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 "$@" # Run extra depencies check based on source archive ## Tropico 2 - Use software rendering by default. case "$(current_archive)" in ('ARCHIVE_BASE_TROPICO2_'*) REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} dos2unix" requirements_check ;; esac # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Tropico 1 - Disable censorship in French version. case "$(current_archive)" in ('ARCHIVE_BASE_TROPICO1_FR_'*) localization_file='data2/tropico.lng' sed_expression='s/^\( \+406 .\+militaire\) \(.\+\)/\1 \2/' ## Force standard locale to avoid choking on some characters. LANG=C sed --in-place --expression="$sed_expression" "$localization_file" ;; esac ## Tropico 2 - Use software rendering by default. case "$(current_archive)" in ('ARCHIVE_BASE_TROPICO2_'*) ini_file='tropico2.ini' ini_field='SoftwareDevice' ini_value='1' sed_expression="s/^${ini_field}=.*$/${ini_field}=${ini_value}/" unix2dos --quiet "$ini_file" sed --in-place --expression="$sed_expression" "$ini_file" dos2unix --quiet "$ini_file" ;; esac ## Tropico 2 - Fix a file name encoding, to prevent a crash when selecting this map. case "$(current_archive)" in ('ARCHIVE_BASE_TROPICO2_FR_'*) if [ -e 'maps/6-pičges en eaux troubles.{}' ]; then mv 'maps/6-pičges en eaux troubles.{}' 'maps/6-pièges en eaux troubles.{}' mv 'maps/6-pičges en eaux troubles.txt' 'maps/6-pièges en eaux troubles.txt' fi ;; esac ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-tyranny-expansions.sh0000750000000000000000000005264714471751340016062 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Tyranny expansions: # - Coat of Arms # - Portrait Pack # - Tales from the Tiers # - Bastard's Wound # send your bug reports to vv221@dotslashplay.it ### script_version=20241229.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='tyranny' GAME_NAME='Tyranny' EXPANSION_ID_COATOFARMS='coat-of-arms' EXPANSION_NAME_COATOFARMS='Coat of Arms' EXPANSION_ID_PORTRAIT='portrait-pack' EXPANSION_NAME_PORTRAIT='Portrait Pack' EXPANSION_ID_TALES='tales-from-the-tiers' EXPANSION_NAME_TALES='Tales from the Tiers' EXPANSION_ID_WOUND='bastards-wound' EXPANSION_NAME_WOUND='Bastardʼs Wound' # Archives ## Coat of Arms ARCHIVE_BASE_COATOFARMS_0_NAME='tyranny_coat_of_arms_dlc_en_1_0_14773.sh' ARCHIVE_BASE_COATOFARMS_0_MD5='ba1403ce1f2535a00ae137c19204459f' ARCHIVE_BASE_COATOFARMS_0_SIZE='1342' ARCHIVE_BASE_COATOFARMS_0_VERSION='1.0-gog14773' ARCHIVE_BASE_COATOFARMS_0_URL='https://www.gog.com/game/tyranny_overlord_edition_upgrade' ## Portrait Pack ARCHIVE_BASE_PORTRAIT_0_NAME='tyranny_portrait_pack_dlc_en_1_0_14773.sh' ARCHIVE_BASE_PORTRAIT_0_MD5='165e1cf02119a0b2ddb4d8bfa8b6819d' ARCHIVE_BASE_PORTRAIT_0_SIZE='4150' ARCHIVE_BASE_PORTRAIT_0_VERSION='1.0-gog14773' ARCHIVE_BASE_PORTRAIT_0_URL='https://www.gog.com/game/tyranny_portrait_pack' ## Tales from the Tiers ARCHIVE_BASE_TALES_0_NAME='tyranny_tales_from_the_tiers_dlc_en_1_2_1_0158_15398.sh' ARCHIVE_BASE_TALES_0_MD5='08676e535375b162e2fa32b1bc4488a3' ARCHIVE_BASE_TALES_0_SIZE='4386' ARCHIVE_BASE_TALES_0_VERSION='1.2.1.0158-gog15398' ARCHIVE_BASE_TALES_0_URL='https://www.gog.com/game/tyranny_tales_from_the_tiers' ## Bastard's Wound ARCHIVE_BASE_WOUND_0_NAME='tyranny_bastard_s_wound_dlc_en_1_2_1_0158_15398.sh' ARCHIVE_BASE_WOUND_0_MD5='dbd2b51a410db2357b2e144f44139c19' ARCHIVE_BASE_WOUND_0_SIZE='1159755' ARCHIVE_BASE_WOUND_0_VERSION='1.2.1.0158-gog15398' ARCHIVE_BASE_WOUND_0_URL='https://www.gog.com/game/tyranny_bastards_wound' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' Tyranny_Data' 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)" # Bastard's Wound - Delete duplicated files already provided by the base game case "$(current_archive)" in ('ARCHIVE_BASE_WOUND_'*) rm \ 'Tyranny_Data/bundles/st_vx1_ar_0901_bastardswound_ent_01.unity3d' \ 'Tyranny_Data/bundles/st_vx1_ar_0902_bastardswound_ent_02.unity3d' \ 'Tyranny_Data/bundles/st_vx1_ar_0903_bastardswound_central_01.unity3d' \ 'Tyranny_Data/bundles/st_vx1_ar_0904_bastardswound_farm_01.unity3d' \ 'Tyranny_Data/bundles/st_vx1_ar_0905_bastardswound_water_01.unity3d' \ 'Tyranny_Data/bundles/st_vx1_ar_0906_bastardswound_interior_01.unity3d' \ 'Tyranny_Data/bundles/st_vx1_ar_0907_bastardswound_interior_02.unity3d' \ 'Tyranny_Data/bundles/st_vx1_ar_0908_bastardswound_oldwall_int_01.unity3d' \ 'Tyranny_Data/bundles/st_vx1_ar_0909_bastardswound_oldwall_int_02.unity3d' \ 'Tyranny_Data/bundles/st_vx1_ar_0910_bastardswound_oldwall_int_03.unity3d' \ 'Tyranny_Data/bundles/st_vx1_ar_0911_southhaven.unity3d' \ 'Tyranny_Data/bundles/st_vx1_ar_0912_burnedvillage.unity3d' \ 'Tyranny_Data/bundles/st_vx1_ar_1001_merchant_cart.unity3d' \ 'Tyranny_Data/bundles/st_vx1_ar_1002_wilderness_camp.unity3d' \ 'Tyranny_Data/bundles/st_vx1_ar_1003_torn_strand.unity3d' \ 'Tyranny_Data/bundles/st_vx1_ar_1004_wilderness_home.unity3d' \ 'Tyranny_Data/bundles/st_vx1_ar_1005_burned_home.unity3d' \ 'Tyranny_Data/bundles/st_vx1_ar_1006_military_fort.unity3d' \ 'Tyranny_Data/bundles/st_vx1_ar_1007_merchant_nocart.unity3d' \ 'Tyranny_Data/bundles/st_vx1_ar_1101_sentinel_stand_outskirts.unity3d' \ 'Tyranny_Data/bundles/st_vx1_ar_1102_edgering_ruins_revisit.unity3d' \ 'Tyranny_Data/bundles/st_vx1_ar_1103_workshop.unity3d' \ 'Tyranny_Data/bundles/st_vx1_ar_1201_berry_field.unity3d' \ 'Tyranny_Data/bundles/st_vx1_ar_1202_lantry_house.unity3d' \ 'Tyranny_Data/bundles/st_vx1_ar_1203_lantry_house_int.unity3d' \ 'Tyranny_Data/bundles/vx1_characters.unity3d' \ 'Tyranny_Data/bundles/vx1_items.unity3d' \ 'Tyranny_Data/data/design/conversations/vx1_10_verse/vx1_10_bs_unbroken_soldier.conversation' \ 'Tyranny_Data/data/design/conversations/vx1_10_verse/vx1_10_cv_catorius.conversation' \ 'Tyranny_Data/data/design/conversations/vx1_10_verse/vx1_10_cv_essa.conversation' \ 'Tyranny_Data/data/design/conversations/vx1_10_verse/vx1_10_cv_krokus.conversation' \ 'Tyranny_Data/data/design/conversations/vx1_10_verse/vx1_10_cv_krokus_patrol.conversation' \ 'Tyranny_Data/data/design/conversations/vx1_10_verse/vx1_10_cv_merchant_contact.conversation' \ 'Tyranny_Data/data/design/conversations/vx1_10_verse/vx1_10_cv_unbroken_captain.conversation' \ 'Tyranny_Data/data/design/conversations/vx1_10_verse/vx1_10_cv_verse.conversation' \ 'Tyranny_Data/data/design/conversations/vx1_10_verse/vx1_10_msv_neratintro.conversation' \ 'Tyranny_Data/data/design/conversations/vx1_11_barik/vx1_11_cv_barik.conversation' \ 'Tyranny_Data/data/design/conversations/vx1_11_barik/vx1_11_cv_carelessspark.conversation' \ 'Tyranny_Data/data/design/conversations/vx1_11_barik/vx1_11_cv_lohara.conversation' \ 'Tyranny_Data/data/design/conversations/vx1_11_barik/vx1_11_cv_lycentia.conversation' \ 'Tyranny_Data/data/design/conversations/vx1_11_barik/vx1_11_cv_zdenya.conversation' \ 'Tyranny_Data/data/design/conversations/vx1_12_lantry/vx1_12_cv_ambush.conversation' \ 'Tyranny_Data/data/design/conversations/vx1_12_lantry/vx1_12_cv_berriesfound.conversation' \ 'Tyranny_Data/data/design/conversations/vx1_12_lantry/vx1_12_cv_berrytrip_chiasmus.conversation' \ 'Tyranny_Data/data/design/conversations/vx1_12_lantry/vx1_12_cv_berrytrip_lexeme.conversation' \ 'Tyranny_Data/data/design/conversations/vx1_12_lantry/vx1_12_cv_berrytrip_nerat.conversation' \ 'Tyranny_Data/data/design/conversations/vx1_12_lantry/vx1_12_cv_berrytrip_roundtwo.conversation' \ 'Tyranny_Data/data/design/conversations/vx1_12_lantry/vx1_12_cv_chronicle_farm.conversation' \ 'Tyranny_Data/data/design/conversations/vx1_12_lantry/vx1_12_cv_chronicle_oldwalls_01.conversation' \ 'Tyranny_Data/data/design/conversations/vx1_12_lantry/vx1_12_cv_chronicle_oldwalls_02.conversation' \ 'Tyranny_Data/data/design/conversations/vx1_12_lantry/vx1_12_cv_chronicle_oldwalls_03.conversation' \ 'Tyranny_Data/data/design/conversations/vx1_12_lantry/vx1_12_cv_lantryact2complete.conversation' \ 'Tyranny_Data/data/design/conversations/vx1_12_lantry/vx1_12_cv_lantryact3start.conversation' \ 'Tyranny_Data/data/design/conversations/vx1_12_lantry/vx1_12_cv_lantrylexeme.conversation' \ 'Tyranny_Data/data/design/conversations/vx1_12_lantry/vx1_12_cv_lantryshatteredbastionchat.conversation' \ 'Tyranny_Data/data/design/conversations/vx1_12_lantry/vx1_12_cv_questsend.conversation' \ 'Tyranny_Data/data/design/conversations/vx1_12_lantry/vx1_12_cv_stashedchronicle.conversation' \ 'Tyranny_Data/data/design/conversations/vx1_12_lantry/vx1_12_poi_lantryshouse.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_00_cv_act3_companion_interjection.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_bs_burnedvillage_hordeargue.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_bs_companion_interjections.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_bs_denizens_jaspos.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_bs_denizens_wagstaff.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_bs_farmhands.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_bs_fatebinder_leaving.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_bs_gatekeeper_beast01.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_bs_gatekeeper_beast02.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_bs_hyrax.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_bs_intro_runningaway.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_bs_lower_horde_01.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_bs_lower_horde_02.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_bs_lullaby_adds_01.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_bs_lullaby_adds_02.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_bs_lullaby_adds_03.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_bs_mercenaries_jaspos.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_bs_mercenaries_wagstaff.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_bs_partii_sleepless.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_bs_refugee_01.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_bs_refugee_02.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_bs_sleepless.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_bs_southhaven_playercaught.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_bs_southhaven_villagers.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_bs_upper_chanter.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_bs_upper_fury.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_bs_woundkin.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_bs_woundkin_cubs.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_argaen.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_basila.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_beast_gatekeeper.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_callia_stabbed.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_capteron.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_cassandra.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_contusion.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_crasscallia.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_cyril.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_ebstaff.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_eisly.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_elyane.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_erasmus.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_execution_start.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_final_confrontation.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_final_decision.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_final_leader_jaspos.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_final_leader_player.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_final_leader_reeftalon.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_final_leader_wagstaff.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_gloomofdawn.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_gwyneth.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_hyacine.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_hyrax.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_insipidmoniker.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_jaspos.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_killsinshadow_mural_epiphany.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_kleitos.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_lexeme.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_lohara.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_lullaby_fight_intro.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_lunet.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_melitta.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_mell.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_merchant_anaxios.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_merchant_eirena.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_merchant_elegy.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_merchant_neread.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_merchant_pelagia.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_needletoe.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_needletoe_fledreaction.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_nikodemus.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_oceansfury.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_oldwalls_barrier.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_oldwalls_dead_woundkin.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_oldwalls_huntingparty_jaspos.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_oldwalls_huntingparty_wagstaff.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_oldwalls_mercenaries_jaspos.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_oldwalls_mercenaries_wagstaff.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_oldwalls_mural_fractured_01.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_oldwalls_mural_fractured_02.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_oldwalls_mural_fractured_03.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_oldwalls_mural_hollow_01.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_oldwalls_mural_hollow_02.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_oldwalls_mural_hollow_03.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_oldwalls_sleepless_01.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_oldwalls_sleepless_02.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_oldwalls_sleepless_03.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_oldwalls_sleepless_04.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_oldwalls_sleepless_05.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_oldwalls_sleepless_06.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_oldwalls_sleepless_07.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_oldwalls_sleepless_08.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_phoibe.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_ragwort.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_ratvek_the_butcher.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_reeftalon.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_reeftalon_firstmeeting.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_rostomlenk.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_sirin_cairnaltar.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_sirin_foundparchment.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_sirin_haseverything.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_sirin_librarian.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_skinner.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_telesophia.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_tonves.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_tycho.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_ulantis.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_wagstaff.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_cv_warbler.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_msv_lexemeintromissive.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_poi_beaconpuzzlecomments.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_poi_bloodfarmcomments.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_poi_farmcomments.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_poi_friendlylullabycomments.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_poi_huntingpartycomments.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_poi_lullabybattlecomments.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_poi_muralcomments.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_poi_oldwallsfloodingcomments.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_poi_sirin_entrance.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_poi_sirin_shatteredbastion.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_poi_sleeplesscomments.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_poi_teleporterintocomments.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_poi_wardens_key.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_poi_wardens_key_used.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_poi_woundbeastdencomments.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_poi_woundcentralcomments.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_poi_woundfirstarrival.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_poi_woundjasposcomments.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_poi_woundslaughtercomments.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_poi_woundslaughterkeystone.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_poi_woundwagstaffcomments.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_tree_contusion.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_tree_needletoe.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_09_tree_ragwort.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_bs_burnedvillage_hordeargue.conversation' \ 'Tyranny_Data/data/design/conversations/vx1/vx1_debug_cv_testiclees.conversation' \ 'Tyranny_Data/data/design/quests/vx1_10_verse/vx1_10_qst_verse_act2.quest' \ 'Tyranny_Data/data/design/quests/vx1_10_verse/vx1_10_qst_verse_act3.quest' \ 'Tyranny_Data/data/design/quests/vx1_11_barik/vx1_11_qst_barik_act2.quest' \ 'Tyranny_Data/data/design/quests/vx1_11_barik/vx1_11_qst_barik_act3.quest' \ 'Tyranny_Data/data/design/quests/vx1_12_lantry/vx1_12_qst_lantry_act2.quest' \ 'Tyranny_Data/data/design/quests/vx1_12_lantry/vx1_12_qst_lantry_act3.quest' \ 'Tyranny_Data/data/design/quests/vx1/vx1_qst_bloodofthebeast.quest' \ 'Tyranny_Data/data/design/quests/vx1/vx1_qst_bonesofthebeast.quest' \ 'Tyranny_Data/data/design/quests/vx1/vx1_qst_cleansingthewound.quest' \ 'Tyranny_Data/data/design/quests/vx1/vx1_qst_fatebindersjudgement.quest' \ 'Tyranny_Data/data/design/quests/vx1/vx1_qst_gamblersruin.quest' \ 'Tyranny_Data/data/design/quests/vx1/vx1_qst_hiddentruths.quest' \ 'Tyranny_Data/data/design/quests/vx1/vx1_qst_historyoftheoldwallspartii.quest' \ 'Tyranny_Data/data/design/quests/vx1/vx1_qst_historyoftheoldwallsparti.quest' \ 'Tyranny_Data/data/design/quests/vx1/vx1_qst_knappingonthejob.quest' \ 'Tyranny_Data/data/design/quests/vx1/vx1_qst_midnightwanderer.quest' \ 'Tyranny_Data/data/design/quests/vx1/vx1_qst_theoneswhogotaway.quest' \ 'Tyranny_Data/data/design/quests/vx1/vx1_qst_tidetogether.quest' \ 'Tyranny_Data/data/design/quests/vx1/vx1_qst_waterintoxication.quest' \ 'Tyranny_Data/data/design/quests/vx1/vx1_qst_whatliesbeyond.quest' ;; esac ) # Include game data content_inclusion_default # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-tyranny.sh0000750000000000000000000000470214471751340013662 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Tyranny # send your bug reports to vv221@dotslashplay.it ### script_version=20250429.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='tyranny' GAME_NAME='Tyranny' ARCHIVE_BASE_0_NAME='tyranny_v1_2_1_160_v2_25169.sh' ARCHIVE_BASE_0_MD5='72bdb7c9f6966ac6f1ccfbbad9fb29e6' ARCHIVE_BASE_0_SIZE='15136872' ARCHIVE_BASE_0_VERSION='1.2.1.0160-gog25169' ARCHIVE_BASE_0_URL='https://www.gog.com/game/tyranny_commander_edition' ARCHIVE_BASE_1_NAME='tyranny_en_1_2_1_0158_15398.sh' ARCHIVE_BASE_1_MD5='664cba00a861611fb155f65b8d83d9e9' ARCHIVE_BASE_1_SIZE='15000000' ARCHIVE_BASE_1_VERSION='1.2.1.0158-gog15398' UNITY3D_NAME='Tyranny' UNITY3D_PLUGINS=' libpops_api.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_AREAS_FILES=" ${UNITY3D_NAME}_Data/bundles/st_ar_*" PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_AREAS PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 libresolv.so.2 librt.so.1 libstdc++.so.6 libuuid.so.1 libX11.so.6 libXcursor.so.1 libXrandr.so.2 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_AREAS' PKG_AREAS_ID="${GAME_ID}-areas" PKG_AREAS_DESCRIPTION='areas' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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-unavowed.sh0000750000000000000000000000715414471751340014012 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Unavowed # send your bug reports to vv221@dotslashplay.it ### script_version=20250722.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='unavowed' GAME_NAME='Unavowed' ARCHIVE_BASE_10_NAME='unavowed_2_5_81809.sh' ARCHIVE_BASE_10_MD5='d1d79f92b1332341371f519b0810bf9c' ARCHIVE_BASE_10_SIZE='2315517' ARCHIVE_BASE_10_VERSION='2.5-gog81809' ARCHIVE_BASE_10_URL='https://www.gog.com/game/unavowed' ARCHIVE_BASE_9_NAME='unavowed_2_2_78264.sh' ARCHIVE_BASE_9_MD5='6a60648441f57342e92a6bb0a4dc462a' ARCHIVE_BASE_9_SIZE='2310225' ARCHIVE_BASE_9_VERSION='2.2-gog78264' ARCHIVE_BASE_8_NAME='unavowed_2_1_75524.sh' ARCHIVE_BASE_8_MD5='07926f2dd86460eae439d2d16f87e76d' ARCHIVE_BASE_8_SIZE='2310225' ARCHIVE_BASE_8_VERSION='2.1-gog75524' ARCHIVE_BASE_7_NAME='unavowed_2_0_2_70667.sh' ARCHIVE_BASE_7_MD5='00c9f35c3e3e506f8238de49c8ac781a' ARCHIVE_BASE_7_SIZE='2310224' ARCHIVE_BASE_7_VERSION='2.0.2-gog70667' ARCHIVE_BASE_6_NAME='unavowed_2_0_2_70012.sh' ARCHIVE_BASE_6_MD5='a9cfabc33e91f0d7b7649e302966b591' ARCHIVE_BASE_6_SIZE='2310224' ARCHIVE_BASE_6_VERSION='2.0.2-gog70012' ARCHIVE_BASE_5_NAME='unavowed_2_0_1_66601.sh' ARCHIVE_BASE_5_MD5='bacc5d7cf9da4970da580c7ee43e1a2e' ARCHIVE_BASE_5_SIZE='2400000' ARCHIVE_BASE_5_VERSION='2.0.1-gog66601' ARCHIVE_BASE_4_NAME='unavowed_2_0_66472.sh' ARCHIVE_BASE_4_MD5='771d43bf86a85da9a70d02da80a6eb01' ARCHIVE_BASE_4_SIZE='2400000' ARCHIVE_BASE_4_VERSION='2.0-gog66472' ARCHIVE_BASE_3_NAME='unavowed_1_5_64507.sh' ARCHIVE_BASE_3_MD5='0029204a1edc703c2fc90bcc2741c442' ARCHIVE_BASE_3_SIZE='2500000' ARCHIVE_BASE_3_VERSION='1.5-gog64507' ARCHIVE_BASE_2_NAME='unavowed_1_4_57370.sh' ARCHIVE_BASE_2_MD5='c785b049e60d60e45296acda30bd9aa2' ARCHIVE_BASE_2_SIZE='2500000' ARCHIVE_BASE_2_VERSION='1.4-gog57370' ARCHIVE_BASE_1_NAME='unavowed_1_32_55233.sh' ARCHIVE_BASE_1_MD5='6d92c60a1a3406f619b4fb4c204adecc' ARCHIVE_BASE_1_SIZE='2500000' ARCHIVE_BASE_1_VERSION='1.3.2-gog55233' ARCHIVE_BASE_0_NAME='unavowed_1_31_54237.sh' ARCHIVE_BASE_0_MD5='f0060c808571a4324714c69f653a4caa' ARCHIVE_BASE_0_SIZE='2500000' ARCHIVE_BASE_0_VERSION='1.3.1-gog54237' ## Optional icons pack ARCHIVE_OPTIONAL_ICONS_NAME='unavowed_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5='359eae49cc167a34a1cc5525cf6ab340' ARCHIVE_OPTIONAL_ICONS_URL='https://downloads.dotslashplay.it/games/unavowed/' CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 16x16 24x24 32x32 48x48 256x256' AGS_NAME='unavowed' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_DOC_MAIN_FILES=' licenses' APP_MAIN_ICON='../support/icon.png' APP_MAIN_ICON_3='Unavowed.exe' APP_MAIN_ICON_2='Unavowed.exe' APP_MAIN_ICON_1='Unavowed.exe' APP_MAIN_ICON_0='Unavowed.exe' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-unreal-tournament-2004.sh0000750000000000000000000001031614471751340016217 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Unreal Tournament 2004 # send your bug reports to vv221@dotslashplay.it ### script_version=20250104.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='unreal-tournament-2004' GAME_NAME='Unreal Tournament 2004' # Archives ## Unreal Tournament 2004 (game installer) ## This game is no longer available for sale from gog.com since 2022-12-23. ARCHIVE_BASE_0_NAME='setup_unreal_tournament_2004_1.0_(18947).exe' ARCHIVE_BASE_0_MD5='243376d34413b830324c5879ac2f9cfd' ## Do not convert file paths to lowercase ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS=' ' ARCHIVE_BASE_0_PART1_NAME='setup_unreal_tournament_2004_1.0_(18947)-1.bin' ARCHIVE_BASE_0_PART1_MD5='a211e2a6feed7334bb3b7deef6b858b5' ARCHIVE_BASE_0_SIZE='6000000' ARCHIVE_BASE_0_VERSION='3369-gog18947' ## Native Linux engine ARCHIVE_REQUIRED_ENGINE_0_NAME='ut2004-lnxpatch3369-2.tar.bz2' ARCHIVE_REQUIRED_ENGINE_0_MD5='0fa447e05fe5a38e0e32adf171be405e' ARCHIVE_REQUIRED_ENGINE_0_URL='https://liandri.beyondunreal.com/Unreal_Tournament_2004#Essential_Files' # Archives content ## Unreal Tournament 2004 (game installer) CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' System ut2004.txt' CONTENT_GAME0_BIN_PATH='__support/app' CONTENT_GAME0_BIN_FILES=' *.ini' CONTENT_GAME_DATA_FILES=' Animations ForceFeedback KarmaData Maps Music Sounds Speech StaticMeshes Textures Web' CONTENT_DOC0_DATA_RELATIVE_PATH='Help' CONTENT_DOC0_DATA_FILES=' *.txt' CONTENT_DOC1_DATA_RELATIVE_PATH='Manual' CONTENT_DOC1_DATA_FILES=' *.pdf' ## Native Linux engine CONTENT_GAME1_BIN_PATH='UT2004-Patch' CONTENT_GAME1_BIN_FILES=' System' CONTENT_GAME0_DATA_PATH='UT2004-Patch' CONTENT_GAME0_DATA_FILES=' Animations Speech Textures Web' CONTENT_DOC2_DATA_PATH='UT2004-Patch/Help' CONTENT_DOC2_DATA_FILES=' *.txt' APP_MAIN_EXE='System/ut2004-bin-linux-amd64' APP_MAIN_ICON='System/Unreal.ico' 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 libopenal.so.1 libpthread.so.0 libSDL-1.2.so.0 libstdc++.so.5' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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 "$@" # Chek for the presence of the required game engine archive_initialize_required \ 'ARCHIVE_ENGINE' \ 'ARCHIVE_REQUIRED_ENGINE_0' # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Include required CD key grep --before=1 --fixed-strings 'CDKey' 'goggame-1207658691.script' | sed --silent 's/\s*"valueData": "\(.*\)",/\1/p' > 'System/CDKey' ) archive_extraction 'ARCHIVE_ENGINE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path 'GAME_ENGINE_BIN')" ## Delete unwanted 32-bit binaries rm --force \ 'System/ucc-bin' \ 'System/ut2004-bin' ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default ## Create required links for some libraries path_libraries_source=$(path_libraries_system) path_libraries_destination="$(package_path 'PKG_BIN')$(path_game_data)/System" ln --symbolic "${path_libraries_source}/libSDL-1.2.so.0" "${path_libraries_destination}/libSDL-1.2.so.0" ln --symbolic "${path_libraries_source}/libopenal.so.1" "${path_libraries_destination}/openal.so" # Write launchers ## Run the game binary from its parent directory game_exec_line() { cat <<- 'EOF' cd System ./ut2004-bin-linux-amd64 "$@" EOF } launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-unreal-tournament.sh0000750000000000000000000001141514471751340015635 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2018 Jacek Szafarkiewicz # SPDX-FileCopyrightText: © 2018 Phil Morrell set -o errexit ### # Unreal Tournament # send your bug reports to vv221@dotslashplay.it ### script_version=20250104.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='unreal-tournament' GAME_NAME='Unreal Tournament' # Archives ## Unreal Tournament (game installer) ## This game is no longer available for sale from gog.com since 2022-12-23. ARCHIVE_BASE_0_NAME='setup_ut_goty_2.0.0.5.exe' ARCHIVE_BASE_0_MD5='0d25ec835648710a098aff7106187f38' ## Do not convert file paths to lowercase ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS=' ' ARCHIVE_BASE_0_SIZE='640000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.5' ## Native Linux engine ARCHIVE_REQUIRED_ENGINE_1_NAME='OldUnreal-UTPatch469d-Linux-amd64.tar.bz2' ARCHIVE_REQUIRED_ENGINE_1_MD5='d0e133165bf1630288583e52a40b90db' ARCHIVE_REQUIRED_ENGINE_1_URL='https://github.com/OldUnreal/UnrealTournamentPatches/releases/tag/v469d' ARCHIVE_REQUIRED_ENGINE_0_NAME='OldUnreal-UTPatch469c-Linux-amd64.tar.bz2' ARCHIVE_REQUIRED_ENGINE_0_MD5='6cd032e70460b1393d9514ffe81dcb1a' ARCHIVE_REQUIRED_ENGINE_0_URL='https://github.com/OldUnreal/UnrealTournamentPatches/releases/tag/v469c' # Archives content ## Unreal Tournament (game installer) CONTENT_PATH_DEFAULT='app' CONTENT_GAME_DATA_FILES=' Maps Music Sounds Textures' CONTENT_DOC_DATA_FILES=' Help Manual' ## Native Linux engine CONTENT_PATH_DEFAULT_ENGINE='.' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT_ENGINE}/System64" CONTENT_LIBS_BIN_FILES=' ALAudio.so Cluster.so Core.so Editor.so Engine.so Fire.so IpDrv.so libfmod.so.13 OpenGLDrv.so Render.so SDLDrv.so udemo.so UWeb.so XOpenGLDrv.so' CONTENT_GAME_BIN_PATH="$CONTENT_PATH_DEFAULT_ENGINE" CONTENT_GAME_BIN_FILES=' System System64' CONTENT_GAME0_DATA_PATH="$CONTENT_PATH_DEFAULT_ENGINE" CONTENT_GAME0_DATA_FILES=' SystemLocalized Textures Web' CONTENT_DOC0_DATA_PATH="$CONTENT_PATH_DEFAULT_ENGINE" CONTENT_DOC0_DATA_FILES=' Help LICENSE.md' APP_MAIN_EXE='System64/ut-bin-amd64' APP_MAIN_ICON='System/Unreal.ico' 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 libmpg123.so.0 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libstdc++.so.6 libxmp.so.4' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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 "$@" # Chek for the presence of the required game engine archive_initialize_required \ 'ARCHIVE_ENGINE' \ 'ARCHIVE_REQUIRED_ENGINE_1' \ 'ARCHIVE_REQUIRED_ENGINE_0' ## Update the version string based on the engine build current_archive=$(current_archive) engine_version=$(archive_name 'ARCHIVE_ENGINE' | sed 's/OldUnreal-UTPatch\([a-z0-9]\+\)-Linux-amd64.tar.bz2/\1/') archive_version_updated=$(get_value "${current_archive}_VERSION" | sed "s/^1.0-/${engine_version}-/") export "${current_archive}_VERSION=${archive_version_updated}" # Extract game data archive_extraction_default archive_extraction 'ARCHIVE_ENGINE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path 'GAME_BIN')" # Drop some shipped libraries rm \ 'System64/libmpg123.so' \ 'System64/libopenal.so.1' \ 'System64/libSDL2-2.0.so.0' \ 'System64/libxmp.so.4' ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default ## The game engine looks for libmpg123.so instead of libmpg123.so.0 case "$(option_value 'package')" in ('arch') # Arch Linux already provides the unversioned .so ;; ('gentoo'|'egentoo') # Gentoo already provides the unversioned .so ;; ('deb') library_destination="$(package_path 'PKG_BIN')$(path_libraries)/libmpg123.so" mkdir --parents "$(dirname "$library_destination")" ln --symbolic "$(path_libraries_system)/libmpg123.so.0" "$library_destination" ;; esac # Write launchers ## Run the game binary from its parent directory game_exec_line() { cat <<- 'EOF' cd System64 ./ut-bin-amd64 "$@" EOF } launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-vampire-the-masquerade-bloodlines.sh0000750000000000000000000003242114471751340020653 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2020 Mopi set -o errexit ### # Vampire: The Masquerade - Bloodlines # send your bug reports to vv221@dotslashplay.it ### script_version=20250721.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='vampire-the-masquerade-bloodlines' GAME_NAME='Vampire: The Masquerade - Bloodlines' ## The DotEmu store closed down in 2017, since then they only advertise Steam. ARCHIVE_BASE_DOTEMU_0_NAME='vampire_the_masquerade_bloodlines_v1.2.exe' ARCHIVE_BASE_DOTEMU_0_MD5='8981da5fa644475583b2888a67fdd741' ARCHIVE_BASE_DOTEMU_0_EXTRACTOR='unar' ARCHIVE_BASE_DOTEMU_0_SIZE='5013863' ARCHIVE_BASE_DOTEMU_0_VERSION='1.2-dotemu1' ARCHIVE_BASE_GOG_EN_6_NAME='setup_vampire_the_masquerade_-_bloodlines_1.2_(up_11.511.410.2)_(68368).exe' ARCHIVE_BASE_GOG_EN_6_MD5='553f6bdbd8b23fa143da22d9ea47a20b' ARCHIVE_BASE_GOG_EN_6_TYPE='innosetup' ARCHIVE_BASE_GOG_EN_6_PART1_NAME='setup_vampire_the_masquerade_-_bloodlines_1.2_(up_11.511.410.2)_(68368)-1.bin' ARCHIVE_BASE_GOG_EN_6_PART1_MD5='f0ca81565507da32075e6334a96a173f' ARCHIVE_BASE_GOG_EN_6_SIZE='4152647' ARCHIVE_BASE_GOG_EN_6_VERSION='1.2-gog68368' ARCHIVE_BASE_GOG_EN_6_URL='https://www.gog.com/game/vampire_the_masquerade_bloodlines' ARCHIVE_BASE_GOG_FR_6_NAME='setup_vampire_the_masquerade_-_bloodlines_1.2_(up_11.511.410.2)_(french)_(68368).exe' ARCHIVE_BASE_GOG_FR_6_MD5='5bb92c9507ef442ec95dade41f940c48' ARCHIVE_BASE_GOG_FR_6_TYPE='innosetup' ARCHIVE_BASE_GOG_FR_6_PART1_NAME='setup_vampire_the_masquerade_-_bloodlines_1.2_(up_11.511.410.2)_(french)_(68368)-1.bin' ARCHIVE_BASE_GOG_FR_6_PART1_MD5='c003bb4e2973fb7487bef0b50ed46c6a' ARCHIVE_BASE_GOG_FR_6_SIZE='4184265' ARCHIVE_BASE_GOG_FR_6_VERSION='1.2-gog68368' ARCHIVE_BASE_GOG_FR_6_URL='https://www.gog.com/game/vampire_the_masquerade_bloodlines' ARCHIVE_BASE_GOG_EN_5_NAME='setup_vampire_the_masquerade_-_bloodlines_1.2_(up_11.511.410.2)_(68368).exe' ARCHIVE_BASE_GOG_EN_5_MD5='b2c1eff2640a4b7c52922a3c1ce3f36b' ARCHIVE_BASE_GOG_EN_5_TYPE='innosetup' ARCHIVE_BASE_GOG_EN_5_PART1_NAME='setup_vampire_the_masquerade_-_bloodlines_1.2_(up_11.511.410.2)_(68368)-1.bin' ARCHIVE_BASE_GOG_EN_5_PART1_MD5='96b585f441224ab5f8658815b74a0763' ARCHIVE_BASE_GOG_EN_5_SIZE='4209268' ARCHIVE_BASE_GOG_EN_5_VERSION='1.2-gog68368' ARCHIVE_BASE_GOG_FR_5_NAME='setup_vampire_the_masquerade_-_bloodlines_1.2_(up_11.511.410.2)_(french)_(68368).exe' ARCHIVE_BASE_GOG_FR_5_MD5='ea6cec86b0eb1986164eefb6ddf458ef' ARCHIVE_BASE_GOG_FR_5_TYPE='innosetup' ARCHIVE_BASE_GOG_FR_5_PART1_NAME='setup_vampire_the_masquerade_-_bloodlines_1.2_(up_11.511.410.2)_(french)_(68368)-1.bin' ARCHIVE_BASE_GOG_FR_5_PART1_MD5='01194704a7c9b1e7c67e4743bcdb81f7' ARCHIVE_BASE_GOG_FR_5_SIZE='4242068' ARCHIVE_BASE_GOG_FR_5_VERSION='1.2-gog68368' ARCHIVE_BASE_GOG_EN_4_NAME='setup_vampire_the_masquerade_-_bloodlines_1.2_(up_11.111.010.2)_hotfix_(55110).exe' ARCHIVE_BASE_GOG_EN_4_MD5='9a1c0824945008a3d520103002479fbc' ARCHIVE_BASE_GOG_EN_4_TYPE='innosetup' ARCHIVE_BASE_GOG_EN_4_PART1_NAME='setup_vampire_the_masquerade_-_bloodlines_1.2_(up_11.111.010.2)_hotfix_(55110)-1.bin' ARCHIVE_BASE_GOG_EN_4_PART1_MD5='50cbbf0ad7063e089ba4663cb599b7ac' ARCHIVE_BASE_GOG_EN_4_SIZE='4300000' ARCHIVE_BASE_GOG_EN_4_VERSION='1.2-gog55110' ARCHIVE_BASE_GOG_FR_4_NAME='setup_vampire_the_masquerade_-_bloodlines_1.2_(up_11.111.010.2)_hotfix_(french)_(55110).exe' ARCHIVE_BASE_GOG_FR_4_MD5='2cf2aa09a1bfbd3151ded2457037f2ab' ARCHIVE_BASE_GOG_FR_4_TYPE='innosetup' ARCHIVE_BASE_GOG_FR_4_PART1_NAME='setup_vampire_the_masquerade_-_bloodlines_1.2_(up_11.111.010.2)_hotfix_(french)_(55110)-1.bin' ARCHIVE_BASE_GOG_FR_4_PART1_MD5='3925827a5aa7dfcd53609130ef128a18' ARCHIVE_BASE_GOG_FR_4_SIZE='4300000' ARCHIVE_BASE_GOG_FR_4_VERSION='1.2-gog55110' ARCHIVE_BASE_GOG_EN_3_NAME='setup_vampire_the_masquerade_-_bloodlines_1.2_(up_11.111.010.2)_(54206).exe' ARCHIVE_BASE_GOG_EN_3_MD5='97cc63738b2eab02140c38883d82fa8b' ARCHIVE_BASE_GOG_EN_3_TYPE='innosetup' ARCHIVE_BASE_GOG_EN_3_PART1_NAME='setup_vampire_the_masquerade_-_bloodlines_1.2_(up_11.111.010.2)_(54206)-1.bin' ARCHIVE_BASE_GOG_EN_3_PART1_MD5='5024eb1ddef8ec13c2ed433d399193cf' ARCHIVE_BASE_GOG_EN_3_SIZE='4300000' ARCHIVE_BASE_GOG_EN_3_VERSION='1.2-gog54206' ARCHIVE_BASE_GOG_FR_3_NAME='setup_vampire_the_masquerade_-_bloodlines_1.2_(up_11.111.010.2)_(french)_(54206).exe' ARCHIVE_BASE_GOG_FR_3_MD5='80bb9fab0f97230989b5f15aa5118f51' ARCHIVE_BASE_GOG_FR_3_TYPE='innosetup' ARCHIVE_BASE_GOG_FR_3_PART1_NAME='setup_vampire_the_masquerade_-_bloodlines_1.2_(up_11.111.010.2)_(french)_(54206)-1.bin' ARCHIVE_BASE_GOG_FR_3_PART1_MD5='3624eb7399c9d260889ab245f9bd43b1' ARCHIVE_BASE_GOG_FR_3_SIZE='4300000' ARCHIVE_BASE_GOG_FR_3_VERSION='1.2-gog54206' ARCHIVE_BASE_GOG_EN_2_NAME='setup_vampire_the_masquerade_-_bloodlines_1.2_(up_10.2)_(28160).exe' ARCHIVE_BASE_GOG_EN_2_MD5='8c1907871d2ded8afda77d5b570d5383' ARCHIVE_BASE_GOG_EN_2_TYPE='innosetup' ARCHIVE_BASE_GOG_EN_2_PART1_NAME='setup_vampire_the_masquerade_-_bloodlines_1.2_(up_10.2)_(28160)-1.bin' ARCHIVE_BASE_GOG_EN_2_PART1_MD5='a28edc25dc3c0f818673196852490628' ARCHIVE_BASE_GOG_EN_2_SIZE='4100000' ARCHIVE_BASE_GOG_EN_2_VERSION='1.2-gog28160' ARCHIVE_BASE_GOG_FR_2_NAME='setup_vampire_the_masquerade_-_bloodlines_1.2_(up_10.2)_(french)_(28160).exe' ARCHIVE_BASE_GOG_FR_2_MD5='8877c5ab14363b249e72034fe5333921' ARCHIVE_BASE_GOG_FR_2_TYPE='innosetup' ARCHIVE_BASE_GOG_FR_2_PART1_NAME='setup_vampire_the_masquerade_-_bloodlines_1.2_(up_10.2)_(french)_(28160)-1.bin' ARCHIVE_BASE_GOG_FR_2_PART1_MD5='0dddbbcd2dee5474066b4863c56aa5f0' ARCHIVE_BASE_GOG_FR_2_SIZE='4200000' ARCHIVE_BASE_GOG_FR_2_VERSION='1.2-gog28160' ARCHIVE_BASE_GOG_EN_1_NAME='setup_vampire_the_masquerade_-_bloodlines_1.2_(up_10.0)_(22135).exe' ARCHIVE_BASE_GOG_EN_1_MD5='095771daf8fd1b26d34a099f182c8d4a' ARCHIVE_BASE_GOG_EN_1_TYPE='innosetup' ARCHIVE_BASE_GOG_EN_1_PART1_NAME='setup_vampire_the_masquerade_-_bloodlines_1.2_(up_10.0)_(22135)-1.bin' ARCHIVE_BASE_GOG_EN_1_PART1_MD5='ef8a3fe212da189d811fcf6bc70a1e40' ARCHIVE_BASE_GOG_EN_1_SIZE='4100000' ARCHIVE_BASE_GOG_EN_1_VERSION='1.2-gog22135' ARCHIVE_BASE_GOG_EN_0_NAME='setup_vtmb_1.2_(up_9.7_basic)_(11362).exe' ARCHIVE_BASE_GOG_EN_0_MD5='62b8db3b054595fb46bd8eaa5f8ae7bc' ARCHIVE_BASE_GOG_EN_0_TYPE='innosetup' ARCHIVE_BASE_GOG_EN_0_PART1_NAME='setup_vtmb_1.2_(up_9.7_basic)_(11362)-1.bin' ARCHIVE_BASE_GOG_EN_0_PART1_MD5='4177042d5a6e03026d52428e900e6137' ARCHIVE_BASE_GOG_EN_0_SIZE='4100000' ARCHIVE_BASE_GOG_EN_0_VERSION='1.2-gog11362' CONTENT_PATH_DEFAULT_DOTEMU='.' CONTENT_PATH_DEFAULT_GOG='.' CONTENT_PATH_DEFAULT_GOG_EN_0='app' CONTENT_GAME_BIN_FILES=' bin vampire/dlls vampire/cl_dlls loader.exe vampire.exe vampire.exe.12 dbghelp.dll loader.dll' ## This configuration file is created by the current game script, ## cf. "Give access to character histories (backgrounds)" CONTENT_GAME0_BIN_FILES=' vampire/cfg/config.cfg' ## These paths are created at the "Extract game data" step. CONTENT_GAME_L10N_EN_PATH_DOTEMU='l10n-en' CONTENT_GAME_L10N_FR_PATH_DOTEMU='l10n-fr' CONTENT_GAME_L10N_FILES=' vampire/pack101.vpk vampire/pack103.vpk' CONTENT_GAME_L10N_EN_FILES="$CONTENT_GAME_L10N_FILES" CONTENT_GAME_L10N_FR_FILES="$CONTENT_GAME_L10N_FILES" CONTENT_GAME_DATA_FILES=' vampire/maps vampire/media vampire/pack000.vpk vampire/pack001.vpk vampire/pack002.vpk vampire/pack003.vpk vampire/pack004.vpk vampire/pack005.vpk vampire/pack006.vpk vampire/pack007.vpk vampire/pack008.vpk vampire/pack009.vpk vampire/pack010.vpk vampire/pack100.vpk vampire/pack102.vpk vampire/python vampire/resource vampire/sound vtmbup-loader.txt vtmbup-readme.txt *.dat *.mpg *.tth' ## These paths are created at the "Extract game data" step. CONTENT_DOC_L10N_EN_PATH_DOTEMU='l10n-en' CONTENT_DOC_L10N_FR_PATH_DOTEMU='l10n-fr' CONTENT_DOC_L10N_FILES=' docs *.pdf' CONTENT_DOC_L10N_EN_FILES="$CONTENT_DOC_L10N_FILES" CONTENT_DOC_L10N_FR_FILES="$CONTENT_DOC_L10N_FILES" USER_PERSISTENT_DIRECTORIES=' vampire/cfg vampire/maps/graphs vampire/python vampire/save' USER_PERSISTENT_FILES=' vampire/vidcfg.bin' WINE_VIRTUAL_DESKTOP='auto' APP_MAIN_EXE_DOTEMU='vampire.exe' ## Using vampire.exe directly with the GOG build leads to lingering processes ## cf. https://bugs.winehq.org/show_bug.cgi?id=56713 ## Vampire: The Masquerade - Bloodlines Vampire.exe process keeps lingering APP_MAIN_EXE_GOG='loader.exe' APP_MAIN_ICON='vampire.exe' ## Work around the deletion of zlib1.dll ## (WINE 10.0) APP_MAIN_PRERUN=' # Work around the deletion of zlib1.dll system_library="${WINEPREFIX}/drive_c/windows/system32/zlib1.dll" if [ ! -e "$system_library" ]; then cp "bin/zlib1.dll" "$system_library" fi ' ## Keep hold of the terminal until the game process actually ends, ## instead of returning as soon as the game is started APP_MAIN_POSTRUN=' # Keep hold of the terminal until the game process actually ends, # instead of returning as soon as the game is started sleep 10s pidwait --euid "$USER" --ignore-case vampire.exe ' PACKAGES_LIST_DOTEMU=' PKG_BIN PKG_L10N_EN PKG_L10N_FR PKG_DATA' PACKAGES_LIST_GOG_EN=' PKG_BIN PKG_L10N_EN PKG_DATA' PACKAGES_LIST_GOG_FR=' PKG_BIN PKG_L10N_FR PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N_BASE PKG_DATA' PKG_BIN_DEPENDENCIES_COMMANDS=' pidwait' PKG_L10N_BASE_ID="${GAME_ID}-l10n" PKG_L10N_EN_ID="${PKG_L10N_BASE_ID}-en" PKG_L10N_FR_ID="${PKG_L10N_BASE_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_BASE_ID" PKG_L10N_EN_ENSCRIPTION='English localization' PKG_L10N_FR_FRSCRIPTION='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 "$@" # DotEmu archive - unzip is required to extract the content of inner archives case "$(current_archive)" in ('ARCHIVE_BASE_DOTEMU_'*) REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} unzip" requirements_check ;; esac # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" case "$(current_archive)" in ('ARCHIVE_BASE_DOTEMU_'*) localized_paths=' Docs Vampire/pack101.vpk Vampire/pack103.vpk' localized_paths_en=" $localized_paths manual_en.pdf" localized_paths_fr=" $localized_paths Manual_fr.pdf" ARCHIVE_COMMON1_PATH="${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/common1.zip" archive_extraction 'ARCHIVE_COMMON1' rm "$(archive_path 'ARCHIVE_COMMON1')" ARCHIVE_COMMON2_PATH="${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/common2.zip" archive_extraction 'ARCHIVE_COMMON2' rm "$(archive_path 'ARCHIVE_COMMON2')" ARCHIVE_EN_PATH="${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/en.zip" archive_extraction 'ARCHIVE_EN' rm "$(archive_path 'ARCHIVE_EN')" ## Localized paths are moved out of the way to prevent them from being overwritten. mkdir 'l10n-en' ## Silence a ShellCheck false positive, word splitting is expected here ## SC2086 (info): Double quote to prevent globbing and word splitting. # shellcheck disable=SC2086 cp --link --parents --recursive $localized_paths_en 'l10n-en' ## Silence a ShellCheck false positive, word splitting is expected here ## SC2086 (info): Double quote to prevent globbing and word splitting. # shellcheck disable=SC2086 rm --recursive $localized_paths ARCHIVE_FR_PATH="${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/fr.zip" archive_extraction 'ARCHIVE_FR' rm "$(archive_path 'ARCHIVE_FR')" ## Localized paths are moved out of the way to prevent them from being overwritten. mkdir 'l10n-fr' ## Silence a ShellCheck false positive, word splitting is expected here ## SC2086 (info): Double quote to prevent globbing and word splitting. # shellcheck disable=SC2086 cp --link --parents --recursive $localized_paths_fr 'l10n-fr' ## Silence a ShellCheck false positive, word splitting is expected here ## SC2086 (info): Double quote to prevent globbing and word splitting. # shellcheck disable=SC2086 rm --recursive $localized_paths tolower . ;; esac # Give access to character histories (backgrounds). config_file='vampire/cfg/config.cfg' mkdir --parents "$(dirname "$config_file")" cat > "$config_file" <<- EOF vchar_edit_histories "1" EOF ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation case "$(current_archive)" in ('ARCHIVE_BASE_DOTEMU_'*) 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' printf "$lang_string" "$lang_fr" print_instructions 'PKG_BIN' 'PKG_L10N_FR' 'PKG_DATA' ;; (*) print_instructions ;; esac # Clean up working_directory_cleanup exit 0 games/play-vampire-the-masquerade-stories-of-new-york-series.sh0000750000000000000000000001251214471751340023653 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Vampire: The Masquerade - Stories of New York series: # - Vampire: The Masquerade - Coteries of New York # - Vampire: The Masquerade - Shadows of New York # - Vampire: The Masquerade - Reckoning of New York # send your bug reports to vv221@dotslashplay.it ### script_version=20250320.3 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID_COTERIES='vampire-the-masquerade-coteries-of-new-york' GAME_NAME_COTERIES='Vampire: The Masquerade - Coteries of New York' GAME_ID_SHADOWS='vampire-the-masquerade-shadows-of-new-york' GAME_NAME_SHADOWS='Vampire: The Masquerade - Shadows of New York' GAME_ID_RECKONING='vampire-the-masquerade-reckoning-of-new-york' GAME_NAME_RECKONING='Vampire: The Masquerade - Reckoning of New York' ARCHIVE_BASE_COTERIES_2_NAME='vampire_the_masquerade_coteries_of_new_york_1_0_12_52098.sh' ARCHIVE_BASE_COTERIES_2_MD5='035735d7a7717c4c31cce156511ec8b0' ARCHIVE_BASE_COTERIES_2_SIZE='3300000' ARCHIVE_BASE_COTERIES_2_VERSION='1.0.12-gog52098' ARCHIVE_BASE_COTERIES_2_URL='https://www.gog.com/game/vampire_the_masquerade_coteries_of_new_york' ARCHIVE_BASE_COTERIES_1_NAME='vampire_the_masquerade_coteries_of_new_york_1_0_9_45543.sh' ARCHIVE_BASE_COTERIES_1_MD5='6310c15fabd1768d00faa57f83f2de5e' ARCHIVE_BASE_COTERIES_1_SIZE='3300000' ARCHIVE_BASE_COTERIES_1_VERSION='1.0.9-gog45543' ARCHIVE_BASE_COTERIES_0_NAME='vampire_the_masquerade_coteries_of_new_york_1_0_7_40980.sh' ARCHIVE_BASE_COTERIES_0_MD5='146113ea6b7295104413d8ce2b1fbf4e' ARCHIVE_BASE_COTERIES_0_SIZE='3200000' ARCHIVE_BASE_COTERIES_0_VERSION='1.0.7-gog40980' ARCHIVE_BASE_SHADOWS_1_NAME='vampire_the_masquerade_shadows_of_new_york_1_0_1_51032.sh' ARCHIVE_BASE_SHADOWS_1_MD5='0ec3a59f889b30e7d632f65dcdf0ac6b' ARCHIVE_BASE_SHADOWS_1_SIZE='3319144' ARCHIVE_BASE_SHADOWS_1_VERSION='1.0.1-gog51032' ARCHIVE_BASE_SHADOWS_1_URL='https://www.gog.com/game/vampire_the_masquerade_shadows_of_new_york' ARCHIVE_BASE_SHADOWS_0_NAME='vampire_the_masquerade_shadows_of_new_york_1_0_0_41075.sh' ARCHIVE_BASE_SHADOWS_0_MD5='e7880d6e417f81f47b079c9cdc4fb907' ARCHIVE_BASE_SHADOWS_0_SIZE='3300000' ARCHIVE_BASE_SHADOWS_0_VERSION='1.0.0-gog41075' ARCHIVE_BASE_RECKONING_0_NAME='setup_vampire_the_masquerade_-_reckoning_of_new_york_1.0.1.1147_(64bit)_(76185).exe' ARCHIVE_BASE_RECKONING_0_MD5='8dd698c31c0f26818b109543436ea94f' ARCHIVE_BASE_RECKONING_0_TYPE='innosetup' ARCHIVE_BASE_RECKONING_0_SIZE='792005' ARCHIVE_BASE_RECKONING_0_VERSION='1.0.1.1147-gog76185' ARCHIVE_BASE_RECKONING_0_URL='https://www.gog.com/game/vampire_the_masquerade_reckoning_of_new_york' UNITY3D_NAME_COTERIES='VtM Coteries of New York' UNITY3D_NAME_SHADOWS='Vampire the Masquerade - Shadows of New York' UNITY3D_NAME_RECKONING='vtm reckoning of new york' UNITY3D_PLUGINS=' libfmod.so libfmodstudio.so' CONTENT_PATH_DEFAULT_LINUX='data/noarch/game' CONTENT_PATH_DEFAULT_COTERIES="$CONTENT_PATH_DEFAULT_LINUX" CONTENT_PATH_DEFAULT_SHADOWS="$CONTENT_PATH_DEFAULT_LINUX" CONTENT_PATH_DEFAULT_RECKONING='.' WINE_PERSISTENT_DIRECTORIES_RECKONING=' users/${USER}/AppData/LocalLow/DrawDistance/VtM Reckoning of New York' ## Default to windowed mode on first launch APP_MAIN_PRERUN_COTERIES=' # Default to windowed mode on first launch config_file="${XDG_CONFIG_HOME:="$HOME/.config"}/unity3d/DrawDistance/VtM Coteries of New York/Saves/Settings.save" if [ ! -e "$config_file" ]; then mkdir --parents "$(dirname "$config_file")" cat > "$config_file" <<- EOF {"FullScreenMode":false} EOF fi ' APP_MAIN_PRERUN_SHADOWS=' # Default to windowed mode on first launch config_file="${XDG_CONFIG_HOME:="$HOME/.config"}/unity3d/DrawDistance/VtM Shadows of New York/Saves/Settings.save" if [ ! -e "$config_file" ]; then mkdir --parents "$(dirname "$config_file")" cat > "$config_file" <<- EOF {"FullScreenMode":false} EOF fi ' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES_LINUX=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN_DEPENDENCIES_LIBRARIES_COTERIES="$PKG_BIN_DEPENDENCIES_LIBRARIES_LINUX" PKG_BIN_DEPENDENCIES_LIBRARIES_SHADOWS="$PKG_BIN_DEPENDENCIES_LIBRARIES_LINUX" PKG_DATA_ID_COTERIES="${GAME_ID_COTERIES}-data" PKG_DATA_ID_SHADOWS="${GAME_ID_SHADOWS}-data" PKG_DATA_ID_RECKONING="${GAME_ID_RECKONING}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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-victor-vran-expansions.sh0000750000000000000000000000442614471751340016620 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 vv221@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.sh0000750000000000000000000000665714471751340014443 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 vv221@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-war-for-the-overworld-expansions-themes.sh0000750000000000000000000002300214471751340021774 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # War for the Overworld themes: # - The Cynical Imp # - Founders Theme # - Kickstarter Theme # - Underlord Edition # - Seasonal Worker Skins # send your bug reports to vv221@dotslashplay.it ### script_version=20250427.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='war-for-the-overworld' GAME_NAME='War for the Overworld' EXPANSION_ID_UNDERLORD='underlord-edition' EXPANSION_NAME_UNDERLORD='Underlord Edition' EXPANSION_ID_FOUNDERS='founders-theme' EXPANSION_NAME_FOUNDERS='Founders Theme' EXPANSION_ID_KICKSTARTER='kickstarter-theme' EXPANSION_NAME_KICKSTARTER='Kickstarter Theme' EXPANSION_ID_CYNICAL='the-cynical-imp' EXPANSION_NAME_CYNICAL='The Cynical Imp' EXPANSION_ID_SEASONALWORKER='seasonal-worker-skins' EXPANSION_NAME_SEASONALWORKER='Seasonal Worker Skins' # Archives ## Underlord Edition ARCHIVE_BASE_UNDERLORD_9_NAME='war_for_the_overworld_underlord_edition_upgrade_v2_1_3_81115.sh' ARCHIVE_BASE_UNDERLORD_9_MD5='5eac82814fdebfba78d4370a4b0519d6' ARCHIVE_BASE_UNDERLORD_9_SIZE='1048' ARCHIVE_BASE_UNDERLORD_9_VERSION='2.1.3-gog81115' ARCHIVE_BASE_UNDERLORD_9_URL='https://www.gog.com/game/war_for_the_overworld_underlord_edition_upgrade' ARCHIVE_BASE_UNDERLORD_8_NAME='war_for_the_overworld_underlord_edition_upgrade_v2_1_2_76431.sh' ARCHIVE_BASE_UNDERLORD_8_MD5='c214676919d7475a5dc2558ab8481b2e' ARCHIVE_BASE_UNDERLORD_8_SIZE='1048' ARCHIVE_BASE_UNDERLORD_8_VERSION='2.1.2-gog76431' ARCHIVE_BASE_UNDERLORD_7_NAME='war_for_the_overworld_underlord_edition_upgrade_v2_1_1_73576.sh' ARCHIVE_BASE_UNDERLORD_7_MD5='066e110e2b85ffca512ce8c8d3d67ca3' ARCHIVE_BASE_UNDERLORD_7_SIZE='1048' ARCHIVE_BASE_UNDERLORD_7_VERSION='2.1.1-gog73576' ARCHIVE_BASE_UNDERLORD_6_NAME='war_for_the_overworld_underlord_edition_upgrade_v2_1_0f4_55096.sh' ARCHIVE_BASE_UNDERLORD_6_MD5='b2b81108728fe2bbadd51c7897f9269c' ARCHIVE_BASE_UNDERLORD_6_SIZE='1400' ARCHIVE_BASE_UNDERLORD_6_VERSION='2.1.0f4-gog55096' ARCHIVE_BASE_UNDERLORD_5_NAME='war_for_the_overworld_underlord_edition_upgrade_2_0_7f1_gog_36563.sh' ARCHIVE_BASE_UNDERLORD_5_MD5='7cd85994986cf75f9fd81d4be0df82fe' ARCHIVE_BASE_UNDERLORD_5_SIZE='1300' ARCHIVE_BASE_UNDERLORD_5_VERSION='2.0.7f1-gog36563' ARCHIVE_BASE_UNDERLORD_4_NAME='war_for_the_overworld_underlord_edition_upgrade_2_0_7f1_30014.sh' ARCHIVE_BASE_UNDERLORD_4_MD5='9d67c88dd331703315e9056dc6abb78c' ARCHIVE_BASE_UNDERLORD_4_SIZE='1300' ARCHIVE_BASE_UNDERLORD_4_VERSION='2.0.6f1-gog30014' ARCHIVE_BASE_UNDERLORD_3_NAME='war_for_the_overworld_underlord_edition_upgrade_2_0_6f1_24637.sh' ARCHIVE_BASE_UNDERLORD_3_MD5='0be12c1160fdba4f180dc3776f1bb21e' ARCHIVE_BASE_UNDERLORD_3_SIZE='1300' ARCHIVE_BASE_UNDERLORD_3_VERSION='2.0.6f1-gog24637' ARCHIVE_BASE_UNDERLORD_2_NAME='war_for_the_overworld_underlord_edition_upgrade_2_0_5_24177.sh' ARCHIVE_BASE_UNDERLORD_2_MD5='97857939a158c470d04936bc580838c2' ARCHIVE_BASE_UNDERLORD_2_SIZE='1300' ARCHIVE_BASE_UNDERLORD_2_VERSION='2.0.5-gog24177' ## Founders Theme ARCHIVE_BASE_FOUNDERS_4_NAME='war_for_the_overworld_founders_theme_charity_v2_1_3_81115.sh' ARCHIVE_BASE_FOUNDERS_4_MD5='a80bb2ec79ec76ff3187bbcabba83732' ARCHIVE_BASE_FOUNDERS_4_SIZE='1048' ARCHIVE_BASE_FOUNDERS_4_VERSION='2.1.3-gog81115' ARCHIVE_BASE_FOUNDERS_4_URL='http://buy.wftogame.com/charity/' ARCHIVE_BASE_FOUNDERS_3_NAME='war_for_the_overworld_founders_theme_charity_v2_1_2_76431.sh' ARCHIVE_BASE_FOUNDERS_3_MD5='5d3a4a047ff40d4d6aede45bc92241a5' ARCHIVE_BASE_FOUNDERS_3_SIZE='1048' ARCHIVE_BASE_FOUNDERS_3_VERSION='2.1.2-gog76431' ARCHIVE_BASE_FOUNDERS_2_NAME='war_for_the_overworld_founders_theme_charity_v2_1_1_73576.sh' ARCHIVE_BASE_FOUNDERS_2_MD5='1b12880acd1ddbd352ff8321e6c0b6c8' ARCHIVE_BASE_FOUNDERS_2_SIZE='1048' ARCHIVE_BASE_FOUNDERS_2_VERSION='2.1.1-gog73576' ARCHIVE_BASE_FOUNDERS_1_NAME='war_for_the_overworld_founders_theme_charity_v2_1_0f4_55096.sh' ARCHIVE_BASE_FOUNDERS_1_MD5='0313b90d995d5f527feea040995677f7' ARCHIVE_BASE_FOUNDERS_1_SIZE='1400' ARCHIVE_BASE_FOUNDERS_1_VERSION='2.1.0f4-gog55096' ARCHIVE_BASE_FOUNDERS_0_NAME='war_for_the_overworld_founders_theme_charity_2_0_7f1_gog_36563.sh' ARCHIVE_BASE_FOUNDERS_0_MD5='a8fec55ffb2c9eda265f7f346c8998e6' ARCHIVE_BASE_FOUNDERS_0_SIZE='1300' ARCHIVE_BASE_FOUNDERS_0_VERSION='2.0.7f1-gog36563' ## Kickstarter Theme ARCHIVE_BASE_KICKSTARTER_4_NAME='war_for_the_overworld_kickstarter_theme_charity_v2_1_3_81115.sh' ARCHIVE_BASE_KICKSTARTER_4_MD5='d19a49bf32c6686d82ba4d0a2ebddd26' ARCHIVE_BASE_KICKSTARTER_4_SIZE='1048' ARCHIVE_BASE_KICKSTARTER_4_VERSION='2.1.3-gog81115' ARCHIVE_BASE_KICKSTARTER_4_URL='http://buy.wftogame.com/charity/' ARCHIVE_BASE_KICKSTARTER_3_NAME='war_for_the_overworld_kickstarter_theme_charity_v2_1_2_76431.sh' ARCHIVE_BASE_KICKSTARTER_3_MD5='e5f937fe8b8b2b323d06e7b77c579d45' ARCHIVE_BASE_KICKSTARTER_3_SIZE='1048' ARCHIVE_BASE_KICKSTARTER_3_VERSION='2.1.2-gog76431' ARCHIVE_BASE_KICKSTARTER_2_NAME='war_for_the_overworld_kickstarter_theme_charity_v2_1_1_73576.sh' ARCHIVE_BASE_KICKSTARTER_2_MD5='d63028e7708e7bbf167d4ea44db42ab6' ARCHIVE_BASE_KICKSTARTER_2_SIZE='1048' ARCHIVE_BASE_KICKSTARTER_2_VERSION='2.1.1-gog73576' ARCHIVE_BASE_KICKSTARTER_1_NAME='war_for_the_overworld_kickstarter_theme_charity_v2_1_0f4_55096.sh' ARCHIVE_BASE_KICKSTARTER_1_MD5='194826ab3072cd5007a8214fe96bc071' ARCHIVE_BASE_KICKSTARTER_1_SIZE='1400' ARCHIVE_BASE_KICKSTARTER_1_VERSION='2.1.0f4-gog55096' ARCHIVE_BASE_KICKSTARTER_0_NAME='war_for_the_overworld_kickstarter_theme_charity_2_0_7f1_gog_36563.sh' ARCHIVE_BASE_KICKSTARTER_0_MD5='9ee5fad56ab9dd6676ab4718fa7e5e2e' ARCHIVE_BASE_KICKSTARTER_0_SIZE='1300' ARCHIVE_BASE_KICKSTARTER_0_VERSION='2.0.7f1-gog36563' ## The Cynical Imp ARCHIVE_BASE_CYNICAL_4_NAME='war_for_the_overworld_cynical_imp_charity_v2_1_3_81115.sh' ARCHIVE_BASE_CYNICAL_4_MD5='2d9da5fc41705b70bbda8dd2ae382ea6' ARCHIVE_BASE_CYNICAL_4_SIZE='1048' ARCHIVE_BASE_CYNICAL_4_VERSION='2.1.3-gog81115' ARCHIVE_BASE_CYNICAL_4_URL='http://buy.wftogame.com/charity/' ARCHIVE_BASE_CYNICAL_3_NAME='war_for_the_overworld_cynical_imp_charity_v2_1_2_76431.sh' ARCHIVE_BASE_CYNICAL_3_MD5='39148177572cbb5a953eede826816cf7' ARCHIVE_BASE_CYNICAL_3_SIZE='1048' ARCHIVE_BASE_CYNICAL_3_VERSION='2.1.2-gog76431' ARCHIVE_BASE_CYNICAL_2_NAME='war_for_the_overworld_cynical_imp_charity_v2_1_1_73576.sh' ARCHIVE_BASE_CYNICAL_2_MD5='a82cbdad5ac4320dac813d5d588af23d' ARCHIVE_BASE_CYNICAL_2_SIZE='1048' ARCHIVE_BASE_CYNICAL_2_VERSION='2.1.1-gog73576' ARCHIVE_BASE_CYNICAL_1_NAME='war_for_the_overworld_cynical_imp_charity_v2_1_0f4_55096.sh' ARCHIVE_BASE_CYNICAL_1_MD5='7941c2d30434ec481056ca668d8901d6' ARCHIVE_BASE_CYNICAL_1_SIZE='1400' ARCHIVE_BASE_CYNICAL_1_VERSION='2.1.0f4-gog55096' ARCHIVE_BASE_CYNICAL_0_NAME='war_for_the_overworld_cynical_imp_charity_2_0_7f1_gog_36563.sh' ARCHIVE_BASE_CYNICAL_0_MD5='301e40e80942c2382dbf892fd3801216' ARCHIVE_BASE_CYNICAL_0_SIZE='1300' ARCHIVE_BASE_CYNICAL_0_VERSION='2.0.7f1-gog36563' ## Seasonal Worker Skins ARCHIVE_BASE_SEASONALWORKER_5_NAME='war_for_the_overworld_seasonal_worker_skins_v2_1_3_81115.sh' ARCHIVE_BASE_SEASONALWORKER_5_MD5='6b99c1003b6712b50cf0e77afbbb951c' ARCHIVE_BASE_SEASONALWORKER_5_SIZE='1048' ARCHIVE_BASE_SEASONALWORKER_5_VERSION='2.1.3-gog81115' ARCHIVE_BASE_SEASONALWORKER_5_URL='https://www.gog.com/game/war_for_the_overworld_worker_skin_collection' ARCHIVE_BASE_SEASONALWORKER_4_NAME='war_for_the_overworld_seasonal_worker_skins_v2_1_2_76431.sh' ARCHIVE_BASE_SEASONALWORKER_4_MD5='941ee4e1fd7a37a9862f79054bbb8b00' ARCHIVE_BASE_SEASONALWORKER_4_SIZE='1048' ARCHIVE_BASE_SEASONALWORKER_4_VERSION='2.1.2-gog76431' ARCHIVE_BASE_SEASONALWORKER_3_NAME='war_for_the_overworld_seasonal_worker_skins_v2_1_1_73576.sh' ARCHIVE_BASE_SEASONALWORKER_3_MD5='a74c7dc94c79c37a328a15d9cc4a8385' ARCHIVE_BASE_SEASONALWORKER_3_SIZE='1048' ARCHIVE_BASE_SEASONALWORKER_3_VERSION='2.1.1-gog73576' ARCHIVE_BASE_SEASONALWORKER_2_NAME='war_for_the_overworld_seasonal_worker_skins_v2_1_0f4_55096.sh' ARCHIVE_BASE_SEASONALWORKER_2_MD5='874a21a49ba212ef716e35e0a5b98357' ARCHIVE_BASE_SEASONALWORKER_2_SIZE='1400' ARCHIVE_BASE_SEASONALWORKER_2_VERSION='2.1.0f4-gog55096' ARCHIVE_BASE_SEASONALWORKER_1_NAME='war_for_the_overworld_seasonal_worker_skins_2_0_7f1_gog_36563.sh' ARCHIVE_BASE_SEASONALWORKER_1_MD5='ccc02cab316dff3f6a9351217f38f029' ARCHIVE_BASE_SEASONALWORKER_1_SIZE='1400' ARCHIVE_BASE_SEASONALWORKER_1_VERSION='2.0.7f1-gog36563' ARCHIVE_BASE_SEASONALWORKER_0_NAME='war_for_the_overworld_seasonal_worker_skins_2_0_7f1_30014.sh' ARCHIVE_BASE_SEASONALWORKER_0_MD5='6b4c2c19a901547b1fe9a8a51edab522' ARCHIVE_BASE_SEASONALWORKER_0_SIZE='1400' ARCHIVE_BASE_SEASONALWORKER_0_VERSION='2.0.6f1-gog30014' 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-war-for-the-overworld-expansions.sh0000750000000000000000000001502314471751340020515 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # War for the Overworld expansions: # - My Pet Dungeon # - Heart of Gold # - The Under Games # send your bug reports to vv221@dotslashplay.it ### script_version=20250427.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='war-for-the-overworld' GAME_NAME='War for the Overworld' EXPANSION_ID_PETDUNGEON='my-pet-dungeon' EXPANSION_NAME_PETDUNGEON='My Pet Dungeon' EXPANSION_ID_HEARTOFGOLD='heart-of-gold' EXPANSION_NAME_HEARTOFGOLD='Heart of Gold' EXPANSION_ID_UNDERGAMES='the-under-games' EXPANSION_NAME_UNDERGAMES='The Under Games' # Archives ## My Pet Dungeon ARCHIVE_BASE_PETDUNGEON_8_NAME='war_for_the_overworld_my_pet_dungeon_v2_1_3_81115.sh' ARCHIVE_BASE_PETDUNGEON_8_MD5='31070753b7800ecce32b82ed5582fad7' ARCHIVE_BASE_PETDUNGEON_8_SIZE='1048' ARCHIVE_BASE_PETDUNGEON_8_VERSION='2.1.3-gog81115' ARCHIVE_BASE_PETDUNGEON_8_URL='https://www.gog.com/game/war_for_the_overworld_my_pet_dungeon' ARCHIVE_BASE_PETDUNGEON_7_NAME='war_for_the_overworld_my_pet_dungeon_v2_1_2_76431.sh' ARCHIVE_BASE_PETDUNGEON_7_MD5='4561b9cb3f6405c7c576da87e9e74175' ARCHIVE_BASE_PETDUNGEON_7_SIZE='1048' ARCHIVE_BASE_PETDUNGEON_7_VERSION='2.1.2-gog76431' ARCHIVE_BASE_PETDUNGEON_6_NAME='war_for_the_overworld_my_pet_dungeon_v2_1_1_73576.sh' ARCHIVE_BASE_PETDUNGEON_6_MD5='435ec9378fbefad46ad4827d870b84e1' ARCHIVE_BASE_PETDUNGEON_6_SIZE='1048' ARCHIVE_BASE_PETDUNGEON_6_VERSION='2.1.1-gog73576' ARCHIVE_BASE_PETDUNGEON_5_NAME='war_for_the_overworld_my_pet_dungeon_v2_1_0f4_55096.sh' ARCHIVE_BASE_PETDUNGEON_5_MD5='5aadd3ab719d2fd71df604708b9a29e1' ARCHIVE_BASE_PETDUNGEON_5_SIZE='1400' ARCHIVE_BASE_PETDUNGEON_5_VERSION='2.1.0f4-gog55096' ARCHIVE_BASE_PETDUNGEON_4_NAME='war_for_the_overworld_my_pet_dungeon_2_0_7f1_gog_36563.sh' ARCHIVE_BASE_PETDUNGEON_4_MD5='55fd7104b3c3141bc38a2809ae470c92' ARCHIVE_BASE_PETDUNGEON_4_SIZE='1400' ARCHIVE_BASE_PETDUNGEON_4_VERSION='2.0.7f1-gog36563' ARCHIVE_BASE_PETDUNGEON_3_NAME='war_for_the_overworld_my_pet_dungeon_2_0_7f1_30014.sh' ARCHIVE_BASE_PETDUNGEON_3_MD5='f9cd5f6fbe46d46c98837410f8cbfeee' ARCHIVE_BASE_PETDUNGEON_3_SIZE='1400' ARCHIVE_BASE_PETDUNGEON_3_VERSION='2.0.6f1-gog30014' ARCHIVE_BASE_PETDUNGEON_2_NAME='war_for_the_overworld_my_pet_dungeon_2_0_6f1_24637.sh' ARCHIVE_BASE_PETDUNGEON_2_MD5='7788aeeee1e9c7cd365eb595e772ff52' ARCHIVE_BASE_PETDUNGEON_2_SIZE='1400' ARCHIVE_BASE_PETDUNGEON_2_VERSION='2.0.6f1-gog24637' ARCHIVE_BASE_PETDUNGEON_1_NAME='war_for_the_overworld_my_pet_dungeon_2_0_5_24177.sh' ARCHIVE_BASE_PETDUNGEON_1_MD5='eb45d5ee8c699d9ded7d15b82ad1efa3' ARCHIVE_BASE_PETDUNGEON_1_SIZE='1400' ARCHIVE_BASE_PETDUNGEON_1_VERSION='2.0.5-gog24177' ## Heart of Gold ARCHIVE_BASE_HEARTOFGOLD_5_NAME='war_for_the_overworld_heart_of_gold_v2_1_3_81115.sh' ARCHIVE_BASE_HEARTOFGOLD_5_MD5='2b1629d133d9c9291e4d7ab3e7ae82c0' ARCHIVE_BASE_HEARTOFGOLD_5_SIZE='1048' ARCHIVE_BASE_HEARTOFGOLD_5_VERSION='2.1.3-gog81115' ARCHIVE_BASE_HEARTOFGOLD_5_URL='https://www.gog.com/game/war_for_the_overworld_heart_of_gold' ARCHIVE_BASE_HEARTOFGOLD_4_NAME='war_for_the_overworld_heart_of_gold_v2_1_2_76431.sh' ARCHIVE_BASE_HEARTOFGOLD_4_MD5='c3acb781eda622962857b70416fc7a54' ARCHIVE_BASE_HEARTOFGOLD_4_SIZE='1048' ARCHIVE_BASE_HEARTOFGOLD_4_VERSION='2.1.2-gog76431' ARCHIVE_BASE_HEARTOFGOLD_3_NAME='war_for_the_overworld_heart_of_gold_v2_1_1_73576.sh' ARCHIVE_BASE_HEARTOFGOLD_3_MD5='653ab69838583a231b7cc8128286e183' ARCHIVE_BASE_HEARTOFGOLD_3_SIZE='1048' ARCHIVE_BASE_HEARTOFGOLD_3_VERSION='2.1.1-gog73576' ARCHIVE_BASE_HEARTOFGOLD_2_NAME='war_for_the_overworld_heart_of_gold_v2_1_0f4_55096.sh' ARCHIVE_BASE_HEARTOFGOLD_2_MD5='c492a072ab257817abeb7c80f76c1eca' ARCHIVE_BASE_HEARTOFGOLD_2_SIZE='1400' ARCHIVE_BASE_HEARTOFGOLD_2_VERSION='2.1.0f4-gog55096' ARCHIVE_BASE_HEARTOFGOLD_1_NAME='war_for_the_overworld_heart_of_gold_2_0_7f1_gog_36563.sh' ARCHIVE_BASE_HEARTOFGOLD_1_MD5='c512019fa698759ba0a96e79fadcb06e' ARCHIVE_BASE_HEARTOFGOLD_1_SIZE='1400' ARCHIVE_BASE_HEARTOFGOLD_1_VERSION='2.0.7f1-gog36563' ARCHIVE_BASE_HEARTOFGOLD_0_NAME='war_for_the_overworld_heart_of_gold_2_0_7f1_30014.sh' ARCHIVE_BASE_HEARTOFGOLD_0_MD5='2d3555bfea2aafca9ff9e8eb7a970c0d' ARCHIVE_BASE_HEARTOFGOLD_0_SIZE='1400' ARCHIVE_BASE_HEARTOFGOLD_0_VERSION='2.0.6f1-gog30014' ## The Under Games ARCHIVE_BASE_UNDERGAMES_4_NAME='war_for_the_overworld_the_under_games_v2_1_3_81115.sh' ARCHIVE_BASE_UNDERGAMES_4_MD5='d408718a67271601c0d3b57ccc5c07a7' ARCHIVE_BASE_UNDERGAMES_4_SIZE='1048' ARCHIVE_BASE_UNDERGAMES_4_VERSION='2.1.3-gog81115' ARCHIVE_BASE_UNDERGAMES_4_URL='https://www.gog.com/game/war_for_the_overworld_the_under_games' ARCHIVE_BASE_UNDERGAMES_3_NAME='war_for_the_overworld_the_under_games_v2_1_2_76431.sh' ARCHIVE_BASE_UNDERGAMES_3_MD5='09378c271fee3fd4eac40d14f6161831' ARCHIVE_BASE_UNDERGAMES_3_SIZE='1048' ARCHIVE_BASE_UNDERGAMES_3_VERSION='2.1.2-gog76431' ARCHIVE_BASE_UNDERGAMES_2_NAME='war_for_the_overworld_the_under_games_v2_1_1_73576.sh' ARCHIVE_BASE_UNDERGAMES_2_MD5='820594211c64b3fe94716921c1da3f73' ARCHIVE_BASE_UNDERGAMES_2_SIZE='1048' ARCHIVE_BASE_UNDERGAMES_2_VERSION='2.1.1-gog73576' ARCHIVE_BASE_UNDERGAMES_1_NAME='war_for_the_overworld_the_under_games_v2_1_0f4_55096.sh' ARCHIVE_BASE_UNDERGAMES_1_MD5='8c7bdf2299a2cc5795f92e58c94aa57b' ARCHIVE_BASE_UNDERGAMES_1_SIZE='1400' ARCHIVE_BASE_UNDERGAMES_1_VERSION='2.1.0f4-gog55096' ARCHIVE_BASE_UNDERGAMES_0_NAME='war_for_the_overworld_the_under_games_2_0_7f1_gog_36563.sh' ARCHIVE_BASE_UNDERGAMES_0_MD5='c63ba259c40ab080f697fe03678d287e' ARCHIVE_BASE_UNDERGAMES_0_SIZE='1400' ARCHIVE_BASE_UNDERGAMES_0_VERSION='2.0.7f1-gog36563' 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-war-for-the-overworld.sh0000750000000000000000000001207114471751340016330 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # War for the Overworld # send your bug reports to vv221@dotslashplay.it ### script_version=20250427.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='war-for-the-overworld' GAME_NAME='War for the Overworld' ARCHIVE_BASE_9_NAME='war_for_the_overworld_v2_1_3_81115.sh' ARCHIVE_BASE_9_MD5='1b18aa35479357a3ecb02d8763935705' ARCHIVE_BASE_9_SIZE='5085906' ARCHIVE_BASE_9_VERSION='2.1.3-gog81115' ARCHIVE_BASE_9_URL='https://www.gog.com/game/war_for_the_overworld' ARCHIVE_BASE_8_NAME='war_for_the_overworld_v2_1_2_76431.sh' ARCHIVE_BASE_8_MD5='e834b2a81bff0a36dc50fcf7a061abec' ARCHIVE_BASE_8_SIZE='4814079' ARCHIVE_BASE_8_VERSION='2.1.2-gog76431' ARCHIVE_BASE_7_NAME='war_for_the_overworld_v2_1_1_73576.sh' ARCHIVE_BASE_7_MD5='d3095d210fda9c39cd2cec6c2d0a882f' ARCHIVE_BASE_7_SIZE='4792845' ARCHIVE_BASE_7_VERSION='2.1.1-gog73576' ARCHIVE_BASE_6_NAME='war_for_the_overworld_v2_1_0f4_55096.sh' ARCHIVE_BASE_6_MD5='97a9bd6ee2f88fa9c64a75cd578d3677' ARCHIVE_BASE_6_SIZE='4800000' ARCHIVE_BASE_6_VERSION='2.1.0f4-gog55096' ARCHIVE_BASE_5_NAME='war_for_the_overworld_2_0_7f1_gog_36563.sh' ARCHIVE_BASE_5_MD5='e957781ef8559841ed2e32032e43d2cd' ARCHIVE_BASE_5_SIZE='4700000' ARCHIVE_BASE_5_VERSION='2.0.7f1-gog36563' ARCHIVE_BASE_4_NAME='war_for_the_overworld_2_0_7f1_30014.sh' ARCHIVE_BASE_4_MD5='a352307c8fbf70c33bdfdd97a82c6530' ARCHIVE_BASE_4_SIZE='4700000' ARCHIVE_BASE_4_VERSION='2.0.6f1-gog30014' ARCHIVE_BASE_3_NAME='war_for_the_overworld_2_0_6f1_24637.sh' ARCHIVE_BASE_3_MD5='e58f2720ed974185e9e5b29d08aa6238' ARCHIVE_BASE_3_SIZE='4700000' ARCHIVE_BASE_3_VERSION='2.0.6f1-gog24637' ARCHIVE_BASE_2_NAME='war_for_the_overworld_2_0_5_24177.sh' ARCHIVE_BASE_2_MD5='79b604f0d19caf3af5fdc4cb3903b370' ARCHIVE_BASE_2_SIZE='4700000' ARCHIVE_BASE_2_VERSION='2.0.5-gog24177' ARCHIVE_BASE_1_NAME='war_for_the_overworld_en_2_0_4_23102.sh' ARCHIVE_BASE_1_MD5='2873095f86b17c613b84af9624986f42' ARCHIVE_BASE_1_SIZE='4700000' ARCHIVE_BASE_1_VERSION='2.0.4-gog23102' ARCHIVE_BASE_0_NAME='war_for_the_overworld_en_2_0_3f1_22287.sh' ARCHIVE_BASE_0_MD5='4f1ff4e136aeaa795fce8ba26445cbe8' ARCHIVE_BASE_0_SIZE='4700000' ARCHIVE_BASE_0_VERSION='2.0.3f1-gog22287' UNITY3D_NAME='WFTOGame' UNITY3D_PLUGINS=' libCoherentGTCore.so libCoherentGTJS.so libcoherenticudata.so libcoherenticui18n.so libcoherenticuuc.so libCoherentUIGT_Native.so libGameLogic.so libRenoirCore.Linux.so libWTF.so ScreenSelector.so' ## If libsteam_api.so is not included, ending a level will fail. UNITY3D_PLUGINS="${UNITY3D_PLUGINS:-} libsteam_api.so" CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME0_BIN_FILES=" ${UNITY3D_NAME}_Data/CoherentUI_Host" CONTENT_GAME0_DATA_FILES=' GameData *.info' USER_PERSISTENT_DIRECTORIES=" GameData ${UNITY3D_NAME}_Data/GameData ${UNITY3D_NAME}_Data/uiresources/minimapSnapshot" ## Work around the engine inability to play video files without write permissions USER_PERSISTENT_DIRECTORIES="${USER_PERSISTENT_DIRECTORIES:-} ${UNITY3D_NAME}_Data/uiresources/wftoUI/menu/vids" PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 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)" ## Add required execution permissions (this is only required by some old builds of the game) for file in \ "$(unity3d_name)_Data/CoherentUI_Host/linux/CoherentUI_Host" \ "$(unity3d_name)_Data/CoherentUI_Host/linux/CoherentUI_Host.bin" do if [ -e "$file" ]; then chmod 755 "$file" fi done ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default ## Link some Unity3D plugin libraries in the game data path as the game engine fails to find them otherwise libraries_destination="$(package_path 'PKG_BIN')$(path_game_data)/$(unity3d_name)_Data/Plugins/x86_64" mkdir --parents "$libraries_destination" ln --symbolic \ "$(path_libraries)/libCoherentUIGT_Native.so" \ "$(path_libraries)/libGameLogic.so" \ "$libraries_destination" # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-warcraft-3-expansions.sh0000750000000000000000000001221114471751340016306 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Warcraft 3 expansions: # - The Frozen Throne # send your bug reports to vv221@dotslashplay.it ### script_version=20241124.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='warcraft-3' GAME_NAME='Warcraft Ⅲ' EXPANSION_ID='the-frozen-throne' EXPANSION_NAME='The Frozen Throne' ARCHIVE_BASE_EN_0_NAME='Installer Tome.mpq' ARCHIVE_BASE_EN_0_MD5='04f1a75841df58a839ea3c2ea9d46a7e' ARCHIVE_BASE_EN_0_SIZE='612802' ARCHIVE_BASE_EN_0_VERSION='1.27-blizzard1' ARCHIVE_BASE_EN_0_URL='https://eu.battle.net/download/getLegacy?os=win&locale=enUS&product=W3XP' ARCHIVE_BASE_FR_0_NAME='Installer Tome.mpq' ARCHIVE_BASE_FR_0_MD5='050d7b179b1c8c784f3ff40fae077f6e' ARCHIVE_BASE_FR_0_SIZE='661687' ARCHIVE_BASE_FR_0_VERSION='1.27-blizzard1' ARCHIVE_BASE_FR_0_URL='https://eu.battle.net/download/getLegacy?os=win&locale=frFR&product=W3XP' ARCHIVE_BASE_DE_0_NAME='Installer Tome.mpq' ARCHIVE_BASE_DE_0_MD5='fdb12d1362e846c189e10b24ef3feee6' ARCHIVE_BASE_DE_0_SIZE='654348' ARCHIVE_BASE_DE_0_VERSION='1.27-blizzard1' ARCHIVE_BASE_DE_0_URL='https://eu.battle.net/download/getLegacy?os=win&locale=deDE&product=W3XP' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_PATH='PC' ## Frozen Throne.exe is distinct between the English and the French build of the game, ## for now we assume the differences are not critical and one can be used in place of the other. CONTENT_GAME_BIN_FILES=' Frozen Throne.exe' CONTENT_GAME_DATA_PATH='Common' CONTENT_GAME_DATA_FILES=' Maps/FrozenThrone Movies/IntroX.mpq Movies/OutroX.mpq War3x.mpq War3xLocal.mpq' CONTENT_GAME_DATA_SHARED_PATH='Common' CONTENT_GAME_DATA_SHARED_FILES=' War3Patch.mpq' USER_PERSISTENT_DIRECTORIES=' Campaigns Maps Replay Save' APP_MAIN_ID="${GAME_ID}-${EXPANSION_ID}" APP_MAIN_NAME="${GAME_NAME}: ${EXPANSION_NAME}" APP_MAIN_EXE='Frozen Throne.exe' APP_MAIN_OPTIONS='-opengl' APP_MAIN_ICON='PC/Frozen Throne.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA PKG_DATA_SHARED' PKG_PARENT_ID="$GAME_ID" PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA_BASE PKG_PARENT' PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/x-msvideo' PKG_DATA_BASE_ID="${GAME_ID}-${EXPANSION_ID}-data" PKG_DATA_ID_EN="${PKG_DATA_BASE_ID}-en" PKG_DATA_ID_FR="${PKG_DATA_BASE_ID}-fr" PKG_DATA_ID_DE="${PKG_DATA_BASE_ID}-de" PKG_DATA_PROVIDES=" $PKG_DATA_BASE_ID" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_DATA_SHARED' PKG_DATA_SHARED_ID="${PKG_DATA_BASE_ID}-shared" PKG_DATA_SHARED_ID_EN="${PKG_DATA_SHARED_ID}-en" PKG_DATA_SHARED_ID_FR="${PKG_DATA_SHARED_ID}-fr" PKG_DATA_SHARED_ID_DE="${PKG_DATA_SHARED_ID}-de" PKG_DATA_SHARED_PROVIDES=" $PKG_DATA_SHARED_ID ${GAME_ID}-data-shared" PKG_DATA_SHARED_PROVIDES_EN="$PKG_DATA_SHARED_PROVIDES ${GAME_ID}-data-shared-en" PKG_DATA_SHARED_PROVIDES_FR="$PKG_DATA_SHARED_PROVIDES ${GAME_ID}-data-shared-fr" PKG_DATA_SHARED_PROVIDES_DE="$PKG_DATA_SHARED_PROVIDES ${GAME_ID}-data-shared-de" PKG_DATA_SHARED_DESCRIPTION='data shared between the base game and the expansion' # Set the list of requirements to extract the archive contents. REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} smpq" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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 the CD key files. ## During a regular install of The Frozen Throne, the CD key is stored encrypted into War3x.mpq, in the files under the "font" directory. ## In order to build a package that includes the CD key (required, or the game will not launch), ## you need to provide the following file in addition to the installer .mpq: ## - font.exp ## ## It can be extracted from a regular Warcraft 3 install with: ## smpq --extract War3x.mpq font/font.exp ARCHIVE_REQUIRED_CDKEY_NAME='font.exp' archive_initialize_required \ 'ARCHIVE_CDKEY' \ 'ARCHIVE_REQUIRED_CDKEY' # Extract game data archive_path=$(archive_path "$(current_archive)") archive_path_cdkey=$(archive_path 'ARCHIVE_CDKEY') mkdir --parents "${PLAYIT_WORKDIR}/gamedata" information_archive_data_extraction "$archive_path" ( cd "${PLAYIT_WORKDIR}/gamedata" smpq --extract "$archive_path" # Update the .mpq file ( cd 'PC-100x' smpq --append --overwrite ../Common/War3x.mpq ./* ) ( cd 'Files' cp --dereference \ "$archive_path_cdkey" \ 'font' smpq --append ../Common/War3x.mpq \ font/font.ccd \ font/font.exp rm --force --recursive 'font' ) ) # 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-warcraft-3.sh0000750000000000000000000001223014471751340014122 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Warcraft 3 # send your bug reports to vv221@dotslashplay.it ### script_version=20241124.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='warcraft-3' GAME_NAME='Warcraft Ⅲ: Reign of Chaos' ARCHIVE_BASE_EN_0_NAME='Installer Tome.mpq' ARCHIVE_BASE_EN_0_MD5='dd5926d8bb6ed10c47617bbc69b0ce1a' ARCHIVE_BASE_EN_0_SIZE='775512' ARCHIVE_BASE_EN_0_VERSION='1.27-blizzard1' ARCHIVE_BASE_EN_0_URL='https://eu.battle.net/download/getLegacy?os=win&locale=enUS&product=WAR3' ARCHIVE_BASE_FR_0_NAME='Installer Tome.mpq' ARCHIVE_BASE_FR_0_MD5='e61e66359b1ceedbf3c3d06b835e6aa1' ARCHIVE_BASE_FR_0_SIZE='801118' ARCHIVE_BASE_FR_0_VERSION='1.27-blizzard1' ARCHIVE_BASE_FR_0_URL='https://eu.battle.net/download/getLegacy?os=win&locale=frFR&product=WAR3' ARCHIVE_BASE_DE_0_NAME='Installer Tome.mpq' ARCHIVE_BASE_DE_0_MD5='d5c1dd8ed66473e6adee36e1f8b528cb' ARCHIVE_BASE_DE_0_SIZE='795612' ARCHIVE_BASE_DE_0_VERSION='1.27-blizzard1' ARCHIVE_BASE_DE_0_URL='https://eu.battle.net/download/getLegacy?os=win&locale=deDE&product=WAR3' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_PATH='PC' ## Warcraft III.exe and World Editor.exe are distinct between the English and the French build of the game, ## for now we assume the differences are not critical and one can be used in place of the other. CONTENT_GAME_BIN_FILES=' redist blizzard.ax *.dll *.exe' CONTENT_GAME_DATA_PATH='Common' CONTENT_GAME_DATA_FILES=' Maps Movies War3.mpq' CONTENT_GAME_DATA_SHARED_PATH='Common' CONTENT_GAME_DATA_SHARED_FILES=' War3Patch.mpq' USER_PERSISTENT_DIRECTORIES=' Campaigns Maps Replay Save' APP_MAIN_EXE='Warcraft III.exe' ## Ensure that Reign of Chaos is started, even if The Frozen Throne is installed APP_MAIN_OPTIONS='-classic -opengl' APP_MAIN_ICON='PC/War3.exe' APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=WAR3.ICO' PACKAGES_LIST=' PKG_BIN PKG_DATA PKG_DATA_SHARED' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA_BASE' PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/x-msvideo' PKG_DATA_BASE_ID="${GAME_ID}-data" PKG_DATA_ID_EN="${PKG_DATA_BASE_ID}-en" PKG_DATA_ID_FR="${PKG_DATA_BASE_ID}-fr" PKG_DATA_ID_DE="${PKG_DATA_BASE_ID}-de" PKG_DATA_PROVIDES=" $PKG_DATA_BASE_ID" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_DATA_SHARED' PKG_DATA_SHARED_ID="${PKG_DATA_BASE_ID}-shared" PKG_DATA_SHARED_ID_EN="${PKG_DATA_SHARED_ID}-en" PKG_DATA_SHARED_ID_FR="${PKG_DATA_SHARED_ID}-fr" PKG_DATA_SHARED_ID_DE="${PKG_DATA_SHARED_ID}-de" PKG_DATA_SHARED_PROVIDES=" $PKG_DATA_SHARED_ID" PKG_DATA_SHARED_DESCRIPTION='data shared between the base game and the expansion' # Set the list of requirements to extract the archive contents. REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} smpq" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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 the CD key files. ## During a regular install of Reign of Chaos, the CD key is stored encrypted into War3.mpq, in the files under the "font" directory. ## In order to build a package that includes the CD key (required, or the game will not launch), ## you need to provide the following files in addition to the installer .mpq: ## - font.clh ## - font.gid ## ## They can be extracted from a regular Warcraft 3 install with: ## smpq --extract War3.mpq font/font.clh font/font.gid ARCHIVE_REQUIRED_CDKEY_1_NAME='font.clh' ARCHIVE_REQUIRED_CDKEY_2_NAME='font.gid' archive_initialize_required \ 'ARCHIVE_CDKEY_1' \ 'ARCHIVE_REQUIRED_CDKEY_1' archive_initialize_required \ 'ARCHIVE_CDKEY_2' \ 'ARCHIVE_REQUIRED_CDKEY_2' # Extract game data archive_path=$(archive_path "$(current_archive)") archive_path_cdkey_1=$(archive_path 'ARCHIVE_CDKEY_1') archive_path_cdkey_2=$(archive_path 'ARCHIVE_CDKEY_2') mkdir --parents "${PLAYIT_WORKDIR}/gamedata" information_archive_data_extraction "$archive_path" ( cd "${PLAYIT_WORKDIR}/gamedata" smpq --extract "$archive_path" # Update the .mpq file ( ## Ensure case consistency between the different builds of the game cd 'Common' if [ -e 'war3.mpq' ]; then mv 'war3.mpq' 'War3.mpq' fi ) ( cd 'PC-100' smpq --append ../Common/War3.mpq ./* ) ( cd 'Files' cp --dereference \ "$archive_path_cdkey_1" \ "$archive_path_cdkey_2" \ 'font' smpq --append ../Common/War3.mpq \ font/font.ccd \ font/font.clh \ font/font.gid rm --force --recursive 'font' ) ) # 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-dawn-of-war.sh0000750000000000000000000004036214471751340016657 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2021 Hoël Bézier set -o errexit ### # Warhammer 40,000: Dawn of War: # - Dawn of War # - Winter Assault # - Dark Crusade # - Soulstorm # send your bug reports to vv221@dotslashplay.it ### script_version=20250713.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='warhammer-40k-dawn-of-war' GAME_NAME='Warhammer 40,000: Dawn of War' GAME_ID_WA="${GAME_ID}-winter-assault" GAME_NAME_WA="$GAME_NAME - Winter Assault" GAME_ID_WA_DEMO="${GAME_ID_WA}-demo" GAME_NAME_WA_DEMO="$GAME_NAME_WA (demo)" GAME_ID_DC="${GAME_ID}-dark-crusade" GAME_NAME_DC="$GAME_NAME - Dark Crusade" GAME_ID_SS="${GAME_ID}-soulstorm" GAME_NAME_SS="$GAME_NAME - Soulstorm" # Archives ## Dawn of War (base game) ARCHIVE_BASE_DOW_EN_0_NAME='setup_warhammer_40000_dawn_of_war_0.19_(64626).exe' ARCHIVE_BASE_DOW_EN_0_MD5='a45fc06675d678b282e7f72f39c2591c' ARCHIVE_BASE_DOW_EN_0_TYPE='innosetup' ARCHIVE_BASE_DOW_EN_0_PART1_NAME='setup_warhammer_40000_dawn_of_war_0.19_(64626)-1.bin' ARCHIVE_BASE_DOW_EN_0_PART1_MD5='e89415bc33d078598a19650ddd80d2be' ARCHIVE_BASE_DOW_EN_0_SIZE='2800000' ARCHIVE_BASE_DOW_EN_0_VERSION='1.51-gog64626' ARCHIVE_BASE_DOW_EN_0_URL='https://www.gog.com/game/warhammer_40000_dawn_of_war' ARCHIVE_BASE_DOW_FR_0_NAME='setup_warhammer_40000_dawn_of_war_0.19_(french)_(64626).exe' ARCHIVE_BASE_DOW_FR_0_MD5='e1cdc8cc2b9a81b390cd1996053d5c04' ARCHIVE_BASE_DOW_FR_0_TYPE='innosetup' ARCHIVE_BASE_DOW_FR_0_PART1_NAME='setup_warhammer_40000_dawn_of_war_0.19_(french)_(64626)-1.bin' ARCHIVE_BASE_DOW_FR_0_PART1_MD5='32eecc81507d84f6d39f9c74aeb5e1ef' ARCHIVE_BASE_DOW_FR_0_SIZE='2800000' ARCHIVE_BASE_DOW_FR_0_VERSION='1.51-gog64626' ARCHIVE_BASE_DOW_FR_0_URL='https://www.gog.com/game/warhammer_40000_dawn_of_war' ## Winter Assault (full game) ARCHIVE_BASE_WA_EN_1_NAME='setup_warhammer_40000_dawn_of_war_-_winter_assault_0.19_(64626).exe' ARCHIVE_BASE_WA_EN_1_MD5='223385b79c6ee7eb691248a943eb53fa' ARCHIVE_BASE_WA_EN_1_TYPE='innosetup' ARCHIVE_BASE_WA_EN_1_PART1_NAME='setup_warhammer_40000_dawn_of_war_-_winter_assault_0.19_(64626)-1.bin' ARCHIVE_BASE_WA_EN_1_PART1_MD5='61e354453cb8638b995f5ed17a4bdbbd' ARCHIVE_BASE_WA_EN_1_SIZE='2763147' ARCHIVE_BASE_WA_EN_1_VERSION='1.51-gog64626' ARCHIVE_BASE_WA_EN_1_URL='https://www.gog.com/game/warhammer_40000_dawn_of_war' ARCHIVE_BASE_WA_FR_1_NAME='setup_warhammer_40000_dawn_of_war_-_winter_assault_0.19_(french)_(64626).exe' ARCHIVE_BASE_WA_FR_1_MD5='99640045bdd625ff55aed497aef96e78' ARCHIVE_BASE_WA_FR_1_TYPE='innosetup' ARCHIVE_BASE_WA_FR_1_PART1_NAME='setup_warhammer_40000_dawn_of_war_-_winter_assault_0.19_(french)_(64626)-1.bin' ARCHIVE_BASE_WA_FR_1_PART1_MD5='e6263848739e9c9975632c0766fae2e1' ARCHIVE_BASE_WA_FR_1_SIZE='2769494' ARCHIVE_BASE_WA_FR_1_VERSION='1.51-gog64626' ARCHIVE_BASE_WA_FR_1_URL='https://www.gog.com/game/warhammer_40000_dawn_of_war' ARCHIVE_BASE_WA_EN_0_NAME='setup_warhammer_40000_dawn_of_war_-_winter_assault_0.19_(64626).exe' ARCHIVE_BASE_WA_EN_0_MD5='a610066c44aee835f0ac608864c31ef9' ARCHIVE_BASE_WA_EN_0_TYPE='innosetup' ARCHIVE_BASE_WA_EN_0_PART1_NAME='setup_warhammer_40000_dawn_of_war_-_winter_assault_0.19_(64626)-1.bin' ARCHIVE_BASE_WA_EN_0_PART1_MD5='fd954304b3f38cccf859edf7ca4e1dd5' ARCHIVE_BASE_WA_EN_0_SIZE='2800000' ARCHIVE_BASE_WA_EN_0_VERSION='1.51-gog64626' ARCHIVE_BASE_WA_FR_0_NAME='setup_warhammer_40000_dawn_of_war_-_winter_assault_0.19_(french)_(64626).exe' ARCHIVE_BASE_WA_FR_0_MD5='9423b22d50f707d794e961aef63a9a44' ARCHIVE_BASE_WA_FR_0_TYPE='innosetup' ARCHIVE_BASE_WA_FR_0_PART1_NAME='setup_warhammer_40000_dawn_of_war_-_winter_assault_0.19_(french)_(64626)-1.bin' ARCHIVE_BASE_WA_FR_0_PART1_MD5='b4a188c7ed2012a9c4fd300af07c831d' ARCHIVE_BASE_WA_FR_0_SIZE='2800000' ARCHIVE_BASE_WA_FR_0_VERSION='1.51-gog64626' ## Winter Assault (free demo) ARCHIVE_BASE_WA_DEMO_EN_0_NAME='Dawn of War - Winter Assault.rar' ARCHIVE_BASE_WA_DEMO_EN_0_MD5='555f5b3844c80866b0cb9fa536692380' ARCHIVE_BASE_WA_DEMO_EN_0_SIZE='480000' ARCHIVE_BASE_WA_DEMO_EN_0_VERSION='1.0-archiveorg1' ARCHIVE_BASE_WA_DEMO_EN_0_URL='https://archive.org/details/DawnOfWarWinterAssault_201404' ## Dark Crusade ARCHIVE_BASE_DC_EN_0_NAME='setup_warhammer_40000_dawn_of_war_-_dark_crusade_0.19_(64626).exe' ARCHIVE_BASE_DC_EN_0_MD5='e54248e3e006fa378e374a9a60f33418' ARCHIVE_BASE_DC_EN_0_TYPE='innosetup' ARCHIVE_BASE_DC_EN_0_PART1_NAME='setup_warhammer_40000_dawn_of_war_-_dark_crusade_0.19_(64626)-1.bin' ARCHIVE_BASE_DC_EN_0_PART1_MD5='8830adc7aa004a800411b0f95919af5f' ARCHIVE_BASE_DC_EN_0_SIZE='4500000' ARCHIVE_BASE_DC_EN_0_VERSION='1.20-gog64626' ARCHIVE_BASE_DC_EN_0_URL='https://www.gog.com/game/warhammer_40000_dawn_of_war' ARCHIVE_BASE_DC_FR_0_NAME='setup_warhammer_40000_dawn_of_war_-_dark_crusade_0.19_(french)_(64626).exe' ARCHIVE_BASE_DC_FR_0_MD5='5a254443909788b595baf16610809056' ARCHIVE_BASE_DC_FR_0_TYPE='innosetup' ARCHIVE_BASE_DC_FR_0_PART1_NAME='setup_warhammer_40000_dawn_of_war_-_dark_crusade_0.19_(french)_(64626)-1.bin' ARCHIVE_BASE_DC_FR_0_PART1_MD5='0a64baaffaa392b9afd570a0a811cb2f' ARCHIVE_BASE_DC_FR_0_SIZE='4600000' ARCHIVE_BASE_DC_FR_0_VERSION='1.20-gog64626' ARCHIVE_BASE_DC_FR_0_URL='https://www.gog.com/game/warhammer_40000_dawn_of_war' ## Soulstorm ARCHIVE_BASE_SS_EN_1_NAME='setup_warhammer_40000_dawn_of_war_-_soulstorm_0.21_(64955).exe' ARCHIVE_BASE_SS_EN_1_MD5='8da443afebb589ca1f1b0100579325d2' ARCHIVE_BASE_SS_EN_1_TYPE='innosetup' ARCHIVE_BASE_SS_EN_1_PART1_NAME='setup_warhammer_40000_dawn_of_war_-_soulstorm_0.21_(64955)-1.bin' ARCHIVE_BASE_SS_EN_1_PART1_MD5='ac634ca5d861d3fc502325646cffbd83' ARCHIVE_BASE_SS_EN_1_PART2='setup_warhammer_40000_dawn_of_war_-_soulstorm_0.21_(64955)-2.bin' ARCHIVE_BASE_SS_EN_1_PART2_MD5='5c4cde5ecf4dae72bbdbc97a7659dbe5' ARCHIVE_BASE_SS_EN_1_SIZE='5458668' ARCHIVE_BASE_SS_EN_1_VERSION='1.2.0-gog64955' ARCHIVE_BASE_SS_EN_1_URL='https://www.gog.com/game/warhammer_40000_dawn_of_war' ARCHIVE_BASE_SS_FR_1_NAME='setup_warhammer_40000_dawn_of_war_-_soulstorm_0.21_(french)_(64955).exe' ARCHIVE_BASE_SS_FR_1_MD5='e2fd0c36f0b36a9ad06c10ff4d044478' ARCHIVE_BASE_SS_FR_1_TYPE='innosetup' ARCHIVE_BASE_SS_FR_1_PART1_NAME='setup_warhammer_40000_dawn_of_war_-_soulstorm_0.21_(french)_(64955)-1.bin' ARCHIVE_BASE_SS_FR_1_PART1_MD5='29203f3fc2424b33f3251e44fbe65d13' ARCHIVE_BASE_SS_FR_1_PART2='setup_warhammer_40000_dawn_of_war_-_soulstorm_0.21_(french)_(64955)-2.bin' ARCHIVE_BASE_SS_FR_1_PART2_MD5='6ad688745bba4fe353b1da9b330e956a' ARCHIVE_BASE_SS_FR_1_SIZE='5459544' ARCHIVE_BASE_SS_FR_1_VERSION='1.2.0-gog64955' ARCHIVE_BASE_SS_FR_1_URL='https://www.gog.com/game/warhammer_40000_dawn_of_war' ARCHIVE_BASE_SS_EN_0_NAME='setup_warhammer_40000_dawn_of_war_-_soulstorm_0.19_(64626).exe' ARCHIVE_BASE_SS_EN_0_MD5='ccf68576db62f61c3d4967a1e66d3863' ARCHIVE_BASE_SS_EN_0_TYPE='innosetup' ARCHIVE_BASE_SS_EN_0_PART1_NAME='setup_warhammer_40000_dawn_of_war_-_soulstorm_0.19_(64626)-1.bin' ARCHIVE_BASE_SS_EN_0_PART1_MD5='944e2a30b2036dbfb37b1b649c370541' ARCHIVE_BASE_SS_EN_0_PART2_NAME='setup_warhammer_40000_dawn_of_war_-_soulstorm_0.19_(64626)-2.bin' ARCHIVE_BASE_SS_EN_0_PART2_MD5='949587a4ce461c4900636913ab53e5a1' ARCHIVE_BASE_SS_EN_0_SIZE='5500000' ARCHIVE_BASE_SS_EN_0_VERSION='1.2.0-gog64626' ARCHIVE_BASE_SS_FR_0_NAME='setup_warhammer_40000_dawn_of_war_-_soulstorm_0.19_(french)_(64626).exe' ARCHIVE_BASE_SS_FR_0_MD5='a652d618bdc2071ad476842939b63373' ARCHIVE_BASE_SS_FR_0_TYPE='innosetup' ARCHIVE_BASE_SS_FR_0_PART1_NAME='setup_warhammer_40000_dawn_of_war_-_soulstorm_0.19_(french)_(64626)-1.bin' ARCHIVE_BASE_SS_FR_0_PART1_MD5='3ffd1c39b68c984acb23263c9ffec133' ARCHIVE_BASE_SS_FR_0_PART2_NAME='setup_warhammer_40000_dawn_of_war_-_soulstorm_0.19_(french)_(64626)-2.bin' ARCHIVE_BASE_SS_FR_0_PART2_MD5='6ba9d30068b91823d838812c8930c8b3' ARCHIVE_BASE_SS_FR_0_SIZE='5500000' ARCHIVE_BASE_SS_FR_0_VERSION='1.2.0-gog64626' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' bugreport bugsplat.dll bugsplatrc.dll dbghelp.dll debug.dll divxdecoder.dll divxmedialib.dll dlltie.dll dsetup.dll dsetup32.dll dxtc.dll fileparser.dll filesystem.dll gslobby.dll ijl15.dll localizer.dll luabind.dll luaconfig.dll mathbox.dll memory.dll netconfig.dll patch.dll platform.dll plathook.dll profiler.dll seinterface.dll simengine.dll spdx9.dll stlport.dll symsrv.dll userinterface.dll util.dll w40kmod.dll wxpmod.dll mfc??.dll msvcp??.dll msvcr??.dll bssndrpt.exe darkcrusade.exe graphicsconfig.exe soulstorm.exe w40k.exe w40kwa.exe winterassault.exe local.ini w40k.ini' ## With GOG builds, the game binary is linked against Galaxy.dll. CONTENT_GAME0_BIN_FILES=' galaxy.dll' CONTENT_GAME_L10N_FILES=' bugreport/english bugreport/french dxp2/locale engine/locale graphicsoptions/locale w40k/locale wxp/locale regions.ini' CONTENT_GAME_DATA_FILES=' drivers dxp2 engine graphicsoptions patch w40k wxp *.dat *.module' CONTENT_DOC_L10N_FILES=' *.htm' USER_PERSISTENT_DIRECTORIES=' badges banners playback profiles screenshots stats' USER_PERSISTENT_FILES=' drivers/spdx9_config.txt local.ini' WINE_WINEPREFIX_TWEAKS='mono' ## Mono is not required by the Winter Assault demo. WINE_WINEPREFIX_TWEAKS_WA_DEMO=' ' ## Without a virtual desktop, the game lose input on loss of focus. ## In addition, the game window turns into a black screen. ## (WINE 10.0) WINE_VIRTUAL_DESKTOP='auto' APP_MAIN_EXE_DOW='w40k.exe' APP_MAIN_EXE_WA='w40kwa.exe' APP_MAIN_EXE_WA_DEMO='winterassault.exe' APP_MAIN_EXE_DC='darkcrusade.exe' APP_MAIN_EXE_SS='soulstorm.exe' APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=101' APP_MAIN_ICON_WRESTOOL_OPTIONS_WA_DEMO='--type=14' ## Type must be set explicitly, ## or it will be wrongly identified as a Mono application. APP_MAIN_TYPE='wine' # Packages PACKAGES_LIST=' PKG_L10N PKG_BIN PKG_DATA' PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N_BASE PKG_DATA' PKG_DATA_DESCRIPTION='data' ## Dawn of War (base game) PKG_L10N_BASE_ID_DOW="${GAME_ID}-l10n" PKG_L10N_ID_DOW_EN="${PKG_L10N_BASE_ID_DOW}-en" PKG_L10N_ID_DOW_FR="${PKG_L10N_BASE_ID_DOW}-fr" PKG_L10N_PROVIDES_DOW=" $PKG_L10N_BASE_ID_DOW" PKG_L10N_DESCRIPTION_DOW_EN="$PKG_L10N_DESCRIPTION_EN" PKG_L10N_DESCRIPTION_DOW_FR="$PKG_L10N_DESCRIPTION_FR" PKG_DATA_ID_DOW="${GAME_ID}-data" ## Winter Assault (full game) PKG_L10N_BASE_ID_WA="${GAME_ID_WA}-l10n" PKG_L10N_ID_WA_EN="${PKG_L10N_BASE_ID_WA}-en" PKG_L10N_ID_WA_FR="${PKG_L10N_BASE_ID_WA}-fr" PKG_L10N_PROVIDES_WA=" $PKG_L10N_BASE_ID_WA" PKG_L10N_DESCRIPTION_WA_EN="$PKG_L10N_DESCRIPTION_EN" PKG_L10N_DESCRIPTION_WA_FR="$PKG_L10N_DESCRIPTION_FR" PKG_DATA_ID_WA="${GAME_ID_WA}-data" ## Winter Assault (free demo) PKG_L10N_BASE_ID_WA_DEMO="${GAME_ID_WA_DEMO}-l10n" PKG_L10N_ID_WA_DEMO_EN="${PKG_L10N_BASE_ID_WA_DEMO}-en" PKG_L10N_PROVIDES_WA_DEMO=" $PKG_L10N_BASE_ID_WA_DEMO" PKG_L10N_DESCRIPTION_WA_DEMO_EN="$PKG_L10N_DESCRIPTION_EN" PKG_DATA_ID_WA_DEMO="${GAME_ID_WA_DEMO}-data" ## Dark Crusade PKG_L10N_BASE_ID_DC="${GAME_ID_DC}-l10n" PKG_L10N_ID_DC_EN="${PKG_L10N_BASE_ID_DC}-en" PKG_L10N_ID_DC_FR="${PKG_L10N_BASE_ID_DC}-fr" PKG_L10N_PROVIDES_DC=" $PKG_L10N_BASE_ID_DC" PKG_L10N_DESCRIPTION_DC_EN="$PKG_L10N_DESCRIPTION_EN" PKG_L10N_DESCRIPTION_DC_FR="$PKG_L10N_DESCRIPTION_FR" PKG_DATA_ID_DC="${GAME_ID_DC}-data" ## Soulstorm PKG_L10N_BASE_ID_SS="${GAME_ID_SS}-l10n" PKG_L10N_ID_SS_EN="${PKG_L10N_BASE_ID_SS}-en" PKG_L10N_ID_SS_FR="${PKG_L10N_BASE_ID_SS}-fr" PKG_L10N_PROVIDES_SS=" $PKG_L10N_BASE_ID_SS" PKG_L10N_DESCRIPTION_SS_EN="$PKG_L10N_DESCRIPTION_EN" PKG_L10N_DESCRIPTION_SS_FR="$PKG_L10N_DESCRIPTION_FR" PKG_DATA_ID_SS="${GAME_ID_SS}-data" # Winter Assault (free demo) # - cabextract is required to extract the content of an inner archive # - unix2dos is required to generate a .ini file REQUIREMENTS_LIST_WA_DEMO="${REQUIREMENTS_LIST:-} cabextract unix2dos" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ## Winter Assault (free demo) - Extract game data from the cabinet installer. case "$(current_archive)" in ('ARCHIVE_BASE_WA_DEMO_'*) ARCHIVE_INNER_PATH="${PLAYIT_WORKDIR}/gamedata/WinterAssaultDemo1.cab" archive_extraction 'ARCHIVE_INNER' rm "$ARCHIVE_INNER_PATH" ;; esac ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Winter Assault (free demo) - Create the expected game arborescence. case "$(current_archive)" in ('ARCHIVE_BASE_WA_DEMO_'*) mkdir --parents \ 'badges' \ 'banners' \ 'bugreport/english' \ 'drivers' \ 'engine' \ 'engine/data' \ 'engine/locale/english' \ 'engine/movies' \ 'graphicsoptions/data' \ 'graphicsoptions/locale/english' \ 'logfiles' \ 'patch' \ 'playback' \ 'profiles' \ 'screenshots' \ 'stats' \ 'w40k' \ 'w40k/data' \ 'w40k/locale/english' \ 'wxp' \ 'wxp/data' \ 'wxp/locale/english' \ 'wxp/movies' mv 'bugreport.exe' 'bugreport/bugreport.exe' mv 'bugreport.ini' 'bugreport/bugreport.ini' mv 'bugreport.ucs' 'bugreport/english/bugreport.ucs' mv 'ati.txt' 'drivers/ati.txt' mv 'nvidia.txt' 'drivers/nvidia.txt' mv 'shader.txt' 'drivers/shader.txt' mv 'spdx9_config.txt' 'drivers/spdx9_config.txt' mv 'engine.sga' 'engine/engine.sga' mv 'engine.ucs' 'engine/locale/english/engine.ucs' mv 'enginloc.sga' 'engine/locale/english/enginloc.sga' mv 'dow_intro.avi' 'engine/movies/dow_intro.avi' mv 'dow_intro.lua' 'engine/movies/dow_intro.lua' mv 'dxp_relic_intro.avi' 'engine/movies/dxp_relic_intro.avi' mv 'dxp_relic_intro.lua' 'engine/movies/dxp_relic_intro.lua' mv 'gotdata.sga' 'graphicsoptions/gotdata.sga' mv 'graphicsoptionsutility.ucs' 'graphicsoptions/locale/english/graphicsoptionsutility.ucs' mv 'w40k.ucs' 'w40k/locale/english/w40k.ucs' mv 'w40kdatasoundspeech.sga' 'w40k/locale/english/w40kdata-sound-speech.sga' mv 'w40kdatakeys.sga' 'w40k/locale/english/w40kdatakeys.sga' mv 'w40kdataloc.sga' 'w40k/locale/english/w40kdataloc.sga' mv 'w40kdata.sga' 'w40k/w40kdata.sga' mv 'w40kdatasharedtexturesfull.sga' 'w40k/w40kdata-sharedtextures-full.sga' mv 'w40kdatasoundmed.sga' 'w40k/w40kdata-sound-med.sga' mv 'w40kdatawhmmedium.sga' 'w40k/w40kdata-whm-medium.sga' mv 'wxp.ucs' 'wxp/locale/english/wxp.ucs' mv 'wxpdatasoundspeech.sga' 'wxp/locale/english/wxpdata-sound-speech.sga' mv 'wxpdatakeys.sga' 'wxp/locale/english/wxpdatakeys.sga' mv 'wxpdataloc.sga' 'wxp/locale/english/wxpdataloc.sga' mv 'wxp_order.avi' 'wxp/movies/wxp_order.avi' mv 'wxp_order.lua' 'wxp/movies/wxp_order.lua' mv 'wxpdata.sga' 'wxp/wxpdata.sga' mv 'wxpdatamusic.sga' 'wxp/wxpdata-music.sga' mv 'wxpdatasharedtexturesfull.sga' 'wxp/wxpdata-sharedtextures-full.sga' mv 'wxpdatasoundmed.sga' 'wxp/wxpdata-sound-med.sga' mv 'wxpdatawhmmedium.sga' 'wxp/wxpdata-whm-medium.sga' ;; esac ## Winter Assault (free demo) - Generate a required configuration file. case "$(current_archive)" in ('ARCHIVE_BASE_WA_DEMO_'*) config_file="${PLAYIT_WORKDIR}/gamedata/regions.ini" cat > "$config_file" <<- 'EOF' [mods] wxp=english [global] lang=english EOF unix2dos --quiet "$config_file" ;; esac ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-warhammer-40k-gladius-expansions-extra.sh0000750000000000000000000000776014471751340021500 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Warhammer 40k: Gladius expansions (extra content): # - Lord of Skulls # send your bug reports to vv221@dotslashplay.it ### script_version=20250603.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='warhammer-40k-gladius' GAME_NAME='Warhammer 40,000: Gladius' EXPANSION_ID_LORDOFSKULLS='lord-of-skulls' EXPANSION_NAME_LORDOFSKULLS='Lord of Skulls' # Archives ## Lord of Skulls ARCHIVE_BASE_LORDOFSKULLS_22_NAME='warhammer_40_000_gladius_relics_of_war_lord_of_skulls_1_16_00_82313.sh' ARCHIVE_BASE_LORDOFSKULLS_22_MD5='2a47b62bc1390808b708027fe377eed1' ARCHIVE_BASE_LORDOFSKULLS_22_SIZE='1086' ARCHIVE_BASE_LORDOFSKULLS_22_VERSION='1.16.0-gog82313' ARCHIVE_BASE_LORDOFSKULLS_22_URL='https://www.gog.com/game/warhammer_40000_gladius_relics_of_war_lord_of_skulls' ARCHIVE_BASE_LORDOFSKULLS_21_NAME='warhammer_40_000_gladius_relics_of_war_lord_of_skulls_1_15_01_78637.sh' ARCHIVE_BASE_LORDOFSKULLS_21_MD5='237e1fdb4e0dbec187d7d3032f22feda' ARCHIVE_BASE_LORDOFSKULLS_21_SIZE='1086' ARCHIVE_BASE_LORDOFSKULLS_21_VERSION='1.15.1-gog78637' ARCHIVE_BASE_LORDOFSKULLS_20_NAME='warhammer_40_000_gladius_relics_of_war_lord_of_skulls_1_14_03_77940.sh' ARCHIVE_BASE_LORDOFSKULLS_20_MD5='d175e20aa6d48a3ee6e06929b4c34ff2' ARCHIVE_BASE_LORDOFSKULLS_20_SIZE='1086' ARCHIVE_BASE_LORDOFSKULLS_20_VERSION='1.14.3-gog77940' ARCHIVE_BASE_LORDOFSKULLS_17_NAME='warhammer_40_000_gladius_relics_of_war_lord_of_skulls_1_13_03_72014.sh' ARCHIVE_BASE_LORDOFSKULLS_17_MD5='4e14b2240bb38489dad212e05cbadba3' ARCHIVE_BASE_LORDOFSKULLS_17_SIZE='1086' ARCHIVE_BASE_LORDOFSKULLS_17_VERSION='1.13.3-gog72014' ARCHIVE_BASE_LORDOFSKULLS_14_NAME='warhammer_40_000_gladius_relics_of_war_lord_of_skulls_1_12_03_67548.sh' ARCHIVE_BASE_LORDOFSKULLS_14_MD5='b0481ff1c15b0393bfd7c1b1c8d80709' ARCHIVE_BASE_LORDOFSKULLS_14_SIZE='1400' ARCHIVE_BASE_LORDOFSKULLS_14_VERSION='1.12.3-gog67548' ARCHIVE_BASE_LORDOFSKULLS_11_NAME='warhammer_40_000_gladius_relics_of_war_lord_of_skulls_1_11_04_64361.sh' ARCHIVE_BASE_LORDOFSKULLS_11_MD5='82bf8335b67ecfc66ca0a58abfee40b6' ARCHIVE_BASE_LORDOFSKULLS_11_SIZE='1400' ARCHIVE_BASE_LORDOFSKULLS_11_VERSION='1.11.4-gog64361' ARCHIVE_BASE_LORDOFSKULLS_6_NAME='warhammer_40_000_gladius_relics_of_war_lord_of_skulls_1_10_01_00_57375.sh' ARCHIVE_BASE_LORDOFSKULLS_6_MD5='ad8818e83aec830eb11385cfbf1c3d10' ARCHIVE_BASE_LORDOFSKULLS_6_SIZE='1400' ARCHIVE_BASE_LORDOFSKULLS_6_VERSION='1.10.1-gog57375' ARCHIVE_BASE_LORDOFSKULLS_4_NAME='warhammer_40_000_gladius_relics_of_war_lord_of_skulls_v1_09_03_00_54377.sh' ARCHIVE_BASE_LORDOFSKULLS_4_MD5='a3e949e976d3248ea338a4555454c804' ARCHIVE_BASE_LORDOFSKULLS_4_SIZE='1400' ARCHIVE_BASE_LORDOFSKULLS_4_VERSION='1.9.3-gog54377' ARCHIVE_BASE_LORDOFSKULLS_2_NAME='warhammer_40_000_gladius_relics_of_war_lord_of_skulls_1_08_04_01_49548.sh' ARCHIVE_BASE_LORDOFSKULLS_2_MD5='a5cad7f6b77e112e10172709f531bb76' ARCHIVE_BASE_LORDOFSKULLS_2_SIZE='1400' ARCHIVE_BASE_LORDOFSKULLS_2_VERSION='1.8.4.1-gog49548' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' Data/*.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-warhammer-40k-gladius-expansions-units-packs.sh0000750000000000000000000003276414471751340022620 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Warhammer 40k: Gladius expansions (units packs): # - Reinforcement # - Fortification # - Specialist # - Escalation # - Firepower # send your bug reports to vv221@dotslashplay.it ### script_version=20250603.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='warhammer-40k-gladius' GAME_NAME='Warhammer 40,000: Gladius' EXPANSION_ID_REINFORCEMENT='reinforcement-pack' EXPANSION_NAME_REINFORCEMENT='Reinforcement Pack' EXPANSION_ID_FORTIFICATION='fortification-pack' EXPANSION_NAME_FORTIFICATION='Fortification Pack' EXPANSION_ID_ASSAULT='assault-pack' EXPANSION_NAME_ASSAULT='Assault Pack' EXPANSION_ID_SPECIALIST='specialist-pack' EXPANSION_NAME_SPECIALIST='Specialist Pack' EXPANSION_ID_ESCALATION='escalation-pack' EXPANSION_NAME_ESCALATION='Escalation Pack' EXPANSION_ID_FIREPOWER='firepower-pack' EXPANSION_NAME_FIREPOWER='Firepower Pack' # Archives ## Reinforcement ARCHIVE_BASE_REINFORCEMENT_23_NAME='warhammer_40_000_gladius_reinforcement_pack_1_16_00_82313.sh' ARCHIVE_BASE_REINFORCEMENT_23_MD5='f639dc832183bc75fd079317d0609b8a' ARCHIVE_BASE_REINFORCEMENT_23_SIZE='1086' ARCHIVE_BASE_REINFORCEMENT_23_VERSION='1.16.0-gog82313' ARCHIVE_BASE_REINFORCEMENT_23_URL='https://www.gog.com/game/warhammer_40000_gladius_reinforcement_pack' ARCHIVE_BASE_REINFORCEMENT_22_NAME='warhammer_40_000_gladius_reinforcement_pack_1_15_01_78637.sh' ARCHIVE_BASE_REINFORCEMENT_22_MD5='ffa627db6c6910e464a748b182d86758' ARCHIVE_BASE_REINFORCEMENT_22_SIZE='1086' ARCHIVE_BASE_REINFORCEMENT_22_VERSION='1.15.1-gog78637' ARCHIVE_BASE_REINFORCEMENT_21_NAME='warhammer_40_000_gladius_reinforcement_pack_1_14_03_77940.sh' ARCHIVE_BASE_REINFORCEMENT_21_MD5='901cae49f0ac57a2c39666e40f269c49' ARCHIVE_BASE_REINFORCEMENT_21_SIZE='1086' ARCHIVE_BASE_REINFORCEMENT_21_VERSION='1.14.3-gog77940' ARCHIVE_BASE_REINFORCEMENT_18_NAME='warhammer_40_000_gladius_reinforcement_pack_1_13_03_72014.sh' ARCHIVE_BASE_REINFORCEMENT_18_MD5='f7d2e11be209a004bc4d1f666ab18875' ARCHIVE_BASE_REINFORCEMENT_18_SIZE='1086' ARCHIVE_BASE_REINFORCEMENT_18_VERSION='1.13.3-gog72014' ARCHIVE_BASE_REINFORCEMENT_15_NAME='warhammer_40_000_gladius_reinforcement_pack_1_12_03_67548.sh' ARCHIVE_BASE_REINFORCEMENT_15_MD5='290f8f6e2a054d2fcc543318b3636063' ARCHIVE_BASE_REINFORCEMENT_15_SIZE='1400' ARCHIVE_BASE_REINFORCEMENT_15_VERSION='1.12.3-gog67548' ARCHIVE_BASE_REINFORCEMENT_12_NAME='warhammer_40_000_gladius_reinforcement_pack_1_11_04_64361.sh' ARCHIVE_BASE_REINFORCEMENT_12_MD5='145f5a09d46543718f8bcc8b643f6807' ARCHIVE_BASE_REINFORCEMENT_12_SIZE='1400' ARCHIVE_BASE_REINFORCEMENT_12_VERSION='1.11.4-gog64361' ARCHIVE_BASE_REINFORCEMENT_7_NAME='warhammer_40_000_gladius_reinforcement_pack_1_10_01_00_57375.sh' ARCHIVE_BASE_REINFORCEMENT_7_MD5='59ac7359ac72a1f40f5ba237fcee8698' ARCHIVE_BASE_REINFORCEMENT_7_SIZE='1400' ARCHIVE_BASE_REINFORCEMENT_7_VERSION='1.10.1-gog57375' ARCHIVE_BASE_REINFORCEMENT_5_NAME='warhammer_40_000_gladius_reinforcement_pack_v1_09_03_00_54377.sh' ARCHIVE_BASE_REINFORCEMENT_5_MD5='20cce6c9a3a012a4b2d3fda7101606f4' ARCHIVE_BASE_REINFORCEMENT_5_SIZE='1400' ARCHIVE_BASE_REINFORCEMENT_5_VERSION='1.9.3-gog54377' ARCHIVE_BASE_REINFORCEMENT_3_NAME='warhammer_40_000_gladius_reinforcement_pack_1_08_04_01_49548.sh' ARCHIVE_BASE_REINFORCEMENT_3_MD5='72e9d71403328df72d4505096c98c423' ARCHIVE_BASE_REINFORCEMENT_3_SIZE='1400' ARCHIVE_BASE_REINFORCEMENT_3_VERSION='1.8.4.1-gog49548' ARCHIVE_BASE_REINFORCEMENT_0_NAME='warhammer_40_000_gladius_reinforcement_pack_1_07_04_44200.sh' ARCHIVE_BASE_REINFORCEMENT_0_MD5='013e6db4458c5fe0c39b3a33bdda68e5' ARCHIVE_BASE_REINFORCEMENT_0_SIZE='1400' ARCHIVE_BASE_REINFORCEMENT_0_VERSION='1.7.4-gog44200' ## Fortification ARCHIVE_BASE_FORTIFICATION_22_NAME='warhammer_40_000_gladius_fortification_pack_1_16_00_82313.sh' ARCHIVE_BASE_FORTIFICATION_22_MD5='8d7580150a95357439345a7c8c6db2d3' ARCHIVE_BASE_FORTIFICATION_22_SIZE='1086' ARCHIVE_BASE_FORTIFICATION_22_VERSION='1.16.0-gog82313' ARCHIVE_BASE_FORTIFICATION_22_URL='https://www.gog.com/game/warhammer_40000_gladius_fortification_pack' ARCHIVE_BASE_FORTIFICATION_21_NAME='warhammer_40_000_gladius_fortification_pack_1_15_01_78637.sh' ARCHIVE_BASE_FORTIFICATION_21_MD5='081e8d397681b99fad38414f005a846b' ARCHIVE_BASE_FORTIFICATION_21_SIZE='1086' ARCHIVE_BASE_FORTIFICATION_21_VERSION='1.15.1-gog78637' ARCHIVE_BASE_FORTIFICATION_20_NAME='warhammer_40_000_gladius_fortification_pack_1_14_03_77940.sh' ARCHIVE_BASE_FORTIFICATION_20_MD5='4c540595d9e2d42c330488cb091ba1fa' ARCHIVE_BASE_FORTIFICATION_20_SIZE='1086' ARCHIVE_BASE_FORTIFICATION_20_VERSION='1.14.3-gog77940' ARCHIVE_BASE_FORTIFICATION_17_NAME='warhammer_40_000_gladius_fortification_pack_1_13_03_72014.sh' ARCHIVE_BASE_FORTIFICATION_17_MD5='8c9b997c2dfb6e141db5e02f7b519c93' ARCHIVE_BASE_FORTIFICATION_17_SIZE='1086' ARCHIVE_BASE_FORTIFICATION_17_VERSION='1.13.3-gog72014' ARCHIVE_BASE_FORTIFICATION_14_NAME='warhammer_40_000_gladius_fortification_pack_1_12_03_67548.sh' ARCHIVE_BASE_FORTIFICATION_14_MD5='32c26b39aaa8329f20bddccc4059a257' ARCHIVE_BASE_FORTIFICATION_14_SIZE='1400' ARCHIVE_BASE_FORTIFICATION_14_VERSION='1.12.3-gog67548' ARCHIVE_BASE_FORTIFICATION_11_NAME='warhammer_40_000_gladius_fortification_pack_1_11_04_64361.sh' ARCHIVE_BASE_FORTIFICATION_11_MD5='90d66263e66f30aa7c6df35ec2b0d276' ARCHIVE_BASE_FORTIFICATION_11_SIZE='1400' ARCHIVE_BASE_FORTIFICATION_11_VERSION='1.11.4-gog64361' ARCHIVE_BASE_FORTIFICATION_6_NAME='warhammer_40_000_gladius_fortification_pack_1_10_01_00_57375.sh' ARCHIVE_BASE_FORTIFICATION_6_MD5='859c6d14d76a4b1a43880ea89e01ed27' ARCHIVE_BASE_FORTIFICATION_6_SIZE='1400' ARCHIVE_BASE_FORTIFICATION_6_VERSION='1.10.1-gog57375' ARCHIVE_BASE_FORTIFICATION_4_NAME='warhammer_40_000_gladius_fortification_pack_v1_09_03_00_54377.sh' ARCHIVE_BASE_FORTIFICATION_4_MD5='4221b279557e7af587ec6207f8654071' ARCHIVE_BASE_FORTIFICATION_4_SIZE='1400' ARCHIVE_BASE_FORTIFICATION_4_VERSION='1.9.3-gog54377' ARCHIVE_BASE_FORTIFICATION_2_NAME='warhammer_40_000_gladius_fortification_pack_1_08_04_01_49548.sh' ARCHIVE_BASE_FORTIFICATION_2_MD5='d485b048b4c1d391c7671ecc4c88e66d' ARCHIVE_BASE_FORTIFICATION_2_SIZE='1400' ARCHIVE_BASE_FORTIFICATION_2_VERSION='1.8.4.1-gog49548' ## Assault ARCHIVE_BASE_ASSAULT_19_NAME='warhammer_40_000_gladius_assault_pack_1_16_00_82313.sh' ARCHIVE_BASE_ASSAULT_19_MD5='2a103597b520cc937f59ca36bc15edfd' ARCHIVE_BASE_ASSAULT_19_SIZE='1086' ARCHIVE_BASE_ASSAULT_19_VERSION='1.16.0-gog82313' ARCHIVE_BASE_ASSAULT_19_URL='https://www.gog.com/game/warhammer_40000_gladius_assault_pack' ARCHIVE_BASE_ASSAULT_18_NAME='warhammer_40_000_gladius_assault_pack_1_15_01_78637.sh' ARCHIVE_BASE_ASSAULT_18_MD5='31305aacc9903eddd50abe2233d71eda' ARCHIVE_BASE_ASSAULT_18_SIZE='1086' ARCHIVE_BASE_ASSAULT_18_VERSION='1.15.1-gog78637' ARCHIVE_BASE_ASSAULT_17_NAME='warhammer_40_000_gladius_assault_pack_1_14_03_77940.sh' ARCHIVE_BASE_ASSAULT_17_MD5='760deb0defe921b8875c99274be00bec' ARCHIVE_BASE_ASSAULT_17_SIZE='1086' ARCHIVE_BASE_ASSAULT_17_VERSION='1.14.3-gog77940' ARCHIVE_BASE_ASSAULT_14_NAME='warhammer_40_000_gladius_assault_pack_1_13_03_72014.sh' ARCHIVE_BASE_ASSAULT_14_MD5='f0c6a21687fbcad8442f5bb1c835b1aa' ARCHIVE_BASE_ASSAULT_14_SIZE='1086' ARCHIVE_BASE_ASSAULT_14_VERSION='1.13.3-gog72014' ARCHIVE_BASE_ASSAULT_11_NAME='warhammer_40_000_gladius_assault_pack_1_12_03_67548.sh' ARCHIVE_BASE_ASSAULT_11_MD5='9e56693f4d1623a9c7dcc9c2cf63a59a' ARCHIVE_BASE_ASSAULT_11_SIZE='1400' ARCHIVE_BASE_ASSAULT_11_VERSION='1.12.3-gog67548' ARCHIVE_BASE_ASSAULT_8_NAME='warhammer_40_000_gladius_assault_pack_1_11_04_64361.sh' ARCHIVE_BASE_ASSAULT_8_MD5='aae3f873d640d36f3821921efb7525c2' ARCHIVE_BASE_ASSAULT_8_SIZE='1400' ARCHIVE_BASE_ASSAULT_8_VERSION='1.11.4-gog64361' ARCHIVE_BASE_ASSAULT_3_NAME='warhammer_40_000_gladius_assault_pack_1_10_01_00_57375.sh' ARCHIVE_BASE_ASSAULT_3_MD5='69d3d257e8caa70c7af8bd50b6963e0a' ARCHIVE_BASE_ASSAULT_3_SIZE='1400' ARCHIVE_BASE_ASSAULT_3_VERSION='1.10.1-gog57375' ARCHIVE_BASE_ASSAULT_1_NAME='warhammer_40_000_gladius_assault_pack_v1_09_03_00_54377.sh' ARCHIVE_BASE_ASSAULT_1_MD5='8812a45df8fa62523f655ecc2a1dbd46' ARCHIVE_BASE_ASSAULT_1_SIZE='1400' ARCHIVE_BASE_ASSAULT_1_VERSION='1.9.3-gog54377' ## Specialist ARCHIVE_BASE_SPECIALIST_17_NAME='warhammer_40_000_gladius_specialist_pack_1_16_00_82313.sh' ARCHIVE_BASE_SPECIALIST_17_MD5='0d1846d59bf1e5fa5c630cb3901942d0' ARCHIVE_BASE_SPECIALIST_17_SIZE='1086' ARCHIVE_BASE_SPECIALIST_17_VERSION='1.16.0-gog82313' ARCHIVE_BASE_SPECIALIST_17_URL='https://www.gog.com/game/warhammer_40000_gladius_specialist_pack' ARCHIVE_BASE_SPECIALIST_16_NAME='warhammer_40_000_gladius_specialist_pack_1_15_01_78637.sh' ARCHIVE_BASE_SPECIALIST_16_MD5='91546b521b9e1554b97a43e0f542fd05' ARCHIVE_BASE_SPECIALIST_16_SIZE='1086' ARCHIVE_BASE_SPECIALIST_16_VERSION='1.15.1-gog78637' ARCHIVE_BASE_SPECIALIST_15_NAME='warhammer_40_000_gladius_specialist_pack_1_14_03_77940.sh' ARCHIVE_BASE_SPECIALIST_15_MD5='265a6aa1071eff6f5f7855f63278e61c' ARCHIVE_BASE_SPECIALIST_15_SIZE='1086' ARCHIVE_BASE_SPECIALIST_15_VERSION='1.14.3-gog77940' ARCHIVE_BASE_SPECIALIST_12_NAME='warhammer_40_000_gladius_specialist_pack_1_13_03_72014.sh' ARCHIVE_BASE_SPECIALIST_12_MD5='065713713aaa72418d048a20dcd9203e' ARCHIVE_BASE_SPECIALIST_12_SIZE='1086' ARCHIVE_BASE_SPECIALIST_12_VERSION='1.13.3-gog72014' ARCHIVE_BASE_SPECIALIST_9_NAME='warhammer_40_000_gladius_specialist_pack_1_12_03_67548.sh' ARCHIVE_BASE_SPECIALIST_9_MD5='f8e1aaacc5a30496abae99c8a6965799' ARCHIVE_BASE_SPECIALIST_9_SIZE='1400' ARCHIVE_BASE_SPECIALIST_9_VERSION='1.12.3-gog67548' ARCHIVE_BASE_SPECIALIST_6_NAME='warhammer_40_000_gladius_specialist_pack_1_11_04_64361.sh' ARCHIVE_BASE_SPECIALIST_6_MD5='5f44ab4c03bf70047e6716000a29f910' ARCHIVE_BASE_SPECIALIST_6_SIZE='1400' ARCHIVE_BASE_SPECIALIST_6_VERSION='1.11.4-gog64361' ARCHIVE_BASE_SPECIALIST_1_NAME='warhammer_40_000_gladius_specialist_pack_1_10_01_00_57375.sh' ARCHIVE_BASE_SPECIALIST_1_MD5='b0b788d180a82919048621796f68fb1e' ARCHIVE_BASE_SPECIALIST_1_SIZE='1400' ARCHIVE_BASE_SPECIALIST_1_VERSION='1.10.1-gog57375' ## Escalation ARCHIVE_BASE_ESCALATION_10_NAME='warhammer_40_000_gladius_escalation_pack_1_16_00_82313.sh' ARCHIVE_BASE_ESCALATION_10_MD5='99496fe1509b4a2e1114f5fd66ac062a' ARCHIVE_BASE_ESCALATION_10_SIZE='1086' ARCHIVE_BASE_ESCALATION_10_VERSION='1.16.0-gog82313' ARCHIVE_BASE_ESCALATION_10_URL='https://www.gog.com/game/warhammer_40000_gladius_adeptus_mechanicus' ARCHIVE_BASE_ESCALATION_9_NAME='warhammer_40_000_gladius_escalation_pack_1_15_01_78637.sh' ARCHIVE_BASE_ESCALATION_9_MD5='548fae3d18f2bc3a066c41efc8549200' ARCHIVE_BASE_ESCALATION_9_SIZE='1086' ARCHIVE_BASE_ESCALATION_9_VERSION='1.15.1-gog78637' ARCHIVE_BASE_ESCALATION_8_NAME='warhammer_40_000_gladius_escalation_pack_1_14_03_77940.sh' ARCHIVE_BASE_ESCALATION_8_MD5='847f3fbd0e977f2a944531cabd3efd30' ARCHIVE_BASE_ESCALATION_8_SIZE='1086' ARCHIVE_BASE_ESCALATION_8_VERSION='1.14.3-gog77940' ARCHIVE_BASE_ESCALATION_5_NAME='warhammer_40_000_gladius_escalation_pack_1_13_03_72014.sh' ARCHIVE_BASE_ESCALATION_5_MD5='5dba4c9a1719723682a2857b44dce0c5' ARCHIVE_BASE_ESCALATION_5_SIZE='1086' ARCHIVE_BASE_ESCALATION_5_VERSION='1.13.3-gog72014' ARCHIVE_BASE_ESCALATION_2_NAME='warhammer_40_000_gladius_escalation_pack_1_12_03_67548.sh' ARCHIVE_BASE_ESCALATION_2_MD5='ce318c4cc0ee526f1abcd18ddbd4937c' ARCHIVE_BASE_ESCALATION_2_SIZE='1400' ARCHIVE_BASE_ESCALATION_2_VERSION='1.12.3-gog67548' ## Firepower ARCHIVE_BASE_FIREPOWER_9_NAME='warhammer_40_000_gladius_firepower_pack_1_16_00_82313.sh' ARCHIVE_BASE_FIREPOWER_9_MD5='23b91bf23b00ac2a72d7d3c218f04711' ARCHIVE_BASE_FIREPOWER_9_SIZE='1086' ARCHIVE_BASE_FIREPOWER_9_VERSION='1.16.0-gog82313' ARCHIVE_BASE_FIREPOWER_9_URL='https://www.gog.com/game/warhammer_40000_gladius_firepower_pack' ARCHIVE_BASE_FIREPOWER_8_NAME='warhammer_40_000_gladius_firepower_pack_1_15_01_78637.sh' ARCHIVE_BASE_FIREPOWER_8_MD5='fbe795330138176fbce3fb80f7801617' ARCHIVE_BASE_FIREPOWER_8_SIZE='1086' ARCHIVE_BASE_FIREPOWER_8_VERSION='1.15.1-gog78637' ARCHIVE_BASE_FIREPOWER_7_NAME='warhammer_40_000_gladius_firepower_pack_1_14_03_77940.sh' ARCHIVE_BASE_FIREPOWER_7_MD5='1a81b99275d126cbbfcf1ee3c751cac7' ARCHIVE_BASE_FIREPOWER_7_SIZE='1086' ARCHIVE_BASE_FIREPOWER_7_VERSION='1.14.3-gog77940' ARCHIVE_BASE_FIREPOWER_4_NAME='warhammer_40_000_gladius_firepower_pack_1_13_03_72014.sh' ARCHIVE_BASE_FIREPOWER_4_MD5='813f40d7fbce991eae9db43aad552a4e' ARCHIVE_BASE_FIREPOWER_4_SIZE='1086' ARCHIVE_BASE_FIREPOWER_4_VERSION='1.13.3-gog72014' ARCHIVE_BASE_FIREPOWER_1_NAME='warhammer_40_000_gladius_firepower_pack_1_12_03_67548.sh' ARCHIVE_BASE_FIREPOWER_1_MD5='4f5adaaf42d40278df28bae531313c1d' ARCHIVE_BASE_FIREPOWER_1_SIZE='1400' ARCHIVE_BASE_FIREPOWER_1_VERSION='1.12.3-gog67548' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' Data/*.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-warhammer-40k-gladius-expansions.sh0000750000000000000000000003335714471751340020360 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Warhammer 40k: Gladius expansions: # - Tyranids # - Chaos Space Marines # - T'au # - Craftworld Aeldari # - Adeptus Mechanicus # - Adepta Sororitas # - Drukhari # send your bug reports to vv221@dotslashplay.it ### script_version=20250603.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='warhammer-40k-gladius' GAME_NAME='Warhammer 40,000: Gladius' EXPANSION_ID_TYRANIDS='tyranids' EXPANSION_NAME_TYRANIDS='Tyranids' EXPANSION_ID_CHAOS='chaos-space-marines' EXPANSION_NAME_CHAOS='Chaos Space Marines' EXPANSION_ID_TAU='tau' EXPANSION_NAME_TAU='Tʼau' EXPANSION_ID_AELDARI='craftworld-aeldari' EXPANSION_NAME_AELDARI='Craftworld Aeldari' EXPANSION_ID_MECHANICUS='adeptus-mechanicus' EXPANSION_NAME_MECHANICUS='Adeptus Mechanicus' EXPANSION_ID_SORORITAS='adepta-sororitas' EXPANSION_NAME_SORORITAS='Adepta Sororitas' EXPANSION_ID_DRUKHARI='drukhari' EXPANSION_NAME_DRUKHARI='Drukhari' # Archives ## Tyranids ARCHIVE_BASE_TYRANIDS_23_NAME='warhammer_40_000_gladius_tyranids_1_16_00_82313.sh' ARCHIVE_BASE_TYRANIDS_23_MD5='feaa9df2e06a4c1459b871eb776761e1' ARCHIVE_BASE_TYRANIDS_23_SIZE='1086' ARCHIVE_BASE_TYRANIDS_23_VERSION='1.16.0-gog82313' ARCHIVE_BASE_TYRANIDS_23_URL='https://www.gog.com/game/warhammer_40000_gladius_tyranids' ARCHIVE_BASE_TYRANIDS_22_NAME='warhammer_40_000_gladius_tyranids_1_15_01_78637.sh' ARCHIVE_BASE_TYRANIDS_22_MD5='54d7c19b2c64853b0025928b8c8e8918' ARCHIVE_BASE_TYRANIDS_22_SIZE='1086' ARCHIVE_BASE_TYRANIDS_22_VERSION='1.15.1-gog78637' ARCHIVE_BASE_TYRANIDS_21_NAME='warhammer_40_000_gladius_tyranids_1_14_03_77940.sh' ARCHIVE_BASE_TYRANIDS_21_MD5='08a7490d398a7f36c600a84367b9dfb8' ARCHIVE_BASE_TYRANIDS_21_SIZE='1086' ARCHIVE_BASE_TYRANIDS_21_VERSION='1.14.3-gog77940' ARCHIVE_BASE_TYRANIDS_18_NAME='warhammer_40_000_gladius_tyranids_1_13_03_72014.sh' ARCHIVE_BASE_TYRANIDS_18_MD5='1126da61c9bdc27a4c9c4cc9444ff87d' ARCHIVE_BASE_TYRANIDS_18_SIZE='1086' ARCHIVE_BASE_TYRANIDS_18_VERSION='1.13.3-gog72014' ARCHIVE_BASE_TYRANIDS_15_NAME='warhammer_40_000_gladius_tyranids_1_12_03_67548.sh' ARCHIVE_BASE_TYRANIDS_15_MD5='6fd672b4230bceebc496e7ce7aa455b4' ARCHIVE_BASE_TYRANIDS_15_SIZE='1400' ARCHIVE_BASE_TYRANIDS_15_VERSION='1.12.3-gog67548' ARCHIVE_BASE_TYRANIDS_12_NAME='warhammer_40_000_gladius_tyranids_1_11_04_64361.sh' ARCHIVE_BASE_TYRANIDS_12_MD5='53da0257c7ae0ca6c4b2712a70f8b666' ARCHIVE_BASE_TYRANIDS_12_SIZE='1400' ARCHIVE_BASE_TYRANIDS_12_VERSION='1.11.4-gog64361' ARCHIVE_BASE_TYRANIDS_7_NAME='warhammer_40_000_gladius_tyranids_1_10_01_00_57375.sh' ARCHIVE_BASE_TYRANIDS_7_MD5='30934475a2b0c8f794234d5e38f504cc' ARCHIVE_BASE_TYRANIDS_7_SIZE='1400' ARCHIVE_BASE_TYRANIDS_7_VERSION='1.10.1-gog57375' ARCHIVE_BASE_TYRANIDS_5_NAME='warhammer_40_000_gladius_tyranids_v1_09_03_00_54377.sh' ARCHIVE_BASE_TYRANIDS_5_MD5='ac2e7f57d90a405688304573e6332443' ARCHIVE_BASE_TYRANIDS_5_SIZE='1400' ARCHIVE_BASE_TYRANIDS_5_VERSION='1.9.3-gog54377' ARCHIVE_BASE_TYRANIDS_3_NAME='warhammer_40_000_gladius_tyranids_1_08_04_01_49548.sh' ARCHIVE_BASE_TYRANIDS_3_MD5='a6e5921db60b6a366619354b1eb47d23' ARCHIVE_BASE_TYRANIDS_3_SIZE='1400' ARCHIVE_BASE_TYRANIDS_3_VERSION='1.8.4.1-gog49548' ARCHIVE_BASE_TYRANIDS_0_NAME='warhammer_40_000_gladius_tyranids_1_07_04_44200.sh' ARCHIVE_BASE_TYRANIDS_0_MD5='c6c04852f1a3128dbfa267c89f1c9626' ARCHIVE_BASE_TYRANIDS_0_SIZE='1400' ARCHIVE_BASE_TYRANIDS_0_VERSION='1.7.4-gog44200' ## Chaos Space Marines ARCHIVE_BASE_CHAOS_22_NAME='warhammer_40_000_gladius_chaos_space_marines_1_16_00_82313.sh' ARCHIVE_BASE_CHAOS_22_MD5='60568806dde898dc17904ae64c0971ed' ARCHIVE_BASE_CHAOS_22_SIZE='1086' ARCHIVE_BASE_CHAOS_22_VERSION='1.16.0-gog82313' ARCHIVE_BASE_CHAOS_22_URL='https://www.gog.com/game/warhammer_40000_gladius_chaos_space_marines' ARCHIVE_BASE_CHAOS_21_NAME='warhammer_40_000_gladius_chaos_space_marines_1_15_01_78637.sh' ARCHIVE_BASE_CHAOS_21_MD5='abda449d0db7d068321a0d44ea2b8704' ARCHIVE_BASE_CHAOS_21_SIZE='1086' ARCHIVE_BASE_CHAOS_21_VERSION='1.15.1-gog78637' ARCHIVE_BASE_CHAOS_20_NAME='warhammer_40_000_gladius_chaos_space_marines_1_14_03_77940.sh' ARCHIVE_BASE_CHAOS_20_MD5='4d3e181c0156ab28d81e4b8df4c3d1ba' ARCHIVE_BASE_CHAOS_20_SIZE='1086' ARCHIVE_BASE_CHAOS_20_VERSION='1.14.3-gog77940' ARCHIVE_BASE_CHAOS_17_NAME='warhammer_40_000_gladius_chaos_space_marines_1_13_03_72014.sh' ARCHIVE_BASE_CHAOS_17_MD5='a7c63aa885dd1a5b51b2b5a3d55d4e21' ARCHIVE_BASE_CHAOS_17_SIZE='1086' ARCHIVE_BASE_CHAOS_17_VERSION='1.13.3-gog72014' ARCHIVE_BASE_CHAOS_14_NAME='warhammer_40_000_gladius_chaos_space_marines_1_12_03_67548.sh' ARCHIVE_BASE_CHAOS_14_MD5='5103e5a13f5e04f6a0d4ce2124ae9b8f' ARCHIVE_BASE_CHAOS_14_SIZE='1400' ARCHIVE_BASE_CHAOS_14_VERSION='1.12.3-gog67548' ARCHIVE_BASE_CHAOS_11_NAME='warhammer_40_000_gladius_chaos_space_marines_1_11_04_64361.sh' ARCHIVE_BASE_CHAOS_11_MD5='2c613e93f92197efb004a4d590f6412e' ARCHIVE_BASE_CHAOS_11_SIZE='1400' ARCHIVE_BASE_CHAOS_11_VERSION='1.11.4-gog64361' ARCHIVE_BASE_CHAOS_6_NAME='warhammer_40_000_gladius_chaos_space_marines_1_10_01_00_57375.sh' ARCHIVE_BASE_CHAOS_6_MD5='88542a8341638e1d51e2758c9886e2c6' ARCHIVE_BASE_CHAOS_6_SIZE='1400' ARCHIVE_BASE_CHAOS_6_VERSION='1.10.1-gog57375' ARCHIVE_BASE_CHAOS_4_NAME='warhammer_40_000_gladius_chaos_space_marines_v1_09_03_00_54377.sh' ARCHIVE_BASE_CHAOS_4_MD5='ed2c64df977669d9413648347c883a35' ARCHIVE_BASE_CHAOS_4_SIZE='1400' ARCHIVE_BASE_CHAOS_4_VERSION='1.9.3-gog54377' ARCHIVE_BASE_CHAOS_2_NAME='warhammer_40_000_gladius_chaos_space_marines_1_08_04_01_49548.sh' ARCHIVE_BASE_CHAOS_2_MD5='37894d5cd89aaa67dc841d2f5023ebf2' ARCHIVE_BASE_CHAOS_2_SIZE='1400' ARCHIVE_BASE_CHAOS_2_VERSION='1.8.4.1-gog49548' ## T'au ARCHIVE_BASE_TAU_19_NAME='warhammer_40_000_gladius_t_au_1_16_00_82313.sh' ARCHIVE_BASE_TAU_19_MD5='e37407f9a4f59d871303c0d946e70867' ARCHIVE_BASE_TAU_19_SIZE='1086' ARCHIVE_BASE_TAU_19_VERSION='1.16.0-gog82313' ARCHIVE_BASE_TAU_19_URL='https://www.gog.com/game/warhammer_40000_gladius_tau' ARCHIVE_BASE_TAU_18_NAME='warhammer_40_000_gladius_t_au_1_15_01_78637.sh' ARCHIVE_BASE_TAU_18_MD5='868bab8668f793d74d2830156ab9c49d' ARCHIVE_BASE_TAU_18_SIZE='1086' ARCHIVE_BASE_TAU_18_VERSION='1.15.1-gog78637' ARCHIVE_BASE_TAU_17_NAME='warhammer_40_000_gladius_t_au_1_14_03_77940.sh' ARCHIVE_BASE_TAU_17_MD5='e69fec137633403f9b37fa37d58da209' ARCHIVE_BASE_TAU_17_SIZE='1086' ARCHIVE_BASE_TAU_17_VERSION='1.14.3-gog77940' ARCHIVE_BASE_TAU_14_NAME='warhammer_40_000_gladius_t_au_1_13_03_72014.sh' ARCHIVE_BASE_TAU_14_MD5='cc6b1b472357aafe1a92906dbac6ce56' ARCHIVE_BASE_TAU_14_SIZE='1086' ARCHIVE_BASE_TAU_14_VERSION='1.13.3-gog72014' ARCHIVE_BASE_TAU_11_NAME='warhammer_40_000_gladius_t_au_1_12_03_67548.sh' ARCHIVE_BASE_TAU_11_MD5='c0dd6e15c253f1b58a0d596fec8d1531' ARCHIVE_BASE_TAU_11_SIZE='1396' ARCHIVE_BASE_TAU_11_VERSION='1.12.3-gog67548' ARCHIVE_BASE_TAU_8_NAME='warhammer_40_000_gladius_t_au_1_11_04_64361.sh' ARCHIVE_BASE_TAU_8_MD5='b8d20922d142704e61dbb8dbe83ce2b0' ARCHIVE_BASE_TAU_8_SIZE='1400' ARCHIVE_BASE_TAU_8_VERSION='1.11.4-gog64361' ARCHIVE_BASE_TAU_3_NAME='warhammer_40_000_gladius_t_au_1_10_01_00_57375.sh' ARCHIVE_BASE_TAU_3_MD5='1f7770a75d1c846aca32f905cd4ce51f' ARCHIVE_BASE_TAU_3_SIZE='1400' ARCHIVE_BASE_TAU_3_VERSION='1.10.1-gog57375' ARCHIVE_BASE_TAU_1_NAME='warhammer_40_000_gladius_t_au_v1_09_03_00_54377.sh' ARCHIVE_BASE_TAU_1_MD5='22b575c6ce8da35f7d57335662de4747' ARCHIVE_BASE_TAU_1_SIZE='1400' ARCHIVE_BASE_TAU_1_VERSION='1.9.3-gog54377' ## Craftworld Aeldari ARCHIVE_BASE_AELDARI_17_NAME='warhammer_40_000_gladius_craftworld_aeldari_1_16_00_82313.sh' ARCHIVE_BASE_AELDARI_17_MD5='c4f51f47973e1500ac1f34de022392d9' ARCHIVE_BASE_AELDARI_17_SIZE='1086' ARCHIVE_BASE_AELDARI_17_VERSION='1.16.0-gog82313' ARCHIVE_BASE_AELDARI_17_URL='https://www.gog.com/game/warhammer_40000_gladius_craftworld_aeldari' ARCHIVE_BASE_AELDARI_16_NAME='warhammer_40_000_gladius_craftworld_aeldari_1_15_01_78637.sh' ARCHIVE_BASE_AELDARI_16_MD5='5676c61f7af8851baec11d26740ec3b8' ARCHIVE_BASE_AELDARI_16_SIZE='1086' ARCHIVE_BASE_AELDARI_16_VERSION='1.15.1-gog78637' ARCHIVE_BASE_AELDARI_15_NAME='warhammer_40_000_gladius_craftworld_aeldari_1_14_03_77940.sh' ARCHIVE_BASE_AELDARI_15_MD5='73a817b4990d66ea7f938d82d0ec4bbf' ARCHIVE_BASE_AELDARI_15_SIZE='1086' ARCHIVE_BASE_AELDARI_15_VERSION='1.14.3-gog77940' ARCHIVE_BASE_AELDARI_12_NAME='warhammer_40_000_gladius_craftworld_aeldari_1_13_03_72014.sh' ARCHIVE_BASE_AELDARI_12_MD5='18e5d21d0d2b202d746de192cc4370da' ARCHIVE_BASE_AELDARI_12_SIZE='1086' ARCHIVE_BASE_AELDARI_12_VERSION='1.13.3-gog72014' ARCHIVE_BASE_AELDARI_9_NAME='warhammer_40_000_gladius_craftworld_aeldari_1_12_03_67548.sh' ARCHIVE_BASE_AELDARI_9_MD5='a9ed6a70658299ab82d2934f7b572151' ARCHIVE_BASE_AELDARI_9_SIZE='1400' ARCHIVE_BASE_AELDARI_9_VERSION='1.12.3-gog67548' ARCHIVE_BASE_AELDARI_6_NAME='warhammer_40_000_gladius_craftworld_aeldari_1_11_04_64361.sh' ARCHIVE_BASE_AELDARI_6_MD5='2c2b76c50ee3d7c29fd24c8aea0fe6e0' ARCHIVE_BASE_AELDARI_6_SIZE='1400' ARCHIVE_BASE_AELDARI_6_VERSION='1.11.4-gog64361' ARCHIVE_BASE_AELDARI_1_NAME='warhammer_40_000_gladius_craftworld_aeldari_1_10_01_00_57375.sh' ARCHIVE_BASE_AELDARI_1_MD5='b3698a59f99611fb8431a76ea50ef35d' ARCHIVE_BASE_AELDARI_1_SIZE='1400' ARCHIVE_BASE_AELDARI_1_VERSION='1.10.1-gog57375' ## Adeptus Mechanicus ARCHIVE_BASE_MECHANICUS_10_NAME='warhammer_40_000_gladius_adeptus_mechanicus_1_16_00_82313.sh' ARCHIVE_BASE_MECHANICUS_10_MD5='1def126bbf90b067a5c1514395cbd963' ARCHIVE_BASE_MECHANICUS_10_SIZE='1086' ARCHIVE_BASE_MECHANICUS_10_VERSION='1.16.0-gog82313' ARCHIVE_BASE_MECHANICUS_10_URL='https://www.gog.com/game/warhammer_40000_gladius_adeptus_mechanicus' ARCHIVE_BASE_MECHANICUS_9_NAME='warhammer_40_000_gladius_adeptus_mechanicus_1_15_01_78637.sh' ARCHIVE_BASE_MECHANICUS_9_MD5='afe583ed20206aa21dae3a4a4d0ae2ed' ARCHIVE_BASE_MECHANICUS_9_SIZE='1086' ARCHIVE_BASE_MECHANICUS_9_VERSION='1.15.1-gog78637' ARCHIVE_BASE_MECHANICUS_8_NAME='warhammer_40_000_gladius_adeptus_mechanicus_1_14_03_77940.sh' ARCHIVE_BASE_MECHANICUS_8_MD5='ea312fa967f14ad4511bc178430aeda1' ARCHIVE_BASE_MECHANICUS_8_SIZE='1086' ARCHIVE_BASE_MECHANICUS_8_VERSION='1.14.3-gog77940' ARCHIVE_BASE_MECHANICUS_5_NAME='warhammer_40_000_gladius_adeptus_mechanicus_1_13_03_72014.sh' ARCHIVE_BASE_MECHANICUS_5_MD5='7670878de137f0de17cdae93ded39f09' ARCHIVE_BASE_MECHANICUS_5_SIZE='1086' ARCHIVE_BASE_MECHANICUS_5_VERSION='1.13.3-gog72014' ARCHIVE_BASE_MECHANICUS_2_NAME='warhammer_40_000_gladius_adeptus_mechanicus_1_12_03_67548.sh' ARCHIVE_BASE_MECHANICUS_2_MD5='0be493045812d7ee50c5c7846b60151e' ARCHIVE_BASE_MECHANICUS_2_SIZE='1400' ARCHIVE_BASE_MECHANICUS_2_VERSION='1.12.3-gog67548' ## Adepta Sororitas ARCHIVE_BASE_SORORITAS_9_NAME='warhammer_40_000_gladius_adepta_sororitas_1_16_00_82313.sh' ARCHIVE_BASE_SORORITAS_9_MD5='20af00eeaf1fb3aff8e3389a2955d772' ARCHIVE_BASE_SORORITAS_9_SIZE='1086' ARCHIVE_BASE_SORORITAS_9_VERSION='1.16.0-gog82313' ARCHIVE_BASE_SORORITAS_9_URL='https://www.gog.com/game/warhammer_40000_gladius_adepta_sororitas' ARCHIVE_BASE_SORORITAS_8_NAME='warhammer_40_000_gladius_adepta_sororitas_1_15_01_78637.sh' ARCHIVE_BASE_SORORITAS_8_MD5='4114725cfa16b43f5371d4d0399787b6' ARCHIVE_BASE_SORORITAS_8_SIZE='1086' ARCHIVE_BASE_SORORITAS_8_VERSION='1.15.1-gog78637' ARCHIVE_BASE_SORORITAS_7_NAME='warhammer_40_000_gladius_adepta_sororitas_1_14_03_77940.sh' ARCHIVE_BASE_SORORITAS_7_MD5='2166533e2ed1efc020729e5b174a1721' ARCHIVE_BASE_SORORITAS_7_SIZE='1086' ARCHIVE_BASE_SORORITAS_7_VERSION='1.14.3-gog77940' ARCHIVE_BASE_SORORITAS_4_NAME='warhammer_40_000_gladius_adepta_sororitas_1_13_03_72014.sh' ARCHIVE_BASE_SORORITAS_4_MD5='6d588bac7b0e51c140f8cbb888b8de61' ARCHIVE_BASE_SORORITAS_4_SIZE='1086' ARCHIVE_BASE_SORORITAS_4_VERSION='1.13.3-gog72014' ARCHIVE_BASE_SORORITAS_1_NAME='warhammer_40_000_gladius_adepta_sororitas_1_12_03_67548.sh' ARCHIVE_BASE_SORORITAS_1_MD5='1c69d1ce8301b0fb42f10718a4271761' ARCHIVE_BASE_SORORITAS_1_SIZE='1400' ARCHIVE_BASE_SORORITAS_1_VERSION='1.12.3-gog67548' ## Drukhari ARCHIVE_BASE_DRUKHARI_6_NAME='warhammer_40_000_gladius_drukhari_1_16_00_82313.sh' ARCHIVE_BASE_DRUKHARI_6_MD5='04f6ec8cdd5c782edf8def8e8f72863c' ARCHIVE_BASE_DRUKHARI_6_SIZE='1086' ARCHIVE_BASE_DRUKHARI_6_VERSION='1.16.0-gog82313' ARCHIVE_BASE_DRUKHARI_6_URL='https://www.gog.com/game/warhammer_40000_gladius_drukhari' ARCHIVE_BASE_DRUKHARI_5_NAME='warhammer_40_000_gladius_drukhari_1_15_01_78637.sh' ARCHIVE_BASE_DRUKHARI_5_MD5='4878d59bea341f3ef560fe8017884e68' ARCHIVE_BASE_DRUKHARI_5_SIZE='1086' ARCHIVE_BASE_DRUKHARI_5_VERSION='1.15.1-gog78637' ARCHIVE_BASE_DRUKHARI_4_NAME='warhammer_40_000_gladius_drukhari_1_14_03_77940.sh' ARCHIVE_BASE_DRUKHARI_4_MD5='f8ad53fe2b0eba0ff16089e2840fdc40' ARCHIVE_BASE_DRUKHARI_4_SIZE='1086' ARCHIVE_BASE_DRUKHARI_4_VERSION='1.14.3-gog77940' ARCHIVE_BASE_DRUKHARI_1_NAME='warhammer_40_000_gladius_drukhari_1_13_03_72014.sh' ARCHIVE_BASE_DRUKHARI_1_MD5='9f04c3d2b819a9865f853fcf184df6fe' ARCHIVE_BASE_DRUKHARI_1_SIZE='1086' ARCHIVE_BASE_DRUKHARI_1_VERSION='1.13.3-gog72014' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' Data/*.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-warhammer-40k-gladius.sh0000750000000000000000000002054614471751340016167 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # Warhammer 40k: Gladius # send your bug reports to vv221@dotslashplay.it ### script_version=20250603.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='warhammer-40k-gladius' GAME_NAME='Warhammer 40,000: Gladius - Relics of War' ARCHIVE_BASE_5_NAME='warhammer_40_000_gladius_relics_of_war_1_16_00_82313.sh' ARCHIVE_BASE_5_MD5='7c3795898a311ad274a4f061e4f6f0a4' ARCHIVE_BASE_5_SIZE='3679340' ARCHIVE_BASE_5_VERSION='1.16.0-gog82313' ARCHIVE_BASE_5_URL='https://www.gog.com/game/warhammer_40000_gladius_relics_of_war' ARCHIVE_BASE_4_NAME='warhammer_40_000_gladius_relics_of_war_1_15_01_78637.sh' ARCHIVE_BASE_4_MD5='47d39e7d60862615e6d65987049e40b0' ARCHIVE_BASE_4_SIZE='3607175' ARCHIVE_BASE_4_VERSION='1.15.1-gog78637' ARCHIVE_BASE_3_NAME='warhammer_40_000_gladius_relics_of_war_1_14_03_77940.sh' ARCHIVE_BASE_3_MD5='3d47d62522615fb42e876c630c5bbbb0' ARCHIVE_BASE_3_SIZE='3558407' ARCHIVE_BASE_3_VERSION='1.14.3-gog77940' ARCHIVE_BASE_0_NAME='warhammer_40_000_gladius_relics_of_war_1_13_03_72014.sh' ARCHIVE_BASE_0_MD5='6ff6665c0a2ead9b1807fcddb28a9a08' ARCHIVE_BASE_0_SIZE='3489255' ARCHIVE_BASE_0_VERSION='1.13.3-gog72014' ARCHIVE_BASE_OLDLIBS_9_NAME='warhammer_40_000_gladius_relics_of_war_1_12_03_67548.sh' ARCHIVE_BASE_OLDLIBS_9_MD5='9bbcc5e63c4793fddceea5d8b8fbe1d8' ARCHIVE_BASE_OLDLIBS_9_SIZE='3254164' ARCHIVE_BASE_OLDLIBS_9_VERSION='1.12.3-gog67548' ARCHIVE_BASE_OLDLIBS_8_NAME='warhammer_40_000_gladius_relics_of_war_1_11_04_64361.sh' ARCHIVE_BASE_OLDLIBS_8_MD5='eb7bcdf1a43f47dbc7407e309fd209a3' ARCHIVE_BASE_OLDLIBS_8_SIZE='3200000' ARCHIVE_BASE_OLDLIBS_8_VERSION='1.11.4-gog64361' ARCHIVE_BASE_OLDLIBS_7_NAME='warhammer_40_000_gladius_relics_of_war_1_10_01_00_57375.sh' ARCHIVE_BASE_OLDLIBS_7_MD5='924bba1e75fdc323d72f24eccc2856a7' ARCHIVE_BASE_OLDLIBS_7_SIZE='2900000' ARCHIVE_BASE_OLDLIBS_7_VERSION='1.10.1-gog57375' ARCHIVE_BASE_OLDLIBS_6_NAME='warhammer_40_000_gladius_relics_of_war_v1_09_03_00_54377.sh' ARCHIVE_BASE_OLDLIBS_6_MD5='f3271281015c34f1ce3c6974998d886f' ARCHIVE_BASE_OLDLIBS_6_SIZE='2900000' ARCHIVE_BASE_OLDLIBS_6_VERSION='1.9.3-gog54377' ARCHIVE_BASE_OLDLIBS_5_NAME='warhammer_40_000_gladius_relics_of_war_1_08_04_01_49548.sh' ARCHIVE_BASE_OLDLIBS_5_MD5='d2e88289b1b7b1ebe1037d999f14578e' ARCHIVE_BASE_OLDLIBS_5_SIZE='2600000' ARCHIVE_BASE_OLDLIBS_5_VERSION='1.8.4.1-gog49548' ARCHIVE_BASE_OLDLIBS_4_NAME='warhammer_40_000_gladius_relics_of_war_1_07_04_44200.sh' ARCHIVE_BASE_OLDLIBS_4_MD5='b8534d0956159736ee49f207da516ba6' ARCHIVE_BASE_OLDLIBS_4_SIZE='2600000' ARCHIVE_BASE_OLDLIBS_4_VERSION='1.7.4-gog44200' ARCHIVE_BASE_OLDLIBS_3_NAME='warhammer_40_000_gladius_relics_of_war_1_06_4b_41966.sh' ARCHIVE_BASE_OLDLIBS_3_MD5='dbdcdd7450f009ffd2c5feae2fbc9fd2' ARCHIVE_BASE_OLDLIBS_3_SIZE='2300000' ARCHIVE_BASE_OLDLIBS_3_VERSION='1.6.4b-gog41966' ARCHIVE_BASE_OLDLIBS_2_NAME='warhammer_40_000_gladius_relics_of_war_1_05_01_36614.sh' ARCHIVE_BASE_OLDLIBS_2_MD5='faf0d5df1a800d8102bdf20309aa9b6c' ARCHIVE_BASE_OLDLIBS_2_SIZE='2200000' ARCHIVE_BASE_OLDLIBS_2_VERSION='1.5.1-gog36614' ARCHIVE_BASE_OLDLIBS_1_NAME='warhammer_40_000_gladius_relics_of_war_1_04_07_36064.sh' ARCHIVE_BASE_OLDLIBS_1_MD5='d42c72ef55cb2a42487f8173d26b2260' ARCHIVE_BASE_OLDLIBS_1_SIZE='2300000' ARCHIVE_BASE_OLDLIBS_1_VERSION='1.4.7-gog36064' ARCHIVE_BASE_OLDLIBS_0_NAME='warhammer_40_000_gladius_relics_of_war_1_03_08_32868.sh' ARCHIVE_BASE_OLDLIBS_0_MD5='0739ede31aa10db01b2afef9f66c5e12' ARCHIVE_BASE_OLDLIBS_0_SIZE='2100000' ARCHIVE_BASE_OLDLIBS_0_VERSION='1.3.8-gog32868' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_RELATIVE_PATH='Binaries/Linux-x86_64' CONTENT_LIBS_BIN_FILES=' libavcodec.so.58 libavformat.so.58 libavutil.so.56 libboost_locale.so.1.74.0 libboost_system.so.1.74.0 libboost_thread.so.1.74.0 libcrypto.so.1.1 libEOSSDK-Linux-Shipping.so libicudata.so.60 libicui18n.so.60 libicuuc.so.60 libjemalloc.so.1 libjpeg.so.8 libminiupnpc.so.17 libnettle.so.6 libswresample.so.3' ## Include libraries shipped with old game builds. CONTENT_LIBS_BIN_FILES_OLDLIBS=' libavcodec.so.58 libavformat.so.58 libavutil.so.56 libcrypto.so.1.1 libboost_locale.so.1.65.1 libboost_system.so.1.65.1 libboost_thread.so.1.65.1 libEOSSDK-Linux-Shipping.so libicudata.so.60 libicui18n.so.60 libicuuc.so.60 libjemalloc.so.1 libjpeg.so.8 libswresample.so.3' ## The game binary is linked against libsteam_api.so. CONTENT_LIBS0_BIN_RELATIVE_PATH='Binaries/Linux-x86_64' CONTENT_LIBS0_BIN_FILES=' libsteam_api.so' CONTENT_GAME_BIN_FILES=' Binaries/Linux-x86_64/Gladius.bin' CONTENT_GAME_DATA_FILES=' Data Documents Manuals Resources *.doc *.pdf' ## Running the game from a symlinks farm prefix leads to the following crash on launch: ## ## DataManager.hpp:100: T& proxy::core::DataManager::get(const string&, bool) const [with T = proxy::video::Shader; std::string = std::__cxx11::basic_string]: "Vertex/GUI" does not exist. ## ExceptionHandler::handleException() ## DataManager.hpp:100: T& proxy::core::DataManager::get(const string&, bool) const [with T = proxy::video::Shader; std::string = std::__cxx11::basic_string]: "Vertex/GUI" does not exist. ## (0) [0x0x55ee9730627f] proxy::core::StackTrace::log() + 0x2f ## (1) [0x0x55ee972a205c] proxy::core::ExceptionHandler::handleException() + 0x1c ## (2) [0x0x7f15484b344a] + 0xb344a ## (3) [0x0x7f15484a15e9] std::unexpected() + 0 ## (4) [0x0x7f15484b36c8] + 0xb36c8 ## (5) [0x0x55ee9613032f] void boost::throw_exception(boost::escaped_list_error const&, boost::source_location const&) + 0 ## (6) [0x0x55ee9627885e] proxy::core::DataManager::get(std::__cxx11::basic_string, std::allocator > const&, bool) const + 0x1ee ## (7) [0x0x55ee968090b1] proxy::video::Renderer::createSwapChain() + 0x1651 ## (8) [0x0x55ee9680a385] proxy::video::Renderer::initialize() + 0x3e5 ## (9) [0x0x55ee9679d03c] proxy::video::Display::createWindow(proxy::video::Display::Mode, proxy::video::Display::Resolution const&) + 0x93c ## (10) [0x0x55ee9679fd49] proxy::video::Display::initialize(proxy::video::Display::Mode, proxy::video::Display::Resolution const&) + 0x29 ## (11) [0x0x55ee9629da1e] gladius::Game::initializeVideo() + 0xe8e ## (12) [0x0x55ee962a0faa] gladius::Game::initialize(int, char**, char**) + 0x4a ## (13) [0x0x55ee962344c2] gladius::Game::main(int, char**, char**) + 0x12 ## (14) [0x0x55ee96233af6] main + 0x36 ## (15) [0x0x7f154822eca8] + 0x29ca8 ## (16) [0x0x7f154822ed65] __libc_start_main + 0x85 ## (17) [0x0x55ee9624712a] _start + 0x2a APP_MAIN_PREFIX_TYPE='none' APP_MAIN_EXE='Binaries/Linux-x86_64/Gladius.bin' APP_MAIN_ICON='Data/Video/Textures/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 libfreetype.so.6 libgcc_s.so.1 libglfw.so.3 libm.so.6 libopenal.so.1 libpng16.so.16 libpthread.so.0 librt.so.1 libstdc++.so.6 libvorbisfile.so.3 libvulkan.so.1 libz.so.1' ## Set dependencies for old game builds. PKG_BIN_DEPENDENCIES_LIBRARIES_OLDLIBS=' libc.so.6 libcurl.so.4 libdl.so.2 libfreetype.so.6 libgcc_s.so.1 libglfw.so.3 libminiupnpc.so.17 libm.so.6 libopenal.so.1 libpng16.so.16 libpthread.so.0 librt.so.1 libstdc++.so.6 libvorbisfile.so.3 libvulkan.so.1 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## Run the game binary from its parent directory game_exec_line() { cat <<- 'EOF' cd Binaries/Linux-x86_64 ./Gladius.bin "$@" EOF } launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-warhammer-40k-rogue-trader.sh0000750000000000000000000003306614471751340017140 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 vv221@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-warlords-battlecry-2.sh0000750000000000000000000000475614471751340016152 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # Warlords Battlecry 2 # send your bug reports to vv221@dotslashplay.it ### script_version=20241125.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='warlords-battlecry-2' GAME_NAME='Warlords Battlecry Ⅱ' ARCHIVE_BASE_1_NAME='setup_warlords_battlecry_2_1.04_(30487).exe' ARCHIVE_BASE_1_MD5='25cf7418f5b954b97fc0e8b6d32039f2' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='930000' ARCHIVE_BASE_1_VERSION='1.04-gog30487' ARCHIVE_BASE_1_URL='https://www.gog.com/game/warlords_battlecry_2' ARCHIVE_BASE_0_NAME='setup_warlords_battlecry2_2.0.0.4.exe' ARCHIVE_BASE_0_MD5='baa54ca0285182d18d532abfcbb8769f' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='940000' ARCHIVE_BASE_0_VERSION='1.04-gog2.0.0.4' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_BIN_FILES=' terrain.cfg binkw32.dll cpuinf32.dll mss32.dll wetstd32.dll battlecry ii.exe *.asi *.cfg *.m3d *.ini' CONTENT_GAME_DATA_FILES=' campaignscenario customai customunitai data documentation english events fonts herodata music namingsets scenario soundfx tutorial video war4gfx.xcg war4int.xci wbc.dat *.xcr' CONTENT_DOC_DATA_FILES=' *.pdf' USER_PERSISTENT_FILES=' *.cfg *.ini *.txt' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/Warlords Battlecry II' WINE_VIRTUAL_DESKTOP='auto' APP_MAIN_EXE='battlecry ii.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-wasteland-2.sh0000750000000000000000000001234114471751340014275 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2015 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2021 Anna Lea set -o errexit ### # Wasteland 2 # send your bug reports to vv221@dotslashplay.it ### script_version=20241124.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='wasteland-2' GAME_NAME='Wasteland 2' GAME_ID_CLASSIC="$GAME_ID" GAME_NAME_CLASSIC="$GAME_NAME" GAME_ID_DIRECTORSCUT="${GAME_ID}-directors-cut" GAME_NAME_DIRECTORSCUT="$GAME_NAME - Directorʼs Cut" # Archives ## Wasteland 2 (classic) ARCHIVE_BASE_CLASSIC_0_NAME='gog_wasteland_2_2.9.0.14.sh' ARCHIVE_BASE_CLASSIC_0_MD5='8421db3519ed0074ff2647f5ea53f6f6' ARCHIVE_BASE_CLASSIC_0_SIZE='20000000' ARCHIVE_BASE_CLASSIC_0_VERSION='1.0-gog2.9.0.14' ARCHIVE_BASE_CLASSIC_0_URL='https://www.gog.com/game/wasteland_2_directors_cut_digital_classic_edition' ## Wasteland 2 Director's Cut ARCHIVE_BASE_DIRECTORSCUT_0_NAME='gog_wasteland_2_director_s_cut_2.3.0.5.sh' ARCHIVE_BASE_DIRECTORSCUT_0_MD5='dc697b13e1f08de606add7684b5b3f78' ARCHIVE_BASE_DIRECTORSCUT_0_SIZE='16000000' ARCHIVE_BASE_DIRECTORSCUT_0_VERSION='1.1.92788-gog2.3.0.5' ARCHIVE_BASE_DIRECTORSCUT_0_URL='https://www.gog.com/game/wasteland_2_directors_cut_digital_classic_edition' UNITY3D_NAME='WL2' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_DATA_SCENES_AZ_FILES=" ${UNITY3D_NAME}_Data/Streaming/Scenes/ArizonaWorldMap.unity3d ${UNITY3D_NAME}_Data/Streaming/Scenes/AZ_*.unity3d ${UNITY3D_NAME}_Data/Streaming/Scenes/AZ??_*.unity3d ${UNITY3D_NAME}_Data/Streaming/Scenes/az??_*.unity3d" CONTENT_GAME_DATA_SCENES_CA_FILES=" ${UNITY3D_NAME}_Data/Streaming/Scenes/CA_*.unity3d ${UNITY3D_NAME}_Data/Streaming/Scenes/CA??_*.unity3d" CONTENT_GAME_DATA_RESOURCES_FILES_DIRECTORSCUT=" ${UNITY3D_NAME}_Data/*.resource" CONTENT_DOC_DATA_PATH='data/noarch/docs' CONTENT_DOC_DATA_FILES=' Map.pdf Wasteland 2 Ranger Field Manual.pdf Wasteland 2 Reference Guide.pdf' ## Work around the engine overuse of file descriptors. APP_MAIN_PRERUN=' # 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 ' # Packages PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_DESCRIPTION='data' ## Wasteland 2 (classic) PACKAGES_LIST_CLASSIC=' PKG_BIN PKG_DATA_SCENES_AZ PKG_DATA_SCENES_CA PKG_DATA' PKG_BIN_ARCH_CLASSIC='32' PKG_BIN_DEPENDENCIES_LIBRARIES_CLASSIC=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgthread-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXext.so.6 libXrandr.so.2' PKG_DATA_ID_CLASSIC="${GAME_ID_CLASSIC}-data" PKG_DATA_DEPENDENCIES_SIBLINGS_CLASSIC=' PKG_DATA_SCENES_AZ PKG_DATA_SCENES_CA' PKG_DATA_SCENES_AZ_ID="${PKG_DATA_ID_CLASSIC}-scenes-az" PKG_DATA_SCENES_AZ_DESCRIPTION="$PKG_DATA_DESCRIPTION - Arizona scenes" PKG_DATA_SCENES_CA_ID="${PKG_DATA_ID_CLASSIC}-scenes-ca" PKG_DATA_SCENES_CA_DESCRIPTION="$PKG_DATA_DESCRIPTION - California scenes" ## Wasteland 2 Director's Cut PACKAGES_LIST_DIRECTORSCUT=' PKG_BIN PKG_DATA_RESOURCES PKG_DATA' PKG_BIN_ARCH_DIRECTORSCUT='64' PKG_BIN_DEPENDENCIES_LIBRARIES_DIRECTORSCUT=' 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_DIRECTORSCUT="${GAME_ID_DIRECTORSCUT}-data" PKG_DATA_DEPENDENCIES_SIBLINGS_DIRECTORSCUT=' PKG_DATA_RESOURCES' PKG_DATA_RESOURCES_ID="${PKG_DATA_ID_DIRECTORSCUT}-resources" PKG_DATA_RESOURCES_DESCRIPTION='resources' ## Ensure smooth upgrades from packages generated with pre-20231021.1 scripts. PKG_DATA_RESOURCES_PROVIDES="${PKG_DATA_RESOURCES_PROVIDES:-} wasteland-2-directors-cut-resources" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run 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-werewolf-the-apocalypse-forest-stories-series.sh0000750000000000000000000000630514471751340023203 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Werewolf: The Apocalypse - Forest Stories series: # - Werewolf: The Apocalypse - Heart of the Forest # - Werewolf: The Apocalypse - Purgatory # send your bug reports to vv221@dotslashplay.it ### script_version=20250402.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID_HEART='werewolf-the-apocalypse-heart-of-the-forest' GAME_NAME_HEART='Werewolf: The Apocalypse - Heart of the Forest' GAME_ID_PURGATORY='werewolf-the-apocalypse-purgatory' GAME_NAME_PURGATORY='Werewolf: The Apocalypse - Purgatory' ARCHIVE_BASE_HEART_0_NAME='werewolf_the_apocalypse_heart_of_the_forest_1_0_13_2010191537_42086.sh' ARCHIVE_BASE_HEART_0_MD5='8f8655786c9eed74746c9cc151b5543b' ARCHIVE_BASE_HEART_0_SIZE='902811' ARCHIVE_BASE_HEART_0_VERSION='1.0.13-gog42086' ARCHIVE_BASE_HEART_0_URL='https://www.gog.com/game/werewolf_the_apocalypse_heart_of_the_forest' ARCHIVE_BASE_PURGATORY_1_NAME='purgatory_1_1_13_2504011817_81091.sh' ARCHIVE_BASE_PURGATORY_1_MD5='012f8c571e7649b50b56e2a59542d1d1' ARCHIVE_BASE_PURGATORY_1_SIZE='1524084' ARCHIVE_BASE_PURGATORY_1_VERSION='1.1.13-gog81091' ARCHIVE_BASE_PURGATORY_1_URL='https://www.gog.com/game/werewolf_the_apocalypse_purgatory' ARCHIVE_BASE_PURGATORY_0_NAME='purgatory_1_0_13_2406131256_74723.sh' ARCHIVE_BASE_PURGATORY_0_MD5='eac63ba42adc2614e66e0cd733c019fb' ARCHIVE_BASE_PURGATORY_0_SIZE='1069791' ARCHIVE_BASE_PURGATORY_0_VERSION='1.0.13-gog74723' UNITY3D_NAME_HEART='Heart of the Forest' UNITY3D_NAME_PURGATORY='Purgatory' UNITY3D_PLUGINS_HEART=' libfmodL.so libfmod.so libfmodstudioL.so libfmodstudio.so libgvraudio.so libresonanceaudio.so' UNITY3D_PLUGINS_PURGATORY=' libfmodstudio.so libresonanceaudio.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES_HEART=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 libresolv.so.2 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN_DEPENDENCIES_LIBRARIES_PURGATORY=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_DATA_ID_HEART="${GAME_ID_HEART}-data" PKG_DATA_ID_PURGATORY="${GAME_ID_PURGATORY}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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-whispers-of-a-machine.sh0000750000000000000000000000322314471751340016241 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Whispers of a Machine # send your bug reports to vv221@dotslashplay.it ### script_version=20250111.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='whispers-of-a-machine' GAME_NAME='Whispers of a Machine' ARCHIVE_BASE_0_NAME='setup_whispers_of_a_machine_1.0.6d_(35876).exe' ARCHIVE_BASE_0_MD5='92244849a09e9b47a290618acd9dc9b6' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='768282' ARCHIVE_BASE_0_VERSION='1.0.6d-gog35876' ARCHIVE_BASE_0_URL='https://www.gog.com/game/whispers_of_a_machine' AGS_NAME='whispersofamachine' CONTENT_PATH_DEFAULT='.' APP_MAIN_ICON='whispers.exe' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # 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-world-of-goo-1.sh0000750000000000000000000000610414471751340014625 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2020 BetaRays set -o errexit ### # World of Goo 1 # send your bug reports to vv221@dotslashplay.it ### script_version=20250429.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='world-of-goo-1' GAME_NAME='World of Goo' # Archives ## Sold from gog.com ARCHIVE_BASE_GOG_0_NAME='world_of_goo_1_51_29337.sh' ARCHIVE_BASE_GOG_0_MD5='f3566d859e824862b4dc14f94b15cafa' ARCHIVE_BASE_GOG_0_SIZE='186520' ARCHIVE_BASE_GOG_0_VERSION='1.51-gog29337' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/world_of_goo' ## Formerly sold from humblebundle.com, this archive is no longer available for sale. ARCHIVE_BASE_HUMBLE_0_NAME='WorldOfGoo.Linux.1.53.sh' ARCHIVE_BASE_HUMBLE_0_MD5='9049f4fccf98ba79ac238a8b414e053a' ARCHIVE_BASE_HUMBLE_0_SIZE='210000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.53-humble' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='data' CONTENT_GAME_BIN64_RELATIVE_PATH_HUMBLE='x86_64' CONTENT_GAME_BIN64_FILES=' WorldOfGoo.bin.x86_64' CONTENT_GAME_BIN32_RELATIVE_PATH_HUMBLE='x86' CONTENT_GAME_BIN32_FILES=' WorldOfGoo.bin.x86' CONTENT_GAME_DATA_RELATIVE_PATH_HUMBLE='noarch' CONTENT_GAME_DATA_FILES=' game' CONTENT_DOC_DATA_RELATIVE_PATH_HUMBLE='noarch' CONTENT_DOC_DATA_PATH_GOG='data/noarch/docs' CONTENT_DOC_DATA_FILES=' readme.html linux-issues.txt' APP_MAIN_EXE_BIN64='WorldOfGoo.bin.x86_64' APP_MAIN_EXE_BIN32='WorldOfGoo.bin.x86' APP_MAIN_ICON='game/gooicon.png' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libm.so.6 libSDL2-2.0.so.0 libSDL2_mixer-2.0.so.0 libstdc++.so.6' ## Ensure easy upgrades from packages generated with pre-20240805.1 scripts PKG_BIN_PROVIDES="${PKG_BIN_PROVIDES:-} world-of-goo" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' ## Ensure easy upgrades from packages generated with pre-20240805.1 scripts PKG_DATA_PROVIDES="${PKG_DATA_PROVIDES:-} world-of-goo-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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-world-of-goo-2.sh0000750000000000000000000001024514471751340014627 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # World of Goo 2 # send your bug reports to vv221@dotslashplay.it ### script_version=20250610.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='world-of-goo-2' GAME_NAME='World of Goo 2' ARCHIVE_BASE_3_NAME='World_of_Goo_2-x86_64-1.0.13211.7.AppImage' ARCHIVE_BASE_3_MD5='80e2b52c2ef8c5045a6b5cec26d50f91' ARCHIVE_BASE_3_SIZE='920432' ARCHIVE_BASE_3_VERSION='1.0.13211-2dboy' ARCHIVE_BASE_3_URL='https://worldofgoo2.com/#getitnow' ARCHIVE_BASE_2_NAME='World_of_Goo_2-x86_64-1.0.4.13120.27.AppImage' ARCHIVE_BASE_2_MD5='3c36dbdb0d0fa34ee795ed7c0098cddf' ARCHIVE_BASE_2_SIZE='909392' ARCHIVE_BASE_2_VERSION='1.0.4.13120-2dboy' ARCHIVE_BASE_1_NAME='World_of_Goo_2-x86_64-1.0.12478.15.AppImage' ARCHIVE_BASE_1_MD5='3748d37805bd4bc96f1b19d108d10f9d' ARCHIVE_BASE_1_SIZE='903954' ARCHIVE_BASE_1_VERSION='1.0.12478-2dboy' ARCHIVE_BASE_0_NAME='World_of_Goo_2-x86_64.12329.171.AppImage' ARCHIVE_BASE_0_MD5='011faf15abea1c51837e6e2683c80042' ARCHIVE_BASE_0_SIZE='896550' ARCHIVE_BASE_0_VERSION='1.0.12329-2dboy' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' WorldOfGoo2' CONTENT_GAME_DATA_FILES=' game WorldOfGoo2.png' APP_MAIN_EXE='WorldOfGoo2' APP_MAIN_ICON='WorldOfGoo2.png' ## Trying to run the game with the wayland SDL backend leads to a segmentation fault: ## ## #0 0x00007ffff7e9d1c3 in _XFlush () from /lib/x86_64-linux-gnu/libX11.so.6 ## #1 0x00007ffff7e9fec5 in _XGetRequest () from /lib/x86_64-linux-gnu/libX11.so.6 ## #2 0x00007ffff7e92905 in XQueryExtension () from /lib/x86_64-linux-gnu/libX11.so.6 ## #3 0x00007ffff7726e20 in InitDisplayInfoEntry (dpy=0x5555572b50e0) at ../src/GLX/libglxmapping.c:639 ## #4 __glXLookupDisplay (dpy=dpy@entry=0x5555572b50e0) at ../src/GLX/libglxmapping.c:755 ## #5 0x00007ffff77225f7 in glXQueryVersion (dpy=0x5555572b50e0, major=0x7fffd57f9a94, minor=0x7fffd57f9a98) at ../src/GLX/libglx.c:1166 ## #6 0x000055555597ff04 in ?? () ## #7 0x000055555594a4f9 in ?? () ## #8 0x0000555555940834 in ?? () ## #9 0x000055555591f331 in ?? () ## #10 0x000055555592cad5 in ?? () ## #11 0x000055555592cb63 in ?? () ## #12 0x00005555559363a2 in ?? () ## #13 0x000055555596287f in ?? () ## #14 0x00007ffff789cb7b in start_thread (arg=) at ./nptl/pthread_create.c:448 ## #15 0x00007ffff791a7b8 in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78 ## ## Forcing the use of system-provided SDL does not avoid this crash. APP_MAIN_PRERUN=' # Prevent a crash on launch when the wayland backend of SDL is used if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' ## The game will segfault when loading the world selector if started through a symlinks farm APP_MAIN_PREFIX_TYPE='none' 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 libpthread.so.0 libstdc++.so.6 libX11.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## Force the use of system-provided SDL APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN') $(launcher_tweak_sdl_override)" PKG_BIN_DEPENDENCIES_LIBRARIES="$(dependencies_list_native_libraries 'PKG_BIN') libSDL2-2.0.so.0" launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-worms-2.sh0000750000000000000000000000463314471751340013467 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2015 Antoine Le Gonidec set -o errexit ### # Worms 2 # send your bug reports to vv221@dotslashplay.it ### script_version=20241125.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='worms-2' GAME_NAME='Worms 2' ARCHIVE_BASE_0_NAME='setup_worms2_2.0.0.23.exe' ARCHIVE_BASE_0_MD5='bbe752d1b716432bb67e574ad9f3e9f3' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='190000' ARCHIVE_BASE_0_VERSION='1.05-gog2.0.0.23' ARCHIVE_BASE_0_URL='https://www.gog.com/game/worms_2' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' binaries *.dll *.exe' CONTENT_GAME_DATA_FILES=' data levels music options saves teams weapons stats.txt template.bmp *.wmv' CONTENT_DOC_DATA_FILES=' manual.pdf patch.txt' USER_PERSISTENT_DIRECTORIES=' levels options saves teams weapons' USER_PERSISTENT_FILES=' stats.txt data/*.dat' ## Running the game in a virtual desktop prevents it from being stuck into a corner of the screen. WINE_VIRTUAL_DESKTOP='640x480' APP_MAIN_EXE='frontend.exe' ## Play the introduction videos on launch APP_MAIN_PRERUN=' # Play the introduction videos on launch RANDOM_MOVIE=$(find . -mindepth 1 -maxdepth 1 -name "*.wmv" ! -name "intro.wmv" | shuf --head-count=1) mpv --fs --no-osc intro.wmv mpv --fs --no-osc "$RANDOM_MOVIE" ' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_COMMANDS=' mpv' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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-worms-armageddon.sh0000750000000000000000000000611514471751340015424 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2020 Jacek Szafarkiewicz # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2021 Hubert Ray set -o errexit ### # Worms: Armageddon # send your bug reports to vv221@dotslashplay.it ### script_version=20250603.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='worms-armageddon' GAME_NAME='Worms: Armageddon' ARCHIVE_BASE_3_NAME='setup_worms_armageddon_gog-3.8.1_(43454).exe' ARCHIVE_BASE_3_MD5='f84e60ba11363219c582a4ff65301692' ARCHIVE_BASE_3_TYPE='innosetup' ARCHIVE_BASE_3_SIZE='648070' ARCHIVE_BASE_3_VERSION='3.8.1-gog43454' ARCHIVE_BASE_3_URL='https://www.gog.com/game/worms_armageddon' ARCHIVE_BASE_2_NAME='setup_worms_armageddon_gog-2_(40354).exe' ARCHIVE_BASE_2_MD5='db2087029ee8c069c9006ebeedc76bbf' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_SIZE='650000' ARCHIVE_BASE_2_VERSION='3.8-gog40354' ARCHIVE_BASE_1_NAME='setup_worms_armageddon_gog-7_(40119).exe' ARCHIVE_BASE_1_MD5='8e904d462327917452a47572a38b772a' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='660000' ARCHIVE_BASE_1_VERSION='3.8-gog40119' ARCHIVE_BASE_0_NAME='setup_worms_armageddon_2.0.0.2.exe' ARCHIVE_BASE_0_MD5='7f0bb89729662ebe74b7c9c2cd97d1c8' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='570000' ARCHIVE_BASE_0_VERSION='3.7.2.1-gog2.0.0.2' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_BIN_FILES=' lfcmp10n.dll ltfil10n.dll lfbmp10n.dll ltkrn10n.dll lflmb10n.dll lftga10n.dll wa.exe user/bankeditor.exe' CONTENT_GAME_DATA_FILES=' data fesfx graphics tweaks user' CONTENT_GAME0_DATA_RELATIVE_PATH='__support' CONTENT_GAME0_DATA_FILES=' save' CONTENT_DOC_DATA_FILES=' wa_manual.pdf worms armageddon update documentation.rtf' USER_PERSISTENT_DIRECTORIES=' save user' USER_PERSISTENT_FILES=' graphics/font.bmp' APP_MAIN_EXE='wa.exe' ## Create a required empty file prior to game run APP_MAIN_PRERUN=' # Create a required empty file prior to game run touch steam.dat ' 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-zachtronics.sh0000750000000000000000000001662414471751340014513 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2021 Mopi set -o errexit ### # Zachtronics games: # - Opus Magnum # - Exapunks # - Eliza # - Molek-Syntez # - Last Call BBS # - Zachtronics Solitaire Collection # send your bug reports to vv221@dotslashplay.it ### script_version=20250603.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID_OPUSMAGNUM='opus-magnum' GAME_NAME_OPUSMAGNUM='Opus Magnum' GAME_ID_EXAPUNKS='exapunks' GAME_NAME_EXAPUNKS='Exapunks' GAME_ID_ELIZA='eliza' GAME_NAME_ELIZA='Eliza' GAME_ID_MOLEKSYNTEZ='molek-syntez' GAME_NAME_MOLEKSYNTEZ='Molek-Syntez' GAME_ID_LASTCALL='last-call-bbs' GAME_NAME_LASTCALL='Last Call BBS' GAME_ID_SOLITAIRE='zachtronics-solitaire-collection' GAME_NAME_SOLITAIRE='The Zachtronics Solitaire Collection' # Archives ## Opus Magnum ARCHIVE_BASE_OPUSMAGNUM_2_NAME='opus_magnum_26_03_2023_63471.sh' ARCHIVE_BASE_OPUSMAGNUM_2_MD5='0313ec8451cac5445818f143a7c2d79d' ARCHIVE_BASE_OPUSMAGNUM_2_SIZE='520000' ARCHIVE_BASE_OPUSMAGNUM_2_VERSION='2023.03.26-gog63471' ARCHIVE_BASE_OPUSMAGNUM_2_URL='https://www.gog.com/game/opus_magnum' ARCHIVE_BASE_OPUSMAGNUM_1_NAME='opus_magnum_11_14_2020_43144.sh' ARCHIVE_BASE_OPUSMAGNUM_1_MD5='2defb1198c5a5778eb9ac20ff201f086' ARCHIVE_BASE_OPUSMAGNUM_1_SIZE='520000' ARCHIVE_BASE_OPUSMAGNUM_1_VERSION='2020.11.14-gog43144' ARCHIVE_BASE_OPUSMAGNUM_0_NAME='opus_magnum_en_17_08_2018_update_23270.sh' ARCHIVE_BASE_OPUSMAGNUM_0_MD5='dbe5137d4b7e2edd21f4117a80756872' ARCHIVE_BASE_OPUSMAGNUM_0_SIZE='460000' ARCHIVE_BASE_OPUSMAGNUM_0_VERSION='2018.08.17-gog23270' ## Exapunks ARCHIVE_BASE_EXAPUNKS_1_NAME='exapunks_gog_26_03_2023_63466.sh' ARCHIVE_BASE_EXAPUNKS_1_MD5='f2e0fda51c0ebc94345379ffc56d188f' ARCHIVE_BASE_EXAPUNKS_1_SIZE='730000' ARCHIVE_BASE_EXAPUNKS_1_VERSION='2023.03.26-gog63466' ARCHIVE_BASE_EXAPUNKS_1_URL='https://www.gog.com/game/exapunks' ARCHIVE_BASE_EXAPUNKS_0_NAME='exapunks_gog_11_14_2020_43140.sh' ARCHIVE_BASE_EXAPUNKS_0_MD5='46222cde2bdac46c80b3c64a976c9f78' ARCHIVE_BASE_EXAPUNKS_0_SIZE='730000' ARCHIVE_BASE_EXAPUNKS_0_VERSION='2020.11.14-gog43140' ## Eliza ARCHIVE_BASE_ELIZA_2_NAME='eliza_march_2023_update_63854.sh' ARCHIVE_BASE_ELIZA_2_MD5='7ea156a0a553e1f44fbf1f4aee5a3aac' ARCHIVE_BASE_ELIZA_2_SIZE='1900000' ARCHIVE_BASE_ELIZA_2_VERSION='2023.03-gog63854' ARCHIVE_BASE_ELIZA_2_URL='https://www.gog.com/game/eliza' ARCHIVE_BASE_ELIZA_1_NAME='eliza_11_14_2020_43139.sh' ARCHIVE_BASE_ELIZA_1_MD5='0508915315f0c2b5b102bfd80cd252ef' ARCHIVE_BASE_ELIZA_1_SIZE='1900000' ARCHIVE_BASE_ELIZA_1_VERSION='2020.11.14-gog43139' ARCHIVE_BASE_ELIZA_0_NAME='eliza_03_09_2019_32218.sh' ARCHIVE_BASE_ELIZA_0_MD5='7751b93498ad637a79f84cbbc7370f0a' ARCHIVE_BASE_ELIZA_0_SIZE='1100000' ARCHIVE_BASE_ELIZA_0_VERSION='2019.03.09-gog32218' ## Molek-Syntez ARCHIVE_BASE_MOLEKSYNTEZ_1_NAME='molek_syntez_26_03_2023_63470.sh' ARCHIVE_BASE_MOLEKSYNTEZ_1_MD5='bd13a99c3365d22cabb68d88c0216b2d' ARCHIVE_BASE_MOLEKSYNTEZ_1_SIZE='200000' ARCHIVE_BASE_MOLEKSYNTEZ_1_VERSION='2023.03.26-gog63470' ARCHIVE_BASE_MOLEKSYNTEZ_1_URL='https://www.gog.com/game/moleksyntez' ARCHIVE_BASE_MOLEKSYNTEZ_0_NAME='molek_syntez_11_14_2020_43139.sh' ARCHIVE_BASE_MOLEKSYNTEZ_0_MD5='95735bb467813bbcd10c049bf1861c0c' ARCHIVE_BASE_MOLEKSYNTEZ_0_SIZE='200000' ARCHIVE_BASE_MOLEKSYNTEZ_0_VERSION='2020.11.14-gog43139' ARCHIVE_BASE_MOLEKSYNTEZ_0_URL='https://www.gog.com/game/moleksyntez' ## Last Call BBS ARCHIVE_BASE_LASTCALL_0_NAME='last_call_bbs_1_0_57778.sh' ARCHIVE_BASE_LASTCALL_0_MD5='3dc1e94645cc3ea871cb48b930056699' ARCHIVE_BASE_LASTCALL_0_SIZE='230000' ARCHIVE_BASE_LASTCALL_0_VERSION='1.0-gog57778' ARCHIVE_BASE_LASTCALL_0_URL='https://www.gog.com/game/last_call_bbs' ## Zachtronics Solitaire Collection ARCHIVE_BASE_SOLITAIRE_3_NAME='the_zachtronics_solitaire_collection_march_2023_update_63924.sh' ARCHIVE_BASE_SOLITAIRE_3_MD5='8965f467c0243ead5cf51468771d59fd' ARCHIVE_BASE_SOLITAIRE_3_SIZE='640000' ARCHIVE_BASE_SOLITAIRE_3_VERSION='2023.03-gog63924' ARCHIVE_BASE_SOLITAIRE_3_URL='https://www.gog.com/game/the_zachtronics_solitaire_collection' ARCHIVE_BASE_SOLITAIRE_2_NAME='the_zachtronics_solitaire_collection_1_2_59266.sh' ARCHIVE_BASE_SOLITAIRE_2_MD5='8202afdd9c32244da3ea632f86597766' ARCHIVE_BASE_SOLITAIRE_2_SIZE='640000' ARCHIVE_BASE_SOLITAIRE_2_VERSION='1.2-gog59266' ARCHIVE_BASE_SOLITAIRE_1_NAME='the_zachtronics_solitaire_collection_1_1_58740.sh' ARCHIVE_BASE_SOLITAIRE_1_MD5='33190fa2731ce09d04e028585061c3e4' ARCHIVE_BASE_SOLITAIRE_1_SIZE='640000' ARCHIVE_BASE_SOLITAIRE_1_VERSION='1.1-gog58740' ARCHIVE_BASE_SOLITAIRE_0_NAME='the_zachtronics_solitaire_collection_1_0_58571.sh' ARCHIVE_BASE_SOLITAIRE_0_MD5='1b33a67b53c34150b8795c9680874bba' ARCHIVE_BASE_SOLITAIRE_0_SIZE='640000' ARCHIVE_BASE_SOLITAIRE_0_VERSION='1.0-gog58571' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES_COMMON=' Ionic.Zip.Reduced.dll MoonSharp.Interpreter.dll System.Speech.dll Content PackedContent monoconfig monomachineconfig' CONTENT_GAME_MAIN_FILES_OPUSMAGNUM="$CONTENT_GAME_MAIN_FILES_COMMON Lightning.exe Lightning.exe.config" CONTENT_GAME_MAIN_FILES_EXAPUNKS="$CONTENT_GAME_MAIN_FILES_COMMON EXAPUNKS.exe EXAPUNKS.exe.config" CONTENT_GAME_MAIN_FILES_ELIZA="$CONTENT_GAME_MAIN_FILES_COMMON Eliza.exe Eliza.exe.config" CONTENT_GAME_MAIN_FILES_MOLEKSYNTEZ="$CONTENT_GAME_MAIN_FILES_COMMON MOLEK-SYNTEZ.exe MOLEK-SYNTEZ.exe.config" CONTENT_GAME_MAIN_FILES_LASTCALL="$CONTENT_GAME_MAIN_FILES_COMMON LastCallBBS.exe LastCallBBS.exe.config System.Speech.dll" CONTENT_GAME_MAIN_FILES_SOLITAIRE="$CONTENT_GAME_MAIN_FILES_COMMON TheZachtronicsSolitaireCollection.exe TheZachtronicsSolitaireCollection.exe.config" CONTENT_DOC_MAIN_FILES=' LICENSE.txt' APP_MAIN_EXE_OPUSMAGNUM='Lightning.exe' APP_MAIN_EXE_EXAPUNKS='EXAPUNKS.exe' APP_MAIN_EXE_ELIZA='Eliza.exe' APP_MAIN_EXE_MOLEKSYNTEZ='MOLEK-SYNTEZ.exe' APP_MAIN_EXE_LASTCALL='LastCallBBS.exe' APP_MAIN_EXE_SOLITAIRE='TheZachtronicsSolitaireCollection.exe' APP_MAIN_ICON='Content/icon.png' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libSDL2-2.0.so.0 libSDL2_image-2.0.so.0 libSDL2_mixer-2.0.so.0 libvorbisfile.so.3' PKG_MAIN_DEPENDENCIES_MONO_LIBRARIES=' mscorlib.dll I18N.dll I18N.West.dll Mono.Posix.dll Mono.Security.dll System.dll System.ComponentModel.DataAnnotations.dll System.Configuration.dll System.Core.dll System.Data.dll System.Drawing.dll System.Numerics.dll System.Runtime.Serialization.dll System.Security.dll System.Transactions.dll System.Web.dll System.Web.Extensions.dll System.Web.Http.dll System.Web.Services.dll System.Xml.dll System.Xml.Linq.dll' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 tests/check-license.sh0000750000000000000000000000064314471751340013756 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 LICENSE0000640000000000000000000000366214471751340010572 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 © 2016 Mopi Copyright © 2018 BetaRays Copyright © 2018 Dawnmist Copyright © 2018 Jacek Szafarkiewicz Copyright © 2018 Phil Morrell Copyright © 2018 VA Copyright © 2020 Hoël Bézier Copyright © 2020 macaron Copyright © 2020 Fabien Givors Copyright © 2021 Anna Lea Copyright © 2021 HS-157 Copyright © 2021 Hubert Ray 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. Makefile0000640000000000000000000000502614471751340011221 0ustar rootrootcollection_name = 40_vv221-games 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.md0000640000000000000000000001652714471751340011050 0ustar rootroot# vv221ʼs games collection The codebase is maintained at [https://git.vv221.fr/play.it-vv221/] Bug reports and support requests should be sent to [vv221@dotslashplay.it]. [https://git.vv221.fr/play.it-vv221/]: https://git.vv221.fr/play.it-vv221/ [vv221@dotslashplay.it]: mailto:vv221@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 collection adds support for a collection of games curated by vv221, ./play.it original author. It can be seen as a very subjective "best of". ## Installation ### From Debian/Ubuntu repositories This package is only provided from Debian 13 "Trixie" or newer, and Ubuntu 24.04 "Noble Numbat" or newer. Users of older versions of these distributions should follow the next instructions about installing this collection from the git repository. ``` apt install play.it-vv221 ``` ### From the git repository ``` git clone --branch main --depth 1 http://git.vv221.fr/play.it-vv221 play.it-vv221.git cd play.it-vv221.git make install ``` ## Usage Usage instructions are provided on the main ./play.it repository: [./play.it: Installer for DRM-free commercial games — Usage] [./play.it: Installer for DRM-free commercial games — Usage]: https://git.dotslashplay.it/scripts/about/#usage ## Supported games ### Action - A Dance of Fire and Ice - Bastion - Children of Morta - Deus Ex - Diablo series: - Diablo - Diablo 2 - Grim Dawn - Freelancer - Jade Empire - Painkiller - Pyre - Raji: An Ancient Epic - Sales Gosses ! - Shogo: Mobile Armor Division - Skullgirls - The Elder Scrolls 3: Morrowind - The Witcher - Titan Quest - Tonight We Riot - Torchlight series: - Torchlight - Torchlight 2 - Total Overdose - Transistor - Unreal Tournament series: - Unreal Tournament - Unreal Tournament 2004 - Vampire: The Masquerade - Bloodlines - Victor Vran ### Action-adventure - Beyond Good & Evil - Prince of Persia: The Sands of Time - Scrapland - Tomb Raider series: - Tomb Raider - Tomb Raider 2 - Tomb Raider 3 ### Adventure - Blacksad: Under the Skin - Blackwell series: - The Blackwell Legacy - Blackwell Unbound - The Blackwell Convergence - The Blackwell Deception - The Blackwell Epiphany - Day of the Tentacle - Gamedec - Gobliiins series: - Gobliiins - Gobliins 2: The Prince Buffoon - Goblins Quest 3 - Gobliiins 5 - Eliza - Kathy Rain series: - Kathy Rain - Kathy Rain 2: Soothsayer - Mask of the Rose - Monkey Island series: - The Secret of Monkey Island - Monkey Island 2: LeChuck's Revenge - The Curse of Monkey Island - Escape from Monkey Island - Return to Monkey Island - Myst series: - Myst - Riven: The Sequel to Myst - Myst 3: Exile - realMyst: Masterpiece Edition - Old Skies - Orwell series: - Orwell - Orwell: Ignorance is Strength - Primordia - Roadwarden - Sam and Max Hit the Road - Shardlight - Slay the Princess - Song of Farca - Superflu Riteurnz - The Kittehverse: - Gibbous - A Cthulhu Adventure - Near-Mage - Unavowed - Whispers of a Machine - World of Darkness setting: - Vampire: The Masquerade - Coteries of New York - Vampire: The Masquerade - Shadows of New York - Vampire: The Masquerade - Reckoning of New York - Werewolf: The Apocalypse - Heart of the Forest - Werewolf: The Apocalypse - Purgatory ### Cyberpunk - Deus Ex - Exapunks - Gamedec - Shadowrun series (by Harebrained Schemes): - Shadowrun Returns - Shadowrun: Dragonfall - Shadowrun: Hong Kong - Song of Farca - Whispers of a Machine ### Horror - Darkest Dungeon - Diablo series: - Diablo - Diablo 2 - Fallen London setting: - Sunless Sea - Sunless Skies - Ghost Master - Grim Dawn - Painkiller - Slay the Princess - The Kittehverse: - Gibbous - A Cthulhu Adventure - Near-Mage - World of Darkness setting: - Vampire: The Masquerade - Bloodlines - Vampire: The Masquerade - Coteries of New York - Vampire: The Masquerade - Shadows of New York - Vampire: The Masquerade - Reckoning of New York - Werewolf: The Apocalypse - Heart of the Forest - Werewolf: The Apocalypse - Purgatory - Victor Vran ### Platform - Distance - Jazz Jackrabbit 2 - Prince of Persia: The Sands of Time - Rayman series: - Rayman - Rayman Origins - Tomb Raider series: - Tomb Raider - Tomb Raider 2 - Tomb Raider 3 ### Puzzle - 7 Billion Humans - Ghost Master - Human Resource Machine - Little Inferno - Myst series: - Myst - Riven: The Sequel to Myst - Myst 3: Exile - realMyst: Masterpiece Edition - Orwell series: - Orwell - Orwell: Ignorance is Strength - World of Goo series: - World of Goo - World of Goo 2 - Zachtronics games: - Opus Magnum - Exapunks - Molek-Syntez - Last Call BBS - Zachtronics Solitaire Collection ### Racing - BallisticNG - Distance - Trailblazers ### Role-playing - Anachronox - Baldur's Gate series: - Baldur's Gate - Baldur's Gate 2 - Baldur's Gate 3 - Bastion - Children of Morta - Darkest Dungeon - Deus Ex - Diablo series: - Diablo - Diablo 2 - Disco Elysium - Fallen London setting: - Sunless Sea - Sunless Skies - Freelancer - Gamedec - Grim Dawn - Icewind Dale series: - Icewind Dale - Icewind Dale 2 - Jade Empire - Loop Hero - Pillars of Eternity - Planescape: Torment - Pyre - Shadowrun series (by Harebrained Schemes): - Shadowrun Returns - Shadowrun: Dragonfall - Shadowrun: Hong Kong - Star Wars: Knights of the Old Republic series: - Star Wars: Knights of the Old Republic - Star Wars: Knights of the Old Republic 2: The Sith Lords - The Elder Scrolls 3: Morrowind - The Lamplighters League - The Witcher - Titan Quest - Torchlight series: - Torchlight - Torchlight 2 - Torment: Tides of Numenera - Transistor - Tyranny - Vampire: The Masquerade - Bloodlines - Victor Vran - Warhammer 40,000: Rogue Trader - Wasteland 2 ### Strategy - Age of Mythology - Alpha Centauri - City Building series (by Impression Games and BreakAway Games): - Caesar 3 - Pharaoh - Zeus: Master of Olympus - Emperor: Rise of the Middle Kingdom - Desperados series: - Desperados: Wanted Dead or Alive - Desperados 3 - Dark Reign 2 - Dungeon Keeper series: - Dungeon Keeper - Dungeon Keeper 2 - Factorio - Frostpunk - FTL: Faster Than Light - Galacticare - Ghost Master - Heroes of Might and Magic series: - Heroes of Might and Magic 4 - Heroes of Might and Magic 5 - Kingdom Rush series: - Kingdom Rush - Kingdom Rush: Frontiers - Kingdom Rush: Origins - Off-World Resource Base - Oil Rush - Pandora: First Contact - Renowned Explorers - Reus series: - Reus - Reus 2 - Shadow Gambit: The Cursed Crew - Shadow Tactics: Blades of the Shogun - Songs of Conquest - Star Wars: Galactic Battlegrounds - StarCraft - Startopia - Stellaris - The Settlers 2 - Transistor - Tropico series: - Tropico - Tropico 2: Pirate Cove - War for the Overworld - Warcraft 3 - Warhammer 40,000 setting: - Warhammer 40,000: Dawn of War - Warhammer 40,000: Gladius - Relics of War - Warlords Battlecry 2 - Worms series: - Worms 2 - Worms Armageddon