More info on graphics in BW1

ego533

New member
Joined
May 10, 2011
Messages
91
  So, I spent a bit of time researching the way the settings and graphics work for BW 1. I with a few systems, video cards, and OS's and looked at the way the game worked. This is a quick summary of what I found, based on my understanding of the game and how Windows graphics works. It is laid out in several points with a few extra bits of information at the end. I did have a somewhat limited set of hardware, so there may be some incorrect assumptions, but meh.. post if you have more info, I guess.
  In the end, I didn't find much more useful info than was already known, unfortunately. If you have unsolvable graphic problems with your system, it may not really be possible to solve it.



  • Avoid using "Custom" settings - In all tests I did across all systems and OS's, the "Custom" graphic setting never produced better graphic results that using the "Maximum" setting. This is regardless of the boxes checked, the position of the sliders, the combination of boxes checked. In most cases, the custom settings actually looked quite a bit worse than the maximum setting.
      Some people have apparently had problems unless they use the custom setting. If this is the case, there isn't much to be done. I would guess this result is because the custom setting will cause much lower graphic quality, and so the game will run better using the lower quality.


  • The video card has the most effect on the graphics - Generally, a particular video card would work well or not work well with the game. This was true regardless of the OS being used (for the most part) or the driver version. There were a few things an nvidia GTX 260 PCI-E card having texture problems in x64 OS's, but not x86 OS's, but the other graphic problems were more serious than this one issue. In general, the driver version also didn't matter. If the card worked or didn't work well, it did so with both old and new drivers.
      It appears that the game runs some tests while initializing. If the video card somehow doesn't meet some requirements, certain graphic capabilities will not be enabled. Things like the hi-res textures, fixed landscape topography, LOD distance and whether there is any LOD at all, draw distance. The main problem seems to be that newer cards somehow fails these tests. I was not able to find a way to trick the game or the correct way to alter the game's runtime memory to bypass these.. my skillz with a debugger aren't very good.


  • 64-bit versus 32-bit systems do not directly matter - Some people noted that graphics appear to be worse on 64-bit Windows systems and that re-installing a 32-bit version of the OS solved this. It appears that this isn't directly the cause of any graphic problems. It has more to do with the graphic card and the driver used than the OS. I think the trick is that, under x64 Windows, the video driver includes both a 64-bit and 32-bit driver installed concurrently, but which operate independently of each other. The 32-bit driver on a 64-bit system must understand the WoW (Windows on Windows.. how MS achieves running 32-bit native apps on a 64-bit system) environment, though. These different versions can vary in quality on the same system. Nvidia in particular took some crap for the quality of the 32-bit Windows-x64 driver in the past, specifically regarding older games.
      If a card DOES work under x86, but not well under x64, try simply updating the driver under x64 and see if it works. If it doesn't work, probably not much can be done currently.


  • Do not use any compatibility settings - There are some odd problems I haven't seen before when using windows compatibility modes. Note that this only applies to setting regarding running in compatibility modes for previous windows versions, the other settings are fine. When runblack.exe is run with this compatibility setting, it has problems reading the registry. You can watch it in a debugger or process monitor enumerate the registry key, but then struggle to get the values. This doesn't make sense, no other program I know of seems to have this problem. This occurs on all windows systems, including XP. This is why some settings seem to be ignored, like version, custom graphic settings, or resolution settings when setting this particular compatibility setting.


  • Set any resolution you want using the registry - Many other people have pointed this out and know it already, but I guess it should still be noted. Though the setup program offers a limited range of resolutions, you can set it manually to what you want by going to [ HKEY_CURRENT_USER\Software\Lionhead Studios Ltd\Black & White\BWSetup ] and editing the two DWORD values, "ScreenW" and "ScreenH" for screen width and screen height. Edit it to something like '1920' and '1080'. Note that you can enter 'hexadecimal' or 'decimal' values. You will want to enter the actual resolution as a decimal value.


  • A quick description of good vs. poor result
      On a 'working' game at max settings: The landscape's topography should NOT shift around at all. There should be a large radius of 'good texture'. The high-quality texture should be displayed on the landscape out to a large distance from the camera, a point where you will need to look closely to notice the texture change. There will be a 'detail bump' texture that appears when zooming in very close to the ground, however, and this is normal. Objects like houses and forests will disappear at a certain distance from the camera.
      A game that isn't working at max settings: The landscape's topography will shift around as it moves further from the camera, becoming less detailed. The shift from high to low quality textures on the terrain will be much closer, at a distance where it is clearly noticeable. Objects will still disappear, but at a closer distance.



