So yesterday, instead of playing Aion and leveling to level 22 so I could be of use to my Legion at some point I spent the afternoon messing around with the infamous CrySystem.dll crash. It had happened to me before a few times but not frequently so I paid no great attention to it. That was until yesterday. As soon as I would step foot in Eltnen Fortress I was bound for a crash, even with the Shift+F12 function activated. So after a while, I’ve decided to activate my software dev super powers and tackle this issue as if it was a my day job. You see, besides being a developer. So yesterday, I put my skills to work to uncover what is going with the Crysystem bug. Warning, this may get technical.
Quick overview, the Crysystem bug is a memory adress bug caused by the failure of the Crysystem.dll to access multi-threading processor when operating on systems using more than 32bit (ex: vista x64). It is a bug in the Crysis engine that needs to be resolved by NCsoft.
Followed everything? Good. But just to make sure let’s talk about the details (and also make it simpler for you non-computer people). PS: I know this is a gross generalisation of what is going on but its simpler to understand this way.
Graphic processing
First of all to understand our problem I have to explain how graphics are processed by a computer. There’s three component concerned when processing graphics. Your PC who gives memory to the game graphic engine and graphic card (RAM) so they can process what needs processing. A graphic card who does the heavy computing for the game engine and finally the game graphic engine who sends data to the graphic card and display the results from the graphic card. So for example the “display Mojo Dancing” function would work like this:
1.Game engine sends data to the graphic card asking for what Mojo dancing looks like.
2. Graphic card process the data and send it back
3.Game engine displays Mojo dance based on what the graphic card told it should happen.
During this whole time both the game engine and graphic card ask the computer for memory from the computer (RAM).
Memory usage
The second concept I want to explain is how a computer gives RAM to the different programs running. It’s rather simple in fact. Each program ask the computer for a set amount of memory it thinks it needs. For example Aion could say “I need 1gig RAM to work”. Your computer then check if it has the memory to loan and if so it gives it to Aion. When your computer runs out of memory to give it will delay operations. To continue our example if Aion needs 200 mo more and the computer can’t give them it will delay the 200mo until they become available or until it can swap some other process out. This is what creates “lag” in most games. Your computer is overtaxed and programs have to wait while your computer tries to scrounge the memory to make them work.
The Crysis engine and 64 bits systems
The Crysis engine which Aion uses has been in the works since 2005, just before Vista and 64bits systems started coming out. At the time it was built upon a 32bit system, namely windows XP wich was the standard. Back then Microsoft promised that the transition would be smooth and there would be perfect compatibility between vista and Xp. Of course the reality was that it was mostly compatible but with a few differences.
One of these differences is how memory is allocated in a 64bit systems vs a 32bit system. Without going more technical let’s just say that once your past the 2gig of RAM usage (the 32bit limit), problems start to appears since the memory doesn’t work the same.
Putting it all together
So what’s going on with Aion? Every time Aion requires more than 2gig of RAM it crashes. Why? Because of miscommunication. Let’s say the Crysis engine is using close to 2gig of RAM. It ask your computer for more and your computer says there’s no problem because you still have another 2gig of RAM free. So your computer sends back the adresses of the memory the Crysis engine can use. The problem is that the Crysis engine doesn’t know how to use those adresses past 2gig so it tries to compute until he finaly crashes.
Solving the problem
At the moment there’s no real solution to speak of since the problem resides in the graphic engine of Aion. However the more you minimize the memory usage of Aion the less often you will crash. It sucks but that’s the way it is until NCsoft patches this problem.
Wow… that actually made total sense! Thanks for explaining it in an understandable fashion! 😀
Thanks for the nerded down version. So basically right now even though players have lots of memory the game is still only allowing 2 gb.
More or less yes. Some people have reported being able to trick aion into accessing more memory but this goes far beyond my skills or the skills of most normal people. They basically rewrite part of their memory managment.
Where did you read this ?
I have never heard of someone tricking a game to use more memory
It was on the Aion source forums if I remember right. In fact by tricking they tell the computer how to use memory instead of letting it handle it by itself like it would normaly do. To be honest you need pretty insane skills and specialized tools (programs) to pull this off.
[…] people and then population does become an issue that will cause me to leave a game I enjoy. The inability to participate in a fortress situation is potentially gamebreaking for me when I get there (my husband and I have identical PCs so his […]