Read-only Rust CLI for Sony MSGLISTL recording indexes
Find a file
2026-11-07 00:51:53 +08:00
src Port MSGLISTL reader to Rust 2026-11-07 00:51:53 +08:00
.gitignore Port MSGLISTL reader to Rust 2026-11-07 00:51:53 +08:00
Cargo.lock Port MSGLISTL reader to Rust 2026-11-07 00:51:53 +08:00
Cargo.toml Port MSGLISTL reader to Rust 2026-11-07 00:51:53 +08:00
README.md Port MSGLISTL reader to Rust 2026-11-07 00:51:53 +08:00

MSGLISTL Reader

A read-only command-line viewer for a Sony recorder's exported MSGLISTL.MSF recording index. It displays the index update time, folder paths, recording names and dates, and each entry's location in the file.

Build and run

On Linux or macOS, use Rust 1.85 or newer with Cargo.

cargo build --release --locked
./target/release/msglistl-reader /path/to/MSGLISTL.MSF

Example with fictional entries

MSGLISTL  ·  1 folder, 2 recordings

Index metadata
  Updated       2024-01-01 11:00:00
  Header bytes  4d 53 47 4c 00 05 20 80
  File size     2260480 bytes
  Record table  0x8020 · 0x220 bytes per slot
  Slots         3 used / 4095 total · 4092 empty

Folders
└── A:\VOICE\EXAMPLE  [slot 0 @ 0x8020]

Recordings (slot order)
├── 2024-01-01 09:00:00  240101_001  [slot 1 @ 0x8240]
└── 2024-01-01 10:30:00  240101_002  [slot 2 @ 0x8460]

Supported layout

The reader recognizes the observed MSGL 00 05 20 80 header and 2,260,480-byte file layout. There are 4,095 fixed-size slots of 0x220 bytes starting at 0x8020. Each populated slot begins with F for a folder or M for a recording. Names begin at slot offset 0x20 and use UTF-16LE. Recording dates occupy six bytes at slot offset 0x0a, with the year stored as an offset from 1980. The index update time starts at file offset 0x08 with a 16-bit little-endian year followed by one byte each for the month, day, hour, minute, and second.

Timestamps reflect the device clock, with invalid or unset values shown as unknown. Folders and recordings appear in separate sections in slot order. Folder links and playback order remain undecoded. MSGLISTS.MSF and other layouts are outside the supported format.