170937
still finding it so funny how i can tell which parts are by which botbr like.
"ah theres kleeder. ah theres dami. ah"
"ah theres kleeder. ah theres dami. ah"
Hello and welcome to our nsf classic submission for Spring Tracks ^~^
======================================
Hey, this is kleeder.
What you are listening to, is a bytebeat entry. I wrote an engine, which is able to read and convert register address logs from nsf-playbacks. The way it works is actually simple (and heavily inspired by funutes vgm engine): I use a lua script made by miau to log the APU into a .csv while playing back the .nsf in fceux. I then use a selfmade python script to convert the csv into a javascript-array and write it into a .txt together with the additional bytebeat-logic. The bytebeat-logic is going through the array data and converts it on the fly for all 4 channels (sorry, no DPCM support). I agree, the code could probably be more optimized and prettier, but i don't feel like improving it, because it works well how it is.
The playback is very accurate, even though it doesn't support hardware sweep, no DPCM and for some reason, no F-1 note (miau and me don't know why, but the lua script isn't properly recording those lol).
The bytebeat engine also only supports 0cc-Famitracker nsf-exports (and j0cc, and Dn). But Vanilla FT as well as DefleMask Exports fail (they store data differently). I didn't test it with other tools that can export nsf, but i assume 0cc/j0cc/Dn are the most used forks/trackers anyway for nsf.
I would like to give special shoutouts to both miau and argarak! miau helped me with understanding the NES-Hardware better as well as sending me a script which records nsf-register writes. argarak helped me with the bytebeat code, especially some silly bugs that occured earlier on in the development. Thanks to you two!
The entry itself is a collaboration between damifortune and me and was done in Dn-Famitracker. It was a lot of fun working on it! dami is a very talented person and it's always inspiring to collab with him! Thank you as well!
Finally, i want to thank ChatGPT for coming up with the title.
The render is recorded directly from dollchan.net.
The submitted .txt file includes the bytebeat js-code. Just copypaste it into https://dollchan.net/bytebeat/ and set the sample rate to 44100Hz. The playpack is kinda laggy in Firefox but works well in Chromium-based browsers as far as i tried.
Have fun with the entry!
Download the converter-script as well as miaus lua-script here: https://github.com/kleeder/nsf2beat
(This repository will be made public right after the battle is over)