nspcplay 0.9.1

NSPC player.

To use this package, run the following command in your project's root directory:

Manual usage
Put the following dependency into your project's dependences section:

This package provides sub packages which can be used individually:

nspcplay:player - NSPC player

nspcplay:extract - NSPC extractor

nspcplay:mknspc - NSPC builder



NSPCPlay is an implementation of the NSPC engine used and extended by many Super Nintendo games. Currently, only variants compatible with Earthbound's player are compatible, but this may be extended in the future.


As a Dependency

Simply use dub add nspcplay in a D project.

Standalone Player

Run dub build :player in the nspcplay directory.

NSPC Format

An NSPC file has a simple structure:

struct NSPC {
	uint variant; // Which version of NSPC this file uses
	ushort songAddress; // Base SPC address of the song's sequence data
	ushort instrumentAddress; // Base SPC address of the instruments
	ushort sampleAddress; // Base SPC address of the samples
	ubyte releaseTable; // Release table to use
	ubyte volumeTable; // Volume table to use
	ubyte[19] reserved; // Currently unused
	ubyte firCoefficientTableCount; // Number of FIR coefficient tables in this file
	// NSPC packs here...
	ubyte[8][0] firCoefficientTables; // length determined by firCoefficientTableCount

struct NSPCPack {
	ushort size;
	ushort address;
	ubyte[0] data; //'size' bytes of data


0 - Earthbound

Used in Earthbound. Compatible with many other variants.

1 - Prototype

Used in Super Mario World and Pilotwings.


NSPCPlay is based upon the code used in the Earthbound Music Editor, EBMusEd, and extended by Cameron 'Herringway' Ross.

Sub packages:
nspcplay:player, nspcplay:extract, nspcplay:mknspc
0.9.1 2023-Dec-31
0.9.0 2023-Apr-08
0.8.2 2023-Jan-07
0.8.1 2022-Nov-12
0.8.0 2022-Nov-12
Show all 7 versions
Download Stats:
  • 0 downloads today

  • 0 downloads this week

  • 22 downloads this month

  • 128 downloads total

Short URL: