Compare commits

..

73 Commits

Author SHA1 Message Date
Storm Dragon
2c8b419656 Merge branch 'testing' latest games and updates. 2024-04-05 19:54:23 -04:00
Storm Dragon
06c50154fc Merge branch 'testing' latest games and code with new IPFS support. 2024-02-29 04:30:03 -05:00
Storm Dragon
8b3e1b777b Merge branch 'testing' latest game additions. 2023-08-07 20:45:44 -04:00
stormdragon2976
e9b23e968f Merge branch 'testing', latest code and games. 2023-06-12 15:21:03 -04:00
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
2 changed files with 175 additions and 354 deletions

View File

@ -75,7 +75,6 @@ check_news() {
fi fi
} }
# Automatic update function
# Automatic update function # Automatic update function
update() { update() {
if ! [[ -d ".git" ]]; then if ! [[ -d ".git" ]]; then
@ -94,8 +93,7 @@ if [[ "$home" == "$remote" ]]; then
fi fi
dialog --backtitle "Audiogame Manager" \ dialog --backtitle "Audiogame Manager" \
--yesno "Updates are available. Would you like to update now?" -1 -1 --stdout || return --yesno "Updates are available. Would you like to update now?" -1 -1 --stdout || return
{ git pull git pull
git log '@{1}..' --pretty=format:'%an: %s'; }
exit $? exit $?
} }
@ -330,16 +328,10 @@ get_bottle() {
"triple-triad"*) "triple-triad"*)
export WINEPREFIX="${HOME}/.local/wine/aprone" ;; export WINEPREFIX="${HOME}/.local/wine/aprone" ;;
"bg-"*) export WINEPREFIX="${HOME}/.local/wine/bg";; "bg-"*) export WINEPREFIX="${HOME}/.local/wine/bg";;
# draconis games # ESP Pinball games
"esp-pinball-classic"*) ;& "esp-pinball-classic"*) export WINEPREFIX="${HOME}/.local/wine/esp-pinball";;
"esp-pinball-extreme"*) ;& "esp-pinball-extreme"*) export WINEPREFIX="${HOME}/.local/wine/esp-pinball";;
"esp-pinball-party-pack"*) ;& "esp-pinball-party-pack"*) export WINEPREFIX="${HOME}/.local/wine/esp-pinball";;
"silver-dollar"*) ;&
"monkey-business"*) ;&
"alien-outback"*) ;&
"dyna-man"*) ;&
"change-reaction"*) ;&
"ten-pin-alley"*) export WINEPREFIX="${HOME}/.local/wine/draconis";;
# l-works games group # l-works games group
"duck-hunt"*) ;& "duck-hunt"*) ;&
"judgement-day"*) ;& "judgement-day"*) ;&
@ -431,24 +423,8 @@ get_installer() {
get_steam() { get_steam() {
# Arguments: $1 id of item for download, $2 url for game # Arguments: $1 id of item for download, $2 url for game
trap "exit 0" SIGINT trap "exit 0" SIGINT
echo "manual intervention required." echo "The next steps will install through steamcmd."
alert 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 # Check for steamcmd
if ! command -v steamcmd &> /dev/null ; then if ! command -v steamcmd &> /dev/null ; then
dialog --backtitle "Audiogame Manager" \ dialog --backtitle "Audiogame Manager" \
@ -714,7 +690,7 @@ install_wine_bottle() {
game_installer() { game_installer() {
export LANG="en_US.UTF-8" export LANG="en_US.UTF-8"
# Try to deal with systems in other languages # Try to deal with systems in other languages
mapfile -t installedGames < <(sed -e '/^$/d' -e '/^[[:space:]]*#/d' "${configFile}" 2> /dev/null | cut -d '|' -f3) mapfile -t installedGames < <(sed '/^$/d' "${configFile}" 2> /dev/null | cut -d '|' -f3)
# Create the menu of installed games # Create the menu of installed games
declare -a menuList declare -a menuList
for i in "${gameList[@]}" ; do for i in "${gameList[@]}" ; do
@ -743,7 +719,7 @@ game_installer() {
# remove games # remove games
game_removal() { game_removal() {
mapfile -t lines < <(sed -e '/^$/d' -e '/^[[:space:]]*#/d' "${configFile}" 2> /dev/null) mapfile -t lines < <(sed '/^$/d' "${configFile}" 2> /dev/null)
if [[ ${#lines} -eq 0 ]]; then if [[ ${#lines} -eq 0 ]]; then
echo "No games found." echo "No games found."
exit 0 exit 0
@ -751,8 +727,7 @@ game_removal() {
# Create the menu of installed games # Create the menu of installed games
declare -a menuList declare -a menuList
for i in "${lines[@]}" ; do for i in "${lines[@]}" ; do
IFS='|' read -ra gameInfo <<< "$i" menuList+=("${i%|*}" "${i##*|}")
menuList+=("${gameInfo[0]}|${gameInfo[1]}" "${gameInfo[2]}")
done done
menuList+=("Donate" "Donate") menuList+=("Donate" "Donate")
menuList+=("Become a Patron" "Become a Patron") menuList+=("Become a Patron" "Become a Patron")
@ -806,8 +781,7 @@ kill_game() {
# Create the menu of installed games # Create the menu of installed games
declare -a menuList declare -a menuList
for i in "${lines[@]}" ; do for i in "${lines[@]}" ; do
IFS='|' read -ra gameInfo <<< "$i" menuList+=("${i%|*}" "${i##*|}")
menuList+=("${gameInfo[0]}|${gameInfo[1]}" "${gameInfo[2]}")
done done
menuList+=("Donate" "Donate") menuList+=("Donate" "Donate")
menuList+=("Become a Patron" "Become a Patron") menuList+=("Become a Patron" "Become a Patron")
@ -838,142 +812,11 @@ kill_game() {
exit 0 exit 0
} }
# for games that require custom scripts before launch or custom launch parameters
custom_launch_parameters() {
if [[ "${game[0]}" == "dragon-pong" ]]; then
"${0%/*}/speech/speak_window_title.sh" DragonPong.exe &
pushd "$(winepath "$winePath")"
wine "$wineExec"
popd
exit 0
fi
if [[ "${game[0]}" == "executioner's-rage" ]]; then
find "${WINEPREFIX}/drive_c/Program Files" -type f -name 'nvdaControllerClient64.dll' -exec cp -v "${cache}/nvda2speechd64.dll" "{}" \;
fi
if [[ "${game[0]}" == "haunted-party" ]]; then
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
fi
if [[ "${game[0]}" == "laser-breakout" ]]; then
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
"${0%/*}/speech/speak_window_title.sh" play.exe &
fi
if [[ "${game[0]}" == "light-battles" ]]; then
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
fi
if [[ "${game[0]}" == "mist-world" ]]; then
"${0%/*}/speech/speak_window_title.sh" mw.exe &
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
fi
if [[ "${game[0]}" == "oh-shit" ]]; then
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
fi
if [[ "${game[0]}" == "bokurano-daibouken-2" ]]; then
"${0%/*}/speech/clipboard_translator.sh" play.exe bokurano-daibouken2 &
fi
if [[ "${game[0]}" == "bokurano-daibouken" ]]; then
"${0%/*}/speech/clipboard_translator.sh" play.exe bokurano-daibouken &
fi
if [[ "${game[0]}" =~ "bokurano-daibouken-3" ]]; then
dictPath="$(winepath "${winePath}")"
if [[ -r "${cache}/bk3-dict.dat" ]] && [[ ! -d "${dictPath}/dict" ]]; then
cp "${cache}/bk3-dict.dat" "${dictPath}/dict.dat"
fi
if [[ -d "${dictPath}/dict" ]]; then
if [[ ! -e "${dictPath}/data/nvdaControllerClient.dll" ]]; then
cp "${cache}/nvda2speechd32.dll" "${dictPath}/data/nvdaControllerClient.dll"
fi
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
fi
if [[ ! -d "${dictPath}/dict" ]] && [[ ! -r "${cache}/bk3-dict.dat" ]]; then
find "${WINEPREFIX}/drive_c/nyanchangame/bk3" -type f -name 'nvdaControllerClient.dll' -exec rm -v "{}" \;
"${0%/*}/speech/clipboard_translator.sh" play.exe bokurano-daibouken3 &
fi
fi
if [[ "${game[0]}" == "bop-it-emulator" ]]; then
"${0%/*}/speech/speak_window_title.sh" bop.exe &
fi
if [[ "${game[0]}" == "breu2-shadow-hunt" ]]; then
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
fi
if [[ "${game[0]}" == "road-to-rage" ]]; then
"${0%/*}/speech/speak_window_title.sh" trtr.exe &
fi
if [[ "${game[0]}" == "sequence-storm" ]]; then
"${0%/*}/speech/clipboard_reader.sh" SequenceStorm &
fi
if [[ "${game[0]}" == "shadow-line" ]]; then
find "${WINEPREFIX}/drive_c/" -type f -name 'nvdaControllerClient.dll' -exec rm -v "{}" \;
"${0%/*}/speech/clipboard_translator.sh" play_sr.exe shadow-line &
fi
if [[ "${game[0]}" == "sketchbook" ]]; then
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvdaControllerClient32.dll" "{}" \;
fi
if [[ "${game[0]}" == "audiodisc" ]]; then
wine "$winePath\\$wineExec"
exit 0
fi
if [[ "${game[0]}" == "audioquake" ]]; then
wine "$winePath\\$wineExec"
exit 0
fi
if [[ "${game[0]}" == "screaming-strike-2" ]]; then
pushd "$(winepath "$winePath")"
${wine} "$wineExec"
popd
exit 0
fi
if [[ "${game[0]}" == "warsim" ]]; then
pushd "$(winepath "${game[1]%\\*}")"
wine "${game[1]##*\\}"
popd
exit 0
fi
if [[ "${game[0]}" == "interceptor" ]]; then
pushd "$(winepath "$winePath")"
wine "$wineExec"
popd
exit 0
fi
if [[ "${game[0]}" == "vip-mud" ]]; then
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
fi
if [[ -d "${WINEPREFIX}/drive_c/windows/syswow64" ]]; then
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
# switch to wine64 for 64 bit prefix.
[[ "${wine}" == "wine" ]] && export wine="wine64"
fi
if [[ "${game[0]}" == "the-great-toy-robbery" ]] ; then
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
fi
}
# Process game launcher flags
process_launcher-flags() {
flags=("${game[@]:3}")
for i in "${flags[@]}" ; do
if [[ "${i}" =~ ^export\ [a-zA-Z_][a-zA-Z0-9_]*=\'?.*\'?$ ]]; then
eval "${i}"
fi
done
}
create_game_array() {
# Game array 0 bottle, 1 path, 2 title, 3+ flags
for i in "${lines[@]}" ; do
if [[ "${game}" =~ ^${i} ]]; then
# This is weird. Why do I have to set game to i before making the array?
game="$i"
IFS='|' read -ra game <<< "$i"
break
fi
done
}
# launch games that are installed # launch games that are installed
game_launcher() { game_launcher() {
# For use by update scripts that want to source functions in this file. # For use by update scripts that want to source functions in this file.
[[ "$agmNoLaunch" == "true" ]] && return [[ "$agmNoLaunch" == "true" ]] && return
mapfile -t lines < <(sed -e '/^$/d' -e '/^ *#/d' "${configFile}" 2> /dev/null) mapfile -t lines < <(sed '/^$/d' "${configFile}" 2> /dev/null)
if [[ ${#lines} -eq 0 ]]; then if [[ ${#lines} -eq 0 ]]; then
echo "Install some games first." echo "Install some games first."
exit 0 exit 0
@ -982,8 +825,7 @@ game_launcher() {
# Create the menu of installed games # Create the menu of installed games
declare -a menuList declare -a menuList
for i in "${lines[@]}" ; do for i in "${lines[@]}" ; do
IFS='|' read -ra gameInfo <<< "$i" menuList+=("${i%|*}" "${i##*|}")
menuList+=("${gameInfo[0]}|${gameInfo[1]}" "${gameInfo[2]}")
done done
menuList+=("Donate" "Donate") menuList+=("Donate" "Donate")
menuList+=("Become a Patron" "Become a Patron") menuList+=("Become a Patron" "Become a Patron")
@ -1000,47 +842,156 @@ game_launcher() {
elif [[ $menuCode -eq 3 ]]; then elif [[ $menuCode -eq 3 ]]; then
documentation "$game" "$(echo "$game" | cut -d '|' -f2)" documentation "$game" "$(echo "$game" | cut -d '|' -f2)"
fi fi
create_game_array
else else
create_game_array local game="$(grep "^${1}|" "${configFile}" 2> /dev/null)"
game="${game%|*}"
if [[ -z "$game" ]]; then if [[ -z "$game" ]]; then
echo "Game $1 not found." echo "Game $1 not found."
exit 1 exit 1
fi fi
fi fi
if [[ ${#game[@]} -gt 0 ]]; then if [[ ${#game} -gt 0 ]]; then
if [[ "${game[0]}" == "Donate" ]]; then if [[ "$game" == "Donate" ]]; then
open_url "https://ko-fi.com/stormux" open_url "https://ko-fi.com/stormux"
exit 0 exit 0
fi fi
if [[ "${game[0]}" == "Become a Patron" ]]; then if [[ "$game" == "Become a Patron" ]]; then
open_url "https://2mb.games/product/2mb-patron/" open_url "https://2mb.games/product/2mb-patron/"
exit 0 exit 0
fi fi
get_bottle "${game[0]}" get_bottle "$game"
# make sure wine is actually set to something # make sure wine is actually set to something
export wine="${wine:-wine}" export wine="${wine:-wine}"
echo -n "launching " echo -n "launching "
${wine} --version ${wine} --version
local winePath="${game#*|}"
winePath="${winePath%\\*.exe}"
local wineExec="${game#*|}"
wineExec="${wineExec%|*}"
wineExec="${wineExec##*\\}"
# kill any previous existing wineservers for this prefix in case they didn't shut down properly. # kill any previous existing wineservers for this prefix in case they didn't shut down properly.
${wine}server -k ${wine}server -k
# launch the game # launch the game
if command -v qjoypad &> /dev/null ; then if command -v qjoypad &> /dev/null ; then
mkdir -p ~/.qjoypad3 mkdir -p ~/.qjoypad3
touch "${HOME}/.qjoypad3/${game[2]}.lyt" touch "${HOME}/.qjoypad3/${game%|*}.lyt"
# A | separated list of games that should not start with qjoypad. # A | separated list of games that should not start with qjoypad.
noQjoypadGames="A Hero's Call" noQjoypadGames="a-hero's-call"
if [[ "${noqjoypad}" != "true" ]] && ! [[ "${game[2]}" =~ ${noQjoypadGames} ]]; then if [[ "${noqjoypad}" != "true" ]] && ! [[ "${game}" =~ ${noQjoypadGames} ]]; then
if pgrep qjoypad &> /dev/null ; then if pgrep qjoypad &> /dev/null ; then
qjoypad -T "${game[2]}" 2> /dev/null qjoypad -T "${game%|*}" 2> /dev/null
else else
qjoypad -T "${game[2]}" 2> /dev/null & qjoypad -T "${game%|*}" 2> /dev/null &
fi fi
fi fi
fi fi
process_launcher-flags # for games that require custom scripts before launch or custom launch parameters
custom_launch_parameters if [[ "$game" =~ dragon-pong ]]; then
${wine:-wine} start /d "${game[1]%\\*}" "${game[1]##*\\}" /realtime "${0%/*}/speech/speak_window_title.sh" DragonPong.exe &
pushd "$(winepath "$winePath")"
wine "$wineExec"
popd
exit 0
fi
if [[ "$game" =~ executioner\'s ]]; then
find "${WINEPREFIX}/drive_c/Program Files" -type f -name 'nvdaControllerClient64.dll' -exec cp -v "${cache}/nvda2speechd64.dll" "{}" \;
fi
if [[ "$game" =~ haunted-party ]]; then
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
fi
if [[ "$game" =~ laser-breakout ]]; then
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
"${0%/*}/speech/speak_window_title.sh" play.exe &
fi
if [[ "$game" =~ light-battles ]]; then
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
fi
if [[ "$game" =~ mist-world ]]; then
"${0%/*}/speech/speak_window_title.sh" mw.exe &
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
fi
if [[ "$game" =~ oh-shit ]]; then
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
fi
if [[ "$game" =~ ^bokurano-daibouken-2\| ]]; then
"${0%/*}/speech/clipboard_translator.sh" play.exe bokurano-daibouken2 &
fi
if [[ "$game" =~ ^bokurano-daibouken\| ]]; then
"${0%/*}/speech/clipboard_translator.sh" play.exe bokurano-daibouken &
fi
if [[ "$game" =~ bokurano-daibouken-3 ]]; then
dictPath="$(winepath "${winePath}")"
if [[ -r "${cache}/bk3-dict.dat" ]] && [[ ! -d "${dictPath}/dict" ]]; then
cp "${cache}/bk3-dict.dat" "${dictPath}/dict.dat"
fi
if [[ -d "${dictPath}/dict" ]]; then
if [[ ! -e "${dictPath}/data/nvdaControllerClient.dll" ]]; then
cp "${cache}/nvda2speechd32.dll" "${dictPath}/data/nvdaControllerClient.dll"
fi
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
fi
if [[ ! -d "${dictPath}/dict" ]] && [[ ! -r "${cache}/bk3-dict.dat" ]]; then
find "${WINEPREFIX}/drive_c/nyanchangame/bk3" -type f -name 'nvdaControllerClient.dll' -exec rm -v "{}" \;
"${0%/*}/speech/clipboard_translator.sh" play.exe bokurano-daibouken3 &
fi
fi
if [[ "$game" =~ bop-it-emulator ]]; then
"${0%/*}/speech/speak_window_title.sh" bop.exe &
fi
if [[ "$game" =~ breu2-shadow-hunt ]]; then
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
fi
if [[ "$game" =~ road-to-rage\| ]]; then
"${0%/*}/speech/speak_window_title.sh" trtr.exe &
fi
if [[ "$game" =~ sequence-storm ]]; then
"${0%/*}/speech/clipboard_reader.sh" SequenceStorm &
fi
if [[ "$game" =~ shadow-line ]]; then
find "${WINEPREFIX}/drive_c/" -type f -name 'nvdaControllerClient.dll' -exec rm -v "{}" \;
"${0%/*}/speech/clipboard_translator.sh" play_sr.exe shadow-line &
fi
if [[ "$game" =~ sketchbook ]]; then
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvdaControllerClient32.dll" "{}" \;
fi
if [[ "$game" =~ audiodisc ]]; then
wine "$winePath\\$wineExec"
exit 0
fi
if [[ "$game" =~ audioquake ]]; then
wine "$winePath\\$wineExec"
exit 0
fi
if [[ "$game" =~ screaming-strike-2 ]]; then
pushd "$(winepath "$winePath")"
${wine} "$wineExec"
popd
exit 0
fi
if [[ "$game" =~ warsim ]]; then
pushd "$(winepath "$winePath")"
wine "$wineExec"
popd
exit 0
fi
if [[ "$game" =~ interceptor ]]; then
pushd "$(winepath "$winePath")"
wine "$wineExec"
popd
exit 0
fi
if [[ "$game" =~ vip-mud ]]; then
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
fi
if [[ -d "${WINEPREFIX}/drive_c/windows/syswow64" ]]; then
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
# switch to wine64 for 64 bit prefix.
[[ "${wine}" == "wine" ]] && export wine="wine64"
fi
if [[ "$game" =~ the-great-toy-robbery ]] ; then
pgrep -u "$USER" nvda2speechd &> /dev/null || ${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/nvda2speechd &
fi
${wine:-wine} start /d "${winePath}" "$wineExec" /realtime
fi fi
exit 0 exit 0
} }
@ -1053,11 +1004,6 @@ game_launcher() {
add_launcher() { add_launcher() {
local launchSettings="${game,,}" local launchSettings="${game,,}"
launchSettings="${launchSettings//[[:space:]]/-}|${1}|${game}" launchSettings="${launchSettings//[[:space:]]/-}|${1}|${game}"
shift
while [[ $# -gt 0 ]]; do
launchSettings+="|$1"
shift
done
if ! grep -F -q -x "${launchSettings}" "${configFile}" 2> /dev/null ; then if ! grep -F -q -x "${launchSettings}" "${configFile}" 2> /dev/null ; then
echo "${launchSettings}" >> "${configFile}" echo "${launchSettings}" >> "${configFile}"
sort -o "${configFile}" "${configFile}" sort -o "${configFile}" "${configFile}"
@ -1116,7 +1062,6 @@ unset manualInstall
unset version unset version
# ipfs gateway # ipfs gateway
export ipfsGateway="${ipfsGateway:-https://gateway.pinata.cloud}" export ipfsGateway="${ipfsGateway:-https://gateway.pinata.cloud}"
export nvdaControllerClientDll="${ipfsGateway}/ipfs/QmWu7YdSbKMk1Qm5DKvEA5hk1YuAK8wVkwhDf2CsmPkmF1?filename=nvdaControllerClient32.dll"
# The list of games available for installation. # The list of games available for installation.
@ -1129,7 +1074,6 @@ gameList=(
"Angel Gift" "Angel Gift"
"AudioDisc" "AudioDisc"
"AudioQuake" "AudioQuake"
"Balatro"
"Battlefield 2D" "Battlefield 2D"
"Battle of the Hunter" "Battle of the Hunter"
"Battle Zone" "Battle Zone"
@ -1192,7 +1136,6 @@ gameList=(
"Castaways" "Castaways"
"Castaways 2" "Castaways 2"
"Challenge of the Horse" "Challenge of the Horse"
"Change Reaction"
"Chillingham" "Chillingham"
#"Chopper Challenge" #"Chopper Challenge"
"Christmas Chaos" "Christmas Chaos"
@ -1287,7 +1230,6 @@ gameList=(
"Sarah and the Castle of Witchcraft and Wizardry" "Sarah and the Castle of Witchcraft and Wizardry"
"Scramble!" "Scramble!"
"Screaming Strike 2" "Screaming Strike 2"
"Scrolling Battles"
"Sketchbook" "Sketchbook"
"Sequence Storm" "Sequence Storm"
#"Shades of Doom 1.2" #"Shades of Doom 1.2"
@ -1295,13 +1237,11 @@ gameList=(
"Shadow Line" "Shadow Line"
"Shooter" "Shooter"
"Silver Dollar" "Silver Dollar"
"Simple Fighter"
"Skateboarder Pro" "Skateboarder Pro"
"Slender Lost Vision" "Slender Lost Vision"
"Sonic the Hedgehog" "Sonic the Hedgehog"
"Sonic Zoom" "Sonic Zoom"
#"Space Defender" #"Space Defender"
#"Star Treck Final Conflict"
"Super Deekout" "Super Deekout"
"Super Dogs Bone Hunt" "Super Dogs Bone Hunt"
"Super Egg Hunt" "Super Egg Hunt"
@ -1345,7 +1285,7 @@ for i in curl sox wine winetricks ; do
fi fi
done done
# Get latest news if available # Get latest news if available
check_news #check_news
# With no arguments, open the game launcher. # With no arguments, open the game launcher.
if [[ $# -eq 0 ]]; then if [[ $# -eq 0 ]]; then
game_launcher game_launcher
@ -1417,7 +1357,7 @@ done
# Install game based on the selection above. # Install game based on the selection above.
case "${game}" in case "${game}" in
"A Hero's Call") "A Hero's Call")
download "https://blindgamers.com/downloads/a-heros-call-freeware.zip" "${nvdaControllerClientDll}" download "https://blindgamers.com/downloads/a-heros-call-freeware.zip" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient32.dll"
export winVer="win7" export winVer="win7"
export winetricksSettings="vd=1024x768" export winetricksSettings="vd=1024x768"
install_wine_bottle speechsdk corefonts install_wine_bottle speechsdk corefonts
@ -1443,12 +1383,9 @@ case "${game}" in
;; ;;
"Alien Outback") "Alien Outback")
download "http://download.dracoent.com/Windows/classic/AOSetup.exe" download "http://download.dracoent.com/Windows/classic/AOSetup.exe"
export bottle="draconis"
export winVer="win7" export winVer="win7"
install_wine_bottle vb6run dx8vb speechsdk quartz install_wine_bottle vb6run dx8vb speechsdk quartz
cp -v "${cache}/AOSetup.exe" "$WINEPREFIX/drive_c/windows/temp/" wine "${cache}/AOSetup.exe" /sp- /silent
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. # 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. # FIXME: Hacky, but it works. Install dotnet20 by itself so it actually doesn't hang.
winetricks -q dotnet20 winetricks -q dotnet20
@ -1478,26 +1415,6 @@ download "https://erion.cf/files/ag_103.zip"
echo "After you launch the game, press tab then enter and it should begin speaking." echo "After you launch the game, press tab then enter and it should begin speaking."
alert alert
;; ;;
"Balatro")
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'
;;
"Battlefield 2D") "Battlefield 2D")
get_installer "bf.zip" "https://tunmi13.itch.io/battlefield-2d" get_installer "bf.zip" "https://tunmi13.itch.io/battlefield-2d"
download "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd64.dll" download "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd64.dll"
@ -1949,7 +1866,7 @@ download "https://erion.cf/files/ag_103.zip"
add_launcher "c:\Program Files\bomvercats\game.exe" add_launcher "c:\Program Files\bomvercats\game.exe"
;; ;;
"Breed Memorial") "Breed Memorial")
download "https://hirotaka2014.sakura.ne.jp/mh0406/game/breed_memorial.zip" "${nvdaControllerClientDll}" download "https://hirotaka2014.sakura.ne.jp/mh0406/game/breed_memorial.zip" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient32.dll"
export winVer="win7" export winVer="win7"
install_wine_bottle cjkfonts speechsdk install_wine_bottle cjkfonts speechsdk
unzip -d "$WINEPREFIX/drive_c/Program Files/" "${cache}/breed_memorial.zip" unzip -d "$WINEPREFIX/drive_c/Program Files/" "${cache}/breed_memorial.zip"
@ -1983,20 +1900,6 @@ download "https://erion.cf/files/ag_103.zip"
find "${WINEPREFIX}" -type f -name "nvdaControllerClient32.dll" -exec rm -fv "{}" \; find "${WINEPREFIX}" -type f -name "nvdaControllerClient32.dll" -exec rm -fv "{}" \;
add_launcher "c:\Program Files\\${game}\game.exe" add_launcher "c:\Program Files\\${game}\game.exe"
;; ;;
"Change Reaction")
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
wineserver -k # Damn you, dotnet.
add_launcher "c:\Program Files\Draconis Entertainment\Change Reaction\ChangeReactionGui.exe"
;;
"Chillingham") "Chillingham")
download "https://stormgames.wolfe.casa/downloads/chillingham.zip" download "https://stormgames.wolfe.casa/downloads/chillingham.zip"
install_wine_bottle vb6run mfc42 install_wine_bottle vb6run mfc42
@ -2085,14 +1988,12 @@ download "https://erion.cf/files/ag_103.zip"
add_launcher "c:\Program Files\copter mission\game.exe" add_launcher "c:\Program Files\copter mission\game.exe"
;; ;;
"Crazy Party") "Crazy Party")
export WINEARCH=win64 export winVer="win7"
export winVer="win8" download "${ipfsGateway}/ipfs/QmZPsVdizDW6nrNj9czPTctAomYxafs7SYRw6YjqxPidvn?filename=Crazy-Party-beta78.zip"
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 speechsdk
install_wine_bottle unzip -d "$WINEPREFIX/drive_c/Program Files" "${cache}/Crazy-Party-beta78.zip"
unzip -d "$WINEPREFIX/drive_c/Program Files" "${cache}/Crazy-Party-beta82.zip" add_launcher "c:\Program Files\Crazy-Party-beta78\Crazy Party.exe"
find "${WINEPREFIX}" -type f -name 'Tolk.dll' -exec cp -v "${cache}/Tolk.dll" "{}" \; rm -f "${WINEPREFIX}/drive_c/Program Files/Crazy-Party-beta78/nvdaControllerClient32.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"
;; ;;
"Crazy Tennis") "Crazy Tennis")
download "https://www.agarchive.net/games/VIP/crazy%20tennis%20setup.exe" download "https://www.agarchive.net/games/VIP/crazy%20tennis%20setup.exe"
@ -2194,12 +2095,9 @@ download "https://erion.cf/files/ag_103.zip"
;; ;;
"DynaMan") "DynaMan")
export winVer="win7" export winVer="win7"
export bottle="draconis"
download "http://download.dracoent.com/Windows/classic/DMSetup.exe" download "http://download.dracoent.com/Windows/classic/DMSetup.exe"
install_wine_bottle vb6run dx8vb speechsdk quartz install_wine_bottle vb6run dx8vb speechsdk quartz
cp -v "${cache}/DMSetup.exe" "$WINEPREFIX/drive_c/windows/temp/" wine "${cache}/DMSetup.exe" /sp- /silent
wine "c:/windows/temp/DMSetup.exe" /sp- /silent
rm -fv "$WINEPREFIX/drive_c/windows/temp/DMSetup.exe"
# warning warning warning: Do not change location, or installer will not function. # 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. # FIXME: Hacky, but it works. Install dotnet20 by itself so it actually doesn't hang.
winetricks -q dotnet20 winetricks -q dotnet20
@ -2251,12 +2149,10 @@ download "https://erion.cf/files/ag_103.zip"
;; ;;
"ESP Pinball Classic") "ESP Pinball Classic")
export winVer="win7" export winVer="win7"
export bottle="draconis" export bottle="esp-pinball"
download "http://download.dracoent.com/Windows/classic/PBCSetup.exe" download "http://download.dracoent.com/Windows/classic/PBCSetup.exe"
install_wine_bottle vb6run dx8vb speechsdk quartz install_wine_bottle vb6run dx8vb speechsdk quartz
cp -v "${cache}/PBCSetup.exe" "$WINEPREFIX/drive_c/windows/temp/" wine "${cache}/PBCSetup.exe" /sp- /silent
wine "c:/windows/temp/PBCSetup.exe" /sp- /silent
rm -fv "$WINEPREFIX/drive_c/windows/temp/PBCSetup.exe"
# warning warning warning: Do not change location, or installer will not function. # 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. # FIXME: Hacky, but it works. Install dotnet20 by itself so it actually doesn't hang.
winetricks -q dotnet20 winetricks -q dotnet20
@ -2265,12 +2161,10 @@ download "https://erion.cf/files/ag_103.zip"
;; ;;
"ESP Pinball Extreme") "ESP Pinball Extreme")
export winVer="win7" export winVer="win7"
export bottle="draconis" export bottle="esp-pinball"
download "http://download.dracoent.com/Windows/classic/PBXSetup.exe" download "http://download.dracoent.com/Windows/classic/PBXSetup.exe"
install_wine_bottle vb6run dx8vb speechsdk quartz install_wine_bottle vb6run dx8vb speechsdk quartz
cp -v "${cache}/PBXSetup.exe" "$WINEPREFIX/drive_c/windows/temp/" wine "${cache}/PBXSetup.exe" /sp- /silent
wine "c:/windows/temp/PBXSetup.exe" /sp- /silent
rm -fv "$WINEPREFIX/drive_c/windows/temp/PBXSetup.exe"
# warning warning warning: Do not change location, or installer will not function. # 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. # FIXME: Hacky, but it works. Install dotnet20 by itself so it actually doesn't hang.
winetricks -q dotnet20 winetricks -q dotnet20
@ -2279,17 +2173,15 @@ download "https://erion.cf/files/ag_103.zip"
;; ;;
"ESP Pinball Party Pack") "ESP Pinball Party Pack")
export winVer="win7" export winVer="win7"
export bottle="draconis" export bottle="esp-pinball"
export WINEPREFIX="$HOME/.local/wine/draconis" export WINEPREFIX="$HOME/.local/wine/esp-pinball"
# Only works in conjunction with esp pinball extreme. # Only works in conjunction with esp pinball extreme.
if ! [ -f "$HOME/.local/wine/$bottle/drive_c/Program Files/Draconis Entertainment/ESP Pinball Xtreme/pbx.exe" ] ; then if ! [ -f "$HOME/.local/wine/$bottle/drive_c/Program Files/Draconis Entertainment/ESP Pinball Xtreme/pbx.exe" ] ; then
echo "Error: You need to install ESP Pinball Extreme first to use this game. Please do so before continuing." >&2 echo "Error: You need to install ESP Pinball Extreme first to use this game. Please do so before continuing." >&2
exit 1 exit 1
fi fi
download "http://download.dracoent.com/Windows/classic/PP1Setup.exe" download "http://download.dracoent.com/Windows/classic/PP1Setup.exe"
cp -v "${cache}/PP1Setup.exe" "$WINEPREFIX/drive_c/windows/temp/" wine "${cache}/PP1Setup.exe" /sp- /silent
wine "c:/windows/temp/PP1Setup.exe" /sp- /silent
rm -fv "$WINEPREFIX/drive_c/windows/temp/PP1Setup.exe"
add_launcher "c:\Program Files\Draconis Entertainment\ESP Pinball Xtreme\pbx.exe" add_launcher "c:\Program Files\Draconis Entertainment\ESP Pinball Xtreme\pbx.exe"
;; ;;
"Eurofly") "Eurofly")
@ -2670,12 +2562,9 @@ EOF
;; ;;
"Monkey Business") "Monkey Business")
export winVer="win7" export winVer="win7"
export bottle="draconis"
download "http://download.dracoent.com/Windows/classic/MBSetup.exe" download "http://download.dracoent.com/Windows/classic/MBSetup.exe"
install_wine_bottle vb6run dx8vb speechsdk quartz install_wine_bottle vb6run dx8vb speechsdk quartz
cp -v "${cache}/MBSetup.exe" "$WINEPREFIX/drive_c/windows/temp/" wine "${cache}/MBSetup.exe" /sp- /silent
wine "c:/windows/temp/MBSetup.exe" /sp- /silent
rm -fv "$WINEPREFIX/drive_c/windows/temp/MBSetup.exe"
# warning warning warning: Do not change location, or installer will not function. # 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. # FIXME: Hacky, but it works. Install dotnet20 by itself so it actually doesn't hang.
winetricks -q dotnet20 winetricks -q dotnet20
@ -2715,7 +2604,7 @@ EOF
"Oh Shit") "Oh Shit")
export winVer="win7" export winVer="win7"
export norh="true" # Requires sapi even though uses nvda export norh="true" # Requires sapi even though uses nvda
download "${ipfsGateway}/ipfs/QmQnAJJrt5uABFziQc7enXYrJ74J9GKQSMi8Ry8ebsxfPV?filename=OhShit.zip" "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd" "https://github.com/RastislavKish/nvda2speechd/releases/download/v0.1/nvda2speechd32.dll" download "${ipfsGateway}/ipfs/QmQnAJJrt5uABFziQc7enXYrJ74J9GKQSMi8Ry8ebsxfPV?filename=OhShit.zip" "https://stormgames.wolfe.casa/downloads/nvda2speechd32.dll"
install_wine_bottle speechsdk install_wine_bottle speechsdk
unzip -d "$WINEPREFIX/drive_c/Program Files" "${cache}/OhShit.zip" unzip -d "$WINEPREFIX/drive_c/Program Files" "${cache}/OhShit.zip"
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvda2speechd32.dll" "{}" \; find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvda2speechd32.dll" "{}" \;
@ -2884,7 +2773,7 @@ EOF
"Rhythm Rage") "Rhythm Rage")
export bottle="oriol-gomez" export bottle="oriol-gomez"
export winVer="win7" export winVer="win7"
download "http://oriolgomez.com/games/rr_en.zip" "${nvdaControllerClientDll}" download "http://oriolgomez.com/games/rr_en.zip" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient32.dll"
install_wine_bottle speechsdk install_wine_bottle speechsdk
unzip -d "$WINEPREFIX/drive_c/Program Files/rhythm rage" "${cache}/rr_en.zip" unzip -d "$WINEPREFIX/drive_c/Program Files/rhythm rage" "${cache}/rr_en.zip"
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvdaControllerClient32.dll" "{}" \; find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvdaControllerClient32.dll" "{}" \;
@ -2919,7 +2808,7 @@ EOF
;; ;;
"RS Games") "RS Games")
export version="7.0" export version="7.0"
download "http://rsgames.org/rsdownloads/rsgclient/rsgames-client-setup-2.01.exe" "${nvdaControllerClientDll}" download "http://rsgames.org/rsdownloads/rsgclient/rsgames-client-setup-2.01.exe" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient32.dll"
install_wine "$version" "32" install_wine "$version" "32"
export winVer="win7" export winVer="win7"
install_wine_bottle speechsdk install_wine_bottle speechsdk
@ -2937,7 +2826,7 @@ EOF
;; ;;
"Sammy Center") "Sammy Center")
export winVer="win7" export winVer="win7"
download "http://www.samtupy.com/games/SCSetup.exe" "${nvdaControllerClientDll}" download "http://www.samtupy.com/games/SCSetup.exe" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient32.dll"
install_wine_bottle speechsdk install_wine_bottle speechsdk
wine "${cache}/SCSetup.exe" /silent wine "${cache}/SCSetup.exe" /silent
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvdaControllerClient32.dll" "{}" \; find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvdaControllerClient32.dll" "{}" \;
@ -2953,7 +2842,7 @@ EOF
"Scramble!") "Scramble!")
winetricksSettings="vd=1024x768" winetricksSettings="vd=1024x768"
export winVer="win7" export winVer="win7"
download "https://stevend.net/downloads/scramble_win32.zip" "${nvdaControllerClientDll}" download "https://stevend.net/downloads/scramble_win32.zip" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient32.dll"
install_wine_bottle speechsdk install_wine_bottle speechsdk
unzip -d "$WINEPREFIX/drive_c/Program Files/" "${cache}/scramble_win32.zip" unzip -d "$WINEPREFIX/drive_c/Program Files/" "${cache}/scramble_win32.zip"
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvdaControllerClient32.dll" "{}" \; find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvdaControllerClient32.dll" "{}" \;
@ -2962,7 +2851,7 @@ EOF
"Screaming Strike 2") "Screaming Strike 2")
export bottle="nyanchan" export bottle="nyanchan"
export winVer="win7" export winVer="win7"
download "https://www.nyanchangames.com/softs/screamingStrike2.exe" "${nvdaControllerClientDll}" download "https://www.nyanchangames.com/softs/screamingStrike2.exe" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient32.dll"
install_wine_bottle fakejapanese speechsdk install_wine_bottle fakejapanese speechsdk
wine "${cache}/screamingStrike2.exe" & wine "${cache}/screamingStrike2.exe" &
xdotool sleep 10 key Return xdotool sleep 10 key Return
@ -2970,19 +2859,9 @@ EOF
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvdaControllerClient32.dll" "{}" \; find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvdaControllerClient32.dll" "{}" \;
add_launcher "c:\nyanchangame\Screaming Strike 2\play.exe" add_launcher "c:\nyanchangame\Screaming Strike 2\play.exe"
;; ;;
"Scrolling Battles")
export WINEARCH=win64
export winVer="win7"
get_installer "sbrw-win.zip" "https://masonasons.itch.io/sbrw"
download "https://stormgames.wolfe.casa/downloads/Tolk.dll"
install_wine_bottle
unzip -d "$WINEPREFIX/drive_c/Program Files/sbrw" "${cache}/sbrw-win.zip"
find "${WINEPREFIX}" -type f -name 'Tolk.dll' -exec cp -v "${cache}/Tolk.dll" "{}" \;
add_launcher "c:\Program Files\sbrw\sb.exe"
;;
"Sketchbook") "Sketchbook")
export winVer="win7" export winVer="win7"
download "http://sbyw.games/SBYW/SBYW.zip" "http://sbyw.games/SBYW/sounds.zip" "${nvdaControllerClientDll}" download "http://sbyw.games/SBYW/SBYW.zip" "http://sbyw.games/SBYW/sounds.zip" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient32.dll"
install_wine_bottle speechsdk install_wine_bottle speechsdk
mv -v "${cache}/sounds.zip" "${cache}/SBYW-sounds.zip" mv -v "${cache}/sounds.zip" "${cache}/SBYW-sounds.zip"
unzip -d "$WINEPREFIX/drive_c/Program Files/sketchbook" "${cache}/SBYW.zip" unzip -d "$WINEPREFIX/drive_c/Program Files/sketchbook" "${cache}/SBYW.zip"
@ -3015,7 +2894,7 @@ EOF
;; ;;
"Shadow Line") "Shadow Line")
export version="7.7" export version="7.7"
download "https://www.mm-galabo.com/sr/Download_files_srfv/shadowrine_fullvoice3.171.exe" "https://raw.githubusercontent.com/LordLuceus/sr-english-localization/master/language_en.dat" download "https://www.mm-galabo.com/sr/Download_files_srfv/shadowrine_fullvoice3.171.exe"
install_wine "$version" "32" install_wine "$version" "32"
export winVer="win8" export winVer="win8"
install_wine_bottle install_wine_bottle
@ -3029,44 +2908,19 @@ EOF
xdotool key --clearmodifiers --delay=500 space xdotool key --clearmodifiers --delay=500 space
xdotool key --clearmodifiers --delay=500 alt+f xdotool key --clearmodifiers --delay=500 alt+f
${wine}server -w ${wine}server -w
mv -v "${cache}/language_en.dat" "${WINEPREFIX}/drive_c/Program Files/GalaxyLaboratory/ShadowRine_FullVoice/SystemData/language_en.dat"
add_launcher "c:\Program Files\GalaxyLaboratory\ShadowRine_FullVoice\play_sr.exe" add_launcher "c:\Program Files\GalaxyLaboratory\ShadowRine_FullVoice\play_sr.exe"
echo "Please set the language to English when the game opens."
echo "Go to options and press enter."
echo "Press down arrow 5 times and press enter."
echo "Press down arrow 1 time and press enter."
echo "Press up arrow 2 times and press enter."
echo "If everything worked as expected you should be back on the game menu and speech should work."
alert
;; ;;
"Silver Dollar") "Silver Dollar")
export winVer="win7" export winVer="win7"
export bottle="draconis"
download "http://download.dracoent.com/Windows/SilverDollarSetup.exe" download "http://download.dracoent.com/Windows/SilverDollarSetup.exe"
install_wine_bottle speechsdk install_wine_bottle speechsdk
cp -v "${cache}/SilverDollarSetup.exe" "$WINEPREFIX/drive_c/windows/temp/" wine "${cache}/SilverDollarSetup.exe" /silent
wine "c:/windows/temp/SilverDollarSetup.exe" /sp- /silent
rm -fv "$WINEPREFIX/drive_c/windows/temp/SilverDollarSetup.exe"
# warning warning warning: Do not change location, or installer will not function. # warning warning warning: Do not change location, or installer will not function.
# FIXME: Hacky, but it works. Install dotnet40 by itself so it actually doesn't hang. # FIXME: Hacky, but it works. Install dotnet40 by itself so it actually doesn't hang.
DISPLAY="" winetricks -q dotnet40 DISPLAY="" winetricks -q dotnet40
wineserver -k # Damn you, dotnet. wineserver -k # Damn you, dotnet.
add_launcher "c:\Program Files\Draconis Entertainment\Silver Dollar\SilverDollarGui.exe" add_launcher "c:\Program Files\Draconis Entertainment\Silver Dollar\SilverDollarGui.exe"
;; ;;
"Simple Fighter")
export WINEARCH=win64
export winVer="win7"
get_installer "simple fighter.exe" "https://tsatria03.itch.io/simple-fighter"
if [[ ! -r "${cache}/simple-fighter-sounds.7z" ]] && [[ ! -r "${cache}/sounds.7z" ]]; then
get_installer "sounds.7z" "https://tsatria03.itch.io/simple-fighter"
mv "${cache}/sounds.7z" "${cache}/simple-fighter-sounds.7z"
fi
install_wine_bottle
7z x -o"$WINEPREFIX/drive_c/Program Files/simple fighter" "${cache}/simple fighter.exe"
7z x -o"$WINEPREFIX/drive_c/Program Files/simple fighter/sounds" "${cache}/simple-fighter-sounds.7z"
find "${WINEPREFIX}/drive_c/Program Files/bf" -type f -name 'nvdaControllerClient64.dll' -exec cp -v "${cache}/nvda2speechd64.dll" "{}" \;
add_launcher "c:\Program Files\simple fighter\game.exe"
;;
"Slender Lost Vision") "Slender Lost Vision")
export winVer="win7" export winVer="win7"
download "https://www.iamtalon.me/games/slender.zip" download "https://www.iamtalon.me/games/slender.zip"
@ -3116,12 +2970,6 @@ EOF
unzip -d "$WINEPREFIX/drive_c/Program Files/" "${cache}/space_defender.zip" unzip -d "$WINEPREFIX/drive_c/Program Files/" "${cache}/space_defender.zip"
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient64.dll' -exec cp -v "${cache}/nvdaControllerClient64.dll" "{}" \; find "${WINEPREFIX}" -type f -name 'nvdaControllerClient64.dll' -exec cp -v "${cache}/nvdaControllerClient64.dll" "{}" \;
add_launcher "c:\Program Files\space_defender\sdefender.exe" add_launcher "c:\Program Files\space_defender\sdefender.exe"
;;
"Star Treck Final Conflict")
download "https://agarchive.net/games/USA/star%20trek%20final%20conflict%20Setup.exe"
install_wine_bottle speechsdk
wine "${cache}/star trek final conflict Setup.exe" /silent
add_launcher "c:\Program Files\USA Games\Final Conflict\stfc.exe"
;; ;;
"Super Deekout") "Super Deekout")
export bottle=dan-z export bottle=dan-z
@ -3242,12 +3090,9 @@ EOF
;; ;;
"Ten Pin Alley") "Ten Pin Alley")
export winVer="win7" export winVer="win7"
export bottle="draconis"
download "http://download.dracoent.com/Windows/classic/TPAXPSetup.exe" download "http://download.dracoent.com/Windows/classic/TPAXPSetup.exe"
install_wine_bottle vb6run dx8vb speechsdk quartz install_wine_bottle vb6run dx8vb speechsdk quartz
cp -v "${cache}/TPAXPSetup.exe" "$WINEPREFIX/drive_c/windows/temp/" wine "${cache}/TPAXPSetup.exe" /sp- /silent
wine "c:/windows/temp/TPAXPSetup.exe" /sp- /silent
rm -fv "$WINEPREFIX/drive_c/windows/temp/TPAXPSetup.exe"
#winetricks -q msdxmocx # I think having this installed first breaks things. #winetricks -q msdxmocx # I think having this installed first breaks things.
# warning warning warning: Do not change location, or installer will not function. # 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. # FIXME: Hacky, but it works. Install dotnet20 by itself so it actually doesn't hang.
@ -3422,12 +3267,9 @@ export norh=false # Must install a voice, and rhvoice works easily with 64 bit.
;; ;;
"Ultimate SounDoku") "Ultimate SounDoku")
export winVer="win7" export winVer="win7"
export bottle="draconis"
download "http://download.dracoent.com/Windows/classic/USSetup.exe" download "http://download.dracoent.com/Windows/classic/USSetup.exe"
install_wine_bottle vb6run dx8vb speechsdk quartz install_wine_bottle vb6run dx8vb speechsdk quartz
cp -v "${cache}/USSetup.exe" "$WINEPREFIX/drive_c/windows/temp/" wine "${cache}/USSetup.exe" /sp- /silent
wine "c:/windows/temp/USSetup.exe" /sp- /silent
rm -fv "$WINEPREFIX/drive_c/windows/temp/USSetup.exe"
# warning warning warning: Do not change location, or installer will not function. # 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. # FIXME: Hacky, but it works. Install dotnet20 by itself so it actually doesn't hang.
winetricks -q dotnet20 winetricks -q dotnet20
@ -3436,7 +3278,7 @@ export norh=false # Must install a voice, and rhvoice works easily with 64 bit.
;; ;;
"Undead Assault") "Undead Assault")
export winVer="win7" export winVer="win7"
download "http://undead-assault.com/static/files/public/undead_assault.zip" "${nvdaControllerClientDll}" download "http://undead-assault.com/static/files/public/undead_assault.zip" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient32.dll"
install_wine_bottle speechsdk install_wine_bottle speechsdk
unzip -d "$WINEPREFIX/drive_c/Program Files/undead_assault" "${cache}/undead_assault.zip" unzip -d "$WINEPREFIX/drive_c/Program Files/undead_assault" "${cache}/undead_assault.zip"
find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvdaControllerClient32.dll" "{}" \; find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvdaControllerClient32.dll" "{}" \;

