Problem kompatybilności ze starszym oprogramowaniem jest coraz rzadziej podnoszony. O ile kiedyś to był problem – z czasem jego dolegliwość spadła. Mimo powolnego rozwoju, mimo wszystko, jakieś nowsze oprogramowanie powstaje. A przecież jeśli ktoś decyduje się na rozwiązanie NG – oczekuje nowszego oprogramowania.
Jest też możliwość emulacji, która jest coraz lepsza (wydajniejsze konfiguracje, aktualizacje emulatorów).
Niemniej sam osobiście miałem niedosyt, jeśli chodzi o znajomość zagadnienia kompatybilności. Albo natrafiałem na obiegowe uogólnienia typu „pod OS 4 jest UAE” albo było „ślizganie się po temacie”. Jest trochę wnikliwych publikacji, np. cykl artykułów „Klasyczne gry na Amidze One X1000” na blogu Rafała Chyły, czy też niedawny artykuł Krzysztofa Radzikowskiego (w „Amigazynie” nr 14) o RunInUAE. Brakuje mi takiego całościowego ujęcia tematu w inny sposób.

Przedstawię emulację zaszytą w systemie, pokażę jak używać promotorów ekranu, będzie o emulacji wybranych chipsetów, wspomnę też o emulacji z użyciem UAE. Wszystko to oparte na praktycznych przykładach użycia.

Wprowadzenie

Jednym z założeń powstania AmigaOS 4 było uniezależnienie się od chipsetów. Coś, co kiedyś było dumą Amigi u jej początków, z czasem stało się balastem. Stało się oczywiste, że nie da się w nieskończoność bazować na przestarzałych układach, a zaprojektowanie i wdrożenie nowych było nierealne. Tendencje światowe były jasne – zresztą nawet teraz patrząc wstecz na bieg historii, widzimy, że unikalne rozwiązania (np. takich firm jak Silicon Graphics) nie przetrwały.
Nie da się ukryć, że mimo przestarzałości chipsetów dorobek Amigi (baza oprogramowania) jest olbrzymia. Nie można było tak po prostu zignorować to i zrobić komputer z systemem całkowicie niekompatybilny wstecz. To byłaby pełna egzotyka, produkt dla nikogo, bo raczej nie zanosiło się na to, żeby „wielcy” wspierali Amigę tak jak dawniej.

Emulacja zaszyta w systemie

Niestety nic ciekawego OS 4 u swego zarania nie miał do zaoferowania w materii kompatybilności. Jest w systemie „BlackBox”, który jest emulatorem prostym i dokładnym. Ale prawdziwym przełomem było wprowadzenie do systemu emulacji o nazwie Petunia.

Autorem jej jest Álmos Rajnai, który przy pomocy wielu osób stworzył emulator procesora Motorola 68040 bez MMU (w systemie przedstawia się jako 68020 z koprocesorem matematycznym 68881). Jest to emulator JIT (just-in-time), inne określenie to „dynamiczna rekompilacja”, czy działanie „w locie”. Jest to inna zasada niż w BlackBoxie, który oparty jest na rekompilacji interpretacyjnej. O całym projekcie można poczytać tutaj:

http://amigos.amiga.hu/rachy/petunia.html

Tam wyjaśnione są dokładnie te różnice oraz podane wiele szczegółów technicznych.

Petunia jest oficjalnie częścią systemu od 2006 roku. Jak z niej korzystać?
Petunia to plik petunia.library.kmod znajdujący się w katalogu Kickstart, a więc ładuje się wraz ze startem systemu. Domyślnie działa zawsze, z wyjątkiem aplikacji dołączonych do „czarnej listy”. Lista to plik tekstowy, ale dla wygody zrobiony jest panel, gdzie łatwiej można dodawać i usuwać pozycje. Już przy pierwszym zajrzeniu tam zauważymy, że pola nie są puste; wstępnie jest to skonfigurowane, są tam wpisane określone programy (choć nie ma ich wiele). Narzędzie nazywa się Compatibility i jest w Prefs.

