Flipnote Studio's library uses list and playlist files in addition to PPM animations and UGO menus. The Flipnote Studio Docs wiki records .lst and .pls structures on SD card and in application savedata. A .lst names files; a .pls can carry full sdmc:/ or nand:/ paths. Their entries should not be confused with PPM frame offsets or the animation's own sound flags. [1]
The published description uses a newline-separated plaintext list before an XOR transform and a short checksum. A reader should check which folder or savedata list it is parsing, because the file's purpose and fixed size differ by location. [1]
When implementing a compatible service, treat these as their own response types, validate references before showing them and test the exact client screen that consumes each file. The local original-ROM guide maps the broader scanning and request paths, but does not claim every list variant is fully understood. [1][2]
Different paths, different record meanings
The community documentation describes .lst files as lists of filenames and .pls files as lists of full paths. Both SD storage and the DSi save contain lists. ROM research confirms several path and extension checks, but a single record layout has not been established for every kind of list. [1][2]
Typical local uses
Directory lists index Flipnotes in an SD folder; mark lists record sticker selections; recent lists point to recently edited work. A full path may begin with an SD or NAND namespace. These file roles are useful when reconstructing the library, but an absent or damaged list should not be mistaken for proof that the underlying PPM is absent. [1][2]
Integrity and padding
The published playlist description specifies an encoded list with a final 16-bit checksum, and fixed-length padding for some SD files. Validate the checksum and exact record length before trusting an entry. An implementation should separate parsing a list from opening and validating the PPM path it names. [1]
Known list files
| Where | File | Purpose in the wiki |
|---|---|---|
| SD folder | dirmemo2.lst | Folder's Flipnote names; fixed 160,000 bytes |
| SD card | mark0.pls–mark3.pls | Four sticker lists; 8,000 bytes each |
| SD card | recent10.pls | Recently edited notes; 4,000 bytes |
| System Memory | nand.pls, latest1.pls, recent10.pls | Library, newest note and recent list |
| System Memory | mark0.pls–mark3.pls | Sticker groups |
| System Memory | remind.pls, friend.pls | Calendar reminder and local sharing; exact semantics are not fully confirmed |
The payload is a newline-terminated list ending with a null byte. SD copies add zero padding to a fixed length. The wiki describes a repeating 64-byte XOR key and a 16-bit check value taken from bytes 7 and 9 of the plaintext's MD5 digest. This obfuscates the file and checks its contents; it does not prove identity. Before decoding a list, identify its location and fixed length, then check the decoded paths before opening files. [3]
F7 4C 6A 3A FB 82 A6 37 6E 11 38 CF A0 DD 85 C0
C7 9B C4 D8 DD 28 8A 87 53 20 EE E0 0B EB 43 A0
DB 55 0F 75 36 37 EB 35 6A 34 7F B5 0F 99 F7 EF
43 25 CE A0 29 46 D9 D4 4D BB 04 66 68 08 F1 F8
The wording “7th and 9th bytes” is ordinal in the wiki and does not say which digest byte becomes the low half of the checksum. Check both order and index convention against a known list before writing one. [3]
Paths and list contents
Unlike filename-only .lst records, .pls entries are complete paths beginning with sdmc:/ or nand:/. The documented path limit is 256 bytes, not 256 displayed characters. The recent list specifically holds the ten most recently edited Flipnotes. [1]
| Location | File | Recorded purpose | Documented length |
|---|---|---|---|
| SD, each Flipnote folder | dirmemo2.lst | Index of filenames in that folder | 160,000 bytes |
| SD | mark0.pls, mark1.pls, mark2.pls, mark3.pls | Four sticker selections | 8,000 bytes for each file |
| SD | recent10.pls | Ten most recently edited Flipnotes | 4,000 bytes |
| System Memory | nand.pls | All Flipnotes saved to System Memory | Not specified by this page |
| System Memory | mark0.pls, mark1.pls, mark2.pls, mark3.pls | Four sticker selections | Not specified by this page |
| System Memory | recent10.pls | Ten most recently edited Flipnotes | Not specified by this page |
| System Memory | latest1.pls | The single most recently edited Flipnote | Not specified by this page |
| System Memory | remind.pls | Possibly tracks calendar Flipnotes; not confirmed | Not specified by this page |
| System Memory | friend.pls | People involved in local-wireless sharing; unusual record semantics remain unexplained | Not specified by this page |
The plaintext ending is two consecutive bytes, 0A 00: a final line-feed followed by a null byte. The list itself is described as plaintext, so this ending does not imply UTF-16 encoding. The source also describes the repeating XOR transformation and a following 16-bit checksum. It lacks the byte examples needed to confirm every fixed-size padding boundary and checksum-index convention. Use a verified sample alongside the XOR-key and checksum notes when writing these files. [1]
