Wytłumaczcie mi jak krowie na miedzy różnice między tymi dwoma układami. Przy słuchaniu muzy owszem jest różnica. Ale gdzieś spotkałem się w necie ze ST-eowski chip i AY to to samo .
There exist subtle differences between AY-3-8910 chips used in some MSX's and Yamaha YM2419 chips used in others (and presumably incorporated in the various MSX-Engine chips). The sound of an AY-3-8910 is warmer (due to different frequencies in the output) and it has different envelope timing.
openMSX should emulate these differences and use the correct emulation for the various MSX models.
i kolejne źródło:
as you said all the difference is on how the Atari ST processor controls the chip consider that it has programmable timers that allows the YM to be addressed at 21KHz allowing in this way pcm audio mixed to the standard tones
Zacznijmy od Bacha czyli od AY. * 3 generatory fali protokątnej o rozdzielczości 12-bit taktowane q/16, * 1 generator szumu o rozdzielczości 5-bit taktowany q/256 (generator szumu to LFSR o wielomianie x17+x12+1), * 1 generator obwiedni o rozdzielczości 16-bit taktowany q/16. Generator obwiedni posiada 7 16-krokowych wzorców - piła (narastająca/opadająca), trójkąt (narastający/opadający) - wartości głośności rosną lub opadają zawsze o 0 do 15 lub od 15 do 0. 3 kanały dźwięku które mogą brać wartości albo z generatora obwiedni, albo z generatora fali prostokątnej (głośność dla kanału jest brana z obwiedni, głośność dla generatora fali protokątnej jest ustalana przez programistę lub może być brana z obwiedni). Te wartości mogą być niezależnie kombinowane z wartością z generatora szumu (OR). Kanał dźwięku ma rozdzielczość 4-bitową, ale na wyjściu jest DAC logarytmiczny. Kanały dźwiękowe są przyporządkowane do kanałów stereo tak, że A jest po lewej, B jest w centrum (dźwięk jest obecny na obydwóch kanałach stereo), a C jest po prawej. Pozornie daje to możliwości łatwe do wygenerowania POKEYem, ale: - na wyjściu POKEYa jest liniowy DAC, - na wyjściu z AY jest wzmacniacz w układzie różniczkującym, co powoduje zwiększenie możliwych poziomów głośności i to nieliniowo. Dzięki temu AY tak naprawdę nie generuje prostokątów (charakterystyczne brzmienie prostokątu powstaje dzięki pewnej "bezwładności" wzmacniacza), ale piły. Kwantyzacja głośności kanałów dźwiękowych powoduje dokładanie dodatkowych częstotliwości do fali wyjściowej i dlatego bas generowany obwiednią jest taki ładny gwiżdżący bo nakładają się tam dodatkowe piły.
Od strony programisty AY i YM wyglądają identycznie. Różnica jest tylko sprzętowa i polega na tym, że obwiednia w AY jest 16-stopniowa, a w YM 32-stopniowa (dźwięk obwiedni nie jest głośniejszy - w stosunku do AY są po prostu dodatkowe poziomy "pomiędzy"). Natomiast głośność generatora fali prostokątnej możliwa do ustalenia przez programistę jest nadal 16-stopniowa (ma rozdzielczość 16-stopniową a więc powiedzmy, że możesz ustawiać głośności tylko parzyste w 32-stopniowej skali YM - najmłodszy bit jest zawsze 0).
Edit: A - w tradycyjnym ZX Spectrum AY jest taktowany q=1.7734MHz a w ST YM jest taktowany q=2MHz.
Edit 2: AY 3-8910,12,13 są różne wersje generalnie różniące się tylko wyprowadzeniem 2 portów 8-bit ogólnego przeznaczenia. 10 nie ma wyprowadzonych, 11 ma 1, 12 na obydwa oidp. YM 2149 :)
Edit 3: Uściśliłem jeszcze głośność kanału. Masz tam kombinacje: - cisza - sam przebieg prostokątny o stałej głośności ustalonej przez programistę, - sam przebieg prostokątny + szum o stałej głośności ustalonej przez programistę, - sama obwiednia, - przebieg prostokątny sterowany obwiednią (osobna częstotliwość dla przebiegu prostokątnego i oczywiście osobna dla zmian obwiedni), - sama obwiednia + szum (głośność brana z obwiedni), - przebieg prostokątny + szum sterowane obwiednią (osobna częstotliwość dla przebiegu prostokątnego i oczywiście osobna dla zmian obwiedni).