From 16e58d74d07369bc318ba8032587aae8cd2a3fc8 Mon Sep 17 00:00:00 2001 From: Michael Taboada Date: Thu, 6 Apr 2023 10:39:59 -0700 Subject: [PATCH 01/20] Add game Angel Gift --- audiogame-manager.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/audiogame-manager.sh b/audiogame-manager.sh index b2287ff..d3be52b 100755 --- a/audiogame-manager.sh +++ b/audiogame-manager.sh @@ -979,6 +979,7 @@ gameList=( "Adrian's Doom" "Adventurers At C" "Alien Outback" + "Angel Gift" "AudioDisc" "AudioQuake" "Battle of the Hunter" @@ -1280,6 +1281,12 @@ case "${game}" in wineserver -k # Damn you, dotnet. add_launcher "c:\Program Files\Draconis Entertainment\Alien Outback\ao.exe" ;; + "Angel Gift") + install_wine_bottle speechsdk +download "https://erion.cf/files/ag_103.zip" + unzip -d "$WINEPREFIX/drive_c/Program Files/Angel Gift" "$cache/ag_103.zip" + add_launcher 'c:\Program Files\Angel Gift\ag.exe' + ;; "AudioDisc") install_wine_bottle download "https://agarchive.net/games/other/audiodisc.zip" From 73c3396e11db3465b3cded2519c519ad908c98e9 Mon Sep 17 00:00:00 2001 From: stormdragon2976 Date: Sun, 16 Apr 2023 20:23:30 -0400 Subject: [PATCH 02/20] "Wave of the Undead" added, but commented because of problems with the installer. --- audiogame-manager.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/audiogame-manager.sh b/audiogame-manager.sh index d3be52b..b6dd29e 100755 --- a/audiogame-manager.sh +++ b/audiogame-manager.sh @@ -1166,6 +1166,7 @@ gameList=( "Villains From Beyond" "VIP Mud" "Warsim" + #"Wave of the Undead" #"Wolf Games Launcher" "World of War" ) @@ -3059,6 +3060,13 @@ export norh=false # Must install a voice, and rhvoice works easily with 64 bit. unzip -d "$WINEPREFIX/drive_c/Program Files/Warsim/" "${cache}/Warsim Full Game.zip" add_launcher "c:\Program Files\Warsim\Warsim.exe" ;; + "Wave of the Undead") + export winVer="win7" + download "https://www.dropbox.com/s/x5ap56yevvvxzdh/Wave%20Of%20The%20Undead%20Setup.exe?dl=1" + install_wine_bottle + wine "${cache}/Wave Of The Undead Setup.exe" + #add_launcher "c:\Program Files\" + ;; "Wolf Games Launcher") download "https://sightlesswolf.com/wg-release.zip" "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd64.dll" export WINEARCH=win64 From 7240f53cd5a323cd86fd731524d45e101780f3ba Mon Sep 17 00:00:00 2001 From: stormdragon2976 Date: Sun, 16 Apr 2023 23:42:05 -0400 Subject: [PATCH 03/20] Updated the Wave of the Undead installer. It works now, but no speech. --- audiogame-manager.sh | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/audiogame-manager.sh b/audiogame-manager.sh index b6dd29e..7c99ada 100755 --- a/audiogame-manager.sh +++ b/audiogame-manager.sh @@ -3061,11 +3061,19 @@ export norh=false # Must install a voice, and rhvoice works easily with 64 bit. add_launcher "c:\Program Files\Warsim\Warsim.exe" ;; "Wave of the Undead") + export WINEARCH=win64 export winVer="win7" - download "https://www.dropbox.com/s/x5ap56yevvvxzdh/Wave%20Of%20The%20Undead%20Setup.exe?dl=1" + download "https://www.dropbox.com/s/x5ap56yevvvxzdh/Wave%20Of%20The%20Undead%20Setup.exe?dl=1" "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd64.dll" install_wine_bottle - wine "${cache}/Wave Of The Undead Setup.exe" - #add_launcher "c:\Program Files\" + wine "${cache}/Wave Of The Undead Setup.exe" & + xdotool sleep 20 key Alt+n sleep 2 key Alt+n sleep 2 key Alt+n + xdotool sleep 2 key Alt+i + xdotool sleep 20 key Alt+n + xdotool sleep 2 key space + xdotool sleep 2 key Alt+f + wineserver -w + find "${WINEPREFIX}" -type f -name 'nvdaControllerClient64.dll' -exec cp -v "${cache}/nvda2speechd64.dll" "{}" \; + add_launcher "c:\Program Files (x86)\Wave Of The Undead\Wave Of The Undead.exe" ;; "Wolf Games Launcher") download "https://sightlesswolf.com/wg-release.zip" "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd64.dll" From 59dd9ae9cd3e923009ee7e5619b1d9174a3d48f6 Mon Sep 17 00:00:00 2001 From: Michael Taboada Date: Wed, 19 Apr 2023 14:57:25 -0700 Subject: [PATCH 04/20] Fix crackling sound in the great toy robbery when you went farther north. --- audiogame-manager.sh | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/audiogame-manager.sh b/audiogame-manager.sh index 7c99ada..b31d6f0 100755 --- a/audiogame-manager.sh +++ b/audiogame-manager.sh @@ -901,6 +901,9 @@ game_launcher() { # switch to wine64 for 64 bit prefix. [[ "${wine}" == "wine" ]] && export wine="wine64" fi + if [[ "$game" =~ the-great-toy-robbery ]] ; then + pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd & + fi ${wine:-wine} start /d "${winePath}" "$wineExec" /realtime fi exit 0 @@ -2886,10 +2889,10 @@ EOF "The Great Toy Robbery") export bottle="l-works" export winVer="win7" - install_wine_bottle speechsdk - download "http://files.l-works.net/tgtrsetup_2.04.exe" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient32.dll" + install_wine_bottle dsound directmusic + download "http://files.l-works.net/tgtrsetup_2.04.exe" "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd32.dll" wine "${cache}/tgtrsetup_2.04.exe" /silent - find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvdaControllerClient32.dll" "{}" \; + find "${WINEPREFIX}/drive_c/Program Files/Lworks/The Great Toy Robbery" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvda2speechd32.dll" "{}" \; add_launcher "c:\Program Files\Lworks\The Great Toy Robbery\tgtr.exe" ;; "The Vale") From 8626ad99643a7abc06f1ce0f289d879f9f0eb3cd Mon Sep 17 00:00:00 2001 From: stormdragon2976 Date: Sun, 30 Apr 2023 23:19:30 -0400 Subject: [PATCH 05/20] Set-voice.sh has been updated so that it can be completely controled with command line flags. I always hate messing around with this script, so please watch for and report bugs. --- speech/set-voice.sh | 126 +++++++++++++++++++++++++++++++------------- 1 file changed, 89 insertions(+), 37 deletions(-) diff --git a/speech/set-voice.sh b/speech/set-voice.sh index f76013a..4150d69 100755 --- a/speech/set-voice.sh +++ b/speech/set-voice.sh @@ -1,8 +1,6 @@ #!/usr/bin/env bash # Set Voice # Set the default wine voice ba$sed on installed options. -# Rate can be specified as a numeric argument to this script, 1 through 9. -# The default rate is 7 # # â– The contents of this file are subject to the Common Public Attribution @@ -44,6 +42,19 @@ #--code-- +help() { + 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" + echo -e "Usage:\n" + echo "With no arguments, open the game launcher." + for i in "${!command[@]}" ; do + echo "-${i/:/ }: ${command[${i}]}" + done | sort + exit 0 +} + + # Set a variable to make mac compatibility easier... sed="sed" grep="grep" @@ -61,29 +72,15 @@ export WINEDEBUG="-all" if [ -z "$DISPLAY" ] ; then export DISPLAY=:0 fi +# handle arguments +declare -A command=( + [b:]="the wine bottle to use." + [h]="This help screen." + [r:]="Specify voice rate, default is 7, options are 0-9 or A for fastest." + [v:]="Voice name, the voice to use, same as in the menu." +) -# Get the desired wine bottle -declare -a bottle -for i in $(find ~/.local/wine/ -maxdepth 1 -type d -not -name 'wine' | sort) ; do - bottle+=("$i" "${i##*/}") - done -export WINEPREFIX="$(dialog --backtitle "Use the up and down arrow keys to find the option you want, then press enter to select it." \ - --clear \ - --no-tags \ - --menu "Select A Wine Bottle" 0 0 0 "${bottle[@]}" --stdout)" - -if [[ -z "${WINEPREFIX}" ]]; then - exit 0 -fi - -# Get wine version if available -if [[ -r "${WINEPREFIX}/agm.conf" ]]; then - source "${WINEPREFIX}/agm.conf" - export WINE - export WINESERVER -fi -wine="${WINE:-$(command -v wine)}" msgbox() { # Returns: None @@ -143,7 +140,8 @@ set_voice() { local fullVoice local counter=0 for x in "${voiceList[@]}" ; do - [ "$x" = "$tmp" ] && break + echo "$x == $tmp" + [[ "$x" = "$tmp" ]] && break counter=$(( $counter + 1 )) done local RHVoiceName="$(find "${WINEPREFIX}/drive_c/ProgramData/Olga Yakovleva/RHVoice/data/voices/" -maxdepth 1 -type d)" @@ -153,7 +151,7 @@ set_voice() { ${wine}server -k # If we don't do this it's likely wine will overwrite our reverted change or even clobber the registry key entirely # Remove any existing rate change for voices $sed -i '/"DefaultTTSRate"=dword:/d' "${WINEPREFIX}/user.reg" - $sed -i -E -e 's/"DefaultTokenId"="HKEY_LOCAL_MACHINE\\\\(SOFTWARE|Software)\\\\(Wow6432Node\\\\|)Microsoft\\\\Speech\\\\Voices\\\\Token(Enum|)s\\\\[^"]+"/"DefaultTokenId"="HKEY_LOCAL_MACHINE\\\\'"${fullVoice//\\/\\\\}"'"\n"DefaultTTSRate"=dword:0000000'${2:-7}'/g' "${WINEPREFIX}/user.reg" + $sed -i -E -e 's/"DefaultTokenId"="HKEY_LOCAL_MACHINE\\\\(SOFTWARE|Software)\\\\(Wow6432Node\\\\|)Microsoft\\\\Speech\\\\Voices\\\\Token(Enum|)s\\\\[^"]+"/"DefaultTokenId"="HKEY_LOCAL_MACHINE\\\\'"${fullVoice//\\/\\\\}"'"\n"DefaultTTSRate"=dword:0000000'${rate:-7}'/g' "${WINEPREFIX}/user.reg" } test_voice() { @@ -183,6 +181,58 @@ EOF doRestore=1 trap restore_voice SIGINT +# Convert the keys of the command associative array to a format usable by getopts +args="${!command[*]}" +args="${args//[[:space:]]/}" +while getopts "${args}" i ; do + case "$i" in + b) + if ! [[ -d ~/".local/wine/${OPTARG}" ]]; then + echo "Invalid wine bottle specified." + exit 1 + fi + export bottle=~/".local/wine/${OPTARG}" + export WINEPREFIX=~/".local/wine/${OPTARG}" + ;; + h) help;; + r) + if ! [[ "${OPTARG}" =~ ^[0-9A]$ ]]; then + echo "Invalid rate specified. Arguments must be 0-9 or A." + exit 1 + fi + rate="${OPTARG}" + ;; + v) voice="${OPTARG}";; + esac +done + + +# Get the desired wine bottle + +# Offer a list of wine bottles if one isn't specified on the command line. +if [[ -z "${bottle}" ]]; then + declare -a bottle + for i in $(find ~/.local/wine/ -maxdepth 1 -type d -not -name 'wine' | sort) ; do + bottle+=("$i" "${i##*/}") + done + export WINEPREFIX="$(dialog --backtitle "Use the up and down arrow keys to find the option you want, then press enter to select it." \ + --clear \ + --no-tags \ + --menu "Select A Wine Bottle" 0 0 0 "${bottle[@]}" --stdout)" +fi + +if [[ -z "${WINEPREFIX}" ]]; then + exit 0 +fi + +# Get wine version if available +if [[ -r "${WINEPREFIX}/agm.conf" ]]; then + source "${WINEPREFIX}/agm.conf" + export WINE + export WINESERVER +fi +wine="${WINE:-$(command -v wine)}" + # In case the user hasn't run a game using sapi in this prefix yet, let's try to initialize all the registry keys properly. cat << "EOF" > "${bottle}/drive_c/windows/temp/speak.vbs" dim speechobject @@ -203,20 +253,22 @@ done oldVoice="$($grep -P '"DefaultTokenId"="HKEY_LOCAL_MACHINE\\\\(SOFTWARE|Software)\\\\(Wow6432Node\\\\|)Microsoft\\\\Speech\\\\Voices\\\\Token(Enum|)s\\\\[^"]+"' "${WINEPREFIX}/user.reg" | $sed -E -e 's/"DefaultTokenId"="([^"]+)"/\1/g')" exit=1 if [[ "${#voiceList[@]}" -eq 0 ]]; then -dialog --msgbox "No voices found." -1 -1 -exit 1 + dialog --msgbox "No voices found." -1 -1 + exit 1 fi while [[ $exit -ne 0 ]] ; do -voice="$(menulist "${voiceList[@]}")" + if [[ -z "${voice}" ]]; then + voice="$(menulist "${voiceList[@]}")" + fi -case $? in - 0) - set_voice "$voice" "$1" ; exit=0 ;; - 3) - test_voice "$voice";; - *) - restore_voice ; exit=0 ;; -esac -done + case $? in + 0) + set_voice "$voice" "${rate:-7}" ; exit=0 ;; + 3) + test_voice "$voice";; + *) + restore_voice ; exit=0 ;; + esac + done exit 0 From 8161157aef1b4a7bf1ac66fb3b871d921de528a9 Mon Sep 17 00:00:00 2001 From: stormdragon2976 Date: Mon, 1 May 2023 00:08:22 -0400 Subject: [PATCH 06/20] Added the ability to set the default voice for the wine bottle when the game is installed. This can be done with flags at the time of install, see -h for instructions, or in the configuration file which is also covered with the -h flag. --- audiogame-manager.sh | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/audiogame-manager.sh b/audiogame-manager.sh index b31d6f0..4a504cc 100755 --- a/audiogame-manager.sh +++ b/audiogame-manager.sh @@ -422,6 +422,8 @@ help() { echo "norh=\"true\" # Do not install RHVoice." echo "redownload=\"true\" # Redownload sources, do not use the version stored in cache." echo "rhvoice=\"voicename\" # Select the voice to be installed (default Bdl)." + echo "defaultVoice=\"voicename\" # Select the default voice to use for the bottle, e.g. MSMike or RHVoice." + echo "defaultRate=\"Default voice rate for the bottle, default 7, may not work in all games. Values 1-9 or A." echo "winedebug=\"flag(s)\" # Set wine debug flags, useful for development." exit 0 } @@ -537,6 +539,11 @@ install_rhvoice() { return fi if [[ "$norh" == "true" ]]; then + # Try to prevent the user from breaking speech + # Also useful for games that do not work with RHVoice + if [[ "${defaultVoice}" == "RHVoice" ]]; then + unset defaultVoice + fi return fi declare -A RHVoice=( @@ -609,6 +616,11 @@ install_wine_bottle() { # make it easy for game scripts to know which version of wine to use. echo "WINE=\"${WINE}\"" > "$HOME/.local/wine/${bottle}/agm.conf" echo "WINESERVER=\"${WINESERVER}\"" >> "$HOME/.local/wine/${bottle}/agm.conf" + # If default voice is set, change it for the bottle + if [[ -n "${defaultVoice}" ]]; then + echo "Setting default voice for bottle \"${bottle}\" to \"${defaultVoice}\"." + "${0%/*}/speech/set-voice.sh" -b "${bottle}" -r "${defaultRate:-7}" -v "${defaultVoice}" + fi } @@ -1206,8 +1218,10 @@ declare -A command=( [q]="No qjoypad. Does not launch qjoypad if it is detected." [R]="Redownload. Removes old versions of packages from cache before installing." [r]="Remove a game. This will delete all game data." + [S:]="Speech rate. Requires -V voice name, the default is 7. Values 0-9 or A." [t]="Total games. Show how many games are currently available." [v:]="Select the voice to be installed, default is Bdl." + [V:]="Select the default voice for a bottle." ) # Convert the keys of the associative array to a format usable by getopts @@ -1238,12 +1252,14 @@ while getopts "${args}" i ; do game_launcher;; R) redownload="true";; r) game_removal;; + S) defaultRate="${OPTARG}";; t) dialog --backtitle "Audiogame Manager" \ --infobox "There are currently ${#gameList[@]} games available." -1 -1 exit 0 ;; v) voiceName="${OPTARG}";; + V) defaultVoice="${OPTARG}";; esac done From 1919fdd8ed6514cd0aa13d49f9f28bf9b481ef91 Mon Sep 17 00:00:00 2001 From: stormdragon2976 Date: Mon, 1 May 2023 00:13:46 -0400 Subject: [PATCH 07/20] Updated the README. --- README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/README.md b/README.md index e7f1359..8a27263 100644 --- a/README.md +++ b/README.md @@ -33,3 +33,16 @@ If the layout is not us, and if you are having some problems with keys not worki When you are done with the game, switch back to your original layout so things will work as expected. The following example will switch your keyboard back to the Czech layout. setxkbmap cz + + +## Default Voice + +Check help for flags and configuration file options. + + ./audiogame-manager.sh -h + +Voice names used must exactly match the way they appear in the set-voice.sh menu. Here are a few examples. + +- MSMike +- MSSam +- RHVoice From bd70fd8c5676927dadd9dbe64cb3ddb9e88f601d Mon Sep 17 00:00:00 2001 From: stormdragon2976 Date: Mon, 1 May 2023 00:26:22 -0400 Subject: [PATCH 08/20] Changed the help text for location of configuration file so it is more clear and easier to copy the path. --- audiogame-manager.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/audiogame-manager.sh b/audiogame-manager.sh index 4a504cc..9cc6f94 100755 --- a/audiogame-manager.sh +++ b/audiogame-manager.sh @@ -414,7 +414,8 @@ help() { done | sort echo echo "Some settings that are often used can be stored in a settings.conf file." - echo "If wanted, place it at ${configFile%/*}/settings.conf." + echo "If wanted, place it at the following location:" + echo "${configFile%/*}/settings.conf" echo "The syntax is variable=\"value\"" echo echo "noCache=\"true\" # Do not keep downloaded items in the cache." From cf85fef82821b809c966916c0916f4071a9eeb85 Mon Sep 17 00:00:00 2001 From: stormdragon2976 Date: Mon, 1 May 2023 02:23:50 -0400 Subject: [PATCH 09/20] Only attempt to set default voice for the bottle if speechsdk or sapi gets installed. --- audiogame-manager.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/audiogame-manager.sh b/audiogame-manager.sh index 9cc6f94..d5e68a7 100755 --- a/audiogame-manager.sh +++ b/audiogame-manager.sh @@ -618,7 +618,7 @@ install_wine_bottle() { echo "WINE=\"${WINE}\"" > "$HOME/.local/wine/${bottle}/agm.conf" echo "WINESERVER=\"${WINESERVER}\"" >> "$HOME/.local/wine/${bottle}/agm.conf" # If default voice is set, change it for the bottle - if [[ -n "${defaultVoice}" ]]; then + if [[ -n "${defaultVoice}" ]] && [[ "${*}" =~ (speechsdk|sapi) ]]; then echo "Setting default voice for bottle \"${bottle}\" to \"${defaultVoice}\"." "${0%/*}/speech/set-voice.sh" -b "${bottle}" -r "${defaultRate:-7}" -v "${defaultVoice}" fi From b79c72314b06b9bc135657f413b4b730e8e49168 Mon Sep 17 00:00:00 2001 From: stormdragon2976 Date: Mon, 1 May 2023 02:40:50 -0400 Subject: [PATCH 10/20] Forgot to remove debug statement. --- speech/set-voice.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/speech/set-voice.sh b/speech/set-voice.sh index 4150d69..0d9ef85 100755 --- a/speech/set-voice.sh +++ b/speech/set-voice.sh @@ -140,7 +140,6 @@ set_voice() { local fullVoice local counter=0 for x in "${voiceList[@]}" ; do - echo "$x == $tmp" [[ "$x" = "$tmp" ]] && break counter=$(( $counter + 1 )) done From 5f03df41f83e0efaba5ad33ecabf0de2e3e53e20 Mon Sep 17 00:00:00 2001 From: stormdragon2976 Date: Mon, 1 May 2023 20:10:40 -0400 Subject: [PATCH 11/20] Fixed an error in the -h help text. --- audiogame-manager.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/audiogame-manager.sh b/audiogame-manager.sh index d5e68a7..7afb3fd 100755 --- a/audiogame-manager.sh +++ b/audiogame-manager.sh @@ -422,7 +422,7 @@ help() { echo "noqjoypad=\"true\" # Do not launch qjoypad." echo "norh=\"true\" # Do not install RHVoice." echo "redownload=\"true\" # Redownload sources, do not use the version stored in cache." - echo "rhvoice=\"voicename\" # Select the voice to be installed (default Bdl)." + echo "voiceName=\"voicename\" # Select the voice to be installed (default Bdl)." echo "defaultVoice=\"voicename\" # Select the default voice to use for the bottle, e.g. MSMike or RHVoice." echo "defaultRate=\"Default voice rate for the bottle, default 7, may not work in all games. Values 1-9 or A." echo "winedebug=\"flag(s)\" # Set wine debug flags, useful for development." @@ -1221,7 +1221,7 @@ declare -A command=( [r]="Remove a game. This will delete all game data." [S:]="Speech rate. Requires -V voice name, the default is 7. Values 0-9 or A." [t]="Total games. Show how many games are currently available." - [v:]="Select the voice to be installed, default is Bdl." + [v:]="Select the voice to be installed, default is Bdl. Options are alan, bdl, clb, or slt." [V:]="Select the default voice for a bottle." ) From d3bb2c58a87665c4c046f35e938434afea8981f7 Mon Sep 17 00:00:00 2001 From: stormdragon2976 Date: Fri, 12 May 2023 18:16:13 -0400 Subject: [PATCH 12/20] Started work on supporting the new Survive the Wild version. It is commented for now, because no speech. I'm really going to have to work on the tolk.dll problem at some point. --- audiogame-manager.sh | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/audiogame-manager.sh b/audiogame-manager.sh index 7afb3fd..355fc8f 100755 --- a/audiogame-manager.sh +++ b/audiogame-manager.sh @@ -1159,7 +1159,7 @@ gameList=( "Super Egg Hunt" "Super Liam" "Super Mario Bros" - "Survive the Wild" + #"Survive the Wild" "Swamp" "Tactical Battle" "Technoshock" @@ -2830,11 +2830,12 @@ EOF add_launcher "c:\Program Files\Super Mario Bros\Mario.exe" ;; "Survive the Wild") + export WINEARCH=win64 export winVer="win7" - install_wine_bottle speechsdk - download "http://www.samtupy.com/games/stw.zip" + install_wine_bottle + download "https://stw.samtupy.com/files/stw.zip" "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd64.dll" "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd32.dll" unzip -d "$WINEPREFIX/drive_c/Program Files/Survive the Wild" "${cache}/stw.zip" - find "${WINEPREFIX}" -type f -name "nvdaControllerClient32.dll" -exec rm -fv "{}" \; + find "${WINEPREFIX}" -type f -name 'nvdaControllerClient64.dll' -exec cp -v "${cache}/nvda2speechd64.dll" "{}" \; add_launcher "c:\Program Files\Survive the Wild\stw.exe" ;; "Swamp") From c8c1e626639fc03a55965cb2469e8dc3cf8fcd6e Mon Sep 17 00:00:00 2001 From: Michael Taboada Date: Fri, 12 May 2023 15:23:42 -0700 Subject: [PATCH 13/20] Fix random space that appeared in the middle of triple triad. --- audiogame-manager.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/audiogame-manager.sh b/audiogame-manager.sh index 355fc8f..d19e524 100755 --- a/audiogame-manager.sh +++ b/audiogame-manager.sh @@ -312,7 +312,7 @@ get_bottle() { "puzzle-divided"*) ;& "revelation"*) ;& "swamp"*) ;& - "triple -triad"*) + "triple-triad"*) install_wine "7.7" "32" export WINEPREFIX="${HOME}/.local/wine/aprone" ;; "bg-"*) export WINEPREFIX="${HOME}/.local/wine/bg";; From adfa7d64acc2f07aa63185eefbf34c4cd2249ef7 Mon Sep 17 00:00:00 2001 From: stormdragon2976 Date: Sat, 13 May 2023 20:31:14 -0400 Subject: [PATCH 14/20] More work on Survive the Wild. Thanks Celtichawk for help with the instructions. --- audiogame-manager.sh | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/audiogame-manager.sh b/audiogame-manager.sh index d19e524..a169036 100755 --- a/audiogame-manager.sh +++ b/audiogame-manager.sh @@ -1159,7 +1159,7 @@ gameList=( "Super Egg Hunt" "Super Liam" "Super Mario Bros" - #"Survive the Wild" + "Survive the Wild" "Swamp" "Tactical Battle" "Technoshock" @@ -2831,12 +2831,17 @@ EOF ;; "Survive the Wild") export WINEARCH=win64 - export winVer="win7" + export winVer="win8" install_wine_bottle download "https://stw.samtupy.com/files/stw.zip" "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd64.dll" "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd32.dll" unzip -d "$WINEPREFIX/drive_c/Program Files/Survive the Wild" "${cache}/stw.zip" find "${WINEPREFIX}" -type f -name 'nvdaControllerClient64.dll' -exec cp -v "${cache}/nvda2speechd64.dll" "{}" \; add_launcher "c:\Program Files\Survive the Wild\stw.exe" + echo "When the game first launches, press enter to select English." + echo "Press alt+a to accept the license agreement." + echo "Press alt+a to accept the game rules." + echo "Press enter repeatedly until you hear the game logo." + alert ;; "Swamp") export version="7.7" From a6e70863e7f61a7440345a57a8dfa71a2bf542a9 Mon Sep 17 00:00:00 2001 From: Michael Taboada Date: Wed, 24 May 2023 07:09:14 -0700 Subject: [PATCH 15/20] Add battlefield 2d, by tunmi13, and moved haunted party and battlefield 2d to a 64bit tunmi13 bottle. Also added clashes of the sky, though I've been unable to test it because speechsdk refuses to install. --- audiogame-manager.sh | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/audiogame-manager.sh b/audiogame-manager.sh index a169036..a9933ad 100755 --- a/audiogame-manager.sh +++ b/audiogame-manager.sh @@ -352,7 +352,11 @@ get_bottle() { "PBGames TMP") export WINEPREFIX="$HOME/.local/wine/pbgames" ;; # tunmi13 games group "battle-of-the-hunter"*) ;& + "clashes-of-the-sky"*) ;& "challenge-of-the-horse"*) export WINEPREFIX="${HOME}/.local/wine/tunmi13";; + # tunmi13-64bit games group + "battlefield-2d"*) ;& + "haunted-party"*) export WINEPREFIX="${HOME}/.local/wine/tunmi13-64bit";; # Dan Z games group "lost"*) ;& "maze-craze"*) ;& @@ -998,6 +1002,7 @@ gameList=( "Angel Gift" "AudioDisc" "AudioQuake" + "Battlefield 2D" "Battle of the Hunter" "Battle Zone" #"Beatstar Pro" @@ -1062,6 +1067,7 @@ gameList=( #"Chopper Challenge" #"Christmas Chaos" "Christmas WhoopAss" + "Clashes of the Sky" "Code Dungeon" "Coin Collector" #"Constant Battle" @@ -1325,6 +1331,17 @@ download "https://erion.cf/files/ag_103.zip" echo "After you launch the game, press tab then enter and it should begin speaking." alert ;; + "Battlefield 2D") + get_installer "bf.zip" "https://tunmi13.itch.io/battlefield-2d" + download "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd64.dll" + export WINEARCH=win64 + export winVer="win8" + export bottle=tunmi13-64bit + install_wine_bottle + unzip -d "$WINEPREFIX/drive_c/Program Files/" "${cache}/bf.zip" + find "${WINEPREFIX}/drive_c/Program Files/bf" -type f -name 'nvdaControllerClient64.dll' -exec cp -v "${cache}/nvda2speechd64.dll" "{}" \; + add_launcher "c:\Program Files\bf\bf.exe" + ;; "Battle of the Hunter") export bottle="tunmi13" export winVer="win7" @@ -1881,6 +1898,15 @@ download "https://erion.cf/files/ag_103.zip" wine "${cache}/christmas whoopass setup.exe" /sp- /silent add_launcher "c:\Program Files\Draconis Entertainment\Christmas Whoop Ass\wa.exe" ;; + "Clashes of the Sky") + get_installer "clashes_of_the_sky.zip" "https://tunmi13.itch.io/clashes-of-the-sky" + export bottle="tunmi13" + export winVer="win7" + install_wine_bottle speechsdk + unzip -d "$WINEPREFIX/drive_c/Program Files" "${cache}/clashes_of_the_sky.zip" + find "${WINEPREFIX}" -type f -name "nvdaControllerClient32.dll" -exec rm -fv "{}" \; + add_launcher 'c:\Program Files\clashes_of_the_sky\clash.exe' + ;; "Code Dungeon") get_installer "codedungeon-win-64.zip" "https://stealcase.itch.io/codedungeon" download "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd64.dll" @@ -2172,9 +2198,10 @@ download "https://erion.cf/files/ag_103.zip" download "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd64.dll" export WINEARCH=win64 export winVer="win8" + export bottle=tunmi13-64bit install_wine_bottle unzip -d "$WINEPREFIX/drive_c/Program Files/" "${cache}/hp.zip" - find "${WINEPREFIX}" -type f -name 'nvdaControllerClient64.dll' -exec cp -v "${cache}/nvda2speechd64.dll" "{}" \; + find "${WINEPREFIX}/drive_c/Program Files/hp" -type f -name 'nvdaControllerClient64.dll' -exec cp -v "${cache}/nvda2speechd64.dll" "{}" \; add_launcher "c:\Program Files\hp\hp.exe" ;; "Hearthstone") From 866db3565191807d56631625db6638036c7d33f3 Mon Sep 17 00:00:00 2001 From: stormdragon2976 Date: Fri, 26 May 2023 08:53:51 -0400 Subject: [PATCH 16/20] Some very experimental changes. Thanks to @bgtlover@linuxrocks.online we now have tolk support. This means that Survive the Wild works for the most part. Also, the game Christmas Chaos works too. There is a bit of a bug in the clipboard reader, but it only seems to show up during the forms in STW. I'll see what I can do about getting it fixed, but in the mean time, you may have a bit of trouble creating a new account. Please note that as the Tolk support improves, the way audiogame-manager interacts with it may also change. instructions will be provided if manual intervention is required. --- audiogame-manager.sh | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/audiogame-manager.sh b/audiogame-manager.sh index a9933ad..bcb2de1 100755 --- a/audiogame-manager.sh +++ b/audiogame-manager.sh @@ -825,6 +825,9 @@ game_launcher() { fi fi # for games that require custom scripts before launch or custom launch parameters + if [[ "$game" =~ christmas-chaos ]]; then + "${0%/*}/speech/clipboard_reader.sh" ChristmasChaos & + fi if [[ "$game" =~ dragon-pong ]]; then "${0%/*}/speech/speak_window_title.sh" DragonPong.exe & pushd "$(winepath "$winePath")" @@ -887,6 +890,9 @@ game_launcher() { if [[ "$game" =~ sketchbook ]]; then find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvdaControllerClient32.dll" "{}" \; fi + if [[ "$game" =~ survive-the-wild ]]; then + "${0%/*}/speech/clipboard_reader.sh" stw & + fi if [[ "$game" =~ audiodisc ]]; then wine "$winePath\\$wineExec" exit 0 @@ -1065,7 +1071,7 @@ gameList=( "Challenge of the Horse" "Chillingham" #"Chopper Challenge" - #"Christmas Chaos" + "Christmas Chaos" "Christmas WhoopAss" "Clashes of the Sky" "Code Dungeon" @@ -1886,10 +1892,10 @@ download "https://erion.cf/files/ag_103.zip" "Christmas Chaos") export WINEARCH=win64 export winVer="win7" - install_wine_bottle speechsdk - download "https://repo.accessiware.com/games/christmaschaos/ChristmasChaos.zip" "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd64.dll" + install_wine_bottle + download "https://repo.accessiware.com/games/christmaschaos/ChristmasChaos.zip" "https://stormgames.wolfe.casa/downloads/Tolk.dll" unzip -d "$WINEPREFIX/drive_c/Program Files" "${cache}/ChristmasChaos.zip" - find "${WINEPREFIX}" -type f -name 'nvdaControllerClient64.dll' -exec cp -v "${cache}/nvda2speechd64.dll" "{}" \; + find "${WINEPREFIX}" -type f -name 'Tolk.dll' -exec cp -v "${cache}/Tolk.dll" "{}" \; add_launcher "c:\Program Files\ChristmasChaos\ChristmasChaos.exe" ;; "Christmas WhoopAss") @@ -2860,9 +2866,9 @@ EOF export WINEARCH=win64 export winVer="win8" install_wine_bottle - download "https://stw.samtupy.com/files/stw.zip" "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd64.dll" "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd32.dll" + download "https://stw.samtupy.com/files/stw.zip" "https://stormgames.wolfe.casa/downloads/Tolk.dll" unzip -d "$WINEPREFIX/drive_c/Program Files/Survive the Wild" "${cache}/stw.zip" - find "${WINEPREFIX}" -type f -name 'nvdaControllerClient64.dll' -exec cp -v "${cache}/nvda2speechd64.dll" "{}" \; + find "${WINEPREFIX}" -type f -name 'Tolk.dll' -exec cp -v "${cache}/Tolk.dll" "{}" \; add_launcher "c:\Program Files\Survive the Wild\stw.exe" echo "When the game first launches, press enter to select English." echo "Press alt+a to accept the license agreement." From 953a029c94e3d96ba8acc4ad9105326e213b4bbb Mon Sep 17 00:00:00 2001 From: Michael Taboada Date: Fri, 26 May 2023 06:31:43 -0700 Subject: [PATCH 17/20] Fixed up survive the wild. It is officially working! --- audiogame-manager.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/audiogame-manager.sh b/audiogame-manager.sh index bcb2de1..0ea4696 100755 --- a/audiogame-manager.sh +++ b/audiogame-manager.sh @@ -891,7 +891,9 @@ game_launcher() { find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvdaControllerClient32.dll" "{}" \; fi if [[ "$game" =~ survive-the-wild ]]; then - "${0%/*}/speech/clipboard_reader.sh" stw & + cd "$(winepath -u "$winePath")" + wine "$winePath\\$wineExec" 2>/dev/null | spd-say -e -- + exit 0 fi if [[ "$game" =~ audiodisc ]]; then wine "$winePath\\$wineExec" From 87f2fd756c391fd96f2ac18cad328d237cd88a16 Mon Sep 17 00:00:00 2001 From: stormdragon2976 Date: Fri, 2 Jun 2023 20:27:26 -0400 Subject: [PATCH 18/20] New Tolk changes pushed. if you have the old Tolk in ~/.cache/audiogame-manager, delete it and the new version will be downloaded on the next install. You can either reinstall existing STW and Christmas Chaos, or download the new Tolk.dll from https://stormgames.wolfe.casa/downloads/Tolk.dll and replace the one in your current STW and Christmas Chaos bottles. --- audiogame-manager.sh | 8 -------- 1 file changed, 8 deletions(-) diff --git a/audiogame-manager.sh b/audiogame-manager.sh index 0ea4696..6937360 100755 --- a/audiogame-manager.sh +++ b/audiogame-manager.sh @@ -825,9 +825,6 @@ game_launcher() { fi fi # for games that require custom scripts before launch or custom launch parameters - if [[ "$game" =~ christmas-chaos ]]; then - "${0%/*}/speech/clipboard_reader.sh" ChristmasChaos & - fi if [[ "$game" =~ dragon-pong ]]; then "${0%/*}/speech/speak_window_title.sh" DragonPong.exe & pushd "$(winepath "$winePath")" @@ -890,11 +887,6 @@ game_launcher() { if [[ "$game" =~ sketchbook ]]; then find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvdaControllerClient32.dll" "{}" \; fi - if [[ "$game" =~ survive-the-wild ]]; then - cd "$(winepath -u "$winePath")" - wine "$winePath\\$wineExec" 2>/dev/null | spd-say -e -- - exit 0 - fi if [[ "$game" =~ audiodisc ]]; then wine "$winePath\\$wineExec" exit 0 From 88e3378f6a4007dc76fa06aa0c094d37efd52e0a Mon Sep 17 00:00:00 2001 From: stormdragon2976 Date: Sun, 4 Jun 2023 13:10:51 -0400 Subject: [PATCH 19/20] Game "Bounce Bounce" added. --- audiogame-manager.sh | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/audiogame-manager.sh b/audiogame-manager.sh index 6937360..f218cc9 100755 --- a/audiogame-manager.sh +++ b/audiogame-manager.sh @@ -1058,6 +1058,7 @@ gameList=( "Bokurano Daibouken 3" "Bombercats" "Bop It Emulator" + "Bounce Bounce" #"Breed Memorial" "Breu2 Shadow Hunt" "Castaways" @@ -1797,6 +1798,16 @@ download "https://erion.cf/files/ag_103.zip" 7z x -o"$WINEPREFIX/drive_c/Program Files/Bop It" "${cache}/BopItEmulator3.1PasswordIsBopIt.7z" -pBopIt add_launcher "c:\Program Files\Bop It\bop.exe" ;; + "Bounce Bounce") + export winVer="win7" + export WINEARCH=win64 + get_installer "bounce_bounce.rar" "https://kavyapriya.itch.io/bounce-bounce" + download "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd64.dll" + install_wine_bottle + unrar x "${cache}/bounce_bounce.rar" -op"$WINEPREFIX/drive_c/Program Files" + find "${WINEPREFIX}/drive_c/Program Files/bounce_bounce" -type f -name 'nvdaControllerClient64.dll' -exec cp -v "${cache}/nvda2speechd64.dll" "{}" \; + add_launcher "c:\Program Files\bounce_bounce\bounce.exe" + ;; "Breu2 Shadow Hunt") get_installer "breu2.zip" "https://breu.itch.io/shadowhunt" download "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd64.dll" From 0e8a15611afe440798647432af1066d34345deb6 Mon Sep 17 00:00:00 2001 From: stormdragon2976 Date: Mon, 12 Jun 2023 11:21:40 -0400 Subject: [PATCH 20/20] Added internal unix2dos so that the external program is no longer needed. --- audiogame-manager.sh | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/audiogame-manager.sh b/audiogame-manager.sh index f218cc9..337f4ec 100755 --- a/audiogame-manager.sh +++ b/audiogame-manager.sh @@ -215,12 +215,6 @@ checklist() { fi packageList+=("perl") packageList+=("sqlite") - 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 @@ -517,6 +511,18 @@ install_wine() { set +e } + +unix2dos() { + if [[ $# -eq 0 ]]; then + echo "Usage: unix2dos file(s)." + exit 1 + fi + for file in "${@}" ; do + sed -i 's/$/\r/' "${file}" + done +} + + winetricks() { # Report used packages to the winetricks maintainer so he knows they are being used. if ! [[ -e "${XDG_CACHE_HOME:-$HOME/.cache}/winetricks/track_usage" ]]; then @@ -2238,7 +2244,7 @@ download "https://erion.cf/files/ag_103.zip" mkdir -p "$WINEPREFIX/drive_c/Program Files/bsc-key-generator" 7z x -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!" + unix2dos "$WINEPREFIX/drive_c/Program Files/Hunter/config.dat" 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 @@ -3035,7 +3041,7 @@ export norh=false # Must install a voice, and rhvoice works easily with 64 bit. mkdir -p "$WINEPREFIX/drive_c/Program Files/bsc-key-generator" 7z x -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!" + unix2dos "$WINEPREFIX/drive_c/Program Files/Troopanum 2.0/config.dat" 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