Compare commits

..

69 Commits

Author SHA1 Message Date
stormdragon2976
54e3ef8190 Merge branch 'testing', latest games. 2023-04-05 22:42:29 -04:00
stormdragon2976
2472ea640a Merge branch 'testing' latest fixes and instructions. 2023-03-16 16:52:38 -04:00
stormdragon2976
43005a75b6 Merge branch 'testing' introduces game specific wine versions. Breaks
Mac compatibility. Please see the wiki for an alternative option.
2023-03-02 00:58:18 -05:00
stormdragon2976
7359be180b Latest version of README merged to master. 2023-02-10 09:47:05 -05:00
stormdragon2976
fbba315e1b Merge branch 'testing', latest stable code and new games. 2023-01-23 16:19:44 -05:00
stormdragon2976
6b69da95c0 Merge branch 'testing', latest code and bug fixes. 2023-01-03 19:09:26 -05:00
stormdragon2976
22e4f89a06 Merge branch 'testing' latest code and bug fixes. Testing branch is
getting ready to do something very experimental.
2022-12-25 13:42:06 -05:00
Storm Dragon
50bb4a5383 Merge branch 'testing' latest code and bug fixes. 2022-11-10 18:16:48 -05:00
Storm Dragon
c5d88f5215 Merge branch 'testing' latest games and fixes. 2022-10-30 14:46:35 -04:00
Storm Dragon
8b7704167a Merge branch 'testing' latest games and bug fixes. 2022-10-23 19:08:01 -04:00
Storm Dragon
f2cdcaa62a Merge branch 'testing' latest bug fixes. 2022-10-15 18:08:50 -04:00
Storm Dragon
7bd0bb60f4 Merge branch 'testing' updated the README. 2022-10-06 16:46:44 -04:00
Storm Dragon
30803d6066 Merge branch 'testing' forgot to make a change to an installation file
before last merge.
2022-10-06 15:30:47 -04:00
Storm Dragon
90d64278aa Merge branch 'testing'. Things appear to be decently stable now. 2022-10-06 11:56:27 -04:00
Storm Dragon
620b8af135 Merge branch 'testing' 2022-09-19 11:14:10 -04:00
Storm Dragon
e86ddd7935 Merge branch 'testing' latest Crazy Party, beta 78. 2022-08-20 23:06:41 -04:00
Storm Dragon
4cce555b7d Merge branch 'testing' new changes are coming in testing that may cause
instability so checkpointing while it's stable.
2022-08-20 12:24:07 -04:00
Storm Dragon
fa75ba31ca Merge branch 'testing'. This marks the end of binary releases. Everyone
should now be using from git. The binary downloads have been removed.
2022-05-13 13:31:34 -04:00
Storm Dragon
11139ce376 Merge branch 'testing' in preparation for binary release. 2022-03-06 22:36:10 -05:00
Storm Dragon
10f4871bee Merge branch 'testing' in preparation for binary release. 2022-02-24 10:35:14 -05:00
Storm Dragon
ace9f56ae9 Merge branch 'testing' in preparation for binary release. 2022-02-06 14:36:21 -05:00
Storm Dragon
b290387fa0 Merge branch 'testing' in preparation for binary release. 2022-01-15 00:28:42 -05:00
Storm Dragon
2b436df45d Merge branch 'testing' in preparation for binary release. 2021-12-22 11:40:31 -05:00
Storm Dragon
e091ff036b Merge branch 'testing' in preparation for binary release. 2021-10-24 09:37:39 -04:00
Storm Dragon
4975822ce1 Merge branch 'testing' in preparation for binary release. 2021-09-11 23:54:41 -04:00
Storm Dragon
e0d9a9564d Merge branch 'testing' in preparation for binary release. 2021-08-20 16:58:43 -04:00
Storm Dragon
226c080cd0 Merge branch 'testing' in preparation for binary release. 2021-08-09 00:36:20 -04:00
Storm Dragon
6daad63de4 Merge branch 'testing' in preparation for binary release. 2021-07-23 18:55:45 -04:00
Storm Dragon
e133f7d318 Merge branch 'testing' in preparation for binary release. 2021-07-10 13:38:32 -04:00
Storm Dragon
fe8135ba96 Merge branch 'testing' in preparation for binary release. 2021-07-02 18:58:55 -04:00
Storm Dragon
054d0b2d5e Merge branch 'testing' in preparation for binary release. 2021-06-26 01:50:52 -04:00
Storm Dragon
7b57f8c8d2 Merge branch 'testing' in preparation for binary release. 2021-06-02 21:27:26 -04:00
Storm Dragon
f5b8b26c01 Merge branch 'testing' in preparation for binary release. 2021-05-10 18:01:42 -04:00
Storm Dragon
250498706d Merge branch 'testing' in preparation for binary release. 2021-05-04 12:08:09 -04:00
Storm Dragon
6b9428d2e4 Merge branch 'testing' in preparation for new binary release. 2021-04-28 18:09:25 -04:00
Storm Dragon
18a30297e8 Merge branch 'testing' in preparation for new binary release. 2021-04-27 02:43:04 -04:00
Storm Dragon
4f206e13cc Merge branch 'testing' in preparation for new binary release. 2021-04-24 15:51:56 -04:00
Storm Dragon
6cfdf58e68 Merge branch 'testing' for new binary release. 2021-02-28 14:01:57 -05:00
Storm Dragon
f7623868fc Merge branch 'testing' for new binary release 2021-02-21 17:41:20 -05:00
Storm Dragon
8ff0a56874 Merged to master for new release. 2021-01-16 23:36:07 -05:00
Storm Dragon
4cb854b881 Merge branch 'testing' 2021-01-10 12:47:36 -05:00
Storm Dragon
7052aefbb0 merged the Crazy Party update script to master. 2020-12-22 18:07:32 -05:00
Storm Dragon
fcce6243bf Merged to master. 2020-12-22 11:21:04 -05:00
Storm Dragon
bdeef5b367 Merged to master. 2020-12-20 22:19:26 -05:00
Storm Dragon
017f823544 merged to master. 2020-12-17 09:36:20 -05:00
Storm Dragon
1759661f34 removed duplicate file. 2020-12-13 12:27:24 -05:00
Storm Dragon
a3d5fd5b6a Lots of changes to get Mac support working.Merge branch 'testing' 2020-12-13 12:25:44 -05:00
Storm Dragon
61cf058921 Merged to master. 2020-12-06 12:47:43 -05:00
Storm Dragon
78a037a6b1 Removed install-wine.sh because that project has moved to https://fossil.wolfe.casa/install-audiogame-manager 2020-12-06 12:35:42 -05:00
Storm Dragon
6a4464d692 merged to master. 2020-12-06 12:34:23 -05:00
Storm Dragon
26e53ee2c3 merged to master. 2020-12-01 15:09:54 -05:00
Storm Dragon
8c2e37e135 Merged to master. 2020-11-28 21:31:50 -05:00
Storm Dragon
1bffc6f244 Merged to master. 2020-11-25 12:19:56 -05:00
Storm Dragon
38a64cdb64 Merged to master. 2020-11-24 19:19:44 -05:00
Storm Dragon
609edfe111 Merged to master. 2020-11-17 17:17:59 -05:00
Storm Dragon
881498ea47 merged to master. 2020-11-14 13:50:22 -05:00
Storm Dragon
9f42469b89 Merged to master. 2020-11-08 20:19:44 -05:00
Storm Dragon
8a17939f3c Fixed merge conflict. 2020-11-02 08:30:09 -05:00
Storm Dragon
b5fe20eb2d Latest stable release. 2020-10-26 19:04:54 -04:00
Storm Dragon
793efc694b Merged to master. 2020-10-18 09:21:13 -04:00
Storm Dragon
b7ff93c740 Added realtime flag to games when they launch. This hasn't shown any bad side affects, and may speed up games a bit. 2020-10-11 16:49:14 -04:00
Storm Dragon
fd33349864 Merged changes to master pending updated release. 2020-10-09 20:58:40 -04:00
Storm Dragon
e0b86e0e3c Merged a11y changes to master. 2020-09-29 22:08:10 -04:00
Storm Dragon
c3a7e39def Merged to master. 2020-09-21 06:59:28 -04:00
Storm Dragon
d9489819b7 Changed export for winearch to the installation function. 2020-09-21 06:56:31 -04:00
Storm Dragon
eae85b0299 Merged to master. 2020-09-20 17:43:18 -04:00
Storm Dragon
9532eef142 Merged latest audiogame-manager to master, added voice configuration utility. 2020-09-20 16:07:37 -04:00
Storm Dragon
14093c80ca Merged crazy pparty changes. 2020-09-20 11:23:03 -04:00
Storm Dragon
f46a4efa88 removed games that aren't working with speech. Started a new testing branch to try to get new games working before they are added to the released version. 2020-09-13 11:39:46 -04:00
235 changed files with 3055 additions and 3858 deletions

