isle/docs/README.md
Christian Semmler 7ad7d00aaf
Update README with installation and command examples
Added installation instructions for Kaitai Struct Visualizer and updated ksdump command examples.
2026-01-10 21:44:55 +01:00

56 lines
2.0 KiB
Markdown

# LEGO Island File Format Documentation
This folder contains documentation for LEGO Island's custom binary file formats using [Kaitai Struct](https://kaitai.io/), a declarative language for describing binary data structures.
## What is Kaitai Struct?
Kaitai Struct allows you to define binary formats in a YAML-based `.ksy` file, which can then be:
- Compiled into parser libraries for [many programming languages](https://doc.kaitai.io/lang_cpp_stl.html) (C++, Python, JavaScript, etc.)
- Visualized interactively using the [Kaitai Struct Visualizer](https://github.com/kaitai-io/kaitai_struct_visualizer)
- Dumped to human-readable formats using `ksdump`
<img width="1902" height="1002" alt="image" src="https://github.com/user-attachments/assets/9c34a078-40fa-44cb-81df-af073d647521" />
## Documented Formats
| File | Extension | Description |
|------|-----------|-------------|
| [`players.ksy`](/docs/players.ksy) | `.gsi` | Player profile save data (usernames) |
| [`history.ksy`](/docs/history.ksy) | `.gsi` | Score history and high scores |
## Using the Tools
### Installation
See the [Kaitai Struct Visualizer installation instructions](https://github.com/kaitai-io/kaitai_struct_visualizer#installing) for setup details.
### Kaitai Struct Visualizer (ksv)
The [Kaitai Struct Visualizer](https://github.com/kaitai-io/kaitai_struct_visualizer) (`ksv`) provides an interactive terminal UI for exploring binary files.
```bash
# View a Players.gsi file
ksv samples/Players.gsi players.ksy
# View a History.gsi file
ksv samples/History.gsi history.ksy
```
### Kaitai Struct Dump (ksdump)
`ksdump` outputs the parsed structure as JSON or YAML for scripting and inspection.
```bash
# Dump Players.gsi to JSON
ksdump --format json samples/Players.gsi players.ksy
# Dump History.gsi to YAML
ksdump --format yaml samples/History.gsi history.ksy
```
## Sample Files
The [`samples/`](/docs/samples/) directory contains example save files for testing:
- `Players.gsi` - Sample player profile data
- `History.gsi` - Sample score history data