GTIA też potrafi grać by Kaz 2008-11-25 10:30:19

W Atariki czyli encyklopedii wiedzy o Atari mamy jak byk napisane: "GTIA - Graphics Television Interface Adapter, zwany też George's TIA od imienia projektanta, George'a McLeoda. Specjalizowany układ scalony odpowiedzialny za wytwarzanie - pod kierunkiem układu ANTIC - kolorowego obrazu oraz grafiki graczy i pocisków. Numer katalogowy Atari: CO14805 / CO14889 (PAL)." I wszystko wydaje się jasne - mamy układ scalony, który robi nam te słynne wielokolorowe tryby graficzne, z paletą 256 kolorów, a dodatkowo obsługuje sprzętowe duszki. Jednak okazało się, że to nie wszystko, a wyobraźnia ludzka nawet z chipa wideo potrafi uczynić maszynę grającą... A wszystko przez to, że GTIA wytwarza także klik klawiatury.

GTIA (źródło: Atariki, autor: Michał "Dracon" Garbaciak)

W przeszłości były pojedyncze próby zagrania melodyjek przez GTIA, ale nikt tego nie traktował poważnie. Jeden kanał to w końcu nie to samo co 4-kanałowy POKEY (który nota bene, też nie jest chipem stricte dźwiękowym, jego głównym zadaniem jest obsługa klawiatury i złącza szeregowego SIO). Ponadto zmuszanie procesora graficznego do grania muzyki zabiera nam cenną możliwość generowania większej ilości grafiki. Niby same wady, ale przecież cały urok tkwi w tym, żeby udowodnić, że się da...

GTIA jako "układ dźwiękowy" długo leżało zapomniane, aż przyszedł niejaki Yerzmyey, fan ZX Spectrum i wszelkich muzaków wyciskanych z gumiaka. Zachciało mu się posłuchać muzyki granej przez GTIA, co natchnęło z kolei xxl-a na dostarczenie mu tej możliwości. Od słowa do słowa i awantura... eee... idea gotowa. Wspólnymi siłami Yerzmyey (motywowanie, inaczej molestowanie oraz muzykowanie) i xxl (programowanie) doprowadzili do tego, że (jak na razie) Atari gra na GTIA lub POKEY-u dwukanałowe muzyczki z perkusja ze Spectrum. Trzykanałowe na razie fałszują z powodu niedocyklowania, ale jak donosi Krzysiek, super procka wielokanałowa jest w drodze i będzie grała wszystko prawidłowo. Przy okazji wyszło szydło z worka czyli błędy w emulatorze Atari800Win PLus, który nie jest w stanie poprawnie odegrać szalonych pomysłów na GTIA. Miłośnicy powiedzenia "tylko real Atari" pewnie się ucieszą, bo dostają do ręki solidny argument przeciwko używaniu emulatora.

Yerzmyey (źródło: Atari8.info)

A właśnie poniższe demko, które zatytułowane jest Beep'em All, działa poprawnie tylko na prawdziwym Atari. Nie chodzi wyłącznie o dźwięk, bo także grafika nie jest poprawnie wyświetlana. Ponieważ autorzy poprosili o jakieś pikselki, postanowiłem się dopasować do nie-działania-na-emulatorze :). Ekran ma szerokość 384 piksele, podczas gdy emulator wyświetla maksymalnie 352 piksele (a zresztą nie każdy TV to wyświetli). Jeżeli więc chcecie posmakować prawdziwych możliwości Atari, musicie odpalić szarą skrzyneczkę, a peceta odłożyć. A warto, bo nie licząc pojedynczych efektów, które Krzysiek przeportował z ZX Spectrum, jest to jego PIERWSZE demo. Dla tych, co wiedzą, że xxl-a zawsze odżegnywał się od działalności scenowej ma to dodatkowy smaczek... :)

