System Memory and option.bin

The FAT12 save image, its local library and the fields that carry Studio settings.

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

PathRole
ugo/001 through ugo/032Folders holding System Memory Flipnotes; folder assignment has not been proven to follow a stable algorithm.
nand.pls, recent10.pls, latest1.plsLibrary and recent-item indexes.
mark0.pls through mark3.plsSticker selections.
friend.pls, remind.plsLocal-sharing and calendar-related lists; details remain uncertain.
eula.txtLast online service's terms in UTF-16LE text.
option.binPersonal settings and the FSID.

option.bin fields

OffsetTypeObserved interpretation
00u8Application revision. Japanese 01 can trigger a version-two introduction; 02 is usual.
01 / 02u8 eachStylus hand: 0 right, 1 left. Sound effects: 0 on, 1 off.
03 / 04 / 05u8 eachPossible V1-upgrade marker, online-connection marker, completed-tutorial marker.
06 / 07 / 08u8 eachDefault pen, paint and eraser variants, each documented in range 0–14.
09 / 0Au8 eachDefault Trace and Copy switches; 1 enabled.
0Bu8Hatena usage bits, mapped below.
0C / 0Du8 eachAdvanced tools switch and Trace page count.
0E / 0Fu8 eachFrog display (0 on, 1 off) and start-on-calendar (1 on).
10u64 LESixteen-digit FSID in little-endian storage.
18 / 1Au16 LE eachSave checksum, then birth year.
1C / 1Du8 eachBirth 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

OffsetMeaningDocumented values
0x00Application revisionUsually 0x02; Japanese 0x01 can show the Version 2 introduction
0x01Drawing hand0x00 right; 0x01 left
0x02Interface sound effects0x00 enabled; 0x01 disabled
0x03Possible upgrade-from-V1 marker0x01 is suggested, not confirmed
0x04Has connected online0x01 is the documented set state
0x05Introduction completed0x01 yes; 0x00 no
0x06 / 0x07 / 0x08Default pen / paint / eraser variantEach is in 0x00–0x0E
0x09 / 0x0ADefault Trace / Copy state0x01 on; 0x00 off
0x0BHatena usage flagsIndividual bits are listed below
0x0CAdvanced tools0x01 on; 0x00 off
0x0DTrace page countUnsigned byte; this source gives no supported-value range
0x0EFrog display0x00 on; 0x01 off
0x0FStart with calendar0x01 on; 0x00 off
0x10FSIDEight bytes, interpreted as a little-endian 64-bit value
0x18Savefile checksum16-bit value; this page does not define its calculation
0x1ABirth year16-bit value
0x1C / 0x1DBirth month / birth dayOne byte each

Hatena activity flags at option.bin +0x0B

MaskRecorded 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]

Sources

  1. [1] Flipnote Studio Docs wiki — Savefile
  2. [2] Flipnote Studio Docs wiki — .pls and .lst files

← All documentation