shittakaburi Posted December 9, 2011 Share Posted December 9, 2011 I used BSA Creator to create a BSA and Skyrim can't seem to read it right. I am making a plugin that is adding armor to the game and it works fine when I leave the nifs and textures as loose files in the data folder but I get the red exclamation point when I put them in a BSA. I can tell Skyrim is detecting the BSA because it is not looking for the nifs or textures anywhere else. When I leave the nifs and textures as loose files and use the BSA, I still get the red exclamation point. I've triple-checked the file structure in the BSA and it's good. I can't find but a couple of posts on creating BSAs and I haven't found a single mod using them, which is really surprising. Does anyone know if the BSA Creator is broken or how I could create a working BSA for Skyrim? Link to comment Share on other sites More sharing options...
Astymma Posted December 9, 2011 Share Posted December 9, 2011 I used BSA Creator to create a BSA and Skyrim can't seem to read it right. I am making a plugin that is adding armor to the game and it works fine when I leave the nifs and textures as loose files in the data folder but I get the red exclamation point when I put them in a BSA. I can tell Skyrim is detecting the BSA because it is not looking for the nifs or textures anywhere else. When I leave the nifs and textures as loose files and use the BSA, I still get the red exclamation point. I've triple-checked the file structure in the BSA and it's good. I can't find but a couple of posts on creating BSAs and I haven't found a single mod using them, which is really surprising. Does anyone know if the BSA Creator is broken or how I could create a working BSA for Skyrim? Well if you're using the BSA Creator that came with OBMM then the following would be your problem... The header of Oblivion BSA's is 42 53 41 00 67 = BSA version 0x67The header of Fallout 3 BSA's is 42 53 41 00 68 = BSA version 0x68The header of Fallout New Vegas BSA's is 42 53 41 00 68 = BSA version 0x68The header of Skyrim BSA's is 42 53 41 00 68 = BSA version 0x68 FOMM's BSA Creator would probably work. Link to comment Share on other sites More sharing options...
Astymma Posted December 9, 2011 Share Posted December 9, 2011 If you're already using FOMM's BSA Creator, one thing that may get borked is that the header is always going to start as the following: char[4] = BSA\00ulong = archive version, 0x68ulong = the length of the header as an offset until beginning of folderRecords entry.. always 36, aka 0x24ulong = archive flags... this varies, each official BSA has a different archive flags value (animations = 7, misc = 13, meshes = 87, etc.) Oblivion's format can be seen here.I don't think we even know what Oblivion's archive flags mean even now, much less Skyrim's. Link to comment Share on other sites More sharing options...
shittakaburi Posted December 10, 2011 Author Share Posted December 10, 2011 (edited) I am using the latest FOMM BSA Creator and it's archive header is 0x67, not 0x68. This is the problem, I believe. Not simply the header, but the version. I used FO3 Archive to create a test BSA. It used version 0x68 and it worked. I was able to load a nif from the bsa. I created a test BSA in FO3 Archive and FOMM BSA Creator using the same files and the BSAs were differently sized and a casual review of the hex showed a markedly different structure. So it seems FOMM's BSA Creator is not usable for Skyrim. But neither is FO3 Archive since it insists on separating textures in their own BSA. I attempted to create an ESM so that I could use a mesh bsa and a texture bsa, but, so far, that keeps crashing the game on load. EDIT: Actually, FO3 Archive uses compression but doesn't reveal what level of compression so ignore my comments on the different structure, may not be the case. Edited December 10, 2011 by shittakaburi Link to comment Share on other sites More sharing options...
Astymma Posted December 10, 2011 Share Posted December 10, 2011 I am using the latest FOMM BSA Creator and it's archive header is 0x67, not 0x68. This is the problem, I believe. Not simply the header, but the version. I used FO3 Archive to create a test BSA. It used version 0x68 and it worked. I was able to load a nif from the bsa. I created a test BSA in FO3 Archive and FOMM BSA Creator using the same files and the BSAs were differently sized and a casual review of the hex showed a markedly different structure. So it seems FOMM's BSA Creator is not usable for Skyrim. But neither is FO3 Archive since it insists on separating textures in their own BSA. I attempted to create an ESM so that I could use a mesh bsa and a texture bsa, but, so far, that keeps crashing the game on load. EDIT: Actually, FO3 Archive uses compression but doesn't reveal what level of compression so ignore my comments on the different structure, may not be the case. When I launch FOMM I launch it in FONV mode and it produces BSA's of version 0x67 regardless of compression or lack thereof, hmm odd given that since FO3, the version has been 0x68. Even odder is that those 0x67 BSA's have been working fine in FO3 and FONV when created with FOMM's BSA Creator. Guess Skyrim's format differs enough to remain broken. TBH, I think to use a BSA right now, you might want to name it "Update - Meshes.bsa" or "Update - Textures.bsa" so it loads with the Update.esm after the Skyrim esm and BSA's.Even better "Update - ModName - Meshes.bsa" or something similar like AuthorName, in case others are forced to use this trick. Link to comment Share on other sites More sharing options...
shittakaburi Posted December 10, 2011 Author Share Posted December 10, 2011 Not really feasible since you have to also add the bsas to the ini to get them to load like that. I believe there is a limitation to how many you can add that way, or there was in Oblivion and FO3. I don't think I can hack my way into a BSA anymore. Will have to wait for a proper tool. Thanks for your help. Link to comment Share on other sites More sharing options...
Astymma Posted December 10, 2011 Share Posted December 10, 2011 Not really feasible since you have to also add the bsas to the ini to get them to load like that. I believe there is a limitation to how many you can add that way, or there was in Oblivion and FO3. I don't think I can hack my way into a BSA anymore. Will have to wait for a proper tool. Thanks for your help. Yeah I tried all kinds of variations on what I suggested... adding bUseArchives=1 and bInvalidateOlderFiles=1 to ini filesaltering archive bits in bsa to match official bsaaltering file bits in bsa to match official bsaaltering bsa version from 0x67 to 0x68naming Update - Sounds.bsanaming Skyrim - Sounds - Custom.bsanaming EagleEyePerk.bsa (a functioning esm I d/l) No matter what I tried, the only way the mod I was attempting would function was as loose files under Data.So something is broken, whether it be ESM creation, BSA creation or INI files...we'll have to wait on some ArchiveInvalidation solution. Link to comment Share on other sites More sharing options...
Recommended Posts