Compare commits

...

64 Commits

Author SHA1 Message Date
da065e5835 A little more progress on refactor. 2025-06-10 01:54:56 -04:00
e3df3c4485 More games updated for the new system. 2025-05-20 19:11:21 -04:00
737432a63f Set-voice updated to support the new system. Hopefully also more reliable. 2025-05-20 18:46:17 -04:00
6526d40c68 Fixed create_game_array function. 2025-05-20 17:51:20 -04:00
d9ef202b33 more progress, but create_game_array is horribly broken. 2025-05-20 05:13:22 -04:00
faba6bcbcb Work on unifying bottles for wine. Most games should now install to 1 of 2 possible locations, ~/.local/wine32 or ~/.local/wine64. Untested, will probably break a lot of things, do not use yet. 2025-05-19 00:09:35 -04:00
31018bc55f Everything moved to it's new file for now. Cleanup is well under way. Improved the unix2dos function. 2025-05-18 20:50:52 -04:00
6e4d7bae8d More conversion to a modular system. 2025-05-18 20:16:22 -04:00
e892da65c8 First chunk of major refactor. Move code to external files located in .includes. Better code organization and easier to deal with. 2025-05-18 19:12:02 -04:00
d6cfe797bc Latest changes before huge refactor. 2025-05-18 16:39:58 -04:00
50b577d7aa Make sure variables needed for installation scripts are exported. 2025-05-14 13:58:16 -04:00
ef43dca94f Updated the clipboard translater because it could crash on some translations. 2025-05-14 04:36:30 -04:00
a38fc607a8 Updated download link for "Challenge of the Horse". 2025-05-08 23:39:52 -04:00
937b52ffd0 Added tiny game smashathon. Get angry! 2025-05-02 01:22:50 -07:00
4ee362b1c0 Added game constant motion. This is temporary until sam releases a linux version. 2025-05-01 04:17:32 -07:00
f86d25924f links for rhvoice updated. 2025-04-16 00:09:49 -04:00
6dbf578c5a Fixed a problem with the file name for BG Cricket. 2025-02-07 21:27:19 -05:00
ec8bb229f0 Actually close audiogame-manager if escape is pressed instead of trying, and failing, to launch the game. 2025-01-23 16:20:03 -05:00
3d95cefb02 Updated Mist World installer for Wine 10.0. Now requires sapi. 2025-01-23 15:47:47 -05:00
d9c6c80e00 Updated Swamp for wine 10.0. Removed ole32 dependency as it was causing it to fail. If you are on wine 9.0 run WINEPREFIX=~/.local/wine/aprone winetricks -q ole32 If you have problems. 2025-01-23 15:16:41 -05:00
8b8f01f39d Temporary work around for winetricks problems. Be sure to install winetricks with your package manager. 2025-01-20 17:55:23 -05:00
a18b2ec61b Shades 2.0 now works as well 2025-01-19 13:33:58 -08:00
e6cfa00c15 Shades of doom 1.2 is working for me on wine 9.22 2025-01-18 19:18:58 -08:00
0a1a130399 Fixed a bug with the default download check. 2025-01-17 17:36:40 -05:00
a8833aa173 Merge branch 'testing' of git.stormux.org:storm/audiogame-manager into testing 2025-01-16 13:30:53 -05:00
447344bec9 Fixed an error with finding wine_gecko. 2025-01-16 13:30:40 -05:00
ae267f971a Update the installer.
I do not know if the new installer is required come January 28, but since it's
available now might as well test it out.
2025-01-16 13:26:44 -05:00
fd933f6dad Removed window title reader for Mist World. Requested by player. 2025-01-13 23:37:32 -05:00
e60209a85e Fixed download url in A Hreo's call for nvdaControllerClient. 2025-01-06 17:57:44 -05:00
4300c3dda3 Fixed file validation for .exe files. 2024-12-24 19:18:01 -05:00
382c200dc3 Fix issue with scramble installer update. 2024-12-22 23:05:54 -08:00
9cc15db76e Fixed validation code so that things can actually pass validation and work. 2024-12-23 01:47:03 -05:00
1450bbc012 Fix scramble launcher for newest versions. 2024-12-22 22:43:00 -08:00
54ce9754fe Reorganize the way notes are shown after updates so that they hopefully appear oldest to newest. 2024-12-18 04:52:34 -05:00
fad25d35ec Soulblaze is now available natively in Linux, so moved to linux-game-manager. 2024-12-18 04:28:29 -05:00
5cc4eca7fd Fixed some places where wine wasn't being properly set. 2024-12-17 06:15:02 -05:00
294557fe34 Hopefully hide some messages that were making the launch menu ... interesting. 2024-12-17 05:19:04 -05:00
7ff6fd9248 Hopefully fixed problem with FEXLoader call to winetricks. 2024-12-17 05:06:37 -05:00
ee1eb6be60 Found some more games that didn't make it during the switch, added those back. 2024-12-16 19:17:59 -05:00
5620623ffe Mistworld got lost in the move to the new install system, so re-added it. 2024-12-16 18:55:06 -05:00
8aee611f86 Update winetricks to use FEXLoader if present. 2024-12-16 18:49:18 -05:00
75535a27b1 Changed the way nvda2speechd is launched. 2024-12-16 14:42:25 -05:00
18a6930c7c Updated code for -t flage. Does the same thing just better implemented. 2024-12-16 04:30:42 -05:00
f0e421ab33 Fixed a few installers that got mangled by the conversion script. 2024-12-16 04:25:54 -05:00
ccdf8ff858 Fixed Silver Dollar installer. 2024-12-16 04:10:26 -05:00
587e1ef385 Fixed a bug that would run sandbox on non existent wine if control+c was pressed. 2024-12-15 21:41:03 -05:00
b8eb927c2d Use /usr/bin/wine if nothing is set for the variable. 2024-12-15 18:48:40 -05:00
b776b18cf2 Add lyubov as an RHVoice option. 2024-12-15 16:14:17 -05:00
5da5e43964 Updated Download function. 2024-12-14 15:10:04 -05:00
ba2687f8ad Make sure wine is set to something for game removal function. Added game "Soulblaze" 2024-12-14 07:27:04 -05:00
8ef2532521 Fixed the -t flag which was broken by the removal of the gameList variable. 2024-12-13 05:34:53 -05:00
97665e0b22 Added comment out to files that were commented in the old gameList variable. 2024-12-13 05:23:12 -05:00
733a8a3971 Removed gameList variable as it is no longer needed. 2024-12-13 05:21:45 -05:00
b804d48188 WARNING! Possibly horribly broken. For stability, switch to master branch. Completely changed the way the installer system works. 2024-12-13 05:06:58 -05:00
407cc8985b Fixed wineserver for installers so that something is always present. May need more tweaks for aarch64. 2024-12-13 04:00:57 -05:00
b868c732cf Updated wineserver calls to use the wine determined in variable form. Installers may be broken for now. 2024-12-13 00:15:08 -05:00
72dcf570ad Moved the check for wine for FEXLoader to the right place. Oops. 2024-12-12 22:12:55 -05:00
e017284d80 Updated FEXLoader to use /usr/bin/wine because it should be in that path, and using command to locate it will not work. 2024-12-12 21:47:32 -05:00
9f8fd947c9 Hopefully fixed bug with wine not properly being called. 2024-12-12 20:54:22 -05:00
a595a9bf1a Updated minimum dependencie checker to account for aarch64. 2024-12-12 19:28:29 -05:00
7ec0035fb4 Experimental code for supporting aarch64 architecture. 2024-12-12 19:13:55 -05:00
038d784ba2 Small bug fix. Hopefully working now for creating the settings.dat file. 2024-12-09 18:51:54 -05:00
7d659c3ac4 I think I found a way to enter the user name for Side Parfty score boards. 2024-12-09 18:34:40 -05:00
53c0cafcef Added game "Side Party". 2024-12-08 20:03:09 -05:00
217 changed files with 2666 additions and 3171 deletions

197
.includes/bottle.sh Normal file
View File

