poka.sh

Docs

NSF

Generated by scripts/gen-format-pages.py from docs/data/format-metadata/, FILE_FORMATS.csv and docs/formats-master.csv. Do not edit by hand: change the source, then run the script.

NES Sound Format Preview.

At a glance

Purpose An NES Sound Format file (.nsf, or the chunked .nsfe): music ripped from NES games with the code to play it.
Extensions .nsf
Poka parser poka-nsf
Viewer poka-tree-viewer
Depth tier Parser with a shared viewer (see Depth tiers)
Breadth tier B4 Summary (see Breadth tiers)

How much Poka reads

B4 Summary. The container and metadata are read and summarised (counts, properties, structure), but the main content is not rendered.

Confidence: medium (the reviewer read the code). Basis: Reviewed 2026-10-26: read parsers/poka-nsf/src/main.rs (509 lines) and plugin.json. The two unit tests check that NITF and NSIF images are refused with a name and that NES sound is not mistaken for them; the corpus has oga_victory.nsf but no test reads its fields. Covers .nsf and .nsfe. For .nsf the tree decodes the 128-byte header (format, version, songs, start song, name, artist, copyright, region, load, init and play addresses, NTSC and PAL speeds, expansion chips, bank switching); for .nsfe it walks the chunks and reads INFO, auth, tlbl (track titles) and time (track lengths). Judgement: B4 rather than B5, because the whole header is decoded and checked; nothing of the music (the 6502 code and data) is.

What Poka does not read

  • The music is not played or analysed
  • NSFe chunks other than INFO, auth, tlbl and time are skipped (fade times, playlists, track labels by author, DATA and BANK contents)
  • NSF2 is recognised, but its metadata chunks after the program data are not read (judgement from the code)
  • Files over 32 MiB are cut without a flag

Libraries

Libraries Poka uses or has assessed for this format, with the status, licence and language the registry records.

Sources

  • parsers/poka-nsf/src/main.rs
  • parsers/poka-nsf/plugin.json