Merge branch 'testing' in preparation for binary release.

This commit is contained in:
Storm Dragon 2021-05-10 18:01:42 -04:00
commit f5b8b26c01
2 changed files with 105 additions and 17 deletions

View File

@ -148,71 +148,92 @@ EOF
checklist() { checklist() {
declare -a errorList declare -a errorList
echo "Checking your system..." declare -a packageList
echo if [[ $# -eq 0 ]]; then
echo "Checking your system..."
echo
fi
if command -v wine &> /dev/null ; then if command -v wine &> /dev/null ; then
echo "Wine is installed." [[ $# -eq 0 ]] && echo "Wine is installed."
else else
errorList+=("Critical: Wine is not installed. You will not be able to play any games.") errorList+=("Critical: Wine is not installed. You will not be able to play any games.")
fi fi
packageList+=("wine")
if command -v winetricks &> /dev/null ; then if command -v winetricks &> /dev/null ; then
echo "Winetricks is installed." [[ $# -eq 0 ]] && echo "Winetricks is installed."
else else
errorList+=("Critical: Winetricks is not installed. This means wine cannot be configured, dependancies cannot be installed, and only self-voicing games have any chance of working.") errorList+=("Critical: Winetricks is not installed. This means wine cannot be configured, dependancies cannot be installed, and only self-voicing games have any chance of working.")
fi fi
packageList+=("winetricks")
if command -v wget &> /dev/null ; then if command -v wget &> /dev/null ; then
echo "Wget is installed." [[ $# -eq 0 ]] && echo "Wget is installed."
else else
errorList+=("Critical: Wget is not installed. You will not be able to install any games.") errorList+=("Critical: Wget is not installed. You will not be able to install any games.")
fi fi
packageList+=("wget")
if command -v dialog &> /dev/null ; then if command -v dialog &> /dev/null ; then
echo "Dialog is installed." [[ $# -eq 0 ]] && echo "Dialog is installed."
else else
errorList+=("Critical: Dialog is not installed. You will not be able to install, launch, or remove any games.") errorList+=("Critical: Dialog is not installed. You will not be able to install, launch, or remove any games.")
fi fi
packageList+=("dialog")
for i in 7z cabextract unzip xz ; do for i in 7z cabextract unzip xz ; do
if command -v $i &> /dev/null ; then if command -v $i &> /dev/null ; then
echo "${i^} is installed." [[ $# -eq 0 ]] && echo "${i^} is installed."
else else
errorList+=("Critical: ${i^} is not installed. You will not be able to install some games or their components.") errorList+=("Critical: ${i^} is not installed. You will not be able to install some games or their components.")
fi fi
packageList+=("$i")
done done
if command -v gawk &> /dev/null ; then if command -v gawk &> /dev/null ; then
echo "Gawk is installed." [[ $# -eq 0 ]] && echo "Gawk is installed."
else else
errorList+=("Warning: gawk is not installed. Game removal with -r will not work.") errorList+=("Warning: gawk is not installed. Game removal with -r will not work.")
fi fi
packageList+=("gawk")
if command -v ocrdesktop &> /dev/null ; then if command -v ocrdesktop &> /dev/null ; then
echo "Ocrdesktop is installed." [[ $# -eq 0 ]] && echo "Ocrdesktop is installed."
else else
errorList+=("Warning: ocrdesktop is not installed. It can help if the installer gets stuck to figure out what is happening.") errorList+=("Warning: ocrdesktop is not installed. It can help if the installer gets stuck to figure out what is happening.")
fi fi
packageList+=("ocrdesktop")
if command -v qjoypad &> /dev/null ; then if command -v qjoypad &> /dev/null ; then
echo "Qjoypad is installed." [[ $# -eq 0 ]] && echo "Qjoypad is installed."
else else
errorList+=("Warning: qjoypad is not installed. Qjoypad allows you to play keyboard only games with a gamepad.") errorList+=("Warning: qjoypad is not installed. Qjoypad allows you to play keyboard only games with a gamepad.")
fi fi
packageList+=("qjoypad")
if command -v unix2dos &> /dev/null ; then if command -v unix2dos &> /dev/null ; then
echo "Dos2unix is installed." [[ $# -eq 0 ]] && echo "Dos2unix is installed."
else else
errorList+=("Warning: unix2dos is not installed. Some games need a configuration file in dos format before they will run.") errorList+=("Warning: unix2dos is not installed. Some games need a configuration file in dos format before they will run.")
fi fi
packageList+=("unix2dos")
if command -v w3m &> /dev/null ; then if command -v w3m &> /dev/null ; then
echo "W3m is installed." [[ $# -eq 0 ]] && echo "W3m is installed."
else else
errorList+=("Warning: w3m is not installed. W3m is used to view game documentation.") errorList+=("Warning: w3m is not installed. W3m is used to view game documentation.")
fi fi
packageList+=("w3m")
if command -v xclip &> /dev/null ; then if command -v xclip &> /dev/null ; then
echo "Xclip is installed." [[ $# -eq 0 ]] && echo "Xclip is installed."
else else
errorList+=("Warning: Xclip is not installed. Some games may not speak or register properly.") errorList+=("Warning: Xclip is not installed. Some games may not speak or register properly.")
fi fi
packageList+=("xclip")
if command -v xdotool &> /dev/null ; then if command -v xdotool &> /dev/null ; then
echo "Xdotool is installed." [[ $# -eq 0 ]] && echo "Xdotool is installed."
else else
errorList+=("Warning: Xdotool is not installed. Some installers may not work or may need manual intervention.") errorList+=("Warning: Xdotool is not installed. Some installers may not work or may need manual intervention.")
fi fi
packageList+=("xdotool")
# Show the results # Show the results
if [[ $# -ne 0 ]]; then
for i in "${packageList[@]}" ; do
echo "$i"
done | sort
exit 0
fi
if [[ ${#errorList[@]} -eq 0 ]]; then if [[ ${#errorList[@]} -eq 0 ]]; then
echo "No problems found, you are good to go." echo "No problems found, you are good to go."
exit 0 exit 0
@ -250,6 +271,8 @@ download() {
for i in "${source[@]}" ; do for i in "${source[@]}" ; do
local dest="${i##*/}" local dest="${i##*/}"
dest="${dest//%20/ }" dest="${dest//%20/ }"
# Remove the destination file if it is empty.
test -s "${cache}/${dest}" || rm -f "${cache}/${dest}" 2> /dev/null
# Skip if the item is in cache. # Skip if the item is in cache.
test -e "${cache}/${dest}" && continue test -e "${cache}/${dest}" && continue
if ! wget -4 -O "${cache}/${dest}" "${i}" ; then if ! wget -4 -O "${cache}/${dest}" "${i}" ; then
@ -530,8 +553,6 @@ game_launcher() {
wine "$winePath\\$wineExec" wine "$winePath\\$wineExec"
exit 0 exit 0
fi fi
# Work around possible wrong path for start.exe
[[ -e "${WINEPREFIX}/drive_c/windows/system32/start.exe" ]] || ln -sr "${WINEPREFIX}/drive_c/windows/command/start.exe" "${WINEPREFIX}/drive_c/windows/system32/start.exe"
if [[ -d "${WINEPREFIX}/drive_c/windows/syswow64" ]]; then if [[ -d "${WINEPREFIX}/drive_c/windows/syswow64" ]]; then
wine64 start /realtime /d "${winePath}" "$wineExec" wine64 start /realtime /d "${winePath}" "$wineExec"
else else
@ -621,7 +642,7 @@ gameList=(
"Finger Panic" "Finger Panic"
"Fuck That Bird" "Fuck That Bird"
"GMA Tank Commander" "GMA Tank Commander"
"Golden Crayon" #"Golden Crayon"
"Hammer of Glory" "Hammer of Glory"
"Hunter" "Hunter"
"Insect Therapy" "Insect Therapy"
@ -645,12 +666,14 @@ gameList=(
"Perilous Hearts" "Perilous Hearts"
"Pontes Kickups!" "Pontes Kickups!"
"Q9" "Q9"
"Revenge of the Undead"
"Rhythm Rage" "Rhythm Rage"
#"River raiders" #"River raiders"
"RS Games" "RS Games"
"Run For Your Life" "Run For Your Life"
#"Sammy Center" #"Sammy Center"
"Sequence Storm" "Sequence Storm"
#"Shades of Doom 1.2"
"Shades of Doom" "Shades of Doom"
#"Silver Dollar" #"Silver Dollar"
"Slender Lost Vision" "Slender Lost Vision"
@ -693,6 +716,7 @@ declare -A command=(
[L]="Display license information." [L]="Display license information."
[l:]="Launch given game without interactive audiogame-manager menu specified by its wine bottle." [l:]="Launch given game without interactive audiogame-manager menu specified by its wine bottle."
[N]="No cache, delete the installer after it has been extracted." [N]="No cache, delete the installer after it has been extracted."
[P]="Print a list of packages required by audiogame-manager."
[r]="Remove a game. This will delete all game data." [r]="Remove a game. This will delete all game data."
) )
@ -716,6 +740,7 @@ while getopts "${args}" i ; do
L) license;; L) license;;
l) game_launcher "${OPTARG}";; l) game_launcher "${OPTARG}";;
N) noCache="true";; N) noCache="true";;
P) checklist quiet;;
r) game_removal;; r) game_removal;;
esac esac
done done
@ -1181,6 +1206,14 @@ EOF
wine "${cache}/q9_english_installer.exe" /silent wine "${cache}/q9_english_installer.exe" /silent
add_launcher "c:\Program Files\Q9 Action Game\q9.exe" add_launcher "c:\Program Files\Q9 Action Game\q9.exe"
;; ;;
"Revenge of the Undead")
export winVer="win7"
install_wine_bottle speechsdk
download "https://ims-productions.com/downloads/rotu.zip"
unzip -d "$WINEPREFIX/drive_c/Program Files/revenge of the undead" "${cache}/rotu.zip"
find "${WINEPREFIX}" -type f -name "nvdaControllerClient32.dll" -exec rm -fv "{}" \;
add_launcher "c:\Program Files\revenge of the undead\rotu.exe"
;;
"Rhythm Rage") "Rhythm Rage")
export winVer="win7" export winVer="win7"
install_wine_bottle speechsdk install_wine_bottle speechsdk
@ -1238,6 +1271,12 @@ EOF
wget -O "$WINEPREFIX/drive_c/Program Files/sequence-storm/settings.json" "https://stormgames.wolfe.casa/downloads/sequencestorm-settings.json" wget -O "$WINEPREFIX/drive_c/Program Files/sequence-storm/settings.json" "https://stormgames.wolfe.casa/downloads/sequencestorm-settings.json"
add_launcher "c:\Program Files\sequence-storm\SequenceStorm.exe" add_launcher "c:\Program Files\sequence-storm\SequenceStorm.exe"
;; ;;
"Shades of Doom 1.2")
install_wine_bottle vb6run dx8vb speechsdk
download "http://gmagames.com/sod1208.exe"
wine "${cache}/sod1208.exe" /sp- /verysilent
add_launcher "c:\Program Files\Shades of Doom 1.2\sod.exe"
;;
"Shades of Doom") "Shades of Doom")
export winVer="win7" export winVer="win7"
install_wine_bottle vb6run dx8vb speechsdk install_wine_bottle vb6run dx8vb speechsdk

View File

@ -0,0 +1,49 @@
#!/usr/bin/env bash
#
# âe contents of this file are subject to the Common Public Attribution
# License Version 1.0 (the âcenseâ you may not use this file except in
# compliance with the License. You may obtain a copy of the License at
# https://opensource.org/licenses/CPAL-1.0. The License is based on the Mozilla Public License Version
# 1.1 but Sections 14 and 15 have been added to cover use of software over a
# computer network and provide for limited attribution for the Original
# Developer. In addition, Exhibit A has been modified to be consistent with
# Exhibit B.
#
# Software distributed under the License is distributed on an â ISâasis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is audiogame manager.
#
# The Original Developer is not the Initial Developer and is . If
# left blank, the Original Developer is the Initial Developer.
#
# The Initial Developer of the Original Code is Billy "Storm Dragon" Wolfe. All portions of
# the code written by Billy Wolfe are Copyright (c) 2020. All Rights
# Reserved.
#
# Contributor Michael Taboada.
#
# Contributor Jeremiah Ticket.
#
# Attribution Copyright Notice: Audiogame manager copyright 2020 Storm Dragon. All rights reserved.
#
# Attribution Phrase (not exceeding 10 words): A Stormux project
#
# Attribution URL: https://stormgames.wolfe.casa
#
# Graphic Image as provided in the Covered Code, if any.
#
# Display of Attribution Information is required in Larger
# Works which are defined in the CPAL as a work which combines Covered Code
# or portions thereof with code not governed by the terms of the CPAL.
cache="${XDG_CONFIG_HOME:-$HOME/.config}/storm-games/audiogame-manager/cache"
url="https://ims-productions.com/downloads/rotu.zip"
(rm -v "${cache}/rotu.zip"
wget -O "${cache}/rotu.zip" "$url" || exit 1
unzip -od "$HOME/.local/wine/revenge-of-the-undead/drive_c/Program Files/revenge of the undead" "${cache}/rotu.zip"
find "$HOME/.local/wine/revenge-of-the-undead" -type f -name 'nvdaControllerClient32.dll' -exec rm -fv {} \; ) | dialog --progressbox "updating Revenge of the undead, please wait..." -1 -1
exit 0