.SLB / .M3 is a very simple archive format used by the Interactive Girls Club games to store game data. The files of this format are usually called SHOWPART.SLB, with the exception of the "Teresa The House Guest" game, where the archive is called IMAGES.M3
The archive is a very simple indexed files list. The index uses INT32LE offsets, and has two more entries than the amount of files. The first entry is always zero, and the last entry marks the end offset of the last file in the archive, which should match the full length of the archive.
The amount of files can be obtained by reading the second value from the index, dividing it by four (the length of an INT32LE) and subtracting the two extra entries. Since there is an end offset at the end of the index, the file size of any file for index
n can be calculated as
OffsetsList[n + 1] - OffsetsList[n].
The archives seem to contain four types of files:
- Images in GX2 format (started with bytes 0x47 0x58 0x32 0x01, i.e. "GX2" plus a byte 0x01)
- Text files with scripts (started with bytes 0x7C 0x7E, i.e. "|~")
- Some binary index file (2,307 bytes long)
- Unknown files (4 bytes long: 0x## 0x00 0xFF 0xFF - first byte 0x## vary)
Code for "unslbm3.bms" QuickBMS script.
All extracted GX2 images can be viewed with the IGC.EXE program included in the games themselves, like this:
# Interactive Girls Club .SLB/.M3 unpacker # (c) CTPAX-X Team 2018 # http://www.ctpax-x.org/ # Example of usage: # QuickBMS.exe -d unslbm3.bms showpart.slb . ImpType Standard Get FileCount Long Get FileCount Long Math FileCount /= 4 Math FileCount -= 2 For I = 1 To FileCount GoTo -4 0 SEEK_CUR Get FileOffs Long Get FileSize Long Math FileSize -= FileOffs String FileName p= "%08d.dat" I Log FileName FileOffs FileSize Next I
The following tools are able to work with files in this format.
|Name||Platform||Extract files?||Decompress on extract?||Create new?||Modify?||Compress on insert?||Access hidden data?||Edit metadata?||Notes|
|Engie File Converter||Windows||Yes||N/A||No||No||N/A||No||N/A||Can load SLB archives and show the GX2 images inside them. However, saving these images as GX2 files will not extract them; it will re-save them using Engie's own functions.|