NSFDRV

From NESdev Wiki
Revision as of 14:52, 10 December 2024 by Persune (talk | contribs) (Update grammar)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

NSFDRV is an 8-byte header ID in the ROM of an NSF file used to identify the sound driver used.

Usage and applications

  • NSF players can use this ID to identify old sound drivers developed with inaccurate emulation, and therefore patch the drivers accordingly.
  • Authors can assert that their NSF is original (i.e. NSF is not ripped from a ROM).
  • In sound driver bug reporting, the developer can use this ID to identify the driver version.

File Format

The tag consists of 8 bytes on the actual program data of the NSF file.

Since the program data follows immediately after the NSF header, these 8 bytes are defined as follows:

Offset          Bytes   Function
-------------------------------------------------
$0000 - $007F   128     NSF Header
$0080 - $0085   6       Sound driver ID
$0086           1       Major version number
$0087           1       Minor version number

List of NSFDRV sound driver IDs

ASCII  :      "OFGS  "
Binary :      $4F $46 $47 $53 $20 $20
ASCII  :      "FTDRV "
Binary :      $46 $54 $44 $52 $56 $20
ASCII  :      "NSDL  "
Binary :      $4E $53 $44 $4C $20 $20

A blank NSFDRV ID may be used for sound drivers under development.

ASCII  :      "      "
Binary :      $20 $20 $20 $20 $20 $20

Player implementations

The following players implement NSFDRV identification:

  • TNS-HFC4
  • hoot