Skip to content

How to add a Chip

Persune edited this page May 8, 2023 · 5 revisions

Disclaimer

Dn-FamiTracker's aim is to fill in the gaps of NSF, NSFe and NSF2 features and/or emerging NESDev homebrew standards that 0CC or Vanilla fails to meet due to a lack of maintenance.

As such, Dn-FT will only implement features present in current NSF/NSFe/NSF2/INES/INES2.0 standards and definitions, keeping in mind the original goal of producing music for the NES/Famicom systems.

If you want to add different chips from different systems/formats, please direct your requests/efforts to Furnace.

1. All of these must be implemented in one go before you can have a chance to prototype and debug:

  1. Emulation core and emu core class handler. eg. EPSM.cpp; emu_YMF288.cpp
  2. sound handling and mixing (eg. APU.cpp, Mixer.cpp, SoundGen.cpp implementations)
  3. Channel handler (eg. ChannelsEPSM.cpp, ChannelHandler.cpp)
  4. Instrument handling (eg. InstrumentEPSM.cpp, InstrumentHandlerEPSM.cpp, InstrumentEditorEPSM.cpp, SeqInstHandlerEPSM.cpp)
  5. Document bindings and types (eg. APU\Types.h, ChannelFactory.cpp, ChannelMap.cpp, ChannelsDlg.cpp, DetuneDlg.cpp, FamiTrackerDoc.cpp, FamiTrackerTypes.cpp, FamiTrackerView.cpp, TrackerChannel.cpp)

2. After prototyping and debugging and making sure everything works okay, be sure to implement the NSF driver

  1. (see bhop)