games/play-guide-of-the-butterfly.sh0000700000000000000000000000341014471751340016437 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Guide of the Butterfly # send your bug reports to bugs@dotslashplay.it ### script_version=20241107.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='guide-of-the-butterfly' GAME_NAME='Guide of the Butterfly' ARCHIVE_BASE_0_NAME='guide-of-the-butterfly-final.zip' ARCHIVE_BASE_0_MD5='a0d78bc3104d4d87350472dcfca458ec' ARCHIVE_BASE_0_SIZE='83000' ARCHIVE_BASE_0_VERSION='1.0.1-itch.2020.04.17' ARCHIVE_BASE_0_URL='https://lparkermg.itch.io/guide-of-the-butterfly' UNITY3D_NAME='Guide_of_the_Butterfly' CONTENT_PATH_DEFAULT='.' 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-just-one-must-choose.sh0000700000000000000000000000400214471751340016152 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Just one, must choose # send your bug reports to bugs@dotslashplay.it ### script_version=20250311.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='just-one-must-choose' GAME_NAME='Just one, must choose' ARCHIVE_BASE_0_NAME='Just one, must choose - Linux.zip' ARCHIVE_BASE_0_MD5='1a93360c282cee3b8e11a6f04698a2dd' ARCHIVE_BASE_0_SIZE='5100' ARCHIVE_BASE_0_VERSION='1.0-itch.2019.08.04' ARCHIVE_BASE_0_URL='https://gonzalo-ortega.itch.io/just-one-must-choose' CONTENT_PATH_DEFAULT='application.linux64' CONTENT_GAME_MAIN_FILES=' source lib' APP_MAIN_TYPE='java' APP_MAIN_EXE='Only_One' APP_MAIN_JAVA_OPTIONS='-Djna.nosys=true -Djava.library.path=lib -cp lib/Only_One.jar:lib/core.jar:lib/jogl-all.jar:lib/gluegen-rt.jar:lib/jogl-all-natives-linux-amd64.jar:lib/gluegen-rt-natives-linux-amd64.jar' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_default # Write launchers ## The launcher target is not a .jar archive. launcher_target_presence_check() { true ; } game_exec_line() { cat <<- EOF java $APP_MAIN_JAVA_OPTIONS $APP_MAIN_EXE "\$@" EOF } launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-minecraft-4k.sh0000755000000000000000000000350614471751340014450 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Minecraft 4K # send your bug reports to bugs@dotslashplay.it ### script_version=20250326.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='minecraft-4k' GAME_NAME='Minecraft 4K' ARCHIVE_BASE_0_NAME='4K.exe' ARCHIVE_BASE_0_MD5='c566f5be102e1e1afc153690e47173e5' ARCHIVE_BASE_0_EXTRACTOR='unzip' ARCHIVE_BASE_0_SIZE='20' ARCHIVE_BASE_0_VERSION='1.0-archiveorg180513' ARCHIVE_BASE_0_URL='https://archive.org/details/Minecraft4K' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES=' M.class' APP_MAIN_TYPE='java' APP_MAIN_EXE='M' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data ## Errors during the data extraction from the archive are expected, ## they should be ignored. archive_extraction_default 2>/dev/null || true # Include game data content_inclusion_default # Write launchers ## The launcher target is not a .jar archive launcher_target_presence_check() { true ; } game_exec_line() { cat <<- 'EOF' java M "$@" EOF } launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-monad.sh0000700000000000000000000000323014471751340013242 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Monad # send your bug reports to bugs@dotslashplay.it ### script_version=20241107.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='monad' GAME_NAME='Monad' ARCHIVE_BASE_0_NAME='monad-win64.zip' ARCHIVE_BASE_0_MD5='43f7b632cbd1d622859305b4b7d4839e' ARCHIVE_BASE_0_SIZE='15000' ARCHIVE_BASE_0_VERSION='1.0-itch.2019.07.31' ARCHIVE_BASE_0_URL='https://shinyogre.itch.io/monad' CONTENT_PATH_DEFAULT='monad-win' CONTENT_GAME_MAIN_FILES=' monad.exe game.ico *.dll' CONTENT_DOC_MAIN_FILES=' license.txt' APP_MAIN_EXE='monad.exe' APP_MAIN_ICON='game.ico' PKG_MAIN_ARCH='64' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 tests/check-license.sh0000700000000000000000000000064314471751340013751 0ustar rootroot#!/bin/sh set -o errexit CONTRIBUTORS_LIST=$( grep 'SPDX-FileCopyrightText' games/* | cut --delimiter=' ' --fields=5- | sort --unique ) CONTRIBUTOR_MISSING=0 while read contributor; do grep --quiet "$contributor" LICENSE || { printf 'Missing contributor in LICENSE: %s\n' "$contributor" && CONTRIBUTOR_MISSING=1 } done << EOL $(printf '%s\n' "$CONTRIBUTORS_LIST") EOL test $CONTRIBUTOR_MISSING -eq 0 LICENSE0000600000000000000000000000501414471751340010557 0ustar rootrootThis license applies to all files outside of the "games" subdirectory, and is the default one for files in "games" directory. If a script specifies another license in its headers, the license set in the script takes precedence over this one. # BSD-2-Clause Copyright © 2015 Antoine Le Gonidec Copyright © 2015 mortalius Copyright © 2016 Mopi Copyright © 2017 HS-157 Copyright © 2017 Jacek Szafarkiewicz Copyright © 2017 Phil Morrell Copyright © 2018 BetaRays Copyright © 2018 Sébastien “Elzen” Dufromentel Copyright © 2018 VA Copyright © 2018 Andrey Butirsky Copyright © 2018 Dominique Derrier Copyright © 2019 Erwann Duclos Copyright © 2019 Emmanuel Gil Peyrot Copyright © 2020 berru Copyright © 2020 Hoël Bézier Copyright © 2020 macaron Copyright © 2020 Alarig Le Lay Copyright © 2020 Igor Telmenko Copyright © 2020 bbob Copyright © 2020 edgar.vincent Copyright © 2021 Anna Lea Copyright © 2021 Daguhh Copyright © 2021 briaguya Copyright © 2021 Christian Stalp Copyright © 2021 dany_wilde Copyright © 2021 Thomas Vasileiou Copyright © 2023 Fabien Givors Copyright © 2023 locynaeh Copyright © 2025 tyzef All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. This software is provided by the copyright holders and contributors "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the copyright holder or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage. Makefile0000600000000000000000000000502414471751340011213 0ustar rootrootcollection_name = 50_community UID := $(shell id --user) ifeq ($(UID),0) prefix = /usr/local datadir = $(prefix)/share/games else ifeq ($(XDG_DATA_HOME),) XDG_DATA_HOME := $(HOME)/.local/share endif prefix = $(XDG_DATA_HOME) datadir = $(prefix) endif 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.md0000644000000000000000000000452114471751340011043 0ustar rootroot# ./play.it unmaintained legacy games collection The codebase is (un)maintained at [https://git.dotslashplay.it/games-community/] [https://git.dotslashplay.it/games-community/]: https://git.dotslashplay.it/games-community/ ## 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 repository contains only game scripts that have not been imported into a maintained collection yet. ## Installation ### Distributions providing ./play.it The following distributions provide installation instructions in their official documentation: - [Debian] - [Gentoo] - [Ubuntu] (French article) [Debian]: https://wiki.debian.org/Games/PlayIt#Installation [Gentoo]: https://wiki.gentoo.org/wiki/Play.it#Installation [Ubuntu]: https://doc.ubuntu-fr.org/play.it#installation In most cases, these instructions should work in the same way for derivatives of these distributions. ### Installation from git If your distribution does not already have a package for this ./play.it collection, you can install it from this git repository. ``` git clone --branch main --depth 1 https://git.dotslashplay.it/games-community play.it-community.git cd play.it-community.git make install ``` ## Usage Usage instructions are provided on the main ./play.it repository: [./play.it: Installer for DRM-free commercial games — Usage] [./play.it: Installer for DRM-free commercial games — Usage]: https://git.dotslashplay.it/scripts/about/#usage ## Contributing Contributions to this legacy collection are not expected. If a game you like is still listed below, please get in touch so we migrate it to a maintained collection. ## Supported games - Guide of the Butterfly - Just one, must choose - Minecraft 4K - Monad ## Contact information ### IRC channel Some ./play.it developers and users can be reached on IRC, channel is `#play.it` on network `irc.oftc.net`. The main language on this IRC channel is English, but some of us understand French too. ### E-mail A contact e-mail for feedback can usually be found in each ./play.it game script. Open one of these files with any text editor to see the contact e-mail.