Seeing that they included Gyathaar's fix in the expansion, I'd rather wait to see if MAF's still occur...When the new Civ expansion comes out I will be applying this fix ASAP as to avoid any MAF's in that as well
Seeing that they included Gyathaar's fix in the expansion, I'd rather wait to see if MAF's still occur...
I did as the directions say..but the file i have after using the cff explorer is not a exe file any longer what am i doing wrong the file appears but its a blank white paper...please help i have not been able to play in a long time..lol
Worth noting... ever sence I have posted this thread I have yet to have a single MAF! When the new Civ expansion comes out I will be applying this fix ASAP as to avoid any MAF's in that as well
I envy u... lucky mofo.
I guess gonna have to buy a computer that can power 7 space crafts before i can play a full fricking game!!!!
Im waiting for that game...
Im fiending for it..
lol, Im reinstalling civ as we speak..ill just play little maps i guess.
Did we ever find out if it was Our computers or bad progging?
Worth noting... ever sence I have posted this thread I have yet to have a single MAF! When the new Civ expansion comes out I will be applying this fix ASAP as to avoid any MAF's in that as well
In addition to the code I wrote, BtS also has the large memory aware flag set by defaultSeeing that they included Gyathaar's fix in the expansion, I'd rather wait to see if MAF's still occur...
Im waiting for that game...
Im fiending for it..
lol, Im reinstalling civ as we speak..ill just play little maps i guess.
Did we ever find out if it was Our computers or bad progging?
A combination really... there are multiple ways for the MAF to happen...
When saving (and loading) a save, civ4 allocates a big memory buffer where it puts all the data into before it compresses the data and writes to disc.
It turns out that for some reason, windows limits how large a single memory structure can be.. on most version of windows this seems to be 512MB... I am not sure.. but I think it is less on vista (and possibly more on win2000)
This creates 2 possible MAF errors.. one is if the savefile dont fit inside this max datasize that is specified by windows... also, since this is a single datastructure.. it cant be partially swapped out, so if you have less then 512MB free physical memory (in a continuous block), you will hit this barrier earlier.
I think setting this flag somehow raises this max buffer size, but I am not sure...
The 3rd way you can get a MAF is if you simply run out of memory, or if the game uses more than 2 GB memory... this flag cant do anything about the first (you have to buy more memory, or increase swap file size)... this flag however raises the limit for how much memory a program can use.
As for the code I wrote for BtS.. it removes the usage of a large buffer that contains the data (the buffer is only max 64kb instead).. so the game will never hit the max datastructure limit... this also pretty much eliminate the problem about if you cant fit the entire buffer in physical RAM
The other MAF bugs can however still happen (nothing to do about if you actually run out of memory).. but since the savegame process uses up to half a GB less memory, it should happen a lot later
32 bit Windows still puts a 2GB limit to a single process by default.. however BtS comes with the flag set that allows it to use up to 3GB.. but you still need to use the /3GB flag in boot.ini (or run the special command in 32 bit vista) to allow it to use more than 2GB.Very interesting. Thanks for that information. I'm looking forward to playing BTS with your MAF-fixes, especially now that I understand that they fundamentally fixed some of the MAF errors.
You're not very clear on it: can the MAF error where a single program wants to use more than 2 GB's of memory (or 3 GB's with the 'fix' in this thread) still occur or does the program now circumvent that and will only the total available memory be a limit?
Oh and of course
32 bit Windows still puts a 2GB limit to a single process by default.. however BtS comes with the flag set that allows it to use up to 3GB.. but you still need to use the /3GB flag in boot.ini (or run the special command in 32 bit vista) to allow it to use more than 2GB.
With this flag it can however use more than 2GB on 64 bit windows without you having to do anything.. not sure what the limits the various 64 bit windows versions has, but I think they are all more than 16GB
So for 64 bit windows, the total memory is the limit (physical plus swap), on 32 bit windows it is still limited by 2GB or 3GB depending on system settings (but since the save game process no longer eats up half a gig of memory, it will take longer before you hit the limit)
Nice! Between your fixes and that flag setting this should work great! The only problem will then be to tell people how to enable the 3GB switch in XP 32-bit and enable it in Vista 32-bit.In addition to the code I wrote, BtS also has the large memory aware flag set by default