Compare commits

...

66 Commits

Author SHA1 Message Date
7359be180b Latest version of README merged to master. 2023-02-10 09:47:05 -05:00
fbba315e1b Merge branch 'testing', latest stable code and new games. 2023-01-23 16:19:44 -05:00
6b69da95c0 Merge branch 'testing', latest code and bug fixes. 2023-01-03 19:09:26 -05:00
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
50bb4a5383 Merge branch 'testing' latest code and bug fixes. 2022-11-10 18:16:48 -05:00
c5d88f5215 Merge branch 'testing' latest games and fixes. 2022-10-30 14:46:35 -04:00
8b7704167a Merge branch 'testing' latest games and bug fixes. 2022-10-23 19:08:01 -04:00
f2cdcaa62a Merge branch 'testing' latest bug fixes. 2022-10-15 18:08:50 -04:00
7bd0bb60f4 Merge branch 'testing' updated the README. 2022-10-06 16:46:44 -04:00
30803d6066 Merge branch 'testing' forgot to make a change to an installation file
before last merge.
2022-10-06 15:30:47 -04:00
90d64278aa Merge branch 'testing'. Things appear to be decently stable now. 2022-10-06 11:56:27 -04:00
620b8af135 Merge branch 'testing' 2022-09-19 11:14:10 -04:00
e86ddd7935 Merge branch 'testing' latest Crazy Party, beta 78. 2022-08-20 23:06:41 -04:00
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
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
11139ce376 Merge branch 'testing' in preparation for binary release. 2022-03-06 22:36:10 -05:00
10f4871bee Merge branch 'testing' in preparation for binary release. 2022-02-24 10:35:14 -05:00
ace9f56ae9 Merge branch 'testing' in preparation for binary release. 2022-02-06 14:36:21 -05:00
b290387fa0 Merge branch 'testing' in preparation for binary release. 2022-01-15 00:28:42 -05:00
2b436df45d Merge branch 'testing' in preparation for binary release. 2021-12-22 11:40:31 -05:00
e091ff036b Merge branch 'testing' in preparation for binary release. 2021-10-24 09:37:39 -04:00
4975822ce1 Merge branch 'testing' in preparation for binary release. 2021-09-11 23:54:41 -04:00
e0d9a9564d Merge branch 'testing' in preparation for binary release. 2021-08-20 16:58:43 -04:00
226c080cd0 Merge branch 'testing' in preparation for binary release. 2021-08-09 00:36:20 -04:00
6daad63de4 Merge branch 'testing' in preparation for binary release. 2021-07-23 18:55:45 -04:00
e133f7d318 Merge branch 'testing' in preparation for binary release. 2021-07-10 13:38:32 -04:00
fe8135ba96 Merge branch 'testing' in preparation for binary release. 2021-07-02 18:58:55 -04:00
054d0b2d5e Merge branch 'testing' in preparation for binary release. 2021-06-26 01:50:52 -04:00
7b57f8c8d2 Merge branch 'testing' in preparation for binary release. 2021-06-02 21:27:26 -04:00
f5b8b26c01 Merge branch 'testing' in preparation for binary release. 2021-05-10 18:01:42 -04:00
250498706d Merge branch 'testing' in preparation for binary release. 2021-05-04 12:08:09 -04:00
6b9428d2e4 Merge branch 'testing' in preparation for new binary release. 2021-04-28 18:09:25 -04:00
18a30297e8 Merge branch 'testing' in preparation for new binary release. 2021-04-27 02:43:04 -04:00
4f206e13cc Merge branch 'testing' in preparation for new binary release. 2021-04-24 15:51:56 -04:00
6cfdf58e68 Merge branch 'testing' for new binary release. 2021-02-28 14:01:57 -05:00
f7623868fc Merge branch 'testing' for new binary release 2021-02-21 17:41:20 -05:00
8ff0a56874 Merged to master for new release. 2021-01-16 23:36:07 -05:00
4cb854b881 Merge branch 'testing' 2021-01-10 12:47:36 -05:00
7052aefbb0 merged the Crazy Party update script to master. 2020-12-22 18:07:32 -05:00
fcce6243bf Merged to master. 2020-12-22 11:21:04 -05:00
bdeef5b367 Merged to master. 2020-12-20 22:19:26 -05:00
017f823544 merged to master. 2020-12-17 09:36:20 -05:00
1759661f34 removed duplicate file. 2020-12-13 12:27:24 -05:00
a3d5fd5b6a Lots of changes to get Mac support working.Merge branch 'testing' 2020-12-13 12:25:44 -05:00
61cf058921 Merged to master. 2020-12-06 12:47:43 -05:00
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
6a4464d692 merged to master. 2020-12-06 12:34:23 -05:00
26e53ee2c3 merged to master. 2020-12-01 15:09:54 -05:00
8c2e37e135 Merged to master. 2020-11-28 21:31:50 -05:00
1bffc6f244 Merged to master. 2020-11-25 12:19:56 -05:00
38a64cdb64 Merged to master. 2020-11-24 19:19:44 -05:00
609edfe111 Merged to master. 2020-11-17 17:17:59 -05:00
881498ea47 merged to master. 2020-11-14 13:50:22 -05:00
9f42469b89 Merged to master. 2020-11-08 20:19:44 -05:00
8a17939f3c Fixed merge conflict. 2020-11-02 08:30:09 -05:00
b5fe20eb2d Latest stable release. 2020-10-26 19:04:54 -04:00
793efc694b Merged to master. 2020-10-18 09:21:13 -04:00
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
fd33349864 Merged changes to master pending updated release. 2020-10-09 20:58:40 -04:00
e0b86e0e3c Merged a11y changes to master. 2020-09-29 22:08:10 -04:00
c3a7e39def Merged to master. 2020-09-21 06:59:28 -04:00
d9489819b7 Changed export for winearch to the installation function. 2020-09-21 06:56:31 -04:00
eae85b0299 Merged to master. 2020-09-20 17:43:18 -04:00
9532eef142 Merged latest audiogame-manager to master, added voice configuration utility. 2020-09-20 16:07:37 -04:00
14093c80ca Merged crazy pparty changes. 2020-09-20 11:23:03 -04:00
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

