Skip to content

Example full-featured Python parser for Flipnote Studio's .ppm animation format

License

Notifications You must be signed in to change notification settings

Flipnote-Collective/ppm-parser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Example decoder and utilities for Flipnote Studio's .ppm animation format.

This is not remotely optimised, and is for example purposes only

All scripts were written for Python 3.7 and require the numpy module to be installed.

Credits

  • jaames for completing PPM reverse-engineering and writing this implementation.
  • bricklife, mirai-iro, harimau_tigris, and other members of the Japanese Flipnote community who started reverse-engineering the PPM format almost as soon as the app was released.
  • Midmad and WDLMaster for identifying the adpcm sound codec used.
  • steven and yellows8 for the PPM documentation on DSiBrew.
  • PBSDS for more PPM reverse-engineering, as well as writing hatenatools

Utilities

ppmImage

Converts specific ppm frames to standard image formats such as png, gif, jpeg, etc. Requires the Pillow module to be installed.

Usage:

python ppmImage.py <input path> <frame index> <output path>

<frame index>:

  • Specific frame index (e.g. 0 for the first frame)
  • thumb to get the thumbnail frame
  • gif to encode the whole Flipnote to an animated GIF.

<output path>:

  • Can include placeholders: {name} for the input filename (without extention), {ext} for input extention, {index} for the item index and {dirname} for the input file directory.

<input path>:

  • You can pass glob patterns as the input filepath to batch convert. For example, the following will extract thumbnail images from all the ppms in a directory:

    python ppmImage.py "/flipnotes/*.ppm" thumb /flipnotes/{name}.png

About

Example full-featured Python parser for Flipnote Studio's .ppm animation format

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages