NSFDRV: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
m (category)
 
(7 intermediate revisions by one other user not shown)
Line 4: Line 4:
== Background ==
== Background ==


1. NSF-Player can detect sound driver, and NSF-Player can fix the bug of old sound driver such as mck.
* NSF-Player can detect sound driver, and NSF-Player can fix the bug of old sound driver for chiptune such as mck.


  * In N163 audio, length of waveform is not set correctly.
  '''In N163 audio, length of waveform is not set correctly.'''
  Sample length register ($7C) upper 2bit is not correctly.
Sample length register ($7C) upper 2bit is not correctly.
  Detail on: https://wiki.nesdev.org/w/index.php/Namco_163_audio#Sound_RAM_.247E_-_Wave_Address
Reference: https://wiki.nesdev.org/w/index.php/Namco_163_audio#Sound_RAM_.247C_-_High_Frequency_and_Wave_Length


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


2. User can assert that user's NSF is original easily. (NSF is not ripped data from rom.)
* User can assert that user's NSF is original easily. (NSF is not ripped data from rom.)
3. If occur BUG in sound driver, Developer can get information of version number from NSF file for the debug.
* If occur BUG in sound driver, Developer can get information of version number from NSF file for the debug.


== File Format ==
== File Format ==
Line 19: Line 21:
This 8 bytes information is on actual rom image of 6502.
This 8 bytes information is on actual rom image of 6502.


  offset # of bytes   Function
  offset         Bytes   Function
  ----------------------------
  -------------------------------------------------
  $0000 - $007F       NSF Header (128byte)
  $0000 - $007F   128    NSF Header
  $0080 - $0085       Name of sound driver (ASCII)
  $0080 - $0085   6      Name of sound driver
  $0086               Version integral number
  $0086           1      Version integral number
  $0087               Version integral number
  $0087           1      Version integral number
 


== List of sound driver ==
== List of sound driver ==
Line 37: Line 38:
  Binary :      $46 $54 $44 $52 $56 $20
  Binary :      $46 $54 $44 $52 $56 $20


* NES Sound Driver & Library (http://shaw.la.coocan.jp/nsdl/)
* NES Sound Driver & Library (https://github.com/Shaw02/nsdlib)
  ASCII  :      "NSDL  "
  ASCII  :      "NSDL  "
  Binary :      $4E $53 $44 $4C $20 $20
  Binary :      $4E $53 $44 $4C $20 $20
Line 53: Line 54:
If sound driver have not bug, then adjuster is disable.
If sound driver have not bug, then adjuster is disable.
If sound driver is unknown (old sound driver), then adjuster is enable.
If sound driver is unknown (old sound driver), then adjuster is enable.


== Players ==
== Players ==
Line 59: Line 59:
* TNS-HFC4
* TNS-HFC4
* hoot
* hoot
[[Category:File formats]]

Latest revision as of 23:17, 28 January 2023

NSFDRV is to Include the information of sound driver to NSF.


Background

  • NSF-Player can detect sound driver, and NSF-Player can fix the bug of old sound driver for chiptune such as mck.
In N163 audio, length of waveform is not set correctly.
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.
$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.)
  • If occur BUG in sound driver, Developer can get information of version number from NSF file for the debug.

File Format

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
-------------------------------------------------
$0000 - $007F   128     NSF Header
$0080 - $0085   6       Name of sound driver
$0086           1       Version integral number
$0087           1       Version integral number

List of sound driver

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
  • Development code (for no-bug sound driver)
ASCII  :      "      "
Binary :      $20 $20 $20 $20 $20 $20

Old chiptune sound driver have some bugs. Some NSF Player adjust this bug of old chiptune sound driver. 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
  • hoot