03-03-2008, 08:12 AM
|
#182
|
|
Neo Acoustic
Join Date: Nov 2004
Posts: 1,710
|
That cracker whining is quite the thing to read. Quoted for those behind a barrier...
Quote:
Short version: It doesn't work. The X360 files can not be fixed to work on the PC.
Long version: Those who want to know why it doesn't work, read on.
OK... so it is as I feared. As we all know, the PC version is the Director's Cut, and it has several new mission types. I was hoping the guys at Ubisoft added these NOT in the specific .forge level files, but in an external file that is accessed for mission generation.
It is not so.
The programmers at Ubisoft, in their infinite wisdom, have decided that this is not the way they want to code their engine. They do not want to reuse code and resources or, God forbid, make it easier for themselves when the time comes to support this game and patch it. They refuse to design their engine along industry lines and have universal resource packs and only changing assemblies for platform deployment (the way UE3.0, Viscous Engine and Vision Engine do it). No. they lump it all together and make life harder for themselves for absolutely no reason. As a side effect, it screws our idea of replacing the two faulty files (the Jerusalem and Arsuf .forge files) with the ones from the X360 version.
The whole .forge format is ridiculously stupid. I've been reading most of them during the last several hours, and they just throw everything they're fucking able into it. Get a hex editor and open, for instance, the Damascus .forge file. The format is pretty simple:
1. scimitar string
2. zeroed bytes
3. hashed header
4. zeroed bytes
5. real header (contains a list of resources in the file)
6. zeroed bytes
7+ definitions of the resources separated by zeroed bytes
The point is, they put everything in these .forge files. The Damascus file alone has diffuse textures, alpha maps, cube maps, code blocks, material properties, mocap data, _foliage_ entity descriptors... you name it, they've put it in there. The format is basically a wrapper for anything they desire, which goes contrary to pretty much every game engine design concept I know of.
This also means that the mission subroutines are also in the .forge files (search for "quest" in the Damascus .forge file and you'll see the datablocks that hold the code). And so the PC-specific missions are also in there. And the X360 .forge files do not have these extra missions, so when we try replace the corrupt files with them, the exe basically crashes with "unresolved external symbol" errors (you can't see these without a debugger) because it can't find those code blocks.
Point being, our lovely idea of swapping the corrupted files with the X360 ones fails. It really should have worked, and it would have had the Scimitar Engine been designed like every other modern engine today.
In case you're wondering, this poor design is also the cause of the 2GB RAM minimum requirements, and 3GB for the recommended: the WHOLE .forge file needs to be loaded into memory if they want to use anything in it, they can't just load the parts they need (which is the sensible, rational and common way of doing it) because it's all one big file. You need the DataPC file in memory (200MB), the sounds .forge files (600 MB combined), and whatever level file you are in currently (usually around 700MB). For instance, wherever you are in the game, the game has loaded ALL of the sounds from ALL of the levels, even if you're in the main menu.
That's the single most retarded idea I have ever seen in engine design.
Bottom line, until we get a PROPER with the uncorrupted Jerusalem and Arsuf files, the game will crash upon entering Jerusalem no matter what kind of crack you try to use.
|
Oh: Charles. Any clue whatsoever who leaked it?
EDIT: That you can share, obv.
KG
Last edited by KieronGillen; 03-03-2008 at 08:18 AM..
|
|
|