a jak wyglada sprawa obciazenie CPU Atari podczas odtwarzanie SID'ow ? tak jak np. z MPT ? bo jak tak to luzik :)
i tu właśnie jest ciekawostka ;) Myślałem że C64 jest sporo wolniejsze od atari :) wiec myślałem iż Player z C64 będzie się wykonywał nieco szybciej na ATARI niż na C64. Jakież było moje zdziwienie jak zobaczyłem iż player z C64 wykonuje się prawie tyle samo na ATARI co na C64 (no może minimalnie szybciej). Badanie przeprowadzałem przy standardowym ekranie z C64, playera odpalałem w momecie zaczęcie rysowania przez VIC'a pierwszej lini tekstowej. Podobnie na atari (standarowy ekran ATARI w trybie ANTIC $02).
Próbowałem poszukiwać wyjaśnienia całej sytuacji. Pytałem znających się trochę bardziej ode mnie na C64 jak to jest że ekran praktycznie nie spowalnia C64. I co się okazało... otóż podobno VIC z C64 to bardzo sprytny układ ;) Nie haltuje on CPU tak jak ANTIC. Pobieranie danych z pamięci i odświeżanie tejże wykonuje w przeciwfazie do CPU. CPU z C64 pobiera dane z pamięci na narastającym zboczu sygnału zegarowego a VIC na opadającym. Także nie ma możliwości aby CPU i VIC zarządały danych w tym samym momencie z RAMu. Tak wiec pobieranie danych z pamięci przez VIC'a nie spowalnia CPU.
Tak do końca nie wiem czy to prawda bo nie miał mi kto potwierdzić tych informacji. Jednak zakładam iż jeżeli player z C64 odpalony na ATARI wykonuje się podobną ilość czasu to oznacza to tylko jedno... VIC nie wstrzymuje 6510, albo nie spowalnia go w takim stopniu jak ANTIC spowalnia 6502.
Ale wracając do czasu wykonaia się player'a. Z założenia Playery z C64 powinny się wykonywać o wiele krócej. SID ma własny generator obwiedni wiec Player zupełnie się tym nie powinien zajmować. A jednak playery z C64 mają porównywalne czasy wykoania z playerami z ATARI. Są i player y które zajmują dwie linie ekranowe, jednak są i takie rozrośnięte kobyły co potrafią zabrać z 70 lini rastrowych ;).
Zaczołem się przyglądać playerom z C64 i dwie rzeczy rzuciły się od razu w oczy. Po pierwsze 12-bitowa precyzja SID'a wymusza trochę innego rodzaju kod. Po drugie część świetnych muzyków z C64 sama pisze/pisała playery i jeżeli ktoś jest dobrym muzykiem nie oznaczało iż był także rewelacyjnym koderem. Cześć playerów po prostu jest napisana tak aby spełniała swoje "zadanie brzmieniowe". One nia muszą być szybkie, ważne żeby fajnie brzmiały. Cześć muzyków nie przywiązywała po prostu wagi co do jakości kodu playera. Inni nie potrafili sobie napisać szybkiego playera.
Analizowałem kilka playerów i tak jak mówiłem są takie które wykonują się 2 linie i są prawdziwe kobyły ;) Jednak średni jest to około 32-48 lini rastrowych (przy wyłączonym ekranie na ATARI). Zresztą możecie zobaczyć to w SidPlay'u świetego. Tam jest pokazany czas wykoania Player'a z C64 ;).
Moim zdaniem średnio wchodzi nieco krócej niż MPT. Ale jest innna wada niektórych playerów. Średni czas wykoania jest bardzo krótki, ale w momecie gdy taki player musi pobrać dane dla kolejnych patternów zaczyna długo się wykonywać.
Zresztą specyfika muzyki SID'owej jest zupełnie inna niż POKEY'owej. SID'owcy mają zupełnie inne efekty. Często playery potrafią robić płynne przejścia z jednej nuty do drugiej. To wymusza też nieco inny styl pisania playera.
eehhhh... co ja zresztą bredzę... już chyba wystrarczająco dużo natrułem ;)
pozdrawiam
Seban/SLIGHT