From 6bdf01a4c62db6d2fffa189c0f383a15c2571ada Mon Sep 17 00:00:00 2001 From: Storm Dragon Date: Tue, 11 May 2021 01:28:24 -0400 Subject: [PATCH 01/16] Added game Scrolling Battles (Your World) --- audiogame-manager.sh | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/audiogame-manager.sh b/audiogame-manager.sh index 31f9e50..50bf12f 100755 --- a/audiogame-manager.sh +++ b/audiogame-manager.sh @@ -672,6 +672,7 @@ gameList=( "RS Games" "Run For Your Life" #"Sammy Center" + "Scrolling Battles" "Sequence Storm" #"Shades of Doom 1.2" "Shades of Doom" @@ -1254,6 +1255,14 @@ EOF find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvdaControllerClient32.dll" "{}" \; add_launcher "c:\Program Files\Sam Tupy\SammyCenter\SammyCenter.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" + ;; "Sequence Storm") read -p "Make sure sequence-storm-win64.zip is available in either your Downloads or Desktop directory and press enter to continue." continue for i in ~/Downloads ~/Desktop ; do From 0e28266fe346406ca4835304417aa92c63b300a1 Mon Sep 17 00:00:00 2001 From: Storm Dragon Date: Wed, 12 May 2021 02:31:37 -0400 Subject: [PATCH 02/16] Added a quick and dirty script to download and optionally register voices from Cepstral.com. This is mostly untested, so only use if you know what you're doing. --- speech/install_cepstral.sh | 108 +++++++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100755 speech/install_cepstral.sh diff --git a/speech/install_cepstral.sh b/speech/install_cepstral.sh new file mode 100755 index 0000000..d36e2da --- /dev/null +++ b/speech/install_cepstral.sh @@ -0,0 +1,108 @@ +#!/usr/bin/env bash +# This script installs Cepstral voices for use with the audiogame-manager +# To purchase a license for a voice you like, visit https://cepstral.com + +# This script is released under the terms of the WTFPL: http://wtfpl.net +# Installer files are saved to ~/Downloads + + +# Dialog accessibility +export DIALOGOPTS='--no-lines --visit-items' +# Make sure display is set in case installed from console. +export DISPLAY="${DISPLAY:-:0}" + + +register() { + local v="${1##*Cepstral_}" + v="${v%%_*}" + company="$(dialog --inputbox "Company name (leave empty if none)" -1 -1 --stdout)" + customer="$(dialog --inputbox "Customer name" -1 -1)" || exit $? + key="$(dialog --inputbox "License key" -1 -1)" || exit $? + eval "wine \"c:\\Cepstral\\bin\\swift.exe\" --reg-voice --voice-name \"'$v'\" --customer-name \"'$customer'\" --company-name \"'$company'\" --license-key \"'$key'\"" + exit 0 +} + + +action="install" +declare -a voices=( + "https://www.cepstral.com/downloads/installers/windows/Cepstral_Allison_windows_6.2.3.801.exe" + "Allison" + "https://www.cepstral.com/downloads/installers/windows/Cepstral_Amy_windows_6.2.3.801.exe" + "Amy" + "https://www.cepstral.com/downloads/installers/windows/Cepstral_Belle_windows_6.2.3.801.exe" + "Belle" + "https://www.cepstral.com/downloads/installers/windows/Cepstral_Callie_windows_6.2.3.801.exe" + "Callie" + "https://www.cepstral.com/downloads/installers/windows/Cepstral_Charlie_windows_6.2.3.801.exe" + "Charlie" + "https://www.cepstral.com/downloads/installers/windows/Cepstral_Dallas_windows_6.2.3.801.exe" + "Dallas" + "https://www.cepstral.com/downloads/installers/windows/Cepstral_Damien_windows_6.2.3.801.exe" + "Damien" + "https://www.cepstral.com/downloads/installers/windows/Cepstral_David_windows_6.2.3.801.exe" + "David" + "https://www.cepstral.com/downloads/installers/windows/Cepstral_Diane_windows_6.2.3.801.exe" + "Diane" + "https://www.cepstral.com/downloads/installers/windows/Cepstral_Duchess_windows_6.2.3.801.exe" + "Duchess" + "https://www.cepstral.com/downloads/installers/windows/Cepstral_Duncan_windows_6.2.3.801.exe" + "Duncan" + "https://www.cepstral.com/downloads/installers/windows/Cepstral_Emily_windows_6.2.3.801.exe" + "Emily" + "https://www.cepstral.com/downloads/installers/windows/Cepstral_Linda_windows_6.2.3.801.exe" + "Linda" + "https://www.cepstral.com/downloads/installers/windows/Cepstral_Robin_windows_6.2.3.801.exe" + "Robin" + "https://www.cepstral.com/downloads/installers/windows/Cepstral_Shouty_windows_6.2.3.801.exe" + "Shouty" + "https://www.cepstral.com/downloads/installers/windows/Cepstral_Walter_windows_6.2.3.801.exe" + "Walter" + "https://www.cepstral.com/downloads/installers/windows/Cepstral_Whispery_windows_6.2.3.801.exe" + "Whispery" + "https://www.cepstral.com/downloads/installers/windows/Cepstral_William_windows_6.2.3.801.exe" + "William" +) + +# 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 + + +if [ "$1" == "-r" || "$1" == "--register" ]; then + action="register" +fi + +voice="$(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 voice to $action" 0 0 0 "${voices[@]}" --stdout)" + +if [ "$1" == "-r" || "$1" == "--register" ]; then + register $voice +fi + +# make sure the ~/Downloads directory exists. +mkdir -p ~/Downloads + +if ! [[ -e ~/Downloads/${voice##*/} ]]; then + wget -O ~/Downloads/${voice##*/} "$voice" | dialog --progressbox "Download voice..." -1 -1 +fi + +# Install the voice +(wine ~/Downloads/${voice##*/} & +xdotool sleep 20 key --delay 75 alt+n key --delay 75 alt+a key --delay 75 alt+n key --delay 75 alt+o key --delay 75 alt+i sleep 20 key --delay 75 alt+f +find "${WINEPREFIX}/drive_c/Program Files/Cepstral/voices" -type d -not -name voices -exec bash -c 'for d ; do echo "GAIN 2.5" > "$d/default.sfx";done' _ {} \;) | dialog --progressbox "installing voice..." -1 -1 + +exit 0 From 4cd94563eec90396af3d19bda4a1e7369d5a8754 Mon Sep 17 00:00:00 2001 From: Storm Dragon Date: Wed, 12 May 2021 02:49:51 -0400 Subject: [PATCH 03/16] Fixed some bugs in the --register option. --- speech/install_cepstral.sh | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/speech/install_cepstral.sh b/speech/install_cepstral.sh index d36e2da..c356598 100755 --- a/speech/install_cepstral.sh +++ b/speech/install_cepstral.sh @@ -15,9 +15,9 @@ export DISPLAY="${DISPLAY:-:0}" register() { local v="${1##*Cepstral_}" v="${v%%_*}" - company="$(dialog --inputbox "Company name (leave empty if none)" -1 -1 --stdout)" - customer="$(dialog --inputbox "Customer name" -1 -1)" || exit $? - key="$(dialog --inputbox "License key" -1 -1)" || exit $? + company="$(dialog --clear --inputbox "Company name (leave empty if none)" -1 -1 --stdout)" || exit $? + customer="$(dialog --clear --inputbox "Customer name" -1 -1 --stdout)" || exit $? + key="$(dialog --clear --inputbox "License key" -1 -1 --stdout)" || exit $? eval "wine \"c:\\Cepstral\\bin\\swift.exe\" --reg-voice --voice-name \"'$v'\" --customer-name \"'$customer'\" --company-name \"'$company'\" --license-key \"'$key'\"" exit 0 } @@ -80,7 +80,7 @@ if [[ -z "${WINEPREFIX}" ]]; then fi -if [ "$1" == "-r" || "$1" == "--register" ]; then +if [[ "$1" == "-r" || "$1" == "--register" ]]; then action="register" fi @@ -89,10 +89,11 @@ voice="$(dialog --backtitle "Use the up and down arrow keys to find the option y --no-tags \ --menu "Select A voice to $action" 0 0 0 "${voices[@]}" --stdout)" -if [ "$1" == "-r" || "$1" == "--register" ]; then +if [[ "$1" == "-r" || "$1" == "--register" ]]; then register $voice fi +exit 0 # make sure the ~/Downloads directory exists. mkdir -p ~/Downloads From bc532a5f0bdaa3bd6847d476e2eb1ae5d3527d41 Mon Sep 17 00:00:00 2001 From: Storm Dragon Date: Wed, 12 May 2021 03:01:35 -0400 Subject: [PATCH 04/16] Forgot to remove debugging stuff that stops the script from running. --- speech/install_cepstral.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/speech/install_cepstral.sh b/speech/install_cepstral.sh index c356598..7e6bf49 100755 --- a/speech/install_cepstral.sh +++ b/speech/install_cepstral.sh @@ -93,7 +93,6 @@ if [[ "$1" == "-r" || "$1" == "--register" ]]; then register $voice fi -exit 0 # make sure the ~/Downloads directory exists. mkdir -p ~/Downloads From b268683c01aaf40b88edbf546906177267ae99db Mon Sep 17 00:00:00 2001 From: Michael Taboada Date: Wed, 12 May 2021 00:50:33 -0700 Subject: [PATCH 05/16] Fix obscure error in set voice. --- speech/set-voice.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/speech/set-voice.sh b/speech/set-voice.sh index 91367bc..4712eac 100755 --- a/speech/set-voice.sh +++ b/speech/set-voice.sh @@ -52,7 +52,7 @@ export DIALOGOPTS='--insecure --no-lines --visit-items' # Get the desired wine bottle declare -a bottle -for i in $(find ~/.local/wine -maxdepth 1 -type d -not -name 'wine' | sort) ; do +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." \ From fe642e96fa5c38a04af0c5f2cd99c7870bab5af7 Mon Sep 17 00:00:00 2001 From: Michael Taboada Date: Wed, 12 May 2021 00:51:03 -0700 Subject: [PATCH 06/16] Somewhat rewrite install cepstral to be cleaner and more easily maintainable. --- speech/install_cepstral.sh | 63 ++++++++++++++++++++++---------------- 1 file changed, 36 insertions(+), 27 deletions(-) diff --git a/speech/install_cepstral.sh b/speech/install_cepstral.sh index 7e6bf49..10ecc49 100755 --- a/speech/install_cepstral.sh +++ b/speech/install_cepstral.sh @@ -10,11 +10,15 @@ export DIALOGOPTS='--no-lines --visit-items' # Make sure display is set in case installed from console. export DISPLAY="${DISPLAY:-:0}" - +# Version number, to easily keep script up-to-date. +version="6.2.3.801" +# Msi or exe? Some are different. +msiexe="exe" +# Beginning part of url, for making things easier. +prefix="https://www.cepstral.com/downloads/installers/windows/" register() { - local v="${1##*Cepstral_}" - v="${v%%_*}" + local v="$1" company="$(dialog --clear --inputbox "Company name (leave empty if none)" -1 -1 --stdout)" || exit $? customer="$(dialog --clear --inputbox "Customer name" -1 -1 --stdout)" || exit $? key="$(dialog --clear --inputbox "License key" -1 -1 --stdout)" || exit $? @@ -25,48 +29,48 @@ register() { action="install" declare -a voices=( - "https://www.cepstral.com/downloads/installers/windows/Cepstral_Allison_windows_6.2.3.801.exe" "Allison" - "https://www.cepstral.com/downloads/installers/windows/Cepstral_Amy_windows_6.2.3.801.exe" + "Allison" + "Amy" "Amy" - "https://www.cepstral.com/downloads/installers/windows/Cepstral_Belle_windows_6.2.3.801.exe" "Belle" - "https://www.cepstral.com/downloads/installers/windows/Cepstral_Callie_windows_6.2.3.801.exe" + "Belle" + "Callie" "Callie" - "https://www.cepstral.com/downloads/installers/windows/Cepstral_Charlie_windows_6.2.3.801.exe" "Charlie" - "https://www.cepstral.com/downloads/installers/windows/Cepstral_Dallas_windows_6.2.3.801.exe" + "Charlie" + "Dallas" "Dallas" - "https://www.cepstral.com/downloads/installers/windows/Cepstral_Damien_windows_6.2.3.801.exe" "Damien" - "https://www.cepstral.com/downloads/installers/windows/Cepstral_David_windows_6.2.3.801.exe" + "Damien" + "David" "David" - "https://www.cepstral.com/downloads/installers/windows/Cepstral_Diane_windows_6.2.3.801.exe" "Diane" - "https://www.cepstral.com/downloads/installers/windows/Cepstral_Duchess_windows_6.2.3.801.exe" + "Diane" + "Duchess" "Duchess" - "https://www.cepstral.com/downloads/installers/windows/Cepstral_Duncan_windows_6.2.3.801.exe" "Duncan" - "https://www.cepstral.com/downloads/installers/windows/Cepstral_Emily_windows_6.2.3.801.exe" + "Duncan" + "Emily" "Emily" - "https://www.cepstral.com/downloads/installers/windows/Cepstral_Linda_windows_6.2.3.801.exe" "Linda" - "https://www.cepstral.com/downloads/installers/windows/Cepstral_Robin_windows_6.2.3.801.exe" + "Linda" + "Robin" "Robin" - "https://www.cepstral.com/downloads/installers/windows/Cepstral_Shouty_windows_6.2.3.801.exe" "Shouty" - "https://www.cepstral.com/downloads/installers/windows/Cepstral_Walter_windows_6.2.3.801.exe" + "Shouty" + "Walter" "Walter" - "https://www.cepstral.com/downloads/installers/windows/Cepstral_Whispery_windows_6.2.3.801.exe" "Whispery" - "https://www.cepstral.com/downloads/installers/windows/Cepstral_William_windows_6.2.3.801.exe" + "Whispery" + "William" "William" ) # Get the desired wine bottle declare -a bottle -for i in $(find ~/.local/wine -maxdepth 1 -type d -not -name 'wine' | sort) ; do +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." \ @@ -89,20 +93,25 @@ voice="$(dialog --backtitle "Use the up and down arrow keys to find the option y --no-tags \ --menu "Select A voice to $action" 0 0 0 "${voices[@]}" --stdout)" -if [[ "$1" == "-r" || "$1" == "--register" ]]; then +if [[ "$action" == "register" ]]; then register $voice fi # make sure the ~/Downloads directory exists. mkdir -p ~/Downloads -if ! [[ -e ~/Downloads/${voice##*/} ]]; then - wget -O ~/Downloads/${voice##*/} "$voice" | dialog --progressbox "Download voice..." -1 -1 +if ! [[ -e ~/Downloads/Cepstral_${voice}_windows_${version}.${msiexe} ]]; then + wget -P ~/Downloads/ "${prefix}Cepstral_${voice}_windows_${version}.${msiexe}" | dialog --progressbox "Downloading voice..." -1 -1 fi +# Get the install command. +cmd="wine" +[ "$msiexe" = "msi" ] && cmd="${cmd} msiexec /i" +cmd="${cmd} ~/Downloads/Cepstral_${voice}_windows_${version}.${msiexe}" +[ "$msiexe" = "msi" ] && cmd="${cmd} /q" # Install the voice -(wine ~/Downloads/${voice##*/} & -xdotool sleep 20 key --delay 75 alt+n key --delay 75 alt+a key --delay 75 alt+n key --delay 75 alt+o key --delay 75 alt+i sleep 20 key --delay 75 alt+f +(eval "$cmd" & +[ "$msiexe" = "exe" ] && xdotool sleep 20 key --delay 75 alt+n key --delay 75 alt+a key --delay 75 alt+n key --delay 75 alt+o key --delay 75 alt+i sleep 20 key --delay 75 alt+f find "${WINEPREFIX}/drive_c/Program Files/Cepstral/voices" -type d -not -name voices -exec bash -c 'for d ; do echo "GAIN 2.5" > "$d/default.sfx";done' _ {} \;) | dialog --progressbox "installing voice..." -1 -1 exit 0 From 03d68d9acd82ae159e548ce98514852bec903fd2 Mon Sep 17 00:00:00 2001 From: Storm Dragon Date: Wed, 12 May 2021 04:24:49 -0400 Subject: [PATCH 07/16] fixed a couple more bugs in the install_cepstral script. It should be good to go now. --- speech/install_cepstral.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/speech/install_cepstral.sh b/speech/install_cepstral.sh index 10ecc49..f4b2219 100755 --- a/speech/install_cepstral.sh +++ b/speech/install_cepstral.sh @@ -22,7 +22,7 @@ register() { company="$(dialog --clear --inputbox "Company name (leave empty if none)" -1 -1 --stdout)" || exit $? customer="$(dialog --clear --inputbox "Customer name" -1 -1 --stdout)" || exit $? key="$(dialog --clear --inputbox "License key" -1 -1 --stdout)" || exit $? - eval "wine \"c:\\Cepstral\\bin\\swift.exe\" --reg-voice --voice-name \"'$v'\" --customer-name \"'$customer'\" --company-name \"'$company'\" --license-key \"'$key'\"" + eval "wine \"c:\\Program Files\\Cepstral\\bin\\swift.exe\" --reg-voice --voice-name \"$v\" --customer-name \"$customer\" --company-name \"$company\" --license-key \"$key\"" exit 0 } From e568f545710dc898e6a8fb2ff3035aea1ee19c69 Mon Sep 17 00:00:00 2001 From: Michael Taboada Date: Wed, 12 May 2021 01:43:30 -0700 Subject: [PATCH 08/16] Make sure wine has exitted before adding default.sfx --- speech/install_cepstral.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/speech/install_cepstral.sh b/speech/install_cepstral.sh index f4b2219..1fdbe30 100755 --- a/speech/install_cepstral.sh +++ b/speech/install_cepstral.sh @@ -112,6 +112,7 @@ cmd="${cmd} ~/Downloads/Cepstral_${voice}_windows_${version}.${msiexe}" # Install the voice (eval "$cmd" & [ "$msiexe" = "exe" ] && xdotool sleep 20 key --delay 75 alt+n key --delay 75 alt+a key --delay 75 alt+n key --delay 75 alt+o key --delay 75 alt+i sleep 20 key --delay 75 alt+f +wineserver -w find "${WINEPREFIX}/drive_c/Program Files/Cepstral/voices" -type d -not -name voices -exec bash -c 'for d ; do echo "GAIN 2.5" > "$d/default.sfx";done' _ {} \;) | dialog --progressbox "installing voice..." -1 -1 exit 0 From 084f24578a035396b3b92d53d07064a7fb922534 Mon Sep 17 00:00:00 2001 From: Michael Taboada Date: Wed, 12 May 2021 01:43:49 -0700 Subject: [PATCH 09/16] Fix issues with set voice if the user hasn't run a game using sapi in that prefix yet --- speech/set-voice.sh | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/speech/set-voice.sh b/speech/set-voice.sh index 4712eac..eefc37d 100755 --- a/speech/set-voice.sh +++ b/speech/set-voice.sh @@ -48,6 +48,12 @@ # Settings to improve accessibility of dialog. export DIALOGOPTS='--insecure --no-lines --visit-items' +# Turn off debug messages +export WINEDEBUG="-all" +# Set DISPLAY, as needed +if [ -z "$DISPLAY" ] ; then +export DISPLAY=:0 +fi # Get the desired wine bottle @@ -64,8 +70,6 @@ if [[ -z "${WINEPREFIX}" ]]; then exit 0 fi -echo "wineprefix = $WINEPREFIX" - msgbox() { # Returns: None # Shows the provided message on the screen with an ok button. @@ -171,6 +175,14 @@ EOF doRestore=1 trap restore_voice SIGINT +# 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" > /tmp/speak.vbs +dim speechobject +set speechobject=createobject("sapi.spvoice") +speechobject.speak "" +EOF +wine cscript "z:\tmp\speak.vbs" + # Create an array of available voices. ifs="$IFS" IFS=$'\n' @@ -189,9 +201,6 @@ if [[ "$(uname)" == "Darwin" ]]; then else oldVoice="$(grep -P '"DefaultTokenId"="HKEY_LOCAL_MACHINE\\\\(SOFTWARE|Software)\\\\(Wow6432Node\\\\|)Microsoft\\\\Speech\\\\Voices\\\\Tokens\\\\[^"]+"' "${WINEPREFIX}/user.reg" | sed -E -e 's/"DefaultTokenId"="([^"]+)"/\1/g')" fi -echo "oldVoice: ${oldVoice}" -echo "voiceList: ${voiceList[@]}" -echo "voiceListFullName: ${voiceListFullName[@]}" #exit 1 exit=1 while [[ $exit -ne 0 ]] ; do From b03aa4e750d90778287cc20d7d1408b711ea9332 Mon Sep 17 00:00:00 2001 From: Michael Taboada Date: Wed, 12 May 2021 09:22:08 -0700 Subject: [PATCH 10/16] Fix up install cepstral a little --- speech/install_cepstral.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/speech/install_cepstral.sh b/speech/install_cepstral.sh index 1fdbe30..2f971a5 100755 --- a/speech/install_cepstral.sh +++ b/speech/install_cepstral.sh @@ -8,6 +8,8 @@ # Dialog accessibility export DIALOGOPTS='--no-lines --visit-items' +# Turn off debug messages +export WINEDEBUG="-all" # Make sure display is set in case installed from console. export DISPLAY="${DISPLAY:-:0}" # Version number, to easily keep script up-to-date. @@ -112,7 +114,9 @@ cmd="${cmd} ~/Downloads/Cepstral_${voice}_windows_${version}.${msiexe}" # Install the voice (eval "$cmd" & [ "$msiexe" = "exe" ] && xdotool sleep 20 key --delay 75 alt+n key --delay 75 alt+a key --delay 75 alt+n key --delay 75 alt+o key --delay 75 alt+i sleep 20 key --delay 75 alt+f -wineserver -w -find "${WINEPREFIX}/drive_c/Program Files/Cepstral/voices" -type d -not -name voices -exec bash -c 'for d ; do echo "GAIN 2.5" > "$d/default.sfx";done' _ {} \;) | dialog --progressbox "installing voice..." -1 -1 +wineserver -w) | dialog --progressbox "installing voice..." -1 -1 + +# Make voices louder. +find "${WINEPREFIX}/drive_c/Program Files/Cepstral/voices" -type d -not -name voices -exec bash -c 'for d ; do echo "GAIN 2.5" > "$d/default.sfx";done' _ {} \; exit 0 From fc78c15ddf82c3ba2caf1774fe10dd3171ffb33a Mon Sep 17 00:00:00 2001 From: Storm Dragon Date: Wed, 12 May 2021 18:15:13 -0400 Subject: [PATCH 11/16] Golden Crayon re-enabled. Welcome back. --- audiogame-manager.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/audiogame-manager.sh b/audiogame-manager.sh index 50bf12f..0638fc3 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" From 4070edbb63decc7f677833f0cf081c9648c08195 Mon Sep 17 00:00:00 2001 From: Storm Dragon Date: Wed, 12 May 2021 18:55:08 -0400 Subject: [PATCH 12/16] Added game Breed memorial. It is not working currently. --- audiogame-manager.sh | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/audiogame-manager.sh b/audiogame-manager.sh index 0638fc3..b3d727b 100755 --- a/audiogame-manager.sh +++ b/audiogame-manager.sh @@ -622,6 +622,7 @@ gameList=( "Beatstar Pro" "Bloodshed" "Bombercats" + "Breed Memorial" "Castaways" "Castaways 2" #"Chopper Challenge" @@ -823,6 +824,14 @@ case "${game}" in find "${WINEPREFIX}" -type f -name "nvdaControllerClient32.dll" -exec rm -fv "{}" \; add_launcher "c:\Program Files\bomvercats\game.exe" ;; + "Breed Memorial") + export winVer="win7" + install_wine_bottle 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 From 61a894cdfc8243cd0bc6d7d6e8d2839ca791bcfe Mon Sep 17 00:00:00 2001 From: Storm Dragon Date: Thu, 13 May 2021 11:59:32 -0400 Subject: [PATCH 13/16] Update script added for Golden Crayon. --- game-scripts/golden-crayon-update.sh | 50 ++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100755 game-scripts/golden-crayon-update.sh diff --git a/game-scripts/golden-crayon-update.sh b/game-scripts/golden-crayon-update.sh new file mode 100755 index 0000000..27c7fcf --- /dev/null +++ b/game-scripts/golden-crayon-update.sh @@ -0,0 +1,50 @@ +#!/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. + +pushd ~/.local/wine/golden-crayon/drive_c/Program\ Files/golden_crayon/ +unzip golden_crayon.zip +rm -r libs/ +mv golden_crayon/* . +find ~/.local/wine/golden-crayon/ -type f -name "nvdaControllerClient32.dll" -exec rm -fv "{}" \; +rmdir golden_crayon/ +popd + +exit 0 From e8c4f96aba4d63625db187466f9465630c1a1bb2 Mon Sep 17 00:00:00 2001 From: Storm Dragon Date: Sat, 15 May 2021 19:15:18 -0400 Subject: [PATCH 14/16] Added game Constant battle. It does not work yet. --- audiogame-manager.sh | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/audiogame-manager.sh b/audiogame-manager.sh index b3d727b..2d3ff6d 100755 --- a/audiogame-manager.sh +++ b/audiogame-manager.sh @@ -627,6 +627,7 @@ gameList=( "Castaways 2" #"Chopper Challenge" "Christmas WhoopAss" + "Constant Battle" "Copter Mission" "Crazy Party" "Crazy Tennis" @@ -826,10 +827,10 @@ case "${game}" in ;; "Breed Memorial") export winVer="win7" - install_wine_bottle speechsdk + install_wine_bottle corefonts 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" "{}" \; + #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") @@ -858,6 +859,13 @@ case "${game}" in 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\" + ;; "Christmas WhoopAss") install_wine_bottle vb6run dx8vb download "https://www.agarchive.net/games/draconis/christmas%20whoopass%20setup.exe" From 6e9535162a07600ec355210775c20c97af8b6bf6 Mon Sep 17 00:00:00 2001 From: Michael Taboada Date: Sun, 16 May 2021 20:34:33 -0700 Subject: [PATCH 15/16] Add game troopanum 2.0. More bsc games coming. --- audiogame-manager.sh | 50 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 47 insertions(+), 3 deletions(-) diff --git a/audiogame-manager.sh b/audiogame-manager.sh index 2d3ff6d..b2e294a 100755 --- a/audiogame-manager.sh +++ b/audiogame-manager.sh @@ -695,6 +695,7 @@ gameList=( "Top Speed 2" "Top Speed 3" "Triple Triad" + "Troopanum2" "Tube Sim" "Undead Assault" "Villains From Beyond" @@ -1023,11 +1024,11 @@ case "${game}" in download "http://www.agarchive.net/games/bsc/HunterSetup.exe" "https://www.agarchive.net/games/bsc/BSC%20unlock%20code%20generator.7z" wine "${cache}/HunterSetup.exe" /silent & xdotool sleep 10 key --clearmodifiers alt+y 2> /dev/null - wineserver -w + 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/Hunter/config.dat" - test 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!" + 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!" 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 @@ -1038,7 +1039,7 @@ case "${game}" in sleep 5 wineserver -k wine "c:\Program Files\bsc-key-generator\BlindsoftwareUnlockCodeGenerator.exe" & - xdotool sleep 10 key Return sleep 2 type hu + xdotool sleep 10 key Return sleep 2 type h xdotool sleep 1 key Tab sleep 1 type $regcode xdotool sleep 1 key Tab sleep 1 key Return sleep 2 @@ -1438,6 +1439,49 @@ EOF 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" + ;; "Tube Sim") export winVer="win7" install_wine_bottle speechsdk From fd064c15b1209a2dd0231e2b0bf2c34ef4adeb68 Mon Sep 17 00:00:00 2001 From: Storm Dragon Date: Mon, 17 May 2021 00:35:37 -0400 Subject: [PATCH 16/16] Documentation updated. --- audiogame-manager.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/audiogame-manager.sh b/audiogame-manager.sh index b2e294a..b0a6fda 100755 --- a/audiogame-manager.sh +++ b/audiogame-manager.sh @@ -310,6 +310,12 @@ echo "Loading documentation, please wait..." local gamePath="$(winepath -u "$2" 2> /dev/null)" gamePath="${gamePath%/*}" local gameDoc="$(find "$gamePath" -type f -iname 'user_manual.html' -or -iname 'user_manual.htm' | head -1)" + # 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 if [[ -z "$gameDoc" ]]; then gameDoc="$(find "$gamePath" -type f -iname 'manual.html' -or -iname 'manual.htm' | head -1)" fi