Wstęp
Screen z gry “Mr Robot and his Robot Factory”
Retro-gaming jest ostatnio w modzie i jak grzyby po deszczu na rynku pojawiają się rozmaite urządzenia udające stare konsole typu NES (Pegasus), SNES, PlayStation itp. Często są to po prostu współczesne komputerki przebrane w obudowę wyglądającą jak rodem z lat 90′ (Retron, PlayStation Classic). W bebechach zawierają zwykłe emulatory. Rzadziej jest to reimplementacja klasycznego sprzętu w technologii programowalnych bramek logicznych FPGA (Mist, Mini NT). W moim pomyśle chciałem uniknąć emulacji i użyć prawdziwego sprzętu i prawdziwych układów scalonych. Po pierwsze dlatego, że emulacja to oklepany temat – istnieją gotowe systemy operacyjne na Raspberry PI. Wymagają jedynie instalacji na karcie micro SD i dostarczają dziesiątki emulatorów najróżniejszych konsol, komputerów i automatów do gier. Po drugie, chciałem, aby zgodność z oryginałem tego, co powstanie, była jak największa. A po trzecie – przede wszystkim chciałem jednak trochę polutować.
Wybór
Z dzieciństwa najbardziej utkwiły mi w pamięci dwa komputery. Pierwszy to 8-bitowy Atari 800 XL. Gdy miałem te 4 czy 5 lat wraz z Bratem namówiliśmy Rodziców, aby nam go kupili. Na szczęście jeden z Wujków posiadał “Atarynkę” już wcześniej, dlatego wiadomo było, czego się po tym sprzęcie spodziewać. Wujek był też pierwszym źródłem oprogramowania (gier), które wówczas przechowywało się na kasetach, a kopiowało na zwykłym magnetofonie. To na Atari pisałem, a w zasadzie przepisywałem z instrukcji obsługi czy z “Bajtka” pierwsze w życiu programy. Niewiele z nich wtedy zrozumiałem, ale cały proces był bardzo fascynujący. Wielką satysfakcję dawało to, że po wprowadzeniu kilkunastu magicznych linii na ekranie pojawiała się – na przykład – “tęczowa autostrada”. Natomiast po ujrzeniu takich gier jak Boulder Dash, Road Race, Moon Patrol czy River Raid wiedziałem już, że chcę zostać programistą (dobra, trochę przesadzam, ale tylko ciut 😉 )
“Tęczowa autostrada”
Drugi komputer to Amiga 600. Tę już 16-bitową maszynę zupełnie niespodziewanie sprezentował nam inny Wujek. Rodziców akurat nie było w domu i od razu można było zająć się rozpakowywaniem, podłączaniem i – co najważniejsze – graniem. A gierki na Amigę były świetne – Lotus, Flashback, Superfrog… i dziesiątki innych. No i nie trzeba było wgrywać ich z kaset, co było procesem zawodnym i długotrwałym, a z dyskietek. To w produkcjach na Amigę po raz pierwszy pojawiły się wstawki rodem ze świata filmu. Powstawały też gry strategiczne i przygodowe o rozbudowanej fabule, a nie tylko proste zręcznościówki czy łamigłówki.
Pewnego razu dowiedziałem się, że Amiga potrafi mówić ludzkim głosem. Pora była późna, telewizor zajęty, nie było możliwości, aby zaraz to uruchomić i zweryfikować. Wówczas wydawało się to tak kosmiczną technologią, że całą noc nie mogłem spać, myśląc o tym, jak zaawansowany program za tym stoi. Od tamtej pory nic w świecie informatyki, nawet systemy typu “OK Google”, nie wywarły na mnie tak mocnego wrażenia.
Po przesiadce na PC właściwie zaprzestałem grania. Sam nie wiem dlaczego. Dopiero niedawno Żona namówiła mnie na zakup PlayStation 4, wybudzając mnie z gamingowego letargu. Wcześniej miałem styczność z wieloma klasycznymi komputerami i konsolami, jednak dwa opisane wyżej wspominam najmilej. Postanowiłem, że zbuduję jeden z nich. Założenia projektu postawiłem sobie takie, aby wynikowy komputer był możliwie mały i pasujący do standardowych, współcześnie produkowanych obudów, na przykład w formacie mini ITX. Do tego chciałem odciąć się od monolitycznej konstrukcji Amigi czy Atari – oryginalnie oba komputery miały formę jednostki centralnej ze zintegrowaną klawiaturą. Wolałbym podłączyć współczesną klawiaturę zewnętrzną, od zwykłego peceta, najlepiej bezprzewodową, aby uniknąć plątaniny kabli. Albo w ogóle zrezygnować z klawiatury – jednak to gry były celem nadrzędnym projektu, a do ich obsługi klawiatura jest (niemal) zbędna i powinien wystarczyć joystick.
Na zakończenie tego rozdziału chciałbym pozdrowić wszystkich w nim wymienionych, bez których mój świat jako gracza komputerowego byłby uboższy.
Istniejące rozwiązania
Budowa
Miałem płytkę i co dalej? Wszelką tak zwaną “drobnicę”, czyli oporniki, kondensatory, dławiki, gniazda czy nawet pamięci RAM, można kupić w zasadzie od ręki w dobrym sklepie elektronicznym. Jednak rdzeniem konstrukcji są układy specjalizowane Atari. Są to: procesor, scalaki obsługujące dźwięk, obraz oraz urządzenia peryferyjne – o nazwach PIA, POKEY, GTIA, ANTIC i FREDDIE. Żaden z nich nie jest już od lat produkowany. Istnieje tylko jeden skuteczny sposób ich zdobycia – wylutowanie z oryginalnego komputera. Owszem, czasami na eBayu czy innym portalu aukcyjnym pojawia się oferta sprzedaży nieużywanych zapasów magazynowych, jednak zdarza się to bardzo rzadko, a koszt jednego, najrzadszego scalaka (POKEYa), bywa większy niż całego Atari.
Płyta główna oryginalnego Atari
Działające Atari ma dla mnie rangę zabytku i wyprucie układów z kompletnego egzemplarza byłoby profanacją. Dlatego zacząłem polować na Allegro na egzemplarz zniszczony, niedziałający, nawet bez obudowy czy klawiatury. Im w gorszym stanie, tym lepiej. Zależało mi tylko na specjalizowanych układach scalonych. Udało mi się dość szybko wylicytować płytę główną od Atari 65 XE, w złym stanie wizualnym, ale z kompletem części, a przynajmniej tych, które były mi potrzebne. W ten sposób nie tylko uniknąłem dewastacji kompletnego egzemplarza, lecz tchnąłem nowe życie w elektroniczny złom.
Części wylutowane z oryginalnego Atari
Nowa płyta główna według projektu x_angela wymagała montażu elementów przewlekanych oraz SMD (powierzchniowych). Tym, którym nic to nie mówi, wyjaśnię tylko, że elementy SMD są malutkie, na oko mają może 1 x 2 mm. Wydawać by się mogło, że ich lutowanie to największe wyzwanie w całym przedsięwzięciu. Nic bardziej mylnego! Dobra pęseta i cienki grot sprawiają, że po nabyciu wprawy jest to równie łatwe, jak montaż elementów przewlekanych.
Elementy SMD
Najgorsze okazało się… wylutowanie niezbędnych scalaków z płyty oryginalnego Atari! Taki scalak ma 40 nóżek, każda z nich trzyma solidnie, najczęściej nawet po odessaniu cyny. Próba podważenia scalaka, kiedy któraś z jego nóżek nie została dobrze wyczyszczona, może skończyć się pęknięciem elementu. A wtedy… cóż, pozostałoby polowanie na Allegro na kolejny egzemplarz płyty. Dwa czy trzy elementy udało mi się oswobodzić przy użyciu zwykłej lutownicy kolbowej i odsysarki, jednak wymagało to wyjątkowego skupienia i precyzji, no i zabierało zdecydowanie zbyt dużo czasu. Postanowiłem przy tej okazji zainwestować w półprofesjonalną rozlutownicę. W oczekiwaniu na dotarcie przesyłki z nią, zacząłem wlutowywać “drobnicę” w nową płytkę. Gdy rozlutownica przyszła, wylutowanie pozostałych scalaków z Atari przebiegło już bezboleśnie i szybko, no i mogłem dokończyć montaż i przejść do testów.
Lutowanie w trakcie
Lutowanie ukończone
Testy
Zwykle bywało tak, że po złożeniu jakiegokolwiek projektu elektronicznego, nie zadziałał on za pierwszym razem. Najczęściej okazywało się, że pomimo sprawdzania wszystkiego po pięć razy, jeden tranzystor był wlutowany odwrotnie, niż powinien. W przypadku Atari na płycie mini ITX, ku memu zdziwieniu, komputer zadziałał już przy pierwszym włączeniu. Co prawda debiut odbył się w warunkach bojowych – płyta główna leżała na biurku bez żadnej obudowy. Zamiast do telewizora, podpięta była do chińskiej karty telewizyjnej no-name nędznej jakości, w dodatku kablem przesyłającym jedynie obraz czarno biały. Ale jednak, zadziałała i na ekranie pojawił się słynny napis “READY”! Widząc, że projekt najpewniej zakończy się sukcesem i większych problemów nie będzie, zamówiłem z Chin obudowę.
Różnice
Projekt płyty w formacie mini ITX jest właściwie wierną kopią oryginalnego Atari. Są jednak pewne różnice. Rezygnacja ze standardowej klawiatury na rzecz klawiatury od peceta sprawia, że konieczny jest odpowiedni adapter. Na płycie przewidziane zostało miejsce na mikrokontroler PIC zaprogramowany jako AKI (Atari Keyboard Interface). Mikrokontroler obsługuje klawiaturę w standardzie PS/2 i tłumaczy wciśnięcia klawiszy na format zrozumiały dla Atari.
Druga różnica to zintegrowany z płytą główną układ SIO2SD, oparty o mikrokontroler Atmega32. Jego rolą jest emulacja stacji dyskietek, przy czym obrazy tych dyskietek zawarte są na karcie micro SD. Użytkownik SIO2SD nie ma potrzeby posiadania zewnętrznej stacji dysków, albo co gorsza zawodnego magnetofonu. Gigabajtowa karta pamięci wystarczy, aby przechować wszystkie gry na 8-bitowe Atari, jakie kiedykolwiek zostały oficjalnie wydane.
Ostatnia nowinka to dźwięk stereo. W Atari za generowanie dźwięku (monofonicznego) odpowiada układ POKEY. Jeśli chce się mieć dźwięk stereofoniczny, należy posiadać drugiego POKEYa. Jako, że jest to towar deficytowy, na razie poprzestałem na jednym i nie przetestowałem układu stereo w praktyce.
Problemy
Dalsze prace
Obudowa dotarła i umieściłem w niej płytę główną. Końcowy efekt, w mojej ocenie, prezentuje się bardzo dobrze i w zasadzie na tym mógłbym zakończyć projekt. Jednak kilka rzeczy zapragnąłem zmienić.
Atari w obudowie
Docelowa klawiatura
Po głębszym zastanowieniu doszedłem do wniosku, że w zasadzie w ogóle nie potrzebuję klawiatury. Moje Atari miało być w założeniach “maszynką do gier”. Oryginalne joysticki do Atari miały tylko jeden przycisk. W różnych grach jest różnie wykorzystywany – czasem do strzelania, innym razem do skakania. Natomiast samą grę rozpoczyna się zwykle przyciskiem “start” z klawiatury. Współczesne pady mają więcej niż jeden przycisk. Pomyślałem, że mój interfejs mógłby “przetłumaczyć” różne przyciski z pada od PlayStation 4 na klawisze specjalne Atari, czyli “start”, “select”, “option”. Dzięki temu byłbym w stanie uruchomić pewnie 90% gier wykorzystując wyłącznie pad. Pozostałe 10% to gry sterowane klawiaturą, np. przygodówki tekstowe.
Zbudowałem prototyp interfejsu i udało się, grałem na Atari padem od PlayStation 4 bez użycia klawiatury! Zrobiłem z tego projekt Open Source – źródła dla Arduino udostępniam tutaj: https://github.com/vandalton/DaltonAJKI. A nuż jakiś inny maniak będzie chciał zbudować sobie taki interfejs.
Prototypowy interfejs pada od PlayStation 4
Postanowiłem, że docelowo obsłużę także klawiaturę USB/Bluetooth, aby przywrócić Atari rangę komputera. W dodatku sposób obsłużenia klawiatury przez POKEYa to ciekawe zagadnienie algorytmiczno-elektroniczne, ale to już temat na inny artykuł…
Podsumowanie
Samodzielna budowa odnowionej wersji klasycznego komputera okazała się ciekawym wyzwaniem. Przy okazji dowiedziałem się wiele o sposobie działania komputerów w ogóle i obsłudze urządzeń peryferyjnych. Efekt końcowy umożliwił sentymentalną podróż do dzieciństwa i pierwszych gier, w jakie grałem. Wygoda użytkowania Atari ze SIO2SD, gdzie ładowanie programów jest szybkie i powodzi się zawsze, sprawia, że komputer będzie mógł być wykorzystywany na imprezach typu Retro Gaming Party.
P.S. W czasach Atari, kiedy w Polsce nie było możliwości kupienia oryginalnego oprogramowania i kwitł handel kopiowanymi kasetami, osoby zajmujące się ich dystrybucją tworzyły własne katalogi i broszury z “opisami” gier. Trzeba przyznać, że mieli fantazję. Poniżej zamieszczam przykład – “opis” gry Mr Robot z katalogu wypożyczalni “Sezam” z Warszawy.