diff --git a/audiogame-manager.sh b/audiogame-manager.sh index c283685..d44d616 100755 --- a/audiogame-manager.sh +++ b/audiogame-manager.sh @@ -6,7 +6,7 @@ export DIALOGOPTS='--no-lines --visit-items' # Automatic update function update() { local filePath="$(command -v ${0})" - if file "${filePath}" | grep 'Bourne-Again shell script, ASCII text' ; then + if file "${filePath}" | grep -q 'Bourne-Again shell script, ASCII text' ; then return fi if [[ "$(wget --quiet -O - https://stormgames.wolfe.casa/downloads/audiogame-manager | sha256sum | cut -d ' ' -f1)" == "$(sha256sum "${filePath}" | cut -d ' ' -f1)" ]]; then @@ -37,16 +37,21 @@ checklist() { else errorList+=("Critical: Wine is not installed. You will not be able to play any games.") fi + if command -v winetricks &> /dev/null ; then + echo "Winetricks is installed." + else + errorList+=("Critical: Winetricks is not installed. This means wine cannot be configured, dependancies cannot be installed, and only self-voicing games have any chance of working.") + fi if command -v wget &> /dev/null ; then echo "Wget is installed." else errorList+=("Critical: Wget is not installed. You will not be able to install any games.") fi - for i in cabextract unzip xz ; do + for i in 7z cabextract unzip xz ; do if command -v $i &> /dev/null ; then echo "${i^} is installed." else - errorList+=("Critical: ${i^} is not installed. You will not be able to install most games.") + errorList+=("Critical: ${i^} is not installed. You will not be able to install some games or their components.") fi done if command -v ocrdesktop &> /dev/null ; then @@ -69,6 +74,11 @@ checklist() { else errorList+=("Warning: Wine mono not found, some games may not work.") fi + if command -v xdotool &> /dev/null ; then + echo "Xdotool is installed." + else + errorList+=("Warning: Xdotool is not installed. Some installlers may not work or may need manual intervention.") + fi # Show the results if [[ ${#errorList[@]} -eq 0 ]]; then echo "No problems found, you are good to go." @@ -115,6 +125,11 @@ install_wine_bottle() { # Arguments to the function are dependancies to be installed. (wine msiexec /i z:/usr/share/wine/mono/$(ls -1 /usr/share/wine/mono/) /silent wine msiexec /i z:$(ls -1 /usr/share/wine/gecko/*x86.msi) /silent + # If the game requires speechsdk, get the espeak voices. + if [[ "$*" =~ speechsdk ]]; then + download "http://sourceforge.net/projects/espeak/files/espeak/espeak-1.48/setup_espeak-1.48.04.exe" + wine "${cache}/setup_espeak-1.48.04.exe" /silent + fi winetricks -q $@ ${winVer:-winxp} ${winetricksSettings}) | dialog --progressbox "Installing wine bottle, please wait..." -1 -1 } @@ -225,6 +240,15 @@ game_launcher() { # kill any previous existing wineservers for this prefix in case they didn't shut down properly. WINEPREFIX="${HOME}/.local/wine/${game%|*}" wineserver -k # launch the game + if command -v qjoypad &> /dev/null ; then + mkdir -p ~/.qjoypad3 + touch "${HOME}/.qjoypad3/${game%|*}.lyt" + if pgrep qjoypad &> /dev/null ; then + qjoypad -T "${game%|*}" 2> /dev/null + else + qjoypad -T "${game%|*}" 2> /dev/null & + fi + fi WINEPREFIX="${HOME}/.local/wine/${game%|*}" wine start /d "${winePath}" "$wineExec" fi exit 0 @@ -298,14 +322,22 @@ unset manualInstall # Use menu friendly names. gameList=( "Adrian's Doom" + "Adventurers At C" + "AudioDisc" "Battle Zone" "Bloodshed" "Crazy Party" "Easter Quest" + #"Entombed" + "Finger Panic" + "Fuck That Bird" "Kitchensinc Games" "Light Cars" "Lockpick" - "Oh Shit!" + "Manamon" + "Manamon 2" + "Pontes Kickups!" + "Run For Your Life" "Shades of Doom" "Super Egg Hunt" "Super Liam" @@ -314,8 +346,6 @@ gameList=( "Technoshock" "Top Speed 3" "Q9" - "RS Games" - "Undead Assault" ) # With no arguments, open the game launcher. @@ -367,6 +397,20 @@ case "${game}" in install_wine_bottle speechsdk download "http://www.samtupy.com/games/bloodshed.exe" cp "${cache}/bloodshed.exe" "$WINEPREFIX/drive_c/Program Files/" + add_launcher "c:\Program Files\bloodshed.exe" + ;; + "Adventurers At C") + install_wine_bottle speechsdk + download "http://www.vgstorm.com/aac/aac.zip" "https://www.agarchive.net/games/vg/adventure%20at%20c%20stages.7z" + unzip -d "$WINEPREFIX/drive_c/Program Files/aac" "${cache}/aac.zip" + 7z e -o"$WINEPREFIX/drive_c/Program Files/aac/stages" "${cache}/adventure at c stages.7z" + add_launcher "c:\Program Files\aac\aac.exe" + ;; + "AudioDisc") + install_wine_bottle + download "https://agarchive.net/games/other/audiodisc.zip" + unzip -d "$WINEPREFIX/drive_c/Program Files" "${cache}/audiodisc.zip" + add_launcher "c:\Program Files\audiodisc\disco.exe" ;; "Crazy Party") export winVer="win7" @@ -382,6 +426,30 @@ case "${game}" in wine "${cache}/easter quest setup.exe" /silent add_launcher "c:\Program Files\MTGames\Easter Quest\easter.exe" ;; + "Entombed") + install_wine_bottle msvcrt40 speechsdk xna31 + download "http://www.blind-games.com/EntombedSetup.exe" "http://www.blind-games.com/EntombedUpdate.exe" + wine "${cache}/EntombedSetup.exe" /silent + wine "${cache}/EntombedUpdate.exe" /silent + #add_launcher "c:\Program Files\MTGames\Easter Quest\easter.exe" + ;; + "Finger Panic") + install_wine_bottle dx8vb vb6run + download "http://www.agarchive.net/games/bsc/FingerPanicSetup.exe" + if command -v xdotool &> /dev/null ; then + wine "${cache}/FingerPanicSetup.exe" /silent | xdotool sleep 10 key alt+y --clearmodifiers + else + wine "${cache}/FingerPanicSetup.exe" /silent + fi + add_launcher "c:\Program Files\Finger Panic 1.0\FingerPanic.exe" + ;; + "Fuck That Bird") + export winVer="win7" + install_wine_bottle + download "http://oriolgomez.com/games/bird_en.zip" + unzip -d "$WINEPREFIX/drive_c/Program Files/fuck that bird" "${cache}/bird_en.zip" + add_launcher "c:\Program Files\fuck that bird/game.exe" + ;; "Kitchensinc Games") install_wine_bottle vb6run speechsdk dx8vb download "https://stormgames.wolfe.casa/downloads/kitchen.tar.xz" @@ -408,12 +476,34 @@ case "${game}" in wine "${cache}/lockpicksetup.exe" /silent add_launcher "c:\Program Files\lWorks\Lockpick\lockpick.exe" ;; - "Oh Shit!") + "Manamon") export winVer="win7" - install_wine_bottle msvcrt40 speechsdk - download "http://samtupy.com/stevend/oh_shit.zip" - unzip -d "$WINEPREFIX/drive_c/Program Files" "${cache}/oh_shit.zip" - add_launcher "c:\Program Files\oh_shit\OhShit.exe" + install_wine_bottle speechsdk + download "https://www.vgstorm.com/manamon/manamon_installer.exe" + wine "${cache}/manamon_installer.exe" /silent + add_launcher "c:\Program Files\VGStorm.com\Manamon\rpg.exe" + ;; + "Manamon 2") + export winVer="win7" + install_wine_bottle speechsdk + download "http://www.vgstorm.com/manamon2/manamon2_installer.exe" + wine "${cache}/manamon2_installer.exe" /silent + add_launcher "c:\Program Files\VGStorm.com\Manamon 2\rpg.exe" + ;; + "Pontes Kickups!") + export winVer="win7" + install_wine_bottle speechsdk + download "http://www.pontes.ro/ro/divertisment/games/PontesKickUpsInstaller.exe" + wine "${cache}/PontesKickUpsInstaller.exe" /silent /q + rm -fv "${WINEPREFIX}/drive_c/Program Files/Pontes Games/Pontes Kick-ups/nvdaControllerClient32.dll" + add_launcher "c:\Program Files\Pontes Games\Pontes Kick-ups\PontesKickUps.exe" + ;; + "Run For Your Life") + export winVer="win7" + install_wine_bottle + download "http://oriolgomez.com/games/rfyl_en.zip" + unzip -d "$WINEPREFIX/drive_c/Program Files/run for your life" "${cache}/rfyl_en.zip" + add_launcher "c:\Program Files\run for your life/game.exe" ;; "Shades of Doom") install_wine_bottle vcrun6 @@ -474,14 +564,6 @@ case "${game}" in wine "${cache}/q9_english_installer.exe" /silent add_launcher "c:\Program Files\Q9 Action Game\q9.exe" ;; - "RS Games") - # Does not speak with sapi. - export winetricksSettings="vd=1024x768" - install_wine_bottle speechsdk vcrun6 - download "http://rsgames.org/rsdownloads/rsgclient/rsgames-client-setup-2.01.exe" - wine "${cache}/rsgames-client-setup-2.01.exe" /silent - add_launcher "c:\Program Files\RS Games Client\rsg.exe" - ;; "Make a One Time Donation") xdg-open "https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=stormdragon2976@gmail.com&lc=US&item_name=Donation+to+Storm+Games&no_note=0&cn=¤cy_code=USD&bn=PP-DonationsBF:btn_donateCC_LG.gif:NonHosted" ;;