After spending almost three hours trying to get Bioshock (the first game) working on my Windows 10 computer (upgraded from Windows 7), I determined that the issue was related to the initialisation of the audio device (regardless of what the audio device actually is / was). I’ve got a Creative Sound Blaster Audigy sound card, an onboard Realtek HD Audio sound card, the NVIDIA audio controller (courtesy of my NVIDIA GTX 560), Total Recorder audio drivers, e2eSoft audio drivers and a Logitech G930 gaming headset. No matter what combination of default devices etc that I tried, nothing ever worked.

Two things did work though.

  1. Disabling all the sound devices (in the Windows Device Manager and the Sound / Recording options)
  2. Starting the game with the -nosound switch (added to the launch options for Bioshock, on steam).

So that pretty much nailed it down. After a little more research on the internet, I discovered an audio initialisation was carried out at the very beginning of the execution of the game, during the developer intro.

Here’s another switch: -nointro.

Apparently the sound device initialization carried out at the very start, is simply used for displaying the developer intro. When you start the actual game, a separate audio initialisation is carried out.

Who needs to see the developer intro every time they start the game? I certainly don’t.

So I added this to the launch options for Bioshock, on steam

  • -nointro

Started the game, no issues. Set my resolution to max, changed my audio to 7.1 (to suit my Logitech G930) and off I went to Rapture!

No other changes, no compatibility mode, no run as administrator, no additional drivers (I’m not using / have never used OpenAL, Rapture3D) installed and no changes to Bioshock configuration files.

Of course, if you have a non-steam version of the game, you could create a shortcut to the bioshock.exe file and add -nointro to the end of the Target line, in the properties of the shortcut and start the game from the shortcut. Did I mention the word shortcut ;-P

This may not work for everyone, as I’ve seen some really ridiculous fixes (seriously, stuff that just doesn’t make sense, like plugging headphones into the microphone port) apparently get Bioshock working for others, so consider this solution to be just as crazy as all the others.

Happy to provide assistance with this solution in the comments. Have fun!

Click Here if You are Looking for an official ‘CentOS’ repository to perform the upgrade, instead of a compatible repository.

Upgrading PHP (from 5.1 to 5.3 for example) on a variety of common RPM based linux distributions (CentOS/RHEL, Whitebox, Fedora, etc) can be a tricky process. After some searching and playing around, I come across a simple method which should meet the needs of most. There is a fantastic repository known as the IUS Community Project.

We are committed to providing up to date and regularly maintained RPM packages for the latest upstream versions of PHP, Python, MySQL and other common software specifically for Redhat Enterprise Linux and clones.

A Word of Warning: Do not attempt the following on a server that has cPanel/WHM installed on it. You will break your server! Use the Easy Apache Updater through the WHM interface or the Easy Apache Updater script: /scripts/easyapache on the command line, to upgrade your PHP version and features.

The following process should get you were you want to be.

  1. Download and Install the IUS repositories. You can start here: Pick your release version and architecture (execute the command 'uname -a' (as root without the quotes) on the command line if you are unsure which you version you are using).
  2. Download the two repository packages. The first package will have a file name starting with epel-release (epel-release-1-1.ius.el5.noarch.rpm at the time of writing) and the second file will have a file name starting with ius-release (ius-release-1.0-6.ius.el5.noarch.rpm at the time of writing). On the command line, as root, you could execute the following commands: wget -c to download the EPEL IUS repository installer for CentOS (and variants) on the 64bit platform  and wget -c to download the IUS repository installer for CentOS (and variants) on the 64bit platform.
  3. Install the repositories, starting with the epel-release repository first: rpm -ivh epel-release-1-1.ius.el5.noarch.rpm and then rpm -ivh ius-release-1.0-6.ius.el5.noarch.rpm.
  4. Clear the system yum cache with this command: yum clean all
  5. Make sure the version want and related components are available: yum list php5*
  6. Remove any existing php and related components: yum remove php*
  7. Install the base php version you are after: yum install php52.x86_64
  8. Install any additional components or modules you may require: yum install php53u-eaccelerator.x86_64 php53u-ioncube-loader.x86_64 php53u-mbstring.x86_64 php53u-mcrypt.x86_64 php53u-mysql.x86_64 php53u-pdo.x86_64 php53u-xml.x86_64 php53u-xmlrpc.x86_64 php53u-gd.x86_64 and any others in the list that you want.
  9. Finished!

It is worth noting at this point, that both the IUS repository and the IUS EPEL repository are still enabled. Care should be taken in leaving them enabled, especially if you have yum automatically updating your software on a regular basis. If this is the case, or you don’t want to risk breaking your system with yum late one night, disable these repositories as follows:

  1. As root on the command line, navigate to the yum repositories directory: cd /etc/yum.repos.d/
  2. Edit epel.repo file and change the 'enabled=1' line to 'enabled=0' You could use ‘nano’ (yum install nano if you don’t have it): nano epel.repo change the line and press ctrl+o and then ctrl+x to save and exit
  3. Edit the ius.repo file and change the 'enabled=1' line to 'enabled=0' Again, you could use ‘nano’: nano ius.repo change the line and press ctrl+o and then ctrl+x to save and exit.
  4. Finally type: yum clean all
  5. Finished!

Leaving the IUS repositories enabled shouldn’t really cause you any problems. Then again, waking up one morning to find MySQL 5.0.x is now 5.1.x and everything on your server is now broken or not working, may be a good enough reason to disable them until needed, avoiding any accidental upgrades.

Official CentOS Repository for PHP

There isn’t one. But there is the testing repository. Edit your /etc/yum.repos.d/CentOS-Base.repo file or create a new /etc/yum.repos.d/CentOS-Testing.repo file with the following in it:

name=CentOS-5 Testing

# CentOS-Testing:
# !!!! CAUTION !!!!
# This repository is a proving grounds for packages on their way to CentOSPlus and CentOS Extras.
# They may or may not replace core CentOS packages, and are not guaranteed to function properly.
# These packages build and install, but are waiting for feedback from testers as to
# functionality and stability. Packages in this repository will come and go during the
# development period, so it should not be left enabled or used on production systems without due
# consideration.

Be sure to change the value of the line ‘enabled=0’ to ‘enabled=1’ when you want to use the repository. Change it back to ‘0’ when you are finished, to avoid any accidental upgrades.

Feel free to post your comments and feedback. If you need a little extra help, please do let me know.