Hello everyone.

A few months ago I decided I'd give BioShock another spin, since I loved the whole game idea, the concept and Infinite is nearly here (1-2 months to wait for it). Once I did that, I hit the exact same problem people are complaining about: didn't have any NPC sound, no music, just hollow sounds in the background. Not even the dialogue sounds - the subtitles were playing normally though.

So I started to investigate. I noticed that the game doesn't get installed fully unless you have an internet connection, as it attempts to auto-update on the fly. Once it does that, the install finishes, and you can play.

I obtained a different copy of the game from my friend which had it bought from a different shop - can't remember from where. I installed the game to a different folder. Tested his version and it worked perfectly.

I started to wonder why.. And here's my discovery:

1. 'Default.ini' should look like below (although I'm pretty sure it gets auto-generated on every game init):

Code:
[Startup]
PersistentPackages=Core
PersistentPackages=Engine
PersistentPackages=FMODAudio
PersistentPackages=IGEffectsSystem
PersistentPackages=IGVisualEffectsSubsystem
PersistentPackages=IGSoundEffectsSubsystem
PersistentPackages=VengeanceShared
; Rowan: disable IpDrb coz we have no network code
;PersistentPackages=IpDrv
PersistentPackages=Scripting
PersistentPackages=Tyrion

; Bioshock-specific persistent packages

PersistentPackages=ShockGame
PersistentPackages=ShockAI
PersistentPackages=IGModEffectsSubsystem

[Perobjectconfig]
; configuration files in root directory
PerObjIniFile=startup.ini
PerObjIniFile=DefUser.ini
PerObjIniFile=Default.ini

; Configuration files in system directory.
;
; The seek-free system requires this section to specify any INI files from  
; which per-object config data may be loaded at runtime due to runtime
; object creation. 
;
; Note: Version.ini is needed so that we can get the build number in the 
; logs and crash stacks

PerObjIniFile=Version.ini
PerObjIniFile=Ai.ini
PerObjIniFile=Bathysphere.ini
PerObjIniFile=Difficulty.ini
PerObjIniFile=Gui.ini
PerObjIniFile=Hacking.ini
PerObjIniFile=LootTables.ini
PerObjIniFile=Manual.ini
PerObjIniFile=Plasmids.ini
PerObjIniFile=Quests.ini
PerObjIniFile=Spawning.ini
PerObjIniFile=Speech.ini
PerObjIniFile=Weapons.ini
PerObjIniFile=ResourceLimits.ini
PerObjIniFile=Bindings.ini
PerObjIniFile=Physics.ini
PerObjIniFile=Animation.ini
PerObjIniFile=AutoTest.ini

[Languages]
language=int
language=esp
language=deu
language=fra
language=ita

[XenonLanguageMapping]
XC_LANGUAGE_ENGLISH=int
XC_LANGUAGE_GERMAN=deu
XC_LANGUAGE_FRENCH=fra
XC_LANGUAGE_SPANISH=esp
XC_LANGUAGE_ITALIAN=ita
XC_LANGUAGE_KOREAN=int
XC_LANGUAGE_TCHINESE=int
XC_LANGUAGE_PORTUGUESE=int

;;========================================================================
;; XBox360 file caching hints
;;
;; Cache hint values must follow these two rules:
;;
;; 1) A file extension description of the following form: "*.ext", where ext is the name of a file extension. 
;; 2) A directory description of the following form: "game:\dir\subdir\", where dir and subdir are directory names.
;;    The string must have a drive name, and must end in a back slash.
;;    Files contained in the directory (and in all sub-directories) are passed to the caching system. 
;;========================================================================

[XenonFileCaching]

;; NOTE: unless they are in the DoNotCache list, all files can potentially 
;; be cached. The AlwaysCacheWithPriority and AlwaysCache lists are just 
;; hints to the caching system that these files should definitely be cached
;; (so that they can be cached even if they haven't been used in-game yet)

; CACHE THESE FILES AND PREFER NOT TO REMOVE THEM FROM THE CACHE 
; Files that should be always try to be cached, and prefer NOT to be removed 
; when space is needed (e.g., files that are needed all the time)

AlwaysCacheWithPriority=game:\BulkContent\DynamicBulkFileTextures.blk
AlwaysCacheWithPriority=game:\FlashMovies\ProgressBar.swf

; CACHE THESE FILES 
; Files that should be always try to be cached, and 
; needed (e.g., files that are needed all the time)
;
; NOTES ON WHY THESE FILES ARE LISTED AND IN THIS ORDER: these files
; are listed this way for a particular reason. 
;
;  First, they are listed in the reverse order that we want them
;  cached. This is because, for some reason, the Microsoft caching
;  system caches them in the opposite order that we ask it to. 
; 
;  Second, the goal is to be caching shared files and the files for
;  the upcoming level while you're in the current level.
;
;  Third, streaming audio files are smaller than bulk texture files;
;  we cache them before bulk files so that it's more likely at least
;  some of the content will be on the HD when it's needed.
;
;  Fourth, we want to cache localized audio before non-localized,
;  because it's more likely (when you're playing in a non-english
;  build) that the localized FSB files will be accessed more frequently
;  than their non-localized ones
;
;  Fifth, it's more important to cache bulk textures than streaming music
;

