So the game is actually paying attention to this?
Rather than just this?
Yes. This proves it:
SArchiveList=ArchiveInvalidationInvalidated!.bsa, Test-B.bsa, Oblivion - Meshes.bsa, Oblivion - Textures - Compressed.bsa, Oblivion - Sounds.bsa, Oblivion - Voices1.bsa, Oblivion - Voices2.bsa, Oblivion - Misc.bsa
The texture from Test-B.bsa is used. (when there is also a loose file to first invalidate the vanilla texture)
The file creation date of Test-B.bsa was set back to 2005 to ensure that the timestamp wasn't the cause.
Actually, is it paying attention to the MasterArchive settings? I'm not sure, but it does recognize which BSA's are the vanilla ones and loads those first.
Because your BSA's are not named after the MasterArchives, I'm guessing that Oblivion would treat yours without precedence, so my proof would be incorrect for your case.
edit*
I just tested and it doesn't appear that the MasterArchives settings are relevant..
SMasterMiscArchiveFileName=Oblivion - Misc.bsaSMasterVoicesArchiveFileName2=Oblivion - Voices2.bsaSMasterVoicesArchiveFileName1=Oblivion - Voices1.bsaSMasterSoundsArchiveFileName=Oblivion - Sounds.bsaSMasterTexturesArchiveFileName1=Oblivion - Textures - Compressed.bsaSMasterMeshesArchiveFileName=Oblivion - Meshes.bsaSArchiveList=ArchiveInvalidationInvalidated!.bsa, Test-A.bsa, oMeshes.bsa, oTextures - Compressed.bsa, oSounds.bsa, oVoices1.bsa, oVoices2.bsa, oMisc.bsa, Test-B.bsa
I renamed my bsa's, so the MasterArchive settings are referring to invalid files.
Test-A.bsa is being used in this case. If I remove Test-A from the list, then Test-B is used.
So it seems there is some setting within the bsa itself telling oblivion that it's an official archive.
I'll have to rebuild entirely new vanilla BSA's and see if it makes a difference.
How does the BSA invalidate loose files? I assume you checked with loose files that were different than the BSA files but with the same name?
Is it that if an esp uses the BSA files also has a later timestamp than an esp that uses the loose ones?
The precedence is determined by the timestamp of the BSA vs the loose file.
EG. a loose file that replaces some vanilla texture and a BSA with a more recent timestamp that also replaces the vanilla texture.
The loose file invalidates the vanilla texture and the newer BSA overrides the loose file.
If there is no loose file, then the vanilla one would be used because it was never invalidated.
The ESP's timestamp is used to determine the load order of the BSA's themselves, regardless of the BSA's timestamp.
IE, whichever BSA is loaded first will supercede any later loading BSA regardless of the BSA timestamp, unless the first is invalidated by a loose file.