audiogame-manager/audiogame-manager.sh

2102 lines
87 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
2020-12-16 17:16:16 -05:00
license() {
cat << EOF
■The contents of this file are subject to the Common Public Attribution
License Version 1.0 (the ■License■); 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 ■AS IS■ basis,
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.
EOF
}
2020-08-27 15:42:24 -04:00
2020-09-29 22:07:26 -04:00
# Dialog accessibility
export DIALOGOPTS='--no-lines --visit-items'
2021-06-30 22:38:21 -04:00
# Check for latest news
check_news() {
trap return INT
2021-06-30 22:38:21 -04:00
# url for news file
local newsFile="https://stormgames.wolfe.casa/media/agm.ogg"
local newsPath="${configFile%/*.conf}/.news"
local newsTag="$(curl --connect-timeout 5 -sI "$newsFile" | grep -i '^etag: "' | cut -d '"' -f2)"
2021-06-30 22:38:21 -04:00
local newsOldTag="$(cat "$newsPath" 2> /dev/null)"
if [[ "$newsTag" != "$newsOldTag" ]]; then
dialog --yes-label 'Play' \
--no-label 'Later' \
--backtitle 'Audiogame Manager News' \
--yesno 'Audiogame manager news is available. Please use left and right arrows to navigate and enter to confirm.' -1 -1 || return
sox -qV0 "$newsFile" -d &> /dev/null
echo -n "$newsTag" > "$newsPath"
fi
}
2020-09-20 17:42:42 -04:00
# Automatic update function
update() {
local filePath="$(command -v ${0})"
if file "${filePath}" | grep -q 'Bourne-Again shell script' ; then
2020-09-20 17:42:42 -04:00
return
fi
# make sure the site can be reached
2020-12-06 12:46:30 -05:00
ping -c1 stormgames.wolfe.casa &> /dev/null || return
2020-12-17 01:06:57 -05:00
if [[ "$(uname)" == "Darwin" ]]; then
2020-12-17 09:11:49 -05:00
local downloadFile="audiogame-manager.mac"
2020-12-17 01:06:57 -05:00
else
local downloadFile="audiogame-manager"
fi
if [[ "$(wget --quiet -O - https://stormgames.wolfe.casa/downloads/${downloadFile} | sha256sum | cut -d ' ' -f1)" == "$(sha256sum "${filePath}" | cut -d ' ' -f1)" ]]; then
2020-09-20 17:42:42 -04:00
return
fi
echo "There is a new version of ${0##*/} available."
echo "Do you want to update now?"
read -r continue
if [[ "${continue,,}" =~ ^y|ye|yes$ ]]; then
if [[ -w "$0" ]]; then
2020-12-17 01:06:57 -05:00
wget --quiet -O "${filePath}" "https://stormgames.wolfe.casa/downloads/${downloadFile}"
chmod +x "$0"
2020-09-20 17:42:42 -04:00
else
2020-12-17 01:06:57 -05:00
sudo wget --quiet -O "${filePath}" "https://stormgames.wolfe.casa/downloads/${downloadFile}"
sudo chmod +x "$0"
2020-09-20 17:42:42 -04:00
fi
echo "${0##*/} has been updated. Please launch the program again to use the latest version."
exit 0
fi
}
2020-08-27 15:42:24 -04:00
2020-12-11 21:46:50 -05:00
# Function to open urls across OS.
open_url() {
if [[ "$(uname)" == "Darwin" ]]; then
open "${*}"
else
xdg-open "${*}"
fi
}
2020-11-16 16:57:16 -05:00
# Create the clipboard reading function for Sequence Storm
write_sequence_storm_reader() {
if -e ~/.SequenceStormReader ]]; then
return
fi
# Here-document start
cat << "EOF" > ~/.SequenceStormReader
#!/usr/bin/env bash
# Wait for the game to be launched
while ! pgrep -u "$USER" ^SequenceStorm &> /dev/null ; do
sleep 0.05
done
2020-11-16 16:57:16 -05:00
export DISPLAY=:0
unset cliptext
socketFile="$(find /tmp -maxdepth 1 -name "orca-*.sock")"
while pgrep -u "$USER" ^SequenceStorm &> /dev/null ; do
if [[ "$(uname)" == "Darwin" ]]; then
tmp="$(pbpaste 2> /dev/null)"
else
tmp="$(xclip -selection clipboard -o 2> /dev/null)"
fi
tmp="${tmp//%/ percent }"
2020-11-16 16:57:16 -05:00
if [ "$tmp" != "$cliptext" ] ; then
cliptext="$tmp"
if [[ "${cliptext,,}" =~ key|load|private|says|terminal ]]; then
if [[ "$(uname)" == "Darwin" ]]; then
say -v alex -r 300 "$cliptext"
else
if [[ -w "${socketFile}" ]]; then
echo "<#APPEND#>$cliptext" | socat - UNIX-CLIENT:"${socketFile}"
else
spd-say -w -r 50 -- "$cliptext"
fi
fi
else
if [[ "$(uname)" == "Darwin" ]]; then
say -v alex -r 300 "$cliptext"
else
if [[ -w "${socketFile}" ]]; then
echo "$cliptext" | socat - UNIX-CLIENT:"${socketFile}"
else
spd-say -r 50 -- "$cliptext"
fi
fi
fi
2020-11-16 16:57:16 -05:00
fi
sleep 0.05
done
2020-11-16 16:57:16 -05:00
exit 0
EOF
# Here-document end
chmod 755 ~/.SequenceStormReader
}
2020-08-27 15:42:24 -04:00
# Wine configuration section
checklist() {
declare -a errorList
declare -a packageList
if [[ $# -eq 0 ]]; then
echo "Checking your system..."
echo
fi
if command -v wine &> /dev/null ; then
[[ $# -eq 0 ]] && echo "Wine is installed."
else
errorList+=("Critical: Wine is not installed. You will not be able to play any games.")
fi
packageList+=("wine")
if command -v winetricks &> /dev/null ; then
[[ $# -eq 0 ]] && echo "Winetricks is installed."
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.")
fi
packageList+=("winetricks")
if command -v curl &> /dev/null ; then
[[ $# -eq 0 ]] && echo "Curl is installed."
else
errorList+=("Critical: Curl is not installed. Critical functionality will not work.")
fi
packageList+=("curl")
if command -v wget &> /dev/null ; then
[[ $# -eq 0 ]] && echo "Wget is installed."
else
errorList+=("Critical: Wget is not installed. You will not be able to install any games.")
fi
packageList+=("wget")
2020-10-27 10:24:52 -04:00
if command -v dialog &> /dev/null ; then
[[ $# -eq 0 ]] && echo "Dialog is installed."
2020-10-27 10:24:52 -04:00
else
errorList+=("Critical: Dialog is not installed. You will not be able to install, launch, or remove any games.")
fi
packageList+=("dialog")
for i in 7z cabextract unzip xz ; do
2020-09-04 18:45:45 -04:00
if command -v $i &> /dev/null ; then
[[ $# -eq 0 ]] && echo "${i^} is installed."
2020-09-04 18:45:45 -04:00
else
errorList+=("Critical: ${i^} is not installed. You will not be able to install some games or their components.")
2020-09-04 18:45:45 -04:00
fi
packageList+=("$i")
2020-09-04 18:45:45 -04:00
done
if command -v gawk &> /dev/null ; then
[[ $# -eq 0 ]] && echo "Gawk is installed."
else
errorList+=("Warning: gawk is not installed. Game removal with -r will not work.")
fi
packageList+=("gawk")
if command -v ocrdesktop &> /dev/null ; then
[[ $# -eq 0 ]] && echo "Ocrdesktop is installed."
else
errorList+=("Warning: ocrdesktop is not installed. It can help if the installer gets stuck to figure out what is happening.")
fi
packageList+=("ocrdesktop")
2021-02-15 12:44:16 -05:00
if command -v qjoypad &> /dev/null ; then
[[ $# -eq 0 ]] && echo "Qjoypad is installed."
2021-02-15 12:44:16 -05:00
else
errorList+=("Warning: qjoypad is not installed. Qjoypad allows you to play keyboard only games with a gamepad.")
fi
packageList+=("qjoypad")
if command -v sox &> /dev/null ; then
[[ $# -eq 0 ]] && echo "Sox is installed."
else
errorList+=("Warning: Sox is not installed. Audio will not work.")
fi
packageList+=("sox")
if command -v unix2dos &> /dev/null ; then
[[ $# -eq 0 ]] && echo "Dos2unix is installed."
else
errorList+=("Warning: unix2dos is not installed. Some games need a configuration file in dos format before they will run.")
fi
packageList+=("unix2dos")
if command -v w3m &> /dev/null ; then
[[ $# -eq 0 ]] && echo "W3m is installed."
else
errorList+=("Warning: w3m is not installed. W3m is used to view game documentation.")
fi
packageList+=("w3m")
2020-11-16 16:57:16 -05:00
if command -v xclip &> /dev/null ; then
[[ $# -eq 0 ]] && echo "Xclip is installed."
2020-11-16 16:57:16 -05:00
else
2020-11-20 12:37:54 -05:00
errorList+=("Warning: Xclip is not installed. Some games may not speak or register properly.")
2020-11-16 16:57:16 -05:00
fi
packageList+=("xclip")
2020-10-08 10:42:47 -04:00
if command -v xdotool &> /dev/null ; then
[[ $# -eq 0 ]] && echo "Xdotool is installed."
2020-10-08 10:42:47 -04:00
else
2021-05-03 22:16:24 -04:00
errorList+=("Warning: Xdotool is not installed. Some installers may not work or may need manual intervention.")
2020-10-08 10:42:47 -04:00
fi
packageList+=("xdotool")
# Show the results
if [[ $# -ne 0 ]]; then
for i in "${packageList[@]}" ; do
echo "$i"
done | sort
exit 0
fi
if [[ ${#errorList[@]} -eq 0 ]]; then
echo "No problems found, you are good to go."
exit 0
fi
echo "Errors detected, here is a list along with the severity."
echo "Note that errors marked critical mean that you will not be able to install and play games until they are resolved."
for i in "${errorList[@]}" ; do
echo "$i"
done
exit 0
}
2020-12-16 23:28:38 -05:00
clear_cache() {
local answer
if [[ ! -d "${cache}" ]]; then
echo "No cache found at ${cache}."
return
fi
while ! [[ "${answer,,}" =~ ^yes$|^no$ ]]; do
echo "This will delete all contents of ${cache}. Are you sure you want to continue?"
echo "Please type yes or no."
echo
read -r answer
done
if [[ "$answer" == "no" ]]; then
return
fi
# All safety checks done. Delete the cache.
rm -rfv "${cache}"
echo "Cache deleted."
}
download() {
local source=($@)
for i in "${source[@]}" ; do
local dest="${i##*/}"
dest="${dest//%20/ }"
2021-05-07 02:40:28 -04:00
# 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.
test -e "${cache}/${dest}" && continue
2020-12-31 12:54:01 -05:00
if ! wget -4 -O "${cache}/${dest}" "${i}" ; then
echo "Could not download \"$i\"..."
exit 1
fi
done
}
get_bottle() {
# Handles games that use the same wine bottle
case "${game}" in
"bg-"*) export WINEPREFIX="${HOME}/.local/wine/bg";;
# Oriol Gomez games group
"beatstar-pro"*) ;&
"bombercats"*) ;&
"copter-mission"*) ;&
"danger-on-the-wheel"*) ;&
"death-on-the-road"*) ;&
"fuck-that-bird"*) ;&
"hammer-of-glory"*) ;&
"insect-therapy"*) ;&
"rhythm-rage"*) ;&
"run-for-your-life"*) ;&
"thief"*) ;&
"villains-from-beyond"*) export WINEPREFIX="${HOME}/.local/wine/oriol-gomez";;
*) export WINEPREFIX="${HOME}/.local/wine/${game%|*}";;
esac
}
get_installer() {
trap exit 0 INT
# If the file is in cache nothing else needs to be done.
if [[ -f "${cache}/$1" ]]; then
return
fi
# Create message for dialog.
local message="Make sure $1 is available in either your Downloads or Desktop directory and press enter to continue."
if [[ -n "$2" ]]; then
message+="\n\nThe last good known URL for $game is:"
message+="\n$2"
fi
if echo "$2" | xclip -selection clipboard 2> /dev/null ; then
message+="\n\nThe URL has been copied to the clipboard."
fi
dialog --ok-label "Continue" \
--backtitle "Audiogame Manager" \
--msgbox "$message" -1 -1
# Search the Desktop and Downloads directories for the installation file
for i in ~/Downloads ~/Desktop ; do
find $i -type f -name "$1" -exec cp -v {} "${cache}/" \;
done
# If the file is still not available abort.
if [[ ! -f "${cache}/$1" ]]; then
echo "couldn't find $1. Please download the file and try again."
exit 1
fi
}
2020-09-05 00:26:29 -04:00
help() {
2020-12-16 17:16:16 -05:00
echo "${0##*/}"
echo "Released under the terms of the Common Public Attribution License Version 1.0"
echo -e "This is a Stormux project: https://stormux.org\n"
2020-09-05 00:26:29 -04:00
echo -e "Usage:\n"
echo "With no arguments, open the game launcher."
for i in "${!command[@]}" ; do
2020-12-12 12:10:13 -05:00
echo "-${i/:/ <parameter>}: ${command[${i}]}"
2020-09-05 00:26:29 -04:00
done | sort
exit 0
}
documentation() {
if [[ "$2" == "Become a Patron" ]]; then
return
fi
if [[ "$2" == "Donate" ]]; then
return
fi
if ! command -v w3m &> /dev/null ; then
echo "This feature of audiogame-manager requires w3m. Please install it before continuing."
fi
get_bottle "$1"
echo "Loading documentation, please wait..."
# Try to find documentation based on common naming conventions.
local gamePath="$(winepath -u "$2" 2> /dev/null)"
gamePath="${gamePath%/*}"
2021-05-01 00:43:08 -04:00
local gameDoc="$(find "$gamePath" -type f -iname 'user_manual.html' -or -iname 'user_manual.htm' | head -1)"
2021-05-17 00:35:37 -04:00
# Game name specific docs, add the name to the for loop.
if [[ -z "$gameDoc" ]]; then
for i in "troopanum.txt" ; do
gameDoc="$(find "$gamePath" -type f -iname "$i" -or -iname 'manual.htm' | head -1)"
done
fi
2021-06-14 07:51:30 -04:00
if [[ -z "$gameDoc" ]]; then
2021-06-14 17:56:47 -04:00
gameDoc="$(find "$gamePath" -type f -iname '[A-Z]*Help.htm' -or -iname '[A-Z]*Help.html' | head -1)"
2021-06-14 07:51:30 -04:00
fi
if [[ -z "$gameDoc" ]]; then
2021-05-01 00:43:08 -04:00
gameDoc="$(find "$gamePath" -type f -iname 'manual.html' -or -iname 'manual.htm' | head -1)"
fi
if [[ -z "$gameDoc" ]]; then
2021-05-01 00:43:08 -04:00
gameDoc="$(find "$gamePath" -type f -iname 'en.html' -or -iname 'en.htm' | head -1)"
fi
if [[ -z "$gameDoc" ]]; then
2021-05-01 00:43:08 -04:00
gameDoc="$(find "$gamePath" -type f -iname 'readme.html' -or -iname 'readme.htm' | head -1)"
fi
if [[ -z "$gameDoc" ]]; then
gameDoc="$(find "$gamePath" -type f -iname 'manual.txt' | head -1)"
fi
if [[ -z "$gameDoc" ]]; then
gameDoc="$(find "$gamePath" -type f -iname 'readme.txt' | head -1)"
fi
if [[ -z "$gameDoc" ]]; then
gameDoc="$(find "$gamePath" -type f -iname '*.url' -exec grep -i 'url=' {} \; | grep -iv 'score' | head -1)"
gameDoc="${gameDoc#*=}"
gameDoc="${gameDoc//[[:cntrl:]]/}"
fi
# Display documentation if available.
if [[ -n "$gameDoc" ]]; then
w3m "$gameDoc"
else
echo "No documentation found."
fi
exit 0
}
2020-08-27 15:42:24 -04:00
install_wine_bottle() {
# 32 bit installations work best and are the default here, if you need to override it, do it in the game specific installation steps.
export WINEARCH="${WINEARCH:-win32}"
if [[ -z "$bottle" ]]; then
local bottle="${game,,}"
bottle="${bottle//[[:space:]]/-}"
if [[ -d "$HOME/.local/wine/${bottle}" ]]; then
echo "$HOME/.local/wine/${bottle} exists. Please remove it before running this installer."
exit 1
fi
fi
2020-08-27 15:42:24 -04:00
mkdir -p "$HOME/.local/wine/${bottle}"
export WINEPREFIX="$HOME/.local/wine/${bottle}"
# Arguments to the function are dependancies to be installed.
(DISPLAY="" wineboot -u
# Get location of mono and gecko.
monoPath="$(find /usr/share/wine/mono -name "wine-mono*x86.msi")"
geckoPath="$(find /usr/share/wine/gecko -name "wine-gecko*x86.msi")"
if [[ -z "$monoPath" ]]; then
download 'http://dl.winehq.org/wine/wine-mono/6.0.0/wine-mono-6.0.0-x86.msi'
monoPath="${cache}/wine-mono-6.0.0-x86.msi"
fi
if [[ -z "$geckoPath" ]]; then
download 'http://dl.winehq.org/wine/wine-gecko/2.40/wine_gecko-2.40-x86.msi'
geckoPath="${cache}/wine_gecko-2.40-x86.msi"
fi
wine msiexec /i z:"$monoPath" /quiet
wine msiexec /i z:"$geckoPath" /quiet
2020-08-27 15:42:24 -04:00
winetricks -q $@ ${winVer:-winxp} ${winetricksSettings}) | dialog --progressbox "Installing wine bottle, please wait..." -1 -1
}
# Install games
game_installer() {
mapfile -t installedGames < <(sed '/^$/d' "${configFile}" 2> /dev/null | cut -d '|' -f3)
2020-08-27 15:42:24 -04:00
# Create the menu of installed games
declare -a menuList
for i in "${gameList[@]}" ; do
local menuItem="$i"
for j in "${installedGames[@]}" ; do
if [[ "$j" == "$menuItem" ]]; then
unset menuItem
fi
done
if [[ -n "$menuItem" ]]; then
menuList+=("$menuItem" "$menuItem")
fi
done
if [[ ${#menuList[@]} -eq 0 ]]; then
echo "All games are already installed."
exit 0
fi
2021-02-19 12:58:11 -05:00
menuList+=("Donate" "Donate")
menuList+=("Become a Patron" "Become a Patron")
2020-08-27 15:42:24 -04:00
game="$(dialog --backtitle "Audio Game Installer" \
--clear \
--no-tags \
--menu "Please select a game to install" 0 0 0 "${menuList[@]}" --stdout)"
}
2020-09-04 23:32:26 -04:00
# remove games
game_removal() {
mapfile -t lines < <(sed '/^$/d' "${configFile}" 2> /dev/null)
if [[ ${#lines} -eq 0 ]]; then
echo "No games found."
exit 0
fi
# Create the menu of installed games
declare -a menuList
for i in "${lines[@]}" ; do
menuList+=("${i%|*}" "${i##*|}")
done
2021-02-19 12:58:11 -05:00
menuList+=("Donate" "Donate")
2020-09-04 23:32:26 -04:00
menuList+=("Become a Patron" "Become a Patron")
local game="$(dialog --backtitle "Audio Game Removal" \
--clear \
--no-tags \
--menu "Please select a game to delete" 0 0 0 "${menuList[@]}" --stdout)"
if [[ ${#game} -gt 0 ]]; then
2021-02-19 12:58:11 -05:00
if [[ "$game" == "Donate" ]]; then
open_url "https://ko-fi.com/stormux"
2020-09-04 23:32:26 -04:00
exit 0
fi
if [[ "$game" == "Become a Patron" ]]; then
2020-12-11 21:46:50 -05:00
open_url "https://patreon.com/stormux"
2020-09-04 23:32:26 -04:00
exit 0
fi
local winePath="${game#*|}"
export winePath="${winePath%\\*.exe}"
2020-09-04 23:32:26 -04:00
local wineExec="${game#*|}"
wineExec="${wineExec%|*}"
wineExec="${wineExec##*\\}"
# Confirm removal
get_bottle "${game%|*}"
# Make sure the game can be handled by remove
if [[ "${HOME}/.local/wine/${game%|*}" == "${WINEPREFIX}" ]]; then
read -rp "To remove the wine bottle \"${WINEPREFIX##*/}\" and all of its contents press enter. To cancel press control+c. " continue
# kill any previous existing wineservers for this prefix in case they didn't shut down properly.
wineserver -k
# remove the game
rm -rf "${WINEPREFIX}"
else
read -rp "This bottle \"${WINEPREFIX##*/}\" contains multiple entries, so only the game will be removed. To continue press enter. To cancel press control+c. " continue
rm -rf "$(winepath "${winePath}")"
fi
2020-09-04 23:32:26 -04:00
# remove the launcher
gawk -i inplace -vLine="${game//\\/\\\\}" '!index($0,Line)' "$configFile"
echo "The selected item has been deleted."
2020-09-04 23:32:26 -04:00
fi
exit 0
}
# kill games that are stuck
kill_game() {
mapfile -t lines < <(sed '/^$/d' "${configFile}" 2> /dev/null)
if [[ ${#lines} -eq 0 ]]; then
echo "No games found."
exit 0
fi
# Create the menu of installed games
declare -a menuList
for i in "${lines[@]}" ; do
menuList+=("${i%|*}" "${i##*|}")
done
2021-02-19 12:58:11 -05:00
menuList+=("Donate" "Donate")
menuList+=("Become a Patron" "Become a Patron")
local game="$(dialog --backtitle "Audio Game Killer" \
--clear \
--no-tags \
--menu "Please select a game to force stop" 0 0 0 "${menuList[@]}" --stdout)"
if [[ ${#game} -gt 0 ]]; then
2021-02-19 12:58:11 -05:00
if [[ "$game" == "Donate" ]]; then
open_url "https://ko-fi.com/stormux"
exit 0
fi
if [[ "$game" == "Become a Patron" ]]; then
open_url "https://patreon.com/stormux"
exit 0
fi
local winePath="${game#*|}"
winePath="${winePath%\\*.exe}"
local wineExec="${game#*|}"
wineExec="${wineExec%|*}"
wineExec="${wineExec##*\\}"
# kill the wine server.
get_bottle "${game%|*}"
wineserver -k
echo "The selected game has been stopped."
fi
exit 0
}
2020-08-27 15:42:24 -04:00
# launch games that are installed
game_launcher() {
mapfile -t lines < <(sed '/^$/d' "${configFile}" 2> /dev/null)
2020-08-27 15:42:24 -04:00
if [[ ${#lines} -eq 0 ]]; then
echo "Install some games first."
exit 0
fi
if [[ $# -eq 0 ]]; then
# Create the menu of installed games
declare -a menuList
for i in "${lines[@]}" ; do
menuList+=("${i%|*}" "${i##*|}")
done
2021-02-19 12:58:11 -05:00
menuList+=("Donate" "Donate")
menuList+=("Become a Patron" "Become a Patron")
game="$(dialog --backtitle "Audio Game Launcher" \
--clear \
--extra-button \
--extra-label "Documentation" \
--no-tags \
--menu "Please select a game to play" 0 0 0 "${menuList[@]}" --stdout)"
local menuCode=$?
if [[ $menuCode -eq 1 ]]; then
exit 0
elif [[ $menuCode -eq 3 ]]; then
documentation "$game" "$(echo "$game" | cut -d '|' -f2)"
fi
else
local game="$(grep "^${1}|" "${configFile}" 2> /dev/null)"
game="${game%|*}"
if [[ -z "$game" ]]; then
echo "Game $1 not found."
exit 1
fi
fi
2020-08-27 15:42:24 -04:00
if [[ ${#game} -gt 0 ]]; then
2021-02-19 12:58:11 -05:00
if [[ "$game" == "Donate" ]]; then
open_url "https://ko-fi.com/stormux"
exit 0
fi
if [[ "$game" == "Become a Patron" ]]; then
2020-12-11 21:46:50 -05:00
open_url "https://patreon.com/stormux"
exit 0
fi
get_bottle "$game"
2020-08-27 15:42:24 -04:00
local winePath="${game#*|}"
winePath="${winePath%\\*.exe}"
local wineExec="${game#*|}"
wineExec="${wineExec%|*}"
wineExec="${wineExec##*\\}"
# kill any previous existing wineservers for this prefix in case they didn't shut down properly.
wineserver -k
# launch the game
# launch the game
if command -v qjoypad &> /dev/null ; then
mkdir -p ~/.qjoypad3
touch "${HOME}/.qjoypad3/${game%|*}.lyt"
if pgrep qjoypad &> /dev/null ; then
qjoypad -T "${game%|*}" 2> /dev/null
else
qjoypad -T "${game%|*}" 2> /dev/null &
fi
fi
2021-04-26 23:21:26 -04:00
# for games that require custom scripts before launch or custom launch parameters
if [[ "$game" =~ sequence-storm ]]; then
[[ -x ~/.SequenceStormReader ]] && ~/.SequenceStormReader &
fi
2021-04-29 19:00:17 -04:00
if [[ "$game" =~ audiodisc ]]; then
wine "$winePath\\$wineExec"
exit 0
fi
2021-04-26 23:21:26 -04:00
if [[ "$game" =~ audioquake ]]; then
wine "$winePath\\$wineExec"
exit 0
fi
2021-06-30 01:34:31 -04:00
if [[ "$game" =~ screaming-strike-2 ]]; then
pushd "$(winepath "$winePath")"
wine "$wineExec"
popd
exit 0
fi
if [[ -d "${WINEPREFIX}/drive_c/windows/syswow64" ]]; then
wine64 start /realtime /d "${winePath}" "$wineExec"
else
wine start /d "${winePath}" "$wineExec" /realtime
fi
2020-08-27 15:42:24 -04:00
fi
exit 0
}
# main script
#functions
add_launcher() {
local launchSettings="${game,,}"
launchSettings="${launchSettings//[[:space:]]/-}|${1}|${game}"
if ! grep -F -q -x "${launchSettings}" "${configFile}" 2> /dev/null ; then
echo "${launchSettings}" >> "${configFile}"
sort -o "${configFile}" "${configFile}"
# Remove .lnk files because they don't work.
find ~/Desktop -type f -iname '*.lnk' -exec bash -c '
for f ; do
mimeType="$(file -b "$f")"
mimeType="${mimeType%%,*}"
if [[ "$mimeType" == "MS Windows shortcut" ]]; then
rm -v "$f"
fi
done' _ {} +
if [[ "${noCache}" == "true" ]]; then
rm -f "${cache}/${1##*\\}"
fi
2020-08-27 15:42:24 -04:00
fi
}
2020-09-20 17:42:42 -04:00
# Check for updates
update
# If display isn't set assume we are launching from console and an X environment is running using display :0
if [[ -z "$DISPLAY" ]]; then
export DISPLAY=":0"
fi
# Settings file
cache="${XDG_CONFIG_HOME:-$HOME/.config}/storm-games/audiogame-manager/cache"
configFile="${XDG_CONFIG_HOME:-$HOME/.config}/storm-games/audiogame-manager/games.conf"
mkdir -p "${cache}"
mkdir -p "${configFile%/*}"
2020-08-27 15:42:24 -04:00
# Turn off debug messages
export WINEDEBUG="-all"
# During installation, you can set winVer to the versions available.
# To set winetricks arguments, such as virtual desktop, set the winetricksSettings variable.
# Example: winetricksSettings="vd=1024x768"
# Files are cached unless -N no cache is set.
unset noCache
# Manual installation is not default, make sure it's unset
unset manualInstall
2020-08-27 15:42:24 -04:00
# The list of games available for installation.
# Use menu friendly names.
gameList=(
2020-11-07 13:02:20 -05:00
"A Hero's Call"
"Adrian's Doom"
"Adventurers At C"
"AudioDisc"
2021-04-26 23:21:26 -04:00
"AudioQuake"
2021-01-18 15:13:46 -05:00
"Battle of the Hunter"
"Battle Zone"
2021-04-20 02:01:05 -04:00
"Beatstar Pro"
"BG 2048"
"BG 15 Puzzle"
"BG Aces Up Solitaire"
2021-07-02 11:13:36 -04:00
"BG Alchemy"
2021-07-01 22:08:02 -04:00
"BG Battleship"
"BG Boggle"
2021-07-02 11:13:36 -04:00
"BG Boxes"
2021-07-01 22:08:02 -04:00
"BG Brainiac"
"BG Chess Challenge"
2021-07-01 22:08:02 -04:00
"BG Code Breaker"
2021-06-17 16:39:06 -04:00
"BG Cribbage"
"BG Cribbage Solitaire"
2021-07-01 22:08:02 -04:00
"BG Crossword Puzzle"
2021-07-02 11:13:36 -04:00
"BG Draw Dominoes"
"BG Fives Dominoes"
"BG Elevens Solitaire"
2021-06-17 21:20:06 -04:00
"BG Free Cell Solitaire"
2021-07-02 11:13:36 -04:00
"BG Golf Solitaire"
"BG Hangman"
2021-06-14 07:51:30 -04:00
"BG Hearts"
2021-06-17 21:27:27 -04:00
"BG Klondike Solitaire"
"BG LAP"
2021-07-01 22:08:02 -04:00
"BG Master Mind"
"BG Mine Sweeper"
"BG Nomination Whist"
2021-06-17 21:57:50 -04:00
"BG Penguin Solitaire"
"BG Poker Solitaire"
"BG Pyramid Solitaire"
2021-06-17 21:57:50 -04:00
"BG Scorpion Solitaire"
"BG Simon"
"BG Spider Solitaire"
2021-07-01 22:08:02 -04:00
"BG Scrabble"
"BG Sudoku"
2021-07-02 11:13:36 -04:00
"BG Tablic Solitaire"
"BG Tri-Peaks Solitaire"
2021-07-02 11:13:36 -04:00
"BG Twenty 20 Cricket"
2021-06-17 16:39:06 -04:00
"BG Uno"
"BG Word Builder"
2021-07-02 11:13:36 -04:00
"BG Word Candy"
"BG Word Jumble"
2021-07-02 11:13:36 -04:00
"BG Word Maze"
"BG Word Solitaire"
"BG Word Target"
"BG Word Yahtzee"
"BG Yahtzee"
2020-08-27 21:27:10 -04:00
"Bloodshed"
2021-04-25 02:32:07 -04:00
"Bombercats"
#"Breed Memorial"
"Castaways"
"Castaways 2"
#"Chopper Challenge"
2020-11-16 14:40:34 -05:00
"Christmas WhoopAss"
#"Constant Battle"
2021-04-26 01:33:26 -04:00
"Copter Mission"
"Crazy Party"
2020-12-13 12:21:33 -05:00
"Crazy Tennis"
2021-04-26 01:25:07 -04:00
"Danger on the Wheel"
2020-11-19 18:03:29 -05:00
"Death on the Road"
2021-01-15 18:05:06 -05:00
"Deathmatch"
2020-12-30 23:22:28 -05:00
"Duck Hunt"
"Easter Quest"
2020-12-06 12:33:42 -05:00
#"Entombed"
2021-01-10 12:46:26 -05:00
#"Eurofly"
2021-02-15 16:00:37 -05:00
"Extant"
2020-11-26 21:04:04 -05:00
"Fantasy Story II"
#"Fartman"
2020-10-08 10:42:47 -04:00
"Finger Panic"
2020-10-05 03:51:17 -04:00
"Fuck That Bird"
"GMA Tank Commander"
"Golden Crayon"
2021-04-26 01:06:50 -04:00
"Hammer of Glory"
2020-11-20 12:39:12 -05:00
"Hunter"
2021-04-25 02:32:07 -04:00
"Insect Therapy"
"Judgement Day"
2020-08-27 15:42:24 -04:00
"Kitchensinc Games"
2020-11-16 14:40:34 -05:00
"Kringle Crash"
2021-01-10 12:46:26 -05:00
#"Light Battles"
2020-08-30 22:26:53 -04:00
"Light Cars"
2020-09-04 22:25:00 -04:00
"Lockpick"
"Lone Wolf"
2021-06-06 12:03:53 -04:00
"Lunimals"
2020-10-09 13:33:37 -04:00
"Manamon"
2020-10-09 20:53:45 -04:00
"Manamon 2"
2021-01-10 12:46:26 -05:00
#"MudSplat French"
"MudSplat English"
2021-01-10 12:46:26 -05:00
#"MudSplat Swedish"
2020-11-05 10:38:49 -05:00
"Oh Shit!"
2020-12-16 19:18:01 -05:00
"Pacman Talks"
"Palace Punch Up"
2020-10-18 09:20:22 -04:00
"Paladin of the Sky"
2021-01-15 18:38:45 -05:00
"Park Boss"
"Perilous Hearts"
2020-10-06 14:59:04 -04:00
"Pontes Kickups!"
2020-11-05 11:31:54 -05:00
"Q9"
2021-05-07 02:40:28 -04:00
"Revenge of the Undead"
2020-11-20 12:37:54 -05:00
"Rhythm Rage"
2020-12-16 14:45:14 -05:00
#"River raiders"
2020-11-05 19:47:01 -05:00
"RS Games"
2020-10-06 14:59:04 -04:00
"Run For Your Life"
2021-01-10 12:46:26 -05:00
#"Sammy Center"
2021-06-30 01:34:31 -04:00
"Screaming Strike 2"
"Scrolling Battles"
2020-11-16 14:40:34 -05:00
"Sequence Storm"
#"Shades of Doom 1.2"
"Shades of Doom"
2021-01-10 12:46:26 -05:00
#"Silver Dollar"
"Slender Lost Vision"
2021-02-17 10:50:11 -05:00
"Sonic Zoom"
2020-08-27 15:42:24 -04:00
"Super Egg Hunt"
2020-08-31 15:51:29 -04:00
"Super Liam"
2020-12-30 23:22:28 -05:00
#"Super Mario Bros"
"Survive the Wild"
2020-09-05 15:02:33 -04:00
"Swamp"
"Technoshock"
2020-08-27 15:42:24 -04:00
"The Blind Swordsman"
2020-12-17 09:35:54 -05:00
#"The Gate"
"The Great Toy Robbery"
2021-04-26 01:13:50 -04:00
"Thief"
#"Three D velocity"
2021-04-28 00:34:40 -04:00
"Top Speed 2"
2020-08-27 15:42:24 -04:00
"Top Speed 3"
"Triple Triad"
"Troopanum2"
2021-01-15 18:05:06 -05:00
"Tube Sim"
2020-11-05 11:31:54 -05:00
"Undead Assault"
2021-04-24 13:44:50 -04:00
"Villains From Beyond"
2021-01-04 08:36:24 -05:00
"VIP Mud"
2021-06-26 01:37:04 -04:00
"Windows Attack"
2021-01-10 12:46:26 -05:00
#"World of War"
2020-08-27 15:42:24 -04:00
)
# Make sure the minimum of curl, sox, wget, wine, and winetricks are installed
for i in curl sox wget wine winetricks ; do
if ! command -v $i &> /dev/null ; then
echo "Please install $i before continuing."
exit 1
fi
done
2021-06-30 22:38:21 -04:00
# Get latest news if available
check_news
2020-08-27 15:42:24 -04:00
# With no arguments, open the game launcher.
if [[ $# -eq 0 ]]; then
game_launcher
fi
# Array of command line arguments
2020-09-05 00:26:29 -04:00
declare -A command=(
[c]="Check your system for necessary components."
2020-12-16 23:28:38 -05:00
[C]="Clear the cache. All game installers will be deleted."
2020-12-16 17:16:16 -05:00
[d]="Debug mode, wine will be much more verbose when games are launched with this flag."
2020-09-05 00:26:29 -04:00
[h]="This help screen."
[i]="Install games."
[I:]="Noninteractive game installation."
[k]="Kill a running game that is stuck."
2020-12-16 17:16:16 -05:00
[L]="Display license information."
[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."
[P]="Print a list of packages required by audiogame-manager."
2020-09-05 00:26:29 -04:00
[r]="Remove a game. This will delete all game data."
2020-08-27 15:42:24 -04:00
)
2020-09-05 00:26:29 -04:00
# Convert the keys of the associative array to a format usable by getopts
args="${!command[*]}"
args="${args//[[:space:]]/}"
while getopts "${args}" i ; do
2020-08-27 15:42:24 -04:00
case "$i" in
c) checklist;;
2020-12-16 23:28:38 -05:00
C) clear_cache;;
2020-12-12 16:14:48 -05:00
d)
unset WINEDEBUG
game_launcher
;;
2020-09-05 00:26:29 -04:00
h) help;;
i) game_installer;;
I)
game="${OPTARG}"
break;;
k) kill_game;;
2020-12-16 17:16:16 -05:00
L) license;;
l) game_launcher "${OPTARG}";;
N) noCache="true";;
P) checklist quiet;;
2020-09-04 23:32:26 -04:00
r) game_removal;;
2020-08-27 15:42:24 -04:00
esac
done
# Install game based on the selection above.
case "${game}" in
2020-11-07 13:02:20 -05:00
"A Hero's Call")
export winVer="win7"
2020-11-20 01:05:04 -05:00
install_wine_bottle dotnet40 xna31 speechsdk corefonts
2020-11-07 13:02:20 -05:00
download "http://files.OutOfSightGames.com/files/a-heros-call.zip" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient32.dll"
unzip -d "$WINEPREFIX/drive_c/Program Files" "${cache}/a-heros-call.zip"
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvdaControllerClient32.dll" "{}" \;
add_launcher "c:\Program Files\a-heros-call\A Hero's Call.exe"
;;
"Adrian's Doom")
install_wine_bottle speechsdk
download "https://agarchive.net/games/mt/adrian's%20doom.exe"
wine "${cache}/adrian's doom.exe" /silent
add_launcher "c:\Program Files\Two Caring Citizens\Adrian's Doom!\adrian.exe"
;;
2020-10-25 12:55:26 -04:00
"Adventurers At C")
install_wine_bottle speechsdk
download "http://www.vgstorm.com/aac/aac.zip" "https://www.agarchive.net/games/vg/adventure%20at%20c%20stages.7z"
unzip -d "$WINEPREFIX/drive_c/Program Files/aac" "${cache}/aac.zip"
7z e -o"$WINEPREFIX/drive_c/Program Files/aac/stages" "${cache}/adventure at c stages.7z"
add_launcher "c:\Program Files\aac\aac.exe"
;;
"AudioDisc")
install_wine_bottle
download "https://agarchive.net/games/other/audiodisc.zip"
unzip -d "$WINEPREFIX/drive_c/Program Files" "${cache}/audiodisc.zip"
add_launcher "c:\Program Files\audiodisc\disco.exe"
;;
2021-04-26 23:21:26 -04:00
"AudioQuake")
export winVer="win7"
install_wine_bottle speechsdk
download "https://github.com/matatk/agrip/releases/download/2020.0-beta1/AudioQuake+LDL_2020.0-beta1_Windows.zip" "https://stormgames.wolfe.casa/downloads/quake.zip"
unzip -d "$WINEPREFIX/drive_c/Program Files" "${cache}/AudioQuake+LDL_2020.0-beta1_Windows.zip"
unzip -d "$WINEPREFIX/drive_c/Program Files/AudioQuake/id1" "${cache}/quake.zip"
add_launcher "c:\Program Files\AudioQuake\AudioQuake.exe"
echo
echo "After you launch the game, press tab then enter and it should begin speaking."
;;
2021-01-18 15:13:46 -05:00
"Battle of the Hunter")
export winVer="win7"
install_wine_bottle speechsdk
download "https://stormgames.wolfe.casa/downloads/bth.zip"
2021-01-18 15:13:46 -05:00
unzip -d "$WINEPREFIX/drive_c/Program Files/$game" "${cache}/bth.zip"
find "${WINEPREFIX}" -type f -name "nvdaControllerClient32.dll" -exec rm -fv "{}" \;
2021-07-02 11:13:36 -04:00
add_launcher "c:\Program Files\\${game}\bth.exe"
2021-01-18 15:13:46 -05:00
;;
"Battle Zone")
export winVer="win7"
install_wine_bottle speechsdk
download "https://www.agarchive.net/games/gameMadnessInteractive/battle%20zone%2013.5%20setup.exe"
wine "${cache}/battle zone 13.5 setup.exe" /silent
2021-04-27 02:35:36 -04:00
find "${WINEPREFIX}" -type f -name "nvdaControllerClient32.dll" -exec rm -fv "{}" \;
add_launcher "c:\Program Files\Battle Zone\ss.exe"
;;
2021-04-20 02:01:05 -04:00
"Beatstar Pro")
export bottle="oriol-gomez"
2021-04-20 02:01:05 -04:00
export winVer="win7"
2021-04-20 11:54:54 -04:00
install_wine_bottle speechsdk mf
2021-04-20 02:01:05 -04:00
download "https://oriolgomez.com/games/beat_windows.zip"
unzip -d "$WINEPREFIX/drive_c/Program Files/Beatstar Pro" "${cache}/beat_windows.zip"
2021-07-02 11:13:36 -04:00
add_launcher "c:\Program Files\Beatstar Pro\beatstar.exe"
2021-04-20 02:01:05 -04:00
;;
"BG 2048")
bgInstaller="BG204832Setup10a.exe"
export bottle="bg"
get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm"
install_wine_bottle speechsdk
wine "${cache}/${bgInstaller}" /silent
2021-07-02 11:13:36 -04:00
add_launcher "c:\Program Files\Games\BG2048B\BG2048.exe"
;;
"BG 15 Puzzle")
bgInstaller="FPB32Setup10a.exe"
export bottle="bg"
get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm"
install_wine_bottle speechsdk
wine "${cache}/${bgInstaller}" /silent
add_launcher "c:\Program Files\Games\FifteenB\FifteenB.exe"
;;
"BG Aces Up Solitaire")
bgInstaller="ASB32Setup10.exe"
export bottle="bg"
get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm"
install_wine_bottle speechsdk
wine "${cache}/${bgInstaller}" /silent
2021-07-02 11:13:36 -04:00
add_launcher "c:\Program Files\Games\AcesUpB\AcesUpB.exe"
;;
"BG Alchemy")
bgInstaller="BAC32Setup10.exe"
export bottle="bg"
get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm"
install_wine_bottle speechsdk
wine "${cache}/${bgInstaller}" /silent
add_launcher "c:\Program Files\Games\AlchemyB\AlchemyB.exe"
;;
2021-07-01 22:08:02 -04:00
"BG Battleship")
bgInstaller="BGB32Setup10.exe"
export bottle="bg"
get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm"
install_wine_bottle speechsdk
wine "${cache}/${bgInstaller}" /silent
add_launcher "c:\Program Files\Games\BattleshipB\BGBattleship.exe"
;;
"BG Boggle")
bgInstaller="BGB32Setup10a.exe"
export bottle="bg"
get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm"
install_wine_bottle speechsdk
wine "${cache}/${bgInstaller}" /silent
add_launcher "c:\Program Files\Games\BoggleB\BoggleB.exe"
;;
2021-07-02 11:13:36 -04:00
"BG Boxes")
bgInstaller="BXB32Setup10.exe"
export bottle="bg"
get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm"
install_wine_bottle speechsdk
wine "${cache}/${bgInstaller}" /silent
add_launcher "c:\Program Files\Games\BoxesB\BoxesB.exe"
;;
2021-07-01 22:08:02 -04:00
"BG Brainiac")
bgInstaller="BRN32Setup10a.exe"
export bottle="bg"
get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm"
install_wine_bottle speechsdk
wine "${cache}/${bgInstaller}" /silent
add_launcher "c:\Program Files\Games\BrainiacB\BrainiacB.exe"
;;
"BG Chess Challenge")
bgInstaller="BGC32Setup10d.exe"
export bottle="bg"
get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm"
install_wine_bottle speechsdk
wine "${cache}/${bgInstaller}" /silent
add_launcher "c:\Program Files\Games\ChessB\BGChess.exe"
;;
2021-07-01 22:08:02 -04:00
"BG Code Breaker")
bgInstaller="BCB32Setup10.exe"
export bottle="bg"
get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm"
install_wine_bottle speechsdk
wine "${cache}/${bgInstaller}" /silent
add_launcher "c:\Program Files\Games\CodeBreakerB\BGCodeBreaker.exe"
;;
2021-06-17 16:39:06 -04:00
"BG Cribbage")
bgInstaller="BGC32Setup12e.exe"
export bottle="bg"
get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm"
2021-06-17 16:39:06 -04:00
install_wine_bottle speechsdk
wine "${cache}/${bgInstaller}" /silent
add_launcher "c:\Program Files\Games\CribbageB\CribbageB.exe"
;;
"BG Cribbage Solitaire")
bgInstaller="BCS32Setup10.exe"
export bottle="bg"
get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm"
install_wine_bottle speechsdk
wine "${cache}/${bgInstaller}" /silent
add_launcher "c:\Program Files\Games\CribSolB\CribSolB.exe"
;;
2021-07-01 22:08:02 -04:00
"BG Crossword Puzzle")
bgInstaller="BGX32Setup10h.exe"
export bottle="bg"
get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm"
install_wine_bottle speechsdk
wine "${cache}/${bgInstaller}" /silent
add_launcher "c:\Program Files\Games\CrosswordB\CrosswordB.exe"
;;
2021-07-02 11:13:36 -04:00
"BG Draw Dominoes")
bgInstaller="BDD32Setup10.exe"
export bottle="bg"
get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm"
install_wine_bottle speechsdk
wine "${cache}/${bgInstaller}" /silent
add_launcher "c:\Program Files\Games\DrawDominoesB\DrawDominoesB.exe"
;;
"BG Elevens Solitaire")
bgInstaller="ESB32Setup10.exe"
export bottle="bg"
get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm"
install_wine_bottle speechsdk
wine "${cache}/${bgInstaller}" /silent
add_launcher "c:\Program Files\Games\ElevensB\ElevensB.exe"
;;
2021-07-02 11:13:36 -04:00
"BG Fives Dominoes")
bgInstaller="BFD32Setup10.exe"
export bottle="bg"
get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm"
install_wine_bottle speechsdk
wine "${cache}/${bgInstaller}" /silent
add_launcher "c:\Program Files\Games\FivesDominoesB\FivesDominoesB.exe"
;;
2021-06-17 21:20:06 -04:00
"BG Free Cell Solitaire")
bgInstaller="BGF32Setup20.exe"
export bottle="bg"
get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm"
2021-06-17 21:20:06 -04:00
install_wine_bottle speechsdk
wine "${cache}/${bgInstaller}" /silent
add_launcher "c:\Program Files\Games\FreecellB\FreecellB.exe"
;;
2021-07-02 11:13:36 -04:00
"BG Golf Solitaire")
bgInstaller="GSB32Setup10a.exe"
2021-06-17 21:27:27 -04:00
export bottle="bg"
get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm"
2021-06-17 21:27:27 -04:00
install_wine_bottle speechsdk
wine "${cache}/${bgInstaller}" /silent
2021-07-02 11:13:36 -04:00
add_launcher "c:\Program Files\Games\GolfSolitaireB\GolfSolitaireB.exe"
;;
"BG Hangman")
bgInstaller="HMB32Setup10.exe"
export bottle="bg"
get_installer "${bgInstaller}" "http://www.spoonbillsoftware.com.au/bggames.htm"
install_wine_bottle speechsdk
wine "${cache}/${bgInstaller}" /silent
add_launcher "c:\Program Files\Games\HangmanB\HangmanB.exe"
2021-06-17 21:27:27 -04:00
;;
2021-06-14 07:51:30 -04:00
"BG Hearts")
2021-06-17 16:39:06 -04:00
bgInstaller="BGH32Setup10b.exe"
export bottle="bg"
get_installer "${bgInstaller}" "http://www.spoonbillsoftware.com.au/bggames.htm"
2021-06-14 07:51:30 -04:00
install_wine_bottle speechsdk
2021-06-17 16:39:06 -04:00
wine "${cache}/${bgInstaller}" /silent
2021-06-14 07:51:30 -04:00
add_launcher "c:\Program Files\Games\HeartsB\HeartsB.exe"
;;
2021-07-02 11:13:36 -04:00
"BG Klondike Solitaire")
bgInstaller="BGK32Setup10b.exe"
export bottle="bg"
get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm"
install_wine_bottle speechsdk
wine "${cache}/${bgInstaller}" /silent
add_launcher "c:\Program Files\Games\KlondikeB\KlondikeB.exe"
;;
"BG LAP")
bgInstaller="LAP32Setup10.exe"
export bottle="bg"
get_installer "${bgInstaller}" "http://www.spoonbillsoftware.com.au/bggames.htm"
install_wine_bottle speechsdk
wine "${cache}/${bgInstaller}" /silent
add_launcher "c:\Program Files\Games\LAP\LAP.exe"
;;
2021-07-01 22:08:02 -04:00
"BG Master Mind")
bgInstaller="BMM32Setup10.exe"
export bottle="bg"
get_installer "${bgInstaller}" "http://www.spoonbillsoftware.com.au/bggames.htm"
install_wine_bottle speechsdk
wine "${cache}/${bgInstaller}" /silent
add_launcher "c:\Program Files\Games\MastermindB\BGMasterMind.exe"
;;
"BG Mine Sweeper")
2021-06-17 16:39:06 -04:00
bgInstaller="MSB32Setup10.exe"
export bottle="bg"
get_installer "${bgInstaller}" "http://www.spoonbillsoftware.com.au/bggames.htm"
install_wine_bottle speechsdk
2021-06-17 16:39:06 -04:00
wine "${cache}/${bgInstaller}" /silent
add_launcher "c:\Program Files\Games\MinesweeperB\MinesweeperB.exe"
;;
"BG Nomination Whist")
bgInstaller="BNW32Setup10a.exe"
export bottle="bg"
get_installer "${bgInstaller}" "http://www.spoonbillsoftware.com.au/bggames.htm"
install_wine_bottle speechsdk
wine "${cache}/${bgInstaller}" /silent
2021-07-02 11:13:36 -04:00
add_launcher "c:\Program Files\Games\NomWhistB\NomWhistB.exe"
;;
2021-06-17 21:57:50 -04:00
"BG Penguin Solitaire")
bgInstaller="BPS32Setup10c.exe"
export bottle="bg"
get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm"
2021-06-17 21:57:50 -04:00
install_wine_bottle speechsdk
wine "${cache}/${bgInstaller}" /silent
add_launcher "c:\Program Files\Games\PenguinB\PenguinB.exe"
;;
"BG Poker Solitaire")
bgInstaller="BPS32Setup10.exe"
export bottle="bg"
get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm"
install_wine_bottle speechsdk
wine "${cache}/${bgInstaller}" /silent
add_launcher "c:\Program Files\Games\PokerSolB\PokerSolB.exe"
;;
"BG Pyramid Solitaire")
bgInstaller="PSB32Setup10a.exe"
export bottle="bg"
get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm"
install_wine_bottle speechsdk
wine "${cache}/${bgInstaller}" /silent
add_launcher "c:\Program Files\Games\PyramidB\PyramidB.exe"
;;
2021-06-17 21:57:50 -04:00
"BG Scorpion Solitaire")
bgInstaller="BSS32Setup10.exe"
export bottle="bg"
get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm"
2021-06-17 21:57:50 -04:00
install_wine_bottle speechsdk
wine "${cache}/${bgInstaller}" /silent
add_launcher "c:\Program Files\Games\ScorpionB\ScorpionB.exe"
;;
"BG Simon")
bgInstaller="BGS32Setup10.exe"
export bottle="bg"
get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm"
install_wine_bottle speechsdk
wine "${cache}/${bgInstaller}" /silent
add_launcher "c:\Program Files\Games\SimonB\SimonB.exe"
;;
"BG Spider Solitaire")
bgInstaller="SPB32Setup10b.exe"
export bottle="bg"
get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm"
install_wine_bottle speechsdk
wine "${cache}/${bgInstaller}" /silent
add_launcher "c:\Program Files\Games\SpiderB\SpiderB.exe"
;;
2021-07-01 22:08:02 -04:00
"BG Scrabble")
bgInstaller="BGS32Setup20.exe"
export bottle="bg"
get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm"
install_wine_bottle speechsdk
wine "${cache}/${bgInstaller}" /silent
add_launcher "c:\Program Files\Games\ScrabbleB\ScrabbleB.exe"
;;
"BG Sudoku")
bgInstaller="SDB32Setup10a.exe"
export bottle="bg"
get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm"
install_wine_bottle speechsdk
wine "${cache}/${bgInstaller}" /silent
add_launcher "c:\Program Files\Games\SudokuB\SudokuB.exe"
;;
2021-07-02 11:13:36 -04:00
"BG Tablic Solitaire")
bgInstaller="TSB32Setup10.exe"
export bottle="bg"
get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm"
install_wine_bottle speechsdk
wine "${cache}/${bgInstaller}" /silent
add_launcher "c:\Program Files\Games\TabSolB\BGTabSol.exe"
;;
"BG Tri-Peaks Solitaire")
bgInstaller="TPB32Setup10a.exe"
export bottle="bg"
get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm"
install_wine_bottle speechsdk
wine "${cache}/${bgInstaller}" /silent
2021-07-02 11:13:36 -04:00
add_launcher "c:\Program Files\Games\TriPeaksB\TriPeaksB.exe"
;;
"BG Twenty 20 Cricket")
bgInstaller="T20B32Setup10.exe"
export bottle="bg"
get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm"
install_wine_bottle speechsdk
wine "${cache}/${bgInstaller}" /silent
add_launcher "c:\Program Files\Games\T20CricketB\CricketB.exe"
;;
2021-06-17 16:39:06 -04:00
"BG Uno")
bgInstaller="BGU32Setup11a.exe" "http://www.spoonbillsoftware.com.au/bggames.htm"
2021-06-17 16:39:06 -04:00
export bottle="bg"
get_installer "${bgInstaller}"
install_wine_bottle speechsdk
wine "${cache}/${bgInstaller}" /silent
add_launcher "c:\Program Files\Games\UnoB\UnoB.exe"
;;
"BG Word Builder")
bgInstaller="BWB32Setup10.exe"
export bottle="bg"
get_installer "${bgInstaller}" "http://www.spoonbillsoftware.com.au/bggames.htm"
install_wine_bottle speechsdk
wine "${cache}/${bgInstaller}" /silent
add_launcher "c:\Program Files\Games\WordBuilderB\WordBuilderB.exe"
;;
2021-07-02 11:13:36 -04:00
"BG Word Candy")
bgInstaller="WCB32Setup10a.exe"
export bottle="bg"
get_installer "${bgInstaller}" "http://www.spoonbillsoftware.com.au/bggames.htm"
install_wine_bottle speechsdk
wine "${cache}/${bgInstaller}" /silent
add_launcher "c:\Program Files\Games\WordCandyB\WordCandyB.exe"
;;
"BG Word Jumble")
bgInstaller="BWJ32Setup10.exe"
export bottle="bg"
get_installer "${bgInstaller}" "http://www.spoonbillsoftware.com.au/bggames.htm"
install_wine_bottle speechsdk
wine "${cache}/${bgInstaller}" /silent
add_launcher "c:\Program Files\Games\WordJumbleB\WordJumbleB.exe"
;;
2021-07-02 11:13:36 -04:00
"BG Word Maze")
bgInstaller="BWM32Setup10.exe"
export bottle="bg"
get_installer "${bgInstaller}" "http://www.spoonbillsoftware.com.au/bggames.htm"
install_wine_bottle speechsdk
wine "${cache}/${bgInstaller}" /silent
add_launcher "c:\Program Files\Games\WordMazeB\WordMazeB.exe"
;;
"BG Word Solitaire")
bgInstaller="WSB32Setup10.exe"
export bottle="bg"
get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm"
install_wine_bottle speechsdk
wine "${cache}/${bgInstaller}" /silent
add_launcher "c:\Program Files\Games\WordSolitaireB\WordSolitaireB.exe"
;;
"BG Word Target")
bgInstaller="WTB32Setup10a.exe"
export bottle="bg"
get_installer "${bgInstaller}" "http://www.spoonbillsoftware.com.au/bggames.htm"
install_wine_bottle speechsdk
wine "${cache}/${bgInstaller}" /silent
add_launcher "c:\Program Files\Games\WordTargetB\WordTargetB.exe"
;;
"BG Word Yahtzee")
bgInstaller="BWY32Setup10.exe"
export bottle="bg"
get_installer "${bgInstaller}" "http://www.spoonbillsoftware.com.au/bggames.htm"
install_wine_bottle speechsdk
wine "${cache}/${bgInstaller}" /silent
2021-07-02 11:13:36 -04:00
add_launcher "c:\Program Files\Games\WordYahtzeeB\BGWordYahtzee.exe"
;;
"BG Yahtzee")
bgInstaller="BGY32Setup10a.exe"
export bottle="bg"
get_installer "${bgInstaller}" "http://www.spoonbillsoftware.com.au/bggames.htm"
install_wine_bottle speechsdk
wine "${cache}/${bgInstaller}" /silent
add_launcher "c:\Program Files\Games\yahtzeeB\BGYahtzee.exe"
;;
2020-08-27 21:27:10 -04:00
"Bloodshed")
2020-10-25 12:55:26 -04:00
export winVer="win7"
2020-08-27 21:27:10 -04:00
install_wine_bottle speechsdk
download "http://www.samtupy.com/games/bloodshed.exe"
cp "${cache}/bloodshed.exe" "$WINEPREFIX/drive_c/Program Files/"
add_launcher "c:\Program Files\bloodshed.exe"
2020-08-27 21:27:10 -04:00
;;
2021-04-25 02:32:07 -04:00
"Bombercats")
export bottle="oriol-gomez"
2021-04-25 02:32:07 -04:00
export winVer="win7"
2021-04-27 02:42:08 -04:00
install_wine_bottle
2021-04-25 02:32:07 -04:00
download "http://oriolgomez.com/games/bombercats_en.zip"
unzip -d "$WINEPREFIX/drive_c/Program Files/bomvercats" "${cache}/bombercats_en.zip"
2021-04-27 02:35:36 -04:00
find "${WINEPREFIX}" -type f -name "nvdaControllerClient32.dll" -exec rm -fv "{}" \;
2021-04-25 02:32:07 -04:00
add_launcher "c:\Program Files\bomvercats\game.exe"
;;
"Breed Memorial")
export winVer="win7"
install_wine_bottle cjkfonts speechsdk
download "https://hirotaka2014.sakura.ne.jp/mh0406/game/breed_memorial.zip" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient32.dll"
unzip -d "$WINEPREFIX/drive_c/Program Files/" "${cache}/breed_memorial.zip"
#find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvdaControllerClient32.dll" "{}" \;
add_launcher "c:\Program Files\Breed memorial\Breed memorial\breed memorial.exe"
;;
"Castaways")
export winVer="win7"
install_wine_bottle vb6run dx8vb speechsdk
download "https://www.kaldobsky.com/audiogames/castaways.zip"
unzip -d "$WINEPREFIX/drive_c/Program Files/castaways" "${cache}/castaways.zip"
wine "c:\Program Files\castaways\Checkup.exe" /verysilent
add_launcher "c:\Program Files\castaways\Castaways.exe"
;;
"Castaways 2")
export winVer="win7"
install_wine_bottle vb6run dx8vb speechsdk
download "http://www.kaldobsky.com/audiogames/castaways2beta.zip"
unzip -d "$WINEPREFIX/drive_c/Program Files/castaways" "${cache}/castaways2beta.zip"
wine "c:\Program Files\castaways\Checkup.exe" /verysilent
add_launcher "c:\Program Files\castaways\Castaways2.exe"
;;
"Chopper Challenge")
# Freezes at menu
2020-12-16 14:45:14 -05:00
install_wine_bottle vb6run dx8vb speechsdk
download "https://www.agarchive.net/games/XSight/chopper%20challenge%20setup.exe"
2020-12-16 14:45:14 -05:00
wine "${cache}/chopper challenge setup.exe" /silent &
xdotool sleep 5 key y 2> /dev/null
wineserver -w
echo "$USER|n/a" >> "$WINEPREFIX/drive_c/Program Files/x-sight interactive/chopper challenge/config.dat"
add_launcher "c:\Program Files\x-sight interactive\chopper challenge\Chopper.exe"
;;
"Constant Battle")
export winVer="win7"
install_wine_bottle speechsdk
download "https://renovagames.com/bc/BC-Setup.exe"
wine "${cache}/BC-Setup.exe" /silent
#add_launcher "c:\Program Files\"
;;
2020-11-16 14:40:34 -05:00
"Christmas WhoopAss")
install_wine_bottle vb6run dx8vb
download "https://www.agarchive.net/games/draconis/christmas%20whoopass%20setup.exe"
wine "${cache}/christmas whoopass setup.exe" /sp- /silent
2020-11-16 14:40:34 -05:00
add_launcher "c:\Program Files\Draconis Entertainment\Christmas Whoop Ass\wa.exe"
;;
2021-04-26 01:33:26 -04:00
"Copter Mission")
export bottle="oriol-gomez"
2021-04-26 01:33:26 -04:00
export winVer="win7"
install_wine_bottle
download "http://oriolgomez.com/games/copter_en.zip"
unzip -d "$WINEPREFIX/drive_c/Program Files/copter mission" "${cache}/copter_en.zip"
add_launcher "c:\Program Files\copter mission\game.exe"
;;
"Crazy Party")
export winVer="win7"
install_wine_bottle speechsdk
download "http://pragmapragma.free.fr/crazy-party/Crazy-Party-beta75.zip"
unzip -d "$WINEPREFIX/drive_c/Program Files" "${cache}/Crazy-Party-beta75.zip"
add_launcher "c:\Program Files\Crazy-Party-beta75\Crazy Party.exe"
rm -f "${WINEPREFIX}/drive_c/Program Files/Crazy-Party-beta75/nvdaControllerClient32.dll"
;;
2020-12-13 12:21:33 -05:00
"Crazy Tennis")
install_wine_bottle speechsdk
download "https://www.agarchive.net/games/VIP/crazy%20tennis%20setup.exe"
wine "${cache}/crazy tennis setup.exe" /sp- /silent
2020-12-13 12:21:33 -05:00
add_launcher "c:\Program Files\Crazytennis\crazytennis.exe"
;;
2021-04-26 01:25:07 -04:00
"Danger on the Wheel")
export bottle="oriol-gomez"
2021-04-26 01:25:07 -04:00
export winVer="win7"
install_wine_bottle speechsdk
2021-04-26 01:25:07 -04:00
download "http://oriolgomez.com/games/wheel_en.zip"
unzip -d "$WINEPREFIX/drive_c/Program Files/danger on the wheel" "${cache}/wheel_en.zip"
find "${WINEPREFIX}" -type f -name "nvdaControllerClient32.dll" -exec rm -fv "{}" \;
2021-04-26 01:25:07 -04:00
add_launcher "c:\Program Files\danger on the wheel\game.exe"
;;
2020-11-19 18:03:29 -05:00
"Death on the Road")
export bottle="oriol-gomez"
2020-11-19 18:03:29 -05:00
export winVer="win7"
install_wine_bottle
download "http://oriolgomez.com/games/road_en.zip"
unzip -d "$WINEPREFIX/drive_c/Program Files/death on the road" "${cache}/road_en.zip"
2021-04-24 13:44:50 -04:00
add_launcher "c:\Program Files\death on the road\game.exe"
2020-11-19 18:03:29 -05:00
;;
2021-01-15 18:05:06 -05:00
"Deathmatch")
export winVer="win7"
export winetricksSettings="vd=1024x768"
install_wine_bottle quartz speechsdk
download "https://www.agarchive.net/games/realitySoftware/death%20match%20project%20alpha%20setup.exe"
wine "${cache}/death match project alpha setup.exe" /silent
add_launcher "c:\Program Files\reality software\death match project alpha\dm1.exe"
;;
2020-12-30 23:22:28 -05:00
"Duck Hunt")
install_wine_bottle vb6run dx8vb speechsdk
download "http://files.l-works.net/dhsetup.exe"
wine "${cache}/dhsetup.exe" /silent
add_launcher "c:\Program Files\Lworks\Duck Hunt\duckhunt.exe"
;;
"Easter Quest")
install_wine_bottle
download "https://agarchive.net/games/mt/easter%20quest%20setup.exe"
wine "${cache}/easter quest setup.exe" /silent
add_launcher "c:\Program Files\MTGames\Easter Quest\easter.exe"
;;
2020-10-06 14:59:04 -04:00
"Entombed")
2020-10-18 20:33:10 -04:00
export winVer="win7"
#install_wine_bottle dotnet35 msvcrt40 speechsdk
install_wine_bottle speechsdk msvcrt40 dotnet48 xna40
download "http://blind-games.com/newentombed/EntombedSetup.exe"
2020-10-06 14:59:04 -04:00
wine "${cache}/EntombedSetup.exe" /silent
add_launcher "c:\Program Files\Entombed\Entombed.exe"
2020-10-06 14:59:04 -04:00
;;
"Eurofly")
export winVer="win7"
2021-01-03 21:15:13 -05:00
export winetricksSettings="vd=1024x768"
install_wine_bottle speechsdk
download "http://www.stefankiss.sk/programy/eurofly/Launcher_1.2.zip" "http://www.stefankiss.sk/programy/eurofly/Eurofly_2_ful_setup.exe"
wine "${cache}/Eurofly_2_ful_setup.exe" /silent
2021-01-03 21:15:13 -05:00
unzip -d "$WINEPREFIX/drive_c/Eurofly" "${cache}/Launcher_1.2.zip"
add_launcher "c:\Eurofly\launcher.exe"
;;
2021-02-15 16:00:37 -05:00
"Extant")
install_wine_bottle speechsdk
download "https://agarchive.net/games/other/extant.zip"
unzip -d "$WINEPREFIX/drive_c/Program Files/extant" "${cache}/extant.zip"
add_launcher "c:\Program Files\extant\Extant.exe"
;;
2020-11-26 21:04:04 -05:00
"Fantasy Story II")
export winVer="win10"
install_wine_bottle speechsdk
download "https://stormgames.wolfe.casa/downloads/FS2_2.2_Windows_x86.zip"
unzip -d "$WINEPREFIX/drive_c/Program Files/" "${cache}/FS2_2.2_Windows_x86.zip"
2020-11-26 21:10:00 -05:00
add_launcher "c:\Program Files\FS2_2.2_Windows_x86\FantasyStory2.exe"
2020-11-26 21:04:04 -05:00
;;
"Fartman")
install_wine_bottle dx8vb vb6run
download "http://www.agarchive.net/games/bpc/fartman.exe"
wine "${cache}/fartman.exe" /silent
#add_launcher "c:\Program Files\"
;;
2020-10-08 10:42:47 -04:00
"Finger Panic")
install_wine_bottle dx8vb vb6run
download "http://www.agarchive.net/games/bsc/FingerPanicSetup.exe"
wine "${cache}/FingerPanicSetup.exe" /sp- /silent
2020-10-08 10:42:47 -04:00
add_launcher "c:\Program Files\Finger Panic 1.0\FingerPanic.exe"
;;
2020-10-05 03:51:17 -04:00
"Fuck That Bird")
export bottle="oriol-gomez"
2020-10-05 03:51:17 -04:00
export winVer="win7"
install_wine_bottle
download "http://oriolgomez.com/games/bird_en.zip"
unzip -d "$WINEPREFIX/drive_c/Program Files/fuck that bird" "${cache}/bird_en.zip"
2021-07-02 11:13:36 -04:00
add_launcher "c:\Program Files\fuck that bird\game.exe"
2020-10-05 03:51:17 -04:00
;;
2021-05-03 00:11:50 -04:00
"Golden Crayon")
export winVer="win7"
install_wine_bottle speechsdk
download "http://tunmi13.ddns.net/projects/golden_crayon.zip"
unzip -d "$WINEPREFIX/drive_c/Program Files/" "${cache}/golden_crayon.zip"
find "${WINEPREFIX}" -type f -name "nvdaControllerClient32.dll" -exec rm -fv "{}" \;
2021-07-02 11:13:36 -04:00
add_launcher "c:\Program Files\\golden_crayon\gc.exe"
2021-05-03 00:11:50 -04:00
;;
"GMA Tank Commander")
install_wine_bottle vb6run dx8vb speechsdk
download "http://www.gmagames.com/gtc120.exe"
wine "${cache}/gtc120.exe" /silent &
xdotool sleep 10 key --clearmodifiers alt+y 2> /dev/null
xdotool sleep 15 type --clearmodifiers --delay 100 "${USER^}" 2> /dev/null
xdotool key --clearmodifiers Tab 2> /dev/null
xdotool sleep 10 type --clearmodifiers --delay 100 "${HOSTNAME^}" 2> /dev/null
xdotool key --clearmodifiers Tab 2> /dev/null
xdotool sleep 10 type --clearmodifiers --delay 100 "na@na.na" 2> /dev/null
xdotool key --clearmodifiers Tab 2> /dev/null
xdotool sleep 10 type --clearmodifiers --delay 100 "uuuuuuu" 2> /dev/null
xdotool key --clearmodifiers Tab 2> /dev/null
xdotool key --clearmodifiers Return 2> /dev/null
xdotool sleep 10 key --clearmodifiers Return 2> /dev/null
wineserver -w
echo "To accurately set your information, edit the file:"
echo "${WINEPREFIX}/drive_c/Program\ Files/GMA\ Tank\ Commander/config.dat"
echo "The default country is US. The fields are:"
echo -e "\"Firstname Lastname\"\n\"Email address\"\n\"Country code\""
add_launcher "c:\Program Files\GMA Tank Commander\gtc.exe"
;;
2021-04-26 01:06:50 -04:00
"Hammer of Glory")
export bottle="oriol-gomez"
2021-04-26 01:06:50 -04:00
export winVer="win7"
2021-04-27 02:35:36 -04:00
install_wine_bottle speechsdk
2021-04-26 01:06:50 -04:00
download "http://oriolgomez.com/games/hammer_en.zip"
unzip -d "$WINEPREFIX/drive_c/Program Files/hammer of glory" "${cache}/hammer_en.zip"
2021-04-27 02:35:36 -04:00
find "${WINEPREFIX}" -type f -name "nvdaControllerClient32.dll" -exec rm -fv "{}" \;
2021-04-26 01:06:50 -04:00
add_launcher "c:\Program Files\hammer of glory\game.exe"
;;
2020-11-20 12:39:12 -05:00
"Hunter")
install_wine_bottle vb6run dx8vb
# FIXME: Hacky, but it works. Install dotnet35 by itself so it actually doesn't hang.
winetricks -q dotnet35
wineserver -k # Damn you, dotnet.
download "http://www.agarchive.net/games/bsc/HunterSetup.exe" "https://www.agarchive.net/games/bsc/BSC%20unlock%20code%20generator.7z"
2020-11-20 19:04:27 -05:00
wine "${cache}/HunterSetup.exe" /silent &
2020-11-20 19:48:08 -05:00
xdotool sleep 10 key --clearmodifiers alt+y 2> /dev/null
sleep 30 && wineserver -k # Sometimes the installer finishes but the wineserver has more processes that don't exit, so we can't depend on wineserver -w.
2020-11-20 12:39:12 -05:00
mkdir -p "$WINEPREFIX/drive_c/Program Files/bsc-key-generator"
7z e -o"$WINEPREFIX/drive_c/Program Files/bsc-key-generator" "${cache}/BSC unlock code generator.7z"
echo "$USER"$'\n'"$(hostname)"$'\n'"none"$'\n'"US" > "$WINEPREFIX/drive_c/Program Files/Hunter/config.dat"
command -v unix2dos &> /dev/null && unix2dos "$WINEPREFIX/drive_c/Program Files/Hunter/config.dat" || echo "Warning! You do not have unix2dos or dos2unix installed, Hunter may not work!"
2020-11-20 12:39:12 -05:00
if command -v xclip &> /dev/null && command -v xdotool &> /dev/null ; then
wine "c:\Program Files\Hunter\HunterRegistration.exe" &
xdotool sleep 10 key Return sleep 2 key Return sleep 2 key Alt+n
sleep 1
regcode="$(xclip -selection clipboard -o)"
xdotool sleep 1 key Shift+Tab sleep 1 key Return
# FIXME: Kind of hacky, but let's make sure it actually exitted.
sleep 5
wineserver -k
wine "c:\Program Files\bsc-key-generator\BlindsoftwareUnlockCodeGenerator.exe" &
xdotool sleep 10 key Return sleep 2 type h
2020-11-20 12:39:12 -05:00
xdotool sleep 1 key Tab sleep 1 type $regcode
xdotool sleep 1 key Tab sleep 1 key Return
sleep 2
regcode="$(xclip -selection clipboard -o)" # Might as well reuse the variable.
# FIXME: Kind of hacky, but let's make sure it actually exitted since I can't find a good way to exit this program.
sleep 5
wineserver -k
wine "c:\Program Files\Hunter\HunterRegistration.exe" &
echo "$regcode" | xclip -selection clipboard
xdotool sleep 10 key Return sleep 2 key Shift+Tab sleep 1 key Shift+Tab sleep 1 key Return
# FIXME: Kind of hacky, but let's make sure it actually exitted.
sleep 5
wineserver -k
else
echo "Warning: You need xclip and xdotool for this installer to finish the registration process, however, you don't have them. Either remove the program, install the stated tools, and reinstall it, or go on your own. Caveat Emptor, go to jail, do not pass go, do not collect audiogame rewards and all that stuff."
fi
add_launcher "c:\Program Files\Hunter\HunterRun.exe"
;;
2021-04-25 02:32:07 -04:00
"Insect Therapy")
export bottle="oriol-gomez"
2021-04-25 02:32:07 -04:00
export winVer="win7"
2020-11-16 14:40:34 -05:00
install_wine_bottle
2021-04-25 02:32:07 -04:00
download "http://oriolgomez.com/games/insect_en.zip"
unzip -d "$WINEPREFIX/drive_c/Program Files/insect therapy" "${cache}/insect_en.zip"
add_launcher "c:\Program Files\insect therapy\game.exe"
2020-11-16 14:40:34 -05:00
;;
"Judgement Day")
install_wine_bottle vb6run dx8vb quartz
download "http://files.l-works.net/judgmentdayfullsetup.exe"
wine "${cache}/judgmentdayfullsetup.exe" /silent
cat << EOF > /tmp/judgementday.reg
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\VB and VBA Program Settings\judgmentday\config]
"name"="$USER"
EOF
wine regedit /s /tmp/judgementday.reg
rm /tmp/judgementday.reg
add_launcher "c:\Program Files\Lworks\Judgment Day\judgmentday.exe"
;;
2020-08-27 15:42:24 -04:00
"Kitchensinc Games")
2020-09-04 18:45:45 -04:00
install_wine_bottle vb6run speechsdk dx8vb
download "https://stormgames.wolfe.casa/downloads/kitchen.tar.xz"
2020-09-04 18:45:45 -04:00
echo "Extracting files..."
tar xf "${cache}/kitchen.tar.xz" -C "$WINEPREFIX/drive_c/Program Files/"
2020-08-27 15:42:24 -04:00
add_launcher "c:\Program Files\Kitchen's Sink\gamemenu.exe"
;;
2021-04-25 02:32:07 -04:00
"Kringle Crash")
2021-04-25 01:19:31 -04:00
install_wine_bottle
2021-04-25 02:32:07 -04:00
download "https://www.agarchive.net/games/blastbay/kringle%20crash%20setup.exe"
wine "${cache}/kringle crash setup.exe" /silent
add_launcher "c:\Program Files\Kringle Crash\kringlecrash.exe"
2021-04-25 01:19:31 -04:00
;;
"Light Battles")
export winVer="win7"
install_wine_bottle speechsdk
download "https://prometheus-enterprises.com/games/CoL.exe"
7z e -o"$WINEPREFIX/drive_c/Program Files/Light Battles" "${cache}/CoL.exe"
rm -fv "${WINEPREFIX}/drive_c/Program Files/Light Battles/nvdaControllerClient.dll"
add_launcher "c:\Program Files\Light Battles\battles.exe"
;;
2020-08-30 22:26:53 -04:00
"Light Cars")
install_wine_bottle dx8vb vb6run
download "https://www.agarchive.net/games/lighttech/light%20cars%20setup.exe"
wine "${cache}/light cars setup.exe" &
2020-12-31 12:54:01 -05:00
xdotool sleep 10 key --clearmodifiers alt+n sleep 1 key --clearmodifiers alt+a key --clearmodifiers space sleep 1 key --clearmodifiers alt+n sleep 1 key --clearmodifiers alt+n sleep 1 key --clearmodifiers alt+i sleep 30 key --clearmodifiers Tab sleep 1 key --clearmodifiers Return 2> /dev/null
wineserver -w
echo -e "${USER} ${HOST}\nna@na.na\nUS" > ~/.local/wine/light-cars/drive_c/Program\ Files/Lighttech\ Interactive/Light\ Cars/config.dat
unix2dos ~/.local/wine/light-cars/drive_c/Program\ Files/Lighttech\ Interactive/Light\ Cars/config.dat
2020-08-30 22:26:53 -04:00
add_launcher "c:\Program Files\Lighttech Interactive\Light Cars\lightCars.exe"
;;
2020-09-04 22:25:00 -04:00
"Lockpick")
install_wine_bottle vb6run dx8vb
download "http://files.l-works.net/lockpicksetup.exe"
wine "${cache}/lockpicksetup.exe" /silent
2020-09-04 22:25:00 -04:00
add_launcher "c:\Program Files\lWorks\Lockpick\lockpick.exe"
;;
"Lone Wolf")
install_wine_bottle vb6run dx8vb speechsdk
download "http://www.gmagames.com/lw350.exe"
wine "${cache}/lw350.exe" /silent &
xdotool sleep 10 key --clearmodifiers alt+y 2> /dev/null
xdotool sleep 10 type --clearmodifiers --delay 100 "$USER" 2> /dev/null
xdotool key --clearmodifiers Tab 2> /dev/null
xdotool type --clearmodifiers --delay 100 "$HOSTNAME" 2> /dev/null
xdotool key --clearmodifiers Tab 2> /dev/null
xdotool type --clearmodifiers --delay 100 "na@na.na" 2> /dev/null
xdotool key --clearmodifiers Tab 2> /dev/null
xdotool type --clearmodifiers --delay 100 "uuuuuu" 2> /dev/null
xdotool key --clearmodifiers Tab 2> /dev/null
xdotool key --clearmodifiers Return 2> /dev/null
wineserver -w
add_launcher "c:\Program Files\Lone Wolf\lw.exe"
;;
2021-06-06 12:03:53 -04:00
"Lunimals")
export winVer="win7"
export winetricksSettings="vd=1024x768"
install_wine_bottle vb6run dx8vb quartz speechsdk corefonts
download "https://kaldobsky.com/audiogames/lunimals.zip"
unzip -d "$WINEPREFIX/drive_c/Program Files/lunimals" "${cache}/lunimals.zip"
cp "$WINEPREFIX/drive_c/Program Files/lunimals/dx7vb.dll" "$WINEPREFIX/drive_c/windows/system32"
wine cmd.exe /c 'cd /d c:\windows\system32 && regsvr32 dx7vb.dll'
add_launcher "c:\Program Files\lunimals\Lunimals.exe"
echo "Note: Lunimals installed. Once you start the game, you must press tab until you hear sapi on to get speech." >&2
;;
2020-10-09 13:33:37 -04:00
"Manamon")
export winVer="win7"
install_wine_bottle speechsdk
download "https://www.vgstorm.com/manamon/manamon_installer.exe"
wine "${cache}/manamon_installer.exe" /silent
add_launcher "c:\Program Files\VGStorm.com\Manamon\rpg.exe"
;;
2020-10-09 20:53:45 -04:00
"Manamon 2")
export winVer="win7"
install_wine_bottle speechsdk
download "http://www.vgstorm.com/manamon2/manamon2_installer.exe"
wine "${cache}/manamon2_installer.exe" /silent
add_launcher "c:\Program Files\VGStorm.com\Manamon 2\rpg.exe"
;;
"MudSplat English")
a="a"
f="f"
i="i"
n="n"
;&
"MudSplat French")
# Variables may be already set for English installation, so make sure not to overwrite them.
a="${a:-a}"
f="${f:-t}"
i="${i:-i}"
n="${n:-s}"
;&
"MudSplat Swedish")
# Variables may be already set for French installation, so make sure not to overwrite them.
a="${a:-a}"
f="${f:-f}"
i="${i:-i}"
n="${n:-n}"
install_wine_bottle
download "https://www.agarchive.net/games/other/Mudsplat-install.exe"
wine "${cache}/Mudsplat-install.exe" &
# Select the language.
xdotool sleep 10 type --clearmodifiers ${game:9:1} 2> /dev/null
xdotool sleep 1 key --clearmodifiers Return sleep 1 key alt+${n} sleep 1 key alt+${a} sleep 1 key alt+${n} sleep 1 key space sleep 1 key alt+${n} sleep 1 key alt+${n} sleep 1 key alt+${i} sleep 10 key space sleep 1 key alt+${f} 2> /dev/null
wineserver -w
mudsplatLauncher="$(find "$WINEPREFIX/drive_c/Program Files/TiM/MudSplat" -name 'mudsplat-*.exe')"
mudsplatLauncher="${mudsplatLauncher##*/}"
add_launcher "c:\Program Files\TiM\MudSplat\\${mudsplatLauncher}"
;;
2020-11-05 10:38:49 -05:00
"Oh Shit!")
export winVer="win7"
install_wine_bottle speechsdk
download "http://samtupy.com/stevend/oh_shit.zip" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient32.dll"
unzip -d "$WINEPREFIX/drive_c/Program Files" "${cache}/oh_shit.zip"
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvdaControllerClient32.dll" "{}" \;
2020-11-05 10:38:49 -05:00
add_launcher "c:\Program Files\oh_shit\OhShit.exe"
;;
2020-12-16 19:18:01 -05:00
"Pacman Talks")
install_wine_bottle
2020-12-16 19:18:01 -05:00
download "http://www.gmagames.com/pmt101.exe"
wine "${cache}/pmt101.exe" /sp- /silent &
2020-12-16 19:18:01 -05:00
add_launcher "c:\Program Files\Pacman Talks\pmt.exe"
;;
"Palace Punch Up")
install_wine_bottle speechsdk
download "https://www.agarchive.net/games/blastbay/palace%20punch-up%20setup.exe"
wine "${cache}/palace punch-up setup.exe" /silent
add_launcher "c:\Program Files\Palace Punch-up\palace.exe"
;;
2020-10-18 09:20:22 -04:00
"Paladin of the Sky")
export winVer="win7"
install_wine_bottle speechsdk
download "http://www.vgstorm.com/cod/pots/paladin_installer.exe"
wine "${cache}/paladin_installer.exe" /silent
add_launcher "c:\Program Files\VGStorm.com\Paladin of the Sky\game.exe"
;;
2021-01-15 18:38:45 -05:00
"Park Boss")
export winVer="win7"
install_wine_bottle speechsdk
download "http://www.ndadamson.com/downloads/Park%20Boss%201.01%20setup.exe"
wine "${cache}/Park Boss 1.01 setup.exe" /silent &
xdotool sleep 10 key --clearmodifiers Return sleep 1 key alt+n sleep 1 key alt+a sleep 1 key alt+i sleep 10 key alt+f 2> /dev/null
wineserver -w
add_launcher "c:\Program Files\NASoft\ParkBoss\pbMain.exe"
;;
"Perilous Hearts")
install_wine_bottle speechsdk
download "https://www.agarchive.net/games/blastbay/perilous%20hearts%20concept%20demo.exe"
wine "${cache}/perilous hearts concept demo.exe" /silent
add_launcher "c:\Program Files\Perilous Hearts Concept Demo\perilous_hearts.exe"
;;
2020-10-26 19:04:21 -04:00
"Q9")
install_wine_bottle
download "http://www.blastbay.com/q9_english_installer.exe"
wine "${cache}/q9_english_installer.exe" /silent
add_launcher "c:\Program Files\Q9 Action Game\q9.exe"
;;
2021-05-07 02:40:28 -04:00
"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"
2021-05-07 02:40:28 -04:00
find "${WINEPREFIX}" -type f -name "nvdaControllerClient32.dll" -exec rm -fv "{}" \;
add_launcher "c:\Program Files\revenge of the undead\rotu.exe"
2021-05-07 02:40:28 -04:00
;;
2020-11-20 12:37:54 -05:00
"Rhythm Rage")
export bottle="oriol-gomez"
2020-11-20 12:37:54 -05:00
export winVer="win7"
install_wine_bottle speechsdk
download "http://oriolgomez.com/games/rr_en.zip" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient32.dll"
unzip -d "$WINEPREFIX/drive_c/Program Files/rhythm rage" "${cache}/rr_en.zip"
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvdaControllerClient32.dll" "{}" \;
2021-07-02 11:13:36 -04:00
add_launcher "c:\Program Files\rhythm rage\game.exe"
2020-11-20 12:37:54 -05:00
;;
2020-12-16 14:45:14 -05:00
"River Raiders")
# Choppy sound under water.
install_wine_bottle
download "https://www.agarchive.net/games/XSight/River%20Raiders%201.3.5.exe"
wine "$cache/River Raiders 1.3.5.exe" /silent &
xdotool sleep 5 type y 2> /dev/null
xdotool sleep 1 key --clearmodifiers alt+n sleep 2 key alt+n sleep 2 key alt+n sleep 2 key alt+i sleep 5 key alt+f 2> /dev/null
add_launcher "c:\Program Files\River Raiders\raid.exe"
;;
2020-11-05 19:47:01 -05:00
"RS Games")
export winVer="win7"
install_wine_bottle speechsdk
2020-11-25 12:19:02 -05:00
download "http://rsgames.org/rsdownloads/rsgclient/rsgames-client-setup-2.01.exe" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient32.dll"
2020-11-05 19:47:01 -05:00
wine "${cache}/rsgames-client-setup-2.01.exe" /silent
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvdaControllerClient32.dll" "{}" \;
2020-11-05 19:47:01 -05:00
add_launcher "c:\Program Files\RS Games Client\rsg.exe"
;;
2020-10-06 14:59:04 -04:00
"Run For Your Life")
export bottle="oriol-gomez"
2020-10-06 14:59:04 -04:00
export winVer="win7"
install_wine_bottle
download "http://oriolgomez.com/games/rfyl_en.zip"
unzip -d "$WINEPREFIX/drive_c/Program Files/run for your life" "${cache}/rfyl_en.zip"
2020-10-25 12:55:26 -04:00
add_launcher "c:\Program Files\run for your life\game.exe"
2020-10-06 14:59:04 -04:00
;;
2021-01-10 12:46:26 -05:00
"Sammy Center")
export winVer="win7"
install_wine_bottle speechsdk
download "http://www.samtupy.com/games/SCSetup.exe" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient32.dll"
wine "${cache}/SCSetup.exe" /silent
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvdaControllerClient32.dll" "{}" \;
add_launcher "c:\Program Files\Sam Tupy\SammyCenter\SammyCenter.exe"
;;
2021-06-30 01:34:31 -04:00
"Screaming Strike 2")
export winVer="win7"
install_wine_bottle cjkfonts speechsdk
download "https://www.nyanchangames.com/softs/screamingStrike2.exe" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient32.dll"
2021-06-30 01:34:31 -04:00
wine "${cache}/screamingStrike2.exe" &
xdotool sleep 10 key Return
wineserver -w
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvdaControllerClient32.dll" "{}" \;
add_launcher "c:\nyanchangame\Screaming Strike 2\play.exe"
;;
"Scrolling Battles")
export winVer="win7"
install_wine_bottle speechsdk
download "http://games.ims-productions.com/SBYW/SBYW.zip" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient32.dll"
unzip -d "$WINEPREFIX/drive_c/Program Files/scrolling battles" "${cache}/SBYW.zip"
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvdaControllerClient32.dll" "{}" \;
add_launcher "c:\Program Files\scrolling battles\SBYW.exe"
;;
2020-11-16 14:40:34 -05:00
"Sequence Storm")
get_installer "sequence-storm-win64.zip" "https://special-magic-games-llc.itch.io/sequence-storm"
2020-11-16 14:40:34 -05:00
export WINEARCH=win64
export winVer="win10"
install_wine_bottle
unzip -d "$WINEPREFIX/drive_c/Program Files/sequence-storm" "${cache}/sequence-storm-win64.zip"
2020-11-16 16:57:16 -05:00
write_sequence_storm_reader
2020-11-16 14:40:34 -05:00
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"
;;
"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")
2020-11-10 18:01:51 -05:00
export winVer="win7"
2020-11-20 01:05:04 -05:00
install_wine_bottle vb6run dx8vb speechsdk
download "http://www.gmagames.com/sod20022.exe"
wine "${cache}/sod20022.exe" /silent
add_launcher "c:\Program Files\Shades of Doom 2.0\sod.exe"
;;
2020-12-29 06:04:19 -05:00
"Silver Dollar")
export winVer="win7"
install_wine_bottle speechsdk
download "http://download.dracoent.com/Windows/SilverDollarSetup.exe"
wine "${cache}/SilverDollarSetup.exe" /silent
add_launcher "c:\Program Files\Draconis Entertainment\Silver Dollar\SilverDollarGui.exe"
;;
"Slender Lost Vision")
export winVer="win7"
install_wine_bottle
download "https://www.iamtalon.me/games/slender.zip"
unzip -d "$WINEPREFIX/drive_c/Program Files/" "${cache}/slender.zip"
add_launcher "c:\Program Files\slender\slender.exe"
2021-02-17 10:50:11 -05:00
;;
"Sonic Zoom")
export winVer="win7"
install_wine_bottle speechsdk
download "http://wwwx.cs.unc.edu/Research/assist/et/projects/SonicZoom/soniczoom11.zip"
unzip -d "$WINEPREFIX/drive_c/Program Files/" "${cache}/soniczoom11.zip"
add_launcher "c:\Program Files\Sonic Zoom\SonicZoom.exe"
;;
2020-08-27 15:42:24 -04:00
"Super Egg Hunt")
install_wine_bottle
download "http://files.l-works.net/superegghuntsetup.exe"
wine "${cache}/superegghuntsetup.exe" /silent
2020-08-27 15:42:24 -04:00
add_launcher "c:\Program Files\Lworks\super egg hunt\superegghunt.exe"
;;
2020-08-31 15:51:29 -04:00
"Super Liam")
install_wine_bottle vb6run dx8vb
download "http://files.l-works.net/superliamsetup.exe"
wine "${cache}/superliamsetup.exe" /silent
2020-08-31 15:51:29 -04:00
add_launcher "c:\Program Files\lWorks\Super Liam\sl.exe"
;;
2020-12-25 16:16:55 -05:00
"Super Mario Bros")
export winVer="win7"
install_wine_bottle speechsdk
download "https://www.agarchive.net/games/jeqoconGames/super%20mario%20bros.7z"
7z e -o"$WINEPREFIX/drive_c/Program Files/Super Mario Bros" "${cache}/super mario bros.7z"
add_launcher "c:\Program Files\Super Mario Bros\Mario.exe"
;;
"Survive the Wild")
export winVer="win7"
install_wine_bottle speechsdk
download "http://www.samtupy.com/games/stw.zip"
unzip -d "$WINEPREFIX/drive_c/Program Files/Survive the Wild" "${cache}/stw.zip"
rm -fv "${HOME}/.local/wine/survive-the-wild/drive_c/Program Files/Survive the Wild/nvdaControllerClient32.dll"
add_launcher "c:\Program Files\Survive the Wild\stw.exe"
;;
2020-09-05 15:02:33 -04:00
"Swamp")
2020-11-05 10:38:49 -05:00
export winVer="win7"
2021-01-03 21:15:13 -05:00
export winetricksSettings="vd=1024x768"
2020-09-05 15:02:33 -04:00
install_wine_bottle vb6run dx8vb quartz speechsdk corefonts
download "https://kaldobsky.com/audiogames/SwampPart1.zip" "https://kaldobsky.com/audiogames/SwampPart2.zip"
unzip -d "$WINEPREFIX/drive_c/Program Files/swamp" "${cache}/SwampPart1.zip"
unzip -d "$WINEPREFIX/drive_c/Program Files/swamp" "${cache}/SwampPart2.zip"
2020-09-05 15:02:33 -04:00
# make sure the latest version is installed.
if wget -O "${cache}/SwampPatch.zip" "https://www.kaldobsky.com/audiogames/SwampPatch.zip" ; then
unzip -o -d "$WINEPREFIX/drive_c/Program Files/swamp" "${cache}/SwampPatch.zip"
fi
2020-09-05 15:02:33 -04:00
wine cmd.exe /c 'cd /d c:\Program Files\swamp && Windows32bit.bat'
add_launcher "c:\Program Files\swamp\Swamp.exe"
;;
"Technoshock")
install_wine_bottle
download "http://tiflocomp.ru/download/games/technoshock_140b_en.zip" "http://tiflocomp.ru/download/games/technoshock140b_en_update.zip"
unzip -d "$WINEPREFIX/drive_c/Program Files" "${cache}/technoshock_140b_en.zip"
unzip -d "$WINEPREFIX/drive_c/Program Files" "${cache}/technoshock_140b_en_update.zip"
wine "$WINEPREFIX/drive_c/Program Files/setup_eng.exe" /silent
wineserver -w
wine "$WINEPREFIX/drive_c/Program Files/setup_eng_update_pack.exe" /silent
add_launcher "c:\Program Files\Tiflocomp Games\Technoshock\ts.exe"
;;
2020-08-27 15:42:24 -04:00
"The Blind Swordsman")
install_wine_bottle
download "https://www.agarchive.net/games/other/the%20blind%20swordsmanPC.zip"
unzip -d "$WINEPREFIX/drive_c/Program Files" "${cache}/the blind swordsmanPC.zip"
2020-08-27 15:42:24 -04:00
add_launcher "c:\Program Files\TheBlindSwordsman.exe"
;;
"The Gate")
export winVer="win7"
install_wine_bottle
download "http://www.vgstorm.com/the_gate_installer.exe"
wine "${cache}/the_gate_installer.exe" /silent
add_launcher "c:\Program Files\VGStorm.com\The Gate\gate.exe"
;;
"The Great Toy Robbery")
export winVer="win7"
2020-11-11 12:44:27 -05:00
install_wine_bottle speechsdk
download "http://files.l-works.net/tgtrsetup_2.04.exe" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient32.dll"
wine "${cache}/tgtrsetup_2.04.exe" /silent
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvdaControllerClient32.dll" "{}" \;
add_launcher "c:\Program Files\Lworks\The Great Toy Robbery\tgtr.exe"
;;
2021-04-26 01:13:50 -04:00
"Thief")
export bottle="oriol-gomez"
2021-04-26 01:13:50 -04:00
export winVer="win7"
install_wine_bottle
download "http://oriolgomez.com/games/thief_en.zip"
unzip -d "$WINEPREFIX/drive_c/Program Files/thief" "${cache}/thief_en.zip"
add_launcher "c:\Program Files\thief\game.exe"
;;
"Three D velocity")
export winVer="win10"
install_wine_bottle speechsdk
download "https://github.com/munawarb/Three-D-Velocity-Binaries/archive/master.zip" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient32.dll"
unzip -d "$WINEPREFIX/drive_c/Program Files" "${cache}/master.zip"
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvdaControllerClient32.dll" "{}" \;
add_launcher "c:\Program Files\Three-D-Velocity-Binaries-master\tdv.exe"
2020-08-31 15:51:29 -04:00
;;
2021-04-28 00:34:40 -04:00
"Top Speed 2")
install_wine_bottle
download "http://users.pandora.be/playinginthedark/downloads/Tspeed_2.00.exe"
wine "${cache}/Tspeed_2.00.exe" /silent
add_launcher "c:\Program Files\Playing in the dark\Top Speed 2\TopSpeed.exe"
;;
2020-08-27 15:42:24 -04:00
"Top Speed 3")
install_wine_bottle directplay
download "https://github.com/PlayingintheDark/TopSpeed/releases/download/h/Tspeed_3.0.3.exe"
wine "${cache}/Tspeed_3.0.3.exe" /silent
2020-08-27 15:42:24 -04:00
add_launcher "c:\Program Files\Playing in the dark\Top Speed 3\TopSpeed.exe"
;;
"Triple Triad")
export winVer="win7"
2020-12-17 01:06:57 -05:00
install_wine_bottle vb6run dx8vb speechsdk
download "https://www.kaldobsky.com/audiogames/tripletriad.zip"
unzip -d "$WINEPREFIX/drive_c/Program Files/Triple Triad" "${cache}/tripletriad.zip"
wine "c:\Program Files\Triple Triad\Checkup.exe" /verysilent
add_launcher "c:\Program Files\Triple Triad\TripleTriad.exe"
;;
"Troopanum2")
install_wine_bottle vb6run dx8vb
# FIXME: Hacky, but it works. Install dotnet35 by itself so it actually doesn't hang.
winetricks -q dotnet35
wineserver -k # Damn you, dotnet.
download "https://www.agarchive.net/games/bsc/Troopanum2Setup.exe" "https://www.agarchive.net/games/bsc/BSC%20unlock%20code%20generator.7z"
wine "${cache}/Troopanum2Setup.exe" /silent &
xdotool sleep 10 key --clearmodifiers alt+y 2> /dev/null
sleep 30 && wineserver -k # Sometimes the installer finishes but the wineserver has more processes that don't exit, so we can't depend on wineserver -w.
mkdir -p "$WINEPREFIX/drive_c/Program Files/bsc-key-generator"
7z e -o"$WINEPREFIX/drive_c/Program Files/bsc-key-generator" "${cache}/BSC unlock code generator.7z"
echo "$USER"$'\n'"$(hostname)"$'\n'"none"$'\n'"US" > "$WINEPREFIX/drive_c/Program Files/Troopanum 2.0/config.dat"
command -v unix2dos &> /dev/null && unix2dos "$WINEPREFIX/drive_c/Program Files/Troopanum 2.0/config.dat" || echo "Warning! You do not have unix2dos or dos2unix installed, Troopanum 2.0 may not work!"
if command -v xclip &> /dev/null && command -v xdotool &> /dev/null ; then
wine "c:\Program Files\Troopanum 2.0\register.exe" &
xdotool sleep 10 key Return sleep 2 key Return sleep 2 key Alt+n
sleep 1
regcode="$(xclip -selection clipboard -o)"
xdotool sleep 1 key Shift+Tab sleep 1 key Return
# FIXME: Kind of hacky, but let's make sure it actually exitted.
sleep 5
wineserver -k
wine "c:\Program Files\bsc-key-generator\BlindsoftwareUnlockCodeGenerator.exe" &
xdotool sleep 10 key Return sleep 2 type t
xdotool sleep 1 type t
xdotool sleep 1 key Tab sleep 1 type $regcode
xdotool sleep 1 key Tab sleep 1 key Return
sleep 2
regcode="$(xclip -selection clipboard -o)" # Might as well reuse the variable.
# FIXME: Kind of hacky, but let's make sure it actually exitted since I can't find a good way to exit this program.
sleep 5
wineserver -k
wine "c:\Program Files\Troopanum 2.0\register.exe" &
echo "$regcode" | xclip -selection clipboard
xdotool sleep 10 key Return sleep 2 key Shift+Tab sleep 1 key Shift+Tab sleep 1 key Return
# FIXME: Kind of hacky, but let's make sure it actually exitted.
sleep 5
wineserver -k
else
echo "Warning: You need xclip and xdotool for this installer to finish the registration process, however, you don't have them. Either remove the program, install the stated tools, and reinstall it, or go on your own. Caveat Emptor, go to jail, do not pass go, do not collect audiogame rewards and all that stuff."
fi
add_launcher "c:\Program Files\Troopanum 2.0\troop.exe"
;;
2021-01-15 18:05:06 -05:00
"Tube Sim")
export winVer="win7"
2021-01-15 18:38:45 -05:00
install_wine_bottle speechsdk
2021-01-15 18:05:06 -05:00
download "http://www.ndadamson.com/downloads/TubeSim1_1_Install.exe"
wine "${cache}/TubeSim1_1_Install.exe" /silent &
xdotool sleep 10 key --clearmodifiers Return sleep 1 key alt+n sleep 1 key alt+a sleep 1 key alt+i sleep 10 key alt+f 2> /dev/null
wineserver -w
add_launcher "c:\Program Files\NASoft\TubeSim\tsMain.exe"
;;
2020-11-05 11:31:54 -05:00
"Undead Assault")
export winVer="win7"
install_wine_bottle speechsdk
download "http://undead-assault.com/static/files/public/undead_assault.zip" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient32.dll"
unzip -d "$WINEPREFIX/drive_c/Program Files/undead_assault" "${cache}/undead_assault.zip"
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvdaControllerClient32.dll" "{}" \;
2020-11-05 11:31:54 -05:00
add_launcher "c:\Program Files\undead_assault\Undead Assault.exe"
;;
2021-04-24 13:44:50 -04:00
"Villains From Beyond")
export bottle="oriol-gomez"
2021-04-24 13:44:50 -04:00
export winVer="win7"
install_wine_bottle speechsdk
2021-04-24 13:44:50 -04:00
download "http://oriolgomez.com/games/villains_en.zip"
unzip -d "$WINEPREFIX/drive_c/Program Files/villains from beyond" "${cache}/villains_en.zip"
find "${WINEPREFIX}" -type f -name "nvdaControllerClient32.dll" -exec rm -fv "{}" \;
2021-04-24 13:44:50 -04:00
add_launcher "c:\Program Files\villains from beyond\game.exe"
;;
2021-01-04 08:36:24 -05:00
"VIP Mud")
export winVer="win7"
install_wine_bottle vb6run dx8vb speechsdk
download "http://gmagames.com/vipmud20016.exe"
wine "${cache}/vipmud20016.exe" /silent
mkdir -p "${HOME}/.local/wine/vip-mud/drive_c/users/${USER}/Documents/VIP Mud"
add_launcher "c:\Program Files\VIPMud 2.0\vipmud2.exe"
echo
echo "When you first launch VIP Mud You will be presented with several inaccessible dialogs."
echo "To bypass these dialogs, press alt+o, then press enter until speech starts."
echo "To be sure that each new dialog has had time to complete, wait a second between each press of enter."
2021-01-04 12:31:18 -05:00
echo "In each subsequent launch, you will need to hit enter a couple times before it starts speaking."
2021-01-04 08:36:24 -05:00
;;
2021-06-26 01:37:04 -04:00
"Windows Attack")
get_installer "WA.exe" "https://drive.google.com/file/d/1BwKGLP37m-Z6nyKdo8LwmU9J1CEqfMb_/view?usp=drivesdk"
2021-06-26 01:37:04 -04:00
export winVer="win7"
install_wine_bottle speechsdk
cp "${cache}/WA.exe" "$WINEPREFIX/drive_c/Program Files/"
add_launcher "c:\Program Files\WA.exe"
;;
2020-12-25 16:16:55 -05:00
"World of War")
export winVer="win7"
install_wine_bottle speechsdk
download "https://www.agarchive.net/games/nyanchan/world%20of%20war%20English.7z"
7z e -o"$WINEPREFIX/drive_c/Program Files/World of War" "${cache}/world of war English.7z"
#add_launcher "c:\Program Files\"
;;
2021-02-19 12:58:11 -05:00
"Donate")
open_url "https://ko-fi.com/stormux"
;;
2020-09-01 18:29:07 -04:00
"Become a Patron")
2020-12-11 21:46:50 -05:00
open_url "https://patreon.com/stormux"
;;
2020-08-27 15:42:24 -04:00
*)
[[ -n "${game}" ]] && echo "Game \"${game}\" not found."
exit 1
2020-08-27 15:42:24 -04:00
;;
esac
exit 0