FT-NSF2GBS (Lua script)
BotB Academy Project Dev
Level 24 Chipist
post #64525 :: 2016.03.04 3:07pm :: edit 2016.03.04 3:08pm
  nitrofurano, Dimeback, anewuser, Jangler, Jimmyoshi, YobaHere, Savestate, DBOYD, gotoandplay, OrdinateIsDead, b00daw, andres and Razerek liēkd this
Lua script converts any one-N163-channel NSF created from FamiTracker 0.4.6 / 0CC-FamiTracker 0.3.13 to a GBS sound file and a GB ROM image. It supports most things already found in FT / 0CC-FT verbatim, by porting their NSF driver to GB-Z80 assembly code. Details are in the linked post and the Gist note there.

Last time I checked, .gbs files are actually accepted by the gameboy format now, although you probably already know how to export .wav files from any good emulator (e.g. BGB) now.
Level 22 Chipist
post #64526 :: 2016.03.04 3:10pm :: edit 2016.03.04 4:23pm
πŸ‘ i l i k e πŸ‘πŸ‘πŸ‘

(but in all seriousness this is brilliant and will further advance the gameboy format ey)
Level 27 Renderist
post #64528 :: 2016.03.04 3:17pm :: edit 2016.03.04 3:21pm
  HertzDevil liēkd this
.GBS file format is preferred, HertzDevil. Thank you. :)

This is a great addition to the FamiTracker library. I'll have to check to see if engine speeds are taken into consideration on output in order to get some LSDj-like WAV timbres. ;)

I've also been attempting to contact Johan from LSDj to enable a mode to output SAV data via DAC for WAV2BIN. nitro2k01 has been considering this solution as well; and may have access to source. So if I don't get too far with Johan I may go that route if there are no political roadblocks.
Level 24 Chipist
post #64532 :: 2016.03.04 3:30pm :: edit 2016.03.04 3:32pm
  b00daw liēkd this
It patches appropriate values for the Game Boy timer registers based on the NSF's refresh rate and default region. Since it does not use the vertical blank interrupts (although they could be enabled from the assembly source), it immediately gains access to a wide (but coarser-than-NSF) selection of engine speeds to use, and the GBS specification suggests that this can be modified by the sound driver itself while playing.

Speaking of LSDj waves, I made also a utility
in preparation for this converter script. And also speaking of LSDj, technically they do not require special engine speeds since they do not use the high-speed pitch stuff; to do that you need something like ~240 Hz from FamiTracker, and this port handles that well.
Level 0 n00b
post #139758 :: 2021.04.03 1:39am
i get this error when trying to use it Error: ft_nsf2gbs.lua:177: attempt to index a nil value (local 'gb')

LOGIN or REGISTER to add your own comments!