SLB Format

From ModdingWiki
Jump to navigation Jump to search
SLB Format
Format typeArchive
Max files2,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 PlatformExtract files? Decompress on extract? Create new? Modify? Compress on insert? Access hidden data? Edit metadata? Notes
Librarian WindowsYesN/AYesYesN/ANoN/A
Engie File Converter WindowsYesN/ANoNoN/ANoN/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.