Aby zrozumieć kulisy powstania demka, niezbędne jest posłuchanie, co ma do powiedzenia Yerzmyey. Poniżej znajdziecie jego tekst po angielsku, a także moje tłumaczenie po polsku: "Muzyczki w demie pochodzą z ZX Spectrum, który posiada dwa układy dźwiękowe: AY i... Z80, procesor tego komputera. AY ma 3 kanały i syntezę opartą na prostokątnej fali, podczas gdy Z80 daje możliwość rozszerzenia nawet do 8 kanałów (tworzonych programowo) i jest zdolny generować bardzo interesujące efekty, opisane poniżej. Z80 produkuje dźwięki i przesyła je do brzęczyka (beepera) oraz na wyjście audio (AUDIO-OUT) przez układ ULA, który jest 1-bitowym przetwornikiem. Tak więc, mimo, że oryginalnie mamy tylko jeden kanał 1-bitowego dźwięku o kształcie prostokątnej fali to w wyniku przetwarzania przez 3,5 MHz-owe CPU mamy ostatecznie na Spectrum 48KB:


Przez lata byłem przekonany, że tak samo powinno to działać na Atari XL/XE, które ma podobną konstrukcję w zakresie wytwarzania dźwięków: dwa źródła. POKEY jest 4-bitowym generatorem, ale... jest też 1-bitowy GTIA, na którym można grać muzykę, tylko na razie nie było do tego żadnego oprogramowania. Aż do teraz! :) Jeden z najbardziej utalentowanych koderów, XXL, zrobił odtwarzaczkę do 1-bitowych muzyczek z ZX Spectrum 48K. Opiera się ona na kodzie ze spectrumowego edytora "Music Studio", który udostępnia dwa kanały z całkiem przyjemnymi obwiedniami, brzmiącymi całkowicie inaczej niż te standardowe z naszego 1-bitowego generatora.

Tak więc, muzyka, którą słyszysz w tym programie jest grana z pomocą 6502 przez 1-bitowy przetwornik GTIA (normalnie używany tylko do... kliku klawiatury, he he!). Dzięki XXL-owi dostaliście bardzo fajny dodatkowy generator dźwięku, który dotychczas nie był wykorzystany! Mam nadzieję, że następnym krokiem będzie przeniesienie ze Spectrum kilku bardziej skomplikowanych odwtarzaczy, z trzema i więcej kanałami, z bardziej interesującymi obwiedniami i tak dalej. Jestem pewny, że Atari jest zdolne to pociągnąć, bo spełnia dwa warunki: ma 6502 i GTIA :)."




Miejmy nadzieję, że oczekiwania Yerzmyeya się sprawdzą. Plik z demkiem Beep'em All do ściągnięcią tutaj. W programie wybieramy najpierw, czy 1-bitowa muzyka ma być grana przez GTIA (klawisz 1) czy przez POKEY (klawisz 2), a potem klawisz spacji przełącza kolejne muzyczki. Gdyby ktoś się uparł, że chce uruchamiać program na emulatorze, to niech pamięta, że nie widać wszystkiego, a muzyka jest skaszaniona. Na szczęście Pin zgrał muzykę graną przez Atari do formatu MP3, więc chętni mogą sami stwierdzić różnice między Atari a emulatorem.

I jeszcze słowo komentarza od xxl-a: "Jest taki program na ZX - "The Music Studio". Jeśli ktoś chce, może na tym coś napisać i później podesłać do mnie, odeślę mu jako muzę na Atari."

Dyskusja o muzyce przez GTIA tutaj i tutaj. Dla zainteresowanych tematem także strony Mr. Beepa (autora większości muzyczek w demie) i Yerzmyey-owa o dźwięku na ZX Spectrum: linka 1, linka 2, linka 3 oraz oryginał jego tekstu:



"YERZMYEY's BLAH........

4-bit sound is not necessary. ;) These songs come from ZX Spectrum computer. It has 2 soundchips: AY and... Z80 - the Spectrum's CPU. AY has 3 channels of sound and square-wave-based synthesis, whereas music generated by Spectrum's native sound-source - Z80 chip - is expandable to even 8 channels (software mixing) and it is able to generate really interesting envelopes (as described below).