AlwaysCache=game:\Sounds_Xenon\streams_audio.fsb

AlwaysCache=game:\Sounds_Xenon\streams_99_audio.ita_fsb
AlwaysCache=game:\Sounds_Xenon\streams_99_audio.fsb
AlwaysCache=game:\Sounds_Xenon\streams_99_audio.fra_fsb
AlwaysCache=game:\Sounds_Xenon\streams_99_audio.esp_fsb
AlwaysCache=game:\Sounds_Xenon\streams_99_audio.deu_fsb

AlwaysCache=game:\Sounds_Xenon\streams_7_music_audio.fsb
AlwaysCache=game:\Sounds_Xenon\streams_7_audio.ita_fsb
AlwaysCache=game:\Sounds_Xenon\streams_7_audio.fsb
AlwaysCache=game:\Sounds_Xenon\streams_7_audio.fra_fsb
AlwaysCache=game:\Sounds_Xenon\streams_7_audio.esp_fsb
AlwaysCache=game:\Sounds_Xenon\streams_7_audio.deu_fsb

AlwaysCache=game:\Sounds_Xenon\streams_6_music_audio.fsb
AlwaysCache=game:\BulkContent\7-bossfightLevel.blk
AlwaysCache=game:\BulkContent\7-GauntletLevel.blk
AlwaysCache=game:\BulkContent\7-scienceLevel.blk
AlwaysCache=game:\Sounds_Xenon\streams_6_audio.ita_fsb
AlwaysCache=game:\Sounds_Xenon\streams_6_audio.fsb
AlwaysCache=game:\Sounds_Xenon\streams_6_audio.fra_fsb
AlwaysCache=game:\Sounds_Xenon\streams_6_audio.esp_fsb
AlwaysCache=game:\Sounds_Xenon\streams_6_audio.deu_fsb

AlwaysCache=game:\Sounds_Xenon\streams_5_music_audio.fsb
AlwaysCache=game:\BulkContent\6-slumsLevel.blk
AlwaysCache=game:\BulkContent\6-resiLevel.blk
AlwaysCache=game:\Sounds_Xenon\streams_5_audio.fsb
AlwaysCache=game:\Sounds_Xenon\streams_5_audio.ita_fsb
AlwaysCache=game:\Sounds_Xenon\streams_5_audio.fra_fsb
AlwaysCache=game:\Sounds_Xenon\streams_5_audio.esp_fsb
AlwaysCache=game:\Sounds_Xenon\streams_5_audio.deu_fsb

AlwaysCache=game:\Sounds_Xenon\streams_4_music_audio.fsb
AlwaysCache=game:\BulkContent\5-ryanLevel.blk
AlwaysCache=game:\BulkContent\5-hephaestusLevel.blk
AlwaysCache=game:\Sounds_Xenon\streams_4_audio.fsb
AlwaysCache=game:\Sounds_Xenon\streams_4_audio.ita_fsb
AlwaysCache=game:\Sounds_Xenon\streams_4_audio.fra_fsb
AlwaysCache=game:\Sounds_Xenon\streams_4_audio.esp_fsb
AlwaysCache=game:\Sounds_Xenon\streams_4_audio.deu_fsb

AlwaysCache=game:\Sounds_Xenon\streams_3_music_audio.fsb
AlwaysCache=game:\BulkContent\4-recreationLevel.blk
AlwaysCache=game:\Sounds_Xenon\streams_3_audio.fsb
AlwaysCache=game:\Sounds_Xenon\streams_3_audio.ita_fsb
AlwaysCache=game:\Sounds_Xenon\streams_3_audio.fra_fsb
AlwaysCache=game:\Sounds_Xenon\streams_3_audio.esp_fsb
AlwaysCache=game:\Sounds_Xenon\streams_3_audio.deu_fsb

AlwaysCache=game:\Sounds_Xenon\streams_2_music_audio.fsb
AlwaysCache=game:\BulkContent\3-marketLevel.blk
AlwaysCache=game:\BulkContent\3-arcadiaLevel.blk
AlwaysCache=game:\Sounds_Xenon\streams_2_audio.fsb
AlwaysCache=game:\Sounds_Xenon\streams_2_audio.ita_fsb
AlwaysCache=game:\Sounds_Xenon\streams_2_audio.fra_fsb
AlwaysCache=game:\Sounds_Xenon\streams_2_audio.esp_fsb
AlwaysCache=game:\Sounds_Xenon\streams_2_audio.deu_fsb
AlwaysCache=game:\Sounds_Xenon\streams_1_music_audio.fsb

