Merge branch 'testing'. This marks the end of binary releases. Everyone

should now be using from git. The binary downloads have been removed.
This commit is contained in:
Storm Dragon 2022-05-13 13:31:34 -04:00
commit fa75ba31ca

View File

@ -1,7 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
license() { license() {
cat << EOF cat << EOF
■The contents of this file are subject to the Common Public Attribution ■The contents of this file are subject to the Common Public Attribution
License Version 1.0 (the ■License■); you may not use this file except in License Version 1.0 (the ■License■); you may not use this file except in
compliance with the License. You may obtain a copy of the License at compliance with the License. You may obtain a copy of the License at
@ -68,36 +68,21 @@ check_news() {
# Automatic update function # Automatic update function
update() { update() {
local filePath="$(command -v ${0})" local url="$(git ls-remote --get-url)"
if file "${filePath}" | grep -q 'Bourne-Again shell script' ; then if [[ "$url" =~ ^ssh://|git@ ]] || [[ -z "$url" ]]; then
return return
fi fi
# make sure the site can be reached git remote update &> /dev/null
ping -c1 stormgames.wolfe.casa &> /dev/null || return local upstream='@{u}'
if [[ "$(uname)" == "Darwin" ]]; then local home="$(git rev-parse @)"
local downloadFile="audiogame-manager.mac" local remote="$(git rev-parse "$upstream")"
else if [[ "$home" == "$remote" ]]; then
if [[ "$(uname -m)" == "armv7l" ]]; then return
local downloadFile="audiogame-manager.arm" fi
else dialog --backtitle "Audiogame Manager" \
local downloadFile="audiogame-manager" --yesno "Updates are available. Would you like to update now?" -1 -1 --stdout || return
fi git pull
fi exit $?
if [[ "$(wget --quiet -O - https://stormgames.wolfe.casa/downloads/${downloadFile} | sha256sum | cut -d ' ' -f1)" == "$(sha256sum "${filePath}" | cut -d ' ' -f1)" ]]; then
return
fi
dialog --backtitle "Audiogame Manager" --yesno "There is a new version of ${0##*/} available.\nDo you want to update now?" -1 -1
if [[ ${?} -eq 0 ]]; then
if [[ -w "$0" ]]; then
wget --quiet -O "${filePath}" "https://stormgames.wolfe.casa/downloads/${downloadFile}"
chmod +x "$0"
else
sudo wget --quiet -O "${filePath}" "https://stormgames.wolfe.casa/downloads/${downloadFile}"
sudo chmod +x "$0"
fi
echo "${0##*/} has been updated. Please launch the program again to use the latest version."
exit 0
fi
} }
# Function to open urls across OS. # Function to open urls across OS.
@ -106,7 +91,7 @@ open_url() {
open "${*}" 2> /dev/null open "${*}" 2> /dev/null
else else
xdg-open "${*}" 2> /dev/null xdg-open "${*}" 2> /dev/null
fi fi
} }
# Create desktop launcher file # Create desktop launcher file
@ -135,7 +120,7 @@ desktop_launcher() {
'StartupNotify=false' 'StartupNotify=false'
'Keywords=game;' 'Keywords=game;'
'Categories=Game;' 'Categories=Game;'
'Version=1.0') 'Version=1.0')
for i in "${dotDesktop[@]}" ; do for i in "${dotDesktop[@]}" ; do
echo "$i" >> "${desktopFile}" echo "$i" >> "${desktopFile}"
done done
@ -147,18 +132,18 @@ desktop_launcher() {
# Create the clipboard reading function for Sequence Storm # Create the clipboard reading function for Sequence Storm
write_sequence_storm_reader() { write_sequence_storm_reader() {
if -e ~/.SequenceStormReader ]]; then if -e ~/.SequenceStormReader ]]; then
return return
fi fi
# Here-document start # Here-document start
cat << "EOF" > ~/.SequenceStormReader cat << "EOF" > ~/.SequenceStormReader
#!/usr/bin/env bash #!/usr/bin/env bash
# Wait for the game to be launched # Wait for the game to be launched
while ! pgrep -u "$USER" ^SequenceStorm &> /dev/null ; do while ! pgrep -u "$USER" ^SequenceStorm &> /dev/null ; do
sleep 0.05 sleep 0.05
done done
export DISPLAY=:0 export DISPLAY=:0
unset cliptext unset cliptext
socketFile="$(find /tmp -maxdepth 1 -name "orca-*.sock")" socketFile="$(find /tmp -maxdepth 1 -name "orca-*.sock")"
@ -195,7 +180,7 @@ while pgrep -u "$USER" ^SequenceStorm &> /dev/null ; do
fi fi
sleep 0.05 sleep 0.05
done done
exit 0 exit 0
EOF EOF
# Here-document end # Here-document end
@ -351,7 +336,7 @@ download() {
get_bottle() { get_bottle() {
# Handles games that use the same wine bottle # Handles games that use the same wine bottle
case "${game}" in case "${game}" in
# Aprone (Jeremy Kaldobsky) games. # Aprone (Jeremy Kaldobsky) games.
"castaways"*) ;& "castaways"*) ;&
"castaways-2"*) ;& "castaways-2"*) ;&
@ -377,6 +362,13 @@ get_bottle() {
"super-egg-hunt"*) ;& "super-egg-hunt"*) ;&
"super-liam"*) ;& "super-liam"*) ;&
"the-great-toy-robbery"*) export WINEPREFIX="${HOME}/.local/wine/l-works";; "the-great-toy-robbery"*) export WINEPREFIX="${HOME}/.local/wine/l-works";;
# Nyanchan games group
"bokurano-daibouken-3"*) ;&
"laser-breakout"*) ;&
"marina-break"*) ;&
"mp5"*) ;&
"screaming-strike-2"*) ;&
"world-of-war"*) export WINEPREFIX="${HOME}/.local/wine/nyanchan";;
# Oriol Gomez games group # Oriol Gomez games group
"bombercats"*) ;& "bombercats"*) ;&
"copter-mission"*) ;& "copter-mission"*) ;&
@ -434,6 +426,15 @@ help() {
for i in "${!command[@]}" ; do for i in "${!command[@]}" ; do
echo "-${i/:/ <parameter>}: ${command[${i}]}" echo "-${i/:/ <parameter>}: ${command[${i}]}"
done | sort done | sort
echo
echo "Some settings that are often used can be stored in a settings.conf file."
echo "If wanted, place it at ${configFile%/*}/settings.conf."
echo "The syntax is variable=\"value\""
echo
echo "noCache=\"true\" # Do not keep downloaded items in the cache."
echo "norh=\"true\" # Do not install RHVoice."
echo "redownload=\"true\" # Redownload sources, do not use the version stored in cache."
echo "winedebug=\"flag(s)\" # Set wine debug flags, useful for development."
exit 0 exit 0
} }
@ -493,7 +494,7 @@ echo "Loading documentation, please wait..."
fi fi
exit 0 exit 0
} }
winetricks() { winetricks() {
# Report used packages to the winetricks maintainer so he knows they are being used. # Report used packages to the winetricks maintainer so he knows they are being used.
if ! [[ -e "${XDG_CACHE_HOME:-$HOME/.cache}/winetricks/track_usage" ]]; then if ! [[ -e "${XDG_CACHE_HOME:-$HOME/.cache}/winetricks/track_usage" ]]; then
@ -821,6 +822,10 @@ 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"
mkdir -p "${cache}" mkdir -p "${cache}"
mkdir -p "${configFile%/*}" mkdir -p "${configFile%/*}"
# Load any arguments from settings.conf file
if [[ -r "${configFile%/*}/settings.conf" ]]; then
source "${configFile%/*}/settings.conf"
fi
# Update the cache for older versions of audiogame-manager # Update the cache for older versions of audiogame-manager
if [[ -d "${configFile%/*}/cache" ]]; then if [[ -d "${configFile%/*}/cache" ]]; then
{ mv -v "${configFile%/*}/cache/"* "${cache}" { mv -v "${configFile%/*}/cache/"* "${cache}"
@ -829,7 +834,7 @@ if [[ -d "${configFile%/*}/cache" ]]; then
fi fi
checkWinetricksUpdate="false" checkWinetricksUpdate="false"
# Turn off debug messages # Turn off debug messages
export WINEDEBUG="-all" export WINEDEBUG="${winedebug:--all}"
# Compatibility with box86 # Compatibility with box86
export BOX86_NOBANNER=1 export BOX86_NOBANNER=1
# During installation, you can set winVer to the versions available. # During installation, you can set winVer to the versions available.
@ -901,6 +906,7 @@ gameList=(
"BG Word Target" "BG Word Target"
"BG Word Yahtzee" "BG Word Yahtzee"
"BG Yahtzee" "BG Yahtzee"
#"Blind Drive"
"Bloodshed" "Bloodshed"
"Bombercats" "Bombercats"
#"Breed Memorial" #"Breed Memorial"
@ -929,7 +935,6 @@ gameList=(
"ESP Pinball Party Pack" "ESP Pinball Party Pack"
#"Eurofly" #"Eurofly"
"Extant" "Extant"
"Fantasy Story II"
#"Fartman" #"Fartman"
"Finger Panic" "Finger Panic"
"Fuck That Bird" "Fuck That Bird"
@ -942,6 +947,7 @@ gameList=(
"Judgement Day" "Judgement Day"
"Kitchensinc Games" "Kitchensinc Games"
"Kringle Crash" "Kringle Crash"
#"Laser Breakout"
#"Light Battles" #"Light Battles"
"Light Cars" "Light Cars"
"Lockpick" "Lockpick"
@ -949,6 +955,7 @@ gameList=(
"Lunimals" "Lunimals"
"Manamon" "Manamon"
"Manamon 2" "Manamon 2"
"Marina Break"
"Monkey Business" "Monkey Business"
"MudSplat French" "MudSplat French"
"MudSplat English" "MudSplat English"
@ -969,7 +976,7 @@ gameList=(
"Q9" "Q9"
"Revelation" "Revelation"
"Rhythm Rage" "Rhythm Rage"
#"River raiders" #"River Raiders"
"RS Games" "RS Games"
"Run For Your Life" "Run For Your Life"
#"Sammy Center" #"Sammy Center"
@ -1032,7 +1039,7 @@ declare -A command=(
[c]="Check your system for necessary components." [c]="Check your system for necessary components."
[C]="Clear the cache. All game installers will be deleted." [C]="Clear the cache. All game installers will be deleted."
[D]="Create desktop shortcut. You can launch audiogame-manager from the desktop or applications menu." [D]="Create desktop shortcut. You can launch audiogame-manager from the desktop or applications menu."
[d]="Debug mode, wine will be much more verbose when games are launched with this flag." [d]="Debug mode, wine will be much more verbose when games are installed with this flag."
[h]="This help screen." [h]="This help screen."
[i]="Install games." [i]="Install games."
[I:]="Noninteractive game installation." [I:]="Noninteractive game installation."
@ -1044,6 +1051,7 @@ declare -A command=(
[P]="Print a list of packages required by audiogame-manager." [P]="Print a list of packages required by audiogame-manager."
[R]="Redownload. Removes old versions of packages from cache before installing." [R]="Redownload. Removes old versions of packages from cache before installing."
[r]="Remove a game. This will delete all game data." [r]="Remove a game. This will delete all game data."
[t]="Total games. Show how many games are currently available."
) )
# Convert the keys of the associative array to a format usable by getopts # Convert the keys of the associative array to a format usable by getopts
@ -1056,7 +1064,7 @@ while getopts "${args}" i ; do
D) desktop_launcher;; D) desktop_launcher;;
d) d)
unset WINEDEBUG unset WINEDEBUG
game_launcher game_installer
;; ;;
h) help;; h) help;;
i) game_installer;; i) game_installer;;
@ -1071,6 +1079,11 @@ while getopts "${args}" i ; do
P) checklist quiet;; P) checklist quiet;;
R) redownload="true";; R) redownload="true";;
r) game_removal;; r) game_removal;;
t)
dialog --backtitle "Audiogame Manager" \
--infobox "There are currently ${#gameList[@]} games available." -1 -1
exit 0
;;
esac esac
done done
@ -1078,6 +1091,7 @@ done
case "${game}" in case "${game}" in
"A Hero's Call") "A Hero's Call")
export winVer="win7" export winVer="win7"
export winetricksSettings="vd=1024x768"
install_wine_bottle speechsdk corefonts install_wine_bottle speechsdk corefonts
# Dotnet is evil. That is all. # Dotnet is evil. That is all.
LC_ALL=C DISPLAY="" winetricks -q dotnet462 xna40 LC_ALL=C DISPLAY="" winetricks -q dotnet462 xna40
@ -1512,6 +1526,17 @@ case "${game}" in
wine "${cache}/${bgInstaller}" /silent wine "${cache}/${bgInstaller}" /silent
add_launcher "c:\Program Files\Games\yahtzeeB\BGYahtzee.exe" add_launcher "c:\Program Files\Games\yahtzeeB\BGYahtzee.exe"
;; ;;
"Blind Drive")
get_installer "Blind Drive 1.1.112.00i-win64.zip" "https://lofipeople.itch.io/blind-drive"
export WINEARCH=win64
export winVer="win8"
install_wine_bottle sapi
unzip -d "$WINEPREFIX/drive_c/Program Files/blind-drive" "${cache}/Blind Drive 1.1.112.00i-win64.zip"
# Weird work around to get keyboard working.
winetricks -q usetakefocus=y
winetricks -q usetakefocus=n
add_launcher "c:\Program Files\blind-drive\Blind Drive.exe"
;;
"Bloodshed") "Bloodshed")
export winVer="win7" export winVer="win7"
install_wine_bottle speechsdk install_wine_bottle speechsdk
@ -1700,7 +1725,7 @@ case "${game}" in
;; ;;
"Entombed") "Entombed")
export winVer="win7" export winVer="win7"
install_wine_bottle speechsdk msvcrt40 install_wine_bottle speechsdk msvcrt40 gdiplus ie7
# Ok, more dotnet. # Ok, more dotnet.
LC_ALL=C DISPLAY="" winetricks -q dotnet462 LC_ALL=C DISPLAY="" winetricks -q dotnet462
wineserver -k # Sigh. wineserver -k # Sigh.
@ -1711,7 +1736,14 @@ case "${game}" in
wine msiexec /i "${WINEPREFIX}/drive_c/temp/SSCERuntime_x86-ENU.msi" /q wine msiexec /i "${WINEPREFIX}/drive_c/temp/SSCERuntime_x86-ENU.msi" /q
rm * rm *
popd popd
pushd "${WINEPREFIX}/drive_c/Program Files/Microsoft SQL Server Compact Edition/v3.5"
wine regsvr32 sqlceoledb35.dll
wine regsvr32 sqlceca35.dll
popd
wine "${cache}/EntombedSetup.exe" /silent wine "${cache}/EntombedSetup.exe" /silent
pushd "${WINEPREFIX}/drive_c/Program Files/Entombed"
cp ../Microsoft\ SQL\ Server\ Compact\ Edition/v3.5/System.Data.SqlServerCe.Entity.dll ../Microsoft\ SQL\ Server\ Compact\ Edition/v3.5/Desktop/System.Data.SqlServerCe.dll .
popd
add_launcher "c:\Program Files\Entombed\Entombed.exe" add_launcher "c:\Program Files\Entombed\Entombed.exe"
;; ;;
"ESP Pinball Classic") "ESP Pinball Classic")
@ -1766,13 +1798,6 @@ case "${game}" in
unzip -d "$WINEPREFIX/drive_c/Program Files/extant" "${cache}/extant.zip" unzip -d "$WINEPREFIX/drive_c/Program Files/extant" "${cache}/extant.zip"
add_launcher "c:\Program Files\extant\Extant.exe" add_launcher "c:\Program Files\extant\Extant.exe"
;; ;;
"Fantasy Story II")
export winVer="win10"
install_wine_bottle speechsdk
download "https://stormgames.wolfe.casa/downloads/FS2_2.2_Windows_x86.zip"
unzip -d "$WINEPREFIX/drive_c/Program Files/" "${cache}/FS2_2.2_Windows_x86.zip"
add_launcher "c:\Program Files\FS2_2.2_Windows_x86\FantasyStory2.exe"
;;
"Fartman") "Fartman")
install_wine_bottle dx8vb vb6run install_wine_bottle dx8vb vb6run
download "http://www.agarchive.net/games/bpc/fartman.exe" download "http://www.agarchive.net/games/bpc/fartman.exe"
@ -1834,8 +1859,8 @@ case "${game}" in
add_launcher "c:\Program Files\hammer of glory\game.exe" add_launcher "c:\Program Files\hammer of glory\game.exe"
;; ;;
"Hearthstone") "Hearthstone")
export winVer="win7" export winVer="win10"
install_wine_bottle speechsdk install_wine_bottle ie8 vcrun2015 speechsdk
# This download url breaks the download function, so grab it manually. # This download url breaks the download function, so grab it manually.
wget -O "${cache}/Hearthstone.exe" "https://www.battle.net/download/getInstallerForGame?os=win&gameProgram=HEARTHSTONE&version=Live" wget -O "${cache}/Hearthstone.exe" "https://www.battle.net/download/getInstallerForGame?os=win&gameProgram=HEARTHSTONE&version=Live"
wget -O "${cache}/Hearthstone_patch.zip" "https://github.com/HearthstoneAccess/HearthstoneAccess/releases/latest/download/patch.zip" wget -O "${cache}/Hearthstone_patch.zip" "https://github.com/HearthstoneAccess/HearthstoneAccess/releases/latest/download/patch.zip"
@ -1900,7 +1925,7 @@ case "${game}" in
wine "${cache}/judgmentdayfullsetup.exe" /silent wine "${cache}/judgmentdayfullsetup.exe" /silent
cat << EOF > /tmp/judgementday.reg cat << EOF > /tmp/judgementday.reg
Windows Registry Editor Version 5.00 Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\VB and VBA Program Settings\judgmentday\config] [HKEY_CURRENT_USER\Software\VB and VBA Program Settings\judgmentday\config]
"name"="$USER" "name"="$USER"
EOF EOF
@ -1921,6 +1946,17 @@ EOF
wine "${cache}/kringle crash setup.exe" /silent wine "${cache}/kringle crash setup.exe" /silent
add_launcher "c:\Program Files\Kringle Crash\kringlecrash.exe" add_launcher "c:\Program Files\Kringle Crash\kringlecrash.exe"
;; ;;
"Laser Breakout")
export bottle="nyanchan"
export winVer="win7"
install_wine_bottle speechsdk
download "http://www.nyanchangames.com/softs/lsSetup.exe" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient32.dll"
wine "${cache}/lsSetup.exe" &
xdotool sleep 10 key Return
wineserver -w
find "${WINEPREFIX}" -type f -name "nvdaControllerClient.dll" -exec rm -fv "{}" \;
add_launcher "c:\nyanchangame\laser breakout\play.exe"
;;
"Light Battles") "Light Battles")
export winVer="win7" export winVer="win7"
install_wine_bottle speechsdk install_wine_bottle speechsdk
@ -1988,6 +2024,17 @@ EOF
wine "${cache}/manamon2_installer.exe" /silent wine "${cache}/manamon2_installer.exe" /silent
add_launcher "c:\Program Files\VGStorm.com\Manamon 2\rpg.exe" add_launcher "c:\Program Files\VGStorm.com\Manamon 2\rpg.exe"
;; ;;
"Marina Break")
export bottle="nyanchan"
export winVer="win7"
install_wine_bottle speechsdk
download "https://www.nyanchangames.com/softs/MbSetupE.exe"
wine "${cache}/MbSetupE.exe" &
xdotool sleep 10 key Return
wineserver -w
find "${WINEPREFIX}" -type f -name "nvdaControllerClient.dll" -exec rm -fv "{}" \;
add_launcher "c:\nyanchangame\MarinaBreak\marinabreak.exe"
;;
"Monkey Business") "Monkey Business")
export winVer="win7" export winVer="win7"
install_wine_bottle vb6run dx8vb speechsdk quartz install_wine_bottle vb6run dx8vb speechsdk quartz
@ -2148,9 +2195,10 @@ EOF
# Choppy sound under water. # Choppy sound under water.
install_wine_bottle install_wine_bottle
download "https://www.agarchive.net/games/XSight/River%20Raiders%201.3.5.exe" download "https://www.agarchive.net/games/XSight/River%20Raiders%201.3.5.exe"
wine "$cache/River Raiders 1.3.5.exe" /silent & wine "$cache/River Raiders 1.3.5.exe" &
xdotool sleep 5 type y 2> /dev/null xdotool sleep 5 type y 2> /dev/null
xdotool sleep 1 key --clearmodifiers alt+n sleep 2 key alt+n sleep 2 key alt+n sleep 2 key alt+i sleep 5 key alt+f 2> /dev/null xdotool sleep 1 key --clearmodifiers alt+n sleep 2 key alt+n sleep 2 key alt+n sleep 2 key alt+i sleep 5 key alt+f 2> /dev/null
wineserver -w
add_launcher "c:\Program Files\River Raiders\raid.exe" add_launcher "c:\Program Files\River Raiders\raid.exe"
;; ;;
"RS Games") "RS Games")
@ -2187,6 +2235,7 @@ EOF
add_launcher "c:\Program Files\scramble_win32\scramble.exe" add_launcher "c:\Program Files\scramble_win32\scramble.exe"
;; ;;
"Screaming Strike 2") "Screaming Strike 2")
export bottle="nyanchan"
export winVer="win7" export winVer="win7"
install_wine_bottle fakejapanese speechsdk install_wine_bottle fakejapanese speechsdk
download "https://www.nyanchangames.com/softs/screamingStrike2.exe" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient32.dll" download "https://www.nyanchangames.com/softs/screamingStrike2.exe" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient32.dll"
@ -2289,7 +2338,7 @@ EOF
;; ;;
"Super Egg Hunt") "Super Egg Hunt")
export bottle="l-works" export bottle="l-works"
install_wine_bottle install_wine_bottle
download "http://files.l-works.net/superegghuntsetup.exe" download "http://files.l-works.net/superegghuntsetup.exe"
wine "${cache}/superegghuntsetup.exe" /silent wine "${cache}/superegghuntsetup.exe" /silent
add_launcher "c:\Program Files\Lworks\super egg hunt\superegghunt.exe" add_launcher "c:\Program Files\Lworks\super egg hunt\superegghunt.exe"