Standardowe pliki NSF składają się z funkcji init (wywoływanej na początku jeden raz) oraz funkcji play, wywoływanej cyklicznie w przerwaniu z częstotliwością 50 Hz (PAL) / 60 Hz (NTSC). Nie jestem kompozytorem/muzykiem, ale ta funkcja odtwarza prawdopodobnie po każdym uruchomieniu jedną nutę/akord na każdym z kanałów.
W swoim sprzętowym odtwarzacuz NSF który kiedyś wykonałem:
https://www.youtube.com/watch?v=xJwnrvtit8Adałem możliwość LEKKIEJ regulacji prędkośći - od bodajże 40 Hz do 70 Hz.
Oczywiście projektując swój własny sprzęt do odtwarzania NSF, bazujący na procesorze z konsoli, można sobie na to pozwolić, natomiast nie widzę sposobu, jak możnaby wymusić częstsze zgłaszanie przerwania w już istniejącej konsoli - jako, że linia !NMI jest typu otwarty kolektor, można pewnie dodać dodatkowy układ, który będzie zwierał ją do masy częściej.
W przypadku emulacji nic nas w zasadzie nie ogranicza w dowolnym zwiększaniu częstotliwości. Jednak przy uruchamianiu takiego kardridża na sprzęcie należy mieć na uwadze, że funkcja `play` potrzebuję jakiegoś czasu, aby zdążyć się wykonać, wiec zbyt duże zwiększenie częstotliwości wywoływania (400 Hz = 8 razy szybciej niż 50 Hz) może spowodować, że przed kolejnym wywołaniem funkcja jeszcze nie zdążyła się zakończyć.
Można oczywiście podkręcić też główny procesor konsoli, ale wtedy
1. nie mamy pewności, czy będzie on działał prawidłowo (z jakiegoś powodu - czas propagacji sygnału na ścieżce krytycznej - producent ustalił 1.7 MHz, a nie np. 17 MHz)
2. zwiększając częstotliwość procesora zmieniamy częstotliwość generowanych tonów
Jeśli masz do tego kardridż z VRC to także nie wiadomo, jak on zareaguję na zwiększenie częstotliwości.
Generalnie nie rozumiem zabiegów, czemu ma słuzyć tworzeine utworów w zwiększonej szybkości - albo tworzysz utwór, kompatybilny z bieżącym standardem (NSF 50 Hz / 60 Hz), albo uważasz, że jest on niezadowalający i wybierasz INNY standard, a nie zmieniasz coś istniejącego i przestaje to być zgodne ze sprzętem.
Widzę niestety podobny trend akże wśród twórców nowych gier/remake-ów na NESa - np. Rock Man 4 na MMC3, ktory używa 1 MB pamięci (pomimo, że nigdy sprzętowy mapper tego nie wspierał) czy np. przeróbki gier typu Mario All Stars/Zelda Legends of Link na MMC5 tylko dlatego, że to jedyny mapper, który obsługuje 1 MB pamięci, mimo, że nie korzysta się z żadnej innej funkcjonalnności tego układu.