View File

@ -37,37 +37,16 @@
# Works which are defined in the CPAL as a work which combines Covered Code # 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. # or portions thereof with code not governed by the terms of the CPAL.
newVersion=82
WINEPREFIX="${XDG_DATA_HOME:-$HOME/.local}/wine/crazy-party"
oldVersion=$(find ~/.local/wine/crazy-party -type d -name 'Crazy-Party-beta*' | tr -cd '[:digit:]')
cache="${XDG_CACHE_HOME:-$HOME/.cache}/audiogame-manager" cache="${XDG_CACHE_HOME:-$HOME/.cache}/audiogame-manager"
configFile="${XDG_CONFIG_HOME:-$HOME/.config}/storm-games/audiogame-manager/games.conf" configFile="${XDG_CONFIG_HOME:-$HOME/.config}/storm-games/audiogame-manager/games.conf"
url="http://pragmapragma.free.fr/crazy-party/Crazy-Party-beta78.zip"
if [[ $oldVersion -le 78 ]]; then (rm -v "${cache}/Crazy-Party-beta77.zip"
echo "Crazy party has to be reinstalled because it is now a 64 bit application." wget -O "${cache}/Crazy-Party-beta78.zip" "$url" || { echo "Could not download file."; exit 1; }
echo "Please run audiogame-manager -r to remove the old version." unzip -DDod "$HOME/.local/wine/crazy-party/drive_c/Program Files" "${cache}/Crazy-Party-beta78.zip"
echo "You can then install it again with audiogame-manager -i" rm -fv "$HOME/.local/wine/crazy-party/drive_c/Program Files/Crazy-Party-beta78/nvdaControllerClient32.dll"
echo "Don't forget to make a backup of your save.bin file, custom card decks, and custom game lists." sed -i 's/Crazy-Party-beta77/Crazy-Party-beta78/' "$configFile"
find "${WINEPREFIX}/drive_c/Program Files" -type f -name 'save.bin' 2> /dev/null mv -v "$HOME/.local/wine/crazy-party/drive_c/Program Files/Crazy-Party-beta77/save.bin" "$HOME/.local/wine/crazy-party/drive_c/Program Files/Crazy-Party-beta78/"
find "${WINEPREFIX}/drive_c/Program Files" -type d -name 'deck' 2> /dev/null cp -ruv "$HOME/.local/wine/crazy-party/drive_c/Program Files/Crazy-Party-beta77/"* "$HOME/.local/wine/crazy-party/drive_c/Program Files/Crazy-Party-beta78/" 2> /dev/null
find "${WINEPREFIX}/drive_c/Program Files" -type d -name 'game' 2> /dev/null rm -rf "$HOME/.local/wine/crazy-party/drive_c/Program Files/Crazy-Party-beta77/") | dialog --progressbox "updating Crazy Party, please wait..." -1 -1
fi
if [[ $oldVersion -eq $newVersion ]]; then
echo "Crazy Party is up to date."
exit 0
fi
url="http://pragmapragma.free.fr/crazy-party/Crazy-Party-beta${newVersion}.zip"
(rm -v "${cache}/Crazy-Party-beta${oldVersion}.zip"
wget -O "${cache}/Crazy-Party-beta${newVersion}.zip" "$url" || { echo "Could not download file."; exit 1; }
unzip -DDod "${WINEPREFIX}/drive_c/Program Files" "${cache}/Crazy-Party-beta${newVersion}.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" "{}" \;
sed -i "s/Crazy-Party-beta${oldVersion}/Crazy-Party-beta${newVersion}/" "$configFile"
cp -v "${WINEPREFIX}/drive_c/Program Files/Crazy-Party-beta${oldVersion}/save.bin" "$HOME/.local/wine/crazy-party/drive_c/Program Files/Crazy-Party-beta${newVersion}/"
cp -ruv "${WINEPREFIX}/drive_c/Program Files/Crazy-Party-beta${oldVersion}/"* "$HOME/.local/wine/crazy-party/drive_c/Program Files/Crazy-Party-beta${newVersion}/" 2> /dev/null
rm -rf "${WINEPREFIX}/drive_c/Program Files/Crazy-Party-beta${oldVersion}/") | dialog --progressbox "updating Crazy Party, please wait..." -1 -1
exit 0 exit 0