Jump to content

ColAccel - reduce loading time by 50%*


NTAuthority

Recommended Posts


Download ColAccel for IV and EFLC


The problem

For CitizenIV, I'm intending to add other cities, which would be able to be flown to from the current city's airport. (the actual feature depends on me being able to write automated tools to convert at least VC and generate navigation meshes)

As I wanted that experience to be as seamless as possible, loading the game needs to be optimized to take less time. So, I took Process Monitor and looked at what happened from the point I selected to load the recently downloaded DLC (CitizenIV, again - a bug in my episode loader :) ) until I saw the scripts running (loading text) - in fact, the period during which the artwork loading screens appear. Out of the 18 seconds this process took on my system, around 9-10 were spent reading large chunks of data from various .img files.

I looked into the files at the offset shown by Process Monitor, and found RAGE resources of type 0x20 - collision models. I already know GTA III to SA were loading all collision meshes for various precalculation reasons during the game load, but seeing as this is around 400-500 MB of data in IV (which also has to be decompressed, as it is deflate'd, adding more time to the loading process) it takes fairly long - I wouldn't be surprised if V still does this, as it still loads slow on consoles...

The solution

As recently revealed in the mobile version of GTA:SA, Rockstar North had thought about this problem during the development of SA, and created a cache (internally named ColAccel, like my implementation is named as well) which stored the actual data read from the collision files (basically, the size of the collision models) in a cache, to load them without having to read through the full collision files. This feature never got used in SA, and clearly IV still did not have anything like that.

Well, except that I implemented something now. :)

ColAccel is a .asi plugin for GTA IV and EFLC (without any external dependencies) which creates a 'colCache.dat' file on the first load, containing all the data actually used by the game from the collision meshes (basically, 580 kB with a lot of redundant data, nothing like 500 MB!) and accelerating your game load time by 50% or more.

Note that the plugin should work with any version of the game, but only been tested on GTA IV 1.0.7.0 and EFLC 1.1.2.0.

In addition, you *should* delete colCache.dat any time you a) add additional .img files or b) replace any .wbn/.wbd files inside any .img, either directly or indirectly - if not, various bad side effects can and will happen.

ColAccel - original 2014 version.



(thanks to @ThirteenAG for porting the CitizenFX version to work separately!)

Edited by NTAuthority

SsZgxdL.png

Inactive in GTA/R* title modification indefinitely pursuant to a court order obtained by TTWO. Good job acting against modding!

Link to comment
Share on other sites

This can in any way increase in-game performance (fps)?

Edited by format c:
Link to comment
Share on other sites

Nice, always looking to make IV more bareable, reducing initial load should help with that.

Link to comment
Share on other sites

Could you be so kind to do it for 1.0.4.0 as well? Patch 4 and 7 are mostly used and we enb modders prefer patch 4. Besides that: awesome work!

  • Like 2
Link to comment
Share on other sites

Note that the plugin currently only works on GTA IV 1.0.7.0 - if demand is sufficient I'll make a version for the latest EFLC version as well.

Sign me up :) By the way, do you think it's possible to create a plugin, which will load last saved game automatically? Like in IV/V on consoles. Removing intro screens completely would be nice too.
Link to comment
Share on other sites

Could you be so kind to do it for 1.0.4.0 as well? Patch 4 and 7 are mostly used and we enb modders prefer patch 4. Besides that: awesome work!

Yeah, it would be neato if you do one for 1.0.4.0 as well. Besides, most other people who play with patch 4 are those running the game on lower-end systems such as myself.

Edited by lpgunit
  • Like 1
76561198000404928.png

Link to comment
Share on other sites

Tried it on my version of GTA IV 1.0.7.0 and it seems to do its job, thanks :beerhat:

Link to comment
Share on other sites

  • 2 months later...
PacketOverload_x64bit

Amazing. Many, many folks still on patch 4 for ENB. Most will never move from Patch 1040/1004 until Boris V. fixes skylighting at the internal D3D9.dll level, so if your ever inclined to, ColAccel for one of 1030/1040/1004 patches would be awesome.

Edited by PacketOVerload_x64Bit
Link to comment
Share on other sites

NTAuthority

Is it able to work in your ViIV?

not currently as viiv uses more collision files than colaccel allocates; eventually the framework will contain it though (and somehow cache the img-loaded files/replace img streaming itself)

  • Like 2

SsZgxdL.png

Inactive in GTA/R* title modification indefinitely pursuant to a court order obtained by TTWO. Good job acting against modding!

Link to comment
Share on other sites

  • 4 months later...
  • 2 months later...

Do EFLC, yes.

Link to comment
Share on other sites

I vote for an EFLC version, playing as Luis would be more funny if I could load the game faster o/

Edited by fefenc
Link to comment
Share on other sites

  • 1 month later...

EFLC version please :3 But how would that work? Because the two episodes have different files...

I already PM'd him about it. No response though so it's safe to say it's not happening now :(

Link to comment
Share on other sites

But console GTAs have colaccel at least since SA.

Link to comment
Share on other sites

  • 2 weeks later...
BS_BlackScout

But console GTAs have colaccel at least since SA.

PS2 Versions loading time used to be horrible, really horrible...

  • Like 1
Link to comment
Share on other sites

 

But console GTAs have colaccel at least since SA.

PS2 Versions loading time used to be horrible, really horrible...

 

Because they have to load the game from DVD drive. I wonder if SA could be installed to PS2's HDD. Most games can't be.

Edited by Blackbird88
Link to comment
Share on other sites

Wow, wished you made this sooner. Hopefully you could do the same with GTAV because those loading times are ridiculous and can't even play while waiting for matchmaking.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • 1 User Currently Viewing
    0 members, 0 Anonymous, 1 Guest

×
×
  • Create New...

Important Information

By using GTAForums.com, you agree to our Terms of Use and Privacy Policy.