diff --git a/audiogame-manager.sh b/audiogame-manager.sh index 2e09288..3ce28a1 100755 --- a/audiogame-manager.sh +++ b/audiogame-manager.sh @@ -22,7 +22,7 @@ license() { left blank, the Original Developer is the Initial Developer. The Initial Developer of the Original Code is Billy "Storm Dragon" Wolfe. All portions of - the code written by Billy Wolfe are Copyright (c) 2020. All Rights + the code written by Billy Wolfe are Copyright (c) 2020, 2024. All Rights Reserved. Contributor Michael Taboada. @@ -54,6 +54,8 @@ alert() { # Check for latest news check_news() { + # For use by update scripts that want to source functions in this file. + [[ "$agmNoLaunch" == "true" ]] && return trap return INT # url for news file local newsFile="https://stormgames.wolfe.casa/media/agm.ogg" @@ -75,6 +77,9 @@ check_news() { # Automatic update function update() { + if ! [[ -d ".git" ]]; then + return + fi local url="$(git ls-remote --get-url)" if [[ "$url" =~ ^ssh://|git@|gitea@ ]] || [[ -z "$url" ]]; then return @@ -277,6 +282,7 @@ download() { for i in "${source[@]}" ; do local dest="${i##*/}" dest="${dest//%20/ }" + dest="${dest#*\?filename=}" dest="${dest%\?*}" # Remove the destination file if it is empty. test -s "${cache}/${dest}" || rm -f "${cache}/${dest}" 2> /dev/null @@ -312,12 +318,14 @@ get_bottle() { "dog-who-hates-toast"*) ;& "lunimals"*) ;& "paw-prints"*) ;& + "penta-path"*) ;& "preludeamals"*) ;& "puzzle-divided"*) ;& + "rettou"*) ;& "revelation"*) ;& "swamp"*) ;& + "tarot-assistant"*) ;& "triple-triad"*) - install_wine "7.7" "32" export WINEPREFIX="${HOME}/.local/wine/aprone" ;; "bg-"*) export WINEPREFIX="${HOME}/.local/wine/bg";; # ESP Pinball games @@ -360,7 +368,8 @@ get_bottle() { "challenge-of-the-horse"*) export WINEPREFIX="${HOME}/.local/wine/tunmi13";; # tunmi13-64bit games group "battlefield-2d"*) ;& - "haunted-party"*) export WINEPREFIX="${HOME}/.local/wine/tunmi13-64bit";; + "haunted-party"*) ;& + "skateboarder-pro"*) export WINEPREFIX="${HOME}/.local/wine/tunmi13-64bit";; # Dan Z games group "lost"*) ;& "maze-craze"*) ;& @@ -411,6 +420,36 @@ get_installer() { fi } +get_steam() { + # Arguments: $1 id of item for download, $2 url for game + trap "exit 0" SIGINT + echo "The next steps will install through steamcmd." + alert + # Check for steamcmd + if ! command -v steamcmd &> /dev/null ; then + dialog --backtitle "Audiogame Manager" \ + --infobox "This installer requires steamcmd. Please install steamcmd and try again." -1 -1 + exit 1 + fi + # Create message for dialog. + local message="Make sure ${game} is available in your Steam library and press enter to continue. The URL for ${game} is $2" + if echo "$2" | xclip -selection clipboard 2> /dev/null ; then + message+="\n\nThe URL has been copied to the clipboard." + fi + dialog --ok-label "Continue" \ + --backtitle "Audiogame Manager" \ + --msgbox "$message" -1 -1 + # Get Steam user name. + steamUser="$(dialog --ok-label "Continue" \ + --backtitle "Audiogame Manager" \ + --inputbox "Please enter your Steam user name:" -1 -1 --stdout)" + # Download the game + mkdir -p "${WINEPREFIX}/drive_c/Program Files/${game}" + steamcmd +@sSteamCmdForcePlatformType windows +force_install_dir "${WINEPREFIX}/drive_c/Program Files/$game" +login "$steamUser" +app_update "$1" +quit || { dialog --backtitle "Audiogame Manager" \ + --infobox "Something went wrong. Please make sure you have a stable internet connection, and if the problem persists, contact audiogame-manager's developers." -1 -1 + exit 1; } +} + help() { echo "${0##*/}" echo "Released under the terms of the Common Public Attribution License Version 1.0" @@ -426,6 +465,7 @@ help() { echo "${configFile%/*}/settings.conf" echo "The syntax is variable=\"value\"" echo + echo "ipfsGateway=\"https://gateway.pinata.cloud\" # Gateway to be used for ipfs downloads." echo "noCache=\"true\" # Do not keep downloaded items in the cache." echo "noqjoypad=\"true\" # Do not launch qjoypad." echo "norh=\"true\" # Do not install RHVoice." @@ -446,13 +486,14 @@ documentation() { fi if ! command -v w3m &> /dev/null ; then echo "This feature of audiogame-manager requires w3m. Please install it before continuing." + exit 1 fi get_bottle "$1" echo "Loading documentation, please wait..." # Try to find documentation based on common naming conventions. local gamePath="$(winepath -u "$2" 2> /dev/null)" gamePath="${gamePath%/*}" - local gameDoc="$(find "$gamePath" -type f -iname 'user_manual.html' -or -iname 'user_manual.htm' | head -1)" + local gameDoc="$(find "$gamePath" -type f -iname 'user_manual.htm*' -or -iname 'user manual.htm*' -or -iname '*user guide.htm*' | head -1)" # Game name specific docs, add the name to the for loop. if [[ -z "$gameDoc" ]]; then for i in "troopanum.txt" "superdeekout.txt" scw.html ; do @@ -478,7 +519,7 @@ echo "Loading documentation, please wait..." gameDoc="$(find "$gamePath" -type f -iname 'manual.txt' | head -1)" fi if [[ -z "$gameDoc" ]]; then - gameDoc="$(find "$gamePath" -type f -iname 'readme.txt' | head -1)" + gameDoc="$(find "$gamePath" -type f -iname 'readme.txt' -or -iname 'help.txt' | head -1)" fi if [[ -z "$gameDoc" ]]; then gameDoc="$(find "$gamePath" -type f -iname '*.url' -exec grep -i 'url=' {} \; | grep -iv 'score' | head -1)" @@ -607,8 +648,8 @@ install_wine_bottle() { export WINEPREFIX="$HOME/.local/wine/${bottle}" # Arguments to the function are dependancies to be installed. # Get location of mono and gecko. - monoPath="$(find /usr/share/wine/mono -name "wine-mono*x86.msi" 2> /dev/null)" - geckoPath="$(find /usr/share/wine/gecko -name "wine-gecko*x86.msi" 2> /dev/null)" + monoPath="$(find /usr/share/wine/ -maxdepth 1 -type d -name mono 2> /dev/null)" + geckoPath="$(find /usr/share/wine/ -maxdepth 1 -type d "gecko" 2> /dev/null)" if [[ -z "$monoPath" ]]; then download 'http://dl.winehq.org/wine/wine-mono/6.0.0/wine-mono-6.0.0-x86.msi' monoPath="${cache}/wine-mono-6.0.0-x86.msi" @@ -638,7 +679,7 @@ install_wine_bottle() { echo "WINE=\"${WINE}\"" > "$HOME/.local/wine/${bottle}/agm.conf" echo "WINESERVER=\"${WINESERVER}\"" >> "$HOME/.local/wine/${bottle}/agm.conf" # If default voice is set, change it for the bottle - if [[ -n "${defaultVoice}" ]] && [[ "${*}" =~ (speechsdk|sapi) ]]; then + if [[ ${#defaultVoice} -ge 2 ]] && [[ "${*}" =~ (speechsdk|sapi) ]]; then echo "Setting default voice for bottle \"${bottle}\" to \"${defaultVoice}\"." "${0%/*}/speech/set-voice.sh" -b "${bottle}" -r "${defaultRate:-7}" -v "${defaultVoice}" fi @@ -773,6 +814,8 @@ kill_game() { # 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 '/^$/d' "${configFile}" 2> /dev/null) if [[ ${#lines} -eq 0 ]]; then echo "Install some games first." @@ -832,7 +875,9 @@ game_launcher() { if command -v qjoypad &> /dev/null ; then mkdir -p ~/.qjoypad3 touch "${HOME}/.qjoypad3/${game%|*}.lyt" - if [[ "${noqjoypad}" != "true" ]]; then + # A | separated list of games that should not start with qjoypad. + noQjoypadGames="a-hero's-call" + if [[ "${noqjoypad}" != "true" ]] && ! [[ "${game}" =~ ${noQjoypadGames} ]]; then if pgrep qjoypad &> /dev/null ; then qjoypad -T "${game%|*}" 2> /dev/null else @@ -862,6 +907,9 @@ game_launcher() { "${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 @@ -1009,6 +1057,8 @@ unset noCache # Manual installation is not default, make sure it's unset unset manualInstall unset version +# ipfs gateway +export ipfsGateway="${ipfsGateway:-https://gateway.pinata.cloud}" # The list of games available for installation. @@ -1090,6 +1140,7 @@ gameList=( "Clashes of the Sky" "Code Dungeon" "Coin Collector" + "Conjury" #"Constant Battle" "Copter Mission" "Crazy Party" @@ -1103,6 +1154,7 @@ gameList=( "Deathmatch" "Dog Who Hates Toast" "Dragon Pong" + "Dreamland" "Duck Hunt" "DynaMan" "Easter Quest" @@ -1112,16 +1164,19 @@ gameList=( "ESP Pinball Extreme" "ESP Pinball Party Pack" #"Eurofly" + "Executioner's Rage" "Extant" #"Fartman" "Finger Panic" "Fuck That Bird" + "Galactic Strike" "GMA Tank Commander" "Grizzly Gulch" "Hammer of Glory" "haunted Party" #"Hearthstone" "Hunter" + "Inquisitor's Heartbeat" "Insect Therapy" "Interceptor" "Judgement Day" @@ -1151,6 +1206,7 @@ gameList=( "Paladin of the Sky" "Park Boss" "Paw Prints" + "Penta Path" "Perilous Hearts" "Pontes Kickups!" "Pigeon Panic" @@ -1159,6 +1215,7 @@ gameList=( #"Psycho Strike" "Puzzle Divided" "Q9" + "Rettou" "Revelation" "Rhythm Rage" "River Raiders" @@ -1177,6 +1234,7 @@ gameList=( "Shadow Line" "Shooter" "Silver Dollar" + "Skateboarder Pro" "Slender Lost Vision" "Sonic the Hedgehog" "Sonic Zoom" @@ -1195,12 +1253,14 @@ gameList=( #"The Gate" "The Great Toy Robbery" "The Vale" + "They'll Come from the Moon" "Thief" "Traders of Known Space" "Three D velocity" "Tomb Hunter" "Top Speed 2" "Top Speed 3" + "Tarot Assistant" "Triple Triad" "Troopanum2" "Tube Sim" @@ -1222,7 +1282,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 @@ -1390,363 +1450,318 @@ download "https://erion.cf/files/ag_103.zip" add_launcher "c:\Program Files\Beatstar Pro\beatstar.exe" ;; "BG 2048") - bgInstaller="BG204832Setup10a.exe" export bottle="bg" - get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm" + download "${ipfsGateway}/ipfs/QmPNt3c78UBgEMrTH3eJ5eD2mCMdth6jwes1iDKGW24Uj5?filename=BG204832Setup10a.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/BG204832Setup10a.exe" /silent add_launcher "c:\Program Files\Games\BG2048B\BG2048.exe" ;; "BG 15 Puzzle") - bgInstaller="FPB32Setup10a.exe" export bottle="bg" - get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm" + download "${ipfsGateway}/ipfs/QmQiocMpMXoxejDftKKvmrR5xxpj1qcWcgkhBBwTcyijXg?filename=FPB32Setup10a.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/FPB32Setup10a.exe" /silent add_launcher "c:\Program Files\Games\FifteenB\FifteenB.exe" ;; "BG Aces Up Solitaire") - bgInstaller="ASB32Setup10.exe" export bottle="bg" - get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm" + download "${ipfsGateway}/ipfs/QmTshtHBEV9dh7wFtaQpNUEYHZ3fBpuhSRZqc7k8HwmtPM?filename=ASB32Setup10.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/ASB32Setup10.exe" /silent add_launcher "c:\Program Files\Games\AcesUpB\AcesUpB.exe" ;; "BG Alchemy") - bgInstaller="BAC32Setup10.exe" export bottle="bg" - get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm" + download "${ipfsGateway}/ipfs/Qma76HXBhmKgMDeHH1XLePsaWzzzLsBS2HRL3c7MVwDokg?filename=BAC32Setup10.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/BAC32Setup10.exe" /silent add_launcher "c:\Program Files\Games\AlchemyB\AlchemyB.exe" ;; "BG Battleship") - bgInstaller="BGB32Setup10.exe" export bottle="bg" - get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm" + download "${ipfsGateway}/ipfs/Qmaq9P9fxdLTEFMGg4mhHrRuUbPg6HgU3eYVJNqZUimHjo?filename=BGB32Setup10.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/BGB32Setup10.exe" /silent add_launcher "c:\Program Files\Games\BattleshipB\BGBattleship.exe" ;; "BG Boggle") - bgInstaller="BGB32Setup10a.exe" export bottle="bg" - get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm" + download "${ipfsGateway}/ipfs/QmQwWiJw9hDiPdfwDyL4XepeoD66ztVRi3HwbSjFFP4CNg?filename=BGB32Setup10a.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/BGB32Setup10a.exe" /silent add_launcher "c:\Program Files\Games\BoggleB\BoggleB.exe" ;; "BG Boxes") - bgInstaller="BXB32Setup10.exe" export bottle="bg" - get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm" + download "${ipfsGateway}/ipfs/QmRn21tREXxXVSaDe9i54zEPzPSespjJAFBqu4DWocuagD?filename=BXB32Setup10.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/BXB32Setup10.exe" /silent add_launcher "c:\Program Files\Games\BoxesB\BoxesB.exe" ;; "BG Brainiac") - bgInstaller="BRN32Setup10a.exe" export bottle="bg" - get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm" + download "${ipfsGateway}/ipfs/QmWEdmTkQsjSqBgWUgnDajMf8QvQBbEF4Nxo6mhkXYzBtQ?filename=BRN32Setup10a.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/BRN32Setup10a.exe" /silent add_launcher "c:\Program Files\Games\BrainiacB\BrainiacB.exe" ;; "BG Chess Challenge") - bgInstaller="BGC32Setup10d.exe" export bottle="bg" - get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm" + download "${ipfsGateway}/ipfs/QmT2yBpU5Jqna18FxYtyWzi4xMGAY9PyJWStAskxCHqBDw?filename=BGC32Setup10d.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/BGC32Setup10d.exe" /silent add_launcher "c:\Program Files\Games\ChessB\BGChess.exe" ;; "BG Code Breaker") - bgInstaller="BCB32Setup10.exe" export bottle="bg" - get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm" + download "${ipfsGateway}/ipfs/QmU486SssAdM7kPKwDyAKDLQs3Z92bG6wFjaLhzqDZCxAF?filename=BCB32Setup10.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/BCB32Setup10.exe" /silent add_launcher "c:\Program Files\Games\CodeBreakerB\BGCodeBreaker.exe" ;; "BG Cribbage") - bgInstaller="BGC32Setup12e.exe" export bottle="bg" - get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm" + download "${ipfsGateway}/ipfs/QmeFud3EPHy7wQe8UENgvh96HdAazEkwqA2AutCNkYvB3t?filename=BGC32Setup12e.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/BGC32Setup12e.exe" /silent add_launcher "c:\Program Files\Games\CribbageB\CribbageB.exe" ;; "BG Cribbage Solitaire") - bgInstaller="BCS32Setup10.exe" export bottle="bg" - get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm" + download "${ipfsGateway}/ipfs/QmbRUiknnNcibWD3NwK4DFZGNHWswBgsFidUzU1TFGJ5Ra?filename=BCS32Setup10.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/BCS32Setup10.exe" /silent add_launcher "c:\Program Files\Games\CribSolB\CribSolB.exe" ;; "BG Crossword Puzzle") - bgInstaller="BGX32Setup10h.exe" export bottle="bg" - get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm" + download "${ipfsGateway}/ipfs/QmZQGY9CeATEiWrSqsKBz4AN6jPgQuvbBZSpQoLiMjoDr2?filename=BGX32Setup10h.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/BGX32Setup10h.exe" /silent add_launcher "c:\Program Files\Games\CrosswordB\CrosswordB.exe" ;; "BG Draw Dominoes") - bgInstaller="BDD32Setup10.exe" export bottle="bg" - get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm" + download "${ipfsGateway}/ipfs/QmZQGY9CeATEiWrSqsKBz4AN6jPgQuvbBZSpQoLiMjoDr2?filename=BDD32Setup.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/BDD32Setup.exe" /silent add_launcher "c:\Program Files\Games\DrawDominoesB\DrawDominoesB.exe" ;; "BG Elevens Solitaire") - bgInstaller="ESB32Setup10.exe" export bottle="bg" - get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm" + download "${ipfsGateway}/ipfs/QmWWZByYL5CsDSi6gQLGcMyBL7zqD5hWXbPXJr3shRt5AQ?filename=ESB32Setup10.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/ESB32Setup10.exe" /silent add_launcher "c:\Program Files\Games\ElevensB\ElevensB.exe" ;; "BG Fives Dominoes") - bgInstaller="BFD32Setup10.exe" export bottle="bg" - get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm" + download "${ipfsGateway}/ipfs/QmSZt6dz7WQkNrFBmYq9n4WdYrrZyQAebTBPo46uHqCuNi?filename=BFD32Setup10.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/BFD32Setup10.exe" /silent add_launcher "c:\Program Files\Games\FivesDominoesB\FivesDominoesB.exe" ;; "BG Free Cell Solitaire") - bgInstaller="BGF32Setup20.exe" export bottle="bg" - get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm" + download "${ipfsGateway}/ipfs/QmVfQMMnqTD9Zm8Xwv7rGrUTdS9FXToq7Fv6wtQQVgbQGR?filename=BGF32Setup20.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/BGF32Setup20.exe" /silent add_launcher "c:\Program Files\Games\FreecellB\FreecellB.exe" ;; "BG Golf Solitaire") - bgInstaller="GSB32Setup10a.exe" export bottle="bg" - get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm" + download "${ipfsGateway}/ipfs/QmfAp9EYou1pndLwYSdpYdUCHBv2DR94oFccQh1ii9JVLD?filename=GSB32Setup10a.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/GSB32Setup10a.exe" /silent add_launcher "c:\Program Files\Games\GolfSolitaireB\GolfSolitaireB.exe" ;; "BG Hangman") - bgInstaller="HMB32Setup10.exe" export bottle="bg" - get_installer "${bgInstaller}" "http://www.spoonbillsoftware.com.au/bggames.htm" + download "${ipfsGateway}/ipfs/QmXTPMmvw7JE2eLuPBLGSpkZqUn12TX7QEQZbX8qtp7GBx?filename=HMB32Setup10.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/HMB32Setup10.exe" /silent add_launcher "c:\Program Files\Games\HangmanB\HangmanB.exe" ;; "BG Hearts") - bgInstaller="BGH32Setup10b.exe" export bottle="bg" - get_installer "${bgInstaller}" "http://www.spoonbillsoftware.com.au/bggames.htm" + download "${ipfsGateway}/ipfs/QmdU5ag1PRjvG28wNX7aNuJqZSVxaqEEKjgG6GoRoDT8k4?filename=BGH32Setup10b.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/${BGH32Setup10b.exe}" /silent add_launcher "c:\Program Files\Games\HeartsB\HeartsB.exe" ;; "BG Klondike Solitaire") - bgInstaller="BGK32Setup10b.exe" export bottle="bg" - get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm" + download "${ipfsGateway}/ipfs/QmctBDvhQWwER94LvgauR7sMDxv9D1mS9cToV47orTCdzU?filename=BGK32Setup10b.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/BGK32Setup10b.exe" /silent add_launcher "c:\Program Files\Games\KlondikeB\KlondikeB.exe" ;; "BG LAP") - bgInstaller="LAP32Setup10.exe" export bottle="bg" - get_installer "${bgInstaller}" "http://www.spoonbillsoftware.com.au/bggames.htm" + download "${ipfsGateway}/ipfs/Qma5WeCC9B2P5abRGX9nGYV8Zi9F8vfCCr4ehejP2bgmNm?filename=LAP32Setup10.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/LAP32Setup10.exe" /silent add_launcher "c:\Program Files\Games\LAP\LAP.exe" ;; "BG Master Mind") - bgInstaller="BMM32Setup10.exe" export bottle="bg" - get_installer "${bgInstaller}" "http://www.spoonbillsoftware.com.au/bggames.htm" + download "${ipfsGateway}/ipfs/QmP6cwMbirbBqAaG9JLfNRnD2dvJfh6nq74kfwxs5hN2RQ?filename=BMM32Setup10.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/BMM32Setup10.exe" /silent add_launcher "c:\Program Files\Games\MastermindB\BGMasterMind.exe" ;; "BG Mine Sweeper") - bgInstaller="MSB32Setup10.exe" export bottle="bg" - get_installer "${bgInstaller}" "http://www.spoonbillsoftware.com.au/bggames.htm" + download "${ipfsGateway}/ipfs/QmRa54HroWjwxHYfKr6hdmP34sHW5G3ecuzcjMA5UBBVKa?filename=MSB32Setup10.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/MSB32Setup10.exe" /silent add_launcher "c:\Program Files\Games\MinesweeperB\MinesweeperB.exe" ;; "BG Nomination Whist") - bgInstaller="BNW32Setup10a.exe" export bottle="bg" - get_installer "${bgInstaller}" "http://www.spoonbillsoftware.com.au/bggames.htm" + download "${ipfsGateway}/ipfs/Qmb7eGTMDgiaDC9muMW9n8bHoistGcNm1VgHc6sr7dRyHU?filename=BNW32Setup10a.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/BNW32Setup10a.exe" /silent add_launcher "c:\Program Files\Games\NomWhistB\NomWhistB.exe" ;; "BG Penguin Solitaire") - bgInstaller="BPS32Setup10c.exe" export bottle="bg" - get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm" + download "${ipfsGateway}/ipfs/QmXKvQ6WNNSnDiSyYmvAhZXVdALnuhUGK7dSMQVkQNReJr?filename=BPS32Setup10c.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/BPS32Setup10c.exe" /silent add_launcher "c:\Program Files\Games\PenguinB\PenguinB.exe" ;; "BG Poker Solitaire") - bgInstaller="BPS32Setup10.exe" export bottle="bg" - get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm" + download "${ipfsGateway}/ipfs/QmPLv74LiDgVGuiGhu9HuPhx3uoMm9QyCYk6jgeFUHjj3S?filename=BPS32Setup10.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/BPS32Setup10.exe" /silent add_launcher "c:\Program Files\Games\PokerSolB\PokerSolB.exe" ;; "BG Pyramid Solitaire") - bgInstaller="PSB32Setup10a.exe" export bottle="bg" - get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm" + download "${ipfsGateway}/ipfs/QmaqXaBKD3xY2smhU2LcejXRTPnWZHqaTW9se8yRepLsHu?filename=PSB32Setup10a.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/PSB32Setup10a.exe" /silent add_launcher "c:\Program Files\Games\PyramidB\PyramidB.exe" ;; "BG Scorpion Solitaire") - bgInstaller="BSS32Setup10.exe" export bottle="bg" - get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm" + download "${ipfsGateway}/ipfs/QmSxJs2MiLQ61Fgx6vCpSD7GmQziLiCEU3sZ3mgWc7RsJ8?filename=BSS32Setup10.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/BSS32Setup10.exe" /silent add_launcher "c:\Program Files\Games\ScorpionB\ScorpionB.exe" ;; "BG Simon") - bgInstaller="BGS32Setup10.exe" export bottle="bg" - get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm" + download "${ipfsGateway}/ipfs/QmXtBCqB6VCFPaDYuLaFNP1BDtJSLCJdJZzgm61zMtrsQt?filename=BGS32Setup10.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/BGS32Setup10.exe" /silent add_launcher "c:\Program Files\Games\SimonB\SimonB.exe" ;; "BG Spider Solitaire") - bgInstaller="SPB32Setup10b.exe" export bottle="bg" - get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm" + download "${ipfsGateway}/ipfs/QmdWBaDnLVbKCJSpiqF675ew6nJ6KHUVXA5FEH3t3E7UAu?filename=SPB32Setup10b.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/SPB32Setup10b.exe" /silent add_launcher "c:\Program Files\Games\SpiderB\SpiderB.exe" ;; "BG Scrabble") - bgInstaller="BGS32Setup20.exe" export bottle="bg" - get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm" + download "${ipfsGateway}/ipfs/QmVrwyPdJBnmc4wLW7oT2hexxXnXxs8bA7gfiqbnJsWJ16?filename=BGS32Setup20.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/BGS32Setup20.exe" /silent add_launcher "c:\Program Files\Games\ScrabbleB\ScrabbleB.exe" ;; "BG Sudoku") - bgInstaller="SDB32Setup10a.exe" export bottle="bg" - get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm" + download "${ipfsGateway}/ipfs/QmXCAHEVRGZBc8t45Jgn2vkxicwF9Aox6yz9XrQBdkv7WY?filename=SDB32Setup10a.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/SDB32Setup10a.exe" /silent add_launcher "c:\Program Files\Games\SudokuB\SudokuB.exe" ;; "BG Tablic Solitaire") - bgInstaller="TSB32Setup10.exe" export bottle="bg" - get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm" + download "${ipfsGateway}/ipfs/QmYoiFQ6JuSXfZfZXT3SQDsYzMWLBu9rW9yivi1xiPjqZx?filename=SDB32Setup10a.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/SDB32Setup10a.exe" /silent add_launcher "c:\Program Files\Games\TabSolB\BGTabSol.exe" ;; "BG Tri-Peaks Solitaire") - bgInstaller="TPB32Setup10a.exe" export bottle="bg" - get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm" + download "${ipfsGateway}/ipfs/QmWJGvSR6iaQfMHM3XuGCkWxx285jkzSDdNSvvk3bSCH8S?filename=TPB32Setup10a.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/TPB32Setup10a.exe" /silent add_launcher "c:\Program Files\Games\TriPeaksB\TriPeaksB.exe" ;; "BG Twenty 20 Cricket") - bgInstaller="T20B32Setup10.exe" export bottle="bg" - get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm" + download "${ipfsGateway}/ipfs/QmWAk2TMHMvW6Kjc1sZBEPsxmCNHfY3nF1K723PCqaTa57?filename=TPB32Setup10a.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/T20B32Setup10.exe" /silent add_launcher "c:\Program Files\Games\T20CricketB\CricketB.exe" ;; "BG Uno") - bgInstaller="BGU32Setup11a.exe" "http://www.spoonbillsoftware.com.au/bggames.htm" export bottle="bg" - get_installer "${bgInstaller}" + download "${ipfsGateway}/ipfs/QmVsfPkebSoTDwYSXF1n7y4P9eGJTgTcGXdrEjpcV8A3Dv?filename=BGU32Setup11a.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/BGU32Setup11a.exe" /silent add_launcher "c:\Program Files\Games\UnoB\UnoB.exe" ;; "BG Word Builder") - bgInstaller="BWB32Setup10.exe" export bottle="bg" - get_installer "${bgInstaller}" "http://www.spoonbillsoftware.com.au/bggames.htm" + download "${ipfsGateway}/ipfs/QmXtR49EZShyj15Tc9CXQpBYVmKNfZpp4515Epm16bviuH?filename=BWB32Setup10.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/BWB32Setup10.exe" /silent add_launcher "c:\Program Files\Games\WordBuilderB\WordBuilderB.exe" ;; "BG Word Candy") - bgInstaller="WCB32Setup10a.exe" export bottle="bg" - get_installer "${bgInstaller}" "http://www.spoonbillsoftware.com.au/bggames.htm" + download "${ipfsGateway}/ipfs/QmfTgfRzd4JMRqKSfDiz76iMorkaG19BqH1K7nRCCDwo4H?filename=WCB32Setup10a.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/WCB32Setup10a.exe" /silent add_launcher "c:\Program Files\Games\WordCandyB\WordCandyB.exe" ;; "BG Word Jumble") - bgInstaller="BWJ32Setup10.exe" export bottle="bg" - get_installer "${bgInstaller}" "http://www.spoonbillsoftware.com.au/bggames.htm" + download "${ipfsGateway}/ipfs/QmYQWZZifzKJSuVRCC1SabwRmEDz95GdFvbzRvsBMmTt6e?filename=BWJ32Setup10.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/BWJ32Setup10.wineExec" /silent add_launcher "c:\Program Files\Games\WordJumbleB\WordJumbleB.exe" ;; "BG Word Maze") - bgInstaller="BWM32Setup10.exe" export bottle="bg" - get_installer "${bgInstaller}" "http://www.spoonbillsoftware.com.au/bggames.htm" + download "${ipfsGateway}/ipfs/QmXPtj5PkVZjXpU3m6FAfm8MwVL6bQCvhEDoR385u6FGTL?filename=BWM32Setup10.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/BWM32Setup10.exe" /silent add_launcher "c:\Program Files\Games\WordMazeB\WordMazeB.exe" ;; "BG Word Solitaire") - bgInstaller="WSB32Setup10.exe" export bottle="bg" - get_installer "$bgInstaller" "http://www.spoonbillsoftware.com.au/bggames.htm" + download "${ipfsGateway}/ipfs/QmZp73ARDPqgnCz7zxfKeBHjNoHrgZSgg2NdQZR2sMyZGD?filename=WSB32Setup10.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/WSB32Setup10.exe" /silent add_launcher "c:\Program Files\Games\WordSolitaireB\WordSolitaireB.exe" ;; "BG Word Target") - bgInstaller="WTB32Setup10a.exe" export bottle="bg" - get_installer "${bgInstaller}" "http://www.spoonbillsoftware.com.au/bggames.htm" + download "${ipfsGateway}/ipfs/QmWWZFXVHNtmNkH55oermWWtrMcQ8qVqL687B7kGFyeezq?filename=WTB32Setup10a.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/WTB32Setup10a.exe" /silent add_launcher "c:\Program Files\Games\WordTargetB\WordTargetB.exe" ;; "BG Word Yahtzee") - bgInstaller="BWY32Setup10.exe" export bottle="bg" - get_installer "${bgInstaller}" "http://www.spoonbillsoftware.com.au/bggames.htm" + download "${ipfsGateway}/ipfs/QmdicAVDegDktY3euVAC2PPn4YBGz96KedxYXNe4WDQaoq?filename=BWY32Setup10.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/BWY32Setup10.exe" /silent add_launcher "c:\Program Files\Games\WordYahtzeeB\BGWordYahtzee.exe" ;; "BG Yahtzee") - bgInstaller="BGY32Setup10a.exe" export bottle="bg" - get_installer "${bgInstaller}" "http://www.spoonbillsoftware.com.au/bggames.htm" + download "${ipfsGateway}/ipfs/QmZebvkKgFAADnb1cgW6Bz7wTYdUh82X61QdtW66KcvmpF?filename=BGY32Setup10a.exe" install_wine_bottle speechsdk - wine "${cache}/${bgInstaller}" /silent + wine "${cache}/BGY32Setup10a.exe" /silent add_launcher "c:\Program Files\Games\yahtzeeB\BGYahtzee.exe" ;; "Blind Drive") @@ -1763,7 +1778,7 @@ download "https://erion.cf/files/ag_103.zip" add_launcher "c:\Program Files\blind-drive\Blind Drive.exe" ;; "Bloodshed") - download "http://www.samtupy.com/games/bloodshed.exe" + download "${ipfsGateway}/ipfs/QmcTCTMep4zp5zTw8ZaXYpjtu9inNPn8bNzwhW6cX97egw?filename=bloodshed.exe" export winVer="win7" install_wine_bottle speechsdk cp "${cache}/bloodshed.exe" "$WINEPREFIX/drive_c/Program Files/" @@ -1907,6 +1922,16 @@ download "https://erion.cf/files/ag_103.zip" find "$WINEPREFIX/drive_c/Program Files/coin collector" -type f -name "nvdaControllerClient64.dll" -exec cp -v "$cache/nvda2speechd64.dll" "{}" \; add_launcher "c:\Program Files\coin collector\game.exe" ;; + "Conjury") + download "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd64.dll" "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd32.dll" + export WINEARCH=win64 + export winVer="win8" + install_wine_bottle + get_steam 2684520 "https://store.steampowered.com/app/2684520/Conjury/" + find "$WINEPREFIX/drive_c/Program Files/Conjury" -type f -path '*/x86_64/nvdaControllerClient.dll' -exec cp -v "$cache/nvda2speechd64.dll" "{}" \; + find "$WINEPREFIX/drive_c/Program Files/Conjury" -type f -path '*/x86/nvdaControllerClient.dll' -exec cp -v "$cache/nvda2speechd32.dll" "{}" \; + add_launcher 'c:\Program Files\Conjury\release\Conjury.exe' + ;; "Constant Battle") export winVer="win7" download "https://renovagames.com/bc/BC-Setup.exe" @@ -1917,7 +1942,7 @@ download "https://erion.cf/files/ag_103.zip" "Christmas Chaos") export WINEARCH=win64 export winVer="win7" - download "https://repo.accessiware.com/games/christmaschaos/ChristmasChaos.zip" "https://stormgames.wolfe.casa/downloads/Tolk.dll" + download "${ipfsGateway}/ipfs/QmYx11vsMDBgjPd1coZPGHxMXf2qtf4icqmB3Q9iUazyQv?filename=ChristmasChaos.zip" "https://stormgames.wolfe.casa/downloads/Tolk.dll" install_wine_bottle unzip -d "$WINEPREFIX/drive_c/Program Files" "${cache}/ChristmasChaos.zip" find "${WINEPREFIX}" -type f -name 'Tolk.dll' -exec cp -v "${cache}/Tolk.dll" "{}" \; @@ -1961,7 +1986,7 @@ download "https://erion.cf/files/ag_103.zip" ;; "Crazy Party") export winVer="win7" - download "http://pragmapragma.free.fr/crazy-party/Crazy-Party-beta78.zip" + 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" @@ -2053,6 +2078,11 @@ download "https://erion.cf/files/ag_103.zip" unzip -d "$WINEPREFIX/drive_c/Program Files" "${cache}/dragonpong.zip" add_launcher "c:\Program Files\dragonpong\DragonPong.exe" ;; + "Dreamland") + download https://scwl-1251129685.cos.ap-shanghai.myqcloud.com/dreamland/Win/DreamLandSetup.exe + install_wine_bottle speechsdk ole32 + $wine "${cache}/DreamLandSetup.exe" /silent + ;; "Duck Hunt") export bottle="l-works" download "http://files.l-works.net/dhsetup.exe" @@ -2161,6 +2191,22 @@ download "https://erion.cf/files/ag_103.zip" add_launcher "c:\Eurofly\launcher.exe" echo "Note: On first and sometimes later launch, Eurofly may take a very long time to download required files, please be patient..." ;; + "Executioner's Rage") + download "https://dl.tweesecake.app/rage/rage1.0.2.zip" "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd64.dll" + export WINEARCH=win64 + export winVer="win10" + install_wine_bottle + unzip -d "$WINEPREFIX/drive_c/Program Files/" "${cache}/rage1.0.2.zip" + find "${WINEPREFIX}/drive_c/Program Files" -type f -name 'nvdaControllerClient64.dll' -exec cp -v "${cache}/nvda2speechd64.dll" "{}" \; + add_launcher "c:\Program Files\rage\rage.exe" + url="https://techcake.games/games/executioners-rage/" + echo "Before you can login, you need to create an account at:" + echo "$url" + if echo "$url" | xclip -selection clipboard 2> /dev/null ; then + message+="\n\nThe URL has been copied to the clipboard." + fi + alert + ;; "Extant") download "https://agarchive.net/games/other/extant.zip" install_wine_bottle speechsdk @@ -2187,6 +2233,16 @@ download "https://erion.cf/files/ag_103.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" ;; + "Galactic Strike") + get_installer "Galactic Strike 1.2.zip" "https://fusion-forged-games.itch.io/galactic-strike" + export winVer="win10" + install_wine_bottle speechsdk + unzip -d "$WINEPREFIX/drive_c/Program Files/Galactic Strike" "${cache}/Galactic Strike 1.2.zip" + add_launcher "c:\Program Files\Galactic Strike\Galactic Strike.exe" + echo "Use controls wasd to movi and navigate the menu." + echo "Use m to fire and select items from the menu." + alert + ;; "GMA Tank Commander") download "http://www.gmagames.com/gtc120.exe" install_wine_bottle vb6run dx8vb speechsdk @@ -2214,6 +2270,8 @@ download "https://erion.cf/files/ag_103.zip" install_wine_bottle vb6run mfc42 unzip -d "$WINEPREFIX/drive_c/Program Files" "$cache/grizzly-gulch.zip" add_launcher "c:\Program Files\grizzly-gulch\Grizzly Gulch.exe" + echo "If the combat sequences happen too slow for your tastes, while in the town square, you can use f12 to turn up the combat speed and f11 to lower it." + alert ;; "Hammer of Glory") export bottle="oriol-gomez" @@ -2250,7 +2308,7 @@ download "https://erion.cf/files/ag_103.zip" download "http://www.agarchive.net/games/bsc/HunterSetup.exe" "https://www.agarchive.net/games/bsc/BSC%20unlock%20code%20generator.7z" install_wine_bottle vb6run dx8vb # FIXME: Hacky, but it works. Install dotnet35 by itself so it actually doesn't hang. - winetricks -q dotnet35 + winetricks -q dotnet35sp1 wineserver -k # Damn you, dotnet. wine "${cache}/HunterSetup.exe" /silent & xdotool sleep 10 key --clearmodifiers alt+y 2> /dev/null @@ -2288,6 +2346,17 @@ download "https://erion.cf/files/ag_103.zip" fi add_launcher "c:\Program Files\Hunter\HunterRun.exe" ;; + "Inquisitor's Heartbeat") + get_installer "Inquisitor_windows_ENG.zip" "https://www.audiogame.store/en/products/inquisitors-heartbeat--windows/ios-only" + export WINEARCH=win64 + export winVer="win8" + install_wine_bottle + unzip -d "$WINEPREFIX/drive_c/Program Files" "${cache}/Inquisitor_windows_ENG.zip" + # Weird work around to get keyboard working. + winetricks -q usetakefocus=y + winetricks -q usetakefocus=n + add_launcher "c:\Program Files\Inquisitor_windows_ENG\Inquisitor's Heartbeat.exe" + ;; "Insect Therapy") export bottle="oriol-gomez" export winVer="win7" @@ -2318,7 +2387,7 @@ EOF add_launcher "c:\Program Files\Lworks\Judgment Day\judgmentday.exe" ;; "Kitchensinc Games") - download "https://stormgames.wolfe.casa/downloads/kitchen.tar.xz" + download "${ipfsGateway}/ipfs/QmdkLPig6Kp3AZTwKAhjrhhsEuvhFCFhm6SHLUQVeNNYCb?filename=kitchen.tar.xz" install_wine_bottle vb6run speechsdk dx8vb echo "Extracting files..." tar xf "${cache}/kitchen.tar.xz" -C "$WINEPREFIX/drive_c/Program Files/" @@ -2401,6 +2470,7 @@ EOF wine 'c:\Program Files\lunimals\checkup.exe' /verysilent add_launcher "c:\Program Files\lunimals\Lunimals.exe" echo "Note: Lunimals installed. Once you start the game, you must press tab until you hear sapi on to get speech." >&2 + alert ;; "Manamon") export winVer="win7" @@ -2469,7 +2539,7 @@ EOF export winVer="win7" get_installer "Mist World_Setup.exe" "https://drive.google.com/file/d/12YeUqorkkMT46ZSR5pcfWxSY8DHOLxZ-/view?usp=share_link" download "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd32.dll" - install_wine_bottle + install_wine_bottle ole32 7z x -o"$WINEPREFIX/drive_c/Program Files/Mist World" "$cache/Mist World_Setup.exe" sed -i 's/1024m/768m/g' "$WINEPREFIX/drive_c/Program Files/Mist World/mw.exe.vmoptions" cp "$WINEPREFIX/drive_c/Program Files/Mist World/"{mw.exe.vmoptions,update.exe.vmoptions} @@ -2530,10 +2600,12 @@ EOF ;; "Oh Shit") export winVer="win7" - download "http://samtupy.com/stevend/oh_shit.zip" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient32.dll" + export norh="true" # Requires sapi even though uses nvda + 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}/oh_shit.zip" - find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvdaControllerClient32.dll" "{}" \; + 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 'nvdaControllerClient.dll' -exec cp -v "${cache}/nvda2speechd32.dll" "{}" \; add_launcher "c:\Program Files\oh_shit\OhShit.exe" ;; "Operation BlackSquare") @@ -2581,6 +2653,16 @@ EOF wine 'c:\Program Files\pawprints\checkup.exe' /verysilent add_launcher "c:\Program Files\pawprints\PawPrints.exe" ;; + "Penta Path") + export bottle="aprone" + export winVer="win7" + export winetricksSettings="vd=1024x768" + download "http://www.kaldobsky.com/audiogames/pentapath.zip" + install_wine_bottle vb6run dx8vb quartz speechsdk corefonts + unzip -d "$WINEPREFIX/drive_c/Program Files/pentapath" "${cache}/pentapath.zip" + wine 'c:\Program Files\pentapath\checkup.exe' /verysilent + add_launcher "c:\Program Files\pentapath\PentaPath.exe" + ;; "Perilous Hearts") download "https://www.agarchive.net/games/blastbay/perilous%20hearts%20concept%20demo.exe" install_wine_bottle speechsdk @@ -2597,7 +2679,7 @@ EOF "Pipe 2 Blast Chamber") install_wine_bottle vb6run dx8vb # FIXME: Hacky, but it works. Install dotnet35 by itself so it actually doesn't hang. - winetricks -q dotnet35 + winetricks -q dotnet35sp1 wineserver -k # Damn you, dotnet. download "http://www.agarchive.net/games/bsc/BlastChamberSetup.exe" "https://www.agarchive.net/games/bsc/BSC%20unlock%20code%20generator.7z" wine "${cache}/BlastChamberSetup.exe" /silent & @@ -2667,6 +2749,15 @@ EOF wine "${cache}/q9_english_installer.exe" /silent add_launcher "c:\Program Files\Q9 Action Game\q9.exe" ;; + "Rettou") + export bottle="aprone" + export winVer="win7" + export winetricksSettings="vd=1024x768" + download "http://www.kaldobsky.com/audiogames/rettou.zip" + install_wine_bottle vb6run dx8vb quartz speechsdk corefonts + unzip -d "$WINEPREFIX/drive_c/Program Files/rettou" "${cache}/rettou.zip" + add_launcher "c:\Program Files\rettou\Rettou.exe" + ;; "Revelation") export bottle="aprone" export winVer="win7" @@ -2843,6 +2934,16 @@ EOF find "${WINEPREFIX}" -type f -name 'nvdaControllerClient64.dll' -exec cp -v "${cache}/nvda2speechd64.dll" "{}" \; add_launcher "c:\Program Files\shooter\shooter.exe" ;; + "Skateboarder Pro") + download "https://tunmi13.com/projects/sb_pro_rw.zip" "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd64.dll" + export WINEARCH=win64 + export winVer="win8" + export bottle=tunmi13-64bit + install_wine_bottle sapi + unzip -d "$WINEPREFIX/drive_c/Program Files/" "${cache}/sb_pro_rw.zip" + find "${WINEPREFIX}/drive_c/Program Files/sb_pro_rw" -type f -name 'nvdaControllerClient64.dll' -exec cp -v "${cache}/nvda2speechd64.dll" "{}" \; + add_launcher "c:\Program Files\sb_pro_rw\sb_pro.exe" + ;; "Sonic the Hedgehog") export winVer="win7" download "https://www.agarchive.net/games/jeqoconGames/sonic%20the%20hedgehog.7z" @@ -2944,15 +3045,13 @@ EOF alert ;; "Swamp") - export version="7.7" export bottle="aprone" export winVer="win7" export winetricksSettings="vd=1024x768" dialog --backtitle "Audiogame manager" --yesno "If you do not have a full 32 bit gstreamer installation, the Swamp music can cause stuttering and crashes. Would you like to remove the music directory after installation?" -1 -1 --stdout deleteMusic=$? download "https://www.kaldobsky.com/audiogames/Swamp.zip" - install_wine "${version}" "32" - install_wine_bottle dx8vb quartz corefonts vb6run speechsdk + install_wine_bottle dx8vb quartz corefonts vb6run speechsdk ole32 unzip -d "$WINEPREFIX/drive_c/Program Files/swamp" "${cache}/Swamp.zip" # make sure the latest version is installed. if curl -L --output "${cache}/SwampPatch.zip" "https://www.kaldobsky.com/audiogames/SwampPatch.zip" ; then @@ -2964,6 +3063,7 @@ EOF if [[ $deleteMusic -eq 0 ]]; then rm -frv "$WINEPREFIX/drive_c/Program Files/swamp/sounds/Music/" fi + rm -fv "$WINEPREFIX/drive_c/Program Files/swamp/maps/sub2" add_launcher "c:\Program Files\swamp\Swamp.exe" ;; "Tactical Battle") @@ -3029,6 +3129,21 @@ EOF winetricks -q usetakefocus=n add_launcher "c:\Program Files\the-vale\TheVale.exe" ;; + "They'll Come from the Moon") + get_installer "theyll-come-from-the-moon-windows.zip" "https://soundrascal.itch.io/theyll-come-from-the-moon" + download "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd64.dll" + export WINEARCH=win64 + export winVer="win8" + install_wine_bottle + unzip -d "$WINEPREFIX/drive_c/Program Files/tcftm" "${cache}/theyll-come-from-the-moon-windows.zip" + # Weird work around to get keyboard working. + winetricks -q usetakefocus=y + winetricks -q usetakefocus=n + find "${WINEPREFIX}" -type f -name 'nvdaControllerClient.dll' -exec cp -v "${cache}/nvda2speechd64.dll" "{}" \; + add_launcher "c:\Program Files\tcftm\They'll Come from the Moon!.exe" + echo "When the game launches, press the enter key to load the game which will begin to speak." + alert + ;; "Thief") export bottle="oriol-gomez" export winVer="win7" @@ -3076,6 +3191,15 @@ export norh=false # Must install a voice, and rhvoice works easily with 64 bit. find "${WINEPREFIX}" -type f -name 'nvdaControllerClient64.dll' -exec cp -v "${cache}/nvda2speechd64.dll" "{}" \; add_launcher "c:\Program Files\Three-D-Velocity-Binaries-master\tdv.exe" ;; + "Tarot Assistant") + export bottle="aprone" + export winVer="win7" + download "https://www.kaldobsky.com/audiogames/tarot.zip" + install_wine_bottle vb6run dx8vb speechsdk + unzip -d "$WINEPREFIX/drive_c/Program Files/Tarot Assistant" "${cache}/tarot.zip" + wine "c:\Program Files\Tarot Assistant\Checkup.exe" /verysilent + add_launcher "c:\Program Files\Tarot Assistant\TarotAssistant.exe" + ;; "Triple Triad") export bottle="aprone" export winVer="win7" @@ -3089,7 +3213,7 @@ export norh=false # Must install a voice, and rhvoice works easily with 64 bit. download "https://www.agarchive.net/games/bsc/Troopanum2Setup.exe" "https://www.agarchive.net/games/bsc/BSC%20unlock%20code%20generator.7z" install_wine_bottle vb6run dx8vb # FIXME: Hacky, but it works. Install dotnet35 by itself so it actually doesn't hang. - winetricks -q dotnet35 + winetricks -q dotnet35sp1 wineserver -k # Damn you, dotnet. wine "${cache}/Troopanum2Setup.exe" /silent & xdotool sleep 10 key --clearmodifiers alt+y 2> /dev/null @@ -3159,7 +3283,7 @@ export norh=false # Must install a voice, and rhvoice works easily with 64 bit. "Villains From Beyond") export bottle="oriol-gomez" export winVer="win7" - download "http://oriolgomez.com/games/villains_en.zip" + download "${ipfsGateway}/ipfs/QmWx271xuk3Mv9XTBoVu5BDJvXFZdasawC2nhtV21WAaUU?filename=villains_en.zip" install_wine_bottle speechsdk unzip -d "$WINEPREFIX/drive_c/Program Files/villains from beyond" "${cache}/villains_en.zip" find "${WINEPREFIX}" -type f -name "nvdaControllerClient32.dll" -exec rm -fv "{}" \; @@ -3183,6 +3307,7 @@ export norh=false # Must install a voice, and rhvoice works easily with 64 bit. ;; "Warsim") get_installer "Warsim Full Game.zip" "https://huw2k8.itch.io/warsim" +export WINEARCH=win64 export winVer="win7" install_wine_bottle unzip -d "$WINEPREFIX/drive_c/Program Files/Warsim/" "${cache}/Warsim Full Game.zip" @@ -3191,9 +3316,9 @@ export norh=false # Must install a voice, and rhvoice works easily with 64 bit. "Wave of the Undead") export WINEARCH=win64 export winVer="win7" - download "https://www.dropbox.com/s/x5ap56yevvvxzdh/Wave%20Of%20The%20Undead%20Setup.exe?dl=1" "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd64.dll" + download "https://dl.dropbox.com/scl/fi/ukvou0y4gwg21nhhdpj40/Wave-of-the-Undead-Setup.exe?rlkey=4xnuwicpmbkx6w2jo2i56mijg" "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd64.dll" install_wine_bottle - wine "${cache}/Wave Of The Undead Setup.exe" & + wine "${cache}/Wave-of-the-Undead-Setup.exe" & xdotool sleep 20 key Alt+n sleep 2 key Alt+n sleep 2 key Alt+n xdotool sleep 2 key Alt+i xdotool sleep 20 key Alt+n @@ -3201,7 +3326,7 @@ export norh=false # Must install a voice, and rhvoice works easily with 64 bit. xdotool sleep 2 key Alt+f wineserver -w find "${WINEPREFIX}" -type f -name 'nvdaControllerClient64.dll' -exec cp -v "${cache}/nvda2speechd64.dll" "{}" \; - add_launcher "c:\Program Files (x86)\Wave Of The Undead\Wave Of The Undead.exe" + add_launcher "c:\Program Files (x86)\Wave Of The Undead\wave_of_the_undead.exe" ;; "Wolf Games Launcher") download "https://sightlesswolf.com/wg-release.zip" "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd64.dll" @@ -3227,10 +3352,10 @@ export norh=false # Must install a voice, and rhvoice works easily with 64 bit. open_url "https://2mb.games/product/2mb-patron/" ;; *) - [[ -n "${game}" ]] && echo "Game \"${game}\" not found." - exit 1 + [[ "$agmNoLaunch" != "true" ]] && [[ -n "${game}" ]] && echo "Game \"${game}\" not found." + [[ "$agmNoLaunch" != "true" ]] && exit 1 ;; esac -winetricks sandbox +[[ "$agmNoLaunch" != "true" ]] && winetricks sandbox -exit 0 +[[ "$agmNoLaunch" != "true" ]] && exit 0 diff --git a/game-scripts/conjury-update.sh b/game-scripts/conjury-update.sh new file mode 100755 index 0000000..41a4e49 --- /dev/null +++ b/game-scripts/conjury-update.sh @@ -0,0 +1,59 @@ +#!/bin/bash +# +# âe contents of this file are subject to the Common Public Attribution +# License Version 1.0 (the âcenseâ you may not use this file except in +# compliance with the License. You may obtain a copy of the License at +# https://opensource.org/licenses/CPAL-1.0. The License is based on the Mozilla Public License Version +# 1.1 but Sections 14 and 15 have been added to cover use of software over a +# computer network and provide for limited attribution for the Original +# Developer. In addition, Exhibit A has been modified to be consistent with +# Exhibit B. +# +# Software distributed under the License is distributed on an â ISâasis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for THE SPecific language governing rights and limitations under the +# License. +# +# The Original Code is audiogame manager. +# +# The Original Developer is not the Initial Developer and is . If +# left blank, the Original Developer is the Initial Developer. +# +# The Initial Developer of the Original Code is Billy "Storm Dragon" Wolfe. All portions of +# the code written by Billy Wolfe are Copyright (c) 2020. All Rights +# Reserved. +# +# Contributor Michael Taboada. +# +# Attribution Copyright Notice: Audiogame manager copyright 2020 Storm Dragon. All rights reserved. +# +# Attribution Phrase (not exceeding 10 words): A Stormux project +# +# Attribution URL: https://stormgames.wolfe.casa +# +# Graphic Image as provided in the Covered Code, if any. +# +# Display of Attribution Information is required in Larger +# 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. + +# Provisional new functionality to be able to source functions from agm: +export agmNoLaunch="true" +sourcePath="$(readlink -f "$0")" +sourcePath="${sourcePath%/*/*.sh}/audiogame-manager.sh" +source "${sourcePath}" + +# All functions should be available at this point. +export game="Conjury" +export WINEPREFIX="$HOME/.local/wine/conjury" + +# Make sure both nvda2speechd 64 and 32 bit are available. +# This is needed to work around the change from 64 bit to 32 bit game. +download "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd64.dll" "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd32.dll" + +# Now it should be as simple as running get_steam to redownload the game. +get_steam 2684520 "https://store.steampowered.com/app/2684520/Conjury/" +find "$WINEPREFIX/drive_c/Program Files/Conjury" -type f -path '*/x86_64/nvdaControllerClient.dll' -exec cp -v "$cache/nvda2speechd64.dll" "{}" \; +find "$WINEPREFIX/drive_c/Program Files/Conjury" -type f -path '*/x86/nvdaControllerClient.dll' -exec cp -v "$cache/nvda2speechd32.dll" "{}" \; + +exit 0 diff --git a/game-scripts/rettou-update.sh b/game-scripts/rettou-update.sh new file mode 100755 index 0000000..d9b1920 --- /dev/null +++ b/game-scripts/rettou-update.sh @@ -0,0 +1,53 @@ +#!/bin/bash +# +# âe contents of this file are subject to the Common Public Attribution +# License Version 1.0 (the âcenseâ you may not use this file except in +# compliance with the License. You may obtain a copy of the License at +# https://opensource.org/licenses/CPAL-1.0. The License is based on the Mozilla Public License Version +# 1.1 but Sections 14 and 15 have been added to cover use of software over a +# computer network and provide for limited attribution for the Original +# Developer. In addition, Exhibit A has been modified to be consistent with +# Exhibit B. +# +# Software distributed under the License is distributed on an â ISâasis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for THE SPecific language governing rights and limitations under the +# License. +# +# The Original Code is audiogame manager. +# +# The Original Developer is not the Initial Developer and is . If +# left blank, the Original Developer is the Initial Developer. +# +# The Initial Developer of the Original Code is Billy "Storm Dragon" Wolfe. All portions of +# the code written by Billy Wolfe are Copyright (c) 2020. All Rights +# Reserved. +# +# Contributor Michael Taboada. +# +# Attribution Copyright Notice: Audiogame manager copyright 2020 Storm Dragon. All rights reserved. +# +# Attribution Phrase (not exceeding 10 words): A Stormux project +# +# Attribution URL: https://stormgames.wolfe.casa +# +# Graphic Image as provided in the Covered Code, if any. +# +# Display of Attribution Information is required in Larger +# 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. + +cache="${XDG_CACHE_HOME:-$HOME/.cache}/audiogame-manager" +updateURL="https://www.kaldobsky.com/audiogames" +updateFiles=("rettou.zip") + + +# Download and extract updates +for i in "${updateFiles[@]}" ; do + rm -fv "${cache}/${i}" + curl -L4 -C - --retry 10 --output "${cache}/$i" "${updateURL}/$i" + unzip -o -d ~/".local/wine/aprone/drive_c/Program Files/rettou" "${cache}/${i}" +done | dialog --progressbox "Updating Rettou, please wait..." -1 -1 + + +exit 0