View File

@ -2,6 +2,7 @@
Installer and launcher for Windows based audio games under wine for Linux. Installer and launcher for Windows based audio games under wine for Linux.
## Usage ## Usage
./audiogame-manager.sh -c ./audiogame-manager.sh -c
@ -19,93 +20,16 @@ Select from a list of games to install.
With no arguments, the list of installed games will be displayed. In all the menus, both installer and launcher, use the up and down arrow keys to find the game you want. Press enter on the game to perform the action. For more detailed help, try the -h flag. With no arguments, the list of installed games will be displayed. In all the menus, both installer and launcher, use the up and down arrow keys to find the game you want. Press enter on the game to perform the action. For more detailed help, try the -h flag.
## Adding Games ## Language and Keyboard
Because of the size of the audiogame-manager.sh file, adding new titles may seem like a daunting task. For most games, however, the process is not terribly difficult. The majority of them require two edits. if you are using a language on your system other than English, you may need to temperarily change the keyboard layout while playing some games. To find out which keyboard layout you are currently using, run the following command:
setxkbmap -print -verbose 10 | grep -m1 'layout:'
### The Menu Section If the layout is not us, and if you are having some problems with keys not working, before you launch the game, run the following command to switch keyboard layout:
You need to add the game title as it appears in the menu when you launch audiogame-manager.sh. Let's use the fictitious title "My Awesome Game" in the following example. setxkbmap us
First, find the list of games. This is easily done by searching for the comment: When you are done with the game, switch back to your original layout so things will work as expected. The following example will switch your keyboard back to the Czech layout.
# The list of games available for installation. setxkbmap cz
You will notice an array called gameList. Add the title, in quotes, to the array. Use the existing list as a guide to keep things formatted similarly. Games are approximately alphebatized, although I did add some of them prier to coffee, so that doesn't always hold true. So for our example, the entry here would be:
"My Awesome Game"
That's it for the menu. It's worth noting that to disable a game from showing up in the installation menu, just add a # to comment out the entry.
### Installing the Game
In most cases, the process to install a game is straight forward. If the game in question is self-voiced, it is very easy in deed. The only difficult part may be finding out what, if any wine packages are needed. Continuing with the example game, let's say for the time being that it is a self-voiced game that is 32 bit and will work on any version of wine, so we don't care about setting it.
Once again, you can search for a string to get you to the top of the installation section. As before, the installers are approximately alphabetically ordered. So moving down to the "M" section, let's add the installer. find the string:
# Install game based on the selection above.
Then in the appropriate area, add the installer code. The example will have comments explaining what's going on.
# Add the game title to the case statement
"My Awesome Game")
# Set up the wine prefix in ~/.local/wine/my-awesome-game
install_wine_bottle
# Get the game's installation file
download "http://.example.com/my_awesome_game_setup.exe"
# run the installer with the silent flag so that it installs without any prompts which are inaccessible to screen readers on Linux.
wine "${cache}/my_awesome_game_setup.exe" /silent
# Create the launcher entry so audiogame manager knows how to start the game.
add_launcher "c:\Program Files\My Awesome Game\mag.exe"
;;
### Dealing with nvdaControllerClient.dll and SAPI
Note that currently the 64 bit wine version of SAPI does not work. Games that include the nvdaControllerClient will work, but in order for wine to process the speech with SAPI, the dll file needs to be removed. Let's change the above example because the imaginary developer of My Awesome Game got tired of recording all of those voice clips and changed the game to use SAPI instead. Here is the updated code with comments.
# Add the game title to the case statement
"My Awesome Game")
# Set up the wine prefix in ~/.local/wine/my-awesome-game and install speechsdk
install_wine_bottle speechsdk
# Get the game's installation file
download "http://.example.com/my_awesome_game_setup.exe"
# run the installer with the silent flag so that it installs without any prompts which are inaccessible to screen readers on Linux.
wine "${cache}/my_awesome_game_setup.exe" /silent
# Remove the nvdaControllerClient.dll file
# Note that it may just becalled nvdaControllerClient.dll or nvdaControllerClient32.dll
find "${WINEPREFIX}" -type f -name "nvdaControllerClient32.dll" -exec rm -fv "{}" \;
# Create the launcher entry so audiogame manager knows how to start the game.
add_launcher "c:\Program Files\My Awesome Game\mag.exe"
;;
In some cases, however, this will cause the game to not function at all. For these cases, we have a fake dll that can take the place of the original. You just need to make sure the fake dll is downloaded during game installation and then move it into place. For an example of how this works, please take a look at the "A Hero's Call" entry in audiogame-manager.sh.
### Dealing with compressed files
This is actually pretty easy. Just change the wine command to the command to extract the file to the proper location. If the "My Awesome Game" developer got tired of dealing with setup files and switched to zip, for instance, the new line would look like this.
unzip -d "$WINEPREFIX/drive_c/Program Files" "${cache}/my_awesome_game.zip"
Some games just extract to the current directory, which can make "Program Files" all cluttered. If you find this is the case, just add a directory name on to the end and it will be created, like so.
unzip -d "$WINEPREFIX/drive_c/Program Files/My Awesome Game" "${cache}/my_awesome_game.zip"
### When Things Get Complicated
If your game requires some extra setup before launching, there is a section to add code for it. As usual, there is a comment at the start of the section. Look for the string.
# for games that require custom scripts before launch or custom launch parameters
There are some tools available for getting games to speak that do not use any of the methods listed above. Look in the speech directory and you will find a clipboard translator and a script to read the current window title when it changes.
If your game is 64 bit only, you will need to add a section here to launch it with the nvda2speechd setup. For a detailed example of this, check out the "Code Dungeon" installer. This is a good one too because it demonstrates an oddity required to get the keyboard working as well as setting the Windows version and architecture. It also shows how to prompt the user for a file that cannot be downloaded automatically, e.g. something from Itch.
That covers most things. If the game happens to require .net, it can really get complicated indeed. For an example of this, take a look at the "Entombed" installer.
## Contributing
If you would like to contribute, please try to keep the code formatted like it is currently. Please make sure that your additions work on your computer before doing a pull request.