AlwaysCache=game:\BulkContent\2-subbayLevel.blk
AlwaysCache=game:\BulkContent\2-fisheriesLevel.blk
AlwaysCache=game:\BulkContent\1-medicalLevel.blk
AlwaysCache=game:\Sounds_Xenon\streams_1_audio.fsb
AlwaysCache=game:\Sounds_Xenon\streams_1_audio.ita_fsb
AlwaysCache=game:\Sounds_Xenon\streams_1_audio.fra_fsb
AlwaysCache=game:\Sounds_Xenon\streams_1_audio.esp_fsb
AlwaysCache=game:\Sounds_Xenon\streams_1_audio.deu_fsb

AlwaysCache=game:\Sounds_Xenon\streams_aivo_audio.ita_fsb
AlwaysCache=game:\Sounds_Xenon\streams_aivo_audio.fsb
AlwaysCache=game:\Sounds_Xenon\streams_aivo_audio.fra_fsb
AlwaysCache=game:\Sounds_Xenon\streams_aivo_audio.esp_fsb
AlwaysCache=game:\Sounds_Xenon\streams_aivo_audio.deu_fsb

AlwaysCache=game:\Sounds_Xenon\streams_music_common_audio.fsb

AlwaysCache=game:\BulkContent\1-welcomeLevel.blk
AlwaysCache=game:\Sounds_Xenon\streams_0_music_gui_audio.fsb
AlwaysCache=game:\Sounds_Xenon\streams_0_music_audio.fsb
AlwaysCache=game:\Sounds_Xenon\streams_0_audio.fsb


; DO NOT CACHE THESE FILES
; Files that should not be cached to the hard drive, ever

; --> misc

; NOTE: never cache the shader cache; it sometimes causes shaders to always be recompiled at runtime
DoNotCache=*.xbs
; NOTE: never cache the maps; they're loaded only once in a while
DoNotCache=*.bsm
; We don't cache the lighthouse content because you're only ever in lighthouse 
; once and we're better served caching e.g. welcome content while in lighthouse
DoNotCache=game:\BulkContent\0-lighthouseLevel.blk

; --> bink
; NOTE: we explicitly don't cache only the bink movies that we know are only
;       played once. The others are allowed to be opportunistically cached


DoNotCache=game:\BinkMovies\2KG_logo_720P.bik
DoNotCache=game:\BinkMovies\300K-640X360.bik
DoNotCache=game:\BinkMovies\attractMovie.bik
DoNotCache=game:\BinkMovies\Bathy_BG.bik
DoNotCache=game:\BinkMovies\BrightnessAdjust.bik
DoNotCache=game:\BinkMovies\Controls.bik
	; DoNotCache=game:\BinkMovies\CraftingBG.bik
DoNotCache=game:\BinkMovies\Credits.bik
DoNotCache=game:\BinkMovies\GathererTeddyBear.bik
	; DoNotCache=game:\BinkMovies\HackingBG.bik
	; DoNotCache=game:\BinkMovies\HackingBGbots.bik
	; DoNotCache=game:\BinkMovies\HackingBGcamera.bik
	; DoNotCache=game:\BinkMovies\HackingBGcrafting.bik
	; DoNotCache=game:\BinkMovies\HackingBGhealth.bik
	; DoNotCache=game:\BinkMovies\HackingBGsafe.bik
	; DoNotCache=game:\BinkMovies\HackingBGvending.bik
DoNotCache=game:\BinkMovies\Harvest.bik
DoNotCache=game:\BinkMovies\Harvest4x3.bik
DoNotCache=game:\BinkMovies\HarvestedGatherers.bik
	; DoNotCache=game:\BinkMovies\ManualBG.bik
