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.
- oxideav-nsf (candidate; MIT; Rust; https://github.com/OxideAV/oxideav-nsf) — rendered 10 s of a real file
Sources
- parsers/poka-nsf/src/main.rs
- parsers/poka-nsf/plugin.json