PDA

View Full Version : Kb.exe reads files one byte at a time?


corfe83
12-26-2010, 09:36 PM
Note I'm playing on Steam, but I don't believe this problem is specific to Steam.

I recently (due to hard drive space issues) had to move my Steam installation to a network mapped drive (over a gigabit network connection with a very fast NAS server). This works great for every other Steam game I own (including Team Fortress 2), except for King's Bounty (Note this is with Armored Princess / Crossworlds - I didn't specifically test The Legend, because it's not installed at the moment) - King's Bounty takes a ridiculously long time to load. At first I thought it wasn't running at all, until I checked task manager and realized that kb.exe was still running (and very gradually growing in memory usage) after 20 minutes (but no visual confirmation that King's Bounty was actually running - nothing in the taskbar, no loading mouse cursor, nothing!)

I fired up ProcMon, and have discovered the reason why - kb.exe reads a number of its large files (such as interface_textures.kfs, models.kfs, textures.kfs, animation.kfs, etc.) ONE BYTE AT A TIME! Although my network connection is fast, it's only able to do a few hundred round-trips per second - and at 1 byte per round trip, this is slowing my load speed to a few hundred bytes / sec, which is ridiculously slow.

Can you *please* ask if the developers could fix this to have kb.exe read more than one byte at a time from these files? Perhaps read them in 32K increments, or anything more reasonable? As a software engineer myself, I really don't see why this would be a hard fix, and I do believe this would slightly benefit load performance for everyone else as well (we really don't need to call the ReadFile API for every byte read). It's entirely possible there are other customers afflicted by this as well that think "King's Bounty just doesn't work", and don't realize it's due to this simple (and easily fixable) issue.