Compare commits

..

No commits in common. "9a47da3239cb44f4ca4c94046f553abebe70b42f" and "2c8b4196567394b9d29a161d0725df985b04f1e8" have entirely different histories.

2 changed files with 175 additions and 354 deletions

View File

@ -75,7 +75,6 @@ check_news() {
fi fi
} }
# Automatic update function
# Automatic update function # Automatic update function
update() { update() {
if ! [[ -d ".git" ]]; then if ! [[ -d ".git" ]]; then
@ -94,8 +93,7 @@ if [[ "$home" == "$remote" ]]; then
fi fi
dialog --backtitle "Audiogame Manager" \ dialog --backtitle "Audiogame Manager" \
--yesno "Updates are available. Would you like to update now?" -1 -1 --stdout || return --yesno "Updates are available. Would you like to update now?" -1 -1 --stdout || return
{ git pull git pull
git log '@{1}..' --pretty=format:'%an: %s'; }
exit $? exit $?
} }
@ -330,16 +328,10 @@ get_bottle() {
"triple-triad"*) "triple-triad"*)
export WINEPREFIX="${HOME}/.local/wine/aprone" ;; export WINEPREFIX="${HOME}/.local/wine/aprone" ;;
"bg-"*) export WINEPREFIX="${HOME}/.local/wine/bg";; "bg-"*) export WINEPREFIX="${HOME}/.local/wine/bg";;
# draconis games # ESP Pinball games
"esp-pinball-classic"*) ;& "esp-pinball-classic"*) export WINEPREFIX="${HOME}/.local/wine/esp-pinball";;
"esp-pinball-extreme"*) ;& "esp-pinball-extreme"*) export WINEPREFIX="${HOME}/.local/wine/esp-pinball";;
"esp-pinball-party-pack"*) ;& "esp-pinball-party-pack"*) export WINEPREFIX="${HOME}/.local/wine/esp-pinball";;
"silver-dollar"*) ;&
"monkey-business"*) ;&
"alien-outback"*) ;&
"dyna-man"*) ;&
"change-reaction"*) ;&
"ten-pin-alley"*) export WINEPREFIX="${HOME}/.local/wine/draconis";;
# l-works games group # l-works games group
"duck-hunt"*) ;& "duck-hunt"*) ;&
"judgement-day"*) ;& "judgement-day"*) ;&
@ -431,24 +423,8 @@ get_installer() {
get_steam() { get_steam() {
# Arguments: $1 id of item for download, $2 url for game # Arguments: $1 id of item for download, $2 url for game
trap "exit 0" SIGINT trap "exit 0" SIGINT
echo "manual intervention required." echo "The next steps will install through steamcmd."
alert 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 # Check for steamcmd
if ! command -v steamcmd &> /dev/null ; then if ! command -v steamcmd &> /dev/null ; then
dialog --backtitle "Audiogame Manager" \ dialog --backtitle "Audiogame Manager" \
@ -714,7 +690,7 @@ install_wine_bottle() {
game_installer() { game_installer() {
export LANG="en_US.UTF-8" export LANG="en_US.UTF-8"
# Try to deal with systems in other languages # 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 # Create the menu of installed games
declare -a menuList declare -a menuList
for i in "${gameList[@]}" ; do for i in "${gameList[@]}" ; do
@ -743,7 +719,7 @@ game_installer() {
# remove games # remove games
game_removal() { 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 if [[ ${#lines} -eq 0 ]]; then
echo "No games found." echo "No games found."
exit 0 exit 0
@ -751,8 +727,7 @@ game_removal() {
# Create the menu of installed games # Create the menu of installed games
declare -a menuList declare -a menuList
for i in "${lines[@]}" ; do for i in "${lines[@]}" ; do
IFS='|' read -ra gameInfo <<< "$i" menuList+=("${i%|*}" "${i##*|}")
menuList+=("${gameInfo[0]}|${gameInfo[1]}" "${gameInfo[2]}")
done done
menuList+=("Donate" "Donate") menuList+=("Donate" "Donate")
menuList+=("Become a Patron" "Become a Patron") menuList+=("Become a Patron" "Become a Patron")
@ -806,8 +781,7 @@ kill_game() {
# Create the menu of installed games # Create the menu of installed games
declare -a menuList declare -a menuList
for i in "${lines[@]}" ; do for i in "${lines[@]}" ; do
IFS='|' read -ra gameInfo <<< "$i" menuList+=("${i%|*}" "${i##*|}")
menuList+=("${gameInfo[0]}|${gameInfo[1]}" "${gameInfo[2]}")
done done
menuList+=("Donate" "Donate") menuList+=("Donate" "Donate")
menuList+=("Become a Patron" "Become a Patron") menuList+=("Become a Patron" "Become a Patron")
@ -838,142 +812,11 @@ kill_game() {
exit 0 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 # launch games that are installed
game_launcher() { game_launcher() {
# For use by update scripts that want to source functions in this file. # For use by update scripts that want to source functions in this file.
[[ "$agmNoLaunch" == "true" ]] && return [[ "$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 if [[ ${#lines} -eq 0 ]]; then
echo "Install some games first." echo "Install some games first."
exit 0 exit 0
@ -982,8 +825,7 @@ game_launcher() {
# Create the menu of installed games # Create the menu of installed games
declare -a menuList declare -a menuList
for i in "${lines[@]}" ; do for i in "${lines[@]}" ; do
IFS='|' read -ra gameInfo <<< "$i" menuList+=("${i%|*}" "${i##*|}")
menuList+=("${gameInfo[0]}|${gameInfo[1]}" "${gameInfo[2]}")
done done
menuList+=("Donate" "Donate") menuList+=("Donate" "Donate")
menuList+=("Become a Patron" "Become a Patron") menuList+=("Become a Patron" "Become a Patron")
@ -1000,47 +842,156 @@ game_launcher() {
elif [[ $menuCode -eq 3 ]]; then elif [[ $menuCode -eq 3 ]]; then
documentation "$game" "$(echo "$game" | cut -d '|' -f2)" documentation "$game" "$(echo "$game" | cut -d '|' -f2)"
fi fi
create_game_array
else else
create_game_array local game="$(grep "^${1}|" "${configFile}" 2> /dev/null)"
game="${game%|*}"
if [[ -z "$game" ]]; then if [[ -z "$game" ]]; then
echo "Game $1 not found." echo "Game $1 not found."
exit 1 exit 1
fi fi
fi fi
if [[ ${#game[@]} -gt 0 ]]; then if [[ ${#game} -gt 0 ]]; then
if [[ "${game[0]}" == "Donate" ]]; then if [[ "$game" == "Donate" ]]; then
open_url "https://ko-fi.com/stormux" open_url "https://ko-fi.com/stormux"
exit 0 exit 0
fi fi
if [[ "${game[0]}" == "Become a Patron" ]]; then if [[ "$game" == "Become a Patron" ]]; then
open_url "https://2mb.games/product/2mb-patron/" open_url "https://2mb.games/product/2mb-patron/"
exit 0 exit 0
fi fi
get_bottle "${game[0]}" get_bottle "$game"
# make sure wine is actually set to something # make sure wine is actually set to something
export wine="${wine:-wine}" export wine="${wine:-wine}"
echo -n "launching " echo -n "launching "
${wine} --version ${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. # kill any previous existing wineservers for this prefix in case they didn't shut down properly.
${wine}server -k ${wine}server -k
# 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
touch "${HOME}/.qjoypad3/${game[2]}.lyt" touch "${HOME}/.qjoypad3/${game%|*}.lyt"
# A | separated list of games that should not start with qjoypad. # A | separated list of games that should not start with qjoypad.
noQjoypadGames="A Hero's Call" noQjoypadGames="a-hero's-call"
if [[ "${noqjoypad}" != "true" ]] && ! [[ "${game[2]}" =~ ${noQjoypadGames} ]]; then if [[ "${noqjoypad}" != "true" ]] && ! [[ "${game}" =~ ${noQjoypadGames} ]]; then
if pgrep qjoypad &> /dev/null ; then if pgrep qjoypad &> /dev/null ; then
qjoypad -T "${game[2]}" 2> /dev/null qjoypad -T "${game%|*}" 2> /dev/null
else else
qjoypad -T "${game[2]}" 2> /dev/null & qjoypad -T "${game%|*}" 2> /dev/null &
fi fi
fi fi
fi fi
process_launcher-flags # for games that require custom scripts before launch or custom launch parameters
custom_launch_parameters if [[ "$game" =~ dragon-pong ]]; then
${wine:-wine} start /d "${game[1]%\\*}" "${game[1]##*\\}" /realtime "${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 fi
exit 0 exit 0
} }
@ -1053,11 +1004,6 @@ game_launcher() {
add_launcher() { add_launcher() {
local launchSettings="${game,,}" local launchSettings="${game,,}"
launchSettings="${launchSettings//[[:space:]]/-}|${1}|${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 if ! grep -F -q -x "${launchSettings}" "${configFile}" 2> /dev/null ; then
echo "${launchSettings}" >> "${configFile}" echo "${launchSettings}" >> "${configFile}"
sort -o "${configFile}" "${configFile}" sort -o "${configFile}" "${configFile}"
@ -1116,7 +1062,6 @@ unset manualInstall
unset version unset version
# ipfs gateway # ipfs gateway
export ipfsGateway="${ipfsGateway:-https://gateway.pinata.cloud}" export ipfsGateway="${ipfsGateway:-https://gateway.pinata.cloud}"
export nvdaControllerClientDll="${ipfsGateway}/ipfs/QmWu7YdSbKMk1Qm5DKvEA5hk1YuAK8wVkwhDf2CsmPkmF1?filename=nvdaControllerClient32.dll"
# The list of games available for installation. # The list of games available for installation.
@ -1129,7 +1074,6 @@ gameList=(
"Angel Gift" "Angel Gift"
"AudioDisc" "AudioDisc"
"AudioQuake" "AudioQuake"
"Balatro"
"Battlefield 2D" "Battlefield 2D"
"Battle of the Hunter" "Battle of the Hunter"
"Battle Zone" "Battle Zone"
@ -1192,7 +1136,6 @@ gameList=(
"Castaways" "Castaways"
"Castaways 2" "Castaways 2"
"Challenge of the Horse" "Challenge of the Horse"
"Change Reaction"
"Chillingham" "Chillingham"
#"Chopper Challenge" #"Chopper Challenge"
"Christmas Chaos" "Christmas Chaos"
@ -1287,7 +1230,6 @@ gameList=(
"Sarah and the Castle of Witchcraft and Wizardry" "Sarah and the Castle of Witchcraft and Wizardry"
"Scramble!" "Scramble!"
"Screaming Strike 2" "Screaming Strike 2"
"Scrolling Battles"
"Sketchbook" "Sketchbook"
"Sequence Storm" "Sequence Storm"
#"Shades of Doom 1.2" #"Shades of Doom 1.2"
@ -1295,13 +1237,11 @@ gameList=(
"Shadow Line" "Shadow Line"
"Shooter" "Shooter"
"Silver Dollar" "Silver Dollar"
"Simple Fighter"
"Skateboarder Pro" "Skateboarder Pro"
"Slender Lost Vision" "Slender Lost Vision"
"Sonic the Hedgehog" "Sonic the Hedgehog"
"Sonic Zoom" "Sonic Zoom"
#"Space Defender" #"Space Defender"
#"Star Treck Final Conflict"
"Super Deekout" "Super Deekout"
"Super Dogs Bone Hunt" "Super Dogs Bone Hunt"
"Super Egg Hunt" "Super Egg Hunt"
@ -1345,7 +1285,7 @@ for i in curl sox wine winetricks ; do
fi fi
done done
# Get latest news if available # Get latest news if available
check_news #check_news
# With no arguments, open the game launcher. # With no arguments, open the game launcher.
if [[ $# -eq 0 ]]; then if [[ $# -eq 0 ]]; then
game_launcher game_launcher
@ -1417,7 +1357,7 @@ done
# Install game based on the selection above. # Install game based on the selection above.
case "${game}" in case "${game}" in
"A Hero's Call") "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 winVer="win7"
export winetricksSettings="vd=1024x768" export winetricksSettings="vd=1024x768"
install_wine_bottle speechsdk corefonts install_wine_bottle speechsdk corefonts
@ -1443,12 +1383,9 @@ case "${game}" in
;; ;;
"Alien Outback") "Alien Outback")
download "http://download.dracoent.com/Windows/classic/AOSetup.exe" download "http://download.dracoent.com/Windows/classic/AOSetup.exe"
export bottle="draconis"
export winVer="win7" export winVer="win7"
install_wine_bottle vb6run dx8vb speechsdk quartz install_wine_bottle vb6run dx8vb speechsdk quartz
cp -v "${cache}/AOSetup.exe" "$WINEPREFIX/drive_c/windows/temp/" wine "${cache}/AOSetup.exe" /sp- /silent
wine "c:/windows/temp/AOSetup.exe" /sp- /silent
rm -fv "$WINEPREFIX/drive_c/windows/temp/AOSetup.exe"
# warning warning warning: Do not change location, or installer will not function. # 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. # FIXME: Hacky, but it works. Install dotnet20 by itself so it actually doesn't hang.
winetricks -q dotnet20 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." echo "After you launch the game, press tab then enter and it should begin speaking."
alert 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") "Battlefield 2D")
get_installer "bf.zip" "https://tunmi13.itch.io/battlefield-2d" get_installer "bf.zip" "https://tunmi13.itch.io/battlefield-2d"
download "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd64.dll" 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" add_launcher "c:\Program Files\bomvercats\game.exe"
;; ;;
"Breed Memorial") "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" export winVer="win7"
install_wine_bottle cjkfonts speechsdk install_wine_bottle cjkfonts speechsdk
unzip -d "$WINEPREFIX/drive_c/Program Files/" "${cache}/breed_memorial.zip" 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 "{}" \; find "${WINEPREFIX}" -type f -name "nvdaControllerClient32.dll" -exec rm -fv "{}" \;
add_launcher "c:\Program Files\\${game}\game.exe" 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") "Chillingham")
download "https://stormgames.wolfe.casa/downloads/chillingham.zip" download "https://stormgames.wolfe.casa/downloads/chillingham.zip"
install_wine_bottle vb6run mfc42 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" add_launcher "c:\Program Files\copter mission\game.exe"
;; ;;
"Crazy Party") "Crazy Party")
export WINEARCH=win64 export winVer="win7"
export winVer="win8" download "${ipfsGateway}/ipfs/QmZPsVdizDW6nrNj9czPTctAomYxafs7SYRw6YjqxPidvn?filename=Crazy-Party-beta78.zip"
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 speechsdk
install_wine_bottle unzip -d "$WINEPREFIX/drive_c/Program Files" "${cache}/Crazy-Party-beta78.zip"
unzip -d "$WINEPREFIX/drive_c/Program Files" "${cache}/Crazy-Party-beta82.zip" add_launcher "c:\Program Files\Crazy-Party-beta78\Crazy Party.exe"
find "${WINEPREFIX}" -type f -name 'Tolk.dll' -exec cp -v "${cache}/Tolk.dll" "{}" \; rm -f "${WINEPREFIX}/drive_c/Program Files/Crazy-Party-beta78/nvdaControllerClient32.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"
;; ;;
"Crazy Tennis") "Crazy Tennis")
download "https://www.agarchive.net/games/VIP/crazy%20tennis%20setup.exe" download "https://www.agarchive.net/games/VIP/crazy%20tennis%20setup.exe"
@ -2194,12 +2095,9 @@ download "https://erion.cf/files/ag_103.zip"
;; ;;
"DynaMan") "DynaMan")
export winVer="win7" export winVer="win7"
export bottle="draconis"
download "http://download.dracoent.com/Windows/classic/DMSetup.exe" download "http://download.dracoent.com/Windows/classic/DMSetup.exe"
install_wine_bottle vb6run dx8vb speechsdk quartz install_wine_bottle vb6run dx8vb speechsdk quartz
cp -v "${cache}/DMSetup.exe" "$WINEPREFIX/drive_c/windows/temp/" wine "${cache}/DMSetup.exe" /sp- /silent
wine "c:/windows/temp/DMSetup.exe" /sp- /silent
rm -fv "$WINEPREFIX/drive_c/windows/temp/DMSetup.exe"
# warning warning warning: Do not change location, or installer will not function. # 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. # FIXME: Hacky, but it works. Install dotnet20 by itself so it actually doesn't hang.
winetricks -q dotnet20 winetricks -q dotnet20
@ -2251,12 +2149,10 @@ download "https://erion.cf/files/ag_103.zip"
;; ;;
"ESP Pinball Classic") "ESP Pinball Classic")
export winVer="win7" export winVer="win7"
export bottle="draconis" export bottle="esp-pinball"
download "http://download.dracoent.com/Windows/classic/PBCSetup.exe" download "http://download.dracoent.com/Windows/classic/PBCSetup.exe"
install_wine_bottle vb6run dx8vb speechsdk quartz install_wine_bottle vb6run dx8vb speechsdk quartz
cp -v "${cache}/PBCSetup.exe" "$WINEPREFIX/drive_c/windows/temp/" wine "${cache}/PBCSetup.exe" /sp- /silent
wine "c:/windows/temp/PBCSetup.exe" /sp- /silent
rm -fv "$WINEPREFIX/drive_c/windows/temp/PBCSetup.exe"
# warning warning warning: Do not change location, or installer will not function. # 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. # FIXME: Hacky, but it works. Install dotnet20 by itself so it actually doesn't hang.
winetricks -q dotnet20 winetricks -q dotnet20
@ -2265,12 +2161,10 @@ download "https://erion.cf/files/ag_103.zip"
;; ;;
"ESP Pinball Extreme") "ESP Pinball Extreme")
export winVer="win7" export winVer="win7"
export bottle="draconis" export bottle="esp-pinball"
download "http://download.dracoent.com/Windows/classic/PBXSetup.exe" download "http://download.dracoent.com/Windows/classic/PBXSetup.exe"
install_wine_bottle vb6run dx8vb speechsdk quartz install_wine_bottle vb6run dx8vb speechsdk quartz
cp -v "${cache}/PBXSetup.exe" "$WINEPREFIX/drive_c/windows/temp/" wine "${cache}/PBXSetup.exe" /sp- /silent
wine "c:/windows/temp/PBXSetup.exe" /sp- /silent
rm -fv "$WINEPREFIX/drive_c/windows/temp/PBXSetup.exe"
# warning warning warning: Do not change location, or installer will not function. # 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. # FIXME: Hacky, but it works. Install dotnet20 by itself so it actually doesn't hang.
winetricks -q dotnet20 winetricks -q dotnet20
@ -2279,17 +2173,15 @@ download "https://erion.cf/files/ag_103.zip"
;; ;;
"ESP Pinball Party Pack") "ESP Pinball Party Pack")
export winVer="win7" export winVer="win7"
export bottle="draconis" export bottle="esp-pinball"
export WINEPREFIX="$HOME/.local/wine/draconis" export WINEPREFIX="$HOME/.local/wine/esp-pinball"
# Only works in conjunction with esp pinball extreme. # 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 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 echo "Error: You need to install ESP Pinball Extreme first to use this game. Please do so before continuing." >&2
exit 1 exit 1
fi fi
download "http://download.dracoent.com/Windows/classic/PP1Setup.exe" download "http://download.dracoent.com/Windows/classic/PP1Setup.exe"
cp -v "${cache}/PP1Setup.exe" "$WINEPREFIX/drive_c/windows/temp/" wine "${cache}/PP1Setup.exe" /sp- /silent
wine "c:/windows/temp/PP1Setup.exe" /sp- /silent
rm -fv "$WINEPREFIX/drive_c/windows/temp/PP1Setup.exe"
add_launcher "c:\Program Files\Draconis Entertainment\ESP Pinball Xtreme\pbx.exe" add_launcher "c:\Program Files\Draconis Entertainment\ESP Pinball Xtreme\pbx.exe"
;; ;;
"Eurofly") "Eurofly")
@ -2670,12 +2562,9 @@ EOF
;; ;;
"Monkey Business") "Monkey Business")
export winVer="win7" export winVer="win7"
export bottle="draconis"
download "http://download.dracoent.com/Windows/classic/MBSetup.exe" download "http://download.dracoent.com/Windows/classic/MBSetup.exe"
install_wine_bottle vb6run dx8vb speechsdk quartz install_wine_bottle vb6run dx8vb speechsdk quartz
cp -v "${cache}/MBSetup.exe" "$WINEPREFIX/drive_c/windows/temp/" wine "${cache}/MBSetup.exe" /sp- /silent
wine "c:/windows/temp/MBSetup.exe" /sp- /silent
rm -fv "$WINEPREFIX/drive_c/windows/temp/MBSetup.exe"
# warning warning warning: Do not change location, or installer will not function. # 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. # FIXME: Hacky, but it works. Install dotnet20 by itself so it actually doesn't hang.
winetricks -q dotnet20 winetricks -q dotnet20
@ -2715,7 +2604,7 @@ EOF
"Oh Shit") "Oh Shit")
export winVer="win7" export winVer="win7"
export norh="true" # Requires sapi even though uses nvda 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 install_wine_bottle speechsdk
unzip -d "$WINEPREFIX/drive_c/Program Files" "${cache}/OhShit.zip" unzip -d "$WINEPREFIX/drive_c/Program Files" "${cache}/OhShit.zip"
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvda2speechd32.dll" "{}" \; find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvda2speechd32.dll" "{}" \;
@ -2884,7 +2773,7 @@ EOF
"Rhythm Rage") "Rhythm Rage")
export bottle="oriol-gomez" export bottle="oriol-gomez"
export winVer="win7" 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 install_wine_bottle speechsdk
unzip -d "$WINEPREFIX/drive_c/Program Files/rhythm rage" "${cache}/rr_en.zip" 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" "{}" \; find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvdaControllerClient32.dll" "{}" \;
@ -2919,7 +2808,7 @@ EOF
;; ;;
"RS Games") "RS Games")
export version="7.0" 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" install_wine "$version" "32"
export winVer="win7" export winVer="win7"
install_wine_bottle speechsdk install_wine_bottle speechsdk
@ -2937,7 +2826,7 @@ EOF
;; ;;
"Sammy Center") "Sammy Center")
export winVer="win7" 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 install_wine_bottle speechsdk
wine "${cache}/SCSetup.exe" /silent wine "${cache}/SCSetup.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" "{}" \;
@ -2953,7 +2842,7 @@ EOF
"Scramble!") "Scramble!")
winetricksSettings="vd=1024x768" winetricksSettings="vd=1024x768"
export winVer="win7" 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 install_wine_bottle speechsdk
unzip -d "$WINEPREFIX/drive_c/Program Files/" "${cache}/scramble_win32.zip" unzip -d "$WINEPREFIX/drive_c/Program Files/" "${cache}/scramble_win32.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" "{}" \;
@ -2962,7 +2851,7 @@ EOF
"Screaming Strike 2") "Screaming Strike 2")
export bottle="nyanchan" export bottle="nyanchan"
export winVer="win7" 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 install_wine_bottle fakejapanese speechsdk
wine "${cache}/screamingStrike2.exe" & wine "${cache}/screamingStrike2.exe" &
xdotool sleep 10 key Return xdotool sleep 10 key Return
@ -2970,19 +2859,9 @@ EOF
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:\nyanchangame\Screaming Strike 2\play.exe" 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") "Sketchbook")
export winVer="win7" 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 install_wine_bottle speechsdk
mv -v "${cache}/sounds.zip" "${cache}/SBYW-sounds.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.zip"
@ -3015,7 +2894,7 @@ EOF
;; ;;
"Shadow Line") "Shadow Line")
export version="7.7" 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" install_wine "$version" "32"
export winVer="win8" export winVer="win8"
install_wine_bottle install_wine_bottle
@ -3029,44 +2908,19 @@ EOF
xdotool key --clearmodifiers --delay=500 space xdotool key --clearmodifiers --delay=500 space
xdotool key --clearmodifiers --delay=500 alt+f xdotool key --clearmodifiers --delay=500 alt+f
${wine}server -w ${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" 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") "Silver Dollar")
export winVer="win7" export winVer="win7"
export bottle="draconis"
download "http://download.dracoent.com/Windows/SilverDollarSetup.exe" download "http://download.dracoent.com/Windows/SilverDollarSetup.exe"
install_wine_bottle speechsdk install_wine_bottle speechsdk
cp -v "${cache}/SilverDollarSetup.exe" "$WINEPREFIX/drive_c/windows/temp/" wine "${cache}/SilverDollarSetup.exe" /silent
wine "c:/windows/temp/SilverDollarSetup.exe" /sp- /silent
rm -fv "$WINEPREFIX/drive_c/windows/temp/SilverDollarSetup.exe"
# warning warning warning: Do not change location, or installer will not function. # 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. # FIXME: Hacky, but it works. Install dotnet40 by itself so it actually doesn't hang.
DISPLAY="" winetricks -q dotnet40 DISPLAY="" winetricks -q dotnet40
wineserver -k # Damn you, dotnet. wineserver -k # Damn you, dotnet.
add_launcher "c:\Program Files\Draconis Entertainment\Silver Dollar\SilverDollarGui.exe" 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") "Slender Lost Vision")
export winVer="win7" export winVer="win7"
download "https://www.iamtalon.me/games/slender.zip" download "https://www.iamtalon.me/games/slender.zip"
@ -3116,12 +2970,6 @@ 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"
;;
"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") "Super Deekout")
export bottle=dan-z export bottle=dan-z
@ -3242,12 +3090,9 @@ EOF
;; ;;
"Ten Pin Alley") "Ten Pin Alley")
export winVer="win7" export winVer="win7"
export bottle="draconis"
download "http://download.dracoent.com/Windows/classic/TPAXPSetup.exe" download "http://download.dracoent.com/Windows/classic/TPAXPSetup.exe"
install_wine_bottle vb6run dx8vb speechsdk quartz install_wine_bottle vb6run dx8vb speechsdk quartz
cp -v "${cache}/TPAXPSetup.exe" "$WINEPREFIX/drive_c/windows/temp/" wine "${cache}/TPAXPSetup.exe" /sp- /silent
wine "c:/windows/temp/TPAXPSetup.exe" /sp- /silent
rm -fv "$WINEPREFIX/drive_c/windows/temp/TPAXPSetup.exe"
#winetricks -q msdxmocx # I think having this installed first breaks things. #winetricks -q msdxmocx # I think having this installed first breaks things.
# warning warning warning: Do not change location, or installer will not function. # 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. # 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") "Ultimate SounDoku")
export winVer="win7" export winVer="win7"
export bottle="draconis"
download "http://download.dracoent.com/Windows/classic/USSetup.exe" download "http://download.dracoent.com/Windows/classic/USSetup.exe"
install_wine_bottle vb6run dx8vb speechsdk quartz install_wine_bottle vb6run dx8vb speechsdk quartz
cp -v "${cache}/USSetup.exe" "$WINEPREFIX/drive_c/windows/temp/" wine "${cache}/USSetup.exe" /sp- /silent
wine "c:/windows/temp/USSetup.exe" /sp- /silent
rm -fv "$WINEPREFIX/drive_c/windows/temp/USSetup.exe"
# warning warning warning: Do not change location, or installer will not function. # 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. # FIXME: Hacky, but it works. Install dotnet20 by itself so it actually doesn't hang.
winetricks -q dotnet20 winetricks -q dotnet20
@ -3436,7 +3278,7 @@ export norh=false # Must install a voice, and rhvoice works easily with 64 bit.
;; ;;
"Undead Assault") "Undead Assault")
export winVer="win7" 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 install_wine_bottle speechsdk
unzip -d "$WINEPREFIX/drive_c/Program Files/undead_assault" "${cache}/undead_assault.zip" 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" "{}" \; find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvdaControllerClient32.dll" "{}" \;