DoNotCache=game:\BinkMovies\PlaneSequence.bik
DoNotCache=game:\BinkMovies\PlasmaNow_BG1.bik
DoNotCache=game:\BinkMovies\PlasmaNow_BG2.bik
DoNotCache=game:\BinkMovies\PlasmaNow_BG3.bik
DoNotCache=game:\BinkMovies\PlasmaNow_BG4.bik
DoNotCache=game:\BinkMovies\PlasmidBefriendBigDaddyTraining.bik
DoNotCache=game:\BinkMovies\PlasmidCryoShardTraining.bik
DoNotCache=game:\BinkMovies\PlasmidDecoyTraining.bik
DoNotCache=game:\BinkMovies\PlasmidElectroBoltTraining.bik
DoNotCache=game:\BinkMovies\PlasmidEnrageTraining.bik
DoNotCache=game:\BinkMovies\PlasmidIncinerateTraining.bik
DoNotCache=game:\BinkMovies\PlasmidInsectSwarmTraining.bik
DoNotCache=game:\BinkMovies\PlasmidSecurityBeaconTraining.bik
DoNotCache=game:\BinkMovies\PlasmidSonicBoomTraining.bik
DoNotCache=game:\BinkMovies\PlasmidTelekinesisTraining.bik
DoNotCache=game:\BinkMovies\PlasmidVortexTrapTraining.bik
DoNotCache=game:\BinkMovies\SavedGatherers.bik
DoNotCache=game:\BinkMovies\WouldYouKindly.bik
DoNotCache=game:\BinkMovies\WouldYouKindly4x3.bik

; --> flash
DoNotCache=game:\FlashMovies\EndingMovieHarvestedGatherers.swf
DoNotCache=game:\FlashMovies\EndingMovieSavedGatherers.swf
DoNotCache=game:\FlashMovies\EndingMovieHarvestedGatherers.swf
DoNotCache=game:\FlashMovies\Bathysphere.swf
DoNotCache=game:\FlashMovies\ComboLock.swf
DoNotCache=game:\FlashMovies\ControlsContainer.swf
DoNotCache=game:\FlashMovies\craftingStation.swf
DoNotCache=game:\FlashMovies\CreditsContainer.swf
DoNotCache=game:\FlashMovies\EndingMovieHarvestedGatherers.swf
DoNotCache=game:\FlashMovies\EndingMovieSavedGatherers.swf
DoNotCache=game:\FlashMovies\FadeIn.swf
DoNotCache=game:\FlashMovies\FadeOut.swf
DoNotCache=game:\FlashMovies\GenericBinkContainer.swf
DoNotCache=game:\FlashMovies\hacking.swf
DoNotCache=game:\FlashMovies\HUDRadial.swf
DoNotCache=game:\FlashMovies\InfoBoxContainer.swf
DoNotCache=game:\FlashMovies\ingamemanual.swf
DoNotCache=game:\FlashMovies\maps.swf
DoNotCache=game:\FlashMovies\NTSCColorBars.swf
DoNotCache=game:\FlashMovies\pause.swf
DoNotCache=game:\FlashMovies\PlasmidEquipStation.swf
DoNotCache=game:\FlashMovies\PlasmidTrainingContainer.swf
DoNotCache=game:\FlashMovies\PlasmiNow.swf
	; NOTE: we cache the progress bar since it's the only flash movie that's loaded and unloaded in-game
	; DoNotCache=game:\FlashMovies\ProgressBar.swf
DoNotCache=game:\FlashMovies\sharedlibrary.swf
DoNotCache=game:\FlashMovies\Warning.swf

;;========================================================================
;;========================================================================

[URL]
Protocol=Bioshock
ProtocolDescription=Bioshock Protocol
Name=Player
Map=Index.bsm
LocalMap=Entry.bsm
Host=
Portal=InitialSpawn
MapExt=bsm
EXEName=bioshock.exe
SaveExt=bsg
Port=8888
Class=ShockGame.ShockPlayer

; XenonRoot is the directory underneath XE:\ that contains the executable and the root of the game content.
XenonRoot=Bioshock
XenonTargetDir=XE:\bioshock
XenonEXEName=Bioshock_Xenon.xex

[FirstRun]
FirstRun=0

[TestTrack]
; NOTE: the TestTrackProxy.php file on the boston server is on 'debian', which is 192.168.100.16
ProxyURL=http://192.168.100.16/TestTrackProxy.php
; NOTE: the server soap client is on 2K Los Angeles' server 64.167.75.22
ServerSoapClientUrl=http://64.167.75.11/ttsoapcgi.wsdl
ProductBugSubmittedFromConsoleTool=Xbox 360
ProductBugSubmittedFromUnrealEd=Both
ProductBugSubmittedFromPCGame=Both
Project=Bioshock
UserName=LASTNAME, FIRSTNAME
Priority=1 - Extreme
Priority=2 - High
Priority=3 - Major
Priority=4 - Normal
Priority=5 - Minor
Priority=Feedback / Suggestion
Priority=Feature Request

[FogBugz]
BugDB="Bioshock"
Area="Misc"
URL="http://minuteman/fogbugz/scoutSubmit.asp?FriendlyResponse=1&ForceNewBug=0&ScoutProject=%s&ScoutUserName=%s&ScoutArea=%s&Description=%s&Extra=%s&ScoutDefaultMessage=Your%%20bug%%20has%%20been%%20submitted."
FILEURL="http://minuteman/fogbugz/"

[StatNotifyProviders]
StatsNotifyProvider_UDP=1