@ -0,0 +1,197 @@
get_bottle() {
local architecture="${1/win/}"
export WINEPREFIX="$HOME/.local/wine${architecture}"
# Wine version for bottles
if [[ "$game" =~ entombed ]]; then
install_wine "6.18" "32"
fi
if [[ "$game" =~ rs-games ]]; then
install_wine "7.0" "32"
fi
if [[ "$game" =~ shadow-line ]]; then
install_wine "7.7" "32"
fi
}
install_wine() {
# Requires wine version, e.g. 7.7 and architecture, 32|64
if [[ $# -ne 2 ]]; then
exit 1
fi
# Figure out wineInstallationPath
wineInstallationPath="${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/wine_$2/$1"
export wine="${wineInstallationPath}/bin/wine"
# If the path exists, wine should already be installed.
# Just make sure we didn't wind up with a empty directory for some reason
rmdir "${wineInstallationPath}" 2> /dev/null
if [[ -d "${wineInstallationPath}" ]]; then
return
fi
mkdir -p "${wineInstallationPath}" 2> /dev/null
# This probably does not need to be cached, so download to tmp.
installationFile="$(mktemp)"
local v=$2
v="${v/32/x86}"
v="${v/64/x64}" # Probably wrong, so just a place holder.
# If this goes wrong, bail out
set -e
{ curl -L --output "${installationFile}" "https://www.playonlinux.com/wine/binaries/phoenicis/upstream-linux-x86/PlayOnLinux-wine-${1}-upstream-linux-${v}.tar.gz"
tar xf "${installationFile}" -C "${wineInstallationPath}"; } | dialog --progressbox "Installing $2 bit Wine version $1." -1 -1
set +e
}
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
# Download or update agm's copy of winetricks
if [[ ! -e "${winetricksPath}/winetricks" ]]; then
checkWinetricksUpdate="true"
download "https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks"
mv "${cache}/winetricks" "${winetricksPath}"
chmod 755 "${winetricksPath}/winetricks"
else
if [[ "$checkWinetricksUpdate" != "true" ]]; then
checkWinetricksUpdate="true"
${winetricksPath}/winetricks --self-update
fi
fi
# Run the requested winetricks parameters
if command -v FEXLoader &> /dev/null ; then
WINE="" FEXLoader -- ${winetricksPath}/winetricks "$@"
else
${winetricksPath}/winetricks "$@"
fi
}
install_rhvoice() {
if [[ -d "${WINEPREFIX}/drive_c/Program Files/Olga Yakovleva/" ]]; then
return
fi
if [[ "$norh" == "true" ]]; then
# Try to prevent the user from breaking speech
# Also useful for games that do not work with RHVoice
if [[ "${defaultVoice}" == "RHVoice" ]]; then
unset defaultVoice
fi
return
fi
declare -A RHVoice=(
[alan]="https://github.com/RHVoice/alan-eng/releases/download/4.0/RHVoice-voice-English-Alan-v4.0.2016.21-setup.exe"
[bdl]="https://github.com/RHVoice/bdl-eng/releases/download/4.1/RHVoice-voice-English-Bdl-v4.1.2016.21-setup.exe"
[clb]="https://github.com/RHVoice/clb-eng/releases/download/4.0/RHVoice-voice-English-Clb-v4.0.2016.21-setup.exe"
[lyubov]="https://rhvoice.eu-central-1.linodeobjects.com/RHVoice-voice-English-Lyubov-v4.0.2008.15-setup.exe"
[slt]="https://github.com/RHVoice/slt-eng/releases/download/4.1/RHVoice-voice-English-Slt-v4.1.2016.21-setup.exe"
)
voiceName="${voiceName:-bdl}"
voiceName="${voiceName,,}"
if [[ "${RHVoice[${voiceName}]}" == "" ]]; then
echo "Invalid RHVoice name specified, defaulting to Bdl."
voiceName="bdl"
fi
local voiceFile="${RHVoice[${voiceName}]##*/}"
download "${RHVoice[${voiceName}]}"
winetricks -q win8
echo "Installing RHVoice ${voiceName^}..."
${wine} "${cache}/${voiceFile}" &
sleep 20
${wine}server -k
}
install_wine_bottle() {
# Wine defaults to 64, so if you need 32 bit, don't forget export WINEARCH=win32
export WINEARCH="${WINEARCH:-win32}"
# Figure out if we are using a specific version of wine
export wine="${wine:-$(command -v wine)}"
# Set the WINE and WINESERVER environmental variables so winetricks will use the right installation.
export WINE="${wine}"
export WINESERVER="${wine}server"
# Installation paths are based on WINEARCH unless game is set for custom bottle.
local bottle=""
if [[ ${#game} -gt 0 ]]; then
bottle="${game,,}"
bottle="${bottle//[[:space:]]/-}"
if [[ -d "$HOME/.local/wine/${bottle}" ]]; then
echo "$HOME/.local/wine/${bottle} exists. Please remove it before running this installer."
exit 1
fi
fi
if [[ ( -z "$WINEARCH" || "$WINEARCH" == "win64" ) && ! "$*" =~ speechsdk ]]; then
local architecture=64
else
local architecture=32
fi
export WINEPREFIX="$HOME/.local/wine${bottle:+/}${bottle:-$architecture}"
# Arguments to the function are dependancies to be installed.
# Get location of mono and gecko.
monoPath="$(find /usr/share/wine/ -maxdepth 1 -type d -name mono 2> /dev/null)"
geckoPath="$(find /usr/share/wine/ -maxdepth 1 -type d -name "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"
fi
if [[ -z "$geckoPath" ]]; then
download 'http://dl.winehq.org/wine/wine-gecko/2.40/wine_gecko-2.40-x86.msi'
geckoPath="${cache}/wine_gecko-2.40-x86.msi"
fi
echo -n "Using "
${wine} --version
DISPLAY="" ${wine}boot -u
${wine} msiexec /i z:"$monoPath" /quiet
${wine} msiexec /i z:"$geckoPath" /quiet
if [[ "${*}" =~ (speechsdk|sapi) ]]; then
install_rhvoice
fi
if [[ "${WINEARCH}" == "win64" ]]; then
download "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd"
fi
if [[ "${WINEARCH}" == "win64" ]] && [[ ! -f "${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd" ]]; then
cp "${cache}/nvda2speechd" "${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd"
chmod +x "${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd"
fi
winetricks -q isolate_home $@ ${winVer:-win7} ${winetricksSettings}
# make it easy for game scripts to know which version of wine to use.
if [[ ${#bottle} -gt 1 ]]; then
echo "WINE=\"${WINE}\"" > "$HOME/.local/wine/${bottle}/agm.conf"
echo "WINESERVER=\"${WINESERVER}\"" >> "$HOME/.local/wine/${bottle}/agm.conf"
echo "Setting default voice for bottle \"${bottle}\" to \"${defaultVoice}\"."
"${0%/*}/speech/set-voice.sh" -b "${bottle}" -r "${defaultRate:-7}" -v "${defaultVoice}"
fi
# If default voice is set, change it for the current architecture
if [[ -z "$bottle" ]]; then
if [[ ${#defaultVoice} -ge 2 ]] && [[ "${*}" =~ (speechsdk|sapi) ]]; then
echo "Setting default voice for wine${architecture}."
"${0%/*}/speech/set-voice.sh" -b "${bottle}" -r "${defaultRate:-7}" -v "${defaultVoice}"
fi
fi
}
add_launcher() {
local launchSettings="${WINEARCH:-win64}|${1}|${game}"
shift
while [[ $# -gt 0 ]]; do
launchSettings+="|$1"
shift
done
if ! grep -F -q -x "${launchSettings}" "${configFile}" 2> /dev/null ; then
echo "${launchSettings}" >> "${configFile}"
sort -o "${configFile}" "${configFile}"
# Remove .lnk files because they don't work.
find ~/Desktop -type f -iname '*.lnk' -exec bash -c '
for f ; do
mimeType="$(file -b "$f")"
mimeType="${mimeType%%,*}"
if [[ "$mimeType" == "MS Windows shortcut" ]]; then
rm -v "$f"
fi
done' _ {} +
if [[ "${noCache}" == "true" ]]; then
rm -f "${cache}/${1##*\\}"
fi
fi
}

109
.includes/checkup.sh Executable file
View File

@ -0,0 +1,109 @@
declare -a errorList
declare -a packageList
if [[ $# -eq 0 ]]; then
echo "Checking your system..."
echo
fi
if command -v wine &> /dev/null ; then
[[ $# -eq 0 ]] && echo "Wine is installed."
else
errorList+=("Critical: Wine is not installed. You will not be able to play any games.")
fi
packageList+=("wine")
if command -v curl &> /dev/null ; then
[[ $# -eq 0 ]] && echo "Curl is installed."
else
errorList+=("Critical: Curl is not installed. Critical functionality will not work.")
fi
packageList+=("curl")
if command -v dialog &> /dev/null ; then
[[ $# -eq 0 ]] && echo "Dialog is installed."
else
errorList+=("Critical: Dialog is not installed. You will not be able to install, launch, or remove any games.")
fi
packageList+=("dialog")
for i in 7z cabextract unzip xz ; do
if command -v $i &> /dev/null ; then
[[ $# -eq 0 ]] && echo "${i^} is installed."
else
errorList+=("Critical: ${i^} is not installed. You will not be able to install some games or their components.")
fi
packageList+=("$i")
done
if command -v gawk &> /dev/null ; then
[[ $# -eq 0 ]] && echo "Gawk is installed."
else
errorList+=("Warning: gawk is not installed. Game removal with -r will not work.")
fi
packageList+=("gawk")
if command -v ocrdesktop &> /dev/null ; then
[[ $# -eq 0 ]] && echo "Ocrdesktop is installed."
else
errorList+=("Warning: ocrdesktop is not installed. It can help if the installer gets stuck to figure out what is happening.")
fi
packageList+=("ocrdesktop")
if command -v qjoypad &> /dev/null ; then
[[ $# -eq 0 ]] && echo "Qjoypad is installed."
else
errorList+=("Warning: qjoypad is not installed. Qjoypad allows you to play keyboard only games with a gamepad.")
fi
packageList+=("qjoypad")
if command -v sox &> /dev/null ; then
[[ $# -eq 0 ]] && echo "Sox is installed."
else
errorList+=("Warning: Sox is not installed. Audio will not work.")
fi
packageList+=("sox")
if command -v trans &> /dev/null ; then
[[ $# -eq 0 ]] && echo "Translate-shell is installed."
else
errorList+=("Warning: translate-shell is not installed. Games that require translation will not be translated.")
fi
packageList+=("translate-shell")
if command -v sqlite3 &> /dev/null ; then
[[ $# -eq 0 ]] && echo "Sqlite3 is installed."
else
errorList+=("Warning: sqlite is not installed. Required for games that need to be translated.")
fi
if command -v perl &> /dev/null ; then
[[ $# -eq 0 ]] && echo "Perl is installed."
else
errorList+=("Warning: perl is not installed. Required for games that need to be translated.")
fi
packageList+=("perl")
packageList+=("sqlite")
if command -v w3m &> /dev/null ; then
[[ $# -eq 0 ]] && echo "W3m is installed."
else
errorList+=("Warning: w3m is not installed. W3m is used to view game documentation.")
fi
packageList+=("w3m")
if command -v xclip &> /dev/null ; then
[[ $# -eq 0 ]] && echo "Xclip is installed."
else
errorList+=("Warning: Xclip is not installed. Some games may not speak or register properly.")
fi
packageList+=("xclip")
if command -v xdotool &> /dev/null ; then
[[ $# -eq 0 ]] && echo "Xdotool is installed."
else
errorList+=("Warning: Xdotool is not installed. Some installers may not work or may need manual intervention.")
fi
packageList+=("xdotool")
# Show the results
if [[ $# -ne 0 ]]; then
for i in "${packageList[@]}" ; do
echo "$i"
done | sort
exit 0
fi
if [[ ${#errorList[@]} -eq 0 ]]; then
echo "No problems found, you are good to go."
exit 0
fi
echo "Errors detected, here is a list along with the severity."
echo "Note that errors marked critical mean that you will not be able to install and play games until they are resolved."
for i in "${errorList[@]}" ; do
echo "$i"
done
exit 0

35
.includes/desktop.sh Normal file
View File

@ -0,0 +1,35 @@
# Create desktop launcher file
desktop_launcher() {
local desktopFile="${HOME}/audiogame-manager.desktop"
if [[ -e "${desktopFile}" ]]; then
echo "the file ${desktopFile} exists. Cannot create the launcher."
exit 1
fi
local dotDesktop
local terminal
# Try to find an accessible terminal
for i in mate-terminal lxterminal terminator gnome-terminal ; do
if command -v $i &> /dev/null ; then
terminal="$i"
break
fi
done
dotDesktop=('[Desktop Entry]'
'Name=Audiogame manager'
'GenericName=Audiogame Manager'
'Comment=Play audio games'
"Exec=${terminal} -t \"Audiogame Manager\" -e \"/usr/bin/bash -c 'nohup $(readlink -e "$0") 2> /dev/null'\""
'Terminal=false'
'Type=Application'
'StartupNotify=false'
'Keywords=game;'
'Categories=Game;'
'Version=1.0')
for i in "${dotDesktop[@]}" ; do
echo "$i" >> "${desktopFile}"
done
desktop-file-install --dir "${HOME}/.local/share/applications" -m 755 "${desktopFile}"
xdg-desktop-icon install ~/.local/share/applications/audiogame-manager.desktop
rm "${desktopFile}"
exit 0
}

198
.includes/functions.sh Normal file
View File

@ -0,0 +1,198 @@
# Alerts, for when user needs to read something.
alert() {
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
read -rp "Press enter to continue." continue
}
check_requirements() {
# Make sure the minimum of curl, sox, wine, and winetricks are installed or fex-emu on aarch64
if [[ "$(uname -m)" == "aarch64" ]]; then
minimumDependencies=("FEXLoader")
wine="FEXLoader -- /usr/bin/wine"
else
minimumDependencies=("curl" "sox" "wine")
fi
for i in "${minimumDependencies[@]}" ; do
if ! command -v $i &> /dev/null ; then
echo "Please install $i before continuing."
return 1
fi
done
return 0
}
clear_cache() {
local answer
if [[ ! -d "${cache}" ]]; then
echo "No cache found at ${cache}."
return
fi
while ! [[ "${answer,,}" =~ ^yes$|^no$ ]]; do
echo "This will delete all contents of ${cache}. Are you sure you want to continue?"
echo "Please type yes or no."
echo
read -r answer
done
if [[ "$answer" == "no" ]]; then
return
fi
# All safety checks done. Delete the cache.
rm -rfv "${cache}"
echo "Cache deleted."
}
download() {
local source=($@)
for i in "${source[@]}" ; do
local dest="${i##*/}"
dest="${dest//%20/ }"
dest="${dest#*\?filename=}"
dest="${dest%\?*}"
# Remove the destination file if it is empty.
[[ -s "${cache}/${dest}" ]] || rm -f "${cache}/${dest}" 2> /dev/null
if [[ "${redownload}" == "true" ]] && [[ -e "${cache}/${dest}" ]]; then
rm -v "${cache}/${dest}"
fi
# Skip if the item is in cache.
[[ -e "${cache}/${dest}" ]] && continue
{ if ! curl -L4 -C - --retry 10 --output "${cache}/${dest}" "${i}" ; then
echo "Could not download \"$i\"..."
exit 1
fi; } | dialog --backtitle "Audio Game Manager" \
--progressbox "Downloading \"$dest\" from \"$i\"" -1 -1
local downloadError=1
case "${dest##*.}" in
"pk3"|"zip")
unzip -tq "${cache}/${dest}" | dialog --backtitle "Audio Game Manager" \
--progressbox "Validating ${dest##*.} file" -1 -1 --stdout
downloadError=$?
;;
"7z")
7z t "${cache}/${dest}" | dialog --backtitle "Audio Game Manager" \
--progressbox "Validating 7z file" -1 -1 --stdout
downloadError=$?
;;
"exe")
# Check if it's a valid Windows executable by looking at the MZ header
hexdump -n 2 -v -e '/1 "%02X"' "${cache}/${dest}" | grep -q "4D5A"
downloadError=$?
;;
"wad")
if [[ "$(file -b --mime-type "${cache}/${dest}")" != "application/octet-stream" ]]; then
downloadError=0
fi
;;
*)
# Add HTML check for other file types
if file -b "${cache}/${dest}" | grep -q "HTML document" ; then
echo "File not found: \"$i\" (HTML document probably 404)"
downloadError=1
else
downloadError=0
fi
;;
esac
if [[ $downloadError -ne 0 ]]; then
rm -fv "${cache}/${dest}"
dialog --backtitle "Audio Game Manager" \
--infobox "Error downloading \"${dest}\". Installation cannot continue." -1 -1 --stdout
alert
exit 1
fi
done
}
get_installer() {
trap "exit 0" SIGINT
# If the file is in cache nothing else needs to be done.
if [[ -f "${cache}/$1" ]]; then
return
fi
# Create message for dialog.
local message="Make sure $1 is available in either your Downloads or Desktop directory and press enter to continue."
if [[ -n "$2" ]]; then
message+="\n\nThe last good known URL for $game is:"
message+="\n$2"
fi
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
# 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}/" \;
done
# If the file is still not available abort.
if [[ ! -f "${cache}/$1" ]]; then
echo "couldn't find $1. Please download the file and try again."
exit 1
fi
}
get_steam() {
# Arguments: $1 id of item for download, $2 url for game
trap "exit 0" SIGINT
echo "manual intervention required."
alert
dialog --backtitle "Audiogame Manager" \
--yes-label "Continue with Steam" \
--no-label "Install manually" \
--extra-button \
--extra-label "Exit" \
--yesno "To install the game manually, place files in \"${WINEPREFIX}/drive_c/Program Files/${game}\"" -1 -1 --stdout
case $? in
0) echo "The next steps will install through steamcmd." ;;
1)
mkdir -p "${WINEPREFIX}/drive_c/Program Files/${game}"
dialog --backtitle "Audiogame Manager" \
--msgbox "Place game files in \"${WINEPREFIX}/drive_c/Program Files/${game}\" and press enter to continue." -1 -1 --stdout
return
;;
*) exit 0 ;;
esac
# Check for steamcmd
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; }
}
# Function to open urls across OS.
open_url() {
if [[ "$(uname)" == "Darwin" ]]; then
open "${*}" 2> /dev/null
else
xdg-open "${*}" 2> /dev/null
fi
}
unix2dos() {
if [[ $# -eq 0 ]]; then
echo "Usage: unix2dos file(s)."
exit 1
fi
for file in "$@"; do
sed -i 's/\r\{0,\}$/\r/' "$file"
done
}

125
.includes/help.sh Normal file
View File

@ -0,0 +1,125 @@
documentation() {
if [[ "$2" == "Become a Patron" ]]; then
return
fi
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
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.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
gameDoc="$(find "$gamePath" -type f -iname "$i" -or -iname 'manual.htm' | head -1)"
done
fi
if [[ -z "$gameDoc" ]]; then
gameDoc="$(find "$gamePath" -type f -path '*/Manual/index.html' | head -1)"
fi
if [[ -z "$gameDoc" ]]; then
gameDoc="$(find "$gamePath" -type f -iname '[A-Z]*Help.htm' -or -iname '[A-Z]*Help.html' | head -1)"
fi
if [[ -z "$gameDoc" ]]; then
gameDoc="$(find "$gamePath" -type f -iname 'manual.html' -or -iname 'manual.htm' | head -1)"
fi
if [[ -z "$gameDoc" ]]; then
gameDoc="$(find "$gamePath" -type f -iname 'en.html' -or -iname 'en.htm' | head -1)"
fi
if [[ -z "$gameDoc" ]]; then
gameDoc="$(find "$gamePath" -type f -iname 'readme.html' -or -iname 'readme.htm' | head -1)"
fi
if [[ -z "$gameDoc" ]]; then
gameDoc="$(find "$gamePath" -type f -iname 'manual.txt' | head -1)"
fi
if [[ -z "$gameDoc" ]]; then
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)"
gameDoc="${gameDoc#*=}"
gameDoc="${gameDoc//[[:cntrl:]]/}"
fi
# Display documentation if available.
if [[ -n "$gameDoc" ]]; then
w3m "$gameDoc"
else
echo "No documentation found."
fi
exit 0
}
help() {
echo "${0##*/}"
echo "Released under the terms of the Common Public Attribution License Version 1.0"
echo -e "This is a Stormux project: https://stormux.org\n"
echo -e "Usage:\n"
echo "With no arguments, open the game launcher."
for i in "${!command[@]}" ; do
echo "-${i/:/ <parameter>}: ${command[${i}]}"
done | sort
echo
echo "Some settings that are often used can be stored in a settings.conf file."
echo "If wanted, place it at the following location:"
echo "${configFile%/*}/settings.conf"
echo "The syntax is variable=\"value\""
echo
echo "ipfsGateway=\"https://ipfs.stormux.org\" # 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."
echo "redownload=\"true\" # Redownload sources, do not use the version stored in cache."
echo "voiceName=\"voicename\" # Select the voice to be installed (default Bdl)."
echo "defaultVoice=\"voicename\" # Select the default voice to use for the bottle, e.g. MSMike or RHVoice."
echo "defaultRate=\"Default voice rate for the bottle, default 7, may not work in all games. Values 1-9 or A."
echo "winedebug=\"flag(s)\" # Set wine debug flags, useful for development."
exit 0
}
license() {
cat << EOF
■The contents of this file are subject to the Common Public Attribution
License Version 1.0 (the ■License■); you may not use this file except in
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 ■AS IS■ basis,
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, 2024. 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.
EOF
}

46
.includes/update.sh Normal file
View File

@ -0,0 +1,46 @@
# 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"
local newsPath="${configFile%/*.conf}/.news"
local newsTag="$(curl --connect-timeout 5 -sI "$newsFile" | grep -i '^etag: "' | cut -d '"' -f2)"
if [[ -z "${newsTag}" ]]; then
return
fi
local newsOldTag="$(cat "$newsPath" 2> /dev/null)"
if [[ "$newsTag" != "$newsOldTag" ]]; then
dialog --yes-label 'Play' \
--no-label 'Later' \
--backtitle 'Audiogame Manager News' \
--yesno 'Audiogame manager news is available. Please use left and right arrows to navigate and enter to confirm.' -1 -1 || return
sox -qV0 "$newsFile" -d &> /dev/null
echo -n "$newsTag" > "$newsPath"
fi
}
# Automatic update function
# 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
fi
git remote update &> /dev/null
local upstream='@{u}'
local home="$(git rev-parse @)"
local remote="$(git rev-parse "$upstream")"
if [[ "$home" == "$remote" ]]; then
return
fi
dialog --backtitle "Audiogame Manager" \
--yesno "Updates are available. Would you like to update now?" -1 -1 --stdout || return
{ git pull
git log '@{1}..' --pretty=format:'%an: %s' | tac; }
exit $?
}

10
.install/A Hero's Call.sh Normal file
View File

@ -0,0 +1,10 @@
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 speechsdk corefonts
# Dotnet is evil. That is all.
LC_ALL=C DISPLAY="" winetricks -q dotnet462 xna40
${wine}server -k # Really!
unzip -d "$WINEPREFIX/drive_c/Program Files" "${cache}/a-heros-call-freeware.zip"
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvdaControllerClient32.dll" "{}" \;
add_launcher "c:\Program Files\a-heros-call\A Hero's Call.exe"

View File

@ -0,0 +1,4 @@
download "https://agarchive.net/games/mt/adrian's%20doom.exe"
install_wine_bottle speechsdk
wine "${cache}/adrian's doom.exe" /silent
add_launcher "c:\Program Files\Two Caring Citizens\Adrian's Doom!\adrian.exe"

View File

@ -0,0 +1,5 @@
download "http://www.vgstorm.com/aac/aac.zip" "https://www.agarchive.net/games/vg/adventure%20at%20c%20stages.7z"
install_wine_bottle speechsdk
unzip -d "$WINEPREFIX/drive_c/Program Files/aac" "${cache}/aac.zip"
7z x -o"$WINEPREFIX/drive_c/Program Files/aac/stages" "${cache}/adventure at c stages.7z"
add_launcher "c:\Program Files\aac\aac.exe"

12
.install/Alien Outback.sh Normal file
View File

@ -0,0 +1,12 @@
download "http://download.dracoent.com/Windows/classic/AOSetup.exe"
export bottle="draconis"
export winVer="win7"
install_wine_bottle vb6run dx8vb speechsdk quartz
cp -v "${cache}/AOSetup.exe" "$WINEPREFIX/drive_c/windows/temp/"
wine "c:/windows/temp/AOSetup.exe" /sp- /silent
rm -fv "$WINEPREFIX/drive_c/windows/temp/AOSetup.exe"
# warning warning warning: Do not change location, or installer will not function.
# FIXME: Hacky, but it works. Install dotnet20 by itself so it actually doesn't hang.
winetricks -q dotnet20
${wine}server -k # Damn you, dotnet.
add_launcher "c:\Program Files\Draconis Entertainment\Alien Outback\ao.exe"

4
.install/Angel Gift.sh Normal file
View File

@ -0,0 +1,4 @@
download "https://erion.cf/files/ag_103.zip"
install_wine_bottle speechsdk
unzip -d "$WINEPREFIX/drive_c/Program Files/Angel Gift" "$cache/ag_103.zip"
add_launcher 'c:\Program Files\Angel Gift\ag.exe'

4
.install/AudioDisc.sh Normal file
View File

@ -0,0 +1,4 @@
download "https://agarchive.net/games/other/audiodisc.zip"
install_wine_bottle
unzip -d "$WINEPREFIX/drive_c/Program Files" "${cache}/audiodisc.zip"
add_launcher "c:\Program Files\audiodisc\disco.exe"

9
.install/AudioQuake.sh Normal file
View File

@ -0,0 +1,9 @@
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 speechsdk
unzip -d "$WINEPREFIX/drive_c/Program Files" "${cache}/AudioQuake+LDL_2020.0-beta1_Windows.zip"
unzip -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

5
.install/BG 15 Puzzle.sh Normal file
View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/QmQiocMpMXoxejDftKKvmrR5xxpj1qcWcgkhBBwTcyijXg?filename=FPB32Setup10a.exe"
install_wine_bottle speechsdk
wine "${cache}/FPB32Setup10a.exe" /silent
add_launcher "c:\Program Files\Games\FifteenB\FifteenB.exe"

5
.install/BG 2048.sh Normal file
View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/QmPNt3c78UBgEMrTH3eJ5eD2mCMdth6jwes1iDKGW24Uj5?filename=BG204832Setup10a.exe"
install_wine_bottle speechsdk
wine "${cache}/BG204832Setup10a.exe" /silent
add_launcher "c:\Program Files\Games\BG2048B\BG2048.exe"

View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/QmTshtHBEV9dh7wFtaQpNUEYHZ3fBpuhSRZqc7k8HwmtPM?filename=ASB32Setup10.exe"
install_wine_bottle speechsdk
wine "${cache}/ASB32Setup10.exe" /silent
add_launcher "c:\Program Files\Games\AcesUpB\AcesUpB.exe"

5
.install/BG Alchemy.sh Normal file
View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/Qma76HXBhmKgMDeHH1XLePsaWzzzLsBS2HRL3c7MVwDokg?filename=BAC32Setup10.exe"
install_wine_bottle speechsdk
wine "${cache}/BAC32Setup10.exe" /silent
add_launcher "c:\Program Files\Games\AlchemyB\AlchemyB.exe"

View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/Qmaq9P9fxdLTEFMGg4mhHrRuUbPg6HgU3eYVJNqZUimHjo?filename=BGB32Setup10.exe"
install_wine_bottle speechsdk
wine "${cache}/BGB32Setup10.exe" /silent
add_launcher "c:\Program Files\Games\BattleshipB\BGBattleship.exe"

5
.install/BG Boggle.sh Normal file
View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/QmQwWiJw9hDiPdfwDyL4XepeoD66ztVRi3HwbSjFFP4CNg?filename=BGB32Setup10a.exe"
install_wine_bottle speechsdk
wine "${cache}/BGB32Setup10a.exe" /silent
add_launcher "c:\Program Files\Games\BoggleB\BoggleB.exe"

5
.install/BG Boxes.sh Normal file
View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/QmRn21tREXxXVSaDe9i54zEPzPSespjJAFBqu4DWocuagD?filename=BXB32Setup10.exe"
install_wine_bottle speechsdk
wine "${cache}/BXB32Setup10.exe" /silent
add_launcher "c:\Program Files\Games\BoxesB\BoxesB.exe"

5
.install/BG Brainiac.sh Normal file
View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/QmWEdmTkQsjSqBgWUgnDajMf8QvQBbEF4Nxo6mhkXYzBtQ?filename=BRN32Setup10a.exe"
install_wine_bottle speechsdk
wine "${cache}/BRN32Setup10a.exe" /silent
add_launcher "c:\Program Files\Games\BrainiacB\BrainiacB.exe"

View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/QmT2yBpU5Jqna18FxYtyWzi4xMGAY9PyJWStAskxCHqBDw?filename=BGC32Setup10d.exe"
install_wine_bottle speechsdk
wine "${cache}/BGC32Setup10d.exe" /silent
add_launcher "c:\Program Files\Games\ChessB\BGChess.exe"

View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/QmU486SssAdM7kPKwDyAKDLQs3Z92bG6wFjaLhzqDZCxAF?filename=BCB32Setup10.exe"
install_wine_bottle speechsdk
wine "${cache}/BCB32Setup10.exe" /silent
add_launcher "c:\Program Files\Games\CodeBreakerB\BGCodeBreaker.exe"

View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/QmbRUiknnNcibWD3NwK4DFZGNHWswBgsFidUzU1TFGJ5Ra?filename=BCS32Setup10.exe"
install_wine_bottle speechsdk
wine "${cache}/BCS32Setup10.exe" /silent
add_launcher "c:\Program Files\Games\CribSolB\CribSolB.exe"

5
.install/BG Cribbage.sh Normal file
View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/QmeFud3EPHy7wQe8UENgvh96HdAazEkwqA2AutCNkYvB3t?filename=BGC32Setup12e.exe"
install_wine_bottle speechsdk
wine "${cache}/BGC32Setup12e.exe" /silent
add_launcher "c:\Program Files\Games\CribbageB\CribbageB.exe"

View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/QmZQGY9CeATEiWrSqsKBz4AN6jPgQuvbBZSpQoLiMjoDr2?filename=BGX32Setup10h.exe"
install_wine_bottle speechsdk
wine "${cache}/BGX32Setup10h.exe" /silent
add_launcher "c:\Program Files\Games\CrosswordB\CrosswordB.exe"

View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/QmZQGY9CeATEiWrSqsKBz4AN6jPgQuvbBZSpQoLiMjoDr2?filename=BDD32Setup.exe"
install_wine_bottle speechsdk
wine "${cache}/BDD32Setup.exe" /silent
add_launcher "c:\Program Files\Games\DrawDominoesB\DrawDominoesB.exe"

View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/QmWWZByYL5CsDSi6gQLGcMyBL7zqD5hWXbPXJr3shRt5AQ?filename=ESB32Setup10.exe"
install_wine_bottle speechsdk
wine "${cache}/ESB32Setup10.exe" /silent
add_launcher "c:\Program Files\Games\ElevensB\ElevensB.exe"

View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/QmSZt6dz7WQkNrFBmYq9n4WdYrrZyQAebTBPo46uHqCuNi?filename=BFD32Setup10.exe"
install_wine_bottle speechsdk
wine "${cache}/BFD32Setup10.exe" /silent
add_launcher "c:\Program Files\Games\FivesDominoesB\FivesDominoesB.exe"

View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/QmVfQMMnqTD9Zm8Xwv7rGrUTdS9FXToq7Fv6wtQQVgbQGR?filename=BGF32Setup20.exe"
install_wine_bottle speechsdk
wine "${cache}/BGF32Setup20.exe" /silent
add_launcher "c:\Program Files\Games\FreecellB\FreecellB.exe"

View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/QmfAp9EYou1pndLwYSdpYdUCHBv2DR94oFccQh1ii9JVLD?filename=GSB32Setup10a.exe"
install_wine_bottle speechsdk
wine "${cache}/GSB32Setup10a.exe" /silent
add_launcher "c:\Program Files\Games\GolfSolitaireB\GolfSolitaireB.exe"

5
.install/BG Hangman.sh Normal file
View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/QmXTPMmvw7JE2eLuPBLGSpkZqUn12TX7QEQZbX8qtp7GBx?filename=HMB32Setup10.exe"
install_wine_bottle speechsdk
wine "${cache}/HMB32Setup10.exe" /silent
add_launcher "c:\Program Files\Games\HangmanB\HangmanB.exe"

5
.install/BG Hearts.sh Normal file
View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/QmdU5ag1PRjvG28wNX7aNuJqZSVxaqEEKjgG6GoRoDT8k4?filename=BGH32Setup10b.exe"
install_wine_bottle speechsdk
wine "${cache}/${BGH32Setup10b.exe}" /silent
add_launcher "c:\Program Files\Games\HeartsB\HeartsB.exe"

View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/QmctBDvhQWwER94LvgauR7sMDxv9D1mS9cToV47orTCdzU?filename=BGK32Setup10b.exe"
install_wine_bottle speechsdk
wine "${cache}/BGK32Setup10b.exe" /silent
add_launcher "c:\Program Files\Games\KlondikeB\KlondikeB.exe"

5
.install/BG LAP.sh Normal file
View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/Qma5WeCC9B2P5abRGX9nGYV8Zi9F8vfCCr4ehejP2bgmNm?filename=LAP32Setup10.exe"
install_wine_bottle speechsdk
wine "${cache}/LAP32Setup10.exe" /silent
add_launcher "c:\Program Files\Games\LAP\LAP.exe"

View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/QmP6cwMbirbBqAaG9JLfNRnD2dvJfh6nq74kfwxs5hN2RQ?filename=BMM32Setup10.exe"
install_wine_bottle speechsdk
wine "${cache}/BMM32Setup10.exe" /silent
add_launcher "c:\Program Files\Games\MastermindB\BGMasterMind.exe"

View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/QmRa54HroWjwxHYfKr6hdmP34sHW5G3ecuzcjMA5UBBVKa?filename=MSB32Setup10.exe"
install_wine_bottle speechsdk
wine "${cache}/MSB32Setup10.exe" /silent
add_launcher "c:\Program Files\Games\MinesweeperB\MinesweeperB.exe"

View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/Qmb7eGTMDgiaDC9muMW9n8bHoistGcNm1VgHc6sr7dRyHU?filename=BNW32Setup10a.exe"
install_wine_bottle speechsdk
wine "${cache}/BNW32Setup10a.exe" /silent
add_launcher "c:\Program Files\Games\NomWhistB\NomWhistB.exe"

View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/QmXKvQ6WNNSnDiSyYmvAhZXVdALnuhUGK7dSMQVkQNReJr?filename=BPS32Setup10c.exe"
install_wine_bottle speechsdk
wine "${cache}/BPS32Setup10c.exe" /silent
add_launcher "c:\Program Files\Games\PenguinB\PenguinB.exe"

View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/QmPLv74LiDgVGuiGhu9HuPhx3uoMm9QyCYk6jgeFUHjj3S?filename=BPS32Setup10.exe"
install_wine_bottle speechsdk
wine "${cache}/BPS32Setup10.exe" /silent
add_launcher "c:\Program Files\Games\PokerSolB\PokerSolB.exe"

View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/QmaqXaBKD3xY2smhU2LcejXRTPnWZHqaTW9se8yRepLsHu?filename=PSB32Setup10a.exe"
install_wine_bottle speechsdk
wine "${cache}/PSB32Setup10a.exe" /silent
add_launcher "c:\Program Files\Games\PyramidB\PyramidB.exe"

View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/QmSxJs2MiLQ61Fgx6vCpSD7GmQziLiCEU3sZ3mgWc7RsJ8?filename=BSS32Setup10.exe"
install_wine_bottle speechsdk
wine "${cache}/BSS32Setup10.exe" /silent
add_launcher "c:\Program Files\Games\ScorpionB\ScorpionB.exe"

5
.install/BG Scrabble.sh Normal file
View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/QmVrwyPdJBnmc4wLW7oT2hexxXnXxs8bA7gfiqbnJsWJ16?filename=BGS32Setup20.exe"
install_wine_bottle speechsdk
wine "${cache}/BGS32Setup20.exe" /silent
add_launcher "c:\Program Files\Games\ScrabbleB\ScrabbleB.exe"

5
.install/BG Simon.sh Normal file
View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/QmXtBCqB6VCFPaDYuLaFNP1BDtJSLCJdJZzgm61zMtrsQt?filename=BGS32Setup10.exe"
install_wine_bottle speechsdk
wine "${cache}/BGS32Setup10.exe" /silent
add_launcher "c:\Program Files\Games\SimonB\SimonB.exe"

View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/QmdWBaDnLVbKCJSpiqF675ew6nJ6KHUVXA5FEH3t3E7UAu?filename=SPB32Setup10b.exe"
install_wine_bottle speechsdk
wine "${cache}/SPB32Setup10b.exe" /silent
add_launcher "c:\Program Files\Games\SpiderB\SpiderB.exe"

5
.install/BG Sudoku.sh Normal file
View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/QmXCAHEVRGZBc8t45Jgn2vkxicwF9Aox6yz9XrQBdkv7WY?filename=SDB32Setup10a.exe"
install_wine_bottle speechsdk
wine "${cache}/SDB32Setup10a.exe" /silent
add_launcher "c:\Program Files\Games\SudokuB\SudokuB.exe"

View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/QmYoiFQ6JuSXfZfZXT3SQDsYzMWLBu9rW9yivi1xiPjqZx?filename=SDB32Setup10a.exe"
install_wine_bottle speechsdk
wine "${cache}/SDB32Setup10a.exe" /silent
add_launcher "c:\Program Files\Games\TabSolB\BGTabSol.exe"

View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/QmWJGvSR6iaQfMHM3XuGCkWxx285jkzSDdNSvvk3bSCH8S?filename=TPB32Setup10a.exe"
install_wine_bottle speechsdk
wine "${cache}/TPB32Setup10a.exe" /silent
add_launcher "c:\Program Files\Games\TriPeaksB\TriPeaksB.exe"

View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/QmWAk2TMHMvW6Kjc1sZBEPsxmCNHfY3nF1K723PCqaTa57?filename=T20B32Setup10.exe"
install_wine_bottle speechsdk
wine "${cache}/T20B32Setup10.exe" /silent
add_launcher "c:\Program Files\Games\T20CricketB\CricketB.exe"

5
.install/BG Uno.sh Normal file
View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/QmVsfPkebSoTDwYSXF1n7y4P9eGJTgTcGXdrEjpcV8A3Dv?filename=BGU32Setup11a.exe"
install_wine_bottle speechsdk
wine "${cache}/BGU32Setup11a.exe" /silent
add_launcher "c:\Program Files\Games\UnoB\UnoB.exe"

View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/QmXtR49EZShyj15Tc9CXQpBYVmKNfZpp4515Epm16bviuH?filename=BWB32Setup10.exe"
install_wine_bottle speechsdk
wine "${cache}/BWB32Setup10.exe" /silent
add_launcher "c:\Program Files\Games\WordBuilderB\WordBuilderB.exe"

View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/QmfTgfRzd4JMRqKSfDiz76iMorkaG19BqH1K7nRCCDwo4H?filename=WCB32Setup10a.exe"
install_wine_bottle speechsdk
wine "${cache}/WCB32Setup10a.exe" /silent
add_launcher "c:\Program Files\Games\WordCandyB\WordCandyB.exe"

View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/QmYQWZZifzKJSuVRCC1SabwRmEDz95GdFvbzRvsBMmTt6e?filename=BWJ32Setup10.exe"
install_wine_bottle speechsdk
wine "${cache}/BWJ32Setup10.exe" /silent
add_launcher "c:\Program Files\Games\WordJumbleB\WordJumbleB.exe"

5
.install/BG Word Maze.sh Normal file
View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/QmXPtj5PkVZjXpU3m6FAfm8MwVL6bQCvhEDoR385u6FGTL?filename=BWM32Setup10.exe"
install_wine_bottle speechsdk
wine "${cache}/BWM32Setup10.exe" /silent
add_launcher "c:\Program Files\Games\WordMazeB\WordMazeB.exe"

View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/QmZp73ARDPqgnCz7zxfKeBHjNoHrgZSgg2NdQZR2sMyZGD?filename=WSB32Setup10.exe"
install_wine_bottle speechsdk
wine "${cache}/WSB32Setup10.exe" /silent
add_launcher "c:\Program Files\Games\WordSolitaireB\WordSolitaireB.exe"

View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/QmWWZFXVHNtmNkH55oermWWtrMcQ8qVqL687B7kGFyeezq?filename=WTB32Setup10a.exe"
install_wine_bottle speechsdk
wine "${cache}/WTB32Setup10a.exe" /silent
add_launcher "c:\Program Files\Games\WordTargetB\WordTargetB.exe"

View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/QmdicAVDegDktY3euVAC2PPn4YBGz96KedxYXNe4WDQaoq?filename=BWY32Setup10.exe"
install_wine_bottle speechsdk
wine "${cache}/BWY32Setup10.exe" /silent
add_launcher "c:\Program Files\Games\WordYahtzeeB\BGWordYahtzee.exe"

5
.install/BG Yahtzee.sh Normal file
View File

@ -0,0 +1,5 @@
export WINEARCH="win32"
download "${ipfsGateway}/ipfs/QmZebvkKgFAADnb1cgW6Bz7wTYdUh82X61QdtW66KcvmpF?filename=BGY32Setup10a.exe"
install_wine_bottle speechsdk
wine "${cache}/BGY32Setup10a.exe" /silent
add_launcher "c:\Program Files\Games\yahtzeeB\BGYahtzee.exe"

18
.install/Balatro.sh Normal file
View File

@ -0,0 +1,18 @@
download "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd64.dll" "https://stormgames.wolfe.casa/downloads/Tolk.dll" "https://github.com/Aurelius7309/BlackHole/releases/download/0.3.1/BlackHole-Release.zip"
export WINEARCH=win64
export winVer="win10"
install_wine_bottle
get_steam "2379780" "https://store.steampowered.com/app/2379780/Balatro/"
mkdir -p "$WINEPREFIX/drive_c/users/$USER/AppData/Roaming/Balatro/Mods"
unzip -d "$WINEPREFIX/drive_c/users/$USER/AppData/Roaming/Balatro" "$cache/BlackHole-Release.zip"
pushd "$WINEPREFIX/drive_c/users/$USER/AppData/Roaming/Balatro/Mods"
(cat mod_urls.txt ; echo) | while read -r x ; do
git clone "$x"
done
cp -v BlackHole/bin/*.dll "$WINEPREFIX/drive_c/Program Files/Balatro"
cp -v "$cache/Tolk.dll" "$WINEPREFIX/drive_c/Program Files/Balatro/tolk.dll"
cp -v "$cache/Tolk.dll" BlackHole/bin/tolk.dll
cp -v "$cache/nvda2speechd64.dll" "$WINEPREFIX/drive_c/Program Files/Balatro/nvdaControllerClient64.dll"
cp -v "$cache/nvda2speechd64.dll" BlackHole/bin/nvdaControllerClient64.dll
cp -v ../version.dll "$WINEPREFIX/drive_c/Program Files/Balatro"
add_launcher 'c:\Program Files\Balatro\Balatro.exe' 'export WINEDLLOVERRIDES=version=n,b'

6
.install/Battle Zone.sh Normal file
View File

@ -0,0 +1,6 @@
download "https://www.agarchive.net/games/gameMadnessInteractive/battle%20zone%2013.5%20setup.exe"
export winVer="win7"
install_wine_bottle speechsdk
wine "${cache}/battle zone 13.5 setup.exe" /silent
find "${WINEPREFIX}" -type f -name "nvdaControllerClient32.dll" -exec rm -fv "{}" \;
add_launcher "c:\Program Files\Battle Zone\ss.exe"

View File

@ -0,0 +1,7 @@
download "http://files.tunmi13.com/projects_archive/bth.zip"
export bottle="tunmi13"
export winVer="win7"
install_wine_bottle speechsdk
unzip -d "$WINEPREFIX/drive_c/Program Files/$game" "${cache}/bth.zip"
find "${WINEPREFIX}" -type f -name "nvdaControllerClient32.dll" -exec rm -fv "{}" \;
add_launcher "c:\Program Files\\${game}\bth.exe"

View File

@ -0,0 +1,9 @@
get_installer "bf.zip" "https://tunmi13.itch.io/battlefield-2d"
download "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd64.dll"
export WINEARCH=win64
export winVer="win8"
export bottle=tunmi13-64bit
install_wine_bottle
unzip -d "$WINEPREFIX/drive_c/Program Files/" "${cache}/bf.zip"
find "${WINEPREFIX}/drive_c/Program Files/bf" -type f -name 'nvdaControllerClient64.dll' -exec cp -v "${cache}/nvda2speechd64.dll" "{}" \;
add_launcher "c:\Program Files\bf\bf.exe"

8
.install/Beatstar Pro.sh Normal file
View File

@ -0,0 +1,8 @@
#
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
export winVer="win7"
install_wine_bottle mf
unzip -d "$WINEPREFIX/drive_c/Program Files/Beatstar Pro" "${cache}/beat_windows.zip"
add_launcher "c:\Program Files\Beatstar Pro\beatstar.exe"

11
.install/Blind Drive.sh Normal file
View File

@ -0,0 +1,11 @@
get_installer "Blind Drive 1.1.112.00i-win64.zip" "https://lofipeople.itch.io/blind-drive"
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/blind-drive" "${cache}/Blind Drive 1.1.112.00i-win64.zip"
# Weird work around to get keyboard working.
winetricks -q usetakefocus=y
winetricks -q usetakefocus=n
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient.dll' -exec cp -v "${cache}/nvda2speechd64.dll" "{}" \;
add_launcher "c:\Program Files\blind-drive\Blind Drive.exe"

4
.install/Bloodshed.sh Normal file
View File

@ -0,0 +1,4 @@
download "${ipfsGateway}/ipfs/QmcTCTMep4zp5zTw8ZaXYpjtu9inNPn8bNzwhW6cX97egw?filename=bloodshed.exe"
install_wine_bottle speechsdk
cp "${cache}/bloodshed.exe" "$WINEPREFIX/drive_c/Program Files/"
add_launcher "c:\Program Files\bloodshed.exe"

View File

@ -0,0 +1,7 @@
download "https://www.nyanchangames.com/softs/nn2_setup.exe"
export bottle="nyanchan"
export winVer="win7"
install_wine_bottle
7z x -o"$WINEPREFIX/drive_c/nyanchangame/bk2" "${cache}/nn2_setup.exe"
find "${WINEPREFIX}/drive_c/nyanchangame/bk2/" -type f -name 'nvdaControllerClient.dll' -exec rm -v "{}" \;
add_launcher "c:\nyanchangame\bk2\play.exe"

View File

@ -0,0 +1,22 @@
if [[ ! -r "${cache}/bk3-dict.dat" ]]; then
echo "http://www.nyanchangames.com/order/bk3translate.html" | xclip -selection clipboard 2> /dev/null
dialog --backtitle "Audiogame manager" --msgbox "If you would like English translations, the file is available at http://www.nyanchangames.com/order/bk3translate.html. Save the dict.dat file to your Downloads or Desktop directory. For convenience the url has been copied to your clipboard. Press enter when you are ready to continue." -1 -1 --stdout
fi
dictFile=""
for i in "${HOME}/Downloads/dict.dat" "${HOME}/Desktop/dict.dat" ; do
if [[ -r "$i" ]]; then
dictFile="$i"
fi
done
if [[ "${#dictFile}" -ge 3 ]] && [[ ! -r "${cache}/bk3-dict.dat" ]]; then
dialog --backtitle "Audiogame manager" --yesno "Possible English translation file found at $dictFile. Would you like to use it for BK3?" -1 -1 --stdout && cp -v "$dictFile" "${cache}/bk3-dict.dat"
fi
download "https://www.nyanchangames.com/softs/nn3_setup.exe" "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd" "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd32.dll"
export bottle="nyanchan"
export winVer="win7"
install_wine_bottle
cp "${cache}/nvda2speechd" "${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd"
chmod +x "${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd"
7z x -o"$WINEPREFIX/drive_c/nyanchangame/bk3" "${cache}/nn3_setup.exe"
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient.dll' -exec cp -v "${cache}/nvda2speechd32.dll" "{}" \;
add_launcher "c:\nyanchangame\bk3\play.exe"

View File

@ -0,0 +1,7 @@
download "https://www.nyanchangames.com/softs/nn_setup.exe"
export bottle="nyanchan"
export winVer="win7"
install_wine_bottle
7z x -o"$WINEPREFIX/drive_c/nyanchangame/bk" "${cache}/nn_setup.exe"
find "${WINEPREFIX}/drive_c/nyanchangame/bk/" -type f -name 'nvdaControllerClient.dll' -exec rm -v "{}" \;
add_launcher "c:\nyanchangame\bk\play.exe"

7
.install/Bombercats.sh Normal file
View File

@ -0,0 +1,7 @@
download "http://oriolgomez.com/games/bombercats_en.zip"
export bottle="oriol-gomez"
export winVer="win7"
install_wine_bottle
unzip -d "$WINEPREFIX/drive_c/Program Files/bomvercats" "${cache}/bombercats_en.zip"
find "${WINEPREFIX}" -type f -name "nvdaControllerClient32.dll" -exec rm -fv "{}" \;
add_launcher "c:\Program Files\bomvercats\game.exe"

View File

@ -0,0 +1,5 @@
download "http://www.masonasons.me/softs/BopItEmulator3.1PasswordIsBopIt.7z"
export winVer="win7"
install_wine_bottle
7z x -o"$WINEPREFIX/drive_c/Program Files/Bop It" "${cache}/BopItEmulator3.1PasswordIsBopIt.7z" -pBopIt
add_launcher "c:\Program Files\Bop It\bop.exe"

View File

@ -0,0 +1,7 @@
export WINEARCH=win64
get_installer "bounce_bounce.rar" "https://kavyapriya.itch.io/bounce-bounce"
download "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd64.dll"
install_wine_bottle
unrar x "${cache}/bounce_bounce.rar" -op"$WINEPREFIX/drive_c/Program Files"
find "${WINEPREFIX}/drive_c/Program Files/bounce_bounce" -type f -name 'nvdaControllerClient64.dll' -exec cp -v "${cache}/nvda2speechd64.dll" "{}" \;
add_launcher "c:\Program Files\bounce_bounce\bounce.exe"

View File

@ -0,0 +1,7 @@
#
download "https://hirotaka2014.sakura.ne.jp/mh0406/game/breed_memorial.zip" "${nvdaControllerClientDll}"
export winVer="win7"
install_wine_bottle cjkfonts speechsdk
unzip -d "$WINEPREFIX/drive_c/Program Files/" "${cache}/breed_memorial.zip"
#find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvdaControllerClient32.dll" "{}" \;
add_launcher "c:\Program Files\Breed memorial\Breed memorial\breed memorial.exe"

View File

@ -0,0 +1,8 @@
download "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd64.dll"
get_installer "breu2.zip" "https://breu.itch.io/shadowhunt"
export WINEARCH=win64
export winVer="win8"
install_wine_bottle
unzip -d "$WINEPREFIX/drive_c/Program Files/" "${cache}/breu2.zip"
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient.dll' -exec cp -v "${cache}/nvda2speechd64.dll" "{}" \;
add_launcher "c:\Program Files\breu2\breu2.exe"

7
.install/Castaways 2.sh Normal file
View File

@ -0,0 +1,7 @@
download "http://www.kaldobsky.com/audiogames/castaways2beta.zip"
export bottle="aprone"
export winVer="win7"
install_wine_bottle vb6run dx8vb speechsdk
unzip -d "$WINEPREFIX/drive_c/Program Files/castaways2" "${cache}/castaways2beta.zip"
wine "c:\Program Files\castaways2\Checkup.exe" /verysilent
add_launcher "c:\Program Files\castaways2\Castaways2.exe"

7
.install/Castaways.sh Normal file
View File

@ -0,0 +1,7 @@
download "https://www.kaldobsky.com/audiogames/castaways.zip"
export bottle="aprone"
export winVer="win7"
install_wine_bottle vb6run dx8vb speechsdk
unzip -d "$WINEPREFIX/drive_c/Program Files/castaways" "${cache}/castaways.zip"
wine "c:\Program Files\castaways\Checkup.exe" /verysilent
add_launcher "c:\Program Files\castaways\Castaways.exe"

View File

@ -0,0 +1,7 @@
download "http://files.tunmi13.com/projects_archive/coth.zip"
export bottle="tunmi13"
export winVer="win7"
install_wine_bottle speechsdk
unzip -d "$WINEPREFIX/drive_c/Program Files/$game" "${cache}/coth.zip"
find "${WINEPREFIX}" -type f -name "nvdaControllerClient32.dll" -exec rm -fv "{}" \;
add_launcher "c:\Program Files\\${game}\game.exe"

View File

@ -0,0 +1,12 @@
download "https://download.dracoent.com/Windows/ChangeReactionSetup.exe"
export bottle="draconis"
export winVer="win7"
install_wine_bottle vb6run dx8vb speechsdk quartz
cp -v "${cache}/ChangeReactionSetup.exe" "$WINEPREFIX/drive_c/windows/temp/"
wine "c:/windows/temp/ChangeReactionSetup.exe" /sp- /silent
rm -fv "$WINEPREFIX/drive_c/windows/temp/ChangeReactionSetup.exe"
# warning warning warning: Do not change location, or installer will not function.
# FIXME: Hacky, but it works. Install dotnet20 by itself so it actually doesn't hang.
winetricks -q dotnet20
${wine}server -k # Damn you, dotnet.
add_launcher "c:\Program Files\Draconis Entertainment\Change Reaction\ChangeReactionGui.exe"

4
.install/Chillingham.sh Normal file
View File

@ -0,0 +1,4 @@
download "https://stormgames.wolfe.casa/downloads/chillingham.zip"
install_wine_bottle vb6run mfc42
unzip -d "$WINEPREFIX/drive_c/Program Files" "$cache/chillingham.zip"
add_launcher "c:\Program Files\chillingham\Chillingham.exe"

View File

@ -0,0 +1,9 @@
#
# Freezes at menu
download "https://www.agarchive.net/games/XSight/chopper%20challenge%20setup.exe"
install_wine_bottle vb6run dx8vb speechsdk
wine "${cache}/chopper challenge setup.exe" /silent &
xdotool sleep 5 key y 2> /dev/null
${wine}server -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"

View File

@ -0,0 +1,7 @@
export WINEARCH=win64
export winVer="win7"
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" "{}" \;
add_launcher "c:\Program Files\ChristmasChaos\ChristmasChaos.exe"

View File

@ -0,0 +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"

View File

@ -0,0 +1,7 @@
get_installer "clashes_of_the_sky.zip" "https://tunmi13.itch.io/clashes-of-the-sky"
export bottle="tunmi13"
export winVer="win7"
install_wine_bottle speechsdk
unzip -d "$WINEPREFIX/drive_c/Program Files" "${cache}/clashes_of_the_sky.zip"
find "${WINEPREFIX}" -type f -name "nvdaControllerClient32.dll" -exec rm -fv "{}" \;
add_launcher 'c:\Program Files\clashes_of_the_sky\clash.exe'

11
.install/Code Dungeon.sh Normal file
View File

@ -0,0 +1,11 @@
get_installer "codedungeon-win-64.zip" "https://stealcase.itch.io/codedungeon"
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/code-dungeon" "${cache}/codedungeon-win-64.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\code-dungeon\Code Dungeon.exe"

View File

@ -0,0 +1,7 @@
export WINEARCH=win64
export winVer="win7"
download "https://www.dropbox.com/s/v55q7t9n84otmcd/coin%20collector.rar?dl=1" "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd64.dll"
install_wine_bottle
unrar x "$cache/coin collector.rar" -op"$WINEPREFIX/drive_c/Program Files"
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"

8
.install/Conjury.sh Normal file
View File

@ -0,0 +1,8 @@
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'

View File

@ -0,0 +1,6 @@
#
export winVer="win7"
download "https://renovagames.com/bc/BC-Setup.exe"
install_wine_bottle cjkfonts speechsdk
wine "${cache}/BC-Setup.exe" /silent
#add_launcher "c:\Program Files\"

View File

@ -0,0 +1,7 @@
export WINEARCH=win64
export winVer="win7"
download "https://samtupy.com/games/cm.zip" "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd64.dll"
install_wine_bottle
unzip -d "$WINEPREFIX/drive_c/Program Files/ConstantMotion" "$cache/cm.zip"
find "$WINEPREFIX/drive_c/Program Files/ConstantMotion" -name "nvdaControllerClient64.dll" -exec cp -v "$cache/nvda2speechd64.dll" "{}" \;
add_launcher 'c:\Program Files\ConstantMotion\cm.exe'

View File

@ -0,0 +1,6 @@
export bottle="oriol-gomez"
export winVer="win7"
download "http://oriolgomez.com/games/copter_en.zip"
install_wine_bottle
unzip -d "$WINEPREFIX/drive_c/Program Files/copter mission" "${cache}/copter_en.zip"
add_launcher "c:\Program Files\copter mission\game.exe"

8
.install/Crazy Party.sh Normal file
View File

@ -0,0 +1,8 @@
export WINEARCH=win64
export winVer="win8"
download "http://pragmapragma.free.fr/crazy-party/Crazy-Party-beta82.zip" "https://stormgames.wolfe.casa/downloads/Tolk.dll" "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd64.dll"
install_wine_bottle
unzip -d "$WINEPREFIX/drive_c/Program Files" "${cache}/Crazy-Party-beta82.zip"
find "${WINEPREFIX}" -type f -name 'Tolk.dll' -exec cp -v "${cache}/Tolk.dll" "{}" \;
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient64.dll' -exec cp -v "${cache}/nvda2speechd64.dll" "{}" \;
add_launcher "c:\Program Files\Crazy-Party-beta82\Crazy Party.exe"

4
.install/Crazy Tennis.sh Normal file
View File

@ -0,0 +1,4 @@
download "https://www.agarchive.net/games/VIP/crazy%20tennis%20setup.exe"
install_wine_bottle speechsdk
wine "${cache}/crazy tennis setup.exe" /sp- /silent
add_launcher "c:\Program Files\Crazytennis\crazytennis.exe"

7
.install/Crime Hunter.sh Normal file
View File

@ -0,0 +1,7 @@
export WINEARCH=win64
export winVer="win7"
download "http://masonasons.me/softs/CH2.0Win.zip" "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd64.dll"
install_wine_bottle
unzip -d "$WINEPREFIX/drive_c/Program Files/crime-hunter" "${cache}/CH2.0Win.zip"
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient64.dll' -exec cp -v "${cache}/nvda2speechd64.dll" "{}" \;
add_launcher "c:\Program Files\crime-hunter\ch.exe"

9
.install/Danger City.sh Normal file
View File

@ -0,0 +1,9 @@
download "https://www.agarchive.net/games/xl/DangerCityBeta2.exe"
install_wine_bottle vb6run dx8vb
wine "$cache/DangerCityBeta2.exe" /silent &
xdotool sleep 15 key --clearmodifiers --delay 200 Return 2> /dev/null
xdotool sleep 5 key --clearmodifiers --delay 200 Return 2> /dev/null
xdotool sleep 5key --clearmodifiers --delay 200 Return 2> /dev/null
xdotool sleep 10 --clearmodifiers --delay 200 Return 2> /dev/null
${wine}server -w
add_launcher 'c:\Program Files\Danger City\dc.exe'

View File

@ -0,0 +1,7 @@
download "http://oriolgomez.com/games/wheel_en.zip"
export bottle="oriol-gomez"
export winVer="win7"
install_wine_bottle speechsdk
unzip -d "$WINEPREFIX/drive_c/Program Files/danger on the wheel" "${cache}/wheel_en.zip"
find "${WINEPREFIX}" -type f -name "nvdaControllerClient32.dll" -exec rm -fv "{}" \;
add_launcher "c:\Program Files\danger on the wheel\game.exe"

View File

@ -0,0 +1,6 @@
#
export bottle=pbgames
download "https://www.agarchive.net/games/pb/Dark-Destroyer-Setup.exe"
install_wine_bottle speechsdk ie6
wine "$cache/Dark-Destroyer-Setup.exe" /silent
add_launcher 'c:\Pbgames\Dark_destroyer\darkdestroyer.exe'

View File

@ -0,0 +1,8 @@
export bottle="aprone"
export winVer="win7"
export winetricksSettings="vd=1024x768"
download "https://kaldobsky.com/audiogames/Daytona.zip"
install_wine_bottle vb6run dx8vb quartz corefonts
unzip -d "$WINEPREFIX/drive_c/Program Files/daytona" "${cache}/Daytona.zip"
wine 'c:\Program Files\daytona\checkup.exe' /verysilent
add_launcher "c:\Program Files\daytona\Daytona.exe"

View File

@ -0,0 +1,6 @@
export bottle="oriol-gomez"
export winVer="win7"
download "http://oriolgomez.com/games/road_en.zip"
install_wine_bottle
unzip -d "$WINEPREFIX/drive_c/Program Files/death on the road" "${cache}/road_en.zip"
add_launcher "c:\Program Files\death on the road\game.exe"

6
.install/Deathmatch.sh Normal file
View File

@ -0,0 +1,6 @@
export winVer="win7"
export winetricksSettings="vd=1024x768"
download "https://www.agarchive.net/games/realitySoftware/death%20match%20project%20alpha%20setup.exe"
install_wine_bottle quartz speechsdk
wine "${cache}/death match project alpha setup.exe" /silent
add_launcher "c:\Program Files\reality software\death match project alpha\dm1.exe"

View File

@ -0,0 +1,9 @@
export bottle="aprone"
export winVer="win7"
export winetricksSettings="vd=1024x768"
download "https://www.kaldobsky.com/audiogames/dogwhohatestoast.zip"
install_wine_bottle vb6run dx8vb quartz speechsdk corefonts
unzip -d "$WINEPREFIX/drive_c/Program Files/dogwhohatestoast" "${cache}/dogwhohatestoast.zip"
wine 'c:\Program Files\dogwhohatestoast\checkup.exe' /verysilent
add_launcher "c:\Program Files\dogwhohatestoast\DogwhoHatesToast.exe"
echo "Note: Dog who Hates Toast installed. Once you start the game, you must press tab until you hear sapi on to get speech." >&2

6
.install/Dragon Pong.sh Normal file
View File

@ -0,0 +1,6 @@
#
export winVer="win7"
install_wine_bottle
download "https://www.iamtalon.me/games/dragonpong.zip"
unzip -d "$WINEPREFIX/drive_c/Program Files" "${cache}/dragonpong.zip"
add_launcher "c:\Program Files\dragonpong\DragonPong.exe"

9
.install/Dreamland.sh Normal file
View File

@ -0,0 +1,9 @@
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"
install_wine_bottle vb6run dx8vb speechsdk
wine "${cache}/dhsetup.exe" /silent
add_launcher "c:\Program Files\Lworks\Duck Hunt\duckhunt.exe"

Some files were not shown because too many files have changed in this diff Show More