Labels

.NET (2) Civ (1) ClickOnce (1) Fun (1) LEGO (1) Log4Net (1) PdfManual (1) Video (1)

Saturday, September 25, 2010

Civ 5 garbled text

Civ 5 was recently released.

Both laptops I tried installing it on had trouble with garbled text, when run against DirectX 9 (Can't run 10 or 11 on XP).  Based on others' posts in forums, it is related to having a Mobile Intel(R) 965 Express Chipset Family video card and driver.  And with Windows 7 with DirectX 11, for me it still is faster to run in as DirectX 9.

Well, first, just to get the game not to crash, I had to go to Dell and download the latest driver.  Then it didn't crash, but the text was garbled.
I also tried downloading the latest from Intel that was newer than Dell's, but that didn't help.

I took a workaround posted on a forum: http://forums.2kgames.com/forums/showthread.php?t=89425  Many thanks to CockedAndLoaded for half of this workaround!

I took that one step further and basically forced uppercase which took out the garbled lowercase letters and looks a lot nicer.  Note, this is a temporary workaround until Civ 5 is patched, someday, theoretically.

 Some related forum posts:
If you want to further tweak the letters, here is what you can do:
  • Open up the ggxml files.
  • Every "glyph" node seems to represent a letter.
  • The "CH=" attribute of each glyph node matches up to a letter's ASCII or ANSI value.  This value is the number that computers use internally to match up to a letter.  Here are some examples of these matchups.
  • Basically, I remove the configuration for the lower case letters, and configured them instead to be the same as the uppercase.  For other languages, I didn't do this.  So you might want to experiment with this for special characters.
  • Basically, you can open up the "Character Map" utility that comes with Windows and is in the Start Menu somewhere (probably in Accessories).  Find the character that you want to replace with something else.  Look at its code.  The code in the "Character Map" utility is probably in HEX, so you'll need to convert that to regular decimal (you could use something like this.)  Do this for both the character you want to replace, and to the character you want to replace it with.  Then look for the lines in the ggxml file with those decimal values in their "CH=" attribute, and copy over the rest of the settings in that row.
If you have made some tweaks that you think others might want, and you want me to add it to this blog, I would be glad to.  Just let me know.

UPDATE 2011-10-23:
I don't know if I tried this, but someone claims to have solved this on their PC with "I found that the refresh rate selected in the game was making the fonts unreadable. When I selected a resolution that used a refresh rate that my desktop was using (and that the monitor was supporting), the fonts became readable." on http://forums.2kgames.com/showthread.php?89425-WORKAROUND-Text-unreadable&p=1471350#post1471350