[Bink]
IntroMoviePC="..\BinkMovies\2KG_logo_720P.bik"
; 0 buffer size means use default
IntroMovieBufferSizePC=0
IntroMovieXBox360="..\BinkMovies\2KG_logo_720P.bik"
; 5MB for now needs testing with final intro movie
IntroMovieBufferSizeXBox360=5242880

AttractMovieXBox360="..\BinkMovies\attractMovie.bik"

;; Use 20mb for attract movie; reduces DVD reads which allows more caching to the hard drive while
;; the attract movie plays
AttractMovieBufferSizeXBox360=20971520

BioshockLogoMoviePC="..\BinkMovies\BioshockLogo.bik"
BioshockLogoMovieXBox360="..\BinkMovies\BioshockLogo.bik"
; 1MB for now needs testing with final logo movie
BioshockLogoMovieBufferSizeXBox360=268608

[SaveGame]

;the maximum save game size for any individual level
; 2MB
MaximumLevelSaveSizeBytes=2097152

ThumbnailFilename=game:\System\savegame.png

[Engine.Engine]
UsePerforce=1
GameDriverClassName=ShockGame.ShockGameDriver
RenderDevice=D3DDrv.D3DRenderDevice
AudioDevice=FMODAudio.FMODAudioSubsystem
AudioDevice_Xenon=FMODAudio.FMODAudioSubsystem
;NetworkDevice=IpDrv.TcpNetDriver
ViewportManager=WinDrv.WindowsClient
ViewportManager_Xenon=XeDrv.XenonClient
DemoRecordingDevice=Engine.DemoRecDriver
Console=Engine.Console
;DefaultPlayerMenu=UDebugMenu.UDebugRootWindow
DefaultPlayerMenu=
Language=int
GameEngine=Engine.GameEngine
EditorEngine=Editor.EditorEngine
GUIController=Engine.FlashGUIController
DefaultGame=ShockGame.ShockGameInfo
DefaultServerGame=ShockGame.ShockGameInfo
Render=Render.Render
Input=Engine.Input
Canvas=Engine.Canvas
; Note: Do NOT enable ForceActorCleanup in shipping builds, it will kill performance.
; However, by enabling it you force references to destroyed actors to be cleaned up
; immediately when the actor is destroyed, which causes dangling-ref bugs to manifest
; more quickly. Hence it's good to keep on in debug builds.
ForceActorCleanup=0

[Core.System]
PurgeCacheDays=30
; note that the savepath must use backslashes
; because the URL parsing mechanism trips on a pair of forward slashes
SavePath=SaveGames
MemoryPath=MEMORY\CurrentGame
CachePath=..\Cache
CacheExt=.bxx

