http://bugs.winehq.org/show_bug.cgi?id=17956
marzojr@yahoo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |marzojr@yahoo.com
--- Comment #9 from marzojr@yahoo.com 2010-05-27 10:38:03 --- I can confirm it is still an issue in 1.2-rc1. I can also give two different workarounds, which are different from biffing, which also establish that the cause of the slow down is caused by combining Wine's case folding combined with large amounts of files in the override dir and the game dev's expectation of a case-insensitive filesystem API. The demonstrations are as follows:
Workaround #1: Change all files in override folder to uppercase and change the corresponding chitin.key entries to uppercase also; this is easy to do with a bash script, and I can provide an example of such. When this is performed, the slowdown essentially disappears; this is because entries in chitin.key (and in other resource files in the game) do not contain the file extensions, but only their names and types, and both BGI and BGII both seem to append uppercase extensions to these file names. I do not, however, recommend this method, because there are game files other than chitin.key that contain resource entries which will also cause minor slowdowns for the same reason (and it would be too annoying to write an utility to parse all files and convert the names to uppercase).
Workaround #2: Using a case-insensitive file system. I have tried with FAT32 as well as with a ciopfs (http://www.brain-dump.org/projects/ciopfs/) layer over ext4; in both cases, the slowdown disappears. FAT32 is slower, but ciopfs may segfault during installation (particularly of some heavy mods such as BGT) for a reason that yet eludes me (but you can still install under Wine to the ext4 dir directly and only run the game through the ciopfs mount point). Despite the occasional segfaults, I recommend using ciopfs to play because ext4 is a lot safer than FAT32; moreover, I have yet to see it crash during normal gameplay. Even the segfaults are harmless -- it simply disconnects the mount point (forcing you to umount it before remounting it again). Moreover, I recommend converting all files in your BGI or BGII dir to lowercase using an utility like the tolower that comes with WeiDU even if using ciopfs; this is to ensure that there are no duplicate files with names differing only in case.