Wednesday, April 27, 2011

Fahrenheit Post-Install stuff...

Well, after playing around with the game, I noticed a couple of things. First is that the dialog cuts like five or six seconds too early. This seems to be something to do with the game's internal timer because the conversations are spoken at a normal pace. Second is that at 1024x768, the game does slow down, making things pretty annoying when trying to interact with objects in the game. I bumped down the resolution to 800x600 which makes the game run perfectly. The last thing is that I changed the Fahrenheit bottle to be the default bottle and that has made the Desktop emulation option on winecfg take effect.

I'm pretty much set and have gone through a couple of chapters so it's been fun overall.

Tuesday, April 26, 2011

Playing Fahrenheit on CrossOver Games 8 (Lame Duck) on Ubuntu 9.10 (without Windows!)

I liked Atari's Fahrenheit when I played it years back, so I was delighted to see that wine's support for it was pretty much good. As usual with wine, it's not quite as straightforward as popping the disc and everything will pan out right. As it turned out, the winehq app database entry for Fahrenheit stresses the need to install the version 1.1 patch for the game and the No-CD patch for everything to work. No-CD patching is really the norm with Wine as copy protection simply doesn't work at all and no, you're not going to find links to that in this article!

Installing

Installing turned out to be a breeze with CrossOver Games 8 but we still need to update the game. Patching to 1.1 seems like not much of a big deal but apparently Wine support for the MSP file format is pretty dodgy right now and the 1.1 patch only comes in the MSP format (I think it's used in msiexec). I didn't like the proposed idea of installing Fahrenheit to Windows and patching it there, so I thought of another way to get this thing running.

Over this link, I figured that using another application to extract the MSP package was the next option. The program MsiX seems to do this relatively fine, so I grabbed the patch and extracted the Patch to see its contents.

$ <$CX_install>/bin/wine --bottle Sample MsiX.exe "Fahrenheit Patch1_1.msp" /out outdir

In case you're wondering, outdir is the target directory where MsiX will dump everything. CrossOver Games extracted it without any problems at all. In this directory, you'll see three files, #QPPrev1ToQPNewVersion, QPPrev1ToQPNewVersion, and PCW_CAB_Family00. The only file we're really looking for is PCW_CAB_Family00 which is a cabinet (.cab) file. With this we simply run cabextract!

$ cabextract PCW_CAB_Family00
Extracting cabinet: PCW_CAB_Family00
extracting fahrenheit.exe
extracting bytecode.btc

All done, no errors.

The Fahrenheit patch only has two files, the executable and a file called bytecode.btc. It's fairly obvious that the executable here is copy-protected so, that's not much of any help here. The file bytecode.btc contains updated information that should be copied to C:\Program Files\Atari\Fahrenheit\obj\BYTECODE.BTC. Once you overwrite the bytecode.btc file as well as apply the correct No-CD patch (as advised in the winehq database entry), you should get a patched version of Fahrenheit.

PulseAudio

CrossOver Games 8 has big problems with pulseaudio and its bloody annoying as the game audio stutters badly and the game freezes as soon as Lucas leaves the restroom of the diner! I scoured the net for information on this and came up with padsp which is an OSS wrapper to PulseAudio. So to get the audio working fine, I had to run the games with the OSS wrapper plus set the audio drivers to OSS.

$ padsp sh -c <$CX_install>/bin/cxsetup

This will run the CrossOver Games configuration Window, and from there you can get to the control panel for your Fahrenheit bottle and configure the Audio tab on winecfg. To run the game, I had to wrap it with padsp as well.

$ padsp sh -c <$CX_install>/bin/fahrenheit

The game should run now without problems. It goes full screen and I'm not sure why, but at least the game doesn't freeze and the audio doesn't stutter anymore. Next part is to revisit the game!