Are you a Mac user, and a fan of audio games? Does it make you angry that there are only a few audio games for the Mac, and that you need Windows just to kill some zombies or play cards? Do you not have access to Windows, and find yourself suffering from game withdrawal? Well, my friends, I have great news: your suffering may be at an end! That's right, I'v been playing my favorite audio game, Swamp for a week now, and I've done it using only my Mac. No Bootcamp, no Windows virtualization, just me, my Mac, and some good wine.
Notes and Warnings
First of all, this won't work with all audio games out there. I have no way of testing them all, but the two I have tried worked just fine. Still, don't be surprised if the below steps don't work for your game, or if you can't get your game to run at all. That said, it's definitely worth a try, right?
Second, your game must not rely on a screen reader. Self-voicing games will work fine, and those that can use Sapi speech will work as well, with an extra step. The only limitation to Sapi speech is that, if your game won't let you choose your preferred Sapi voice, you can't select anything other than the default voice Microsoft Speech SDK comes with. You can install others, but not use them.
I'm no expert on this, and only just started playing with it. If you know more about Wine, and can offer any tips or suggestions, please do so in the comments and I will update this guide. For example, if you know how to install the speech preferences CPL, or you know of a DLL that will make some games run better, or you have any other ideas, please feel free to correct and enlighten me.
If your Mac runs reasonably well already, chances are it will handle audio games just fine. I have tested this on my own machine, a 2012 Macbook Air with 4GB of ram and a 1.4GhZ dual core Core I5 processor. I know two other people who have gotten this to work, but I am not certain of their Macs' configurations. This should work in any OS X version supported by the program we'll be using, and the website currently lists 10.6 Snow Leopard up through 10.10 Yosemite as being supported.
What You'll Need
First, of course, you need a Mac running Snow Leopard or newer. You'll then have to download Wineskin, a free app that will let you create a container for your Windows game. Part of this process will require sighted help, as you cannot install a screen reader in a wrapper, so have a sighted person handy who can click through a few installers for you. Finally, you will have to have the game installer or folder of game files handy. If the game is installed using a single .exe file, you will just need that file; if it comes in a folder, as Swamp does, you have to have that folder stored on your Mac somewhere, and not in a compressed format. Got all that? Okay, let's get started.
Install and Set Up Wineskin
Installation of Wineskin is pretty easy. The file you download will be a Zip file; just open it with cmd-o, and it will spit out a file called Wineskin Winery.app. You could run the app from anywhere, but for the sake of organization, I recommend putting it in your Applications folder along with all the other apps on your Mac. Should you ever want to remove it, simply delete the file. This will not remove any wrappers (see below) you make.
Once the app is where you want it, open it. It will display a dialog with an empty "installed engines" table and a few buttons. Activate the "Update" button and accept the version with which you will be presented. Let the update do its thing; you will land back on the main Wineskin window after everything is done. You'll only have to do this once.
Finally, activate the "add" button to the right of the "engines" table. Accept whatever version it offers (mine was 1.7.29, but you may get a newer one). Once done, the table will no longer be empty. Should a game ever require an older engine, you can add that engine here.
Creating the Wrapper
Now, let's get to the fun part: making your game run, or at least trying to. You'll need to make a "wrapper", which is essentially a simulated Windows environment. Each wrapper is meant to contain one Windows application and any supporting files that application needs to function. That is, your goal is not to create a single wrapper for all your games, but rather one wrapper per game.
From the main Wineskin Winery window, activate the "Create a New Blank Wrapper" button. You will land on a text field where you enter the name for the wrapper. It's easiest to name the wrapper the same as the name of the game this wrapper will be running; once you're done, you'll have an app with this name that you can run, so naming it after your game makes it easy to know which app is which. That said, the name you enter doesn't matter in the slightest, and you can even rename the app later should you wish to.
Once you've typed the name, hit enter or activate the OK button. Sit back and relax - the wrapper will take a few minutes to be created, and during the process focus will jump to a few different apps as things launch, close, and go busy. At one point, you might be placed in an app with the title you gave your wrapper, and VoiceOver will report that there are no windows. Don't panic, the process just isn't done yet. If this is your first wrapper, you will get two installers, one for Mono and one for Gecko. Neither is accessible, so have your sighted person finish those as they appear. Once everything is done, you will either be returned to the Wineskin Winery app, or to the app you were using just before Wineskin. If the latter happens, just command-tab back to Wineskin.
You will see a window saying that the file was created and telling you where it was placed (/Users/yourUserName/library/applications/wineskin is the default, but you can move the file later if you want to). Pressing enter will activate the "Show in Finder" button, which is exactly what you want. A Finder window will open to the afore mentioned folder, and you will see an app named with whatever you called your wrapper. Open this app to reveal the main window for your wrapper; from here you'll manage the Windows executable to be run, the version, manage the registry, and many more options and tools. If the app gives you an error instead, press enter to close it, then open the app again. This should only happen once, if it happens at all.
Setting Up Your Game
Now that the wrapper has been created, it's time to install the right tools and tell it to run your game. Once we're done, assuming everything works correctly, you'll just open this app to launch your game.
The first thing to do is install speech, if your game is not self-voicing. Please note that you can't change the Sapi voice unless your game allows you to choose a different voice, but default speech is better than no speech. To install Sapi:
- From the wrapper's main window, choose the Advanced button, then the Tools button on the resulting screen, and finally the Winetricks button.
- Locate the search field, and type this: speechsdk
- Move to the table (just to the right of the search field) and find the DLLs row. Press right arrow to expand it, down arrow to "Speechsdk", and check the box next to it. (Note: you don't need to interact with the table, just find the proper row and hit space to check the box).
- Now find and activate the "Run" button. You may need sighted help to complete this installer, as it will run within Wine's simulated Windows environment and thus VoiceOver will not be able to see that anything is happening.
- Once the installation is complete, you should be returned to the Winetricks window. We're done with it for now, so locate the "Close" button at the bottom of the window and activate it. You will be back on the Tools screen.
Next, we need to tell the wrapper which game to run when it's opened. This is a simpler process, and does not require sighted assistance.
- Assuming you are still on the Tools screen, find the Configuration tab and activate it.
- You'll see a Browse button next to a text field containing "nothing.exe". Ignore this button, even though it looks like what you want. Instead, go to the "Install Software" button near the bottom of the window and activate that.
- If your game is installed using a single .exe file, use the "Choose Setup Executable" button and locate your installer.
- If your game, like Swamp, is instead a folder from which you select the primary .exe file when you want to play, choose "Copy Folder", locate the folder containing the game files, and then select the .exe file to be used from the popup button. Note that you may need to command-tab away from, then back to, this window for VoiceOver to see it properly.
- Once the executable is chosen, you will be back in the configuration window and you can command-q to close it, unless you want to set any other options.
Finally, it's time to attempt running your game. Once you've closed the configuration you were just using and are back in Finder, open your wrapper app file again. If all goes well, you will now be able to do this whenever you want to play, and your game will start up. All keystrokes and mouse movements/buttons will be caught by the game window, except those used for VoiceOver, so I suggest turning VoiceOver off while playing.
If you ever need to go back and change anything about your wrapper, such as to change the executable file or version, install more Winetricks packages, change keyboard settings, etc, you can. You may also need to update the files your game uses (replace sounds, update maps, and so on). To do either:
- Find the .app file in Finder and right/control-click it (control-option-shift-m).
- Choose "Show Package Contents" from the resulting menu.
- The wine.app file is what you want to run to get back to the configuration options.
- Use the drive_c item to open the folder Wine uses to simulate a Windows hard drive if you need to update files stored in your game. For instance, Swamp players can place updated Swamp files in the Swamp folder this way, or add new campaigns, maps, or sound files.
It Didn't Work
The first thing to do is install .net in your wrapper. Use the method described above to get back to Winetricks, then search for ".net40" and install the .net 4.0 package. If that fails, try also installing DirectX7, or any other packages the game might require. Please understand that I cannot offer advice on individual games, so you'll need to use forums (such as those on audiogames.net or contact the game's developer to get suggestions if your game won't run.
The error you see when running the wrapper for the first time should only happen once. As stated earlier, just hit enter to dismiss it, and run the wrapper again.
If your game runs on a central server, such as Swamp or The Road to Rage, your firewall settings may at first prevent Wineskin and/or your wrapper from connecting properly. Once your game is running, press control-option-f1, then quickly tap f1 again (remember to add the function key if your Mac is set up that way). This will open the Application Chooser menu; see if there are any system dialogs in there about an application wanting to accept incoming connections. If there are, and you know that the app requesting the connections is your game, allow it. You should only have to do this once for every game wrapper you create.
If you get an error during the installation of a Winetricks package, the only thing I've found to work is to scrap the wrapper (by deleting it) and start over. Wrappers are easy and pretty fast to create, so doing this is annoying but not bad.
A Note to Swamp Players
Swamp won't work at first. After you copy the Swamp folder into the wrapper, be sure that checkup.exe is the executable chosen to run, NOT swamp.exe. Get sighted help to run the checkup program once you launch the wrapper; once it runs, close the wrapper, go back to the configuration settings as described above, and only then set the executable to swamp.exe.
The following are the problems I've found so far playing Swamp. I can easily live with all of them, but you should know what to expect.
- Sapi can cut off the ends of messages if set to speak quickly. I don't know if this is Wine or just the voice Sapi uses by default.
- There is a delay between firing a weapon and hearing the projectile's impact. This lag seems worse with the shotguns, but is certainly noticeable for all weapons. Oddly, no such lag occurs in Practice mode, only during online play.
- Be sure that you clear text from edit fields, or things might not work right. This is especially true when sending items to other players or assigning skill points. Since there is no screen reader, you will have to arrow to the end of the text and delete a bunch of times, then hope you got all the text.