Dumb programming from Aspyr
When I bought Quake 4 for the Mac, I found that it didn’t work from my normal user account. Why? Well…
If, after you first try to run the game, you look in ~/Library/Application Support/Quake4, you'll see a folder called q4base. Inside this folder is a bundle, game.so.bundle. The trouble is that Aspyr, who put it there, clearly think that a bundle should contain a folder called contents. It shouldn’t. The folder should be called Contents (note the capital letter ‘C’). And inside it should be a folder called MacOS, not a folder called macos.
Before you say “well you shouldn’t be using a case-sensitive filesystem”, which is exactly what Aspyr said when I reported it to them, my Mac is not using case-sensitive HFS+. My home area is on a server, however, and that server is using a case-sensitive filesystem. Aspyr tried to claim that this wasn’t supported by Apple, but of course it is… Apple make a big song and dance about how good Mac OS X is at integrating with other systems, and most Unix-like server systems use case-sensitive filesystems.
Anyway, you’d hope that they’d fix this problem, as it’s only a case of renaming a couple of files, right? But no, it’s still not fixed in the just released Prey Demo. So, if you want to get Quake 4, or Prey, or either of the demo versions working and your home area is case sensitive, here’s what to do:
- Run the game once. It will display its splash screen and then terminate (because it can’t load the bundle, because the bundle is invalid, because the names of the internal folders are wrong).
- Go to ~/Library/Application Support/name of game/q4base.
- Right-click game.so.bundle.
- Choose “Show Package Contents”.
- Rename “contents” to “Contents”.
- Open the “Contents” folder.
- Rename “macos” to “MacOS”.
- Run the game.
The most stupid thing about this entire business is that the one case-sensitivity bug in these games was added by Aspyr! The Windows programmers involved with them got it right, but the Mac programmers, whose operating system does support case-sensitive filesystems, got it wrong.
(By the way, if you use this technique, you’ll need to re-apply it if you download an update for either game.)
Hah. This is amusing. I had similar experience back when it was mostly westlake dealing with (the current Aspyr person once ran Westlake). Tony Hawk for Mac OS X didn't support controllers. They said they wouldn't until Apple added it to OS X. So I emailed them and pointed them to the HID sample code. They said it wasn't compatible with the Carbon CFM applications. So I emailed them and pointed them to the CFM Call Mach-o sample code from Apple. They then told me not to email them again and they'd only add it if their publisher gave them money and told them to add it.
Basically, it all boiled down to the fact they were in it for the money, not for the best Mac OS user experience.
Oh, also, having the wrong case for parts of a bundle can fail even on Case-insensitive file systems when using things like NSBundle/CFBundle. However, it's very random and *very* hard to track down when this happens.