open-story-teller/docs/dev-stories.md
2024-01-07 23:02:55 +01:00

57 lines
1.5 KiB
Markdown

# Stories architecture
## Story location
The stories are located on a SD-Card flash memory. The following file system formats are supported by openStoryTeller:
- FAT32
- exFAT
Connect OpenStoryTeller to your computer using a USB cable, a USB-disk will show up on your file explorer.
## Story root tree
A typical folder organisation is showed here:
![arch](./images/dev-sdcard-content.png)
At the root of the SD-Card, a special index file named `index.ost` must be present. It contains the list of installed stories as well as other informations about each story.
## Story folder organisation
A story folder name must be a UUID v4 string.
It must contains:
- A project file in JSON named `project.json`
- A pre-compiled story binary name `story.c32`
- A directory named `assets`
The assets directory must contains all the resource files for the story (sounds, images...).
# Index file format
## General principle
This binary file is encoded using a simple TLV format (Type Lenght Value) supporting the following types:
| Type | encoding |
| ----- | ----- |
| Object | 0xE7 |
| Array | 0xAB |
| String | 0x3D |
| Integer | 0x77 |
| Real | 0xB8 |
Each Type is encoded on a byte.
The Length is encoded on two bytes, little endian. The length indicates the size of the Value.
## Application on the Index File Forma
- Array
- Object
- String (UUID, folder name of the story)
- String (title image file name)
- String (sound title file name)