Z80 chip produces all sounds and sends them into BEEPER and AUDIO-OUT connector of ZX SPECTRUM (jack) through ULA chip (which is a 1-bit transducer). Normally Z80 has only one channel of square-wave 1-bit sound. But Z80 is also ZX SPECTRUM's Central Processing Unit (CPU) so due to its 3,5Mhz activity Spectrum 48Kb has finally:
Michal Wronka 2008-11-25 21:09:27

No jak boga kocham świryyyyyyyyyy ;)

miker 2008-11-25 21:52:49

No niezłe, chociaż mam wrażenie, że włączony ekran nieco pokaleczył dźwięki (niewiele, ale jednak). Niemniej - fajny eksperyment! :)

miker 2008-11-25 21:57:11

Po namyśle jednak uważam, że jakaś wersja 2.0 (alboco) by się przydała - np. z wybieraczką co ma grać i możliwością wyłączenia ekranu na czas odtwarzania muzy. Marudzę, wiem! ;)

sikor 2008-11-25 21:58:36

No gratulacje Panowie... Proste pytanko: kiedy upgrade zXEmulatora o dźwięk...? ;)

glowas11 2008-11-25 22:12:42

Przyłączam się do pytania sikora ??? Co do pomysłu super muzyczki też świetne .

mono 2008-11-25 22:39:59

Doskonałe! Panowie - wspaniała robota :) Atari ma w zanadrzu jeszcze kilka niespodzianek odnośnie dźwięku, ale nic nie powiem :D Czekajcie na efekty. Tym razem atak przyjdzie z niespodziewanej strony.

larek 2008-11-25 22:44:43

:) właśnie odsłuchałem i muszę przyznać, że... wzrokiem zacząłem szukać spectruma na biurku. Gratuluję! Atari nadal zaskakuje :)

zilq 2008-11-25 23:02:25

Wyborne brzmienie. Tak swoją drogą, trochę mi się to kojarzy z melodyjkami z PC Speakera, tylko... lepsze :D

Tezz 2008-11-25 23:16:25

This is an exciting development :) I'm very interested to see xxl's progress with this. What a guy ;)

Tezz 2008-11-25 23:31:32

... and Yerzmyey too :) respect

pin 2008-11-25 23:32:18

Mono - to dawaj z tym na priva, zimnioku :)

CharlieChaplin 2008-11-25 23:56:23

Yeah, this is really exciting. Hopefully we see (or better hear!) some more demos soon and maybe we get a converter to convert some of these sounds ourselves...

Besides, seeing this new kind of "emulation" project on the A8, I wonder what happened to all the other A8 emu projects, like:
- Apple emulator
- SID emulator, err, SID player
- ZX emulator
- AY emulator or AY player
Are they still under development or have they been stopped & cancelled ?!? greetings, Andreas Koch.

mono 2008-11-26 00:18:13

@pin: hehe - wiesz świetnie o Co i Kogo chodzi więc się nie denerwuj :) Chodziło mi tylko o podgrzanie atmosfery i stymulowanie PRAGNIENIA! A potem nieoczekiwanie pojawi się Sprajt...

mono 2008-11-26 00:32:28

Zastanawiam się nad tym, czy ten GTIA będzie brzmiał powtarzalnie? Ciekawe czy różne modele/serie/warianty płyt będą miały zauważalny wpływ na brzmienie tego naszego "beepera"?

Kaz 2008-11-26 00:35:55

Andreas - all kinds of development are time-consuming, so just be patient :)

Apple emulator - in progress
SID emulator, err, SID player - don't know
ZX emulator - generally in progress, but stopped from time to time by new games and demos (it is good for us, don't you think?) :)
AY emulator or AY player - in progress

Kaz 2008-11-26 00:36:59

Mono - jest wzorzec w postaci MP3 od Pina - kazdy moze sobie porownac ze swoim kompem i zglosic roznice.

pin 2008-11-26 00:42:32

sprawdzałem dodatkowo, czy nie ma różnic pomiędzy Atari, a utworzonym później plikiem MP3. ... i nie ma, więc można korzystać z mp3 jako pewnego rodzaju wzorca ;)

xxl 2008-11-26 08:31:00