Pierwsza zakładka Emulacja JIT określa, które programy mają nie korzystać z emulacji. Zakładka DOS pokazuje sposób obsługi niekompatybilnych programów.

Niestety Petunia nie załatwia wszystkiego. Jeżeli program jest napisany w taki sposób, że nie odwołuje się do układów specjalizowanych – jest dobrze. Na przykład programy graficzne zazwyczaj nie potrzebują dźwięku, a do obsługi wyświetlania używają karty graficznej – w ten sposób bez żadnych zabiegów pod AmigaOS 4 bezproblemowo działa TV Paint.

Niestety nie działa to zawsze – zdarza się sytuacja, że jakiś program otwiera się w rozdzielczości, która niekoniecznie nam pasuje. Takim programem jest DrawStudio, który domyślnie chce otworzyć się w rozdzielczości PAL: 640:400 High Res Laced. W takiej sytuacji trzeba program „wypromować”, czyli zmusić do otwarcia się w większej rozdzielczości.

Promotory ekranu

Ja ze swej strony polecam New Mode. Pobrane archiwum po rozpakowaniu wygląda jak na obrazku (Zrzut 3).

Potrzebujemy z niego tylko plik NewMode, który najlepiej żeby ładował się przy starcie systemu.
Najwygodniej zrobić to w ten sposób, że przeciągamy plik na otwarte okno WBStartup (narzędzie jest w Prefs). NewMode automatycznie ląduje na koniec listy (Zrzut 4).

Jeszcze klik w Zapisz i miękki reset.
Po resecie będzie komunikat jak niżej

To normalne po pierwszym uruchomieniu.
Teraz uruchommy kłopotliwy program.
Po uruchomieniu DrawStudio wyskoczy zgłoszenie programu NewMode

Z listy wybieramy natywną rozdzielczość monitora. Zaznaczamy też pole Colors i przeciągamy suwak dla zwiększenia liczby kolorów. Zapisujemy poprzez Save i gotowe.
Gdybyśmy chcieli zmienić parametry, NewMode można zawsze wywołać kombinacją klawiszy Alt + n

Gwoli uczciwości trzeba wspomnieć, że jest rozwiązanie systemowe o nazwie Screens

Narzędzie znajduje się w Prefs.
Moim zdaniem, NewMode – mimo że napisany w 1995 r. – jest rozwiązaniem lepszym, ale są sytuacje kiedy można użyć Screens. Ja tak zrobiłem przy okazji ArtEffect 4. To program graficzny, który może pracować w trybie własnego ekranu (na „ściągalnym ekranie”) oraz na ekranie Workbencha (czyli menu będzie porozkładane na blacie w postaci „pływających pasków”).
Uruchamiamy ArtEffect, a po nim preferencje Screens. Powinna tam uaktywnić się pozycja „Wstaw otwarty ekran” – wybieramy z listy „ArtEffect”. W zakładkach „GUI” i „Paleta” można przestawić „Ustawienia” na „jak Workbench”. To nam da w trybie „ściągalnego ekranu” pobranie ustawień z Workbencha – zarówno paleta barw w Workbenchu pozostanie nie rozwalona, jak i będziemy mieć nowoczesny wygląd programu. Z kolei w trybie pracy w Workbenchu konieczne jest (dla uniknięcia np. zostawiania smug po wskaźniku myszy) żeby wejść w Prefs w GUI, i w opcjach GUI dla systemu wyłączyć wsparcie kompozycji obrazu.
Promowanie ekranu jest dobre, ale ma pewien mankament – ustawia parametry dla programu, który udało się uruchomić. Można wtedy wywołać promotor kombinacją klawiszy i dodać kłopotliwy program do listy (wykrywane są uruchomione aplikacje). Natomiast jeśli wogóle nasz staroć nie wystartuje – to jest kłopot, bo nie ma czego wypromować.

