SPC
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.
SNES SPC700 Sound Preview.
At a glance
| Purpose | An SPC700 sound file: a snapshot of the Super Nintendo's sound processor (RAM, DSP registers and CPU state) that plays one song. |
| Extensions | .spc |
| Poka parser | poka-spc |
| 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-spc/src/main.rs (358 lines) and plugin.json. No unit tests or tests/samples.rs; the corpus has sample.spc but no test reads it. Covers .spc. The tree checks the magic and shows the ID666 tag (song and game title, artist, dumper, date, comments, length, fade, emulator; text layout, and a best-effort binary layout chosen by a heuristic) and the SPC700 registers (PC, A, X, Y, PSW, SP). Judgement: B4 rather than B5, because the whole header is decoded and checked; nothing of the sound data (the 64 KiB RAM image and the DSP registers) is.
What Poka does not read
- The 64 KiB sound RAM and the DSP registers are not decoded; the song is not played
- The extended ID666 block (xid6) after the RAM image is not read
- Whether the tag is text or binary is guessed from the date field
- Files over 16 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.
- spc_tag (libspc_tag-rs) (candidate; GPL-2.0-or-later OR LGPL-2.1-or-later; Rust; https://docs.rs/crate/spc_tag/latest) — Reads/writes SPC v0.31 binary and text files and tags; no audio emulation; repo gitlab.com/gemarcano/libspc_tag-rs
- snes_spc (Blargg, GitHub fork) (candidate; LGPL-2.1; C++; https://github.com/yupferris/snes_spc) — SPC-700 APU emulator that loads, plays and saves SPC files; this fork is no longer cycle-accurate; version taken from GitHub sidebar only
- spc_tag (candidate; MPL-2.0 OR LGPL-2.1-or-later OR GPL-2.0-or-later; Rust; https://gitlab.com/gemarcano/libspc_tag-rs) — SNES SPC file format tag library and utilities.; v0.3.0, updated 2026-03-28; matched on lib.rs, not tested
Sources
- parsers/poka-spc/src/main.rs
- parsers/poka-spc/plugin.json