atari800 (bez xl) mialo glosniczek podlaczony do gtia chyba. moze ktos ma taki model? ciekawe jak to brzmi. tak sie zastanawiam czy faktycznie nie dorobic do tego klawiszy umozliwiajacych regulacje glosnosci dla kazdego kanalu beepera osobno :-) niestety pisanie nie idzie tak szybko bo brak 'kabelka' laczacego real atari wymusza na mnie molestowanie pin-a o mp3. mono, co Wy tam kombinujecie? :-)

irwin 2008-11-26 08:52:21

po pierwsze - czapki z głów! ;-) No tego że GTIA będzie potrafić odgrywać muzykę to przez 99.99% czasu mojego życia się nie spodziewałem. Dlaczego 99.99%? bo tydzień temu zauważyłem demo na C64 gdzie muzykę odgrywa VIC: http://www.pouet.net/prod.php?which=51993
Pomyślałem a co gdyby tak podobnie na Atari? tydzień poźniej czytam powyższe. Przypadek? ;-)
Tak więc: Xxl/Yerzmyey/Kaz wspaniała robota! Xxl jak zwykle dokonuje cudów,niewidów ;-) a i strona wizualna ma swój odpowiedni klimat.

po drugie - @mono - nie wiem co planujesz ale jeśli to jest to co podejrzewam to myślę że cała brać atarowskich grafików nie może się doczekać. ;-)

nosty 2008-11-26 09:24:44

@mono - jak juz podgrzales to zdradz prosze cokolwiek, szczegolnie zastanawiajace jest ze dotyczy to muzyki a nazywa sie "Sprajt" ;)

golem14 2008-11-26 09:53:31

Atari800Win PLus dawno nie był ruszany prawda. A jak na innych emulatorach?
...
Ups! Własnie widzę, że ostatnie wydanie Atari800 też jest starawe, bo z kwietnia 2006 :-(
BTW. Są jeszcze jakieś żywe projekty emulatorów?

mono 2008-11-26 10:15:42

@nosty: "Ale Panie... co ja mogę...?" :D To nie mój pomysł więc niestety nic więcej nie mogę pisnąć, ale cierpliwości, cierpliwości.
@golem14: Na deweloperskiej liście atari800 od czasu do czasu gorzeje dyskusja i nawet wprowadzane są różne poprawki, ale releasu dawno już nie było :(
@irwin: Właśnie nie o grafikę chodzi, choć w grafice prace idą do przodu. A zresztą mamy chipy graficzne, które generują dźwięk, więc co za różnica :p

pavros 2008-11-26 10:37:52

@mono: Czy chodzi moze o odgrywanie sampli przy uzyciu DMA sprite'ow i DLI?

Kaz 2008-11-26 10:38:24

Juz wiem. Skoro chipy graficzne graja to Mono pokaze, ze chip muzyczny rysuje grafike... ;) A "Sprajt" sie nazywa dlatego, ze przed uruchomieniem programu trzeba polac plynem chlodzacym odpowiedni uklad scalony...

pavros 2008-11-26 10:41:38

Wycofuje pytanie, bo sprawdzilem, ze tak sie nie da. Cos takiego chodzilo mi poglowie.

Zeekat 2008-11-26 11:12:58

To jak GPGPU prawie :)

niklo 2008-11-26 13:20:20

hehe jeszcze trochę a zrobicie z atarynki...
maszynkę ssąco ciupciającą...
z funkcją parzenia kawy...
czytającą bajeczki na dobranoc ;)
a tak na poważnie to...
kawał dobrego materiału
ciekaw jestem czy...
projektanci atarynek...
zdawali sobie sprawę z tego...
co można wycisnąć z ich kompów

pozdrawiam

Cezar 2008-11-26 13:52:01

Panie i Panowie, czapki z głów, oto przyszli laureaci nagrody Nobla !

Muszę się koniecznie zaopatrzyć w real sprzęt, bo a nóż widelec okaże się, że mamy do czynienia z ósmym cudem świata.

Factor6 2008-11-26 16:41:30