Other notes


  • When using custom video settings, the Draw Distance setting ('MaxObjectDistance' in the registry) setting seems to have no effect at all.



  • There may be a typo in the game. The 'MaxObjectDistance' entry is written out from the setup program as 'MaxObjectDistanceF' but the actual game .exe seems to look for 'MaxObjectDistance'. I tried testing with this, adding a space after the name, editing the name looked for by the .exe, but still could not get this setting to have an effect.

  • There are more entries that can be used in the BWSetup registry entry than are placed there by the setup program. Not all of these seem to have an effect. I also don't have a way of knowing for sure what value-type they would be.
      UseMultiLayerOnLandscape - DWORD - set to 1, game only uses base texture on the landscape. Fields, detail textures, and so are not displayed
      LightBoost
      ResetDisplay
      DisplayNetworkDialog
      Vsync
      MaxVRAM - seems to be DWORD - limits the amount of VRAM the game will use
      MaxAGP - seems to be DWORD - limits the amount of "AGP" the game will use.. I don't really know what the game means by "AGP".. in debugging, the number given to this by default is always the same as VRAM.
      DebugInfo
      CacheBusyTextures


  • You can significantly reduce the CD access times or the amount of access by copying all the music files to the Hard Drive. If you have 200MB to spare, copy all the folders (should be 5) from the CD in [ Audio\Music ] to the game's directory in [ .\Audio\Music\ ]. The game will read from the HD instead of reading the music from the CD all the time.


  • When testing Windows 7 x64 with a GeForce GTX 260 (fairly modern card), the game would crash on load every time. The solution was to finish all the Windows updates. There appeared to be a few DirectX fixes in the updates that solved the crashing.


  • BW1 is a DirectX7 game. Windows Vista/7 do not 'officially' support DirectX8 or below (7 does not support 9 or below). Programs that make use of these older DX's use runtime libraries that still exist in the System32 or SysWoW64 directory. The video card drivers must also provide proper support for the older runtimes.
      I'm not entirely sure, but it seemed like the Nvidia driver was making OpenGL calls out of a few of the DirectX 7 calls the game was making.. if this is true, it could really explain some of the problems... It could just be my unfamiliarity with both windows symbols and how a video driver works, but the driver was making calls to 'ogl*' functions in several places while the game was initializing.


  • It is possible that PCI-E plays a role in poor graphics. By chance, the two PCI-E cards (and the intel graphics also using the PCI-E bus) had problems. To really know if this is the case, there would need to be more cards to test




For reference, the tests used:
GeForce GTX 260 - poor - better on x86 than on x64
GeForce 6800 GT - worked fine
GeForce 256 - worked mostly fine, but pretty slow
ATI HD 4550 - poor, but better than 260, however odd land topography problems when zoomed very close
various NEWER Intel onboard chipset video - poor

Windows 98SE
Windows XP SP3
Windows 7 x86
Windows 7 x64



-ego533

 
Wow.. just wow, this is awesome information! - I always played on custom settings because I thought it's graphics would be better.. I never tested if that was true.

Thank you so much!
 
That's great!  Now I know not to use Custom anymore.  Terrific research, Ego!
 
That's really awesome. Definitely choosing maximum detail next time.

Thanks for putting in all of this effort.
 
Back
Top