Flipnote Studio stores its System Memory data in public.sav, a FAT12 disk image under the DSi NAND title-data directory. The title ID differs by region: Europe 4B475556, Americas 4B475545, and Japan 4B47554A. Mounting a copy as a disk image reveals a normal file hierarchy, which is preferable to searching the raw save for PPM markers. [1]
Directories
| Path | Role |
|---|---|
ugo/001 through ugo/032 | Folders holding System Memory Flipnotes; folder assignment has not been proven to follow a stable algorithm. |
nand.pls, recent10.pls, latest1.pls | Library and recent-item indexes. |
mark0.pls through mark3.pls | Sticker selections. |
friend.pls, remind.pls | Local-sharing and calendar-related lists; details remain uncertain. |
eula.txt | Last online service's terms in UTF-16LE text. |
option.bin | Personal settings and the FSID. |
option.bin fields
| Offset | Type | Observed interpretation |
|---|---|---|
| 00 | u8 | Application revision. Japanese 01 can trigger a version-two introduction; 02 is usual. |
| 01 / 02 | u8 each | Stylus hand: 0 right, 1 left. Sound effects: 0 on, 1 off. |
| 03 / 04 / 05 | u8 each | Possible V1-upgrade marker, online-connection marker, completed-tutorial marker. |
| 06 / 07 / 08 | u8 each | Default pen, paint and eraser variants, each documented in range 0–14. |
| 09 / 0A | u8 each | Default Trace and Copy switches; 1 enabled. |
| 0B | u8 | Hatena usage bits, mapped below. |
| 0C / 0D | u8 each | Advanced tools switch and Trace page count. |
| 0E / 0F | u8 each | Frog display (0 on, 1 off) and start-on-calendar (1 on). |
| 10 | u64 LE | Sixteen-digit FSID in little-endian storage. |
| 18 / 1A | u16 LE each | Save checksum, then birth year. |
| 1C / 1D | u8 each | Birth month and day. |
The wiki lists bit 0 of byte 0B for starting a download, bit 1 for a successful download or upload, bit 2 for viewing the Hatena main menu and bit 3 for uploading a comment. Treat the unassigned bits as unknown. The cited table overlaps the birth-day byte with its all-zero remainder range, so use its concrete field map rather than assuming every byte from 0x1D onward must be zero. [1]
Work on a copy of the FAT12 image. An individual file's field map is not a guarantee that Studio will accept a modified image: the disk structure, list checksums and internal settings checksum need their own validation. [1][2]
Locate the regional FAT12 image
The NAND path is title/00030004/<regional-title-ID>/data/public.sav. The regional title-directory names are 4B475556 for Europe, 4B475545 for the Americas and 4B47554A for Japan. Work from a copy: public.sav is a FAT12 disk image containing ordinary files and directories, not a stream made only from concatenated Flipnotes. [1]
At its root, the documented files are eula.txt, friend.pls, latest1.pls, mark0.pls through mark3.pls, nand.pls, option.bin, recent10.pls and remind.pls. The ugo directory contains numbered folders 001 through 032 for saved animations. Their assignment appears irregular in the wiki's observations; a random-selection algorithm has not been established. [1]
The saved EULA is little-endian UTF-16 plaintext from the most recently contacted online service. It can therefore describe a replacement service rather than original Flipnote Hatena. The individual playlists have the separate encoding and integrity rules described under playlist and list files. [1]
Exact values for the option bytes
| Offset | Meaning | Documented values |
|---|---|---|
| 0x00 | Application revision | Usually 0x02; Japanese 0x01 can show the Version 2 introduction |
| 0x01 | Drawing hand | 0x00 right; 0x01 left |
| 0x02 | Interface sound effects | 0x00 enabled; 0x01 disabled |
| 0x03 | Possible upgrade-from-V1 marker | 0x01 is suggested, not confirmed |
| 0x04 | Has connected online | 0x01 is the documented set state |
| 0x05 | Introduction completed | 0x01 yes; 0x00 no |
| 0x06 / 0x07 / 0x08 | Default pen / paint / eraser variant | Each is in 0x00–0x0E |
| 0x09 / 0x0A | Default Trace / Copy state | 0x01 on; 0x00 off |
| 0x0B | Hatena usage flags | Individual bits are listed below |
| 0x0C | Advanced tools | 0x01 on; 0x00 off |
| 0x0D | Trace page count | Unsigned byte; this source gives no supported-value range |
| 0x0E | Frog display | 0x00 on; 0x01 off |
| 0x0F | Start with calendar | 0x01 on; 0x00 off |
| 0x10 | FSID | Eight bytes, interpreted as a little-endian 64-bit value |
| 0x18 | Savefile checksum | 16-bit value; this page does not define its calculation |
| 0x1A | Birth year | 16-bit value |
| 0x1C / 0x1D | Birth month / birth day | One byte each |
Hatena activity flags at option.bin +0x0B
| Mask | Recorded activity |
|---|---|
| 0x01 (1 << 0) | A Flipnote download was started |
| 0x02 (1 << 1) | A Flipnote upload or download completed successfully |
| 0x04 (1 << 2) | The Hatena main menu was viewed |
| 0x08 (1 << 3) | A comment was uploaded |
The source also labels 0x1D–0xFF as zero-filled, overlapping the birth-day byte at 0x1D. Do not erase the day to enforce that range. The overlap, settings-checksum calculation and remaining activity bits are all unresolved. [1]
