Merge branch 'testing' introduces game specific wine versions. Breaks
Mac compatibility. Please see the wiki for an alternative option.
This commit is contained in:
commit
43005a75b6
@ -45,6 +45,13 @@ EOF
|
|||||||
export DIALOGOPTS='--no-lines --visit-items'
|
export DIALOGOPTS='--no-lines --visit-items'
|
||||||
|
|
||||||
|
|
||||||
|
# Alerts, for when user needs to read something.
|
||||||
|
alert() {
|
||||||
|
play -qnV0 synth 3 pluck D3 pluck A3 pluck D4 pluck F4 pluck A4 delay 0 .1 .2 .3 .4 remix - chorus 0.9 0.9 38 0.75 0.3 0.5 -t
|
||||||
|
echo
|
||||||
|
read -rp "Press enter to continue." continue
|
||||||
|
}
|
||||||
|
|
||||||
# Check for latest news
|
# Check for latest news
|
||||||
check_news() {
|
check_news() {
|
||||||
trap return INT
|
trap return INT
|
||||||
@ -284,7 +291,7 @@ download() {
|
|||||||
fi
|
fi
|
||||||
# Skip if the item is in cache.
|
# Skip if the item is in cache.
|
||||||
test -e "${cache}/${dest}" && continue
|
test -e "${cache}/${dest}" && continue
|
||||||
if ! curl -L4 --output "${cache}/${dest}" "${i}" ; then
|
if ! curl -L4 -C - --retry 10 --output "${cache}/${dest}" "${i}" ; then
|
||||||
echo "Could not download \"$i\"..."
|
echo "Could not download \"$i\"..."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
@ -305,7 +312,9 @@ get_bottle() {
|
|||||||
"puzzle-divided"*) ;&
|
"puzzle-divided"*) ;&
|
||||||
"revelation"*) ;&
|
"revelation"*) ;&
|
||||||
"swamp"*) ;&
|
"swamp"*) ;&
|
||||||
"triple -triad"*) export WINEPREFIX="${HOME}/.local/wine/aprone" ;;
|
"triple -triad"*)
|
||||||
|
install_wine "7.7" "32"
|
||||||
|
export WINEPREFIX="${HOME}/.local/wine/aprone" ;;
|
||||||
"bg-"*) export WINEPREFIX="${HOME}/.local/wine/bg";;
|
"bg-"*) export WINEPREFIX="${HOME}/.local/wine/bg";;
|
||||||
# ESP Pinball games
|
# ESP Pinball games
|
||||||
"esp-pinball-classic"*) export WINEPREFIX="${HOME}/.local/wine/esp-pinball";;
|
"esp-pinball-classic"*) export WINEPREFIX="${HOME}/.local/wine/esp-pinball";;
|
||||||
@ -346,6 +355,16 @@ get_bottle() {
|
|||||||
"challenge-of-the-horse"*) export WINEPREFIX="${HOME}/.local/wine/tunmi13";;
|
"challenge-of-the-horse"*) export WINEPREFIX="${HOME}/.local/wine/tunmi13";;
|
||||||
*) export WINEPREFIX="${HOME}/.local/wine/${game%|*}";;
|
*) export WINEPREFIX="${HOME}/.local/wine/${game%|*}";;
|
||||||
esac
|
esac
|
||||||
|
# Wine version for bottles
|
||||||
|
if [[ "$game" =~ entombed ]]; then
|
||||||
|
install_wine "6.18" "32"
|
||||||
|
fi
|
||||||
|
if [[ "$game" =~ rs-games ]]; then
|
||||||
|
install_wine "7.0" "32"
|
||||||
|
fi
|
||||||
|
if [[ "$game" =~ shadow-line ]]; then
|
||||||
|
install_wine "7.7" "32"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
get_installer() {
|
get_installer() {
|
||||||
@ -418,7 +437,7 @@ echo "Loading documentation, please wait..."
|
|||||||
local gameDoc="$(find "$gamePath" -type f -iname 'user_manual.html' -or -iname 'user_manual.htm' | head -1)"
|
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.
|
# Game name specific docs, add the name to the for loop.
|
||||||
if [[ -z "$gameDoc" ]]; then
|
if [[ -z "$gameDoc" ]]; then
|
||||||
for i in "troopanum.txt" ; do
|
for i in "troopanum.txt" "superdeekout.txt" ; do
|
||||||
gameDoc="$(find "$gamePath" -type f -iname "$i" -or -iname 'manual.htm' | head -1)"
|
gameDoc="$(find "$gamePath" -type f -iname "$i" -or -iname 'manual.htm' | head -1)"
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
@ -457,6 +476,33 @@ echo "Loading documentation, please wait..."
|
|||||||
exit 0
|
exit 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
install_wine() {
|
||||||
|
# Requires wine version, e.g. 7.7 and architecture, 32|64
|
||||||
|
if [[ $# -ne 2 ]]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
# Figure out wineInstallationPath
|
||||||
|
wineInstallationPath="${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/wine_$2/$1"
|
||||||
|
export wine="${wineInstallationPath}/bin/wine"
|
||||||
|
# If the path exists, wine should already be installed.
|
||||||
|
# Just make sure we didn't wind up with a empty directory for some reason
|
||||||
|
rmdir "${wineInstallationPath}" 2> /dev/null
|
||||||
|
if [[ -d "${wineInstallationPath}" ]]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
mkdir -p "${wineInstallationPath}" 2> /dev/null
|
||||||
|
# This probably does not need to be cached, so download to tmp.
|
||||||
|
installationFile="$(mktemp)"
|
||||||
|
local v=$2
|
||||||
|
v="${v/32/x86}"
|
||||||
|
v="${v/64/x64}" # Probably wrong, so just a place holder.
|
||||||
|
# If this goes wrong, bail out
|
||||||
|
set -e
|
||||||
|
{ curl -L --output "${installationFile}" "https://www.playonlinux.com/wine/binaries/phoenicis/upstream-linux-x86/PlayOnLinux-wine-${1}-upstream-linux-${v}.tar.gz"
|
||||||
|
tar xf "${installationFile}" -C "${wineInstallationPath}"; } | dialog --progressbox "Installing $2 bit Wine version $1." -1 -1
|
||||||
|
set +e
|
||||||
|
}
|
||||||
|
|
||||||
winetricks() {
|
winetricks() {
|
||||||
# Report used packages to the winetricks maintainer so he knows they are being used.
|
# 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
|
if ! [[ -e "${XDG_CACHE_HOME:-$HOME/.cache}/winetricks/track_usage" ]]; then
|
||||||
@ -502,14 +548,19 @@ install_rhvoice() {
|
|||||||
download "${RHVoice[${voiceName}]}"
|
download "${RHVoice[${voiceName}]}"
|
||||||
winetricks -q win8
|
winetricks -q win8
|
||||||
echo "Installing RHVoice ${voiceName^}..."
|
echo "Installing RHVoice ${voiceName^}..."
|
||||||
wine "${cache}/${voiceFile}" &
|
${wine} "${cache}/${voiceFile}" &
|
||||||
sleep 20
|
sleep 20
|
||||||
wineserver -k
|
${wine}server -k
|
||||||
}
|
}
|
||||||
|
|
||||||
install_wine_bottle() {
|
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.
|
# 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}"
|
export WINEARCH="${WINEARCH:-win32}"
|
||||||
|
# Figure out if we are using a specific version of wine
|
||||||
|
export wine="${wine:-$(command -v wine)}"
|
||||||
|
# Set the WINE and WINESERVER environmental variables so winetricks will use the right installation.
|
||||||
|
export WINE="${wine}"
|
||||||
|
export WINESERVER="${wine}server"
|
||||||
if [[ -z "$bottle" ]]; then
|
if [[ -z "$bottle" ]]; then
|
||||||
local bottle="${game,,}"
|
local bottle="${game,,}"
|
||||||
bottle="${bottle//[[:space:]]/-}"
|
bottle="${bottle//[[:space:]]/-}"
|
||||||
@ -532,9 +583,11 @@ install_wine_bottle() {
|
|||||||
geckoPath="${cache}/wine_gecko-2.40-x86.msi"
|
geckoPath="${cache}/wine_gecko-2.40-x86.msi"
|
||||||
fi
|
fi
|
||||||
# This is in a brace list to pipe through dialog.
|
# This is in a brace list to pipe through dialog.
|
||||||
{ DISPLAY="" wineboot -u
|
{ echo -n "Using "
|
||||||
wine msiexec /i z:"$monoPath" /quiet
|
${wine} --version
|
||||||
wine msiexec /i z:"$geckoPath" /quiet
|
DISPLAY="" ${wine}boot -u
|
||||||
|
${wine} msiexec /i z:"$monoPath" /quiet
|
||||||
|
${wine} msiexec /i z:"$geckoPath" /quiet
|
||||||
if [[ "${*}" =~ (speechsdk|sapi) ]]; then
|
if [[ "${*}" =~ (speechsdk|sapi) ]]; then
|
||||||
install_rhvoice
|
install_rhvoice
|
||||||
fi
|
fi
|
||||||
@ -546,11 +599,16 @@ install_wine_bottle() {
|
|||||||
chmod +x "${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd"
|
chmod +x "${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd"
|
||||||
fi
|
fi
|
||||||
winetricks -q isolate_home $@ ${winVer:-winxp} ${winetricksSettings}; } | dialog --progressbox "Installing wine bottle, please wait..." -1 -1
|
winetricks -q isolate_home $@ ${winVer:-winxp} ${winetricksSettings}; } | dialog --progressbox "Installing wine bottle, please wait..." -1 -1
|
||||||
|
# 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"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# Install games
|
# Install games
|
||||||
game_installer() {
|
game_installer() {
|
||||||
|
export LANG="en_US.UTF-8"
|
||||||
|
# Try to deal with systems in other languages
|
||||||
mapfile -t installedGames < <(sed '/^$/d' "${configFile}" 2> /dev/null | cut -d '|' -f3)
|
mapfile -t installedGames < <(sed '/^$/d' "${configFile}" 2> /dev/null | cut -d '|' -f3)
|
||||||
# Create the menu of installed games
|
# Create the menu of installed games
|
||||||
declare -a menuList
|
declare -a menuList
|
||||||
@ -714,14 +772,17 @@ game_launcher() {
|
|||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
get_bottle "$game"
|
get_bottle "$game"
|
||||||
|
# make sure wine is actually set to something
|
||||||
|
export wine="${wine:-wine}"
|
||||||
|
echo -n "launching "
|
||||||
|
${wine} --version
|
||||||
local winePath="${game#*|}"
|
local winePath="${game#*|}"
|
||||||
winePath="${winePath%\\*.exe}"
|
winePath="${winePath%\\*.exe}"
|
||||||
local wineExec="${game#*|}"
|
local wineExec="${game#*|}"
|
||||||
wineExec="${wineExec%|*}"
|
wineExec="${wineExec%|*}"
|
||||||
wineExec="${wineExec##*\\}"
|
wineExec="${wineExec##*\\}"
|
||||||
# kill any previous existing wineservers for this prefix in case they didn't shut down properly.
|
# kill any previous existing wineservers for this prefix in case they didn't shut down properly.
|
||||||
wineserver -k
|
${wine}server -k
|
||||||
# launch the game
|
|
||||||
# launch the game
|
# launch the game
|
||||||
if command -v qjoypad &> /dev/null ; then
|
if command -v qjoypad &> /dev/null ; then
|
||||||
mkdir -p ~/.qjoypad3
|
mkdir -p ~/.qjoypad3
|
||||||
@ -752,16 +813,16 @@ game_launcher() {
|
|||||||
if [[ "$game" =~ light-battles ]]; then
|
if [[ "$game" =~ light-battles ]]; then
|
||||||
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
|
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
|
||||||
fi
|
fi
|
||||||
|
if [[ "$game" =~ mist-world ]]; then
|
||||||
|
"${0%/*}/speech/speak_window_title.sh" mw.exe &
|
||||||
|
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
|
||||||
|
fi
|
||||||
if [[ "$game" =~ ^bokurano-daibouken-2\| ]]; then
|
if [[ "$game" =~ ^bokurano-daibouken-2\| ]]; then
|
||||||
"${0%/*}/speech/clipboard_translator.sh" play.exe bokurano-daibouken2 &
|
"${0%/*}/speech/clipboard_translator.sh" play.exe bokurano-daibouken2 &
|
||||||
fi
|
fi
|
||||||
if [[ "$game" =~ ^bokurano-daibouken\| ]]; then
|
if [[ "$game" =~ ^bokurano-daibouken\| ]]; then
|
||||||
"${0%/*}/speech/clipboard_translator.sh" play.exe bokurano-daibouken &
|
"${0%/*}/speech/clipboard_translator.sh" play.exe bokurano-daibouken &
|
||||||
fi
|
fi
|
||||||
if [[ "$game" =~ shadow-line ]]; then
|
|
||||||
find "${WINEPREFIX}/drive_c/" -type f -name 'nvdaControllerClient.dll' -exec rm -v "{}" \;
|
|
||||||
"${0%/*}/speech/clipboard_translator.sh" play_sr.exe shadow-line &
|
|
||||||
fi
|
|
||||||
if [[ "$game" =~ bokurano-daibouken-3 ]]; then
|
if [[ "$game" =~ bokurano-daibouken-3 ]]; then
|
||||||
dictPath="$(winepath "${winePath}")"
|
dictPath="$(winepath "${winePath}")"
|
||||||
if [[ -r "${cache}/bk3-dict.dat" ]] && [[ ! -d "${dictPath}/dict" ]]; then
|
if [[ -r "${cache}/bk3-dict.dat" ]] && [[ ! -d "${dictPath}/dict" ]]; then
|
||||||
@ -790,6 +851,13 @@ game_launcher() {
|
|||||||
if [[ "$game" =~ sequence-storm ]]; then
|
if [[ "$game" =~ sequence-storm ]]; then
|
||||||
"${0%/*}/speech/clipboard_reader.sh" SequenceStorm &
|
"${0%/*}/speech/clipboard_reader.sh" SequenceStorm &
|
||||||
fi
|
fi
|
||||||
|
if [[ "$game" =~ shadow-line ]]; then
|
||||||
|
find "${WINEPREFIX}/drive_c/" -type f -name 'nvdaControllerClient.dll' -exec rm -v "{}" \;
|
||||||
|
"${0%/*}/speech/clipboard_translator.sh" play_sr.exe shadow-line &
|
||||||
|
fi
|
||||||
|
if [[ "$game" =~ sketchbook ]]; then
|
||||||
|
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvdaControllerClient32.dll" "{}" \;
|
||||||
|
fi
|
||||||
if [[ "$game" =~ audiodisc ]]; then
|
if [[ "$game" =~ audiodisc ]]; then
|
||||||
wine "$winePath\\$wineExec"
|
wine "$winePath\\$wineExec"
|
||||||
exit 0
|
exit 0
|
||||||
@ -798,9 +866,9 @@ game_launcher() {
|
|||||||
wine "$winePath\\$wineExec"
|
wine "$winePath\\$wineExec"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
if [[ "$game" =~ rs-games ]] || [[ "$game" =~ screaming-strike-2 ]]; then
|
if [[ "$game" =~ screaming-strike-2 ]]; then
|
||||||
pushd "$(winepath "$winePath")"
|
pushd "$(winepath "$winePath")"
|
||||||
wine "$wineExec"
|
${wine} "$wineExec"
|
||||||
popd
|
popd
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
@ -818,10 +886,10 @@ game_launcher() {
|
|||||||
fi
|
fi
|
||||||
if [[ -d "${WINEPREFIX}/drive_c/windows/syswow64" ]]; then
|
if [[ -d "${WINEPREFIX}/drive_c/windows/syswow64" ]]; then
|
||||||
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
|
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
|
||||||
wine64 start /realtime /d "${winePath}" "$wineExec"
|
# switch to wine64 for 64 bit prefix.
|
||||||
else
|
[[ "${wine}" == "wine" ]] && export wine="wine64"
|
||||||
wine start /d "${winePath}" "$wineExec" /realtime
|
|
||||||
fi
|
fi
|
||||||
|
${wine:-wine} start /d "${winePath}" "$wineExec" /realtime
|
||||||
fi
|
fi
|
||||||
exit 0
|
exit 0
|
||||||
}
|
}
|
||||||
@ -889,6 +957,7 @@ export BOX86_NOBANNER=1
|
|||||||
unset noCache
|
unset noCache
|
||||||
# Manual installation is not default, make sure it's unset
|
# Manual installation is not default, make sure it's unset
|
||||||
unset manualInstall
|
unset manualInstall
|
||||||
|
unset version
|
||||||
|
|
||||||
|
|
||||||
# The list of games available for installation.
|
# The list of games available for installation.
|
||||||
@ -1013,6 +1082,7 @@ gameList=(
|
|||||||
"Manamon 2"
|
"Manamon 2"
|
||||||
#"Marina Break"
|
#"Marina Break"
|
||||||
#"Minecraft"
|
#"Minecraft"
|
||||||
|
"Mist World"
|
||||||
"Monkey Business"
|
"Monkey Business"
|
||||||
"MudSplat French"
|
"MudSplat French"
|
||||||
"MudSplat English"
|
"MudSplat English"
|
||||||
@ -1045,19 +1115,21 @@ gameList=(
|
|||||||
"Sequence Storm"
|
"Sequence Storm"
|
||||||
#"Shades of Doom 1.2"
|
#"Shades of Doom 1.2"
|
||||||
"Shades of Doom"
|
"Shades of Doom"
|
||||||
#"Shadow Line"
|
"Shadow Line"
|
||||||
"Shooter"
|
"Shooter"
|
||||||
"Silver Dollar"
|
"Silver Dollar"
|
||||||
"Slender Lost Vision"
|
"Slender Lost Vision"
|
||||||
"Sonic the Hedgehog"
|
"Sonic the Hedgehog"
|
||||||
"Sonic Zoom"
|
"Sonic Zoom"
|
||||||
#"Space Defender"
|
#"Space Defender"
|
||||||
|
"Super Deekout"
|
||||||
"Super Dogs Bone Hunt"
|
"Super Dogs Bone Hunt"
|
||||||
"Super Egg Hunt"
|
"Super Egg Hunt"
|
||||||
"Super Liam"
|
"Super Liam"
|
||||||
"Super Mario Bros"
|
"Super Mario Bros"
|
||||||
"Survive the Wild"
|
"Survive the Wild"
|
||||||
"Swamp"
|
"Swamp"
|
||||||
|
"Tactical Battle"
|
||||||
"Technoshock"
|
"Technoshock"
|
||||||
"Ten Pin Alley"
|
"Ten Pin Alley"
|
||||||
"The Blind Swordsman"
|
"The Blind Swordsman"
|
||||||
@ -1207,6 +1279,7 @@ case "${game}" in
|
|||||||
add_launcher "c:\Program Files\AudioQuake\AudioQuake.exe"
|
add_launcher "c:\Program Files\AudioQuake\AudioQuake.exe"
|
||||||
echo
|
echo
|
||||||
echo "After you launch the game, press tab then enter and it should begin speaking."
|
echo "After you launch the game, press tab then enter and it should begin speaking."
|
||||||
|
alert
|
||||||
;;
|
;;
|
||||||
"Battle of the Hunter")
|
"Battle of the Hunter")
|
||||||
export bottle="tunmi13"
|
export bottle="tunmi13"
|
||||||
@ -1911,23 +1984,25 @@ case "${game}" in
|
|||||||
add_launcher "c:\Program Files\Endless Runner\runner.exe"
|
add_launcher "c:\Program Files\Endless Runner\runner.exe"
|
||||||
;;
|
;;
|
||||||
"Entombed")
|
"Entombed")
|
||||||
|
export version="6.18"
|
||||||
|
install_wine "$version" "32"
|
||||||
export winVer="win7"
|
export winVer="win7"
|
||||||
install_wine_bottle speechsdk msvcrt40 gdiplus ie7 wmp11 mf
|
install_wine_bottle speechsdk msvcrt40 gdiplus ie7 wmp11 mf
|
||||||
# Ok, more dotnet.
|
# Ok, more dotnet.
|
||||||
LC_ALL=C DISPLAY="" winetricks -q dotnet40 xna40
|
LC_ALL=C DISPLAY="" winetricks -q dotnet40 xna40
|
||||||
wineserver -k # Sigh.
|
${wine}server -k # Sigh.
|
||||||
download "http://blind-games.com/newentombed/EntombedSetup.exe" "https://download.microsoft.com/download/E/C/1/EC1B2340-67A0-4B87-85F0-74D987A27160/SSCERuntime-ENU.exe" "https://stormgames.wolfe.casa/downloads/Entombed.exe.config" "https://stormgames.wolfe.casa/downloads/mfplat.dll"
|
download "http://blind-games.com/newentombed/EntombedSetup.exe" "https://download.microsoft.com/download/E/C/1/EC1B2340-67A0-4B87-85F0-74D987A27160/SSCERuntime-ENU.exe" "https://stormgames.wolfe.casa/downloads/Entombed.exe.config" "https://stormgames.wolfe.casa/downloads/mfplat.dll"
|
||||||
mkdir -p "${WINEPREFIX}/drive_c/temp"
|
mkdir -p "${WINEPREFIX}/drive_c/temp"
|
||||||
pushd "${WINEPREFIX}/drive_c/temp"
|
pushd "${WINEPREFIX}/drive_c/temp"
|
||||||
7z x "${cache}/SSCERuntime-ENU.exe"
|
7z x "${cache}/SSCERuntime-ENU.exe"
|
||||||
wine msiexec /i "${WINEPREFIX}/drive_c/temp/SSCERuntime_x86-ENU.msi" /q
|
${wine} msiexec /i "${WINEPREFIX}/drive_c/temp/SSCERuntime_x86-ENU.msi" /q
|
||||||
rm *
|
rm *
|
||||||
popd
|
popd
|
||||||
pushd "${WINEPREFIX}/drive_c/Program Files/Microsoft SQL Server Compact Edition/v3.5"
|
pushd "${WINEPREFIX}/drive_c/Program Files/Microsoft SQL Server Compact Edition/v3.5"
|
||||||
wine regsvr32 sqlceoledb35.dll
|
${wine} regsvr32 sqlceoledb35.dll
|
||||||
wine regsvr32 sqlceca35.dll
|
${wine} regsvr32 sqlceca35.dll
|
||||||
popd
|
popd
|
||||||
wine "${cache}/EntombedSetup.exe" /silent
|
${wine} "${cache}/EntombedSetup.exe" /silent
|
||||||
pushd "${WINEPREFIX}/drive_c/Program Files/Entombed"
|
pushd "${WINEPREFIX}/drive_c/Program Files/Entombed"
|
||||||
cp ../Microsoft\ SQL\ Server\ Compact\ Edition/v3.5/Private/System.Data.SqlServerCe.Entity.dll ../Microsoft\ SQL\ Server\ Compact\ Edition/v3.5/Private/System.Data.SqlServerCe.dll .
|
cp ../Microsoft\ SQL\ Server\ Compact\ Edition/v3.5/Private/System.Data.SqlServerCe.Entity.dll ../Microsoft\ SQL\ Server\ Compact\ Edition/v3.5/Private/System.Data.SqlServerCe.dll .
|
||||||
cp ../Microsoft\ SQL\ Server\ Compact\ Edition/v3.5/sql* .
|
cp ../Microsoft\ SQL\ Server\ Compact\ Edition/v3.5/sql* .
|
||||||
@ -2261,6 +2336,24 @@ EOF
|
|||||||
cp "$cache/$x" "$WINEPREFIX/drive_c/users/$USER/AppData/Roaming/.minecraft/mods"
|
cp "$cache/$x" "$WINEPREFIX/drive_c/users/$USER/AppData/Roaming/.minecraft/mods"
|
||||||
done
|
done
|
||||||
# And of course, add the launcher.
|
# And of course, add the launcher.
|
||||||
|
;;
|
||||||
|
"Mist World")
|
||||||
|
export winVer="win7"
|
||||||
|
get_installer "Mist World_Setup.exe" "https://drive.google.com/file/d/12YeUqorkkMT46ZSR5pcfWxSY8DHOLxZ-/view?usp=share_link"
|
||||||
|
install_wine_bottle
|
||||||
|
download "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd32.dll"
|
||||||
|
7z x -o"$WINEPREFIX/drive_c/Program Files/Mist World" "$cache/Mist World_Setup.exe"
|
||||||
|
sed -i 's/1024m/768m/g' "$WINEPREFIX/drive_c/Program Files/Mist World/mw.exe.vmoptions"
|
||||||
|
cp "$WINEPREFIX/drive_c/Program Files/Mist World/"{mw.exe.vmoptions,update.exe.vmoptions}
|
||||||
|
find "$WINEPREFIX/drive_c/Program Files/Mist World" -iname "nvdaControllerClient32.dll" -exec cp "$cache/nvda2speechd32.dll" "{}" \;
|
||||||
|
add_launcher 'c:\Program Files\Mist World\mw.exe'
|
||||||
|
echo
|
||||||
|
echo "If you do not have an account, There is a script in game-scripts to help."
|
||||||
|
echo "Launch the game, press enter on create account, then drop into a console so the game window does not lose focus."
|
||||||
|
echo "Change to the game-scripts directory and run"
|
||||||
|
echo "./mist_world_account_creator.sh and follow the prompts."
|
||||||
|
echo "To login, type your email address, press tab, and type your password. Press enter to confirm."
|
||||||
|
alert
|
||||||
;;
|
;;
|
||||||
"Monkey Business")
|
"Monkey Business")
|
||||||
export winVer="win7"
|
export winVer="win7"
|
||||||
@ -2446,10 +2539,12 @@ EOF
|
|||||||
add_launcher "c:\Program Files\RTR Offline\rtr.exe"
|
add_launcher "c:\Program Files\RTR Offline\rtr.exe"
|
||||||
;;
|
;;
|
||||||
"RS Games")
|
"RS Games")
|
||||||
|
export version="7.0"
|
||||||
|
install_wine "$version" "32"
|
||||||
export winVer="win7"
|
export winVer="win7"
|
||||||
install_wine_bottle speechsdk
|
install_wine_bottle speechsdk
|
||||||
download "http://rsgames.org/rsdownloads/rsgclient/rsgames-client-setup-2.01.exe" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient32.dll"
|
download "http://rsgames.org/rsdownloads/rsgclient/rsgames-client-setup-2.01.exe" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient32.dll"
|
||||||
wine "${cache}/rsgames-client-setup-2.01.exe" /silent
|
${wine} "${cache}/rsgames-client-setup-2.01.exe" /silent
|
||||||
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\RS Games Client\rsg.exe"
|
add_launcher "c:\Program Files\RS Games Client\rsg.exe"
|
||||||
;;
|
;;
|
||||||
@ -2492,10 +2587,12 @@ EOF
|
|||||||
"Sketchbook")
|
"Sketchbook")
|
||||||
export winVer="win7"
|
export winVer="win7"
|
||||||
install_wine_bottle speechsdk
|
install_wine_bottle speechsdk
|
||||||
download "http://games.ims-productions.com/SBYW/SBYW.zip" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient32.dll"
|
download "http://sbyw.games/SBYW/SBYW.zip" "http://sbyw.games/SBYW/sounds.zip" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient32.dll"
|
||||||
unzip -d "$WINEPREFIX/drive_c/Program Files/scrolling battles" "${cache}/SBYW.zip"
|
mv -v "${cache}/sounds.zip" "${cache}/SBYW-sounds.zip"
|
||||||
|
unzip -d "$WINEPREFIX/drive_c/Program Files/sketchbook" "${cache}/SBYW.zip"
|
||||||
|
unzip -d "$WINEPREFIX/drive_c/Program Files/sketchbook" "${cache}/SBYW-sounds.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\scrolling battles\SBYW.exe"
|
add_launcher "c:\Program Files\sketchbook\SBYW.exe"
|
||||||
;;
|
;;
|
||||||
"Sequence Storm")
|
"Sequence Storm")
|
||||||
get_installer "sequence-storm-win64.zip" "https://special-magic-games-llc.itch.io/sequence-storm"
|
get_installer "sequence-storm-win64.zip" "https://special-magic-games-llc.itch.io/sequence-storm"
|
||||||
@ -2521,18 +2618,21 @@ EOF
|
|||||||
add_launcher "c:\Program Files\Shades of Doom 2.0\sod.exe"
|
add_launcher "c:\Program Files\Shades of Doom 2.0\sod.exe"
|
||||||
;;
|
;;
|
||||||
"Shadow Line")
|
"Shadow Line")
|
||||||
export winVer="win8" speechsdk
|
export version="7.7"
|
||||||
|
install_wine "$version" "32"
|
||||||
|
export winVer="win8"
|
||||||
install_wine_bottle
|
install_wine_bottle
|
||||||
download "https://www.mm-galabo.com/sr/Download_files_srfv/shadowrine_fullvoice3.171.exe"
|
download "https://www.mm-galabo.com/sr/Download_files_srfv/shadowrine_fullvoice3.171.exe"
|
||||||
wine "${cache}/shadowrine_fullvoice3.171.exe" /sp-
|
$wine "${cache}/shadowrine_fullvoice3.171.exe" /sp- &
|
||||||
xdotool sleep 30 key --clearmodifiers --delay=500 Return
|
xdotool sleep 30 key --clearmodifiers --delay=500 Return
|
||||||
xdotool key --clearmodifiers --delay=500 Return
|
xdotool key --clearmodifiers --delay=500 Return
|
||||||
xdotool key --clearmodifiers --delay=500 Return
|
xdotool key --clearmodifiers --delay=500 Return
|
||||||
xdotool key --clearmodifiers --delay=500 Return
|
xdotool key --clearmodifiers --delay=500 Return
|
||||||
xdotool sleep 300 key --clearmodifiers --delay=500 Down
|
echo "Running installer, this will take approximately 3 minutes..."
|
||||||
|
xdotool sleep 180 key --clearmodifiers --delay=500 Down
|
||||||
xdotool key --clearmodifiers --delay=500 space
|
xdotool key --clearmodifiers --delay=500 space
|
||||||
xdotool key --clearmodifiers --delay=500 alt+i
|
xdotool key --clearmodifiers --delay=500 alt+f
|
||||||
wineserver -w
|
${wine}server -w
|
||||||
add_launcher "c:\Program Files\GalaxyLaboratory\ShadowRine_FullVoice\play_sr.exe"
|
add_launcher "c:\Program Files\GalaxyLaboratory\ShadowRine_FullVoice\play_sr.exe"
|
||||||
;;
|
;;
|
||||||
"Silver Dollar")
|
"Silver Dollar")
|
||||||
@ -2584,6 +2684,41 @@ EOF
|
|||||||
unzip -d "$WINEPREFIX/drive_c/Program Files/" "${cache}/space_defender.zip"
|
unzip -d "$WINEPREFIX/drive_c/Program Files/" "${cache}/space_defender.zip"
|
||||||
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient64.dll' -exec cp -v "${cache}/nvdaControllerClient64.dll" "{}" \;
|
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient64.dll' -exec cp -v "${cache}/nvdaControllerClient64.dll" "{}" \;
|
||||||
add_launcher "c:\Program Files\space_defender\sdefender.exe"
|
add_launcher "c:\Program Files\space_defender\sdefender.exe"
|
||||||
|
;;
|
||||||
|
"Super Deekout")
|
||||||
|
install_wine_bottle vb6run dx8vb
|
||||||
|
download "http://www.danielzingaro.com/superdeekout_setup.exe" "http://www.danielzingaro.com/sd_full.exe"
|
||||||
|
${wine} "${cache}/superdeekout_setup.exe" &
|
||||||
|
xdotool sleep 15 key --delay 100 y 2> /dev/null
|
||||||
|
xdotool sleep 3 key --delay 250 alt+n 2> /dev/null
|
||||||
|
xdotool key --delay 250 alt+a 2> /dev/null
|
||||||
|
xdotool key --delay 250 space 2> /dev/null
|
||||||
|
xdotool key --delay 250 alt+n 2> /dev/null
|
||||||
|
xdotool key --delay 250 alt+n 2> /dev/null
|
||||||
|
xdotool key --delay 250 alt+n 2> /dev/null
|
||||||
|
xdotool key --delay 250 alt+i 2> /dev/null
|
||||||
|
xdotool sleep 15 key --delay 250 alt+f 2> /dev/null
|
||||||
|
xdotool sleep 3 key --delay 250 n 2> /dev/null
|
||||||
|
${wine}server -k
|
||||||
|
7z x -y -o"$WINEPREFIX/drive_c/Program Files/Super Deekout" "${cache}/sd_full.exe"
|
||||||
|
echo "Super Deekout needs some information before it will run:"
|
||||||
|
alert
|
||||||
|
read -erp "Please enter your first name: " fname
|
||||||
|
read -erp "Please enter your last name: " lname
|
||||||
|
read -erp "Please enter your email address: " email
|
||||||
|
${wine} "c:\Program Files\Super Deekout\config.exe" &
|
||||||
|
xdotool sleep 5 key --delay 100 Return 2> /dev/null
|
||||||
|
xdotool sleep 3 type --clearmodifiers --delay 100 "${fname}"
|
||||||
|
xdotool key --clearmodifiers --delay 100 Tab 2> /dev/null
|
||||||
|
xdotool sleep 1 type --clearmodifiers --delay 100 "${lname}"
|
||||||
|
xdotool key --clearmodifiers --delay 100 Tab 2> /dev/null
|
||||||
|
xdotool sleep 1 type --clearmodifiers --delay 100 "${email}"
|
||||||
|
xdotool key --clearmodifiers --delay 100 Tab 2> /dev/null
|
||||||
|
xdotool sleep 15 key --delay 100 u 2> /dev/null
|
||||||
|
xdotool key --clearmodifiers --delay 100 Tab 2> /dev/null
|
||||||
|
xdotool sleep 1 key --delay 250 Return 2> /dev/null
|
||||||
|
${wine}server -k
|
||||||
|
add_launcher "c:\Program Files\Super Deekout\super.exe"
|
||||||
;;
|
;;
|
||||||
"Super Dogs Bone Hunt")
|
"Super Dogs Bone Hunt")
|
||||||
install_wine_bottle vb6run dx8vb speechsdk
|
install_wine_bottle vb6run dx8vb speechsdk
|
||||||
@ -2621,6 +2756,8 @@ EOF
|
|||||||
add_launcher "c:\Program Files\Survive the Wild\stw.exe"
|
add_launcher "c:\Program Files\Survive the Wild\stw.exe"
|
||||||
;;
|
;;
|
||||||
"Swamp")
|
"Swamp")
|
||||||
|
export version="7.7"
|
||||||
|
install_wine "${version}" "32"
|
||||||
export bottle="aprone"
|
export bottle="aprone"
|
||||||
export winVer="win7"
|
export winVer="win7"
|
||||||
export winetricksSettings="vd=1024x768"
|
export winetricksSettings="vd=1024x768"
|
||||||
@ -2633,14 +2770,22 @@ EOF
|
|||||||
if curl -L --output "${cache}/SwampPatch.zip" "https://www.kaldobsky.com/audiogames/SwampPatch.zip" ; then
|
if curl -L --output "${cache}/SwampPatch.zip" "https://www.kaldobsky.com/audiogames/SwampPatch.zip" ; then
|
||||||
unzip -o -d "$WINEPREFIX/drive_c/Program Files/swamp" "${cache}/SwampPatch.zip"
|
unzip -o -d "$WINEPREFIX/drive_c/Program Files/swamp" "${cache}/SwampPatch.zip"
|
||||||
fi
|
fi
|
||||||
wine 'c:\Program Files\swamp\checkup.exe' /verysilent
|
$wine 'c:\Program Files\swamp\checkup.exe' /verysilent
|
||||||
#wine cmd.exe /c 'cd /d c:\Program Files\swamp && Windows32bit.bat'
|
#$wine cmd.exe /c 'cd /d c:\Program Files\swamp && Windows32bit.bat'
|
||||||
# Delete music if requested.
|
# Delete music if requested.
|
||||||
if [[ $deleteMusic -eq 0 ]]; then
|
if [[ $deleteMusic -eq 0 ]]; then
|
||||||
rm -frv "$WINEPREFIX/drive_c/Program Files/swamp/sounds/Music/"
|
rm -frv "$WINEPREFIX/drive_c/Program Files/swamp/sounds/Music/"
|
||||||
fi
|
fi
|
||||||
add_launcher "c:\Program Files\swamp\Swamp.exe"
|
add_launcher "c:\Program Files\swamp\Swamp.exe"
|
||||||
;;
|
;;
|
||||||
|
"Tactical Battle")
|
||||||
|
install_wine_bottle speechsdk
|
||||||
|
LC_ALL=C DISPLAY="" winetricks -q dotnet462
|
||||||
|
${wine}server -k
|
||||||
|
download "https://blindgamers.com/downloads/Tactical%20Battle%20Dev.zip"
|
||||||
|
unzip -d "$WINEPREFIX/drive_c/Program Files/Tactical Battle" "${cache}/Tactical Battle Dev.zip"
|
||||||
|
add_launcher "c:\Program Files\Tactical Battle\Tactical Battle.exe"
|
||||||
|
;;
|
||||||
"Technoshock")
|
"Technoshock")
|
||||||
install_wine_bottle
|
install_wine_bottle
|
||||||
download "http://tiflocomp.ru/download/games/technoshock_140b_en.zip" "http://tiflocomp.ru/download/games/technoshock140b_en_update.zip"
|
download "http://tiflocomp.ru/download/games/technoshock_140b_en.zip" "http://tiflocomp.ru/download/games/technoshock140b_en_update.zip"
|
||||||
@ -2833,6 +2978,7 @@ export norh=false # Must install a voice, and rhvoice works easily with 64 bit.
|
|||||||
echo "To bypass these dialogs, press alt+o, then press enter until speech starts."
|
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."
|
echo "To be sure that each new dialog has had time to complete, wait a second between each press of enter."
|
||||||
echo "In each subsequent launch, you will need to hit enter a couple times before it starts speaking."
|
echo "In each subsequent launch, you will need to hit enter a couple times before it starts speaking."
|
||||||
|
alert
|
||||||
;;
|
;;
|
||||||
"Warsim")
|
"Warsim")
|
||||||
get_installer "Warsim Full Game.zip" "https://huw2k8.itch.io/warsim"
|
get_installer "Warsim Full Game.zip" "https://huw2k8.itch.io/warsim"
|
||||||
|
61
game-scripts/mist_world_account_creator.sh
Executable file
61
game-scripts/mist_world_account_creator.sh
Executable file
@ -0,0 +1,61 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
export DISPLAY="${DISPLAY:-:0}"
|
||||||
|
|
||||||
|
read -rp "Select create account from the menu, press enter to continue." continue
|
||||||
|
echo
|
||||||
|
|
||||||
|
# Read email address
|
||||||
|
echo "Enter email address:"
|
||||||
|
read -r email
|
||||||
|
|
||||||
|
# Validate email address format
|
||||||
|
if [[ "$email" =~ ^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$ ]]; then
|
||||||
|
# Type email address
|
||||||
|
xdotool type --delay=75 "$email"
|
||||||
|
# Press tab
|
||||||
|
xdotool sleep 0.5 key --delay=75 Tab
|
||||||
|
# Press enter
|
||||||
|
xdotool sleep 0.5 key --delay=75 Return
|
||||||
|
else
|
||||||
|
echo "Invalid email format. Exiting."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Press tab
|
||||||
|
|
||||||
|
#xdotool sleep 0.5 key --delay=75 Tab
|
||||||
|
# Press enter
|
||||||
|
#xdotool sleep 0.5 key --delay=75 Return
|
||||||
|
|
||||||
|
echo "Please check your email for the verification code."
|
||||||
|
|
||||||
|
# Read verification code
|
||||||
|
echo "Enter verification code:"
|
||||||
|
read -r code
|
||||||
|
|
||||||
|
# Type verification code
|
||||||
|
xdotool type --delay=1000 $code
|
||||||
|
# press tab
|
||||||
|
xdotool sleep 0.5 key --delay=75 Tab
|
||||||
|
# Press enter
|
||||||
|
xdotool sleep 0.5 key --delay=75 Return
|
||||||
|
|
||||||
|
# Read password
|
||||||
|
echo "Enter password between 6 and 16 characters, 1 uppercase letter 1 number required:"
|
||||||
|
read -r password
|
||||||
|
|
||||||
|
# Type password
|
||||||
|
xdotool type --delay=500 "$password"
|
||||||
|
# Press tab
|
||||||
|
xdotool sleep 0.5 key --delay=75 Tab
|
||||||
|
# Type password again
|
||||||
|
xdotool sleep 0.5 type --delay=500 "$password"
|
||||||
|
# Press tab
|
||||||
|
xdotool sleep 0.5 key --delay=75 Tab
|
||||||
|
# Press enter
|
||||||
|
xdotool sleep 0.5 key --delay=75 Return
|
||||||
|
|
||||||
|
echo "Account created!"
|
||||||
|
|
||||||
|
exit 0
|
@ -3,7 +3,8 @@
|
|||||||
# Modified from the script at:
|
# Modified from the script at:
|
||||||
# https://gist.github.com/fdietze/6768a0970d7d732b7fbd7930ccceee2a
|
# https://gist.github.com/fdietze/6768a0970d7d732b7fbd7930ccceee2a
|
||||||
|
|
||||||
set -Eeuo pipefail # https://vaneyckt.io/posts/safer_bash_scripts_with_set_euxo_pipefail/#:~:text=set%20%2Du,is%20often%20highly%20desirable%20behavior.
|
# The next line has been commented because if there's nothing in clipboard the script breaks.
|
||||||
|
# set -Eeuo pipefail # https://vaneyckt.io/posts/safer_bash_scripts_with_set_euxo_pipefail/#:~:text=set%20%2Du,is%20often%20highly%20desirable%20behavior.
|
||||||
shopt -s expand_aliases
|
shopt -s expand_aliases
|
||||||
|
|
||||||
|
|
||||||
|
@ -77,6 +77,14 @@ if [[ -z "${WINEPREFIX}" ]]; then
|
|||||||
exit 0
|
exit 0
|
||||||
fi
|
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() {
|
msgbox() {
|
||||||
# Returns: None
|
# Returns: None
|
||||||
# Shows the provided message on the screen with an ok button.
|
# Shows the provided message on the screen with an ok button.
|
||||||
@ -124,7 +132,7 @@ menulist() {
|
|||||||
|
|
||||||
restore_voice() {
|
restore_voice() {
|
||||||
if [[ $doRestore -eq 0 ]]; then
|
if [[ $doRestore -eq 0 ]]; then
|
||||||
wineserver -k # If we don't do this it's likely wine will overwrite our reverted change or even clobber the registry key entirely
|
${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
|
||||||
$sed -i -E -e 's/"DefaultTokenId"="HKEY_LOCAL_MACHINE\\\\(SOFTWARE|Software)\\\\(Wow6432Node\\\\|)Microsoft\\\\Speech\\\\Voices\\\\Token(Enum|)s\\\\[^"]+"/"DefaultTokenId"="'"${oldVoice//\\/\\\\}"'"/g' "${WINEPREFIX}/user.reg"
|
$sed -i -E -e 's/"DefaultTokenId"="HKEY_LOCAL_MACHINE\\\\(SOFTWARE|Software)\\\\(Wow6432Node\\\\|)Microsoft\\\\Speech\\\\Voices\\\\Token(Enum|)s\\\\[^"]+"/"DefaultTokenId"="'"${oldVoice//\\/\\\\}"'"/g' "${WINEPREFIX}/user.reg"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
@ -142,7 +150,7 @@ set_voice() {
|
|||||||
RHVoiceName="${RHVoiceName##*/}"
|
RHVoiceName="${RHVoiceName##*/}"
|
||||||
fullVoice="${voiceListFullName[$counter]}"
|
fullVoice="${voiceListFullName[$counter]}"
|
||||||
fullVoice="${fullVoice/RHVoice/RHVoice\\\\${RHVoiceName}}"
|
fullVoice="${fullVoice/RHVoice/RHVoice\\\\${RHVoiceName}}"
|
||||||
wineserver -k # If we don't do this it's likely wine will overwrite our reverted change or even clobber the registry key entirely
|
${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
|
# Remove any existing rate change for voices
|
||||||
$sed -i '/"DefaultTTSRate"=dword:/d' "${WINEPREFIX}/user.reg"
|
$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'${2:-7}'/g' "${WINEPREFIX}/user.reg"
|
||||||
@ -161,14 +169,14 @@ test_voice() {
|
|||||||
RHVoiceName="${RHVoiceName##*/}"
|
RHVoiceName="${RHVoiceName##*/}"
|
||||||
fullVoice="${voiceListFullName[$counter]}"
|
fullVoice="${voiceListFullName[$counter]}"
|
||||||
fullVoice="${fullVoice/RHVoice/RHVoice\\\\${RHVoiceName}}"
|
fullVoice="${fullVoice/RHVoice/RHVoice\\\\${RHVoiceName}}"
|
||||||
wineserver -k # If we don't do this it's likely wine will overwrite our reverted change or even clobber the registry key entirely
|
${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
|
||||||
$sed -i -E -e 's/"DefaultTokenId"="HKEY_LOCAL_MACHINE\\\\(SOFTWARE|Software)\\\\(Wow6432Node\\\\|)Microsoft\\\\Speech\\\\Voices\\\\Token(Enum|)s\\\\[^"]+"/"DefaultTokenId"="HKEY_LOCAL_MACHINE\\\\'"${fullVoice//\\/\\\\}"'"/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//\\/\\\\}"'"/g' "${WINEPREFIX}/user.reg"
|
||||||
cat << "EOF" > "${bottle}/drive_c/windows/temp/speak.vbs"
|
cat << "EOF" > "${bottle}/drive_c/windows/temp/speak.vbs"
|
||||||
dim speechobject
|
dim speechobject
|
||||||
set speechobject=createobject("sapi.spvoice")
|
set speechobject=createobject("sapi.spvoice")
|
||||||
speechobject.speak "This is a test of your chosen voice. It contains multiple sentences and punctuation, and is designed to give a full representation of this voices qualities."
|
speechobject.speak "This is a test of your chosen voice. It contains multiple sentences and punctuation, and is designed to give a full representation of this voices qualities."
|
||||||
EOF
|
EOF
|
||||||
wine cscript "c:\windows\temp\speak.vbs"
|
${wine} cscript "c:\windows\temp\speak.vbs"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Handle voice restore, but only if voice changed
|
# Handle voice restore, but only if voice changed
|
||||||
@ -181,7 +189,7 @@ dim speechobject
|
|||||||
set speechobject=createobject("sapi.spvoice")
|
set speechobject=createobject("sapi.spvoice")
|
||||||
speechobject.speak ""
|
speechobject.speak ""
|
||||||
EOF
|
EOF
|
||||||
wine cscript "c:\windows\temp\speak.vbs"
|
${wine} cscript "c:\windows\temp\speak.vbs"
|
||||||
|
|
||||||
# Create an array of available voices.
|
# Create an array of available voices.
|
||||||
ifs="$IFS"
|
ifs="$IFS"
|
||||||
|
@ -13,12 +13,12 @@ is_function() {
|
|||||||
configure_arch() {
|
configure_arch() {
|
||||||
packageList=(
|
packageList=(
|
||||||
cabextract
|
cabextract
|
||||||
|
curl
|
||||||
dialog
|
dialog
|
||||||
dos2unix
|
dos2unix
|
||||||
gawk
|
gawk
|
||||||
unzip
|
unzip
|
||||||
w3m
|
w3m
|
||||||
wget
|
|
||||||
wine
|
wine
|
||||||
winetricks
|
winetricks
|
||||||
wine_gecko
|
wine_gecko
|
||||||
@ -34,6 +34,8 @@ configure_arch() {
|
|||||||
alsa-lib
|
alsa-lib
|
||||||
mesa
|
mesa
|
||||||
openal
|
openal
|
||||||
|
sox
|
||||||
|
sqlite3
|
||||||
translate-shell
|
translate-shell
|
||||||
xz
|
xz
|
||||||
gst-plugins-bad
|
gst-plugins-bad
|
||||||
@ -41,6 +43,7 @@ configure_arch() {
|
|||||||
gst-plugins-ugly
|
gst-plugins-ugly
|
||||||
gst-libav
|
gst-libav
|
||||||
p7zip
|
p7zip
|
||||||
|
xdg-utils
|
||||||
)
|
)
|
||||||
if [[ "$(uname -m)" == "x86_64" ]]; then
|
if [[ "$(uname -m)" == "x86_64" ]]; then
|
||||||
# Enable multilib
|
# Enable multilib
|
||||||
@ -72,6 +75,7 @@ configure_arch() {
|
|||||||
|
|
||||||
configure_debian() {
|
configure_debian() {
|
||||||
packageList=(
|
packageList=(
|
||||||
|
curl
|
||||||
dialog
|
dialog
|
||||||
gawk
|
gawk
|
||||||
gstreamer1.0-plugins-bad:i386
|
gstreamer1.0-plugins-bad:i386
|
||||||
|
Loading…
Reference in New Issue
Block a user