Obsługa programów pisanych pod CGX i nietypowych trybów graficznych

Przy okazji starych programów pisanych już pod karty graficzne, trzeba wspomnieć o tym skąd mogą brać się niedogodności. Dawniej były dwa konkurujące standardy – CGX (CyberGraphX) i Picasso. Ten pierwszy poszedł do MorphOS-a, drugi do nas (w uproszczeniu). Picasso 96 w AmigaOS 4 ma emulację CGX, ale może się zdarzyć, że nie wszystko zadziała idealnie, ale są to problemy do rozwiązania (opisany przykład ArtEffect 4).
Samo Picasso ze swoim archaicznym panelem przydaje się rzadko, do uzyskania nietypowych rozdzielczości (pod warunkiem, że monitor je obsłuży).

Trzeba wpierw włączyć je w tooltype monitora. Być może kiedyś zniknie z systemu, jeśli zostanie rozbudowane Screenmode.

Emulacja poszczególnych chipsetów

Były też inne programy, a w zasadzie „pchełki”, każda do innego zadania.

Nalle Puh wyłapywał odwołania do Pauli (układ dźwiękowy obecny we wszystkich modelach Amigi i żadnej AmigaOne). Niestety, raz że nie zawsze (tylko na poziomie systemu operacyjnego, a nie rejestrów sprzętowych); dwa – ten program pod nowym AmigaOS od dawna (trzecia aktualizacja wersji Pre-release AmigaOS 4.0) nie działa.

Był Blitzen – emulator blittera. Blitter to określenie pochodzące od skrótu blit (block image transferrer), jego zadaniem było szybkie kopiowanie pamięci wideo, dzięki czemu odciążał procesor.

CIAgent z kolei jest emulatorem CIA (complex interface adapters). Wszystkie komputery Amiga (z wyjątkiem CD32, gdzie te funkcje są wykonywane przez układ Akiko) używają dwóch 8520 CIA, obsługujących port równoległy, klawiaturę, stację dyskietek, przycisk joysticka/myszy.

Współcześnie da się używać tylko CIAgenta (do pobrania na OS4 Depot). Był mi pomocny do poprawnego działania gry „Nemac IV Director’s Cut”. Grę wziąłem z serwisu „Amiga Future”, gdzie jest masa legalnego oprogramowania (trzeba być zarejestrowanym użytkownikiem i zalogować się, aby móc pobrać).
Programu nie instalujemy ani nie wrzucamy do C, najlepiej zrobić sobie oddzielny katalog na takie drobiazgi. Najpierw uruchamiamy CIAgenta i po nim kłopotliwą grę.
We wspomnianej grze nie korzystamy z promotora – jeżeli Nemac jest na liście w New Mode to trzeba zaznaczyć opcję „do not promote”. To nie wszystko w kwestii ustawień grafiki. Gra ma wstępny konfigurator, ale przy wyborze trybu graficznego nie możemy wybrać zwyczajowego najlepszego dla swojego monitora (np. Board 0:1920×1080 ARGB32). Trzeba wybrać najlepszy z listy dla swojej karty graficznej

To jeszcze nie gwarantuje sukcesu.
Po uruchomieniu nie mogłem przeskoczyć intra i ogólnie klawisze nie działały. Dlatego właśnie niezbędny jest CIAgent. Po uruchomieniu go (przed grą) robi co trzeba. Po zamknięciu gry można zobaczyć w konsoli jego działalność

Zanim doszedłem jak ustawić żeby pograć miałem różne komunikaty: „Can’t open screen”, „Can’t allocate buffer C2”, „Can’t enough Chipmem”.

Przy wyłączonym promowaniu, ustawieniach jak na zrzucie i uruchomionym wcześniej CIAgencie Nemac działa u mnie stabilnie. Jedyne czego mi brakuje to muzyki w intrze.
Wspomnę jeszcze, że po uruchomieniu miałem trochę mniejszą rozdzielczość niż wybrałem – ekran gry nie wypełniał całego ekranu monitora