; Paths for core engine (non-game specific) content
Paths=*.u
Paths=../Engine/*.pkg
Paths=../Engine/*.hka

; .U paths for asset catalog and effects system cache packages
Paths=../System/*.u

; Standard paths for game-specific content
Paths=../Maps/*.unr
Paths=../Maps/*.bsm
Paths=../Maps/Maps_Working/*.unr
Paths=../Maps/Maps_Working/*.bsm
Paths=../Art/*.pkg
Paths=../Art/Characters/*.pkg
Paths=../Art/Game/*.pkg
Paths=../Art/Level/*.pkg
Paths=../Art/UI/*.pkg
Paths=../Art/Weapons/*.pkg
Paths=../Classes/*.pkg

; Bink Movies
Paths=../BinkMovies/*.bik

; Legacy paths to support the transition to .pkg format
Paths=../Art/*.hka
Paths=../Art/Characters/*.hka
Paths=../Art/Game/*.hka
Paths=../Art/Level/*.hka
Paths=../Art/UI/*.hka
Paths=../Art/Weapons/*.hka
Paths=../Animations/*.pkg
Paths=../Art/*.ukx
Paths=../Art/Characters/*.ukx
Paths=../Art/Game/*.ukx
Paths=../Art/Level/*.ukx
Paths=../Art/UI/*.ukx
Paths=../Art/Weapons/*.ukx
Paths=../Textures/*.utx
Paths=../StaticMeshes/*.usx
Paths=../Animations/*.ukx
Paths=../Sounds/*.uax
Paths=../Music/*.umx
Paths=../Saves/*.uvx
Paths=../Classes/*.u
Paths=../Classes/*.pkg
Paths=../System/*.u
Paths=../Prefabs/*.pkg

; Test directories
Paths=../Test/Art/*.pkg
Paths=../Test/Art/Characters/*.pkg
Paths=../Test/Art/Game/*.pkg
Paths=../Test/Art/Level/*.pkg
Paths=../Test/Art/UI/*.pkg
Paths=../Test/Art/Weapons/*.pkg
Paths=../Test/Maps/*.bsm
Paths=../Test/Maps/*.unr
Paths=../Test/Maps/Performance/*.unr
Paths=../Test/Maps/Components/*.bsm 
Paths=../Test/Maps/AITestMaps/*.bsm 
Paths=../Test/Textures/*.utx
Paths=../Test/Textures/*.pkg
Paths=../Test/StaticMeshes/*.usx
Paths=../Test/StaticMeshes/*.pkg
Paths=../Test/Animations/*.ukx
Paths=../Test/Animations/*.pkg
Paths=../Test/Sounds/*.uax
Paths=../Test/Sounds/*.umx
Paths=../Test/Sounds/*.pkg
Paths=../Test/Classes/*.u
Paths=../Test/Classes/*.pkg

Suppress=DevLoad
Suppress=DevSave
Suppress=DevNetTraffic
Suppress=DevNetTrafficRPC
Suppress=DevGarbage
Suppress=DevKill
Suppress=DevReplace
Suppress=DevCompile
Suppress=DevBind
Suppress=DevBsp
Suppress=DevAssert
;Suppress=WindowedMode
Suppress=Log
Suppress=ScriptLog

[PerformanceLimits]
; Wait until the game has been running for 5 seconds before starting to track stats (prevents spike at start of level)
InitialDelaySeconds=5
; Warn when ANY stat exceeds the SpikeLimit
SpikeLimit=75

[XenonPerformanceLimits]
Core.Log (native)=0.3
Core.Logs (script)=0.5
Engine.MainGameUpdate=33
Engine.ActorTick=15
Engine.Move=6
Engine.Particles (All)=6
Engine.Particles (Active)=4
Engine.Flash Update=2.5
Render.Scene GPU=33
Render.Scene Render=33
Render.Particle Render=4
Render.Skinning=5
Render.Flash=4
Havok.TotalCycles=6
Core.String concat (script)=0.25

[PcPerformanceLimits]


[Engine.GameEngine]
EnableDevTools=False
CacheSizeMegs=32
UseSound=True
;ServerActors=IpDrv.UdpBeacon
;ServerActors=IpServer.UdpServerQuery
;ServerActors=IpServer.UdpServerUplink MasterServerAddress=unreal.epicgames.com MasterServerPort=27900
;ServerActors=UWeb.WebServer
ServerPackages=Core
ServerPackages=Engine
ServerPackages=IGEffectsSystem
ServerPackages=IGVisualEffectsSubsystem
ServerPackages=IGSoundEffectsSubsystem
ServerPackages=Editor
ServerPackages=UWindow
ServerPackages=VengeanceShared
ServerPackages=UnrealEd
; Rowan: disable IpDrb coz we have no network code
;ServerPackages=IpDrv
ServerPackages=UDebugMenu
ServerPackages=Tyrion
ServerPackages=Scripting
ServerPackages=ShockGame
ServerPackages=ShockAI

[WinDrv.WindowsClient]
WindowedViewportX=1920
WindowedViewportY=1080
FullscreenViewportX=1920
FullscreenViewportY=1080
MenuViewportX=640
MenuViewportY=480
Brightness=0.5
Contrast=0.5
Gamma=1.0
; Note: Joystick enabling is not necessary for Microsoft Common Controller (gamepad on pc)
UseJoystick=False
UseController=False
CaptureMouse=True
StartupFullscreen=True
ScreenFlashes=True
NoLighting=False
MinDesiredFrameRate=25.000000
Decals=True
Coronas=True
DecoLayers=True
Projectors=True
NoDynamicLights=False
ReportDynamicUploads=False
TextureDetailInterface=Normal
TextureDetailTerrain=Normal
TextureDetailWeaponSkin=Normal
TextureDetailPlayerSkin=Normal
TextureDetailWorld=Normal
TextureDetailRenderMap=Normal
TextureDetailLightmap=UltraHigh
NoFractalAnim=False
ScaleHUDX=0.0

[XeDrv.XenonClient]
WindowedViewportX=640
WindowedViewportY=480
FullscreenViewportX=640
FullscreenViewportY=480
MenuViewportX=640
MenuViewportY=480
Brightness=0.525
Contrast=0.425
Gamma=1.0
UseJoystick=False
CaptureMouse=True
StartupFullscreen=False
ScreenFlashes=True
NoLighting=False
MinDesiredFrameRate=35.000000
Decals=True
Coronas=True
DecoLayers=True
Projectors=True
NoDynamicLights=False
ReportDynamicUploads=True
TextureDetailInterface=Normal
TextureDetailTerrain=Normal
TextureDetailWeaponSkin=Normal
TextureDetailPlayerSkin=Normal
TextureDetailWorld=Normal
TextureDetailRenderMap=Normal
TextureDetailLightmap=UltraHigh
NoFractalAnim=False
ScaleHUDX=0.0

[Engine.Player]
ConfiguredInternetSpeed=10000
ConfiguredLanSpeed=20000

[ALAudio.ALAudioSubsystem]
UseEAX=False
Use3DSound=False
UseDefaultDriver=True
CompatibilityMode=False
UsePrecache=True
ReverseStereo=false
Channels=32
MusicVolume=0.3
AmbientVolume=0.6
SoundVolume=0.6
VoiceVolume=1.0
DopplerFactor=1.0
Rolloff=0.5
TimeBetweenHWUpdates=15
DisablePitch=False
LowQualitySound=False
StreamingSoundFudgeFactor=0.375

[FMODAudio.FMODAudioSubsystem]
MaxChannels=128
MaxStreams=8
; StreamBufferSize in KB per live stream up to MaxStreams
; Specifying 0 uses the FMOD default of 16KB per stream
StreamBufferSize=256

[IpDrv.TcpNetDriver]
AllowDownloads=True
ConnectionTimeout=15.0
InitialConnectTimeout=500.0
AckTimeout=1.0
KeepAliveTime=0.2
MaxClientRate=20000
SimLatency=0
RelevantTimeout=5.0
SpawnPrioritySeconds=1.0
ServerTravelPause=4.0
NetServerMaxTickRate=20
LanServerMaxTickRate=35
DownloadManagers=IpDrv.HTTPDownload
DownloadManagers=Engine.ChannelDownload
AllowPlayerPortUnreach=False
LogPortUnreach=False
MaxConnPerIPPerMinute=5
LogMaxConnPerIPPerMin=False

[IpDrv.HTTPDownload]
RedirectToURL=
ProxyServerHost=
ProxyServerPort=3128
UseCompression=True

[Engine.DemoRecDriver]
DemoSpectatorClass=Engine.CHSpectator
MaxClientRate=25000
ConnectionTimeout=15.0
InitialConnectTimeout=500.0
AckTimeout=1.0
KeepAliveTime=1.0
SimLatency=0
RelevantTimeout=5.0
SpawnPrioritySeconds=1.0
ServerTravelPause=4.0
NetServerMaxTickRate=60
LanServerMaxTickRate=60

[Engine.GameReplicationInfo]
ServerName=Bioshock Server
ShortName=Bioshock Server

[IpDrv.TcpipConnection]
SimPacketLoss=0
SimLatency=0

[IpServer.UdpServerQuery]
GameName=ut

[IpDrv.UdpBeacon]
DoBeacon=True
BeaconTime=0.50
BeaconTimeout=5.0
BeaconProduct=ut

[D3DDrv.D3DRenderDevice]
HighDetailActors=True
SuperHighDetailActors=True
UsePrecaching=True
UseTrilinear=True
AdapterNumber=-1
ReduceMouseLag=True
DoubleBufferMouseLag=True
DesiredRefreshRate=60
UseVSync=True
LevelOfAnisotropy=4
TesselationFactor=1.0
CheckForOverflow=False
BatchRenderFlash=True

[D3DDrv10.D3DRenderDevice10]
HighDetailActors=True
SuperHighDetailActors=True
UsePrecaching=True
UseTrilinear=True
UseHighDetailShadowMaps=True
AdapterNumber=-1
ReduceMouseLag=True
DoubleBufferMouseLag=True
DesiredRefreshRate=60
UseVSync=True
LevelOfAnisotropy=4
TesselationFactor=1.0
CheckForOverflow=False
BatchRenderFlash=True

[Editor.EditorEngine]
UseSound=True
CacheSizeMegs=32
GridEnabled=True
SnapVertices=False
SnapDistance=10.000000
GridSize=(X=16.000000,Y=16.000000,Z=16.000000)
RotGridEnabled=True
; RotGridSize is in degrees
RotGridSize=(Pitch=5.625,Yaw=5.625,Roll=5.625)
GameCommandLine=-log
FovAngleDegrees=75.000000
GodMode=True
AutoSave=True
AutoSaveTimeMinutes=5
AutoSaveIndex=6
UseAxisIndicator=True
MatineeCurveDetail=0.1
UseActorRotationGizmo=True
LoadEntirePackageWhenSaving=0
;EnableDevTools=True
EditPackages=Core
EditPackages=Engine
EditPackages=FMODAudio
EditPackages=IGEffectsSystem
EditPackages=IGVisualEffectsSubsystem
EditPackages=IGSoundEffectsSubsystem
EditPackages=Editor
EditPackages=UWindow
EditPackages=VengeanceShared
EditPackages=UnrealEd
; Rowan: disable IpDrb coz we have no network code
; EditPackages=IpDrv
EditPackages=UDebugMenu
EditPackages=Scripting
EditPackages=Tyrion
EditPackages=ShockGame
EditPackages=ShockAI
EditPackages=IGModEffectsSubsystem

EditorAutoLoadPackages=ShockAIClasses
EditorAutoLoadPackages=ShockDesignerClasses
EditorAutoLoadPackages=Doors
EditorAutoLoadPackages=AnimatedDecorClasses
EditorAutoLoadPackages=Prefabs
EditorAutoLoadPackages=Gen_Physics
EditorAutoLoadPackages=NonPhysicalReactiveObjects

TexturePackageExt=pkg
StaticMeshPackageExt=pkg
AudioPackageExt=pkg
AnimationPackageExt=pkg
MusicPackageExt=pkg
PrefabPackageExt=pkg
ClassPackageExt=pkg

;all extensions that need to be loaded for dumpint commandlet (localization)
LocalizablePackageExt=*.u
LocalizablePackageExt=*.pkg
LocalizablePackageExt=*.utx
LocalizableLevelExt=*.bsm

[WindowPositions]
GameLog=(X=5,Y=489,XL=642,YL=294)
ScriptLog=(X=649,Y=4,XL=527,YL=296)

[UMenu.UnrealConsole]
RootWindow=UMenu.UMenuRootWindow
UWindowKey=IK_Esc
ShowDesktop=True

[UMenu.UMenuMenuBar]
ShowHelp=True
GameUMenuDefault="UTMenu.UTGameMenu"
MultiplayerUMenuDefault="UTMenu.UTMultiplayerMenu"
OptionsUMenuDefault="UTMenu.UTOptionsMenu"

[Engine.GameInfo]
bLowGore=False
bVeryLowGore=False

[Engine.LevelInfo]
PhysicsDetailLevel=PDL_Medium

[Engine.Console]
ConsoleKey=109
DisableAutoCompletion=false
DefineOwnDictionary=false
ExtraDictionaryEntry=Quit
ExtraDictionaryEntry=editactor
ExtraDictionaryEntry=editclass
ExtraDictionaryEntry=editobject
ExtraDictionaryEntry=rmode
ExtraDictionaryEntry=Recreation

[Compatibility]
RequireMinSpec=true


[SkipCalls]
;Uncomment to skip calls during compilation of UnrealScript (i.e., don't emit bytecode for those function calls, which turns them into no-ops)
;SkipCall=Assert
;SkipCall=Log

[Havok]
; HavokNumThreads: Number of threads the physics should use for performing simulation updates. 
; Note: If there are fewer logical processors present than this number, then this value will be clamped to the number of processors.
; Note: Ignored on XBox360.  
HavokNumThreads=2

;RebuildMoppWhenMissingOrOld: If this is true the mopp will be rebuilt when it isn't in sync with the map.  If it is false
;the mopp will never be rebuilt and no verification will occur.
RebuildMoppWhenMissingOrOld=1

[Engine.RenderConfig]
; Note: HDRSceneExpBias only affects the XBox360. 
HDRSceneExpBias=-3

; skeletal mesh projector vars
MaxSkeletalProjectorsPerActor=6
OffsetSkeletalProjectorRearFrustrumPlane=10.0

; Note: EdgeDetect variables only affect antialiasing on XBox360 when in 720p mode 
UseSoftwareAntiAliasing=True
EdgeDetectCutoff=0.002
EdgeBlurSize=0.5

; Streaming system priority weightings
; Note: These will eventually be normalized
StreamingVisibleWeight=10
StreamingDiffuseWeight=4
StreamingBSPWeight=1
StreamingEmissiveWeight=7
StreamingLightmapWeight=5
StreamingNormalmapWeight=1
StreamingDynamicLoadedWeight=10
StreamingDistanceScale=1000

; pc graphics config options
HighDetailShaders=True
Shadows=True
RealTimeReflection=True
PostProcessing=True
HardwareOcclusion=True
UseRippleSystem=True
UseHighDetailSoftParticles=True
UseSpecCubeMap=True;
UseDistortion=True;
Note that the only things changed above are the screen resolution values. The rest are defaults. I've not even changed the sound driver.

2. I compared the two folders and found that the installer I have (with the CD and all) didn't install everything - to my astonishment:

http://i46.tinypic.com/15rh5rs.jpg

On the left side is the folder my installer created, while to the right, is the folder from my friend's CD. You can notice on the right that the files marked in blue color are missing from the left folder. The Sounds_Windows is empty for instance, which explains why I hear no dialogue sounds, no music, except the default ones inside the .bsm archives.

Reason why I posted this thread: I've read all the others which describe identical symptoms and to my surprise I've found the reason why it happens.

If you have this issue, please check the above folders for content.

Best of luck,
Sun