Compare commits
No commits in common. "9a47da3239cb44f4ca4c94046f553abebe70b42f" and "2c8b4196567394b9d29a161d0725df985b04f1e8" have entirely different histories.
9a47da3239
...
2c8b419656
@ -75,7 +75,6 @@ check_news() {
|
||||
fi
|
||||
}
|
||||
|
||||
# Automatic update function
|
||||
# Automatic update function
|
||||
update() {
|
||||
if ! [[ -d ".git" ]]; then
|
||||
@ -94,8 +93,7 @@ if [[ "$home" == "$remote" ]]; then
|
||||
fi
|
||||
dialog --backtitle "Audiogame Manager" \
|
||||
--yesno "Updates are available. Would you like to update now?" -1 -1 --stdout || return
|
||||
{ git pull
|
||||
git log '@{1}..' --pretty=format:'%an: %s'; }
|
||||
git pull
|
||||
exit $?
|
||||
}
|
||||
|
||||
@ -330,16 +328,10 @@ get_bottle() {
|
||||
"triple-triad"*)
|
||||
export WINEPREFIX="${HOME}/.local/wine/aprone" ;;
|
||||
"bg-"*) export WINEPREFIX="${HOME}/.local/wine/bg";;
|
||||
# draconis games
|
||||
"esp-pinball-classic"*) ;&
|
||||
"esp-pinball-extreme"*) ;&
|
||||
"esp-pinball-party-pack"*) ;&
|
||||
"silver-dollar"*) ;&
|
||||
"monkey-business"*) ;&
|
||||
"alien-outback"*) ;&
|
||||
"dyna-man"*) ;&
|
||||
"change-reaction"*) ;&
|
||||
"ten-pin-alley"*) export WINEPREFIX="${HOME}/.local/wine/draconis";;
|
||||
# ESP Pinball games
|
||||
"esp-pinball-classic"*) export WINEPREFIX="${HOME}/.local/wine/esp-pinball";;
|
||||
"esp-pinball-extreme"*) export WINEPREFIX="${HOME}/.local/wine/esp-pinball";;
|
||||
"esp-pinball-party-pack"*) export WINEPREFIX="${HOME}/.local/wine/esp-pinball";;
|
||||
# l-works games group
|
||||
"duck-hunt"*) ;&
|
||||
"judgement-day"*) ;&
|
||||
@ -431,24 +423,8 @@ get_installer() {
|
||||
get_steam() {
|
||||
# Arguments: $1 id of item for download, $2 url for game
|
||||
trap "exit 0" SIGINT
|
||||
echo "manual intervention required."
|
||||
echo "The next steps will install through steamcmd."
|
||||
alert
|
||||
dialog --backtitle "Audiogame Manager" \
|
||||
--yes-label "Continue with Steam" \
|
||||
--no-label "Install manually" \
|
||||
--extra-button \
|
||||
--extra-label "Exit" \
|
||||
--yesno "To install the game manually, place files in \"${WINEPREFIX}/drive_c/Program Files/${game}\"" -1 -1 --stdout
|
||||
case $? in
|
||||
0) echo "The next steps will install through steamcmd." ;;
|
||||
1)
|
||||
mkdir -p "${WINEPREFIX}/drive_c/Program Files/${game}"
|
||||
dialog --backtitle "Audiogame Manager" \
|
||||
--msgbox "Place game files in \"${WINEPREFIX}/drive_c/Program Files/${game}\" and press enter to continue." -1 -1 --stdout
|
||||
return
|
||||
;;
|
||||
*) exit 0 ;;
|
||||
esac
|
||||
# Check for steamcmd
|
||||
if ! command -v steamcmd &> /dev/null ; then
|
||||
dialog --backtitle "Audiogame Manager" \
|
||||
@ -714,7 +690,7 @@ install_wine_bottle() {
|
||||
game_installer() {
|
||||
export LANG="en_US.UTF-8"
|
||||
# Try to deal with systems in other languages
|
||||
mapfile -t installedGames < <(sed -e '/^$/d' -e '/^[[:space:]]*#/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
|
||||
declare -a menuList
|
||||
for i in "${gameList[@]}" ; do
|
||||
@ -743,7 +719,7 @@ game_installer() {
|
||||
|
||||
# remove games
|
||||
game_removal() {
|
||||
mapfile -t lines < <(sed -e '/^$/d' -e '/^[[:space:]]*#/d' "${configFile}" 2> /dev/null)
|
||||
mapfile -t lines < <(sed '/^$/d' "${configFile}" 2> /dev/null)
|
||||
if [[ ${#lines} -eq 0 ]]; then
|
||||
echo "No games found."
|
||||
exit 0
|
||||
@ -751,8 +727,7 @@ game_removal() {
|
||||
# Create the menu of installed games
|
||||
declare -a menuList
|
||||
for i in "${lines[@]}" ; do
|
||||
IFS='|' read -ra gameInfo <<< "$i"
|
||||
menuList+=("${gameInfo[0]}|${gameInfo[1]}" "${gameInfo[2]}")
|
||||
menuList+=("${i%|*}" "${i##*|}")
|
||||
done
|
||||
menuList+=("Donate" "Donate")
|
||||
menuList+=("Become a Patron" "Become a Patron")
|
||||
@ -806,8 +781,7 @@ kill_game() {
|
||||
# Create the menu of installed games
|
||||
declare -a menuList
|
||||
for i in "${lines[@]}" ; do
|
||||
IFS='|' read -ra gameInfo <<< "$i"
|
||||
menuList+=("${gameInfo[0]}|${gameInfo[1]}" "${gameInfo[2]}")
|
||||
menuList+=("${i%|*}" "${i##*|}")
|
||||
done
|
||||
menuList+=("Donate" "Donate")
|
||||
menuList+=("Become a Patron" "Become a Patron")
|
||||
@ -838,142 +812,11 @@ kill_game() {
|
||||
exit 0
|
||||
}
|
||||
|
||||
# for games that require custom scripts before launch or custom launch parameters
|
||||
custom_launch_parameters() {
|
||||
if [[ "${game[0]}" == "dragon-pong" ]]; then
|
||||
"${0%/*}/speech/speak_window_title.sh" DragonPong.exe &
|
||||
pushd "$(winepath "$winePath")"
|
||||
wine "$wineExec"
|
||||
popd
|
||||
exit 0
|
||||
fi
|
||||
if [[ "${game[0]}" == "executioner's-rage" ]]; then
|
||||
find "${WINEPREFIX}/drive_c/Program Files" -type f -name 'nvdaControllerClient64.dll' -exec cp -v "${cache}/nvda2speechd64.dll" "{}" \;
|
||||
fi
|
||||
if [[ "${game[0]}" == "haunted-party" ]]; then
|
||||
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
|
||||
fi
|
||||
if [[ "${game[0]}" == "laser-breakout" ]]; then
|
||||
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
|
||||
"${0%/*}/speech/speak_window_title.sh" play.exe &
|
||||
fi
|
||||
if [[ "${game[0]}" == "light-battles" ]]; then
|
||||
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
|
||||
fi
|
||||
if [[ "${game[0]}" == "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[0]}" == "oh-shit" ]]; then
|
||||
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
|
||||
fi
|
||||
if [[ "${game[0]}" == "bokurano-daibouken-2" ]]; then
|
||||
"${0%/*}/speech/clipboard_translator.sh" play.exe bokurano-daibouken2 &
|
||||
fi
|
||||
if [[ "${game[0]}" == "bokurano-daibouken" ]]; then
|
||||
"${0%/*}/speech/clipboard_translator.sh" play.exe bokurano-daibouken &
|
||||
fi
|
||||
if [[ "${game[0]}" =~ "bokurano-daibouken-3" ]]; then
|
||||
dictPath="$(winepath "${winePath}")"
|
||||
if [[ -r "${cache}/bk3-dict.dat" ]] && [[ ! -d "${dictPath}/dict" ]]; then
|
||||
cp "${cache}/bk3-dict.dat" "${dictPath}/dict.dat"
|
||||
fi
|
||||
if [[ -d "${dictPath}/dict" ]]; then
|
||||
if [[ ! -e "${dictPath}/data/nvdaControllerClient.dll" ]]; then
|
||||
cp "${cache}/nvda2speechd32.dll" "${dictPath}/data/nvdaControllerClient.dll"
|
||||
fi
|
||||
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
|
||||
fi
|
||||
if [[ ! -d "${dictPath}/dict" ]] && [[ ! -r "${cache}/bk3-dict.dat" ]]; then
|
||||
find "${WINEPREFIX}/drive_c/nyanchangame/bk3" -type f -name 'nvdaControllerClient.dll' -exec rm -v "{}" \;
|
||||
"${0%/*}/speech/clipboard_translator.sh" play.exe bokurano-daibouken3 &
|
||||
fi
|
||||
fi
|
||||
if [[ "${game[0]}" == "bop-it-emulator" ]]; then
|
||||
"${0%/*}/speech/speak_window_title.sh" bop.exe &
|
||||
fi
|
||||
if [[ "${game[0]}" == "breu2-shadow-hunt" ]]; then
|
||||
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
|
||||
fi
|
||||
if [[ "${game[0]}" == "road-to-rage" ]]; then
|
||||
"${0%/*}/speech/speak_window_title.sh" trtr.exe &
|
||||
fi
|
||||
if [[ "${game[0]}" == "sequence-storm" ]]; then
|
||||
"${0%/*}/speech/clipboard_reader.sh" SequenceStorm &
|
||||
fi
|
||||
if [[ "${game[0]}" == "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[0]}" == "sketchbook" ]]; then
|
||||
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvdaControllerClient32.dll" "{}" \;
|
||||
fi
|
||||
if [[ "${game[0]}" == "audiodisc" ]]; then
|
||||
wine "$winePath\\$wineExec"
|
||||
exit 0
|
||||
fi
|
||||
if [[ "${game[0]}" == "audioquake" ]]; then
|
||||
wine "$winePath\\$wineExec"
|
||||
exit 0
|
||||
fi
|
||||
if [[ "${game[0]}" == "screaming-strike-2" ]]; then
|
||||
pushd "$(winepath "$winePath")"
|
||||
${wine} "$wineExec"
|
||||
popd
|
||||
exit 0
|
||||
fi
|
||||
if [[ "${game[0]}" == "warsim" ]]; then
|
||||
pushd "$(winepath "${game[1]%\\*}")"
|
||||
wine "${game[1]##*\\}"
|
||||
popd
|
||||
exit 0
|
||||
fi
|
||||
if [[ "${game[0]}" == "interceptor" ]]; then
|
||||
pushd "$(winepath "$winePath")"
|
||||
wine "$wineExec"
|
||||
popd
|
||||
exit 0
|
||||
fi
|
||||
if [[ "${game[0]}" == "vip-mud" ]]; then
|
||||
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
|
||||
fi
|
||||
if [[ -d "${WINEPREFIX}/drive_c/windows/syswow64" ]]; then
|
||||
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
|
||||
# switch to wine64 for 64 bit prefix.
|
||||
[[ "${wine}" == "wine" ]] && export wine="wine64"
|
||||
fi
|
||||
if [[ "${game[0]}" == "the-great-toy-robbery" ]] ; then
|
||||
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
|
||||
fi
|
||||
}
|
||||
|
||||
# Process game launcher flags
|
||||
process_launcher-flags() {
|
||||
flags=("${game[@]:3}")
|
||||
for i in "${flags[@]}" ; do
|
||||
if [[ "${i}" =~ ^export\ [a-zA-Z_][a-zA-Z0-9_]*=\'?.*\'?$ ]]; then
|
||||
eval "${i}"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
create_game_array() {
|
||||
# Game array 0 bottle, 1 path, 2 title, 3+ flags
|
||||
for i in "${lines[@]}" ; do
|
||||
if [[ "${game}" =~ ^${i} ]]; then
|
||||
# This is weird. Why do I have to set game to i before making the array?
|
||||
game="$i"
|
||||
IFS='|' read -ra game <<< "$i"
|
||||
break
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# launch games that are installed
|
||||
game_launcher() {
|
||||
# For use by update scripts that want to source functions in this file.
|
||||
[[ "$agmNoLaunch" == "true" ]] && return
|
||||
mapfile -t lines < <(sed -e '/^$/d' -e '/^ *#/d' "${configFile}" 2> /dev/null)
|
||||
mapfile -t lines < <(sed '/^$/d' "${configFile}" 2> /dev/null)
|
||||
if [[ ${#lines} -eq 0 ]]; then
|
||||
echo "Install some games first."
|
||||
exit 0
|
||||
@ -982,8 +825,7 @@ game_launcher() {
|
||||
# Create the menu of installed games
|
||||
declare -a menuList
|
||||
for i in "${lines[@]}" ; do
|
||||
IFS='|' read -ra gameInfo <<< "$i"
|
||||
menuList+=("${gameInfo[0]}|${gameInfo[1]}" "${gameInfo[2]}")
|
||||
menuList+=("${i%|*}" "${i##*|}")
|
||||
done
|
||||
menuList+=("Donate" "Donate")
|
||||
menuList+=("Become a Patron" "Become a Patron")
|
||||
@ -1000,47 +842,156 @@ game_launcher() {
|
||||
elif [[ $menuCode -eq 3 ]]; then
|
||||
documentation "$game" "$(echo "$game" | cut -d '|' -f2)"
|
||||
fi
|
||||
create_game_array
|
||||
else
|
||||
create_game_array
|
||||
local game="$(grep "^${1}|" "${configFile}" 2> /dev/null)"
|
||||
game="${game%|*}"
|
||||
if [[ -z "$game" ]]; then
|
||||
echo "Game $1 not found."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
if [[ ${#game[@]} -gt 0 ]]; then
|
||||
if [[ "${game[0]}" == "Donate" ]]; then
|
||||
if [[ ${#game} -gt 0 ]]; then
|
||||
if [[ "$game" == "Donate" ]]; then
|
||||
open_url "https://ko-fi.com/stormux"
|
||||
exit 0
|
||||
fi
|
||||
if [[ "${game[0]}" == "Become a Patron" ]]; then
|
||||
if [[ "$game" == "Become a Patron" ]]; then
|
||||
open_url "https://2mb.games/product/2mb-patron/"
|
||||
exit 0
|
||||
fi
|
||||
get_bottle "${game[0]}"
|
||||
get_bottle "$game"
|
||||
# make sure wine is actually set to something
|
||||
export wine="${wine:-wine}"
|
||||
echo -n "launching "
|
||||
${wine} --version
|
||||
local winePath="${game#*|}"
|
||||
winePath="${winePath%\\*.exe}"
|
||||
local wineExec="${game#*|}"
|
||||
wineExec="${wineExec%|*}"
|
||||
wineExec="${wineExec##*\\}"
|
||||
# kill any previous existing wineservers for this prefix in case they didn't shut down properly.
|
||||
${wine}server -k
|
||||
# launch the game
|
||||
if command -v qjoypad &> /dev/null ; then
|
||||
mkdir -p ~/.qjoypad3
|
||||
touch "${HOME}/.qjoypad3/${game[2]}.lyt"
|
||||
touch "${HOME}/.qjoypad3/${game%|*}.lyt"
|
||||
# A | separated list of games that should not start with qjoypad.
|
||||
noQjoypadGames="A Hero's Call"
|
||||
if [[ "${noqjoypad}" != "true" ]] && ! [[ "${game[2]}" =~ ${noQjoypadGames} ]]; then
|
||||
noQjoypadGames="a-hero's-call"
|
||||
if [[ "${noqjoypad}" != "true" ]] && ! [[ "${game}" =~ ${noQjoypadGames} ]]; then
|
||||
if pgrep qjoypad &> /dev/null ; then
|
||||
qjoypad -T "${game[2]}" 2> /dev/null
|
||||
qjoypad -T "${game%|*}" 2> /dev/null
|
||||
else
|
||||
qjoypad -T "${game[2]}" 2> /dev/null &
|
||||
qjoypad -T "${game%|*}" 2> /dev/null &
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
process_launcher-flags
|
||||
custom_launch_parameters
|
||||
${wine:-wine} start /d "${game[1]%\\*}" "${game[1]##*\\}" /realtime
|
||||
# for games that require custom scripts before launch or custom launch parameters
|
||||
if [[ "$game" =~ dragon-pong ]]; then
|
||||
"${0%/*}/speech/speak_window_title.sh" DragonPong.exe &
|
||||
pushd "$(winepath "$winePath")"
|
||||
wine "$wineExec"
|
||||
popd
|
||||
exit 0
|
||||
fi
|
||||
if [[ "$game" =~ executioner\'s ]]; then
|
||||
find "${WINEPREFIX}/drive_c/Program Files" -type f -name 'nvdaControllerClient64.dll' -exec cp -v "${cache}/nvda2speechd64.dll" "{}" \;
|
||||
fi
|
||||
if [[ "$game" =~ haunted-party ]]; then
|
||||
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
|
||||
fi
|
||||
if [[ "$game" =~ laser-breakout ]]; then
|
||||
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
|
||||
"${0%/*}/speech/speak_window_title.sh" play.exe &
|
||||
fi
|
||||
if [[ "$game" =~ light-battles ]]; then
|
||||
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
|
||||
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" =~ oh-shit ]]; then
|
||||
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
|
||||
fi
|
||||
if [[ "$game" =~ ^bokurano-daibouken-2\| ]]; then
|
||||
"${0%/*}/speech/clipboard_translator.sh" play.exe bokurano-daibouken2 &
|
||||
fi
|
||||
if [[ "$game" =~ ^bokurano-daibouken\| ]]; then
|
||||
"${0%/*}/speech/clipboard_translator.sh" play.exe bokurano-daibouken &
|
||||
fi
|
||||
if [[ "$game" =~ bokurano-daibouken-3 ]]; then
|
||||
dictPath="$(winepath "${winePath}")"
|
||||
if [[ -r "${cache}/bk3-dict.dat" ]] && [[ ! -d "${dictPath}/dict" ]]; then
|
||||
cp "${cache}/bk3-dict.dat" "${dictPath}/dict.dat"
|
||||
fi
|
||||
if [[ -d "${dictPath}/dict" ]]; then
|
||||
if [[ ! -e "${dictPath}/data/nvdaControllerClient.dll" ]]; then
|
||||
cp "${cache}/nvda2speechd32.dll" "${dictPath}/data/nvdaControllerClient.dll"
|
||||
fi
|
||||
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
|
||||
fi
|
||||
if [[ ! -d "${dictPath}/dict" ]] && [[ ! -r "${cache}/bk3-dict.dat" ]]; then
|
||||
find "${WINEPREFIX}/drive_c/nyanchangame/bk3" -type f -name 'nvdaControllerClient.dll' -exec rm -v "{}" \;
|
||||
"${0%/*}/speech/clipboard_translator.sh" play.exe bokurano-daibouken3 &
|
||||
fi
|
||||
fi
|
||||
if [[ "$game" =~ bop-it-emulator ]]; then
|
||||
"${0%/*}/speech/speak_window_title.sh" bop.exe &
|
||||
fi
|
||||
if [[ "$game" =~ breu2-shadow-hunt ]]; then
|
||||
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
|
||||
fi
|
||||
if [[ "$game" =~ road-to-rage\| ]]; then
|
||||
"${0%/*}/speech/speak_window_title.sh" trtr.exe &
|
||||
fi
|
||||
if [[ "$game" =~ sequence-storm ]]; then
|
||||
"${0%/*}/speech/clipboard_reader.sh" SequenceStorm &
|
||||
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
|
||||
wine "$winePath\\$wineExec"
|
||||
exit 0
|
||||
fi
|
||||
if [[ "$game" =~ audioquake ]]; then
|
||||
wine "$winePath\\$wineExec"
|
||||
exit 0
|
||||
fi
|
||||
if [[ "$game" =~ screaming-strike-2 ]]; then
|
||||
pushd "$(winepath "$winePath")"
|
||||
${wine} "$wineExec"
|
||||
popd
|
||||
exit 0
|
||||
fi
|
||||
if [[ "$game" =~ warsim ]]; then
|
||||
pushd "$(winepath "$winePath")"
|
||||
wine "$wineExec"
|
||||
popd
|
||||
exit 0
|
||||
fi
|
||||
if [[ "$game" =~ interceptor ]]; then
|
||||
pushd "$(winepath "$winePath")"
|
||||
wine "$wineExec"
|
||||
popd
|
||||
exit 0
|
||||
fi
|
||||
if [[ "$game" =~ vip-mud ]]; then
|
||||
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
|
||||
fi
|
||||
if [[ -d "${WINEPREFIX}/drive_c/windows/syswow64" ]]; then
|
||||
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
|
||||
# switch to wine64 for 64 bit prefix.
|
||||
[[ "${wine}" == "wine" ]] && export wine="wine64"
|
||||
fi
|
||||
if [[ "$game" =~ the-great-toy-robbery ]] ; then
|
||||
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
|
||||
fi
|
||||
${wine:-wine} start /d "${winePath}" "$wineExec" /realtime
|
||||
fi
|
||||
exit 0
|
||||
}
|
||||
@ -1053,11 +1004,6 @@ game_launcher() {
|
||||
add_launcher() {
|
||||
local launchSettings="${game,,}"
|
||||
launchSettings="${launchSettings//[[:space:]]/-}|${1}|${game}"
|
||||
shift
|
||||
while [[ $# -gt 0 ]]; do
|
||||
launchSettings+="|$1"
|
||||
shift
|
||||
done
|
||||
if ! grep -F -q -x "${launchSettings}" "${configFile}" 2> /dev/null ; then
|
||||
echo "${launchSettings}" >> "${configFile}"
|
||||
sort -o "${configFile}" "${configFile}"
|
||||
@ -1116,7 +1062,6 @@ unset manualInstall
|
||||
unset version
|
||||
# ipfs gateway
|
||||
export ipfsGateway="${ipfsGateway:-https://gateway.pinata.cloud}"
|
||||
export nvdaControllerClientDll="${ipfsGateway}/ipfs/QmWu7YdSbKMk1Qm5DKvEA5hk1YuAK8wVkwhDf2CsmPkmF1?filename=nvdaControllerClient32.dll"
|
||||
|
||||
|
||||
# The list of games available for installation.
|
||||
@ -1129,7 +1074,6 @@ gameList=(
|
||||
"Angel Gift"
|
||||
"AudioDisc"
|
||||
"AudioQuake"
|
||||
"Balatro"
|
||||
"Battlefield 2D"
|
||||
"Battle of the Hunter"
|
||||
"Battle Zone"
|
||||
@ -1192,7 +1136,6 @@ gameList=(
|
||||
"Castaways"
|
||||
"Castaways 2"
|
||||
"Challenge of the Horse"
|
||||
"Change Reaction"
|
||||
"Chillingham"
|
||||
#"Chopper Challenge"
|
||||
"Christmas Chaos"
|
||||
@ -1287,7 +1230,6 @@ gameList=(
|
||||
"Sarah and the Castle of Witchcraft and Wizardry"
|
||||
"Scramble!"
|
||||
"Screaming Strike 2"
|
||||
"Scrolling Battles"
|
||||
"Sketchbook"
|
||||
"Sequence Storm"
|
||||
#"Shades of Doom 1.2"
|
||||
@ -1295,13 +1237,11 @@ gameList=(
|
||||
"Shadow Line"
|
||||
"Shooter"
|
||||
"Silver Dollar"
|
||||
"Simple Fighter"
|
||||
"Skateboarder Pro"
|
||||
"Slender Lost Vision"
|
||||
"Sonic the Hedgehog"
|
||||
"Sonic Zoom"
|
||||
#"Space Defender"
|
||||
#"Star Treck Final Conflict"
|
||||
"Super Deekout"
|
||||
"Super Dogs Bone Hunt"
|
||||
"Super Egg Hunt"
|
||||
@ -1345,7 +1285,7 @@ for i in curl sox wine winetricks ; do
|
||||
fi
|
||||
done
|
||||
# Get latest news if available
|
||||
check_news
|
||||
#check_news
|
||||
# With no arguments, open the game launcher.
|
||||
if [[ $# -eq 0 ]]; then
|
||||
game_launcher
|
||||
@ -1417,7 +1357,7 @@ done
|
||||
# Install game based on the selection above.
|
||||
case "${game}" in
|
||||
"A Hero's Call")
|
||||
download "https://blindgamers.com/downloads/a-heros-call-freeware.zip" "${nvdaControllerClientDll}"
|
||||
download "https://blindgamers.com/downloads/a-heros-call-freeware.zip" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient32.dll"
|
||||
export winVer="win7"
|
||||
export winetricksSettings="vd=1024x768"
|
||||
install_wine_bottle speechsdk corefonts
|
||||
@ -1443,12 +1383,9 @@ case "${game}" in
|
||||
;;
|
||||
"Alien Outback")
|
||||
download "http://download.dracoent.com/Windows/classic/AOSetup.exe"
|
||||
export bottle="draconis"
|
||||
export winVer="win7"
|
||||
install_wine_bottle vb6run dx8vb speechsdk quartz
|
||||
cp -v "${cache}/AOSetup.exe" "$WINEPREFIX/drive_c/windows/temp/"
|
||||
wine "c:/windows/temp/AOSetup.exe" /sp- /silent
|
||||
rm -fv "$WINEPREFIX/drive_c/windows/temp/AOSetup.exe"
|
||||
wine "${cache}/AOSetup.exe" /sp- /silent
|
||||
# warning warning warning: Do not change location, or installer will not function.
|
||||
# FIXME: Hacky, but it works. Install dotnet20 by itself so it actually doesn't hang.
|
||||
winetricks -q dotnet20
|
||||
@ -1478,26 +1415,6 @@ download "https://erion.cf/files/ag_103.zip"
|
||||
echo "After you launch the game, press tab then enter and it should begin speaking."
|
||||
alert
|
||||
;;
|
||||
"Balatro")
|
||||
download "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd64.dll" "https://stormgames.wolfe.casa/downloads/Tolk.dll" "https://github.com/Aurelius7309/BlackHole/releases/download/0.3.1/BlackHole-Release.zip"
|
||||
export WINEARCH=win64
|
||||
export winVer="win10"
|
||||
install_wine_bottle
|
||||
get_steam "2379780" "https://store.steampowered.com/app/2379780/Balatro/"
|
||||
mkdir -p "$WINEPREFIX/drive_c/users/$USER/AppData/Roaming/Balatro/Mods"
|
||||
unzip -d "$WINEPREFIX/drive_c/users/$USER/AppData/Roaming/Balatro" "$cache/BlackHole-Release.zip"
|
||||
pushd "$WINEPREFIX/drive_c/users/$USER/AppData/Roaming/Balatro/Mods"
|
||||
(cat mod_urls.txt ; echo) | while read -r x ; do
|
||||
git clone "$x"
|
||||
done
|
||||
cp -v BlackHole/bin/*.dll "$WINEPREFIX/drive_c/Program Files/Balatro"
|
||||
cp -v "$cache/Tolk.dll" "$WINEPREFIX/drive_c/Program Files/Balatro/tolk.dll"
|
||||
cp -v "$cache/Tolk.dll" BlackHole/bin/tolk.dll
|
||||
cp -v "$cache/nvda2speechd64.dll" "$WINEPREFIX/drive_c/Program Files/Balatro/nvdaControllerClient64.dll"
|
||||
cp -v "$cache/nvda2speechd64.dll" BlackHole/bin/nvdaControllerClient64.dll
|
||||
cp -v ../version.dll "$WINEPREFIX/drive_c/Program Files/Balatro"
|
||||
add_launcher 'c:\Program Files\Balatro\Balatro.exe' 'export WINEDLLOVERRIDES=version=n,b'
|
||||
;;
|
||||
"Battlefield 2D")
|
||||
get_installer "bf.zip" "https://tunmi13.itch.io/battlefield-2d"
|
||||
download "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd64.dll"
|
||||
@ -1949,7 +1866,7 @@ download "https://erion.cf/files/ag_103.zip"
|
||||
add_launcher "c:\Program Files\bomvercats\game.exe"
|
||||
;;
|
||||
"Breed Memorial")
|
||||
download "https://hirotaka2014.sakura.ne.jp/mh0406/game/breed_memorial.zip" "${nvdaControllerClientDll}"
|
||||
download "https://hirotaka2014.sakura.ne.jp/mh0406/game/breed_memorial.zip" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient32.dll"
|
||||
export winVer="win7"
|
||||
install_wine_bottle cjkfonts speechsdk
|
||||
unzip -d "$WINEPREFIX/drive_c/Program Files/" "${cache}/breed_memorial.zip"
|
||||
@ -1983,20 +1900,6 @@ download "https://erion.cf/files/ag_103.zip"
|
||||
find "${WINEPREFIX}" -type f -name "nvdaControllerClient32.dll" -exec rm -fv "{}" \;
|
||||
add_launcher "c:\Program Files\\${game}\game.exe"
|
||||
;;
|
||||
"Change Reaction")
|
||||
download "https://download.dracoent.com/Windows/ChangeReactionSetup.exe"
|
||||
export bottle="draconis"
|
||||
export winVer="win7"
|
||||
install_wine_bottle vb6run dx8vb speechsdk quartz
|
||||
cp -v "${cache}/ChangeReactionSetup.exe" "$WINEPREFIX/drive_c/windows/temp/"
|
||||
wine "c:/windows/temp/ChangeReactionSetup.exe" /sp- /silent
|
||||
rm -fv "$WINEPREFIX/drive_c/windows/temp/ChangeReactionSetup.exe"
|
||||
# warning warning warning: Do not change location, or installer will not function.
|
||||
# FIXME: Hacky, but it works. Install dotnet20 by itself so it actually doesn't hang.
|
||||
winetricks -q dotnet20
|
||||
wineserver -k # Damn you, dotnet.
|
||||
add_launcher "c:\Program Files\Draconis Entertainment\Change Reaction\ChangeReactionGui.exe"
|
||||
;;
|
||||
"Chillingham")
|
||||
download "https://stormgames.wolfe.casa/downloads/chillingham.zip"
|
||||
install_wine_bottle vb6run mfc42
|
||||
@ -2085,14 +1988,12 @@ download "https://erion.cf/files/ag_103.zip"
|
||||
add_launcher "c:\Program Files\copter mission\game.exe"
|
||||
;;
|
||||
"Crazy Party")
|
||||
export WINEARCH=win64
|
||||
export winVer="win8"
|
||||
download "http://pragmapragma.free.fr/crazy-party/Crazy-Party-beta82.zip" "https://stormgames.wolfe.casa/downloads/Tolk.dll" "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd64.dll"
|
||||
install_wine_bottle
|
||||
unzip -d "$WINEPREFIX/drive_c/Program Files" "${cache}/Crazy-Party-beta82.zip"
|
||||
find "${WINEPREFIX}" -type f -name 'Tolk.dll' -exec cp -v "${cache}/Tolk.dll" "{}" \;
|
||||
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient64.dll' -exec cp -v "${cache}/nvda2speechd64.dll" "{}" \;
|
||||
add_launcher "c:\Program Files\Crazy-Party-beta82\Crazy Party.exe"
|
||||
export winVer="win7"
|
||||
download "${ipfsGateway}/ipfs/QmZPsVdizDW6nrNj9czPTctAomYxafs7SYRw6YjqxPidvn?filename=Crazy-Party-beta78.zip"
|
||||
install_wine_bottle speechsdk
|
||||
unzip -d "$WINEPREFIX/drive_c/Program Files" "${cache}/Crazy-Party-beta78.zip"
|
||||
add_launcher "c:\Program Files\Crazy-Party-beta78\Crazy Party.exe"
|
||||
rm -f "${WINEPREFIX}/drive_c/Program Files/Crazy-Party-beta78/nvdaControllerClient32.dll"
|
||||
;;
|
||||
"Crazy Tennis")
|
||||
download "https://www.agarchive.net/games/VIP/crazy%20tennis%20setup.exe"
|
||||
@ -2194,12 +2095,9 @@ download "https://erion.cf/files/ag_103.zip"
|
||||
;;
|
||||
"DynaMan")
|
||||
export winVer="win7"
|
||||
export bottle="draconis"
|
||||
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/"
|
||||
wine "c:/windows/temp/DMSetup.exe" /sp- /silent
|
||||
rm -fv "$WINEPREFIX/drive_c/windows/temp/DMSetup.exe"
|
||||
wine "${cache}/DMSetup.exe" /sp- /silent
|
||||
# warning warning warning: Do not change location, or installer will not function.
|
||||
# FIXME: Hacky, but it works. Install dotnet20 by itself so it actually doesn't hang.
|
||||
winetricks -q dotnet20
|
||||
@ -2251,12 +2149,10 @@ download "https://erion.cf/files/ag_103.zip"
|
||||
;;
|
||||
"ESP Pinball Classic")
|
||||
export winVer="win7"
|
||||
export bottle="draconis"
|
||||
export bottle="esp-pinball"
|
||||
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/"
|
||||
wine "c:/windows/temp/PBCSetup.exe" /sp- /silent
|
||||
rm -fv "$WINEPREFIX/drive_c/windows/temp/PBCSetup.exe"
|
||||
wine "${cache}/PBCSetup.exe" /sp- /silent
|
||||
# warning warning warning: Do not change location, or installer will not function.
|
||||
# FIXME: Hacky, but it works. Install dotnet20 by itself so it actually doesn't hang.
|
||||
winetricks -q dotnet20
|
||||
@ -2265,12 +2161,10 @@ download "https://erion.cf/files/ag_103.zip"
|
||||
;;
|
||||
"ESP Pinball Extreme")
|
||||
export winVer="win7"
|
||||
export bottle="draconis"
|
||||
export bottle="esp-pinball"
|
||||
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/"
|
||||
wine "c:/windows/temp/PBXSetup.exe" /sp- /silent
|
||||
rm -fv "$WINEPREFIX/drive_c/windows/temp/PBXSetup.exe"
|
||||
wine "${cache}/PBXSetup.exe" /sp- /silent
|
||||
# warning warning warning: Do not change location, or installer will not function.
|
||||
# FIXME: Hacky, but it works. Install dotnet20 by itself so it actually doesn't hang.
|
||||
winetricks -q dotnet20
|
||||
@ -2279,17 +2173,15 @@ download "https://erion.cf/files/ag_103.zip"
|
||||
;;
|
||||
"ESP Pinball Party Pack")
|
||||
export winVer="win7"
|
||||
export bottle="draconis"
|
||||
export WINEPREFIX="$HOME/.local/wine/draconis"
|
||||
export bottle="esp-pinball"
|
||||
export WINEPREFIX="$HOME/.local/wine/esp-pinball"
|
||||
# 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
|
||||
echo "Error: You need to install ESP Pinball Extreme first to use this game. Please do so before continuing." >&2
|
||||
exit 1
|
||||
fi
|
||||
download "http://download.dracoent.com/Windows/classic/PP1Setup.exe"
|
||||
cp -v "${cache}/PP1Setup.exe" "$WINEPREFIX/drive_c/windows/temp/"
|
||||
wine "c:/windows/temp/PP1Setup.exe" /sp- /silent
|
||||
rm -fv "$WINEPREFIX/drive_c/windows/temp/PP1Setup.exe"
|
||||
wine "${cache}/PP1Setup.exe" /sp- /silent
|
||||
add_launcher "c:\Program Files\Draconis Entertainment\ESP Pinball Xtreme\pbx.exe"
|
||||
;;
|
||||
"Eurofly")
|
||||
@ -2670,12 +2562,9 @@ EOF
|
||||
;;
|
||||
"Monkey Business")
|
||||
export winVer="win7"
|
||||
export bottle="draconis"
|
||||
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/"
|
||||
wine "c:/windows/temp/MBSetup.exe" /sp- /silent
|
||||
rm -fv "$WINEPREFIX/drive_c/windows/temp/MBSetup.exe"
|
||||
wine "${cache}/MBSetup.exe" /sp- /silent
|
||||
# warning warning warning: Do not change location, or installer will not function.
|
||||
# FIXME: Hacky, but it works. Install dotnet20 by itself so it actually doesn't hang.
|
||||
winetricks -q dotnet20
|
||||
@ -2715,7 +2604,7 @@ EOF
|
||||
"Oh Shit")
|
||||
export winVer="win7"
|
||||
export norh="true" # Requires sapi even though uses nvda
|
||||
download "${ipfsGateway}/ipfs/QmQnAJJrt5uABFziQc7enXYrJ74J9GKQSMi8Ry8ebsxfPV?filename=OhShit.zip" "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd" "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd32.dll"
|
||||
download "${ipfsGateway}/ipfs/QmQnAJJrt5uABFziQc7enXYrJ74J9GKQSMi8Ry8ebsxfPV?filename=OhShit.zip" "https://stormgames.wolfe.casa/downloads/nvda2speechd32.dll"
|
||||
install_wine_bottle speechsdk
|
||||
unzip -d "$WINEPREFIX/drive_c/Program Files" "${cache}/OhShit.zip"
|
||||
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvda2speechd32.dll" "{}" \;
|
||||
@ -2884,7 +2773,7 @@ EOF
|
||||
"Rhythm Rage")
|
||||
export bottle="oriol-gomez"
|
||||
export winVer="win7"
|
||||
download "http://oriolgomez.com/games/rr_en.zip" "${nvdaControllerClientDll}"
|
||||
download "http://oriolgomez.com/games/rr_en.zip" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient32.dll"
|
||||
install_wine_bottle speechsdk
|
||||
unzip -d "$WINEPREFIX/drive_c/Program Files/rhythm rage" "${cache}/rr_en.zip"
|
||||
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvdaControllerClient32.dll" "{}" \;
|
||||
@ -2919,7 +2808,7 @@ EOF
|
||||
;;
|
||||
"RS Games")
|
||||
export version="7.0"
|
||||
download "http://rsgames.org/rsdownloads/rsgclient/rsgames-client-setup-2.01.exe" "${nvdaControllerClientDll}"
|
||||
download "http://rsgames.org/rsdownloads/rsgclient/rsgames-client-setup-2.01.exe" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient32.dll"
|
||||
install_wine "$version" "32"
|
||||
export winVer="win7"
|
||||
install_wine_bottle speechsdk
|
||||
@ -2937,7 +2826,7 @@ EOF
|
||||
;;
|
||||
"Sammy Center")
|
||||
export winVer="win7"
|
||||
download "http://www.samtupy.com/games/SCSetup.exe" "${nvdaControllerClientDll}"
|
||||
download "http://www.samtupy.com/games/SCSetup.exe" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient32.dll"
|
||||
install_wine_bottle speechsdk
|
||||
wine "${cache}/SCSetup.exe" /silent
|
||||
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvdaControllerClient32.dll" "{}" \;
|
||||
@ -2953,7 +2842,7 @@ EOF
|
||||
"Scramble!")
|
||||
winetricksSettings="vd=1024x768"
|
||||
export winVer="win7"
|
||||
download "https://stevend.net/downloads/scramble_win32.zip" "${nvdaControllerClientDll}"
|
||||
download "https://stevend.net/downloads/scramble_win32.zip" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient32.dll"
|
||||
install_wine_bottle speechsdk
|
||||
unzip -d "$WINEPREFIX/drive_c/Program Files/" "${cache}/scramble_win32.zip"
|
||||
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvdaControllerClient32.dll" "{}" \;
|
||||
@ -2962,7 +2851,7 @@ EOF
|
||||
"Screaming Strike 2")
|
||||
export bottle="nyanchan"
|
||||
export winVer="win7"
|
||||
download "https://www.nyanchangames.com/softs/screamingStrike2.exe" "${nvdaControllerClientDll}"
|
||||
download "https://www.nyanchangames.com/softs/screamingStrike2.exe" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient32.dll"
|
||||
install_wine_bottle fakejapanese speechsdk
|
||||
wine "${cache}/screamingStrike2.exe" &
|
||||
xdotool sleep 10 key Return
|
||||
@ -2970,19 +2859,9 @@ EOF
|
||||
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvdaControllerClient32.dll" "{}" \;
|
||||
add_launcher "c:\nyanchangame\Screaming Strike 2\play.exe"
|
||||
;;
|
||||
"Scrolling Battles")
|
||||
export WINEARCH=win64
|
||||
export winVer="win7"
|
||||
get_installer "sbrw-win.zip" "https://masonasons.itch.io/sbrw"
|
||||
download "https://stormgames.wolfe.casa/downloads/Tolk.dll"
|
||||
install_wine_bottle
|
||||
unzip -d "$WINEPREFIX/drive_c/Program Files/sbrw" "${cache}/sbrw-win.zip"
|
||||
find "${WINEPREFIX}" -type f -name 'Tolk.dll' -exec cp -v "${cache}/Tolk.dll" "{}" \;
|
||||
add_launcher "c:\Program Files\sbrw\sb.exe"
|
||||
;;
|
||||
"Sketchbook")
|
||||
export winVer="win7"
|
||||
download "http://sbyw.games/SBYW/SBYW.zip" "http://sbyw.games/SBYW/sounds.zip" "${nvdaControllerClientDll}"
|
||||
download "http://sbyw.games/SBYW/SBYW.zip" "http://sbyw.games/SBYW/sounds.zip" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient32.dll"
|
||||
install_wine_bottle speechsdk
|
||||
mv -v "${cache}/sounds.zip" "${cache}/SBYW-sounds.zip"
|
||||
unzip -d "$WINEPREFIX/drive_c/Program Files/sketchbook" "${cache}/SBYW.zip"
|
||||
@ -3015,7 +2894,7 @@ EOF
|
||||
;;
|
||||
"Shadow Line")
|
||||
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"
|
||||
download "https://www.mm-galabo.com/sr/Download_files_srfv/shadowrine_fullvoice3.171.exe"
|
||||
install_wine "$version" "32"
|
||||
export winVer="win8"
|
||||
install_wine_bottle
|
||||
@ -3029,44 +2908,19 @@ EOF
|
||||
xdotool key --clearmodifiers --delay=500 space
|
||||
xdotool key --clearmodifiers --delay=500 alt+f
|
||||
${wine}server -w
|
||||
mv -v "${cache}/language_en.dat" "${WINEPREFIX}/drive_c/Program Files/GalaxyLaboratory/ShadowRine_FullVoice/SystemData/language_en.dat"
|
||||
add_launcher "c:\Program Files\GalaxyLaboratory\ShadowRine_FullVoice\play_sr.exe"
|
||||
echo "Please set the language to English when the game opens."
|
||||
echo "Go to options and press enter."
|
||||
echo "Press down arrow 5 times and press enter."
|
||||
echo "Press down arrow 1 time and press enter."
|
||||
echo "Press up arrow 2 times and press enter."
|
||||
echo "If everything worked as expected you should be back on the game menu and speech should work."
|
||||
alert
|
||||
;;
|
||||
"Silver Dollar")
|
||||
export winVer="win7"
|
||||
export bottle="draconis"
|
||||
download "http://download.dracoent.com/Windows/SilverDollarSetup.exe"
|
||||
install_wine_bottle speechsdk
|
||||
cp -v "${cache}/SilverDollarSetup.exe" "$WINEPREFIX/drive_c/windows/temp/"
|
||||
wine "c:/windows/temp/SilverDollarSetup.exe" /sp- /silent
|
||||
rm -fv "$WINEPREFIX/drive_c/windows/temp/SilverDollarSetup.exe"
|
||||
wine "${cache}/SilverDollarSetup.exe" /silent
|
||||
# warning warning warning: Do not change location, or installer will not function.
|
||||
# FIXME: Hacky, but it works. Install dotnet40 by itself so it actually doesn't hang.
|
||||
DISPLAY="" winetricks -q dotnet40
|
||||
wineserver -k # Damn you, dotnet.
|
||||
add_launcher "c:\Program Files\Draconis Entertainment\Silver Dollar\SilverDollarGui.exe"
|
||||
;;
|
||||
"Simple Fighter")
|
||||
export WINEARCH=win64
|
||||
export winVer="win7"
|
||||
get_installer "simple fighter.exe" "https://tsatria03.itch.io/simple-fighter"
|
||||
if [[ ! -r "${cache}/simple-fighter-sounds.7z" ]] && [[ ! -r "${cache}/sounds.7z" ]]; then
|
||||
get_installer "sounds.7z" "https://tsatria03.itch.io/simple-fighter"
|
||||
mv "${cache}/sounds.7z" "${cache}/simple-fighter-sounds.7z"
|
||||
fi
|
||||
install_wine_bottle
|
||||
7z x -o"$WINEPREFIX/drive_c/Program Files/simple fighter" "${cache}/simple fighter.exe"
|
||||
7z x -o"$WINEPREFIX/drive_c/Program Files/simple fighter/sounds" "${cache}/simple-fighter-sounds.7z"
|
||||
find "${WINEPREFIX}/drive_c/Program Files/bf" -type f -name 'nvdaControllerClient64.dll' -exec cp -v "${cache}/nvda2speechd64.dll" "{}" \;
|
||||
add_launcher "c:\Program Files\simple fighter\game.exe"
|
||||
;;
|
||||
"Slender Lost Vision")
|
||||
export winVer="win7"
|
||||
download "https://www.iamtalon.me/games/slender.zip"
|
||||
@ -3116,12 +2970,6 @@ EOF
|
||||
unzip -d "$WINEPREFIX/drive_c/Program Files/" "${cache}/space_defender.zip"
|
||||
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient64.dll' -exec cp -v "${cache}/nvdaControllerClient64.dll" "{}" \;
|
||||
add_launcher "c:\Program Files\space_defender\sdefender.exe"
|
||||
;;
|
||||
"Star Treck Final Conflict")
|
||||
download "https://agarchive.net/games/USA/star%20trek%20final%20conflict%20Setup.exe"
|
||||
install_wine_bottle speechsdk
|
||||
wine "${cache}/star trek final conflict Setup.exe" /silent
|
||||
add_launcher "c:\Program Files\USA Games\Final Conflict\stfc.exe"
|
||||
;;
|
||||
"Super Deekout")
|
||||
export bottle=dan-z
|
||||
@ -3242,12 +3090,9 @@ EOF
|
||||
;;
|
||||
"Ten Pin Alley")
|
||||
export winVer="win7"
|
||||
export bottle="draconis"
|
||||
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/"
|
||||
wine "c:/windows/temp/TPAXPSetup.exe" /sp- /silent
|
||||
rm -fv "$WINEPREFIX/drive_c/windows/temp/TPAXPSetup.exe"
|
||||
wine "${cache}/TPAXPSetup.exe" /sp- /silent
|
||||
#winetricks -q msdxmocx # I think having this installed first breaks things.
|
||||
# warning warning warning: Do not change location, or installer will not function.
|
||||
# FIXME: Hacky, but it works. Install dotnet20 by itself so it actually doesn't hang.
|
||||
@ -3422,12 +3267,9 @@ export norh=false # Must install a voice, and rhvoice works easily with 64 bit.
|
||||
;;
|
||||
"Ultimate SounDoku")
|
||||
export winVer="win7"
|
||||
export bottle="draconis"
|
||||
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/"
|
||||
wine "c:/windows/temp/USSetup.exe" /sp- /silent
|
||||
rm -fv "$WINEPREFIX/drive_c/windows/temp/USSetup.exe"
|
||||
wine "${cache}/USSetup.exe" /sp- /silent
|
||||
# warning warning warning: Do not change location, or installer will not function.
|
||||
# FIXME: Hacky, but it works. Install dotnet20 by itself so it actually doesn't hang.
|
||||
winetricks -q dotnet20
|
||||
@ -3436,7 +3278,7 @@ export norh=false # Must install a voice, and rhvoice works easily with 64 bit.
|
||||
;;
|
||||
"Undead Assault")
|
||||
export winVer="win7"
|
||||
download "http://undead-assault.com/static/files/public/undead_assault.zip" "${nvdaControllerClientDll}"
|
||||
download "http://undead-assault.com/static/files/public/undead_assault.zip" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient32.dll"
|
||||
install_wine_bottle speechsdk
|
||||
unzip -d "$WINEPREFIX/drive_c/Program Files/undead_assault" "${cache}/undead_assault.zip"
|
||||
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvdaControllerClient32.dll" "{}" \;
|
||||
|
@ -37,37 +37,16 @@
|
||||
# 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.
|
||||
|
||||
newVersion=82
|
||||
|
||||
WINEPREFIX="${XDG_DATA_HOME:-$HOME/.local}/wine/crazy-party"
|
||||
oldVersion=$(find ~/.local/wine/crazy-party -type d -name 'Crazy-Party-beta*' | tr -cd '[:digit:]')
|
||||
cache="${XDG_CACHE_HOME:-$HOME/.cache}/audiogame-manager"
|
||||
configFile="${XDG_CONFIG_HOME:-$HOME/.config}/storm-games/audiogame-manager/games.conf"
|
||||
|
||||
if [[ $oldVersion -le 78 ]]; then
|
||||
echo "Crazy party has to be reinstalled because it is now a 64 bit application."
|
||||
echo "Please run audiogame-manager -r to remove the old version."
|
||||
echo "You can then install it again with audiogame-manager -i"
|
||||
echo "Don't forget to make a backup of your save.bin file, custom card decks, and custom game lists."
|
||||
find "${WINEPREFIX}/drive_c/Program Files" -type f -name 'save.bin' 2> /dev/null
|
||||
find "${WINEPREFIX}/drive_c/Program Files" -type d -name 'deck' 2> /dev/null
|
||||
find "${WINEPREFIX}/drive_c/Program Files" -type d -name 'game' 2> /dev/null
|
||||
fi
|
||||
if [[ $oldVersion -eq $newVersion ]]; then
|
||||
echo "Crazy Party is up to date."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
|
||||
url="http://pragmapragma.free.fr/crazy-party/Crazy-Party-beta${newVersion}.zip"
|
||||
(rm -v "${cache}/Crazy-Party-beta${oldVersion}.zip"
|
||||
wget -O "${cache}/Crazy-Party-beta${newVersion}.zip" "$url" || { echo "Could not download file."; exit 1; }
|
||||
unzip -DDod "${WINEPREFIX}/drive_c/Program Files" "${cache}/Crazy-Party-beta${newVersion}.zip"
|
||||
find "${WINEPREFIX}" -type f -name 'Tolk.dll' -exec cp -v "${cache}/Tolk.dll" "{}" \;
|
||||
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient64.dll' -exec cp -v "${cache}/nvda2speechd64.dll" "{}" \;
|
||||
sed -i "s/Crazy-Party-beta${oldVersion}/Crazy-Party-beta${newVersion}/" "$configFile"
|
||||
cp -v "${WINEPREFIX}/drive_c/Program Files/Crazy-Party-beta${oldVersion}/save.bin" "$HOME/.local/wine/crazy-party/drive_c/Program Files/Crazy-Party-beta${newVersion}/"
|
||||
cp -ruv "${WINEPREFIX}/drive_c/Program Files/Crazy-Party-beta${oldVersion}/"* "$HOME/.local/wine/crazy-party/drive_c/Program Files/Crazy-Party-beta${newVersion}/" 2> /dev/null
|
||||
rm -rf "${WINEPREFIX}/drive_c/Program Files/Crazy-Party-beta${oldVersion}/") | dialog --progressbox "updating Crazy Party, please wait..." -1 -1
|
||||
url="http://pragmapragma.free.fr/crazy-party/Crazy-Party-beta78.zip"
|
||||
(rm -v "${cache}/Crazy-Party-beta77.zip"
|
||||
wget -O "${cache}/Crazy-Party-beta78.zip" "$url" || { echo "Could not download file."; exit 1; }
|
||||
unzip -DDod "$HOME/.local/wine/crazy-party/drive_c/Program Files" "${cache}/Crazy-Party-beta78.zip"
|
||||
rm -fv "$HOME/.local/wine/crazy-party/drive_c/Program Files/Crazy-Party-beta78/nvdaControllerClient32.dll"
|
||||
sed -i 's/Crazy-Party-beta77/Crazy-Party-beta78/' "$configFile"
|
||||
mv -v "$HOME/.local/wine/crazy-party/drive_c/Program Files/Crazy-Party-beta77/save.bin" "$HOME/.local/wine/crazy-party/drive_c/Program Files/Crazy-Party-beta78/"
|
||||
cp -ruv "$HOME/.local/wine/crazy-party/drive_c/Program Files/Crazy-Party-beta77/"* "$HOME/.local/wine/crazy-party/drive_c/Program Files/Crazy-Party-beta78/" 2> /dev/null
|
||||
rm -rf "$HOME/.local/wine/crazy-party/drive_c/Program Files/Crazy-Party-beta77/") | dialog --progressbox "updating Crazy Party, please wait..." -1 -1
|
||||
|
||||
exit 0
|
||||
|
Loading…
Reference in New Issue
Block a user