To można swobodnie rozciągać w poziomie i pionie.
Gdyby wyskoczył Grim Reaper (miałem raz taką sytuację), to po ubiciu go gra już była bez dźwięku.

Sytuacja ta zdarzyła się przy otwarciu drzwi do sali, gdzie było dużo przeciwników. Gdy powróciłem do ustawień grafiki, które były po pierwszym uruchomieniu domyślnie, problem więcej się nie powtórzył.

Instalacja programów z dyskietek.

Współczesne modele AmigaOne nie mają nawet kontrolera dyskietek, ale nie jest problemem nośnik a postać, w jakiej stare programy są często dostępne. Mianowicie są to obrazy dyskietek w formacie DMS.
Domyślna akcja po dwukliku w takie archiwum kończy się najczęściej pełnoekranowym obrazem rączki z dyskietką z Workbenchem 1.3. Dzieje się tak dlatego, że obrazy dyskietek domyślnie otwiera emulator RunInUAE. To samo stanie się po kliknięciu w obraz dyskietki ADF (bardziej popularny od DMS, z tym że w olbrzymiej większości ADF-y to są gry). Właściwym postępowaniem w tym przypadku (chęć instalacji starego programu) jest użycie programu DiskImageGUI. Znajduje się on w katalogu System. Użycie sprowadza się do zamontowania archiwum *.dms jako wirtualnego napędu. Pojawi się ikonka dyskietki na pulpicie, zawartość można normalnie przeglądać. Dyskietkę montujemy pierwszym przyciskiem, wyciągamy poprzez klik w drugi przycisk

UAE

Zasadniczo jestem przeciwnikiem tego rozwiązania. Nie po to zdecydowałem się na Amigę nowej generacji żeby używać emulatora. Mogę pokazać jak zmusić do współpracy stare programy (i o tym jest ten artykuł), ale nie żeby mnie interesowało emulowanie całego komputera. UAE to ja mam na pececie. Dlatego nie przedstawię tutaj konfiguracji, tylko ogólnie napiszę, o co tu chodzi.
UAE zawędrowało na Amigę w czasach betatesterskich AmigaOS 4, kiedy jeszcze równolegle korzystało się z Linuksa (bo przecież AmigaOS 4 dopiero powstawał). Potem zostało przeniesione na AmigaOS 4. Właściwym byłoby operowanie określeniem E-UAE, i to nie jest tak, że to jest jedno rozwiązanie. Jest kilka opcji, zasadniczy wybór sprowadza się do tego, czy chcemy zaemulować cały system czy uruchamiać programy transparentnie.

Najpopularniejsze rozwiązanie to RunInUAE. Jest to rzecz o której muszę wspomnieć, ponieważ jest oprogramowaniem dodatkowym dostarczonym z systemem jako element Extras. Po instalacji zyskamy katalog Emulation, a w nim oprócz emulatora, także Workbench 3.1 oraz ROM-y A1200, CD32 i A500. Dostajemy też możliwość korzystania z gier Cinemaware (do doinstalowania z Extras z płyty z systemem, bądź pobrania ze strony Hyperionu). Są one wstępnie skonfigurowane do pracy z emulatorem, wystarczy zrobić dwuklik na ikonkę. Jest współpraca z WHDLoad, i sensownie to wygląda.
RunInUAE i E-UAE to temat obszerny, na oddzielne opracowanie, i dotyczący głównie gier – a ja chciałem skupić się na programach (Nemac był wyjątkiem dla pokazania użycia CIAgenta).

Celem moim było opisanie jak rozwiązano uruchomianie starych programów od strony systemu i jak pokonywać ewentualne trudności nie uciekając się do UAE.

’truman burbank’ – Amiga NG (3) 2/2018

—> do spisu artykułów

Dodaj komentarz