Alastair’s Place

Software development, Cocoa, Objective-C, life. Stuff like that.

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.)