Niedawno kupiłem dość starą, ale popularną konsolę - Atari 2600 (Rocznik 1982). Sprzedawana jako `niesprawdzona (niesprawna)`, bez dołączonych jakichkolwiek akcesoriów (zasilacz, przewody podłączeniowe, kartrydże, dżojstiki).
Trochę technikaliów
Nośniki z grami do konsoli są w postaci kartrydży (jak w popularnym PEGASUSIE), można tez podłączyć dwa joysticki. Podobieństwo do Pegasusa wcale na tym się nie kończy! W konsoli siedzi uboga wersja procesora 6502 - z uwagi na oszczędności, zmniejszono jego ilość wyprowadzeń i tym samym jego przestrzeń adresowa z 64 kB zmniejszyła sie do 8 kB. Mapa pamięci procesora jest tak zorganizowana, że tylko połowa z tego (4 kB) przypada na pamięć rom kodu gry z kartrydża. I większość gier na tą konsole zajmuje właśnie tylko 4 kB!
Układ graficzny to TIA (Television Interface Adapter). Nie posiada on żadnego bufora ekranu (framebuffera), więc procesor w odpowiednich chwilach sam steruje układem TIA aby ten wygenerował piksel o danym kolorze gdy akurat wiązka elektronów w telewizorze świeci na dany punkt kineskopu. Może właśnie dlatego konsola jest tak piękna, bo programiści musieli nieźle się nagłówkować, aby napisać jakąkolwiek grę.
Mój wkład
Zasilanie
Gniazdo zasilania wygląda jak wtyk mini jack w standardowych słuchawkach. Konieczne było stworzenie odpowiedniej przejściówki mini jack - dc, gdyż dysponowałem zasilami tylko o takich wtykach. W konsoli obecny jest stabilizator 7805 oraz spory kondensator filtrujący (2200 uF), zatem na wejściu wystarczy podać np. 9 V DC.
Nośniki z grami
Nośnikami sa popularne kartrydże. Niżej rozpiska pinów w gnieździe konsoli:
Ponieważ nie posiadam żadnych gier, aby przetestować konsolę, zaprojektowałem mini-adapter do gniazda kartrydży, pozwalający podłączyć dowolną pamięć EEPROM/Flash z zaprogramowaną grą.
Wykorzystana pamięć flash (512 kB) to 29f040. Do programowania użyłem zaprojektowanego i wykonanego własnoręcznie programatora opartego o atmegę 8, łączącego się z PCtem po rs232. Oprogramowanie na PC napisane zostało też własnoręcznie.
Wyjścia wideo/audio
Jedynym wyjściem z konsoli jest zmodulowany sygnał audio+video, podłączany do wejścia antenowego w telewizorze. Niestety pomimo wielu starań, nie udało mi się zestroić konsoli z telewizorem aby uzyskać obraz przyzwoitej jakości (wynika to albo z niezgodności standardu modulacji, albo ze słabej jakości kabla antenowego albo z uszkodzonych elementów modulatora w konsoli - np. wyschnięte kondensatory ze starości).
Postanowiłem porwać się na projekt marzeń - stworzyć płytkę która wyciągnie wprost z układu graficznego konsoli sygnał S-VIDEO, czyli najlepszy możliwy do uzyskania.
Poniżej projekt w eaglu:
W skrócie - układ graficzny konsoli generuje cyfrowy sygnał luminancji (jasności), który za pomocą drabinki rezystorowej jest mieszany i konwertowany do postaci analogowej, a następnie wzmocniony i dostosowany do odpowiedniego poziomu napięć za pomocą tranzystora.
Podobne wzmocnienie ma miejsce z sygnałem chrominancji (koloru).
Z sygnału audio za pomocą kondensatora zostaje odfiltrowana składowa stała.
Płytka po wytrawieniu:
i po przylutowaniu elementów:
Najtrudniejsze okazało się zdobycie gniazda S-Video (mini din 4), które wylutowałem z uszkodzonej karty graficznej.
Kontrolery
Nie mam żadnych joysticków, jednak gniazda są identyczne jak w Commodore 64.
Ponieważ wcześniej stworzyłem konwerter padów z pegasusa na commodore 64 (www.elektroda.pl/rtvforum/viewtopic.php?t=2340054), więc tutaj właściwie od razu miałem czym sterować.
Podsumowanie
Konsola znów może cieszyć. Uzyskana jakość obrazu jest najlepsza jaką dało się z konsoli wyciągnąć:
W przyszłości planuję wykonanie programowalnego kartrydża, w którym raz wgrywa się gry a później można je wybierać albo zworkami, albo (wersja trudniejsza) na ekranie telewizora z menu.
Poniżej film z działania - najpierw uruchomienie gry Pitfall! (jednej z najpopularniejszych na Atari 2600), a później przeprogramowanie kości i odpalenie PacMana.
Fajne? Ranking DIY