New codetool for reading from the Oblivion data folder avail

Post » Fri Sep 28, 2012 10:09 pm

I have just finished writing a new tool (and some code) to correctly parse archiveinvalidation.txt and plugins.txt, load the correct bsa files in the correct order and then let you extract any file (and it will tell you whether its reading it loose from the data folder or if not, which bsa file its reading from)
Its available here:
http://www.cncmods.net/files/bsaget.zip

For the tool, you need to pass it 4 parameters on the command line, first the path to the oblivion main folder, second is the path to the folder containing plugins.txt, third is the relative path to a file (e.g. "textures\Architecture\anvil\LCWoodEnd01_n.dds"), forth is the full path to the output (e.g. "c:\temp\LCWoodEnd01_n.dds")

If you have changed SArchiveList in the oblivion.ini from the default, you will need to change the code starting at line 772 to reflect the new list.
The license for the code is listed at the top of the file.

The purpose of this is to document exactly how the game decides which bsa files to load and, for any given file, where to read it from and to give code guys some code they can take and use to properly handle file reading exactly as the game would do it. Hopefully some of the gurus here can help me turn this into a document/wiki entry explaining to modders how the file load works and exactly how the game decides where to get a file from.
User avatar
CHARLODDE
 
Posts: 3408
Joined: Mon Apr 23, 2007 5:33 pm

Post » Sat Sep 29, 2012 6:20 am

I recall this discussion in another thread.

By determining the which bsa file its reading from - you mean the engine or the plugin?

If the engine then hasn't it been determined that there isn't a regular pattern and that on one try it might be path A and on the next path B (or BSA 1 then next BSA 2)?

If the engine then does this do this while the game is running?

I'm not a code guy by any means - but I think I follow well enough to be a bit curious as to what this does.
User avatar
willow
 
Posts: 3414
Joined: Wed Jul 26, 2006 9:43 pm

Post » Fri Sep 28, 2012 10:25 pm

Thats what I mean, by reverse engineering this code I have identified exactly how the game engine will decide exactly where to pull a specific file from based on the contents of archiveinvalidation.txt, the contents of plugin.txt and the contents of your data folder.
User avatar
Megan Stabler
 
Posts: 3420
Joined: Mon Sep 18, 2006 2:03 pm


Return to IV - Oblivion