NSFDRV: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
m (category)
(Update grammar)
 
Line 1: Line 1:
'''NSFDRV''' is to Include the information of sound driver to NSF.
'''NSFDRV''' is an 8-byte header ID in the ROM of an [[NSF]] file used to identify the sound driver used.


== Usage and applications ==


== Background ==
* NSF players can use this ID to identify old sound drivers developed with inaccurate emulation, and therefore patch the drivers accordingly.


* NSF-Player can detect sound driver, and NSF-Player can fix the bug of old sound driver for chiptune such as mck.
* Authors can assert that their NSF is original (i.e. NSF is not ripped from a ROM).


'''In N163 audio, length of waveform is not set correctly.'''
* In sound driver bug reporting, the developer can use this ID to identify the driver version.
Sample length register ($7C) upper 2bit is not correctly.
Reference: https://wiki.nesdev.org/w/index.php/Namco_163_audio#Sound_RAM_.247C_-_High_Frequency_and_Wave_Length


'''FDC audio is not enable.'''
== File Format ==
$4023 is not set.
Reference: https://wiki.nesdev.org/w/index.php/FDS_audio#Master_I.2FO_enable_.28.244023.29


* User can assert that user's NSF is original easily. (NSF is not ripped data from rom.)
The tag consists of 8 bytes on the actual program data of the NSF file.
* If occur BUG in sound driver, Developer can get information of version number from NSF file for the debug.


== File Format ==
Since the program data follows immediately after the NSF header, these 8 bytes are defined as follows:
There is 8 bytes information of sound driver after NSF header.
This 8 bytes information is on actual rom image of 6502.


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


== List of sound driver ==
== List of NSFDRV sound driver IDs ==


* OFGS (http://offgao.no-ip.org/ofgs/)
* OFGS (http://offgao.no-ip.org/ofgs/)
Line 42: Line 36:
  Binary :      $4E $53 $44 $4C $20 $20
  Binary :      $4E $53 $44 $4C $20 $20


* Development code (for no-bug sound driver)
A blank NSFDRV ID may be used for sound drivers under development.
 
  ASCII  :      "      "
  ASCII  :      "      "
  Binary :      $20 $20 $20 $20 $20 $20
  Binary :      $20 $20 $20 $20 $20 $20


Old chiptune sound driver have some bugs.
== Player implementations ==
Some NSF Player adjust this bug of old chiptune sound driver.
The following players implement NSFDRV identification:
But, It adjuster affect the new sound driver without bug.
Therefore, this information is need now.
 
NSF Player detect the sound driver name.
If sound driver have not bug, then adjuster is disable.
If sound driver is unknown (old sound driver), then adjuster is enable.
 
== Players ==
The following implementations of NSFDRV exist:
* TNS-HFC4
* TNS-HFC4
* hoot
* hoot


[[Category:File formats]]
[[Category:File formats]]

Latest revision as of 14:52, 10 December 2024

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