Just to clean my plate I decided to add BIFC support to WeiDU.
Here is a DEBUG file of WeiDU pulling AR0011.WED from a compressed BIFF (for bonus points, this BIFF is located in a CD-path).
WeiDU v 78 Log
c:\src\weidu\weidu.asm.exe --biff-get AR0011.WED --autolog
[C:\Program Files\Black Isle\BGII - SoA/chitin.key] loaded, 590551 bytes
[C:\Program Files\Black Isle\BGII - SoA/chitin.key] 182 BIFFs, 41793 resources
[C:\Program Files\Black Isle\BGII - SoA/dialog.tlk] loaded, 9649307 bytes
[C:\Program Files\Black Isle\BGII - SoA/dialog.tlk] 79991 string entries
BIFF may be in hard-drive CD-path [C:\Program Files\Black Isle\BGII - SoA/CD1/data\AREA000A.bif]
BIFF may be in hard-drive CD-path [C:\Program Files\Black Isle\BGII - SoA/CD2/data\AREA000A.bif]
[C:\Program Files\Black Isle\BGII - SoA/CD2/data\AREA000A.bif] loaded, 9736934 bytes
[c:\DOCUME~1\weimer\LOCALS~1\Temp\WeiDU_93ab33.BIFF] creating temp file
[C:\Program Files\Black Isle\BGII - SoA/CD2/data\AREA000A.bif] Decompressing compressed BIFF
[C:\Program Files\Black Isle\BGII - SoA/CD2/data\AREA000A.bif] Decompression BIFC complete
[C:\Program Files\Black Isle\BGII - SoA/CD2/data\AREA000A.bif] 27729850 bytes, 20 file entries, 4 tileset entries
[./AR0011.WED] 37986 bytes, created from [C:\Program Files\Black Isle\BGII - SoA/data\AREA000A.bif]
WeiDU Timings
TOTAL 3.084 s
uncompress BIFC 2.633 s
loading files 0.201 s
unmarshal TLK 0.190 s
unmarshal KEY 0.060 s
saving files 0.000 s
unmarshal BIFF 0.000 s
The WED file is byte-for-byte the same as the one generated by NI.
Note the steep time cost associated with uncompressing BIFCs. Sorry. Deal.
Despite my efforts to shave off space in other areas, this more or less unavoidably adds 20K to WeiDU, bringing the total size of the binary to 200K.
The source distro is similarly bloated by 40K since it now contains zlib code.
Let me know if you have any problems with this feature.
Anyway, you asked for it (well, two of you anyway). Grab v78 now.