1
.gitignore vendored
View File

@@ -1,3 +1,2 @@
*.x.c *.x.c
*.x *.x
music/

View File

@@ -1,185 +0,0 @@
#!/usr/bin/env bash
get_bottle() {
# Simple rule: wine64 for everything, wine32 only for speech APIs
local architecture="${1:-win64}"
architecture="${architecture/win/}"
export WINEPREFIX="$HOME/.local/wine${architecture}"
# Set wine executables based on architecture - FOR LAUNCHER
if [[ "$architecture" == "32" ]] && [[ -n "$wine32" ]]; then
# Set environment variables for winetricks compatibility
export WINE="$wine32"
export WINESERVER="$wine32server"
# Also prepend to PATH for regular wine calls
export PATH="${wine32%/*}:$PATH"
# Keep WINEARCH for compatibility
echo "DEBUG: Using managed wine32 for LAUNCHER (WINE=$WINE, PATH updated)"
else
# Clear wine variables for system wine but preserve WINEARCH if set
unset WINE WINESERVER
echo "DEBUG: Using system wine for LAUNCHER (architecture $architecture)"
fi
}
# Set wine environment for installation (called from install_wine_bottle)
set_wine_env() {
local architecture="$1"
if [[ "$architecture" == "32" ]] && [[ -n "$wine32" ]]; then
export WINE="$wine32"
export WINESERVER="$wine32server"
export PATH="${wine32%/*}:$PATH"
# Don't unset WINEARCH - preserve it for proper architecture selection
echo "DEBUG: Set wine32 environment for INSTALLATION (WINE=$WINE, WINEARCH=$WINEARCH)"
else
unset WINE WINESERVER
# Don't unset WINEARCH - preserve it for proper architecture selection
echo "DEBUG: Set system wine environment for INSTALLATION (WINEARCH=$WINEARCH)"
fi
}
# Note: install_wine function removed - we now use system wine with simplified bottle management
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 | agm_progressbox "RHVoice Setup" "Preparing Windows environment for RHVoice..."
echo "Installing RHVoice ${voiceName^}..."
wine "${cache}/${voiceFile}" &
sleep 20 | agm_progressbox "RHVoice Setup" "Installing RHVoice ${voiceName^} voice..."
wineserver -k
}
install_wine_bottle() {
# Simplified - bottles are now pre-created with dependencies
# Just set up the wine environment for game installation
# Determine architecture from WINEARCH or speechsdk dependency
# Preserve existing WINEARCH if already set
if [[ -z "$WINEARCH" ]]; then
if [[ "$*" =~ speechsdk ]]; then
export WINEARCH="win32"
else
export WINEARCH="win64"
fi
fi
# Set architecture for WINEPREFIX path
local architecture
if [[ "$WINEARCH" == "win32" ]]; then
architecture=32
else
architecture=64
fi
export WINEPREFIX="$HOME/.local/wine${architecture}"
# Set wine environment
set_wine_env "$architecture"
echo "Using pre-configured wine${architecture} bottle at $WINEPREFIX"
# Install any additional game-specific dependencies if specified
if [[ $# -gt 0 ]]; then
# Filter out dependencies that are already installed in bottle creation
local depsToInstall=()
local alreadyInstalled="speechsdk corefonts isolate_home"
for dep in "$@"; do
# Skip dependencies already installed during bottle creation
if [[ ! " $alreadyInstalled " =~ " $dep " ]] && [[ ! "$dep" =~ ^win(7|8|10)$ ]]; then
depsToInstall+=("$dep")
fi
done
if [[ ${#depsToInstall[@]} -gt 0 ]]; then
echo "Installing additional dependencies: ${depsToInstall[*]}"
{
env WINE="$WINE" WINESERVER="$WINESERVER" DISPLAY="${DISPLAY:-:0}" winetricks -q isolate_home "${depsToInstall[@]}" "${winVer:-win7}" ${winetricksSettings}
} | agm_progressbox "Wine Setup" "Installing additional dependencies..."
fi
fi
}
add_launcher() {
# Determine architecture from WINEPREFIX path instead of WINEARCH variable
local architecture="win64" # default
if [[ "$WINEPREFIX" =~ wine32 ]]; then
architecture="win32"
fi
local launchSettings="${architecture}|${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
}

View File

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

View File

@@ -1,35 +0,0 @@
# 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
}

View File

@@ -1,442 +0,0 @@
#!/usr/bin/env bash
# Dialog interface wrapper for audiogame-manager
# Automatically switches between dialog (console) and yad (GUI) based on DISPLAY environment
# This provides better accessibility for GUI environments while maintaining console functionality
# Note: dialogType is now detected in the main script before DISPLAY is modified
# This ensures console detection works correctly when AGM sets DISPLAY=":0"
# If dialogType is not set (e.g., when called from standalone scripts), detect it
if [[ -z "$dialogType" ]]; then
if [[ -z "$DISPLAY" ]]; then
dialogType="dialog"
else
dialogType="yad"
fi
fi
# Wrapper function for menu selection
# Usage: agm_menu "title" "backtitle" "text" option1 "description1" option2 "description2" ...
agm_menu() {
local title="$1"
local backTitle="$2"
local text="$3"
shift 3
if [[ "$dialogType" == "yad" ]]; then
# Build yad list format: Display only, then map back to value
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)
# Strip trailing pipes and return the mapped value
if [[ -n "$selectedDescription" ]]; then
selectedDescription="${selectedDescription%|}"
echo "${valueMap["$selectedDescription"]}"
fi
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" \
--no-tags \
--menu "$text" 0 0 0 \
"${dialogArgs[@]}" \
--stdout)
# Return the mapped value
if [[ -n "$selectedDescription" ]]; then
echo "${valueMap["$selectedDescription"]}"
fi
fi
}
# Wrapper function for checklist selection
# Usage: agm_checklist "title" "backtitle" "text" option1 "description1" "status1" option2 "description2" "status2" ...
agm_checklist() {
local title="$1"
local backTitle="$2"
local text="$3"
shift 3
if [[ "$dialogType" == "yad" ]]; then
local yadList=""
while [[ $# -gt 0 ]]; do
local option="$1"
local description="$2"
local status="$3"
local checked="FALSE"
[[ "$status" == "on" ]] && checked="TRUE"
if [[ -n "$yadList" ]]; then
yadList="$yadList\n"
fi
yadList="${yadList}${checked}|${description}|${option}"
shift 3
done
echo -e "$yadList" | yad --list \
--title="$title" \
--text="$text" \
--checklist \
--column="Select:CHK" \
--column="Option" \
--column="Value:HD" \
--hide-column=3 \
--print-column=3 \
--no-headers \
--selectable-labels \
--height=400 \
--width=600 \
--separator=" "
else
local dialogArgs=()
while [[ $# -gt 0 ]]; do
dialogArgs+=("$1" "$2" "$3")
shift 3
done
dialog --backtitle "$backTitle" \
--title "$title" \
--checklist "$text" 0 0 0 \
"${dialogArgs[@]}" \
--stdout
fi
}
# Wrapper function for input dialog
# Usage: agm_inputbox "title" "backtitle" "text" "default_value"
agm_inputbox() {
local title="$1"
local backTitle="$2"
local text="$3"
local defaultValue="$4"
if [[ "$dialogType" == "yad" ]]; then
yad --entry \
--title="$title" \
--text="$text" \
--entry-text="$defaultValue" \
--selectable-labels \
--width=400
else
dialog --backtitle "$backTitle" \
--title "$title" \
--inputbox "$text" 0 0 "$defaultValue" \
--stdout
fi
}
# Wrapper function for message box
# Usage: agm_msgbox "title" "backtitle" "text"
agm_msgbox() {
local title="$1"
local backTitle="$2"
local text="$3"
if [[ "$dialogType" == "yad" ]]; then
echo -e "$text" | yad --text-info \
--title="$title" \
--show-cursor \
--button="OK:0" \
--width=600 \
--height=400
else
dialog --backtitle "$backTitle" \
--title "$title" \
--msgbox "$text" 0 0
fi
}
# Wrapper function for yes/no dialog
# Usage: agm_yesno "title" "backtitle" "text"
agm_yesno() {
local title="$1"
local backTitle="$2"
local text="$3"
if [[ "$dialogType" == "yad" ]]; then
echo -e "$text" | yad --text-info \
--title="$title" \
--show-cursor \
--button="Yes:0" \
--button="No:1" \
--width=600 \
--height=400
else
dialog --backtitle "$backTitle" \
--title "$title" \
--yesno "$text" 0 0
fi
}
# Wrapper function for info box (non-blocking message)
# Usage: agm_infobox "title" "backtitle" "text"
agm_infobox() {
local title="$1"
local backTitle="$2"
local text="$3"
if [[ "$dialogType" == "yad" ]]; then
# For yad, we'll use a notification since infobox is non-blocking
yad --notification \
--text="$text" \
--timeout=3
else
dialog --backtitle "$backTitle" \
--title "$title" \
--infobox "$text" 0 0
fi
}
# Wrapper function for progress box
# Usage: command | agm_progressbox "title" "text"
agm_progressbox() {
local title="$1"
local text="$2"
if [[ "$dialogType" == "yad" ]]; then
# Start audio feedback for accessibility
local beepPid
local yadPid
# Cleanup function for traps
cleanup_progress() {
[[ -n "$beepPid" ]] && kill "$beepPid" 2>/dev/null
[[ -n "$yadPid" ]] && kill "$yadPid" 2>/dev/null
}
# Set trap to ensure cleanup on interruption
trap cleanup_progress EXIT INT TERM
if command -v sox >/dev/null 2>&1; then
{
while true; do
# Generate a short, pleasant progress beep (440Hz for 0.1s)
sox -q -n -d synth 0.1 sine 440 vol 0.3 2>/dev/null
sleep 2 # Beep every 2 seconds
done
} &
beepPid=$!
fi
# Start visual progress dialog with auto-close, redirect stdin to prevent conflicts
yad --progress \
--title="$title" \
--text="$text" \
--auto-close \
--pulsate \
--width=400 \
--height=100 </dev/null &
yadPid=$!
# Pass through all input completely unchanged
cat
# Clean up background processes
cleanup_progress
trap - EXIT INT TERM # Remove traps
else
dialog --title "$title" \
--progressbox "$text" 20 70
fi
}
# Simple progress box that just shows the operation is running (no command output)
# Usage: command | agm_simple_progressbox "title" "text"
agm_simple_progressbox() {
local title="$1"
local text="$2"
if [[ "$dialogType" == "yad" ]]; then
# Start audio feedback for accessibility
local beepPid
local yadPid
# Cleanup function for traps
cleanup_simple_progress() {
[[ -n "$beepPid" ]] && kill "$beepPid" 2>/dev/null
[[ -n "$yadPid" ]] && kill "$yadPid" 2>/dev/null
}
# Set trap to ensure cleanup on interruption
trap cleanup_simple_progress EXIT INT TERM
if command -v sox >/dev/null 2>&1; then
{
while true; do
# Generate a short, pleasant progress beep (440Hz for 0.1s)
sox -q -n -d synth 0.1 sine 440 vol 0.3 2>/dev/null
sleep 2 # Beep every 2 seconds
done
} &
beepPid=$!
fi
# Show progress dialog with pulsating
yad --progress \
--title="$title" \
--text="$text" \
--auto-close \
--pulsate \
--width=400 \
--height=100 &
yadPid=$!
# Read from stdin and discard, but keep dialogs open until command finishes
cat > /dev/null
# Clean up background processes
cleanup_simple_progress
trap - EXIT INT TERM # Remove traps
else
dialog --title "$title" \
--progressbox "$text" 20 70
fi
}
# Alternative status box for simple operations without meaningful progress
# Usage: agm_statusbox "title" "text" & statusPid=$!; command; kill $statusPid 2>/dev/null
agm_statusbox() {
local title="$1"
local text="$2"
if [[ "$dialogType" == "yad" ]]; then
# Show a simple status message that screen readers can access
yad --form \
--title="$title" \
--field="$text:LBL" \
--selectable-labels \
--no-buttons \
--timeout=0 \
--width=400 \
--height=100
else
# Use infobox for console
dialog --title "$title" \
--infobox "$text" 5 50
fi
}
# Real progress bar with percentage updates (for operations that can report progress)
# Usage: agm_progress_with_percent "title" "text"
# Then send "percentage" or "#status text" to the returned file descriptor
agm_progress_with_percent() {
local title="$1"
local text="$2"
if [[ "$dialogType" == "yad" ]]; then
# Start audio feedback for accessibility
local beepPid
local yadPid
# Cleanup function for traps
cleanup_percent_progress() {
[[ -n "$beepPid" ]] && kill "$beepPid" 2>/dev/null
[[ -n "$yadPid" ]] && kill "$yadPid" 2>/dev/null
}
# Set trap to ensure cleanup on interruption
trap cleanup_percent_progress EXIT INT TERM
if command -v sox >/dev/null 2>&1; then
{
while true; do
# Generate a short, pleasant progress beep (440Hz for 0.1s)
sox -q -n -d synth 0.1 sine 440 vol 0.3 2>/dev/null
sleep 2 # Beep every 2 seconds
done
} &
beepPid=$!
fi
# Create a true progress dialog that accepts percentage updates with tee for cleanup
{
cat
cleanup_percent_progress
trap - EXIT INT TERM
} | yad --progress \
--title="$title" \
--text="$text" \
--auto-close \
--width=400 \
--height=150
else
# For dialog, we'll simulate with a gauge
dialog --title "$title" \
--gauge "$text" 6 50 0
fi
}
# Wrapper function for file selection
# Usage: agm_fselect "title" "backtitle" "default_path"
agm_fselect() {
local title="$1"
local backTitle="$2"
local defaultPath="$3"
if [[ "$dialogType" == "yad" ]]; then
yad --file \
--title="$title" \
--filename="$defaultPath" \
--width=600 \
--height=400
else
dialog --backtitle "$backTitle" \
--title "$title" \
--fselect "$defaultPath" 0 0 \
--stdout
fi
}
# Wrapper function for directory selection
# Usage: agm_dselect "title" "backtitle" "default_path"
agm_dselect() {
local title="$1"
local backTitle="$2"
local defaultPath="$3"
if [[ "$dialogType" == "yad" ]]; then
yad --file \
--directory \
--title="$title" \
--filename="$defaultPath" \
--width=600 \
--height=400
else
dialog --backtitle "$backTitle" \
--title "$title" \
--dselect "$defaultPath" 0 0 \
--stdout
fi
}

View File

@@ -1,223 +0,0 @@
#!/usr/bin/env bash
# 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
agm_msgbox "Alert" "" "Press OK to 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() {
if [[ ! -d "${cache}" ]]; then
agm_msgbox "Clear Cache" "" "No cache found at ${cache}."
return
fi
if ! agm_yesno "Clear Cache" "" "This will delete all contents of ${cache}. Are you sure you want to continue?"; then
return
fi
# All safety checks done. Delete the cache.
rm -rfv "${cache}" | agm_progressbox "Clear Cache" "Deleting cache files..."
agm_msgbox "Clear Cache" "" "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 [[ "$dialogType" == "yad" ]]; then
# Use curl's progress bar with better parsing for yad
if ! {
curl -L4 -C - --retry 10 --progress-bar --output "${cache}/${dest}" "${i}" 2>&1 | \
stdbuf -oL grep -o '[0-9]*%' | \
stdbuf -oL sed -u 's/%$//' | \
while read -r percent; do
echo "$percent"
echo "# Downloading $dest - ${percent}%"
done
} | agm_progress_with_percent "Audio Game Manager" "Downloading \"$dest\"..."; then
agm_infobox "Audio Game Manager" "Audio Game Manager" "Could not download \"$dest\". Installation cannot continue."
exit 1
fi
else
# Use the original method for dialog (console)
if ! curl -L4 -C - --retry 10 --output "${cache}/${dest}" "${i}" 2>&1 | agm_progressbox "Audio Game Manager" "Downloading \"$dest\"..."; then
agm_infobox "Audio Game Manager" "Audio Game Manager" "Could not download \"$dest\". Installation cannot continue."
exit 1
fi
fi
local downloadError=1
case "${dest##*.}" in
"pk3"|"zip")
unzip -tq "${cache}/${dest}" | agm_progressbox "Audio Game Manager" "Validating ${dest##*.} file"
downloadError=$?
;;
"7z")
7z t "${cache}/${dest}" | agm_progressbox "Audio Game Manager" "Validating 7z file"
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}"
agm_infobox "Audio Game Manager" "Audio Game Manager" "Error downloading \"${dest}\". Installation cannot continue."
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
agm_msgbox "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}/" \;
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
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." ;;
1)
mkdir -p "${WINEPREFIX}/drive_c/Program Files/${game}"
agm_msgbox "Audiogame Manager" "Audiogame Manager" "Place game files in \"${WINEPREFIX}/drive_c/Program Files/${game}\" and press enter to continue."
return
;;
*) exit 0 ;;
esac
# Check for steamcmd
if ! command -v steamcmd &> /dev/null ; then
agm_infobox "Audiogame Manager" "Audiogame Manager" "This installer requires steamcmd. Please install steamcmd and try again."
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
agm_msgbox "Audiogame Manager" "Audiogame Manager" "$message"
# Get Steam user name.
steamUser="$(agm_inputbox "Audiogame Manager" "Audiogame Manager" "Please enter your Steam user name:" "")"
# 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 || { agm_infobox "Audiogame Manager" "Audiogame Manager" "Something went wrong. Please make sure you have a stable internet connection, and if the problem persists, contact audiogame-manager's developers."
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
}
# Progress wrapper for game installation operations
install_with_progress() {
local operation="$1"
local message="$2"
shift 2
case "$operation" in
"unzip")
# Always overwrite without prompting to prevent invisible terminal prompts
unzip -o "$@" | agm_progressbox "Game Installation" "$message"
;;
"7z")
# Always overwrite without prompting for 7z as well
7z -y "$@" | agm_progressbox "Game Installation" "$message"
;;
"cp"|"copy")
# Always force overwrite to prevent invisible prompts in GUI mode
cp -fv "$@" | agm_progressbox "Game Installation" "$message"
;;
"find")
find "$@" | agm_progressbox "Game Installation" "$message"
;;
*)
# Default: run command with progress box
"$operation" "$@" | agm_progressbox "Game Installation" "$message"
;;
esac
}

