SLB Format
Format type | Archive |
---|---|
Max files | 2,147,483,647 |
File Allocation Table (FAT) | Beginning |
Filenames? | No |
Metadata? | None |
Supports compression? | No |
Supports encryption? | No |
Supports subdirectories? | No |
Hidden data? | No |
Games |
The SLB Format (with extension .SLB or .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
File format
The archive is a very simple indexed files list without file names. 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## varies)
QuickBMS script
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:
IGC.EXE 00000001.dat
# 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
Tools
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 |
---|---|---|---|---|---|---|---|---|---|
Librarian | Windows | Yes | N/A | Yes | Yes | N/A | No | N/A | |
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 technically does not extract them; it re-saves them using Engie's own functions. |