Flipnote Studio documentation
How the original DSi application works, from the editor to its files and online client. Each guide explains what has been checked and what is still uncertain.
Research drawn from the Flipnote Decompilation Project, Flipnote Collective Docs, and the hatena-server wiki. Every article names its sources.
Start here
Flipnote Studio documentationHow the DSi editor, file formats and online client work.Evidence and confidenceHow to read ROM findings without mistaking analysis for original source.Releases and program imagesThe studied Japanese, American and European Studio builds and the Viewer.Flipnote Studio and Hatena historyDevelopment, releases and closure dates for Studio and Hatena.Research credits and sourcesThe researchers behind the format and client documentation, with links to their original work.GlossaryQuick definitions for the terms used throughout the documentation.Research workflowA reproducible route from ROM bytes to a documented behaviour.
Making Flipnotes
The original editorThe editor's screens, shared controls and working animation data.Drawing tools and selectionHow the editor routes strokes, fills and selections into layer pixels.Layers, ink and visibilityHow two drawing layers become a composed Flipnote frame.Selection and transformsHow selection shapes, pixel data and editing operations work together.Frames and playbackFrame navigation, compressed rows, timing and the displayed image.Frame timing and playbackHow playback speed controls frames, music and sound effects.Sound and recordingBackground music, three sound effects, ADPCM and recording controls.Microphone recording and audio streamsSeparate capture, track editing, compression and playback.Saving and the local libraryHow the editor packages a PPM and how Studio finds saved Flipnotes.System Memory and option.binThe FAT12 save image, its local library and the fields that carry Studio settings.Save controller and workerTrace a Save action through editor commit, background processing and file close.Local library scanningFollow reads, SD enumeration, name classification and list ordering by build.
Files and formats
PPM animation filesThe container, metadata, thumbnail, frames, sound and signature area.PPM metadata and provenanceAuthor fields, filenames, lock settings and thumbnail selection.PPM animation framesDecode frame offsets, row compression, differences and visibility safely.PPM sound dataFind the four tracks, frame triggers and two playback speed fields.Original PPM serialisationFollow the four Studio builds from in-memory editor state to the queued PPM body.PPM packaging and acceptanceSeparate the emitted body, 0x90-byte package trailer, and original file acceptance checks.Identity and filenamesHow author labels and file names appear in original Flipnote data.Access requiredImage resources and palettesPPM thumbnails and the image resources used by Hatena pages.NBF backgroundsDecode indexed top-screen images used by online pages and menus.NPF palette imagesDecode compact transparent images and their padded row width.NTFT direct-colour imagesRead RGBA5551 pixels used by online pages and UGO icons.UGO menusThe structured resources that drive many Flipnote Hatena screens.TMB previewsA small Flipnote preview carrying metadata and a thumbnail.Playlist and list filesThe .lst and .pls formats used alongside Flipnote browsing.Internal files and storageSeparate ROM resources, local Flipnotes and online response files.Embedded layout recordsThe JNBL, JNCL and JNLL tables found alongside Studio menu resources.NitroFS: Japanese V1All 8 NitroFS files in Japanese V1, with offsets, sizes and formats.NitroFS: Japanese V2All 26 NitroFS files in Japanese V2, with offsets, sizes and formats.NitroFS: American V2All 37 NitroFS files in American V2, with offsets, sizes and formats.NitroFS: European V2All 56 NitroFS files in European V2, with offsets, sizes and formats.Embedded assets and codecsHow archives, fonts, layouts and sound resources are packed into Studio.NARC archives and compressionTrace an embedded UI member from ROM storage to decoded bytes.Fonts, text and message tablesConnect localised strings to glyph resources and UI layout.Studio message catalogueHow the text tables map UI objects and prompts to numbered resource entries.Message meanings and UI statesWhat the layout and message entries mean, including placeholders, sample values and errors.SDAT and interface soundRead the shipped sound archive and distinguish cues from recorded Flipnote audio.
Flipnote Hatena
Flipnote Hatena architectureA map of menus, documents, Flipnotes and user actions in the DSi client.Nintendo Authentication ServerResearch notes on the network authentication stage.Access requiredHatena authenticationResearch notes on the online session stage.Access requiredFlipnote Hatena clientHow Studio chooses online routes and processes replies.Hatena requestsHow ordinary client actions become GETs, POSTs and file transfers.Hatena responses and errorsInterpret status, message bodies, redirects and client error codes.Hatena browser and documentsHow the DSi client turns online responses into visible pages.Hatena HTML controlsNon-standard metadata that connects a page to Studio's player and actions.Posting Flipnotes and commentsDistinguish a posted animation from a one-page drawn comment.Stars, favourites and community actionsTrace interactive page controls from metadata to a request and a visible result.Hatena action flowsPosting, drawn replies, command codes and keyboard entry from a client screen.Keyboard and command inputHow text entry and button-code navigation return to an online page.Studio's internal URL schemesApplication commands and local-file namespaces used by the historical client.Building a compatible serviceRequests, file formats and response handling for a compatible server.Historical service connection methodsWhy the original network shutdown led to proxy and client-patching approaches.DSi browser limits and failure modesPractical constraints seen in historical Flipnote Hatena page tests.Unresolved client behavioursQuestions the Flipnote Collective wiki explicitly left open.
Inside Studio
Application architectureExecutable modules, shared data, startup and per-frame updates.Executable modules and coverageThe Studio and Viewer modules studied, with function counts and their limitations.Original function atlasFunction addresses by build, with notes on how the research names were assigned.UI, input and localisationScene trees, buttons, pen input, resources, fonts and messages.Rendering and displayHow compressed frame data becomes two ink layers on screen.Calendar and date navigationHow the original calendar builds and updates its day cells.Settings and the Japanese ViewerOriginal settings effects and the limits of a separate Wi-Fi utility.Title screen, frogs and soundA traced example of resource selection, animation state and interface cues.Hardware and system servicesStorage, input, audio, wireless and display in the shipped programs.Regional and historical differencesWhere Japanese V1 and the three V2 releases differ.Open questionsKnown limits and useful next steps for original-program research.