View File

@@ -1,125 +0,0 @@
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
}

View File

@@ -1,63 +0,0 @@
#!/usr/bin/env bash
# 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
agm_yesno 'Audiogame Manager News' 'Audiogame Manager News' 'Audiogame manager news is available. Would you like to play it now?' || 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
agm_yesno "Audiogame Manager" "Audiogame Manager" "Updates are available. Would you like to update now?" || return
# Perform git pull quietly, then show only the important changes
local updateResult
git pull --quiet >/dev/null 2>&1
updateResult=$?
# Get the important information: commit messages and summary
local changesSummary
changesSummary=$({
echo "UPDATE COMPLETED"
echo
echo "Recent changes:"
git log '@{1}..' --pretty=format:'• %an: %s' | tac
echo
echo "Update summary:"
git diff --stat '@{1}..' | tail -1
} 2>/dev/null)
# Show only the meaningful update information
agm_msgbox "Update Complete" "Audiogame Manager" "$changesSummary"
exit $updateResult
}

View File

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

View File

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

View File

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

View File

@@ -1,12 +0,0 @@
download "http://download.dracoent.com/Windows/classic/AOSetup.exe"
# Uses standard wine path based on architecture (win32/win64)
export winVer="win7"
install_wine_bottle vb6run dx8vb quartz
cp -fv "${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
wineserver -k # Damn you, dotnet.
add_launcher "c:\Program Files\Draconis Entertainment\Alien Outback\ao.exe"

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,15 +0,0 @@
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"
install_with_progress unzip "Extracting game files..." -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 -fv BlackHole/bin/*.dll "$WINEPREFIX/drive_c/Program Files/Balatro"
cp -fv "$cache/Tolk.dll" "$WINEPREFIX/drive_c/Program Files/Balatro/tolk.dll"
cp -fv "$cache/Tolk.dll" BlackHole/bin/tolk.dll
cp -fv ../version.dll "$WINEPREFIX/drive_c/Program Files/Balatro"
add_launcher 'c:\Program Files\Balatro\Balatro.exe' 'export WINEDLLOVERRIDES=version=n,b'

View File

@@ -1,5 +0,0 @@
download "https://www.agarchive.net/games/gameMadnessInteractive/battle%20zone%2013.5%20setup.exe"
export winVer="win7"
install_wine_bottle
wine "${cache}/battle zone 13.5 setup.exe" /silent
add_launcher "c:\Program Files\Battle Zone\ss.exe"

View File

@@ -1,6 +0,0 @@
download "http://files.tunmi13.com/projects_archive/bth.zip"
# Uses standard wine path based on architecture (win32/win64)
export winVer="win7"
install_wine_bottle
install_with_progress unzip "Extracting game files..." -d "$WINEPREFIX/drive_c/Program Files/$game" "${cache}/bth.zip"
add_launcher "c:\Program Files\\${game}\bth.exe"

View File

@@ -1,7 +0,0 @@
get_installer "bf.zip" "https://tunmi13.itch.io/battlefield-2d"
export WINEARCH=win64
export winVer="win8"
# Uses standard wine path based on architecture (win32/win64)
install_wine_bottle
install_with_progress unzip "Extracting game files..." -d "$WINEPREFIX/drive_c/Program Files/" "${cache}/bf.zip"
add_launcher "c:\Program Files\bf\bf.exe"

View File

@@ -1,8 +0,0 @@
#
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
install_with_progress unzip "Extracting game files..." -d "$WINEPREFIX/drive_c/Program Files/Beatstar Pro" "${cache}/beat_windows.zip"
add_launcher "c:\Program Files\Beatstar Pro\beatstar.exe"

View File

@@ -1,9 +0,0 @@
get_installer "Blind Drive 1.1.112.00i-win64.zip" "https://lofipeople.itch.io/blind-drive"
export WINEARCH=win64
export winVer="win8"
install_wine_bottle
install_with_progress unzip "Extracting game files..." -d "$WINEPREFIX/drive_c/Program Files/blind-drive" "${cache}/Blind Drive 1.1.112.00i-win64.zip"
# Weird work around to get keyboard working.
winetricks -q usetakefocus=y
winetricks -q usetakefocus=n
add_launcher "c:\Program Files\blind-drive\Blind Drive.exe"

View File

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

View File

@@ -1,7 +0,0 @@
export WINEARCH=win32
download "https://www.nyanchangames.com/softs/nn2_setup.exe"
# Uses standard wine path based on architecture (win32/win64)
export winVer="win7"
install_wine_bottle
install_with_progress 7z "Extracting game files..." x -o"$WINEPREFIX/drive_c/nyanchangame/bk2" "${cache}/nn2_setup.exe"
add_launcher "c:\nyanchangame\bk2\play.exe"

View File

@@ -1,24 +0,0 @@
download "https://www.nyanchangames.com/softs/nn3_setup.exe"
# Uses standard wine path based on architecture (win32/win64)
export winVer="win7"
export WINEARCH=win32
install_wine_bottle
install_with_progress 7z "Extracting game files..." x -o"$WINEPREFIX/drive_c/nyanchangame/bk3" "${cache}/nn3_setup.exe"
if [[ ! -r "${cache}/bk3-dict.dat" ]]; then
echo "http://www.nyanchangames.com/order/bk3translate.html" | xclip -selection clipboard 2> /dev/null
agm_msgbox "Bokurano Daibouken 3" "Bokurano Daibouken 3" "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."
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
agm_yesno "Bokurano Daibouken 3" "Bokurano Daibouken 3" "Possible English translation file found at $dictFile. Would you like to use it for BK3?" && cp -fv "$dictFile" "${cache}/bk3-dict.dat"
fi
if [[ -f "${cache}/bk3-dict.dat" ]] ; then
cp -fv "${cache}/bk3-dict.dat" "${WINEPREFIX}/drive_c/nyanchangame/bk3/dict.dat"
fi
add_launcher "c:\nyanchangame\bk3\play.exe"

View File

@@ -1,7 +0,0 @@
download "https://www.nyanchangames.com/softs/nn_setup.exe"
# Uses standard wine path based on architecture (win32/win64)
export winVer="win7"
export WINEARCH="win32"
install_wine_bottle
install_with_progress 7z "Extracting game files..." x -o"$WINEPREFIX/drive_c/nyanchangame/bk" "${cache}/nn_setup.exe"
add_launcher "c:\nyanchangame\bk\play.exe"

View File

@@ -1,6 +0,0 @@
download "http://oriolgomez.com/games/bombercats_en.zip"
# Uses standard wine path based on architecture (win32/win64)
export winVer="win7"
install_wine_bottle
install_with_progress unzip "Extracting game files..." -d "$WINEPREFIX/drive_c/Program Files/bomvercats" "${cache}/bombercats_en.zip"
add_launcher "c:\Program Files\bomvercats\game.exe"

View File

@@ -1,5 +0,0 @@
download "http://www.masonasons.me/softs/BopItEmulator3.1PasswordIsBopIt.7z"
export winVer="win7"
install_wine_bottle
install_with_progress 7z "Extracting game files..." 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

@@ -1,5 +0,0 @@
export WINEARCH=win64
get_installer "bounce_bounce.rar" "https://kavyapriya.itch.io/bounce-bounce"
install_wine_bottle
unrar x "${cache}/bounce_bounce.rar" -op"$WINEPREFIX/drive_c/Program Files"
add_launcher "c:\Program Files\bounce_bounce\bounce.exe"

View File

@@ -1,6 +0,0 @@
#
download "https://hirotaka2014.sakura.ne.jp/mh0406/game/breed_memorial.zip" "${nvdaControllerClientDll}"
export winVer="win7"
install_wine_bottle cjkfonts
install_with_progress unzip "Extracting game files..." -d "$WINEPREFIX/drive_c/Program Files/" "${cache}/breed_memorial.zip"
add_launcher "c:\Program Files\Breed memorial\Breed memorial\breed memorial.exe"

View File

@@ -1,6 +0,0 @@
get_installer "breu2.zip" "https://breu.itch.io/shadowhunt"
export WINEARCH=win64
export winVer="win8"
install_wine_bottle
install_with_progress unzip "Extracting game files..." -d "$WINEPREFIX/drive_c/Program Files/" "${cache}/breu2.zip"
add_launcher "c:\Program Files\breu2\breu2.exe"

View File

@@ -1,7 +0,0 @@
download "http://www.kaldobsky.com/audiogames/castaways2beta.zip"
# Uses standard wine path based on architecture (win32/win64)
export winVer="win7"
install_wine_bottle vb6run dx8vb
install_with_progress unzip "Extracting game files..." -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"

View File

@@ -1,7 +0,0 @@
download "https://www.kaldobsky.com/audiogames/castaways.zip"
# Uses standard wine path based on architecture (win32/win64)
export winVer="win7"
install_wine_bottle vb6run dx8vb
install_with_progress unzip "Extracting game files..." -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

@@ -1,5 +0,0 @@
download "http://files.tunmi13.com/projects_archive/coth.zip"
export winVer="win7"
install_wine_bottle
install_with_progress unzip "Extracting game files..." -d "$WINEPREFIX/drive_c/Program Files/$game" "${cache}/coth.zip"
add_launcher "c:\Program Files\\${game}\game.exe"

View File

@@ -1,12 +0,0 @@
download "https://download.dracoent.com/Windows/ChangeReactionSetup.exe"
# Uses standard wine path based on architecture (win32/win64)
export winVer="win7"
install_wine_bottle vb6run dx8vb quartz
cp -fv "${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
wineserver -k # Damn you, dotnet.
add_launcher "c:\Program Files\Draconis Entertainment\Change Reaction\ChangeReactionGui.exe"

View File

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

View File

@@ -1,9 +0,0 @@
#
# Freezes at menu
download "https://www.agarchive.net/games/XSight/chopper%20challenge%20setup.exe"
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"

View File

@@ -1,7 +0,0 @@
export WINEARCH=win64
export winVer="win7"
download "${ipfsGateway}/ipfs/QmYx11vsMDBgjPd1coZPGHxMXf2qtf4icqmB3Q9iUazyQv?filename=ChristmasChaos.zip" "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" "{}" \;
add_launcher "c:\Program Files\ChristmasChaos\ChristmasChaos.exe"

View File

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

@@ -1,6 +0,0 @@
get_installer "clashes_of_the_sky.zip" "https://tunmi13.itch.io/clashes-of-the-sky"
# Uses standard wine path based on architecture (win32/win64)
export winVer="win7"
install_wine_bottle
install_with_progress unzip "Extracting game files..." -d "$WINEPREFIX/drive_c/Program Files" "${cache}/clashes_of_the_sky.zip"
add_launcher 'c:\Program Files\clashes_of_the_sky\clash.exe'

View File

@@ -1,9 +0,0 @@
get_installer "codedungeon-win-64.zip" "https://stealcase.itch.io/codedungeon"
export WINEARCH=win64
export winVer="win8"
install_wine_bottle
install_with_progress unzip "Extracting game files..." -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
add_launcher "c:\Program Files\code-dungeon\Code Dungeon.exe"

View File

@@ -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"

View File

@@ -1,5 +0,0 @@
export WINEARCH=win64
export winVer="win8"
install_wine_bottle
get_steam 2684520 "https://store.steampowered.com/app/2684520/Conjury/"
add_launcher 'c:\Program Files\Conjury\release\Conjury.exe'

View File

@@ -1,6 +0,0 @@
#
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\"

View File

@@ -1,6 +0,0 @@
export WINEARCH=win64
export winVer="win7"
download "https://samtupy.com/games/cm.zip"
install_wine_bottle
install_with_progress unzip "Extracting game files..." -d "$WINEPREFIX/drive_c/Program Files/ConstantMotion" "$cache/cm.zip"
add_launcher 'c:\Program Files\ConstantMotion\cm.exe'

View File

@@ -1,6 +0,0 @@
# Uses standard wine path based on architecture (win32/win64)
export winVer="win7"
download "http://oriolgomez.com/games/copter_en.zip"
install_wine_bottle
install_with_progress unzip "Extracting game files..." -d "$WINEPREFIX/drive_c/Program Files/copter mission" "${cache}/copter_en.zip"
add_launcher "c:\Program Files\copter mission\game.exe"

View File

@@ -1,7 +0,0 @@
download "http://pragmapragma.free.fr/crazy-party/Crazy-Party-beta82.zip" "https://stormgames.wolfe.casa/downloads/Tolk.dll"
export WINEARCH=win64
export winVer="win8"
install_wine_bottle
install_with_progress unzip "Extracting game files..." -d "$WINEPREFIX/drive_c/Program Files" "${cache}/Crazy-Party-beta82.zip"
find "${WINEPREFIX}" -type f -name 'Tolk.dll' -exec cp -fv "${cache}/Tolk.dll" "{}" \;
add_launcher "c:\Program Files\Crazy-Party-beta82\Crazy Party.exe"

View File

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

View File

@@ -1,6 +0,0 @@
export WINEARCH=win64
export winVer="win7"
download "http://masonasons.me/softs/CH2.0Win.zip"
install_wine_bottle
install_with_progress unzip "Extracting game files..." -d "$WINEPREFIX/drive_c/Program Files/crime-hunter" "${cache}/CH2.0Win.zip"
add_launcher "c:\Program Files\crime-hunter\ch.exe"

View File

@@ -1,9 +0,0 @@
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
wineserver -w
add_launcher 'c:\Program Files\Danger City\dc.exe'

View File

@@ -1,6 +0,0 @@
download "http://oriolgomez.com/games/wheel_en.zip"
# Uses standard wine path based on architecture (win32/win64)
export winVer="win7"
install_wine_bottle
install_with_progress unzip "Extracting game files..." -d "$WINEPREFIX/drive_c/Program Files/danger on the wheel" "${cache}/wheel_en.zip"
add_launcher "c:\Program Files\danger on the wheel\game.exe"

View File

@@ -1,6 +0,0 @@
#
# 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
wine "$cache/Dark-Destroyer-Setup.exe" /silent
add_launcher 'c:\Pbgames\Dark_destroyer\darkdestroyer.exe'

View File

@@ -1,8 +0,0 @@
# Uses standard wine path based on architecture (win32/win64)
export winVer="win7"
export winetricksSettings="vd=1024x768"
download "https://kaldobsky.com/audiogames/Daytona.zip"
install_wine_bottle vb6run dx8vb quartz
install_with_progress unzip "Extracting game files..." -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

@@ -1,6 +0,0 @@
# Uses standard wine path based on architecture (win32/win64)
export winVer="win7"
download "http://oriolgomez.com/games/road_en.zip"
install_wine_bottle
install_with_progress unzip "Extracting game files..." -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"

View File

@@ -1,6 +0,0 @@
export winVer="win7"
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"

View File

@@ -1,9 +0,0 @@
# Uses standard wine path based on architecture (win32/win64)
export winVer="win7"
export winetricksSettings="vd=1024x768"
download "https://www.kaldobsky.com/audiogames/dogwhohatestoast.zip"
install_wine_bottle vb6run dx8vb quartz
install_with_progress unzip "Extracting game files..." -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

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