From 2defc30671a1a9af4d44bfa557ecf0ebf6564aa6 Mon Sep 17 00:00:00 2001 From: Storm Dragon Date: Fri, 7 May 2021 02:40:28 -0400 Subject: [PATCH 1/8] Added game Revenge of the Undead. --- audiogame-manager.sh | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/audiogame-manager.sh b/audiogame-manager.sh index 33fa745..7d662a3 100755 --- a/audiogame-manager.sh +++ b/audiogame-manager.sh @@ -250,6 +250,8 @@ download() { for i in "${source[@]}" ; do local dest="${i##*/}" 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. test -e "${cache}/${dest}" && continue if ! wget -4 -O "${cache}/${dest}" "${i}" ; then @@ -530,8 +532,6 @@ game_launcher() { wine "$winePath\\$wineExec" exit 0 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 wine64 start /realtime /d "${winePath}" "$wineExec" else @@ -645,6 +645,7 @@ gameList=( "Perilous Hearts" "Pontes Kickups!" "Q9" + "Revenge of the Undead" "Rhythm Rage" #"River raiders" "RS Games" @@ -1181,6 +1182,14 @@ EOF wine "${cache}/q9_english_installer.exe" /silent 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") export winVer="win7" install_wine_bottle speechsdk From 38b0bd59fde69cf5d9fe4eb385f7ab8d53567824 Mon Sep 17 00:00:00 2001 From: Storm Dragon Date: Fri, 7 May 2021 15:26:03 -0400 Subject: [PATCH 2/8] Updated ROTU installer to match the new folder layout. --- audiogame-manager.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/audiogame-manager.sh b/audiogame-manager.sh index 7d662a3..1dfbf3d 100755 --- a/audiogame-manager.sh +++ b/audiogame-manager.sh @@ -1186,9 +1186,9 @@ EOF 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" + unzip -d "$WINEPREFIX/drive_c/Program Files/" "${cache}/rotu.zip" find "${WINEPREFIX}" -type f -name "nvdaControllerClient32.dll" -exec rm -fv "{}" \; - add_launcher "c:\Program Files\revenge of the undead\rotu.exe" + add_launcher "c:\Program Files\rotu\rotu.exe" ;; "Rhythm Rage") export winVer="win7" From f46732c5ac5fb6b6c08e49ff6374d97fcd39ee05 Mon Sep 17 00:00:00 2001 From: Storm Dragon Date: Fri, 7 May 2021 15:33:34 -0400 Subject: [PATCH 3/8] Revert "Updated ROTU installer to match the new folder layout." This reverts commit 38b0bd59fde69cf5d9fe4eb385f7ab8d53567824. --- audiogame-manager.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/audiogame-manager.sh b/audiogame-manager.sh index 1dfbf3d..7d662a3 100755 --- a/audiogame-manager.sh +++ b/audiogame-manager.sh @@ -1186,9 +1186,9 @@ EOF export winVer="win7" install_wine_bottle speechsdk download "https://ims-productions.com/downloads/rotu.zip" - unzip -d "$WINEPREFIX/drive_c/Program Files/" "${cache}/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\rotu\rotu.exe" + add_launcher "c:\Program Files\revenge of the undead\rotu.exe" ;; "Rhythm Rage") export winVer="win7" From 14488165cfcdd276c6ca3daa6de1d6a9d138257a Mon Sep 17 00:00:00 2001 From: Storm Dragon Date: Sat, 8 May 2021 12:18:27 -0400 Subject: [PATCH 4/8] Added update script for Revenge of the Undead. --- game-scripts/revenge-of-the-undead-update.sh | 49 ++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100755 game-scripts/revenge-of-the-undead-update.sh diff --git a/game-scripts/revenge-of-the-undead-update.sh b/game-scripts/revenge-of-the-undead-update.sh new file mode 100755 index 0000000..70ee8b0 --- /dev/null +++ b/game-scripts/revenge-of-the-undead-update.sh @@ -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" "${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 From 41f38896ccebd1dac316f5c2161e2dc460db9d4b Mon Sep 17 00:00:00 2001 From: Storm Dragon Date: Sat, 8 May 2021 12:24:51 -0400 Subject: [PATCH 5/8] Fixed a missing path problem in the update script for Revenge of the Undead. --- game-scripts/revenge-of-the-undead-update.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game-scripts/revenge-of-the-undead-update.sh b/game-scripts/revenge-of-the-undead-update.sh index 70ee8b0..90db87a 100755 --- a/game-scripts/revenge-of-the-undead-update.sh +++ b/game-scripts/revenge-of-the-undead-update.sh @@ -43,7 +43,7 @@ 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" "${cache}/rotu.zip" +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 From e258ed34508cc314857eef344e0896373235a8b1 Mon Sep 17 00:00:00 2001 From: Storm Dragon Date: Sun, 9 May 2021 10:04:25 -0400 Subject: [PATCH 6/8] Place holder for Shades of ?Doom 1.2. Currently, the game locks up when you try to enter a door. --- audiogame-manager.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/audiogame-manager.sh b/audiogame-manager.sh index 7d662a3..a842551 100755 --- a/audiogame-manager.sh +++ b/audiogame-manager.sh @@ -652,6 +652,7 @@ gameList=( "Run For Your Life" #"Sammy Center" "Sequence Storm" + #"Shades of Doom 1.2" "Shades of Doom" #"Silver Dollar" "Slender Lost Vision" @@ -1247,6 +1248,12 @@ EOF 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") export winVer="win7" install_wine_bottle vb6run dx8vb speechsdk From d2b611950241bf0175971476de53b287dca89d57 Mon Sep 17 00:00:00 2001 From: Storm Dragon Date: Mon, 10 May 2021 13:38:30 -0400 Subject: [PATCH 7/8] Added -P flag to show a list of packages required by audiogame-manager. --- audiogame-manager.sh | 51 ++++++++++++++++++++++++++++++++------------ 1 file changed, 37 insertions(+), 14 deletions(-) diff --git a/audiogame-manager.sh b/audiogame-manager.sh index a842551..06c52ba 100755 --- a/audiogame-manager.sh +++ b/audiogame-manager.sh @@ -148,71 +148,92 @@ EOF checklist() { declare -a errorList - echo "Checking your system..." - echo + declare -a packageList + if [[ $# -eq 0 ]]; then + echo "Checking your system..." + echo + fi if command -v wine &> /dev/null ; then - echo "Wine is installed." + [[ $# -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 - echo "Winetricks is installed." + [[ $# -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 wget &> /dev/null ; then - echo "Wget is installed." + [[ $# -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") if command -v dialog &> /dev/null ; then - echo "Dialog is installed." + [[ $# -eq 0 ]] && echo "Dialog is installed." 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 if command -v $i &> /dev/null ; then - echo "${i^} is installed." + [[ $# -eq 0 ]] && echo "${i^} is installed." else errorList+=("Critical: ${i^} is not installed. You will not be able to install some games or their components.") fi + packageList+=("$i") done if command -v gawk &> /dev/null ; then - echo "Gawk is installed." + [[ $# -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 - echo "Ocrdesktop is installed." + [[ $# -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") if command -v qjoypad &> /dev/null ; then - echo "Qjoypad is installed." + [[ $# -eq 0 ]] && echo "Qjoypad is installed." else errorList+=("Warning: qjoypad is not installed. Qjoypad allows you to play keyboard only games with a gamepad.") fi + packageList+=("qjoypad") if command -v unix2dos &> /dev/null ; then - echo "Dos2unix is installed." + [[ $# -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 - echo "W3m is installed." + [[ $# -eq 0 ]] && echo "W3m is installed." else errorList+=("Warning: w3m is not installed. W3m is used to view game documentation.") fi + packageList+=("w3m") if command -v xclip &> /dev/null ; then - echo "Xclip is installed." + [[ $# -eq 0 ]] && echo "Xclip is installed." else errorList+=("Warning: Xclip is not installed. Some games may not speak or register properly.") fi + packageList+=("xclip") if command -v xdotool &> /dev/null ; then - echo "Xdotool is installed." + [[ $# -eq 0 ]] && echo "Xdotool is installed." else errorList+=("Warning: Xdotool is not installed. Some installers may not work or may need manual intervention.") 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 @@ -695,6 +716,7 @@ declare -A command=( [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." [r]="Remove a game. This will delete all game data." ) @@ -718,6 +740,7 @@ while getopts "${args}" i ; do L) license;; l) game_launcher "${OPTARG}";; N) noCache="true";; + P) checklist quiet;; r) game_removal;; esac done From ff5ee8a6113291c292e02dc7a6b5d15fdc068149 Mon Sep 17 00:00:00 2001 From: Storm Dragon Date: Mon, 10 May 2021 18:01:10 -0400 Subject: [PATCH 8/8] Disabled Golden Cryon until the data breach issues are resolved. --- audiogame-manager.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/audiogame-manager.sh b/audiogame-manager.sh index 06c52ba..31f9e50 100755 --- a/audiogame-manager.sh +++ b/audiogame-manager.sh @@ -642,7 +642,7 @@ gameList=( "Finger Panic" "Fuck That Bird" "GMA Tank Commander" - "Golden Crayon" + #"Golden Crayon" "Hammer of Glory" "Hunter" "Insect Therapy"