Well, Music Studio isn't the best 1bit sound routine for the ZX Spectrum, I'm curious if it is possible to port more complex routines like Tim Follin's, David Whittaker's or others for example. But, good work :) Btw. it sounds quite bad on Atari800MacX (for Mac OS X). I'll test it on the real Atari :)

golem14 2008-11-26 20:42:27

Odpaliłem demo na najnowszym Atari800 i tez nie gra (właściwe gra, pierdząc bez ustanku). Przy okazji wyszło, że w downloadzie ostatnia wersja ma numer 2.0.3 i pochodzi z lipca ubiegłego roku a nie jak mówią newsy na stronie, z kwietnia 2006. Szkoda, że w emulatorach tak mało się dzieje, coraz lepsze teraz procesory, szybsze komputery...

Kaz 2008-11-26 20:49:18

Factor6 - welcome to the Atari board pal! I hope we will listen more your msx on Atari and one day you will compose something especially for us... :)

Factor6 2008-11-27 10:04:39

@Kaz: I'm watching this site quite often. I'm amazed what is possible on XE/XL and there are still new things to do, like this sound routine for example. My written/spoken Polish is bad, although I understand it, so I rather write in English.

Btw. I've tested it on my real Atari and it sounds really well! Tell me, how much CPU time does the routine eat on Atari, is it possible to make a smooth scroller or is it like on ZX that the sound blocks everything else and there is a the typical zx beeper rule "when the music is playing, scroller must stop"? :-)

Heh, maybe I could do some more zaks in Music Studio, knowing people liking it gives me inspiration :)

Kaz 2008-11-27 10:31:50

I think that xxl is the best person to answer your question about CPU time consuming. Acording to my (poor) programming knowledge, in this case CPU is not a critical factor for graphics display, but our video chips.

I heard before that Music Studio isn't the best music editor for Speccy. Fortunatly xxl is working on a new, better music proc, so other ZX editors will be useful. I hope :).

BTW: check your mailbox :).

xxl 2008-11-27 11:12:24

granie 1-bitowe podobnie jak na zxpectrum pochlania prawie 100% czasu procesora. scroll na atari mozna zrobic zwiekszajac wartosc 1 bajtu - na zx trzeba przepisywac spore ilosci danych, na plus trzeba zaliczyc to, ze zx moze w tym czasie wyswietlac obraz - atari powinno miec ekran wylaczony wtedy dzwiek jest duzo lepszy. jesli atari mialo by miec wlaczony ekran to nalezy to porownac do zx spectrum gdy procedura grajaca i dane do niej znajduja sie ponizej $8000 - charczy :(

Kaz 2008-11-27 11:20:52

A tak samo jest, jak procedura gra na POKEY-u, a nie GTIA?

xxl 2008-11-27 11:37:19

tak

Factor6 2008-11-27 12:24:28

Oh I see, interesting. So if there was no scroller in the Beep'em All demo but a blank screen (off), the sound would be even better than now?

xxl 2008-11-27 13:24:39

moze nie duzo lepszy ale jednak troszke lepszy tak. w playerze Tima Folina wylaczony ekran bedzie konieczny.

stjack 2008-11-28 15:07:50

Do diaska! Jesteście prawdziwymi Mistrzami! Z poważaniem.

galu 2008-11-28 17:26:07

Pod emulatorem Altirra
http://www.virtualdub.org/blog/pivot/entry.php?id=230
i podrzuceniu mu oryginalnych ROMów gra bardzo dobrze.
Ogólnie jest to emulator, który dużo lepiej od Atari800 radzi sobie z wieloma rzeczami, m.in. emulacją kaseciaka.
Swoją drogą - wydanie emulatora Altirra jakoś specjalnie nie zostało zauważone, nawet zabrakło niusa na AtariOnline :)

Kaz 2008-11-28 18:16:58

Chetnie zamieszcze wszelkie newsy ze swiata Atari. Sam, niestety, nie jestem informowac o wszystkim, tym bardziej, ze oprocz prowadzenia strony, jestem uwiklany w mase innych projektow atarowskich. Ale wszelka pomoc chetnie przyjme...