Compare commits
49
Commits
f22fc69438
...
testing
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8e4f764847 | ||
|
|
17aed35d5b | ||
|
|
c1c5363c63 | ||
|
|
83dfa99aa3 | ||
|
|
edf8e8e104 | ||
|
|
38a9b2cd39 | ||
|
|
4112aa3bda | ||
|
|
4f11130369 | ||
|
|
850cd37364 | ||
|
|
d4db802645 | ||
|
|
993f838404 | ||
|
|
7ff3f0b47d | ||
|
|
eee7b7e7c8 | ||
|
|
4b312099b4 | ||
|
|
7ec9ef3b87 | ||
|
|
b87245fa69 | ||
|
|
05ea1502ce | ||
|
|
c033a21211 | ||
|
|
8943688a43 | ||
|
|
92745d8af8 | ||
|
|
1f977bb1f4 | ||
|
|
53d8c10645 | ||
|
|
b58681964c | ||
|
|
2abf445637 | ||
|
|
c0e6c37f1a | ||
|
|
856415c22f | ||
|
|
7ddd7cbac4 | ||
|
|
951fa7c1ba | ||
|
|
f9394f90c9 | ||
|
|
1fd3fcd21f | ||
|
|
cf1377d9e8 | ||
|
|
528ee7cd56 | ||
|
|
9ebb52f48f | ||
|
|
9d4e9b9a7f | ||
|
|
0c8a749240 | ||
|
|
876d787e0a | ||
|
|
a4f0dcae36 | ||
|
|
1c1046c43b | ||
|
|
4c3b5ee468 | ||
|
|
20ecf59c91 | ||
|
|
02a44ddfca | ||
|
|
30ca433ae8 | ||
|
|
6911ab9c1a | ||
|
|
adc56f0229 | ||
|
|
8ac756c758 | ||
|
|
79bdb65e25 | ||
|
|
733b901927 | ||
|
|
a6c54bb158 | ||
|
|
c1f2e47e28 |
@@ -1,3 +1,4 @@
|
||||
*.x.c
|
||||
*.x
|
||||
music/
|
||||
/game.log
|
||||
|
||||
+126
-13
@@ -40,15 +40,41 @@ set_wine_env() {
|
||||
|
||||
# Note: install_wine function removed - we now use system wine with simplified bottle management
|
||||
|
||||
enable_winetricks_usage_reporting() {
|
||||
local winetricksCache="${XDG_CACHE_HOME:-$HOME/.cache}/winetricks"
|
||||
|
||||
mkdir -p "$winetricksCache"
|
||||
if [[ ! -e "${winetricksCache}/track_usage" ]]; then
|
||||
printf '1\n' > "${winetricksCache}/track_usage"
|
||||
fi
|
||||
}
|
||||
|
||||
prepare_speechsdk_cache() {
|
||||
local winetricksCache="${XDG_CACHE_HOME:-$HOME/.cache}/winetricks"
|
||||
local speechsdkPayload="${winetricksCache}/speechsdk/SpeechSDK51.exe"
|
||||
|
||||
enable_winetricks_usage_reporting
|
||||
if [[ -f "$speechsdkPayload" ]]; then
|
||||
return
|
||||
fi
|
||||
|
||||
echo "Downloading Speech SDK for the Winetricks cache..."
|
||||
# ipfs and cache are populated by the main script before bottle setup.
|
||||
# shellcheck disable=SC2154
|
||||
download "${ipfs[speechsdk]}"
|
||||
if ! unzip -oq "${cache}/speechsdk.zip" -d "$winetricksCache"; then
|
||||
echo "Could not extract Speech SDK into the Winetricks cache."
|
||||
return 1
|
||||
fi
|
||||
if [[ ! -f "$speechsdkPayload" ]]; then
|
||||
echo "The Speech SDK archive did not contain speechsdk/SpeechSDK51.exe."
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
winetricks() {
|
||||
# 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
|
||||
mkdir -p "${XDG_CACHE_HOME:-$HOME/.cache}/winetricks/"
|
||||
echo "1" > "${XDG_CACHE_HOME:-$HOME/.cache}/winetricks/track_usage"
|
||||
fi
|
||||
# Temporary work around for winetricks git bugs. Requires winetricks be installed from package manager.
|
||||
/usr/bin/winetricks "$@"
|
||||
return
|
||||
enable_winetricks_usage_reporting
|
||||
# Download or update agm's copy of winetricks
|
||||
if [[ ! -e "${winetricksPath}/winetricks" ]]; then
|
||||
checkWinetricksUpdate="true"
|
||||
@@ -58,17 +84,104 @@ winetricks() {
|
||||
else
|
||||
if [[ "$checkWinetricksUpdate" != "true" ]]; then
|
||||
checkWinetricksUpdate="true"
|
||||
${winetricksPath}/winetricks --self-update
|
||||
"${winetricksPath}/winetricks" --self-update
|
||||
fi
|
||||
fi
|
||||
# Run the requested winetricks parameters
|
||||
if command -v FEXLoader &> /dev/null ; then
|
||||
WINE="" FEXLoader -- ${winetricksPath}/winetricks "$@"
|
||||
WINE="" FEXLoader -- "${winetricksPath}/winetricks" "$@"
|
||||
else
|
||||
${winetricksPath}/winetricks "$@"
|
||||
"${winetricksPath}/winetricks" "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
install_winespeak() {
|
||||
local installerName="winespeak.exe"
|
||||
local installerPath="${cache}/${installerName}"
|
||||
local installerSha256="8007004cd024b391e8f1962455ffe2a8b241cfdf52641a2bc1aa2274bc80f236"
|
||||
local wrapperPath="${WINEPREFIX}/drive_c/Program Files (x86)/espeak-ng-sapi/EspeakSAPI.dll"
|
||||
local wrapperSha256="2282da4a23f18b40e6601a4b9a880f484196bf2f5138881e76428be10d8dbe76"
|
||||
local cscriptPath="${WINEPREFIX}/drive_c/windows/syswow64/cscript.exe"
|
||||
local verifyScriptPath="${WINEPREFIX}/drive_c/windows/temp/verify_winespeak.vbs"
|
||||
local actualSha256
|
||||
local verificationAttempt
|
||||
local registryOutput
|
||||
local voiceOutput
|
||||
local voiceStatus
|
||||
local defaultToken='HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\Espeak-ng US English'
|
||||
|
||||
if [[ -z "${wineSpeakInstaller:-}" ]]; then
|
||||
echo "WineSpeak download URL is not configured."
|
||||
return 1
|
||||
fi
|
||||
|
||||
for ((verificationAttempt = 1; verificationAttempt <= 3; verificationAttempt++)); do
|
||||
download "$wineSpeakInstaller"
|
||||
actualSha256="$(sha256sum "$installerPath" | awk '{print $1}')"
|
||||
if [[ "$actualSha256" == "$installerSha256" ]]; then
|
||||
break
|
||||
fi
|
||||
echo "WineSpeak installer failed its SHA-256 check (attempt ${verificationAttempt} of 3)."
|
||||
rm -f "$installerPath"
|
||||
if ((verificationAttempt == 3)); then
|
||||
return 1
|
||||
fi
|
||||
echo "Downloading WineSpeak again."
|
||||
done
|
||||
|
||||
if ! wine "$installerPath" /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-; then
|
||||
echo "WineSpeak installer failed."
|
||||
return 1
|
||||
fi
|
||||
|
||||
if [[ ! -f "$wrapperPath" ]]; then
|
||||
echo "WineSpeak did not install its 32-bit SAPI wrapper."
|
||||
return 1
|
||||
fi
|
||||
actualSha256="$(sha256sum "$wrapperPath" | awk '{print $1}')"
|
||||
if [[ "$actualSha256" != "$wrapperSha256" ]]; then
|
||||
echo "WineSpeak installed an unexpected 32-bit SAPI wrapper."
|
||||
return 1
|
||||
fi
|
||||
|
||||
registryOutput="$(wine reg query 'HKCU\Software\Microsoft\Speech\Voices' /v DefaultTokenId 2>/dev/null)"
|
||||
if ! grep -Fq "$defaultToken" <<< "$registryOutput"; then
|
||||
echo "WineSpeak did not become the default SAPI voice."
|
||||
return 1
|
||||
fi
|
||||
|
||||
if [[ ! -f "$cscriptPath" ]]; then
|
||||
echo "Wine's 32-bit cscript.exe was not found."
|
||||
return 1
|
||||
fi
|
||||
mkdir -p "${verifyScriptPath%/*}"
|
||||
cat > "$verifyScriptPath" <<'EOF'
|
||||
dim speechobject
|
||||
dim voiceDescription
|
||||
set speechobject=createobject("sapi.spvoice")
|
||||
voiceDescription=speechobject.voice.getdescription
|
||||
if instr(1, voiceDescription, "Espeak-ng US English", 1)=0 then
|
||||
wscript.echo voiceDescription
|
||||
wscript.quit 2
|
||||
end if
|
||||
EOF
|
||||
voiceStatus=0
|
||||
voiceOutput="$(wine "$cscriptPath" //nologo 'c:\windows\temp\verify_winespeak.vbs' 2>&1)" || voiceStatus=$?
|
||||
if [[ "$voiceStatus" -ne 0 ]]; then
|
||||
if [[ "$voiceStatus" -eq 2 ]]; then
|
||||
echo "WineSpeak's 32-bit SAPI verification returned an unexpected voice."
|
||||
else
|
||||
echo "WineSpeak's 32-bit SAPI voice could not be created."
|
||||
fi
|
||||
if [[ -n "$voiceOutput" ]]; then
|
||||
echo "$voiceOutput"
|
||||
fi
|
||||
return 1
|
||||
fi
|
||||
|
||||
echo "WineSpeak US English is the default SAPI voice."
|
||||
}
|
||||
|
||||
install_rhvoice() {
|
||||
if [[ -d "${WINEPREFIX}/drive_c/Program Files/Olga Yakovleva/" ]]; then
|
||||
return
|
||||
@@ -168,7 +281,7 @@ install_wine_bottle() {
|
||||
if [[ ${#regularDeps[@]} -gt 0 ]]; then
|
||||
echo "Installing additional dependencies: ${regularDeps[*]}"
|
||||
{
|
||||
env WINE="$WINE" WINESERVER="$WINESERVER" DISPLAY="${DISPLAY:-:0}" winetricks -q isolate_home "${regularDeps[@]}" ${winetricksSettings}
|
||||
WINE="$WINE" WINESERVER="$WINESERVER" DISPLAY="${DISPLAY:-:0}" winetricks -q isolate_home "${regularDeps[@]}" ${winetricksSettings}
|
||||
} | agm_progressbox "Wine Setup" "Installing additional dependencies..."
|
||||
fi
|
||||
|
||||
@@ -176,7 +289,7 @@ install_wine_bottle() {
|
||||
if [[ "$needsSpeechsdk" == "true" ]]; then
|
||||
echo "Installing speechsdk with WINETRICKS_FORCE=1"
|
||||
{
|
||||
env WINE="$WINE" WINESERVER="$WINESERVER" DISPLAY="${DISPLAY:-:0}" WINETRICKS_FORCE=1 winetricks -q speechsdk
|
||||
WINE="$WINE" WINESERVER="$WINESERVER" DISPLAY="${DISPLAY:-:0}" WINETRICKS_FORCE=1 winetricks -q speechsdk
|
||||
} | agm_progressbox "Wine Setup" "Installing Speech SDK..."
|
||||
fi
|
||||
fi
|
||||
@@ -229,7 +342,7 @@ add_launcher() {
|
||||
done
|
||||
if ! grep -F -q -x "${launchSettings}" "${configFile}" 2> /dev/null ; then
|
||||
echo "${launchSettings}" >> "${configFile}"
|
||||
sort -o "${configFile}" "${configFile}"
|
||||
sort -t '|' -k3,3f -o "${configFile}" "${configFile}"
|
||||
# Remove .lnk files because they don't work.
|
||||
find ~/Desktop -type f -iname '*.lnk' -exec bash -c '
|
||||
for f ; do
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
declare -a errorList
|
||||
declare -a packageList
|
||||
if [[ $# -eq 0 ]]; then
|
||||
@@ -10,6 +12,12 @@ else
|
||||
errorList+=("Critical: Wine is not installed. You will not be able to play any games.")
|
||||
fi
|
||||
packageList+=("wine")
|
||||
if command -v umu-run &> /dev/null ; then
|
||||
[[ $# -eq 0 ]] && echo "umu-launcher is installed."
|
||||
else
|
||||
errorList+=("Warning: umu-launcher is not installed. Games that require Proton/UMU will not install or launch.")
|
||||
fi
|
||||
packageList+=("umu-launcher")
|
||||
if command -v curl &> /dev/null ; then
|
||||
[[ $# -eq 0 ]] && echo "Curl is installed."
|
||||
else
|
||||
|
||||
@@ -83,6 +83,82 @@ agm_menu() {
|
||||
fi
|
||||
}
|
||||
|
||||
# Specialized game launcher menu with "Read Documentation" button
|
||||
# Usage: agm_game_menu "title" "backtitle" "text" option1 "description1" option2 "description2" ...
|
||||
# Returns: exit code 0=Launch, 1=Cancel, 2/3=Documentation (yad/dialog)
|
||||
agm_game_menu() {
|
||||
local title="$1"
|
||||
local backTitle="$2"
|
||||
local text="$3"
|
||||
shift 3
|
||||
|
||||
if [[ "$dialogType" == "yad" ]]; then
|
||||
# Use custom buttons to match dialog behavior (launch/doc/cancel)
|
||||
local yadList=""
|
||||
declare -A valueMap
|
||||
while [[ $# -gt 0 ]]; do
|
||||
local option="$1"
|
||||
local description="$2"
|
||||
valueMap["$description"]="$option"
|
||||
if [[ -n "$yadList" ]]; then
|
||||
yadList="$yadList\n"
|
||||
fi
|
||||
yadList="${yadList}${description}"
|
||||
shift 2
|
||||
done
|
||||
|
||||
local selectedDescription
|
||||
selectedDescription=$(echo -e "$yadList" | yad --list \
|
||||
--title="$title" \
|
||||
--text="$text" \
|
||||
--column="Option" \
|
||||
--no-headers \
|
||||
--selectable-labels \
|
||||
--search-column=1 \
|
||||
--height=400 \
|
||||
--width=600 \
|
||||
--button="Launch:0" \
|
||||
--button="Read Documentation:2" \
|
||||
--button="Cancel:1")
|
||||
local menuCode=$?
|
||||
|
||||
# Strip trailing pipes and return the mapped value
|
||||
if [[ -n "$selectedDescription" ]]; then
|
||||
selectedDescription="${selectedDescription%|}"
|
||||
echo "${valueMap["$selectedDescription"]}"
|
||||
fi
|
||||
return $menuCode
|
||||
else
|
||||
# Build dialog menu format with mapping (same approach as yad)
|
||||
local dialogArgs=()
|
||||
declare -A valueMap
|
||||
while [[ $# -gt 0 ]]; do
|
||||
local option="$1"
|
||||
local description="$2"
|
||||
valueMap["$description"]="$option"
|
||||
dialogArgs+=("$description" "$description")
|
||||
shift 2
|
||||
done
|
||||
|
||||
local selectedDescription
|
||||
selectedDescription=$(dialog --backtitle "$backTitle" \
|
||||
--title "$title" \
|
||||
--extra-button \
|
||||
--extra-label "Read Documentation" \
|
||||
--no-tags \
|
||||
--menu "$text" 0 0 0 \
|
||||
"${dialogArgs[@]}" \
|
||||
--stdout)
|
||||
local menuCode=$?
|
||||
|
||||
# Return the mapped value
|
||||
if [[ -n "$selectedDescription" ]]; then
|
||||
echo "${valueMap["$selectedDescription"]}"
|
||||
fi
|
||||
return $menuCode
|
||||
fi
|
||||
}
|
||||
|
||||
# Wrapper function for checklist selection
|
||||
# Usage: agm_checklist "title" "backtitle" "text" option1 "description1" "status1" option2 "description2" "status2" ...
|
||||
agm_checklist() {
|
||||
@@ -181,25 +257,42 @@ agm_msgbox() {
|
||||
}
|
||||
|
||||
# Wrapper function for yes/no dialog
|
||||
# Usage: agm_yesno "title" "backtitle" "text"
|
||||
# Usage: agm_yesno "title" "backtitle" "text" ["yes_label"] ["no_label"]
|
||||
agm_yesno() {
|
||||
local title="$1"
|
||||
local backTitle="$2"
|
||||
local text="$3"
|
||||
local yesLabel="${4:-Yes}"
|
||||
local noLabel="${5:-No}"
|
||||
|
||||
if [[ "$dialogType" == "yad" ]]; then
|
||||
echo -e "$text" | yad --text-info \
|
||||
--title="$title" \
|
||||
--show-cursor \
|
||||
--button="Yes:0" \
|
||||
--button="No:1" \
|
||||
--button="$yesLabel:0" \
|
||||
--button="$noLabel:1" \
|
||||
--width=600 \
|
||||
--height=400
|
||||
else
|
||||
# dialog --yesno doesn't support custom labels, use menu instead
|
||||
if [[ "$yesLabel" != "Yes" ]] || [[ "$noLabel" != "No" ]]; then
|
||||
# Custom labels requested, use menu
|
||||
local choice
|
||||
choice=$(dialog --backtitle "$backTitle" \
|
||||
--title "$title" \
|
||||
--no-tags \
|
||||
--menu "$text" 0 0 0 \
|
||||
"1" "$yesLabel" \
|
||||
"2" "$noLabel" \
|
||||
--stdout)
|
||||
[[ "$choice" == "1" ]]
|
||||
else
|
||||
# Default Yes/No
|
||||
dialog --backtitle "$backTitle" \
|
||||
--title "$title" \
|
||||
--yesno "$text" 0 0
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# Wrapper function for info box (non-blocking message)
|
||||
|
||||
+27
-8
@@ -1,10 +1,31 @@
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC2034,SC2154 # sourced by audiogame-manager with shared globals and exported state
|
||||
|
||||
# Source IPFS game URLs
|
||||
source "${BASH_SOURCE[0]%/*}/ipfs.sh"
|
||||
|
||||
# Alerts, for when user needs to read something.
|
||||
alert() {
|
||||
local title="Alert"
|
||||
local backTitle=""
|
||||
local message="Press OK to continue."
|
||||
|
||||
if [[ $# -eq 1 ]]; then
|
||||
message="$1"
|
||||
elif [[ $# -eq 2 ]]; then
|
||||
title="$1"
|
||||
backTitle="$1"
|
||||
message="$2"
|
||||
elif [[ $# -ge 3 ]]; then
|
||||
title="$1"
|
||||
backTitle="$2"
|
||||
shift 2
|
||||
message="$*"
|
||||
fi
|
||||
|
||||
play -qnV0 synth 3 pluck D3 pluck A3 pluck D4 pluck F4 pluck A4 delay 0 .1 .2 .3 .4 remix - chorus 0.9 0.9 38 0.75 0.3 0.5 -t
|
||||
echo
|
||||
agm_msgbox "Alert" "" "Press OK to continue."
|
||||
agm_msgbox "${title}" "${backTitle}" "${message}"
|
||||
}
|
||||
|
||||
check_requirements() {
|
||||
@@ -51,7 +72,7 @@ clear_cache() {
|
||||
}
|
||||
|
||||
download() {
|
||||
local source=($@)
|
||||
local source=("$@")
|
||||
for i in "${source[@]}" ; do
|
||||
local dest="${i##*/}"
|
||||
dest="${dest//%20/ }"
|
||||
@@ -117,8 +138,7 @@ download() {
|
||||
esac
|
||||
if [[ $downloadError -ne 0 ]]; then
|
||||
rm -fv "${cache}/${dest}"
|
||||
agm_infobox "Audio Game Manager" "Audio Game Manager" "Error downloading \"${dest}\". Installation cannot continue."
|
||||
alert
|
||||
alert "Audio Game Manager" "Audio Game Manager" "Error downloading \"${dest}\". Installation cannot continue."
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
@@ -139,10 +159,10 @@ get_installer() {
|
||||
if echo "$2" | xclip -selection clipboard 2> /dev/null ; then
|
||||
message+="\n\nThe URL has been copied to the clipboard."
|
||||
fi
|
||||
agm_msgbox "Audiogame Manager" "Audiogame Manager" "$message"
|
||||
alert "Audiogame Manager" "Audiogame Manager" "$message"
|
||||
# Search the Desktop and Downloads directories for the installation file
|
||||
for i in ~/Downloads ~/Desktop ; do
|
||||
find $i -type f -name "$1" -exec cp -v {} "${cache}/" \;
|
||||
find "$i" -type f -name "$1" -exec cp -v {} "${cache}/" \;
|
||||
done
|
||||
# If the file is still not available abort.
|
||||
if [[ ! -f "${cache}/$1" ]]; then
|
||||
@@ -154,8 +174,7 @@ get_installer() {
|
||||
get_steam() {
|
||||
# Arguments: $1 id of item for download, $2 url for game
|
||||
trap "exit 0" SIGINT
|
||||
echo "manual intervention required."
|
||||
alert
|
||||
alert "Audiogame Manager" "Audiogame Manager" "Manual intervention required."
|
||||
agm_yesno "Audiogame Manager" "Audiogame Manager" "To install the game manually, place files in \"${WINEPREFIX}/drive_c/Program Files/${game}\". Continue with Steam installation?"
|
||||
case $? in
|
||||
0) echo "The next steps will install through steamcmd." ;;
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
run_with_optional_gamemode() {
|
||||
if command -v gamemoderun &> /dev/null; then
|
||||
gamemoderun "$@"
|
||||
else
|
||||
"$@"
|
||||
fi
|
||||
}
|
||||
+74
-8
@@ -1,3 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC2154 # Sourced by audiogame-manager with shared globals.
|
||||
|
||||
documentation() {
|
||||
if [[ "$2" == "Become a Patron" ]]; then
|
||||
return
|
||||
@@ -5,16 +8,44 @@ documentation() {
|
||||
if [[ "$2" == "Donate" ]]; then
|
||||
return
|
||||
fi
|
||||
if ! command -v w3m &> /dev/null ; then
|
||||
echo "This feature of audiogame-manager requires w3m. Please install it before continuing."
|
||||
exit 1
|
||||
|
||||
# Extract architecture from first parameter (format: "win64|path")
|
||||
local wineArch="${1%%|*}"
|
||||
if [[ "$wineArch" == "umu" ]]; then
|
||||
local launcherLine=""
|
||||
local docFlag=""
|
||||
local umuGameId=""
|
||||
local -a documentationGame=()
|
||||
launcherLine="$(grep -F -m1 "${1}|" "$configFile" 2> /dev/null || true)"
|
||||
IFS='|' read -ra documentationGame <<< "$launcherLine"
|
||||
for docFlag in "${documentationGame[@]:3}" ; do
|
||||
if [[ "$docFlag" =~ ^export\ [a-zA-Z_][a-zA-Z0-9_]*=\'?.*\'?$ ]]; then
|
||||
eval "$docFlag"
|
||||
fi
|
||||
get_bottle "$1"
|
||||
echo "Loading documentation, please wait..."
|
||||
done
|
||||
if [[ -z "$umuGameId" ]]; then
|
||||
echo "Unable to find UMU game id for documentation lookup."
|
||||
return
|
||||
fi
|
||||
get_umu_bottle "$umuGameId"
|
||||
else
|
||||
get_bottle "$wineArch"
|
||||
fi
|
||||
|
||||
echo "Loading documentation, please wait..."
|
||||
|
||||
# Try to find documentation based on common naming conventions.
|
||||
local gamePath="$(winepath -u "$2" 2> /dev/null)"
|
||||
local gamePath
|
||||
if [[ "$wineArch" == "umu" ]]; then
|
||||
gamePath="$(umu_windows_path_to_unix "$2")"
|
||||
else
|
||||
gamePath="$(winepath -u "$2" 2> /dev/null)"
|
||||
fi
|
||||
gamePath="${gamePath%/*}"
|
||||
local gameDoc="$(find "$gamePath" -type f -iname 'user_manual.htm*' -or -iname 'user manual.htm*' -or -iname '*user guide.htm*' | head -1)"
|
||||
local gameDoc=""
|
||||
local isUrl="false"
|
||||
|
||||
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
|
||||
@@ -46,12 +77,47 @@ echo "Loading documentation, please wait..."
|
||||
gameDoc="$(find "$gamePath" -type f -iname '*.url' -exec grep -i 'url=' {} \; | grep -iv 'score' | head -1)"
|
||||
gameDoc="${gameDoc#*=}"
|
||||
gameDoc="${gameDoc//[[:cntrl:]]/}"
|
||||
[[ -n "$gameDoc" ]] && isUrl="true"
|
||||
fi
|
||||
# Display documentation if available.
|
||||
|
||||
# Display documentation if available
|
||||
if [[ -n "$gameDoc" ]]; then
|
||||
if [[ "$isUrl" == "true" ]]; then
|
||||
# URL extracted from .url file - open in browser
|
||||
open_url "$gameDoc"
|
||||
elif [[ "$dialogType" == "yad" ]]; then
|
||||
# GUI mode: use appropriate viewer
|
||||
if [[ "${gameDoc,,}" =~ \.(html?)$ ]]; then
|
||||
# HTML files: use xdg-open for default browser
|
||||
xdg-open "$gameDoc" 2>/dev/null &
|
||||
else
|
||||
# Text files: use yad text-info for accessibility
|
||||
yad --text-info \
|
||||
--title="Game Documentation" \
|
||||
--filename="$gameDoc" \
|
||||
--width=800 \
|
||||
--height=600 \
|
||||
--button="Close:0"
|
||||
fi
|
||||
else
|
||||
# Console mode: use w3m or fallback
|
||||
if command -v w3m &> /dev/null; then
|
||||
w3m "$gameDoc"
|
||||
elif [[ "${gameDoc,,}" =~ \.(html?)$ ]]; then
|
||||
echo "Install w3m to view HTML documentation in console mode."
|
||||
echo "Documentation location: $gameDoc"
|
||||
read -rp "Press Enter to continue..."
|
||||
else
|
||||
less "$gameDoc"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
if [[ "$dialogType" == "yad" ]]; then
|
||||
agm_msgbox "Documentation" "" "No documentation found for this game."
|
||||
else
|
||||
echo "No documentation found."
|
||||
read -rp "Press Enter to continue..."
|
||||
fi
|
||||
fi
|
||||
exit 0
|
||||
}
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
# Replacement map for scripts/check-ipfs-links.sh --fix.
|
||||
# Format: MATCH<TAB>REPLACEMENT
|
||||
# MATCH can be the ipfs array key, such as BG 15 Puzzle, or the old CID.
|
||||
# REPLACEMENT can be a bare CID or a full /ipfs/ URL. Bare CIDs keep the existing query string.
|
||||
|
@@ -0,0 +1,65 @@
|
||||
# shellcheck shell=bash
|
||||
# Central repository for IPFS game download URLs
|
||||
# This file is sourced by functions.sh
|
||||
|
||||
declare -Ag ipfs=(
|
||||
# Core System Files
|
||||
[nvdaControllerClient32]="${ipfsGateway}/ipfs/QmTrRrT4QFKSkZ8ivfUawA6iJ6adEyyogccE3nLDTfSK8u?filename=nvdaControllerClient32.dll"
|
||||
[nvdaControllerClient64]="${ipfsGateway}/ipfs/QmaYE7RFDtwHCiXCVLcuA3esfFx6E7koidtvrck9AwPuuN?filename=nvdaControllerClient64.dll"
|
||||
[nvda2speechd]="${ipfsGateway}/ipfs/QmPxhoNsoFoJC7bCfioBBCcK8tEoSoYpm342z6u7KjFsVz?filename=nvda2speechd"
|
||||
[speechsdk]="${ipfsGateway}/ipfs/QmXKp7xKoaLmpLJ8GoGJbQcGXnfMkfoqq5PDpyWHWnL9DB?filename=speechsdk.zip"
|
||||
[winespeak]="https://stormgames.wolfe.casa/downloads/winespeak.exe"
|
||||
|
||||
# Games (alphabetical order)
|
||||
[BG 15 Puzzle]="${ipfsGateway}/ipfs/QmQiocMpMXoxejDftKKvmrR5xxpj1qcWcgkhBBwTcyijXg?filename=FPB32Setup10a.exe"
|
||||
[BG 2048]="${ipfsGateway}/ipfs/QmPNt3c78UBgEMrTH3eJ5eD2mCMdth6jwes1iDKGW24Uj5?filename=BG204832Setup10a.exe"
|
||||
[BG Aces Up Solitaire]="${ipfsGateway}/ipfs/QmTshtHBEV9dh7wFtaQpNUEYHZ3fBpuhSRZqc7k8HwmtPM?filename=ASB32Setup10.exe"
|
||||
[BG Alchemy]="${ipfsGateway}/ipfs/Qma76HXBhmKgMDeHH1XLePsaWzzzLsBS2HRL3c7MVwDokg?filename=BAC32Setup10.exe"
|
||||
[BG Battleship]="${ipfsGateway}/ipfs/Qmaq9P9fxdLTEFMGg4mhHrRuUbPg6HgU3eYVJNqZUimHjo?filename=BGB32Setup10.exe"
|
||||
[BG Boggle]="${ipfsGateway}/ipfs/QmQwWiJw9hDiPdfwDyL4XepeoD66ztVRi3HwbSjFFP4CNg?filename=BGB32Setup10a.exe"
|
||||
[BG Boxes]="${ipfsGateway}/ipfs/QmRn21tREXxXVSaDe9i54zEPzPSespjJAFBqu4DWocuagD?filename=BXB32Setup10.exe"
|
||||
[BG Brainiac]="${ipfsGateway}/ipfs/QmWEdmTkQsjSqBgWUgnDajMf8QvQBbEF4Nxo6mhkXYzBtQ?filename=BRN32Setup10a.exe"
|
||||
[BG Chess Challenge]="${ipfsGateway}/ipfs/QmT2yBpU5Jqna18FxYtyWzi4xMGAY9PyJWStAskxCHqBDw?filename=BGC32Setup10d.exe"
|
||||
[BG Code Breaker]="${ipfsGateway}/ipfs/QmU486SssAdM7kPKwDyAKDLQs3Z92bG6wFjaLhzqDZCxAF?filename=BCB32Setup10.exe"
|
||||
[BG Cribbage]="${ipfsGateway}/ipfs/QmeFud3EPHy7wQe8UENgvh96HdAazEkwqA2AutCNkYvB3t?filename=BGC32Setup12e.exe"
|
||||
[BG Cribbage Solitaire]="${ipfsGateway}/ipfs/QmbRUiknnNcibWD3NwK4DFZGNHWswBgsFidUzU1TFGJ5Ra?filename=BCS32Setup10.exe"
|
||||
[BG Crossword Puzzle]="${ipfsGateway}/ipfs/QmZQGY9CeATEiWrSqsKBz4AN6jPgQuvbBZSpQoLiMjoDr2?filename=BGX32Setup10h.exe"
|
||||
[BG Draw Dominoes]="${ipfsGateway}/ipfs/QmZQGY9CeATEiWrSqsKBz4AN6jPgQuvbBZSpQoLiMjoDr2?filename=BDD32Setup.exe"
|
||||
[BG Elevens Solitaire]="${ipfsGateway}/ipfs/QmWWZByYL5CsDSi6gQLGcMyBL7zqD5hWXbPXJr3shRt5AQ?filename=ESB32Setup10.exe"
|
||||
[BG Fives Dominoes]="${ipfsGateway}/ipfs/QmSZt6dz7WQkNrFBmYq9n4WdYrrZyQAebTBPo46uHqCuNi?filename=BFD32Setup10.exe"
|
||||
[BG Free Cell Solitaire]="${ipfsGateway}/ipfs/QmVfQMMnqTD9Zm8Xwv7rGrUTdS9FXToq7Fv6wtQQVgbQGR?filename=BGF32Setup20.exe"
|
||||
[BG Golf Solitaire]="${ipfsGateway}/ipfs/QmfAp9EYou1pndLwYSdpYdUCHBv2DR94oFccQh1ii9JVLD?filename=GSB32Setup10a.exe"
|
||||
[BG Hangman]="${ipfsGateway}/ipfs/QmXTPMmvw7JE2eLuPBLGSpkZqUn12TX7QEQZbX8qtp7GBx?filename=HMB32Setup10.exe"
|
||||
[BG Hearts]="${ipfsGateway}/ipfs/QmdU5ag1PRjvG28wNX7aNuJqZSVxaqEEKjgG6GoRoDT8k4?filename=BGH32Setup10b.exe"
|
||||
[BG Klondike Solitaire]="${ipfsGateway}/ipfs/QmctBDvhQWwER94LvgauR7sMDxv9D1mS9cToV47orTCdzU?filename=BGK32Setup10b.exe"
|
||||
[BG LAP]="${ipfsGateway}/ipfs/Qma5WeCC9B2P5abRGX9nGYV8Zi9F8vfCCr4ehejP2bgmNm?filename=LAP32Setup10.exe"
|
||||
[BG Master Mind]="${ipfsGateway}/ipfs/QmP6cwMbirbBqAaG9JLfNRnD2dvJfh6nq74kfwxs5hN2RQ?filename=BMM32Setup10.exe"
|
||||
[BG Mine Sweeper]="${ipfsGateway}/ipfs/QmRa54HroWjwxHYfKr6hdmP34sHW5G3ecuzcjMA5UBBVKa?filename=MSB32Setup10.exe"
|
||||
[BG Nomination Whist]="${ipfsGateway}/ipfs/Qmb7eGTMDgiaDC9muMW9n8bHoistGcNm1VgHc6sr7dRyHU?filename=BNW32Setup10a.exe"
|
||||
[BG Penguin Solitaire]="${ipfsGateway}/ipfs/QmXKvQ6WNNSnDiSyYmvAhZXVdALnuhUGK7dSMQVkQNReJr?filename=BPS32Setup10c.exe"
|
||||
[BG Poker Solitaire]="${ipfsGateway}/ipfs/QmPLv74LiDgVGuiGhu9HuPhx3uoMm9QyCYk6jgeFUHjj3S?filename=BPS32Setup10.exe"
|
||||
[BG Pyramid Solitaire]="${ipfsGateway}/ipfs/QmaqXaBKD3xY2smhU2LcejXRTPnWZHqaTW9se8yRepLsHu?filename=PSB32Setup10a.exe"
|
||||
[BG Scorpion Solitaire]="${ipfsGateway}/ipfs/QmSxJs2MiLQ61Fgx6vCpSD7GmQziLiCEU3sZ3mgWc7RsJ8?filename=BSS32Setup10.exe"
|
||||
[BG Scrabble]="${ipfsGateway}/ipfs/QmVrwyPdJBnmc4wLW7oT2hexxXnXxs8bA7gfiqbnJsWJ16?filename=BGS32Setup20.exe"
|
||||
[BG Simon]="${ipfsGateway}/ipfs/QmXtBCqB6VCFPaDYuLaFNP1BDtJSLCJdJZzgm61zMtrsQt?filename=BGS32Setup10.exe"
|
||||
[BG Spider Solitaire]="${ipfsGateway}/ipfs/QmdWBaDnLVbKCJSpiqF675ew6nJ6KHUVXA5FEH3t3E7UAu?filename=SPB32Setup10b.exe"
|
||||
[BG Sudoku]="${ipfsGateway}/ipfs/QmXCAHEVRGZBc8t45Jgn2vkxicwF9Aox6yz9XrQBdkv7WY?filename=SDB32Setup10a.exe"
|
||||
[BG Tablic Solitaire]="${ipfsGateway}/ipfs/QmYoiFQ6JuSXfZfZXT3SQDsYzMWLBu9rW9yivi1xiPjqZx?filename=SDB32Setup10a.exe"
|
||||
[BG Tri-Peaks Solitaire]="${ipfsGateway}/ipfs/QmWJGvSR6iaQfMHM3XuGCkWxx285jkzSDdNSvvk3bSCH8S?filename=TPB32Setup10a.exe"
|
||||
[BG Twenty 20 Cricket]="${ipfsGateway}/ipfs/QmWAk2TMHMvW6Kjc1sZBEPsxmCNHfY3nF1K723PCqaTa57?filename=T20B32Setup10.exe"
|
||||
[BG Uno]="${ipfsGateway}/ipfs/QmVsfPkebSoTDwYSXF1n7y4P9eGJTgTcGXdrEjpcV8A3Dv?filename=BGU32Setup11a.exe"
|
||||
[BG Word Builder]="${ipfsGateway}/ipfs/QmXtR49EZShyj15Tc9CXQpBYVmKNfZpp4515Epm16bviuH?filename=BWB32Setup10.exe"
|
||||
[BG Word Candy]="${ipfsGateway}/ipfs/QmfTgfRzd4JMRqKSfDiz76iMorkaG19BqH1K7nRCCDwo4H?filename=WCB32Setup10a.exe"
|
||||
[BG Word Jumble]="${ipfsGateway}/ipfs/QmYQWZZifzKJSuVRCC1SabwRmEDz95GdFvbzRvsBMmTt6e?filename=BWJ32Setup10.exe"
|
||||
[BG Word Maze]="${ipfsGateway}/ipfs/QmXPtj5PkVZjXpU3m6FAfm8MwVL6bQCvhEDoR385u6FGTL?filename=BWM32Setup10.exe"
|
||||
[BG Word Solitaire]="${ipfsGateway}/ipfs/QmZp73ARDPqgnCz7zxfKeBHjNoHrgZSgg2NdQZR2sMyZGD?filename=WSB32Setup10.exe"
|
||||
[BG Word Target]="${ipfsGateway}/ipfs/QmWWZFXVHNtmNkH55oermWWtrMcQ8qVqL687B7kGFyeezq?filename=WTB32Setup10a.exe"
|
||||
[BG Word Yahtzee]="${ipfsGateway}/ipfs/QmdicAVDegDktY3euVAC2PPn4YBGz96KedxYXNe4WDQaoq?filename=BWY32Setup10.exe"
|
||||
[BG Yahtzee]="${ipfsGateway}/ipfs/QmZebvkKgFAADnb1cgW6Bz7wTYdUh82X61QdtW66KcvmpF?filename=BGY32Setup10a.exe"
|
||||
[Bloodshed]="${ipfsGateway}/ipfs/QmcTCTMep4zp5zTw8ZaXYpjtu9inNPn8bNzwhW6cX97egw?file=bloodshed.exe"
|
||||
[Chopper Challenge]="${ipfsGateway}/ipfs/QmY1jmwVkmwEcqBs84i4mpancD3R1W4Vu6w1RdcrFUnbGx?filename=chopper%20challenge.zip"
|
||||
[Christmas Chaos]="${ipfsGateway}/ipfs/QmYx11vsMDBgjPd1coZPGHxMXf2qtf4icqmB3Q9iUazyQv?filename=ChristmasChaos.zip"
|
||||
[Kitchensinc Games]="${ipfsGateway}/ipfs/QmdkLPig6Kp3AZTwKAhjrhhsEuvhFCFhm6SHLUQVeNNYCb?filename=kitchen.tar.xz"
|
||||
[Oh Shit]="${ipfsGateway}/ipfs/QmQnAJJrt5uABFziQc7enXYrJ74J9GKQSMi8Ry8ebsxfPV?filename=OhShit.zip"
|
||||
[Villains From Beyond]="${ipfsGateway}/ipfs/QmWx271xuk3Mv9XTBoVu5BDJvXFZdasawC2nhtV21WAaUU?filename=villains_en.zip"
|
||||
)
|
||||
@@ -0,0 +1,145 @@
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC2034,SC2154 # Sourced by audiogame-manager and installers with shared globals.
|
||||
|
||||
require_umu() {
|
||||
if command -v umu-run &> /dev/null; then
|
||||
return 0
|
||||
fi
|
||||
local message="This game requires umu-launcher. Please install umu-launcher and try again."
|
||||
if declare -F agm_msgbox &> /dev/null; then
|
||||
agm_msgbox "Audio Game Manager" "Audio Game Manager" "$message"
|
||||
else
|
||||
echo "$message" >&2
|
||||
fi
|
||||
return 1
|
||||
}
|
||||
|
||||
get_umu_bottle() {
|
||||
local gameId="$1"
|
||||
if [[ -z "$gameId" ]]; then
|
||||
echo "get_umu_bottle requires a game id." >&2
|
||||
return 1
|
||||
fi
|
||||
|
||||
export umuGameId="$gameId"
|
||||
export WINEPREFIX="${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/protonBottles/${gameId}"
|
||||
export GAMEID="$gameId"
|
||||
export STORE="${umuStore:-none}"
|
||||
export DISPLAY="${DISPLAY:-:0}"
|
||||
mkdir -p "$WINEPREFIX"
|
||||
}
|
||||
|
||||
install_proton_bottle() {
|
||||
local gameId="$1"
|
||||
shift || true
|
||||
require_umu || return 1
|
||||
get_umu_bottle "$gameId" || return 1
|
||||
|
||||
if [[ ! -f "${WINEPREFIX}/system.reg" ]]; then
|
||||
umu-run ""
|
||||
fi
|
||||
|
||||
if [[ $# -gt 0 ]]; then
|
||||
umu-run winetricks "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
install_proton_winetricks_verb() {
|
||||
local verbName="$1"
|
||||
local output=""
|
||||
local status=0
|
||||
local hadErrexit="false"
|
||||
|
||||
require_umu || return 1
|
||||
if [[ $- == *e* ]]; then
|
||||
hadErrexit="true"
|
||||
fi
|
||||
set +e
|
||||
output="$(umu-run winetricks -q "$verbName" 2>&1)"
|
||||
status=$?
|
||||
if [[ "$hadErrexit" == "true" ]]; then
|
||||
set -e
|
||||
fi
|
||||
printf '%s\n' "$output"
|
||||
|
||||
if [[ "$status" -ne 0 ]]; then
|
||||
if grep -F -q "winetricks verb '${verbName}' is already installed" <<< "$output"; then
|
||||
return 0
|
||||
fi
|
||||
return "$status"
|
||||
fi
|
||||
}
|
||||
|
||||
umu_windows_path_to_unix() {
|
||||
local windowsPath="$1"
|
||||
local relativePath=""
|
||||
if [[ "$windowsPath" =~ ^[cC]:\\ ]]; then
|
||||
relativePath="${windowsPath:3}"
|
||||
relativePath="${relativePath//\\//}"
|
||||
printf '%s/drive_c/%s\n' "$WINEPREFIX" "$relativePath"
|
||||
return 0
|
||||
fi
|
||||
winepath -u "$windowsPath"
|
||||
}
|
||||
|
||||
run_umu_game() {
|
||||
local windowsPath="$1"
|
||||
local exePath=""
|
||||
require_umu || return 1
|
||||
if [[ -z "${umuGameId:-}" ]]; then
|
||||
echo "UMU game id is not set for ${game[2]:-selected game}." >&2
|
||||
return 1
|
||||
fi
|
||||
get_umu_bottle "$umuGameId" || return 1
|
||||
exePath="$(umu_windows_path_to_unix "$windowsPath")"
|
||||
if [[ ! -f "$exePath" ]]; then
|
||||
echo "UMU executable not found: $exePath" >&2
|
||||
return 1
|
||||
fi
|
||||
pushd "${exePath%/*}" > /dev/null || return 1
|
||||
run_with_optional_gamemode umu-run "$exePath"
|
||||
popd > /dev/null || return 1
|
||||
}
|
||||
|
||||
add_umu_launcher() {
|
||||
local gameId="$1"
|
||||
local windowsPath="$2"
|
||||
shift 2
|
||||
local launchSettings="umu|${windowsPath}|${game}|export umuGameId=${gameId}"
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
launchSettings+="|$1"
|
||||
shift
|
||||
done
|
||||
|
||||
if ! grep -F -q -x "$launchSettings" "$configFile" 2> /dev/null; then
|
||||
echo "$launchSettings" >> "$configFile"
|
||||
sort -t '|' -k3,3f -o "$configFile" "$configFile"
|
||||
fi
|
||||
}
|
||||
|
||||
set_umu_reg_value() {
|
||||
local key="$1"
|
||||
local valueName="$2"
|
||||
local valueData="$3"
|
||||
wine reg add "$key" /v "$valueName" /t REG_SZ /d "$valueData" /f
|
||||
}
|
||||
|
||||
set_umu_app_winver() {
|
||||
local exeName="$1"
|
||||
local winVersion="$2"
|
||||
set_umu_reg_value "HKCU\\Software\\Wine\\AppDefaults\\${exeName}" "Version" "$winVersion"
|
||||
}
|
||||
|
||||
install_crlf_file() {
|
||||
local sourceFile="$1"
|
||||
local destFile="$2"
|
||||
mkdir -p "${destFile%/*}"
|
||||
perl -pe 's/\r?\n/\r\n/' "$sourceFile" > "$destFile"
|
||||
}
|
||||
|
||||
stop_umu_bottle() {
|
||||
if command -v wineserver &> /dev/null; then
|
||||
wineserver -k 2> /dev/null || true
|
||||
fi
|
||||
}
|
||||
@@ -1,9 +1,41 @@
|
||||
download "https://blindgamers.com/downloads/a-heros-call-freeware.zip" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient32.dll"
|
||||
export winVer="win7"
|
||||
export winetricksSettings="vd=1024x768"
|
||||
install_wine_bottle
|
||||
# Dotnet is evil. That is all.
|
||||
LC_ALL=C DISPLAY="" winetricks -q dotnet462 xna40
|
||||
wineserver -k # Really!
|
||||
install_with_progress unzip "Extracting game files..." -d "$WINEPREFIX/drive_c/Program Files" "${cache}/a-heros-call-freeware.zip"
|
||||
add_launcher "c:\Program Files\a-heros-call\A Hero's Call.exe"
|
||||
# shellcheck shell=bash disable=SC2154 # cache, game, and helper functions are set by audiogame-manager.
|
||||
|
||||
export game="A Hero's Call"
|
||||
herosCallGameId="a-heros-call"
|
||||
herosCallPath="c:\\Program Files\\a-heros-call\\A Hero's Call.exe"
|
||||
|
||||
download "https://blindgamers.com/downloads/a-heros-call-freeware.zip" \
|
||||
"https://stormgames.wolfe.casa/downloads/nvdaControllerClient32.dll"
|
||||
|
||||
export PROTON_USE_XALIA=0
|
||||
install_proton_bottle "$herosCallGameId"
|
||||
|
||||
alert "A Hero's Call" "A Hero's Call" "If you hear a window open during installation, or if the installer seems to be taking a long time, try pressing enter to see if it will continue."
|
||||
|
||||
{
|
||||
echo "# Installing A Hero's Call dependencies..."
|
||||
WINETRICKS_FORCE=1 install_proton_winetricks_verb speechsdk
|
||||
install_proton_winetricks_verb corefonts
|
||||
install_proton_winetricks_verb dotnet462
|
||||
install_proton_winetricks_verb xna40
|
||||
install_proton_winetricks_verb win7
|
||||
|
||||
echo "# Extracting game files..."
|
||||
mkdir -p "${WINEPREFIX}/drive_c/Program Files"
|
||||
unzip -oq "${cache}/a-heros-call-freeware.zip" -d "${WINEPREFIX}/drive_c/Program Files"
|
||||
echo "# Installation complete"
|
||||
} | agm_progressbox "Installing Game" "Installing A Hero's Call with UMU/Proton (this may take several minutes)..."
|
||||
|
||||
stop_umu_bottle
|
||||
|
||||
herosCallInstallDir="${WINEPREFIX}/drive_c/Program Files/a-heros-call"
|
||||
if [[ ! -f "${herosCallInstallDir}/A Hero's Call.exe" ]]; then
|
||||
agm_msgbox "A Hero's Call" "A Hero's Call" "A Hero's Call did not install to the expected location."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cp "${cache}/nvdaControllerClient32.dll" "${herosCallInstallDir}/nvdaControllerClient32.dll"
|
||||
mkdir -p "${herosCallInstallDir}/lib/Tolk"
|
||||
cp "${cache}/nvdaControllerClient32.dll" "${herosCallInstallDir}/lib/Tolk/nvdaControllerClient32.dll"
|
||||
|
||||
add_umu_launcher "$herosCallGameId" "$herosCallPath" "export PROTON_USE_XALIA=0"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
download "https://agarchive.net/games/mt/adrian's%20doom.exe"
|
||||
install_wine_bottle
|
||||
wine "${cache}/adrian's doom.exe" /silent
|
||||
add_launcher "c:\Program Files\Two Caring Citizens\Adrian's Doom!\adrian.exe"
|
||||
add_launcher "c:\Program Files (x86)\Two Caring Citizens\Adrian's Doom!\adrian.exe"
|
||||
|
||||
@@ -9,4 +9,4 @@ rm -fv "$WINEPREFIX/drive_c/windows/temp/AOSetup.exe"
|
||||
# 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\Alien Outback\ao.exe"
|
||||
add_launcher "c:\Program Files (x86)\Draconis Entertainment\Alien Outback\ao.exe"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
download "https://erion.cf/files/ag_103.zip"
|
||||
download "https://agarchive.net/games/other/AngelGift.zip"
|
||||
install_wine_bottle
|
||||
install_with_progress unzip "Extracting game files..." -d "$WINEPREFIX/drive_c/Program Files/Angel Gift" "$cache/ag_103.zip"
|
||||
install_with_progress unzip "Extracting game files..." -d "$WINEPREFIX/drive_c/Program Files/Angel Gift" "$cache/AngelGift.zip"
|
||||
add_launcher 'c:\Program Files\Angel Gift\ag.exe'
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
# shellcheck shell=bash disable=SC2154 # cache and WINEPREFIX are set by audiogame-manager
|
||||
download "https://github.com/matatk/agrip/releases/download/2020.0-beta1/AudioQuake+LDL_2020.0-beta1_Windows.zip" "https://stormgames.wolfe.casa/downloads/quake.zip"
|
||||
export winVer="win7"
|
||||
install_wine_bottle
|
||||
install_with_progress unzip "Extracting game files..." -d "$WINEPREFIX/drive_c/Program Files" "${cache}/AudioQuake+LDL_2020.0-beta1_Windows.zip"
|
||||
install_with_progress unzip "Extracting game files..." -d "$WINEPREFIX/drive_c/Program Files/AudioQuake/id1" "${cache}/quake.zip"
|
||||
add_launcher "c:\Program Files\AudioQuake\AudioQuake.exe"
|
||||
echo
|
||||
echo "After you launch the game, press tab then enter and it should begin speaking."
|
||||
alert
|
||||
alert "After you launch the game, press tab then enter and it should begin speaking."
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
download "https://axelek.pl/index/axel_pong.7z"
|
||||
install_wine_bottle
|
||||
install_with_progress 7z "Extracting game files..." x -o"$WINEPREFIX/drive_c/Program Files/Axel Pong" "${cache}/axel_pong.7z"
|
||||
add_launcher "c:\Program Files\Axel Pong\axel_pong.exe"
|
||||
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/QmQiocMpMXoxejDftKKvmrR5xxpj1qcWcgkhBBwTcyijXg?filename=FPB32Setup10a.exe"
|
||||
download "${ipfs[BG 15 Puzzle]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/FPB32Setup10a.exe" /silent
|
||||
add_launcher "c:\Program Files\Games\FifteenB\FifteenB.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\FifteenB\FifteenB.exe"
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/QmPNt3c78UBgEMrTH3eJ5eD2mCMdth6jwes1iDKGW24Uj5?filename=BG204832Setup10a.exe"
|
||||
download "${ipfs[BG 2048]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/BG204832Setup10a.exe" /silent
|
||||
add_launcher "c:\Program Files\Games\BG2048B\BG2048.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\BG2048B\BG2048.exe"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/QmTshtHBEV9dh7wFtaQpNUEYHZ3fBpuhSRZqc7k8HwmtPM?filename=ASB32Setup10.exe"
|
||||
download "${ipfs[BG Aces Up Solitaire]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/ASB32Setup10.exe" /silent
|
||||
add_launcher "c:\Program Files\Games\AcesUpB\AcesUpB.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\AcesUpB\AcesUpB.exe"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/Qma76HXBhmKgMDeHH1XLePsaWzzzLsBS2HRL3c7MVwDokg?filename=BAC32Setup10.exe"
|
||||
download "${ipfs[BG Alchemy]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/BAC32Setup10.exe" /silent
|
||||
add_launcher "c:\Program Files\Games\AlchemyB\AlchemyB.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\AlchemyB\AlchemyB.exe"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/Qmaq9P9fxdLTEFMGg4mhHrRuUbPg6HgU3eYVJNqZUimHjo?filename=BGB32Setup10.exe"
|
||||
download "${ipfs[BG Battleship]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/BGB32Setup10.exe" /silent
|
||||
add_launcher "c:\Program Files\Games\BattleshipB\BGBattleship.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\BattleshipB\BGBattleship.exe"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/QmQwWiJw9hDiPdfwDyL4XepeoD66ztVRi3HwbSjFFP4CNg?filename=BGB32Setup10a.exe"
|
||||
download "${ipfs[BG Boggle]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/BGB32Setup10a.exe" /silent
|
||||
add_launcher "c:\Program Files\Games\BoggleB\BoggleB.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\BoggleB\BoggleB.exe"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/QmRn21tREXxXVSaDe9i54zEPzPSespjJAFBqu4DWocuagD?filename=BXB32Setup10.exe"
|
||||
download "${ipfs[BG Boxes]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/BXB32Setup10.exe" /silent
|
||||
add_launcher "c:\Program Files\Games\BoxesB\BoxesB.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\BoxesB\BoxesB.exe"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/QmWEdmTkQsjSqBgWUgnDajMf8QvQBbEF4Nxo6mhkXYzBtQ?filename=BRN32Setup10a.exe"
|
||||
download "${ipfs[BG Brainiac]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/BRN32Setup10a.exe" /silent
|
||||
add_launcher "c:\Program Files\Games\BrainiacB\BrainiacB.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\BrainiacB\BrainiacB.exe"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/QmT2yBpU5Jqna18FxYtyWzi4xMGAY9PyJWStAskxCHqBDw?filename=BGC32Setup10d.exe"
|
||||
download "${ipfs[BG Chess Challenge]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/BGC32Setup10d.exe" /silent
|
||||
add_launcher "c:\Program Files\Games\ChessB\BGChess.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\ChessB\BGChess.exe"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/QmU486SssAdM7kPKwDyAKDLQs3Z92bG6wFjaLhzqDZCxAF?filename=BCB32Setup10.exe"
|
||||
download "${ipfs[BG Code Breaker]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/BCB32Setup10.exe" /silent
|
||||
add_launcher "c:\Program Files\Games\CodeBreakerB\BGCodeBreaker.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\CodeBreakerB\BGCodeBreaker.exe"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/QmbRUiknnNcibWD3NwK4DFZGNHWswBgsFidUzU1TFGJ5Ra?filename=BCS32Setup10.exe"
|
||||
download "${ipfs[BG Cribbage Solitaire]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/BCS32Setup10.exe" /silent
|
||||
add_launcher "c:\Program Files\Games\CribSolB\CribSolB.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\CribSolB\CribSolB.exe"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/QmeFud3EPHy7wQe8UENgvh96HdAazEkwqA2AutCNkYvB3t?filename=BGC32Setup12e.exe"
|
||||
download "${ipfs[BG Cribbage]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/BGC32Setup12e.exe" /silent
|
||||
add_launcher "c:\Program Files\Games\CribbageB\CribbageB.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\CribbageB\CribbageB.exe"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/QmZQGY9CeATEiWrSqsKBz4AN6jPgQuvbBZSpQoLiMjoDr2?filename=BGX32Setup10h.exe"
|
||||
download "${ipfs[BG Crossword Puzzle]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/BGX32Setup10h.exe" /silent
|
||||
add_launcher "c:\Program Files\Games\CrosswordB\CrosswordB.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\CrosswordB\CrosswordB.exe"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/QmZQGY9CeATEiWrSqsKBz4AN6jPgQuvbBZSpQoLiMjoDr2?filename=BDD32Setup.exe"
|
||||
download "${ipfs[BG Draw Dominoes]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/BDD32Setup.exe" /silent
|
||||
add_launcher "c:\Program Files\Games\DrawDominoesB\DrawDominoesB.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\DrawDominoesB\DrawDominoesB.exe"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/QmWWZByYL5CsDSi6gQLGcMyBL7zqD5hWXbPXJr3shRt5AQ?filename=ESB32Setup10.exe"
|
||||
download "${ipfs[BG Elevens Solitaire]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/ESB32Setup10.exe" /silent
|
||||
add_launcher "c:\Program Files\Games\ElevensB\ElevensB.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\ElevensB\ElevensB.exe"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/QmSZt6dz7WQkNrFBmYq9n4WdYrrZyQAebTBPo46uHqCuNi?filename=BFD32Setup10.exe"
|
||||
download "${ipfs[BG Fives Dominoes]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/BFD32Setup10.exe" /silent
|
||||
add_launcher "c:\Program Files\Games\FivesDominoesB\FivesDominoesB.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\FivesDominoesB\FivesDominoesB.exe"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/QmVfQMMnqTD9Zm8Xwv7rGrUTdS9FXToq7Fv6wtQQVgbQGR?filename=BGF32Setup20.exe"
|
||||
download "${ipfs[BG Free Cell Solitaire]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/BGF32Setup20.exe" /silent
|
||||
add_launcher "c:\Program Files\Games\FreecellB\FreecellB.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\FreecellB\FreecellB.exe"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/QmfAp9EYou1pndLwYSdpYdUCHBv2DR94oFccQh1ii9JVLD?filename=GSB32Setup10a.exe"
|
||||
download "${ipfs[BG Golf Solitaire]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/GSB32Setup10a.exe" /silent
|
||||
add_launcher "c:\Program Files\Games\GolfSolitaireB\GolfSolitaireB.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\GolfSolitaireB\GolfSolitaireB.exe"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/QmXTPMmvw7JE2eLuPBLGSpkZqUn12TX7QEQZbX8qtp7GBx?filename=HMB32Setup10.exe"
|
||||
download "${ipfs[BG Hangman]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/HMB32Setup10.exe" /silent
|
||||
add_launcher "c:\Program Files\Games\HangmanB\HangmanB.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\HangmanB\HangmanB.exe"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/QmdU5ag1PRjvG28wNX7aNuJqZSVxaqEEKjgG6GoRoDT8k4?filename=BGH32Setup10b.exe"
|
||||
download "${ipfs[BG Hearts]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/${BGH32Setup10b.exe}" /silent
|
||||
add_launcher "c:\Program Files\Games\HeartsB\HeartsB.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\HeartsB\HeartsB.exe"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/QmctBDvhQWwER94LvgauR7sMDxv9D1mS9cToV47orTCdzU?filename=BGK32Setup10b.exe"
|
||||
download "${ipfs[BG Klondike Solitaire]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/BGK32Setup10b.exe" /silent
|
||||
add_launcher "c:\Program Files\Games\KlondikeB\KlondikeB.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\KlondikeB\KlondikeB.exe"
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/Qma5WeCC9B2P5abRGX9nGYV8Zi9F8vfCCr4ehejP2bgmNm?filename=LAP32Setup10.exe"
|
||||
download "${ipfs[BG LAP]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/LAP32Setup10.exe" /silent
|
||||
add_launcher "c:\Program Files\Games\LAP\LAP.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\LAP\LAP.exe"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/QmP6cwMbirbBqAaG9JLfNRnD2dvJfh6nq74kfwxs5hN2RQ?filename=BMM32Setup10.exe"
|
||||
download "${ipfs[BG Master Mind]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/BMM32Setup10.exe" /silent
|
||||
add_launcher "c:\Program Files\Games\MastermindB\BGMasterMind.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\MastermindB\BGMasterMind.exe"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/QmRa54HroWjwxHYfKr6hdmP34sHW5G3ecuzcjMA5UBBVKa?filename=MSB32Setup10.exe"
|
||||
download "${ipfs[BG Mine Sweeper]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/MSB32Setup10.exe" /silent
|
||||
add_launcher "c:\Program Files\Games\MinesweeperB\MinesweeperB.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\MinesweeperB\MinesweeperB.exe"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/Qmb7eGTMDgiaDC9muMW9n8bHoistGcNm1VgHc6sr7dRyHU?filename=BNW32Setup10a.exe"
|
||||
download "${ipfs[BG Nomination Whist]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/BNW32Setup10a.exe" /silent
|
||||
add_launcher "c:\Program Files\Games\NomWhistB\NomWhistB.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\NomWhistB\NomWhistB.exe"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/QmXKvQ6WNNSnDiSyYmvAhZXVdALnuhUGK7dSMQVkQNReJr?filename=BPS32Setup10c.exe"
|
||||
download "${ipfs[BG Penguin Solitaire]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/BPS32Setup10c.exe" /silent
|
||||
add_launcher "c:\Program Files\Games\PenguinB\PenguinB.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\PenguinB\PenguinB.exe"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/QmPLv74LiDgVGuiGhu9HuPhx3uoMm9QyCYk6jgeFUHjj3S?filename=BPS32Setup10.exe"
|
||||
download "${ipfs[BG Poker Solitaire]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/BPS32Setup10.exe" /silent
|
||||
add_launcher "c:\Program Files\Games\PokerSolB\PokerSolB.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\PokerSolB\PokerSolB.exe"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/QmaqXaBKD3xY2smhU2LcejXRTPnWZHqaTW9se8yRepLsHu?filename=PSB32Setup10a.exe"
|
||||
download "${ipfs[BG Pyramid Solitaire]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/PSB32Setup10a.exe" /silent
|
||||
add_launcher "c:\Program Files\Games\PyramidB\PyramidB.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\PyramidB\PyramidB.exe"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/QmSxJs2MiLQ61Fgx6vCpSD7GmQziLiCEU3sZ3mgWc7RsJ8?filename=BSS32Setup10.exe"
|
||||
download "${ipfs[BG Scorpion Solitaire]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/BSS32Setup10.exe" /silent
|
||||
add_launcher "c:\Program Files\Games\ScorpionB\ScorpionB.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\ScorpionB\ScorpionB.exe"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/QmVrwyPdJBnmc4wLW7oT2hexxXnXxs8bA7gfiqbnJsWJ16?filename=BGS32Setup20.exe"
|
||||
download "${ipfs[BG Scrabble]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/BGS32Setup20.exe" /silent
|
||||
add_launcher "c:\Program Files\Games\ScrabbleB\ScrabbleB.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\ScrabbleB\ScrabbleB.exe"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/QmXtBCqB6VCFPaDYuLaFNP1BDtJSLCJdJZzgm61zMtrsQt?filename=BGS32Setup10.exe"
|
||||
download "${ipfs[BG Simon]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/BGS32Setup10.exe" /silent
|
||||
add_launcher "c:\Program Files\Games\SimonB\SimonB.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\SimonB\SimonB.exe"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/QmdWBaDnLVbKCJSpiqF675ew6nJ6KHUVXA5FEH3t3E7UAu?filename=SPB32Setup10b.exe"
|
||||
download "${ipfs[BG Spider Solitaire]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/SPB32Setup10b.exe" /silent
|
||||
add_launcher "c:\Program Files\Games\SpiderB\SpiderB.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\SpiderB\SpiderB.exe"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/QmXCAHEVRGZBc8t45Jgn2vkxicwF9Aox6yz9XrQBdkv7WY?filename=SDB32Setup10a.exe"
|
||||
download "${ipfs[BG Sudoku]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/SDB32Setup10a.exe" /silent
|
||||
add_launcher "c:\Program Files\Games\SudokuB\SudokuB.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\SudokuB\SudokuB.exe"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/QmYoiFQ6JuSXfZfZXT3SQDsYzMWLBu9rW9yivi1xiPjqZx?filename=SDB32Setup10a.exe"
|
||||
download "${ipfs[BG Tablic Solitaire]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/SDB32Setup10a.exe" /silent
|
||||
add_launcher "c:\Program Files\Games\TabSolB\BGTabSol.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\TabSolB\BGTabSol.exe"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/QmWJGvSR6iaQfMHM3XuGCkWxx285jkzSDdNSvvk3bSCH8S?filename=TPB32Setup10a.exe"
|
||||
download "${ipfs[BG Tri-Peaks Solitaire]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/TPB32Setup10a.exe" /silent
|
||||
add_launcher "c:\Program Files\Games\TriPeaksB\TriPeaksB.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\TriPeaksB\TriPeaksB.exe"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/QmWAk2TMHMvW6Kjc1sZBEPsxmCNHfY3nF1K723PCqaTa57?filename=T20B32Setup10.exe"
|
||||
download "${ipfs[BG Twenty 20 Cricket]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/T20B32Setup10.exe" /silent
|
||||
add_launcher "c:\Program Files\Games\T20CricketB\CricketB.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\T20CricketB\CricketB.exe"
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/QmVsfPkebSoTDwYSXF1n7y4P9eGJTgTcGXdrEjpcV8A3Dv?filename=BGU32Setup11a.exe"
|
||||
download "${ipfs[BG Uno]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/BGU32Setup11a.exe" /silent
|
||||
add_launcher "c:\Program Files\Games\UnoB\UnoB.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\UnoB\UnoB.exe"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/QmXtR49EZShyj15Tc9CXQpBYVmKNfZpp4515Epm16bviuH?filename=BWB32Setup10.exe"
|
||||
download "${ipfs[BG Word Builder]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/BWB32Setup10.exe" /silent
|
||||
add_launcher "c:\Program Files\Games\WordBuilderB\WordBuilderB.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\WordBuilderB\WordBuilderB.exe"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/QmfTgfRzd4JMRqKSfDiz76iMorkaG19BqH1K7nRCCDwo4H?filename=WCB32Setup10a.exe"
|
||||
download "${ipfs[BG Word Candy]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/WCB32Setup10a.exe" /silent
|
||||
add_launcher "c:\Program Files\Games\WordCandyB\WordCandyB.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\WordCandyB\WordCandyB.exe"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/QmYQWZZifzKJSuVRCC1SabwRmEDz95GdFvbzRvsBMmTt6e?filename=BWJ32Setup10.exe"
|
||||
download "${ipfs[BG Word Jumble]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/BWJ32Setup10.exe" /silent
|
||||
add_launcher "c:\Program Files\Games\WordJumbleB\WordJumbleB.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\WordJumbleB\WordJumbleB.exe"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/QmXPtj5PkVZjXpU3m6FAfm8MwVL6bQCvhEDoR385u6FGTL?filename=BWM32Setup10.exe"
|
||||
download "${ipfs[BG Word Maze]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/BWM32Setup10.exe" /silent
|
||||
add_launcher "c:\Program Files\Games\WordMazeB\WordMazeB.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\WordMazeB\WordMazeB.exe"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/QmZp73ARDPqgnCz7zxfKeBHjNoHrgZSgg2NdQZR2sMyZGD?filename=WSB32Setup10.exe"
|
||||
download "${ipfs[BG Word Solitaire]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/WSB32Setup10.exe" /silent
|
||||
add_launcher "c:\Program Files\Games\WordSolitaireB\WordSolitaireB.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\WordSolitaireB\WordSolitaireB.exe"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/QmWWZFXVHNtmNkH55oermWWtrMcQ8qVqL687B7kGFyeezq?filename=WTB32Setup10a.exe"
|
||||
download "${ipfs[BG Word Target]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/WTB32Setup10a.exe" /silent
|
||||
add_launcher "c:\Program Files\Games\WordTargetB\WordTargetB.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\WordTargetB\WordTargetB.exe"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/QmdicAVDegDktY3euVAC2PPn4YBGz96KedxYXNe4WDQaoq?filename=BWY32Setup10.exe"
|
||||
download "${ipfs[BG Word Yahtzee]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/BWY32Setup10.exe" /silent
|
||||
add_launcher "c:\Program Files\Games\WordYahtzeeB\BGWordYahtzee.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\WordYahtzeeB\BGWordYahtzee.exe"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfsGateway}/ipfs/QmZebvkKgFAADnb1cgW6Bz7wTYdUh82X61QdtW66KcvmpF?filename=BGY32Setup10a.exe"
|
||||
download "${ipfs[BG Yahtzee]}"
|
||||
install_wine_bottle
|
||||
wine "${cache}/BGY32Setup10a.exe" /silent
|
||||
add_launcher "c:\Program Files\Games\yahtzeeB\BGYahtzee.exe"
|
||||
add_launcher "c:\Program Files (x86)\Games\yahtzeeB\BGYahtzee.exe"
|
||||
|
||||
@@ -2,4 +2,4 @@ download "https://www.agarchive.net/games/gameMadnessInteractive/battle%20zone%2
|
||||
export winVer="win7"
|
||||
install_wine_bottle
|
||||
wine "${cache}/battle zone 13.5 setup.exe" /silent
|
||||
add_launcher "c:\Program Files\Battle Zone\ss.exe"
|
||||
add_launcher "c:\Program Files (x86)\Battle Zone\ss.exe"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#
|
||||
#//
|
||||
download "https://oriolgomez.com/games/beat_windows.zip"
|
||||
# Sapi is broken on win64 for now, and this game doesn't support nvda it seems.
|
||||
export WINEARCH=win64
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#Disable
|
||||
#//Disable
|
||||
download "https://nibblenerds.com/static/blades_of_glory.zip"
|
||||
install_wine_bottle
|
||||
install_with_progress unzip "Extracting game files..." -d "$WINEPREFIX/drive_c/Program Files/Blades of Glory" "${cache}/blades_of_glory.zip"
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
export WINEARCH="win64" # Migrated to wine64 with WINETRICKS_FORCE=1 - tested 2025-12-06
|
||||
download "${ipfsGateway}/ipfs/QmcTCTMep4zp5zTw8ZaXYpjtu9inNPn8bNzwhW6cX97egw?filename=bloodshed.exe"
|
||||
export WINEARCH="win64" # Migrated to wine64
|
||||
download "${ipfs[Bloodshed]}"
|
||||
install_wine_bottle
|
||||
cp "${cache}/bloodshed.exe" "$WINEPREFIX/drive_c/Program Files/"
|
||||
add_launcher "c:\Program Files\bloodshed.exe"
|
||||
|
||||
@@ -18,5 +18,10 @@ if [[ "${#dictFile}" -ge 3 ]] && [[ ! -r "${cache}/bk3-dict.dat" ]]; then
|
||||
fi
|
||||
if [[ -f "${cache}/bk3-dict.dat" ]] ; then
|
||||
cp -fv "${cache}/bk3-dict.dat" "${WINEPREFIX}/drive_c/nyanchangame/bk3/dict.dat"
|
||||
if [[ -f "${cache}/nvdaControllerClient32.dll" ]] ; then
|
||||
cp -fv "${cache}/nvdaControllerClient32.dll" "${WINEPREFIX}/drive_c/nyanchangame/bk3/data/nvdaControllerClient32.dll"
|
||||
fi
|
||||
else
|
||||
rm -fv "${WINEPREFIX}/drive_c/nyanchangame/bk3/data/nvdaControllerClient32.dll"
|
||||
fi
|
||||
add_launcher "c:\nyanchangame\bk3\play.exe"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
download "https://hirotaka2014.sakura.ne.jp/mh0406/game/breed_memorial.zip" "${nvdaControllerClientDll}"
|
||||
#//
|
||||
download "https://hirotaka2014.sakura.ne.jp/mh0406/game/breed_memorial.zip" "${nvdaControllerClient32Dll}"
|
||||
export winVer="win7"
|
||||
install_wine_bottle cjkfonts
|
||||
install_with_progress unzip "Extracting game files..." -d "$WINEPREFIX/drive_c/Program Files/" "${cache}/breed_memorial.zip"
|
||||
|
||||
@@ -9,4 +9,4 @@ rm -fv "$WINEPREFIX/drive_c/windows/temp/ChangeReactionSetup.exe"
|
||||
# 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"
|
||||
add_launcher "c:\Program Files (x86)\Draconis Entertainment\Change Reaction\ChangeReactionGui.exe"
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
#
|
||||
# Freezes at menu
|
||||
download "https://www.agarchive.net/games/XSight/chopper%20challenge%20setup.exe"
|
||||
download "${ipfs[Chopper Challenge]}"
|
||||
install_wine_bottle vb6run dx8vb
|
||||
wine "${cache}/chopper challenge setup.exe" /silent &
|
||||
xdotool sleep 5 key y 2> /dev/null
|
||||
wineserver -w
|
||||
echo "$USER|n/a" >> "$WINEPREFIX/drive_c/Program Files/x-sight interactive/chopper challenge/config.dat"
|
||||
add_launcher "c:\Program Files\x-sight interactive\chopper challenge\Chopper.exe"
|
||||
install_with_progress unzip "Extracting game files..." -d "$WINEPREFIX/drive_c/Program Files" "${cache}/chopper challenge.zip"
|
||||
add_launcher "c:\Program Files\chopper challenge\Chopper.exe"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
export WINEARCH=win64
|
||||
export winVer="win7"
|
||||
download "${ipfsGateway}/ipfs/QmYx11vsMDBgjPd1coZPGHxMXf2qtf4icqmB3Q9iUazyQv?filename=ChristmasChaos.zip" "https://stormgames.wolfe.casa/downloads/Tolk.dll"
|
||||
download "${ipfs[Christmas Chaos]}" "https://stormgames.wolfe.casa/downloads/Tolk.dll"
|
||||
install_wine_bottle
|
||||
install_with_progress unzip "Extracting game files..." -d "$WINEPREFIX/drive_c/Program Files" "${cache}/ChristmasChaos.zip"
|
||||
find "${WINEPREFIX}" -type f -name 'Tolk.dll' -exec cp -fv "${cache}/Tolk.dll" "{}" \;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
download "https://www.agarchive.net/games/draconis/christmas%20whoopass%20setup.exe"
|
||||
install_wine_bottle vb6run dx8vb
|
||||
wine "${cache}/christmas whoopass setup.exe" /sp- /silent
|
||||
add_launcher "c:\Program Files\Draconis Entertainment\Christmas Whoop Ass\wa.exe"
|
||||
add_launcher "c:\Program Files (x86)\Draconis Entertainment\Christmas Whoop Ass\wa.exe"
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
export WINEARCH=win64
|
||||
export winVer="win7"
|
||||
install_wine_bottle
|
||||
unrar x "$cache/coin collector.rar" -op"$WINEPREFIX/drive_c/Program Files"
|
||||
add_launcher "c:\Program Files\coin collector\game.exe"
|
||||
@@ -1,6 +1,6 @@
|
||||
#
|
||||
#//
|
||||
export winVer="win7"
|
||||
download "https://renovagames.com/bc/BC-Setup.exe"
|
||||
install_wine_bottle cjkfonts
|
||||
wine "${cache}/BC-Setup.exe" /silent
|
||||
#add_launcher "c:\Program Files\"
|
||||
#add_launcher "c:\Program Files (x86)\"
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export winVer="win7"
|
||||
download "http://oriolgomez.com/games/copter_en.zip"
|
||||
install_wine_bottle
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
download "https://www.agarchive.net/games/VIP/crazy%20tennis%20setup.exe"
|
||||
install_wine_bottle
|
||||
wine "${cache}/crazy tennis setup.exe" /sp- /silent
|
||||
add_launcher "c:\Program Files\Crazytennis\crazytennis.exe"
|
||||
add_launcher "c:\Program Files (x86)\Crazytennis\crazytennis.exe"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#
|
||||
#//
|
||||
# No custom bottle needed - use standard wine path based on architecture
|
||||
download "https://www.agarchive.net/games/pb/Dark-Destroyer-Setup.exe"
|
||||
install_wine_bottle ie6
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export winVer="win7"
|
||||
export winetricksSettings="vd=1024x768"
|
||||
download "https://kaldobsky.com/audiogames/Daytona.zip"
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export winVer="win7"
|
||||
download "http://oriolgomez.com/games/road_en.zip"
|
||||
install_wine_bottle
|
||||
|
||||
@@ -3,4 +3,4 @@ export winetricksSettings="vd=1024x768"
|
||||
download "https://www.agarchive.net/games/realitySoftware/death%20match%20project%20alpha%20setup.exe"
|
||||
install_wine_bottle quartz
|
||||
wine "${cache}/death match project alpha setup.exe" /silent
|
||||
add_launcher "c:\Program Files\reality software\death match project alpha\dm1.exe"
|
||||
add_launcher "c:\Program Files (x86)\reality software\death match project alpha\dm1.exe"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#
|
||||
#//
|
||||
export winVer="win7"
|
||||
install_wine_bottle
|
||||
download "https://www.iamtalon.me/games/dragonpong.zip"
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
download "http://files.l-works.net/dhsetup.exe"
|
||||
install_wine_bottle vb6run dx8vb
|
||||
wine "${cache}/dhsetup.exe" /silent
|
||||
add_launcher "c:\Program Files\Lworks\Duck Hunt\duckhunt.exe"
|
||||
add_launcher "c:\Program Files (x86)\Lworks\Duck Hunt\duckhunt.exe"
|
||||
+1
-1
@@ -9,4 +9,4 @@ rm -fv "$WINEPREFIX/drive_c/windows/temp/DMSetup.exe"
|
||||
# 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\DynaMan\dm.exe"
|
||||
add_launcher "c:\Program Files (x86)\Draconis Entertainment\DynaMan\dm.exe"
|
||||
|
||||
@@ -9,4 +9,4 @@ rm -fv "$WINEPREFIX/drive_c/windows/temp/PBCSetup.exe"
|
||||
# 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\ESP Pinball Classic\pbc.exe"
|
||||
add_launcher "c:\Program Files (x86)\Draconis Entertainment\ESP Pinball Classic\pbc.exe"
|
||||
|
||||
@@ -9,4 +9,4 @@ rm -fv "$WINEPREFIX/drive_c/windows/temp/PBXSetup.exe"
|
||||
# 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\ESP Pinball Xtreme\pbx.exe"
|
||||
add_launcher "c:\Program Files (x86)\Draconis Entertainment\ESP Pinball Xtreme\pbx.exe"
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
export winVer="win7"
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export WINEPREFIX="$HOME/.local/wine/draconis"
|
||||
download "http://download.dracoent.com/Windows/classic/PP1Setup.exe"
|
||||
install_wine_bottle vb6run dx8vb quartz
|
||||
# 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 "$WINEPREFIX/drive_c/Program Files (x86)/Draconis Entertainment/ESP Pinball Xtreme/pbx.exe" ] ; then
|
||||
echo "Error: You need to install ESP Pinball Extreme first to use this game. Please do so before continuing." >&2
|
||||
exit 1
|
||||
fi
|
||||
download "http://download.dracoent.com/Windows/classic/PP1Setup.exe"
|
||||
cp -fv "${cache}/PP1Setup.exe" "$WINEPREFIX/drive_c/windows/temp/"
|
||||
wine "c:/windows/temp/PP1Setup.exe" /sp- /silent
|
||||
rm -fv "$WINEPREFIX/drive_c/windows/temp/PP1Setup.exe"
|
||||
add_launcher "c:\Program Files\Draconis Entertainment\ESP Pinball Xtreme\pbx.exe"
|
||||
add_launcher "c:\Program Files (x86)\Draconis Entertainment\ESP Pinball Xtreme\pbx.exe"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
download "https://agarchive.net/games/mt/easter%20quest%20setup.exe"
|
||||
install_wine_bottle
|
||||
wine "${cache}/easter quest setup.exe" /silent
|
||||
add_launcher "c:\Program Files\MTGames\Easter Quest\easter.exe"
|
||||
add_launcher "c:\Program Files (x86)\MTGames\Easter Quest\easter.exe"
|
||||
|
||||
+92
-25
@@ -1,27 +1,94 @@
|
||||
export WINEARCH="win64" # Migrated to wine64 with WINETRICKS_FORCE=1 - complex .NET dependencies, test carefully
|
||||
download "http://blind-games.com/newentombed/EntombedSetup.exe" "https://download.microsoft.com/download/E/C/1/EC1B2340-67A0-4B87-85F0-74D987A27160/SSCERuntime-ENU.exe" "https://stormgames.wolfe.casa/downloads/Entombed.exe.config" "https://stormgames.wolfe.casa/downloads/mfplat.dll"
|
||||
export winVer="win7"
|
||||
install_wine_bottle sapi msvcrt40 gdiplus ie7 wmp11 mf
|
||||
# Ok, more dotnet.
|
||||
LC_ALL=C DISPLAY="" winetricks -q dotnet40 xna40
|
||||
wineserver -k # Sigh.
|
||||
mkdir -p "${WINEPREFIX}/drive_c/temp"
|
||||
pushd "${WINEPREFIX}/drive_c/temp"
|
||||
install_with_progress 7z "Extracting game files..." x "${cache}/SSCERuntime-ENU.exe"
|
||||
wine msiexec /i "${WINEPREFIX}/drive_c/temp/SSCERuntime_x86-ENU.msi" /q
|
||||
rm *
|
||||
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
|
||||
pushd "${WINEPREFIX}/drive_c/Program Files/Entombed"
|
||||
cp ../Microsoft\ SQL\ Server\ Compact\ Edition/v3.5/Private/System.Data.SqlServerCe.Entity.dll ../Microsoft\ SQL\ Server\ Compact\ Edition/v3.5/Private/System.Data.SqlServerCe.dll .
|
||||
cp ../Microsoft\ SQL\ Server\ Compact\ Edition/v3.5/sql* .
|
||||
cp "${cache}/Entombed.exe.config" .
|
||||
popd
|
||||
if [ ! -f "${WINEPREFIX}/drive_c/windows/system32/mfplat.dll" ] ; then
|
||||
# shellcheck shell=bash disable=SC2154 # cache, game, and helper functions are set by audiogame-manager.
|
||||
|
||||
export game="Entombed"
|
||||
entombedGameId="entombed"
|
||||
entombedPath='c:\Program Files (x86)\Entombed\Entombed.exe'
|
||||
|
||||
download "http://blind-games.com/newentombed/EntombedSetup.exe" \
|
||||
"https://download.microsoft.com/download/E/C/1/EC1B2340-67A0-4B87-85F0-74D987A27160/SSCERuntime-ENU.exe" \
|
||||
"https://stormgames.wolfe.casa/downloads/Entombed.exe.config" \
|
||||
"https://stormgames.wolfe.casa/downloads/mfplat.dll"
|
||||
|
||||
export PROTON_USE_XALIA=0
|
||||
install_proton_bottle "$entombedGameId"
|
||||
|
||||
entombedProfileSid="$(sed -n 's/^;; All keys relative to REGISTRY\\\\User\\\\//p' "${WINEPREFIX}/user.reg" | head -n 1)"
|
||||
if [[ -n "$entombedProfileSid" ]]; then
|
||||
umu-run reg add "HKLM\\Software\\Microsoft\\Windows NT\\CurrentVersion\\ProfileList\\${entombedProfileSid}" /v ProfileImagePath /t REG_SZ /d "C:\\users\\steamuser" /f
|
||||
fi
|
||||
|
||||
mkdir -p \
|
||||
"${WINEPREFIX}/drive_c/users/steamuser/AppData/Local/IsolatedStorage" \
|
||||
"${WINEPREFIX}/drive_c/users/steamuser/AppData/Roaming/IsolatedStorage"
|
||||
|
||||
alert "Entombed" "Entombed" "If you hear a window open during installation, or if the installer seems to be taking a long time, try pressing enter to see if it will continue."
|
||||
|
||||
{
|
||||
echo "# Installing Entombed dependencies..."
|
||||
WINETRICKS_FORCE=1 install_proton_winetricks_verb speechsdk
|
||||
install_proton_winetricks_verb msvcrt40
|
||||
install_proton_winetricks_verb gdiplus
|
||||
install_proton_winetricks_verb wmp11
|
||||
install_proton_winetricks_verb mf
|
||||
install_proton_winetricks_verb dotnet40
|
||||
install_proton_winetricks_verb xna40
|
||||
install_proton_winetricks_verb win7
|
||||
|
||||
echo "# Extracting SQL Server Compact runtime..."
|
||||
entombedTempDir="${WINEPREFIX}/drive_c/temp"
|
||||
mkdir -p "$entombedTempDir"
|
||||
7z x -y "-o${entombedTempDir}" "${cache}/SSCERuntime-ENU.exe"
|
||||
|
||||
echo "# Installing SQL Server Compact runtime..."
|
||||
umu-run msiexec /i "c:\\temp\\SSCERuntime_x86-ENU.msi" /q
|
||||
umu-run regsvr32 "c:\\Program Files\\Microsoft SQL Server Compact Edition\\v3.5\\sqlceoledb35.dll"
|
||||
umu-run regsvr32 "c:\\Program Files\\Microsoft SQL Server Compact Edition\\v3.5\\sqlceca35.dll"
|
||||
|
||||
echo "# Installing Entombed..."
|
||||
umu-run "${cache}/EntombedSetup.exe" /silent
|
||||
find "$entombedTempDir" -mindepth 1 -maxdepth 1 -exec rm -rf "{}" +
|
||||
echo "# Installation complete"
|
||||
} | agm_progressbox "Installing Game" "Installing Entombed with UMU/Proton (this may take several minutes)..."
|
||||
|
||||
stop_umu_bottle
|
||||
|
||||
entombedInstallDir=""
|
||||
for entombedCandidateDir in \
|
||||
"${WINEPREFIX}/drive_c/Program Files (x86)/Entombed" \
|
||||
"${WINEPREFIX}/drive_c/Program Files/Entombed"; do
|
||||
if [[ -f "${entombedCandidateDir}/Entombed.exe" ]]; then
|
||||
entombedInstallDir="$entombedCandidateDir"
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ -z "$entombedInstallDir" ]]; then
|
||||
agm_msgbox "Entombed" "Entombed" "Entombed did not install to the expected location."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
entombedSqlDir=""
|
||||
for entombedCandidateSqlDir in \
|
||||
"${WINEPREFIX}/drive_c/Program Files (x86)/Microsoft SQL Server Compact Edition/v3.5" \
|
||||
"${WINEPREFIX}/drive_c/Program Files/Microsoft SQL Server Compact Edition/v3.5"; do
|
||||
if [[ -d "$entombedCandidateSqlDir" ]]; then
|
||||
entombedSqlDir="$entombedCandidateSqlDir"
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ -z "$entombedSqlDir" ]]; then
|
||||
agm_msgbox "Entombed" "Entombed" "SQL Server Compact v3.5 did not install to the expected location."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cp "${entombedSqlDir}/Private/System.Data.SqlServerCe.Entity.dll" "$entombedInstallDir/"
|
||||
cp "${entombedSqlDir}/Private/System.Data.SqlServerCe.dll" "$entombedInstallDir/"
|
||||
cp "${entombedSqlDir}"/sql* "$entombedInstallDir/"
|
||||
cp "${cache}/Entombed.exe.config" "${entombedInstallDir}/Entombed.exe.config"
|
||||
|
||||
if [[ ! -f "${WINEPREFIX}/drive_c/windows/system32/mfplat.dll" ]]; then
|
||||
cp "${cache}/mfplat.dll" "${WINEPREFIX}/drive_c/windows/system32/"
|
||||
fi
|
||||
add_launcher "c:\Program Files\Entombed\Entombed.exe"
|
||||
|
||||
add_umu_launcher "$entombedGameId" "$entombedPath" "export PROTON_USE_XALIA=0"
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
#
|
||||
#//
|
||||
export winVer="win7"
|
||||
export winetricksSettings="vd=1024x768"
|
||||
download "https://www.stefankiss.sk/files/eurofly2/Launcher_1.2.zip" "https://www.stefankiss.sk/files/eurofly2/Eurofly_2_ful_setup.exe"
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
download "https://dl.tweesecake.app/rage/rage1.5.0.zip"
|
||||
# shellcheck shell=bash disable=SC2154 # cache, WINEPREFIX, and game are set by audiogame-manager
|
||||
gameVersion=2.4.1
|
||||
download "https://dl.tweesecake.app/rage/rage${gameVersion}.zip"
|
||||
export WINEARCH=win64
|
||||
export winVer="win10"
|
||||
install_wine_bottle
|
||||
install_with_progress unzip "Extracting game files..." -d "$WINEPREFIX/drive_c/Program Files/" "${cache}/rage1.5.0.zip"
|
||||
install_with_progress unzip "Extracting game files..." -d "$WINEPREFIX/drive_c/Program Files/" "${cache}/rage${gameVersion}.zip"
|
||||
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"
|
||||
message="Before you can login, you need to create an account at:\n${url}"
|
||||
if echo "$url" | xclip -selection clipboard 2> /dev/null ; then
|
||||
message+="\n\nThe URL has been copied to the clipboard."
|
||||
fi
|
||||
alert
|
||||
alert "Executioner's Rage" "Executioner's Rage" "$message"
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
#
|
||||
#//
|
||||
download "http://www.agarchive.net/games/bpc/fartman.exe"
|
||||
install_wine_bottle dx8vb vb6run
|
||||
wine "${cache}/fartman.exe" /silent
|
||||
#add_launcher "c:\Program Files\"
|
||||
#add_launcher "c:\Program Files (x86)\"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
download "http://www.agarchive.net/games/bsc/FingerPanicSetup.exe"
|
||||
install_wine_bottle dx8vb vb6run
|
||||
wine "${cache}/FingerPanicSetup.exe" /sp- /silent
|
||||
add_launcher "c:\Program Files\Finger Panic 1.0\FingerPanic.exe"
|
||||
add_launcher "c:\Program Files (x86)\Finger Panic 1.0\FingerPanic.exe"
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export winVer="win7"
|
||||
download "http://oriolgomez.com/games/bird_en.zip"
|
||||
install_wine_bottle
|
||||
|
||||
@@ -17,4 +17,4 @@ echo "To accurately set your information, edit the file:"
|
||||
echo "${WINEPREFIX}/drive_c/Program\ Files/GMA\ Tank\ Commander/config.dat"
|
||||
echo "The default country is US. The fields are:"
|
||||
echo -e "\"Firstname Lastname\"\n\"Email address\"\n\"Country code\""
|
||||
add_launcher "c:\Program Files\GMA Tank Commander\gtc.exe"
|
||||
add_launcher "c:\Program Files (x86)\GMA Tank Commander\gtc.exe"
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
# shellcheck shell=bash disable=SC2154 # cache and WINEPREFIX are set by audiogame-manager
|
||||
get_installer "Galactic Strike 1.2.zip" "https://fusion-forged-games.itch.io/galactic-strike"
|
||||
export winVer="win10"
|
||||
install_wine_bottle
|
||||
install_with_progress unzip "Extracting game files..." -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
|
||||
alert "Use controls wasd to movi and navigate the menu.\nUse m to fire and select items from the menu."
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# shellcheck shell=bash disable=SC2154 # cache and WINEPREFIX are set by audiogame-manager
|
||||
download "https://stormgames.wolfe.casa/downloads/grizzly-gulch.zip"
|
||||
install_wine_bottle vb6run mfc42
|
||||
install_with_progress unzip "Extracting game files..." -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
|
||||
alert "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."
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export winVer="win7"
|
||||
download "http://oriolgomez.com/games/hammer_en.zip"
|
||||
install_wine_bottle
|
||||
|
||||
+1
-1
@@ -37,4 +37,4 @@ if command -v xclip &> /dev/null && command -v xdotool &> /dev/null ; then
|
||||
else
|
||||
echo "Warning: You need xclip and xdotool for this installer to finish the registration process, however, you don't have them. Either remove the program, install the stated tools, and reinstall it, or go on your own. Caveat Emptor, go to jail, do not pass go, do not collect audiogame rewards and all that stuff."
|
||||
fi
|
||||
add_launcher "c:\Program Files\Hunter\HunterRun.exe"
|
||||
add_launcher "c:\Program Files (x86)\Hunter\HunterRun.exe"
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
export winVer="win7"
|
||||
download "http://oriolgomez.com/games/insect_en.zip"
|
||||
install_wine_bottle
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
download "http://www.valiantgalaxy.com/interceptor/Interceptor0.0.2.0Installer.exe"
|
||||
install_wine_bottle
|
||||
wine "${cache}/Interceptor0.0.2.0Installer.exe" /silent
|
||||
add_launcher "c:\Program Files\VGA\interceptor\launch_interceptor.exe"
|
||||
add_launcher "c:\Program Files (x86)\VGA\interceptor\launch_interceptor.exe"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Uses standard wine path based on architecture (win32/win64)
|
||||
download "http://files.l-works.net/judgmentdayfullsetup.exe"
|
||||
# shellcheck shell=bash disable=SC2154 # cache is set by audiogame-manager
|
||||
download "https://www.l-works.net/files/judgmentdayfullsetup.exe"
|
||||
install_wine_bottle vb6run dx8vb quartz
|
||||
wine "${cache}/judgmentdayfullsetup.exe" /silent
|
||||
cat << EOF > /tmp/judgementday.reg
|
||||
@@ -10,4 +10,4 @@ Windows Registry Editor Version 5.00
|
||||
EOF
|
||||
wine regedit /s /tmp/judgementday.reg
|
||||
rm /tmp/judgementday.reg
|
||||
add_launcher "c:\Program Files\Lworks\Judgment Day\judgmentday.exe"
|
||||
add_launcher "c:\Program Files (x86)\Lworks\Judgment Day\judgmentday.exe"
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user