View File

@ -37,37 +37,16 @@
# Works which are defined in the CPAL as a work which combines Covered Code # 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. # 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" cache="${XDG_CACHE_HOME:-$HOME/.cache}/audiogame-manager"
configFile="${XDG_CONFIG_HOME:-$HOME/.config}/storm-games/audiogame-manager/games.conf" configFile="${XDG_CONFIG_HOME:-$HOME/.config}/storm-games/audiogame-manager/games.conf"
url="http://pragmapragma.free.fr/crazy-party/Crazy-Party-beta78.zip"
if [[ $oldVersion -le 78 ]]; then (rm -v "${cache}/Crazy-Party-beta77.zip"
echo "Crazy party has to be reinstalled because it is now a 64 bit application." wget -O "${cache}/Crazy-Party-beta78.zip" "$url" || { echo "Could not download file."; exit 1; }
echo "Please run audiogame-manager -r to remove the old version." unzip -DDod "$HOME/.local/wine/crazy-party/drive_c/Program Files" "${cache}/Crazy-Party-beta78.zip"
echo "You can then install it again with audiogame-manager -i" rm -fv "$HOME/.local/wine/crazy-party/drive_c/Program Files/Crazy-Party-beta78/nvdaControllerClient32.dll"
echo "Don't forget to make a backup of your save.bin file, custom card decks, and custom game lists." sed -i 's/Crazy-Party-beta77/Crazy-Party-beta78/' "$configFile"
find "${WINEPREFIX}/drive_c/Program Files" -type f -name 'save.bin' 2> /dev/null 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/"
find "${WINEPREFIX}/drive_c/Program Files" -type d -name 'deck' 2> /dev/null 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
find "${WINEPREFIX}/drive_c/Program Files" -type d -name 'game' 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
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
exit 0 exit 0