A *lot* of work done on the audiogame-manager refactor. Hopefully getting somewhat close to stability, but I doubt it.
This commit is contained in:
@@ -1,44 +1,13 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
get_bottle() {
|
||||
local architecture="${1/win/}"
|
||||
# Simple rule: wine64 for everything, wine32 only for speech APIs
|
||||
local architecture="${1:-win64}"
|
||||
architecture="${architecture/win/}"
|
||||
export WINEPREFIX="$HOME/.local/wine${architecture}"
|
||||
# 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
|
||||
}
|
||||
|
||||
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}"; } | agm_progressbox "Wine Installation" "Installing $2 bit Wine version $1."
|
||||
set +e
|
||||
}
|
||||
# Note: install_wine function removed - we now use system wine with simplified bottle management
|
||||
|
||||
winetricks() {
|
||||
# Report used packages to the winetricks maintainer so he knows they are being used.
|
||||
@@ -104,29 +73,22 @@ install_rhvoice() {
|
||||
}
|
||||
|
||||
install_wine_bottle() {
|
||||
# Wine defaults to 64, so if you need 32 bit, don't forget export WINEARCH=win32
|
||||
export WINEARCH="${WINEARCH:-win32}"
|
||||
# Figure out if we are using a specific version of wine
|
||||
# Simple rule: wine64 for everything, wine32 ONLY for speech APIs (SAPI5 doesn't work in WOW64)
|
||||
local architecture
|
||||
if [[ "$*" =~ speechsdk || "$*" =~ sapi ]]; then
|
||||
architecture=32
|
||||
export WINEARCH="win32"
|
||||
echo "Using wine32 for speech API compatibility (SAPI5 broken in WOW64)"
|
||||
else
|
||||
architecture=64
|
||||
export WINEARCH="win64"
|
||||
echo "Using wine64 for optimal performance"
|
||||
fi
|
||||
|
||||
export WINEPREFIX="$HOME/.local/wine${architecture}"
|
||||
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"
|
||||
# Installation paths are based on WINEARCH unless game is set for custom bottle.
|
||||
local bottle=""
|
||||
if [[ ${#game} -gt 0 ]]; then
|
||||
bottle="${game,,}"
|
||||
bottle="${bottle//[[:space:]]/-}"
|
||||
if [[ -d "$HOME/.local/wine/${bottle}" ]]; then
|
||||
echo "$HOME/.local/wine/${bottle} exists. Please remove it before running this installer."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
if [[ ( -z "$WINEARCH" || "$WINEARCH" == "win64" ) && ! "$*" =~ speechsdk ]]; then
|
||||
local architecture=64
|
||||
else
|
||||
local architecture=32
|
||||
fi
|
||||
export WINEPREFIX="$HOME/.local/wine${bottle:+/}${bottle:-$architecture}"
|
||||
# Arguments to the function are dependancies to be installed.
|
||||
# Get location of mono and gecko.
|
||||
monoPath="$(find /usr/share/wine/ -maxdepth 1 -type d -name mono 2> /dev/null)"
|
||||
@@ -154,20 +116,12 @@ install_wine_bottle() {
|
||||
cp "${cache}/nvda2speechd" "${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd"
|
||||
chmod +x "${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd"
|
||||
fi
|
||||
winetricks -q isolate_home $@ ${winVer:-win7} ${winetricksSettings}
|
||||
# make it easy for game scripts to know which version of wine to use.
|
||||
if [[ ${#bottle} -gt 1 ]]; then
|
||||
echo "WINE=\"${WINE}\"" > "$HOME/.local/wine/${bottle}/agm.conf"
|
||||
echo "WINESERVER=\"${WINESERVER}\"" >> "$HOME/.local/wine/${bottle}/agm.conf"
|
||||
echo "Setting default voice for bottle \"${bottle}\" to \"${defaultVoice}\"."
|
||||
"${0%/*}/speech/set-voice.sh" -b "${bottle}" -r "${defaultRate:-7}" -v "${defaultVoice}"
|
||||
fi
|
||||
# If default voice is set, change it for the current architecture
|
||||
if [[ -z "$bottle" ]]; then
|
||||
if [[ ${#defaultVoice} -ge 2 ]] && [[ "${*}" =~ (speechsdk|sapi) ]]; then
|
||||
winetricks -q isolate_home "$@" "${winVer:-win7}" ${winetricksSettings}
|
||||
|
||||
# Set default voice for speech-enabled games
|
||||
if [[ ${#defaultVoice} -ge 2 ]] && [[ "$*" =~ (speechsdk|sapi) ]]; then
|
||||
echo "Setting default voice for wine${architecture}."
|
||||
"${0%/*}/speech/set-voice.sh" -b "${bottle}" -r "${defaultRate:-7}" -v "${defaultVoice}"
|
||||
fi
|
||||
"${0%/*}/speech/set-voice.sh" -b "wine${architecture}" -r "${defaultRate:-7}" -v "${defaultVoice}"
|
||||
fi
|
||||
}
|
||||
|
||||
|
@@ -49,8 +49,9 @@ agm_menu() {
|
||||
--height=400 \
|
||||
--width=600)
|
||||
|
||||
# Return the mapped value
|
||||
# Strip trailing pipes and return the mapped value
|
||||
if [[ -n "$selectedDescription" ]]; then
|
||||
selectedDescription="${selectedDescription%|}"
|
||||
echo "${valueMap["$selectedDescription"]}"
|
||||
fi
|
||||
else
|
||||
@@ -185,10 +186,12 @@ agm_yesno() {
|
||||
local text="$3"
|
||||
|
||||
if [[ "$dialogType" == "yad" ]]; then
|
||||
yad --question \
|
||||
yad --form \
|
||||
--title="$title" \
|
||||
--text="$text" \
|
||||
--field="$text:LBL" \
|
||||
--selectable-labels \
|
||||
--button="Yes:0" \
|
||||
--button="No:1" \
|
||||
--width=400
|
||||
else
|
||||
dialog --backtitle "$backTitle" \
|
||||
|
@@ -1,5 +1,5 @@
|
||||
download "http://download.dracoent.com/Windows/classic/AOSetup.exe"
|
||||
export bottle="draconis"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export winVer="win7"
|
||||
install_wine_bottle vb6run dx8vb speechsdk quartz
|
||||
cp -v "${cache}/AOSetup.exe" "$WINEPREFIX/drive_c/windows/temp/"
|
||||
|
@@ -1,5 +1,5 @@
|
||||
download "http://files.tunmi13.com/projects_archive/bth.zip"
|
||||
export bottle="tunmi13"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export winVer="win7"
|
||||
install_wine_bottle speechsdk
|
||||
unzip -d "$WINEPREFIX/drive_c/Program Files/$game" "${cache}/bth.zip"
|
||||
|
@@ -2,7 +2,7 @@ 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
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
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" "{}" \;
|
||||
|
@@ -1,5 +1,5 @@
|
||||
download "https://www.nyanchangames.com/softs/nn2_setup.exe"
|
||||
export bottle="nyanchan"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export winVer="win7"
|
||||
install_wine_bottle
|
||||
7z x -o"$WINEPREFIX/drive_c/nyanchangame/bk2" "${cache}/nn2_setup.exe"
|
||||
|
@@ -15,7 +15,7 @@ if [[ "${#dictFile}" -ge 3 ]] && [[ ! -r "${cache}/bk3-dict.dat" ]]; then
|
||||
agm_yesno "Bokurano Daibouken 3" "Bokurano Daibouken 3" "Possible English translation file found at $dictFile. Would you like to use it for BK3?" && cp -v "$dictFile" "${cache}/bk3-dict.dat"
|
||||
fi
|
||||
download "https://www.nyanchangames.com/softs/nn3_setup.exe" "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd" "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd32.dll"
|
||||
export bottle="nyanchan"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export winVer="win7"
|
||||
install_wine_bottle
|
||||
cp "${cache}/nvda2speechd" "${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd"
|
||||
|
@@ -1,5 +1,5 @@
|
||||
download "https://www.nyanchangames.com/softs/nn_setup.exe"
|
||||
export bottle="nyanchan"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export winVer="win7"
|
||||
install_wine_bottle
|
||||
7z x -o"$WINEPREFIX/drive_c/nyanchangame/bk" "${cache}/nn_setup.exe"
|
||||
|
@@ -1,5 +1,5 @@
|
||||
download "http://oriolgomez.com/games/bombercats_en.zip"
|
||||
export bottle="oriol-gomez"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export winVer="win7"
|
||||
install_wine_bottle
|
||||
unzip -d "$WINEPREFIX/drive_c/Program Files/bomvercats" "${cache}/bombercats_en.zip"
|
||||
|
@@ -1,5 +1,5 @@
|
||||
download "http://www.kaldobsky.com/audiogames/castaways2beta.zip"
|
||||
export bottle="aprone"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export winVer="win7"
|
||||
install_wine_bottle vb6run dx8vb speechsdk
|
||||
unzip -d "$WINEPREFIX/drive_c/Program Files/castaways2" "${cache}/castaways2beta.zip"
|
||||
|
@@ -1,5 +1,5 @@
|
||||
download "https://www.kaldobsky.com/audiogames/castaways.zip"
|
||||
export bottle="aprone"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export winVer="win7"
|
||||
install_wine_bottle vb6run dx8vb speechsdk
|
||||
unzip -d "$WINEPREFIX/drive_c/Program Files/castaways" "${cache}/castaways.zip"
|
||||
|
@@ -1,5 +1,5 @@
|
||||
download "http://files.tunmi13.com/projects_archive/coth.zip"
|
||||
export bottle="tunmi13"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export winVer="win7"
|
||||
install_wine_bottle speechsdk
|
||||
unzip -d "$WINEPREFIX/drive_c/Program Files/$game" "${cache}/coth.zip"
|
||||
|
@@ -1,5 +1,5 @@
|
||||
download "https://download.dracoent.com/Windows/ChangeReactionSetup.exe"
|
||||
export bottle="draconis"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export winVer="win7"
|
||||
install_wine_bottle vb6run dx8vb speechsdk quartz
|
||||
cp -v "${cache}/ChangeReactionSetup.exe" "$WINEPREFIX/drive_c/windows/temp/"
|
||||
|
@@ -1,5 +1,5 @@
|
||||
get_installer "clashes_of_the_sky.zip" "https://tunmi13.itch.io/clashes-of-the-sky"
|
||||
export bottle="tunmi13"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export winVer="win7"
|
||||
install_wine_bottle speechsdk
|
||||
unzip -d "$WINEPREFIX/drive_c/Program Files" "${cache}/clashes_of_the_sky.zip"
|
||||
|
@@ -1,4 +1,4 @@
|
||||
export bottle="oriol-gomez"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export winVer="win7"
|
||||
download "http://oriolgomez.com/games/copter_en.zip"
|
||||
install_wine_bottle
|
||||
|
@@ -1,5 +1,5 @@
|
||||
download "http://oriolgomez.com/games/wheel_en.zip"
|
||||
export bottle="oriol-gomez"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export winVer="win7"
|
||||
install_wine_bottle speechsdk
|
||||
unzip -d "$WINEPREFIX/drive_c/Program Files/danger on the wheel" "${cache}/wheel_en.zip"
|
||||
|
@@ -1,5 +1,5 @@
|
||||
#
|
||||
export bottle=pbgames
|
||||
# No custom bottle needed - use standard wine path based on architecture
|
||||
download "https://www.agarchive.net/games/pb/Dark-Destroyer-Setup.exe"
|
||||
install_wine_bottle speechsdk ie6
|
||||
wine "$cache/Dark-Destroyer-Setup.exe" /silent
|
||||
|
@@ -1,4 +1,4 @@
|
||||
export bottle="aprone"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export winVer="win7"
|
||||
export winetricksSettings="vd=1024x768"
|
||||
download "https://kaldobsky.com/audiogames/Daytona.zip"
|
||||
|
@@ -1,4 +1,4 @@
|
||||
export bottle="oriol-gomez"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export winVer="win7"
|
||||
download "http://oriolgomez.com/games/road_en.zip"
|
||||
install_wine_bottle
|
||||
|
@@ -1,4 +1,4 @@
|
||||
export bottle="aprone"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export winVer="win7"
|
||||
export winetricksSettings="vd=1024x768"
|
||||
download "https://www.kaldobsky.com/audiogames/dogwhohatestoast.zip"
|
||||
|
@@ -2,7 +2,7 @@ download https://scwl-1251129685.cos.ap-shanghai.myqcloud.com/dreamland/Win/Drea
|
||||
install_wine_bottle speechsdk ole32
|
||||
$wine "${cache}/DreamLandSetup.exe" /silent
|
||||
"Duck Hunt")
|
||||
export bottle="l-works"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
download "http://files.l-works.net/dhsetup.exe"
|
||||
install_wine_bottle vb6run dx8vb speechsdk
|
||||
wine "${cache}/dhsetup.exe" /silent
|
||||
|
@@ -1,5 +1,5 @@
|
||||
"Duck Hunt")
|
||||
export bottle="l-works"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
download "http://files.l-works.net/dhsetup.exe"
|
||||
install_wine_bottle vb6run dx8vb speechsdk
|
||||
wine "${cache}/dhsetup.exe" /silent
|
||||
|
@@ -1,5 +1,5 @@
|
||||
export winVer="win7"
|
||||
export bottle="draconis"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
download "http://download.dracoent.com/Windows/classic/DMSetup.exe"
|
||||
install_wine_bottle vb6run dx8vb speechsdk quartz
|
||||
cp -v "${cache}/DMSetup.exe" "$WINEPREFIX/drive_c/windows/temp/"
|
||||
|
@@ -1,5 +1,5 @@
|
||||
export winVer="win7"
|
||||
export bottle="draconis"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
download "http://download.dracoent.com/Windows/classic/PBCSetup.exe"
|
||||
install_wine_bottle vb6run dx8vb speechsdk quartz
|
||||
cp -v "${cache}/PBCSetup.exe" "$WINEPREFIX/drive_c/windows/temp/"
|
||||
|
@@ -1,5 +1,5 @@
|
||||
export winVer="win7"
|
||||
export bottle="draconis"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
download "http://download.dracoent.com/Windows/classic/PBXSetup.exe"
|
||||
install_wine_bottle vb6run dx8vb speechsdk quartz
|
||||
cp -v "${cache}/PBXSetup.exe" "$WINEPREFIX/drive_c/windows/temp/"
|
||||
|
@@ -1,5 +1,5 @@
|
||||
export winVer="win7"
|
||||
export bottle="draconis"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export WINEPREFIX="$HOME/.local/wine/draconis"
|
||||
# Only works in conjunction with esp pinball extreme.
|
||||
if ! [ -f "$HOME/.local/wine/$bottle/drive_c/Program Files/Draconis Entertainment/ESP Pinball Xtreme/pbx.exe" ] ; then
|
||||
|
@@ -1,6 +1,5 @@
|
||||
export version="6.18"
|
||||
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"
|
||||
install_wine "$version" "32"
|
||||
# Uses wine32 due to speechsdk dependency
|
||||
export winVer="win7"
|
||||
install_wine_bottle speechsdk msvcrt40 gdiplus ie7 wmp11 mf
|
||||
# Ok, more dotnet.
|
||||
|
@@ -1,4 +1,4 @@
|
||||
export bottle="oriol-gomez"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export winVer="win7"
|
||||
download "http://oriolgomez.com/games/bird_en.zip"
|
||||
install_wine_bottle
|
||||
|
@@ -1,4 +1,4 @@
|
||||
export bottle="oriol-gomez"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export winVer="win7"
|
||||
download "http://oriolgomez.com/games/hammer_en.zip"
|
||||
install_wine_bottle speechsdk
|
||||
|
@@ -1,4 +1,4 @@
|
||||
export bottle="oriol-gomez"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export winVer="win7"
|
||||
download "http://oriolgomez.com/games/insect_en.zip"
|
||||
install_wine_bottle
|
||||
|
@@ -1,4 +1,4 @@
|
||||
export bottle="l-works"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
download "http://files.l-works.net/judgmentdayfullsetup.exe"
|
||||
install_wine_bottle vb6run dx8vb quartz
|
||||
wine "${cache}/judgmentdayfullsetup.exe" /silent
|
||||
|
@@ -1,5 +1,5 @@
|
||||
# Currently only speaks in japanese, looking to see if we can find an english version.
|
||||
export bottle="nyanchan"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export winVer="win7"
|
||||
download "https://www.agarchive.net/games/nyanchan/laser%20breakout.7z" "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd32.dll" "https://stormgames.wolfe.casa/downloads/laser-breakout-options.dat"
|
||||
install_wine_bottle
|
||||
|
@@ -1,4 +1,4 @@
|
||||
export bottle="l-works"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
download "http://files.l-works.net/lockpicksetup.exe"
|
||||
install_wine_bottle vb6run dx8vb
|
||||
wine "${cache}/lockpicksetup.exe" /silent
|
||||
|
@@ -1,4 +1,4 @@
|
||||
export bottle=dan-z
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
download "https://agarchive.net/games/danZ/lost.zip"
|
||||
install_wine_bottle speechsdk
|
||||
unzip -d "$WINEPREFIX/drive_c/Program Files/lost" "$cache/lost.zip"
|
||||
|
@@ -1,4 +1,4 @@
|
||||
export bottle="aprone"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export winVer="win7"
|
||||
export winetricksSettings="vd=1024x768"
|
||||
download "https://kaldobsky.com/audiogames/lunimals.zip"
|
||||
|
@@ -1,5 +1,5 @@
|
||||
#
|
||||
export bottle="nyanchan"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export winVer="win7"
|
||||
download "https://www.nyanchangames.com/softs/MbSetupE.exe" "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd32.dll"
|
||||
install_wine_bottle speechsdk
|
||||
|
@@ -1,4 +1,4 @@
|
||||
export bottle=dan-z
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
download "http://www.danielzingaro.com/maze_craze_setup.exe"
|
||||
install_wine_bottle vb6run dx8vb
|
||||
${wine} "${cache}/maze_craze_setup.exe" &
|
||||
|
@@ -1,5 +1,5 @@
|
||||
export winVer="win7"
|
||||
export bottle="draconis"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
download "http://download.dracoent.com/Windows/classic/MBSetup.exe"
|
||||
install_wine_bottle vb6run dx8vb speechsdk quartz
|
||||
cp -v "${cache}/MBSetup.exe" "$WINEPREFIX/drive_c/windows/temp/"
|
||||
|
@@ -1,4 +1,4 @@
|
||||
export bottle="aprone"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export winVer="win7"
|
||||
export winetricksSettings="vd=1024x768"
|
||||
download "https://www.kaldobsky.com/audiogames/pawprints.zip"
|
||||
|
@@ -1,4 +1,4 @@
|
||||
export bottle="aprone"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export winVer="win7"
|
||||
export winetricksSettings="vd=1024x768"
|
||||
download "http://www.kaldobsky.com/audiogames/pentapath.zip"
|
||||
|
@@ -1,4 +1,4 @@
|
||||
export bottle="l-works"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
download "http://agarchive.net/games/lworks/pigeon%20panic%20setup.exe"
|
||||
install_wine_bottle vb6run dx8vb
|
||||
wine "${cache}/pigeon panic setup.exe" /silent
|
||||
|
@@ -1,4 +1,4 @@
|
||||
export bottle="aprone"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export winVer="win7"
|
||||
export winetricksSettings="vd=1024x768"
|
||||
download "https://www.kaldobsky.com/audiogames/Preludeamals.zip"
|
||||
|
@@ -1,4 +1,4 @@
|
||||
export bottle="aprone"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export winVer="win7"
|
||||
export winetricksSettings="vd=1024x768"
|
||||
download "https://www.kaldobsky.com/audiogames/puzzledivided.zip"
|
||||
|
@@ -1,4 +1,4 @@
|
||||
export bottle="aprone"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export winVer="win7"
|
||||
export winetricksSettings="vd=1024x768"
|
||||
download "http://www.kaldobsky.com/audiogames/rettou.zip"
|
||||
|
@@ -1,4 +1,4 @@
|
||||
export bottle="aprone"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export winVer="win7"
|
||||
export winetricksSettings="vd=1024x768"
|
||||
download "https://www.kaldobsky.com/audiogames/revelation.zip"
|
||||
|
@@ -1,4 +1,4 @@
|
||||
export bottle="oriol-gomez"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export winVer="win7"
|
||||
download "http://oriolgomez.com/games/rr_en.zip" "${nvdaControllerClientDll}"
|
||||
install_wine_bottle speechsdk
|
||||
|
@@ -1,4 +1,4 @@
|
||||
export bottle="oriol-gomez"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export winVer="win7"
|
||||
download "http://oriolgomez.com/games/rfyl_en.zip"
|
||||
install_wine_bottle
|
||||
|
@@ -1,4 +1,4 @@
|
||||
export bottle="nyanchan"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export winVer="win7"
|
||||
download "https://www.nyanchangames.com/softs/screamingStrike2.exe" "${nvdaControllerClientDll}"
|
||||
install_wine_bottle fakejapanese speechsdk
|
||||
|
@@ -1,6 +1,5 @@
|
||||
export version="7.7"
|
||||
download "https://www.mm-galabo.com/sr/Download_files_srfv/shadowrine_fullvoice3.171.exe" "https://raw.githubusercontent.com/LordLuceus/sr-english-localization/master/language_en.dat"
|
||||
install_wine "$version" "32"
|
||||
# Uses wine64 (no speech API dependency)
|
||||
export winVer="win8"
|
||||
install_wine_bottle
|
||||
$wine "${cache}/shadowrine_fullvoice3.171.exe" /sp- &
|
||||
|
@@ -1,5 +1,5 @@
|
||||
export winVer="win7"
|
||||
export bottle="draconis"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
download "http://download.dracoent.com/Windows/SilverDollarSetup.exe"
|
||||
install_wine_bottle speechsdk
|
||||
cp -v "${cache}/SilverDollarSetup.exe" "$WINEPREFIX/drive_c/windows/temp/"
|
||||
|
@@ -1,7 +1,7 @@
|
||||
download "https://tunmi13.com/projects/sb_pro_rw.zip" "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd64.dll"
|
||||
export WINEARCH=win64
|
||||
export winVer="win8"
|
||||
export bottle=tunmi13-64bit
|
||||
# No custom bottle - use standard wine64 path
|
||||
install_wine_bottle sapi
|
||||
unzip -d "$WINEPREFIX/drive_c/Program Files/" "${cache}/sb_pro_rw.zip"
|
||||
find "${WINEPREFIX}/drive_c/Program Files/sb_pro_rw" -type f -name 'nvdaControllerClient64.dll' -exec cp -v "${cache}/nvda2speechd64.dll" "{}" \;
|
||||
|
@@ -16,7 +16,7 @@ add_launcher "c:\Program Files\shooter\shooter.exe"
|
||||
download "https://tunmi13.com/projects/sb_pro_rw.zip" "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd64.dll"
|
||||
export WINEARCH=win64
|
||||
export winVer="win8"
|
||||
export bottle=tunmi13-64bit
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
install_wine_bottle sapi
|
||||
unzip -d "$WINEPREFIX/drive_c/Program Files/" "${cache}/sb_pro_rw.zip"
|
||||
find "${WINEPREFIX}/drive_c/Program Files/sb_pro_rw" -type f -name 'nvdaControllerClient64.dll' -exec cp -v "${cache}/nvda2speechd64.dll" "{}" \;
|
||||
|
@@ -1,4 +1,4 @@
|
||||
export bottle="l-works"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
download "https://agarchive.net/games/lworks/Smashathon0.02.zip"
|
||||
install_wine_bottle speechsdk
|
||||
unzip -d "$WINEPREFIX/drive_c/Program Files" "$cache/Smashathon0.02.zip"
|
||||
|
@@ -1,4 +1,4 @@
|
||||
export bottle=dan-z
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
download "http://www.danielzingaro.com/superdeekout_setup.exe" "http://www.danielzingaro.com/sd_full.exe"
|
||||
install_wine_bottle vb6run dx8vb
|
||||
${wine} "${cache}/superdeekout_setup.exe" &
|
||||
|
@@ -1,4 +1,4 @@
|
||||
export bottle="l-works"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
download "https://agarchive.net/games/lworks/super%20egg%20hunt+%20setup.exe"
|
||||
install_wine_bottle
|
||||
wine "${cache}/super egg hunt+ setup.exe" /silent
|
||||
|
@@ -1,4 +1,4 @@
|
||||
export bottle="l-works"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
download "http://files.l-works.net/superliamsetup.exe"
|
||||
install_wine_bottle vb6run dx8vb
|
||||
wine "${cache}/superliamsetup.exe" /silent
|
||||
|
@@ -1,7 +1,7 @@
|
||||
# Source dialog interface wrapper
|
||||
source "${0%/*}/../.includes/dialog-interface.sh"
|
||||
|
||||
export bottle="aprone"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export winVer="win7"
|
||||
export winetricksSettings="vd=1024x768"
|
||||
agm_yesno "Swamp Installation" "Swamp Installation" "If you do not have a full 32 bit gstreamer installation, the Swamp music can cause stuttering and crashes. Would you like to remove the music directory after installation?"
|
||||
|
@@ -1,4 +1,4 @@
|
||||
export bottle="aprone"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export winVer="win7"
|
||||
download "https://www.kaldobsky.com/audiogames/tarot.zip"
|
||||
install_wine_bottle vb6run dx8vb speechsdk
|
||||
|
@@ -1,5 +1,5 @@
|
||||
export winVer="win7"
|
||||
export bottle="draconis"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
download "http://download.dracoent.com/Windows/classic/TPAXPSetup.exe"
|
||||
install_wine_bottle vb6run dx8vb speechsdk quartz
|
||||
cp -v "${cache}/TPAXPSetup.exe" "$WINEPREFIX/drive_c/windows/temp/"
|
||||
|
@@ -1,4 +1,4 @@
|
||||
export bottle="l-works"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export winVer="win7"
|
||||
download "http://files.l-works.net/tgtrsetup_2.04.exe" "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd32.dll"
|
||||
install_wine_bottle dsound directmusic
|
||||
|
@@ -1,4 +1,4 @@
|
||||
export bottle="oriol-gomez"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export winVer="win7"
|
||||
download "http://oriolgomez.com/games/thief_en.zip"
|
||||
install_wine_bottle
|
||||
|
@@ -1,4 +1,4 @@
|
||||
export bottle="aprone"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export winVer="win7"
|
||||
download "https://www.kaldobsky.com/audiogames/tripletriad.zip"
|
||||
install_wine_bottle vb6run dx8vb speechsdk
|
||||
|
@@ -1,5 +1,5 @@
|
||||
export winVer="win7"
|
||||
export bottle="draconis"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
download "http://download.dracoent.com/Windows/classic/USSetup.exe"
|
||||
install_wine_bottle vb6run dx8vb speechsdk quartz
|
||||
cp -v "${cache}/USSetup.exe" "$WINEPREFIX/drive_c/windows/temp/"
|
||||
|
@@ -1,4 +1,4 @@
|
||||
export bottle="oriol-gomez"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export winVer="win7"
|
||||
download "${ipfsGateway}/ipfs/QmWx271xuk3Mv9XTBoVu5BDJvXFZdasawC2nhtV21WAaUU?filename=villains_en.zip"
|
||||
install_wine_bottle speechsdk
|
||||
|
@@ -1,4 +1,4 @@
|
||||
export bottle="nyanchan"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export winVer="win7"
|
||||
download "https://www.agarchive.net/games/nyanchan/world%20of%20war%20English.7z"
|
||||
install_wine_bottle
|
||||
|
@@ -2,7 +2,7 @@ get_installer "hp.zip" "https://tunmi13.itch.io/haunted-party"
|
||||
download "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd64.dll"
|
||||
export WINEARCH=win64
|
||||
export winVer="win8"
|
||||
export bottle=tunmi13-64bit
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
install_wine_bottle
|
||||
unzip -d "$WINEPREFIX/drive_c/Program Files/" "${cache}/hp.zip"
|
||||
find "${WINEPREFIX}/drive_c/Program Files/hp" -type f -name 'nvdaControllerClient64.dll' -exec cp -v "${cache}/nvda2speechd64.dll" "{}" \;
|
||||
|
@@ -39,20 +39,20 @@ fi
|
||||
|
||||
# Define a function to safely query the database
|
||||
query_database() {
|
||||
local db_file="$1"
|
||||
local sql_query="$2"
|
||||
sqlite3 -line "$db_file" "$sql_query"
|
||||
local dbFile="$1"
|
||||
local sqlQuery="$2"
|
||||
sqlite3 -line "$dbFile" "$sqlQuery"
|
||||
}
|
||||
|
||||
# Define a function to safely insert into the database
|
||||
insert_database() {
|
||||
local db_file="$1"
|
||||
local dbFile="$1"
|
||||
local text="$2"
|
||||
local translation="$3"
|
||||
|
||||
# Use sqlite3 .import feature which is more robust for special characters
|
||||
echo "$text|$translation" | sqlite3 -separator "|" "$db_file" ".import /dev/stdin temp_import"
|
||||
sqlite3 "$db_file" "INSERT OR IGNORE INTO translations SELECT * FROM temp_import; DROP TABLE IF EXISTS temp_import;"
|
||||
echo "$text|$translation" | sqlite3 -separator "|" "$dbFile" ".import /dev/stdin temp_import"
|
||||
sqlite3 "$dbFile" "INSERT OR IGNORE INTO translations SELECT * FROM temp_import; DROP TABLE IF EXISTS temp_import;"
|
||||
}
|
||||
|
||||
# Read so long as the application is running
|
||||
@@ -77,25 +77,25 @@ while pgrep -u "$USER" ^$1 &> /dev/null ; do
|
||||
|
||||
# Normalize different unicode space characters to the same space
|
||||
# https://stackoverflow.com/a/43640405
|
||||
alias normalize_spaces="perl -CSDA -plE 's/[^\\S\\t]/ /g'"
|
||||
alias normalize_unicode="normalize_spaces | nfc"
|
||||
alias normalizeSpaces="perl -CSDA -plE 's/[^\\S\\t]/ /g'"
|
||||
alias normalizeUnicode="normalizeSpaces | nfc"
|
||||
|
||||
# Normalize text
|
||||
normalized_text="$(echo "$text" | normalize_unicode)"
|
||||
normalizedText="$(echo "$text" | normalizeUnicode)"
|
||||
|
||||
# Create a temporary database for import
|
||||
sqlite3 "$translationFile" "CREATE TABLE IF NOT EXISTS temp_import(text TEXT, translation TEXT);"
|
||||
|
||||
# Check if we already have a translation
|
||||
translated=$(sqlite3 "$translationFile" "SELECT translation FROM translations WHERE text = '$normalized_text' LIMIT 1;" 2>/dev/null)
|
||||
translated=$(sqlite3 "$translationFile" "SELECT translation FROM translations WHERE text = '$normalizedText' LIMIT 1;" 2>/dev/null)
|
||||
|
||||
if [[ -z "$translated" ]]; then
|
||||
# Get translation from the trans utility
|
||||
translated="$(trans -no-autocorrect -no-warn -brief "$normalized_text" | head -1 | sed 's/\s*$//' | normalize_unicode)"
|
||||
translated="$(trans -no-autocorrect -no-warn -brief "$normalizedText" | head -1 | sed 's/\s*$//' | normalizeUnicode)"
|
||||
|
||||
if [[ -n "$translated" ]]; then
|
||||
# Insert using echo piping to avoid escaping issues
|
||||
echo "$normalized_text|$translated" | sqlite3 -separator "|" "$translationFile" ".import /dev/stdin temp_import"
|
||||
echo "$normalizedText|$translated" | sqlite3 -separator "|" "$translationFile" ".import /dev/stdin temp_import"
|
||||
sqlite3 "$translationFile" "INSERT OR IGNORE INTO translations SELECT * FROM temp_import; DELETE FROM temp_import;"
|
||||
fi
|
||||
fi
|
||||
|
@@ -19,9 +19,9 @@ while pgrep -u "$USER" ^$1 &> /dev/null ; do
|
||||
|
||||
if [[ "$wnd_title" =~ $lookfor ]]; then
|
||||
wnd_title=${BASH_REMATCH[1]}
|
||||
if [[ "$old_title" != "$wnd_title" ]]; then
|
||||
if [[ "$oldTitle" != "$wnd_title" ]]; then
|
||||
spd-say -- "$wnd_title"
|
||||
old_title="$wnd_title"
|
||||
oldTitle="$wnd_title"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
Reference in New Issue
Block a user