DOSBOX 0.74-3 z emulacją dynamiczną

Pecet, platforma, której w mniejszym bądź większym stopniu używamy dziś wszyscy, a która w pierwszych 10 latach życia Amigi była obiektem ataków i drwin ze strony znacznej części przedstawicieli naszego środowiska. Mimo powszechnej niechęci, w zasadzie od samego początku podejmowano mniej lub bardziej udane próby „oswojenia największego wroga”. Zatem już od połowy lat 80-tych, praktycznie aż do czasów bankructwa Commodore, powstawały różnorakie karty będące sprzętowymi emulatorami IBM PC, które tworzyły z naszych „Przyjaciółek” coś w rodzaju dwusystemowej hybrydy. Znacznie popularniejsze były jednak emulatory programowe. Niestety ograniczona moc procesora Motorola 68k, z trudem pozwalała na obsługę prostego oprogramowania przeznaczonego dla X86 klasy XT. Doskonale pamiętam czasy, gdy obiektem dumy było pochwalenie się obrotem o 360 stopni w grze Wolfenstein 3D w czasie „jedynie” 10 sekund. Kombinowano więc jak przysłowiowy „koń pod górę” np. emulując PC pod SoftWindows, czyli emulatorze dla MacOS, który był uruchomiony na emulatorze Maca pod AmigaOS.

Emulator PC-Task na Amidze klasycznej

Tego typu praktyki, dawały jednak niewielkie korzyści i wszyscy zdawali sobie sprawę, że prawdziwy skok jakościowy może dać tylko nowa linia procesorów używanych w Amidze, jaką była rodzina PPC. Wkrótce po pojawieniu się akceleratorów PPC dla Amigi klasycznej usłyszeliśmy zapowiedzi emulatora PowerMaca Fusion PPC, a także emulatora PCx PPC, który miał udawać pecety. O ile pierwszy z nich, z dosyć miernym skutkiem zdołał zaistnieć (choć uruchamiał się jedynie na Cyberstormach przeznaczonych dla mało popularnych A3000 i A4000), o tyle drugi nigdy nie doczekał się realizacji. Trzeba było kolejnych kilku lat i systemu AmigaOS 4.0, by nastąpił przełom w postaci przeniesienia na PowerAmigę emulatora DOSBox.

W 2011 roku amigowcy otrzymali DOSBoxa w wersji 0.74. Taka też wersja od niemal dekady obowiązuje dla głównej gałęzi programu. Nie znaczy to jednak, że rozwój DOSBoxa, stanął w miejscu, pomimo braku przeskoku w numeracji, cały czas dokonywane są mniejsze bądź większe poprawki. Z perspektywy użytkownika Amigi One najważniejsze były nie tyle zmiany główne, ile zmiany poboczne, a konkretnie jedna z nich. Wielu lansuje dzisiaj tezę że procesor PPC jest platformą całkowicie porzuconą. Z pewnością z takim stwierdzeniem nie zgodziłby się IBM, jednak nie tylko inżynierowie z wielkiej korporacji i nie tylko my Amigowcy, ale i entuzjaści innych platform opartych na tej rodzinie CPU, jak np, starszych Macintoshy czy konsol typu Nintendo Wii wciąż tworzą dla tej architektury nowe oprogramowanie. Jedną z takich osób jest człowiek ukrywający się pod pseudonimem Jmarsh, któremu udało się w 2019r opracować kod umożliwiający działanie DOSBoxa pod PPC w trybie JIT. Fakt ten skrzętnie wykorzystał doskonały amigowy fachowiec, jakim jest Roman Kargin, dzięki czemu niedługo potem dynamiczną emulacją core procesora X86 mogli się cieszyć również użytkownicy Amigi.

Norton Commander – bodaj najpopularniejszy program wśród użytkowników MS-DOS

Niestety cechą dużej części amigowych emulatorów jest mniejsza intuicyjność obsługi w stosunku do odpowiedników dla „wiodących proszków”. Nie inaczej jest w przypadku DOSBoxa, gdzie próżno szukać jakiegoś GUI preferencyjnego, wszelkich ustawień dokonujemy edytując plik tekstowy DosBox.conf (ewentualnie niektóre z nich możemy korygować po uruchomieniu programu, za pomocą skrótów klawiaturowych). Na szczęście znaczenie wszystkich opcji jest dosyć dobrze udokumentowane, dlatego omówię tylko kilka najważniejszych.

Sekcja SDL
W zasadzie wszystkie ustawienia możemy pozostawić bez zmian. Ewentualnie do rozważenia jest aktywowanie opcji fullscreen, aczkolwiek podczas działania DOSBoxa w każdej chwili możemy to zrobić kombinacją Alt+Enter. W przypadku gdy nie zdecydujemy się na skalowanie ekranu (o tej opcji później) warto zmienić wartość fullresolution z domyślnego „original” np. na 640×480 czy jakąś inną. Pozostawienie tej sekcji w trybie domyślnym skutkować będzie tym iż nieskalowany ekran w typowej dla peceta lo-res’owej rozdzielczości 320×240 nie będzie wycentrowany, zajmując lewą górną ćwiartkę ekranu.

Sekcja DOSBox
Zakładam, że niemal u każdego posiadacza Amigi One wielkość pamięci RAM liczona jest dzisiaj w gigabajtach, to też pewnie nie będzie wielką stratą dla pamięci operacyjnej jeśli zwiększymy wartość memsize dla emulowanego peceta z 16MB na 31MB. Można oczywiście ustawić więcej, lecz wielkość od 32MB w górę nie jest zalecana przez autorów DOSBoxa.

Sekcja Render
Tutaj proponuję zostawić wszystko w trybie domyślnym, no chyba, że dysponujemy naprawdę słabą Amigą i chcemy to jakoś przykryć aktywując frameskip. W dawnych czasach nie było zalecane skalowanie ekranu, jednak w dobie RadeonówHD, nie ma to żadnego wpływu na wydajność (Quake uruchomiony w 320×240 kontra ten sam Quake sztucznie skalowany w górę przez DOSBoxa metodą normal2x, daje niemal ten sam wynik w timedemo). .

CPU
Tutaj znajdziemy największy plus obecnej kompilacji, czyli core, który domyślnie ustawiony jest w tryb dynamic (zazwyczaj ten sam efekt da też tryb auto) i nie należy tego zmieniać, jeśli chcemy cieszyć się naprawdę szybką emulacją. Oczywiście regułą w emulacji JIT jest nieco mniejsza kompatybilność, dlatego dla problematycznych aplikacji czy gier pozostaje wolniejszy, acz dokładniejszy tryb normal.

3DBENCH

Liczba cykli ustawiona jest domyślnie w tryb max. To pozwala na uzyskanie możliwie największej wydajności z naszej konfiguracji bez niepotrzebnego przeholowania, co mogłoby objawiać się rwaniem dźwięku czy innymi niezbyt przyjemnymi skutkami ubocznymi. Obserwując jednak systemowe wskazanie zajętości procesora mojej X1000, zauważyłem, że tryb max zostawia pewną rezerwę i zajętość skacze w przedziale od 97% obniżając się niekiedy nawet do 79%. To może oznaczać, że w sposób ręczny można by jeszcze bezpiecznie podkręcić nieco liczbę cykli, co dałoby dodatkowe kilka czy kilkanaście procent mocy. Jeśli więc ktoś ma czas i chęć na eksperymenty, może próbować ustawiać tu zdefiniowaną liczbę cykli odpowiednią do wydajności swojego procesora. Ostrzegam jednak, że takie eksperymenty mogą przynieść skutek odwrotny od zamierzonego dodanie zbyt dużej liczby cykli z pewnością będzie skutkować wspomnianym wcześniej niepoprawnym odtwarzaniem dźwięku a często w przeciwieństwie do intencji podkręcającego wręcz wolniejszym działaniem danego programu.

Jeżeli w czasie emulacji peceta, będziemy korzystać z dobrodziejstw amigowego multitaskingu i chcieli wykonywać jakieś inne czynności, najrozsądniejszą opcją może być cycles=auto. W praktyce w przypadku bardziej wymagających gier nie zauważymy różnicy w porównaniu do trybu max, gdyż DOSBox zadba o to, aby wykorzystać niemal całą moc naszego procesora. Jednakże w przypadku programów typu Norton Commander, w trybie max, procesor naszej Amigi ciągle będzie obciążony w ponad 90%, podczas gdy w trybie auto będzie oscylował wokół dolnych stanów, w niczym nie przeszkadzając np. w swobodnym przeglądaniu stron WWW na ekranie WB. Zaznaczam jednak, iż zdarzają się niekiedy przypadki, że w praktyce bardzo wymagający program potrafi oszukać DOSBoxa i ten mimo iż powinien zaangażować maksymalne zasoby naszej maszyny, będzie pracował, jak gdyby nigdy nic obciążając procesor np. w 18% (taki przypadek zdarzył mi się przy uruchomieniu jednego z benchmarków). Zatem najbezpieczniejszą opcją zapewniającą stały „pałer” jest jednak tryb max.

Ekran startowy systemu Windows 3.11

Jeśli chodzi o typ procesora, domyślna opcja auto, wydaje się optymalnym wyborem. Z moich obserwacji wynika, że zazwyczaj oznacza to emulację procesora 486, aczkolwiek mamy też do wyboru kilka opcji w zakresie od 386 do Pentium i w wypadku niektórych nowszych pozycji, ustawienie na sztywno tego ostatniego jest wymagane.

Kilka kolejnych sekcji związanych jest z dźwiękiem. Przyznam szczerze, że nie jestem audiofilem, w dodatku dosyć prymitywne, często oparte o MIDI dźwięki z gier DOSowych też nie były jakąś barierą, która powstrzymałaby mnie przed zmniejszeniem domyślnej częstotliwości 44100 na 22050, zawsze to jakieś oszczędności mocy, której pomimo wprowadzenia emulacji JIT nigdy tutaj nie za wiele.

Joystick
Nie wiem czemu, ale domyślnie był wyłączony, oczywiście zmieniłem na tryb auto. Mój pad Logitecha bez problemu jest wykrywany.

Na koniec pozostały jeszcze dyski. Możemy montować zarówno obrazy ISO jako CDRom, plikopartycje czy zwykłe katalogi jako wirtualne twarde dyski. Ten ostatni sposób jest najwygodniejszy, dlatego ja w katalogu z DOSBoxem utworzyłem podkatalog pecet, gdzie skopiowałem MS-DOS jak i trochę innego software, w tym słynnego ongiś Norton Commandera. Jako że obsługa MS-DOS jest niewygodna i archaiczna, uznałem, że dobrze będzie by DOSBox automatycznie startował z uruchomionym NC w roli „uruchamiacza” innego oprogramowania. W tym celu do pliku dosbox.conf dopisałem:


mount c „pecet”
c:
c:nc\n


O systemie MS-DOS, jak i nakładce NC chyba nie ma co się rozpisywać, gdyż z perspektywy amigowca to prymitywne środowisko samo w sobie nie może stanowić jakiejkolwiek atrakcji. Dodam, że w całkowicie banalny sposób możemy nieco uatrakcyjnić nasz emulowany system poprzez instalację nakładki graficznej Windows 3.1. Teoretycznie można również zainstalować system Windows 95, a nawet W98, aczkolwiek w tym wypadku czeka nas nieco więcej kombinowania. Z pierwszych raportów autora amigowego portu Kas1e wynika, że na jego konfiguracji instalacja W95 powiodła się, aczkolwiek był zmuszony do wyłączenia dynamicznej emulacji CPU. Sam jeszcze nie wchodziłem zbyt głęboko w ten temat, niemniej zamierzam to zrobić, jeśli rezultaty okażą się obiecujące być może powstanie druga część tego artykułu, teraz jednak skupię się wyłącznie na oprogramowaniu DOSowym.

Kompatybilność DOSBoxa z oprogramowaniem stworzonym na MS-DOS stoi na wysokim poziomie, a stosowną listę działającego (bądź nie) oprogramowania możemy znaleźć na stronie domowej projektu. Dla amigowca lubującego się w emulacji, równie ważna, jak kompatybilność jest prędkość działania wirtualnego peceta. Pomimo iż dzisiejsze Amigi są sprzętami dużo mocniejszymi niż klasyki od Commodore, to wciąż temat udawania X86 nie był sprawą lekką. Korzystając z poprzedniej wersji datowanej na 2011 rok, nawet na topowych modelach komputera AmigaOne, mogliśmy liczyć na prędkość emulacji odpowiadającej najsłabszym maszynom z linii Intel 486. Najnowsza wersja z trybem dynamicznym to już zupełnie inna liga i według oceny autora portu na komputerze AmigaOne X5020 mamy odpowiednik mniej więcej Pentium 133MHz. Zdaję sobie jednak sprawę, że niewielka liczba czytelników bloga ma w domu „takiego potwora” i znaczna część dysponuje sprzętem klasy SAM460 czy Pegasos. Postanowiłem zatem że opiszę swoje wrażenia z perspektywy użytkownika amigowego mid-end, czyli leciwej ośmioletniej Amigi One X1000.

PCBENCH

Nie będąc oryginalny w pierwszej kolejności swój wzrok skierowałem w kierunku benchmarków. Od razu można odrzucić te syntetyczne, gdyż w trybie emulacji, zwłaszcza JIT, potrafią wyświetlać jakieś nieprawdopodobne głupoty typu identyfikacja procesora jako 486 786MHz. Dużo bardziej wiarygodne są testy praktyczne. Pozostało jeszcze znaleźć jakiś punkt odniesienia. W przeciwieństwie do emulacji konsol nie jest to zadanie łatwe, gdyż nie ma jednej wzorcowej konfiguracji. Klonów IBM PC powstało mnóstwo, były różne płyty główne, chipsety, karty graficzne i inne komponenty mające duży wpływ na wydajność. Nie kombinowałem więc zbyt długo i oparłem się na jednej z pierwszych znalezionych stron.

Na pierwszy ogień poszedł 3D Bench, gdzie uzyskałem wynik 58,8fps, według Retropals najbardziej zbliżony wynik (62,2fps) daje 486 DX4-100MHz. Dużo mniej obiecujący rezultat dał PCBench, gdzie uzyskałem 8.7fps, co plasuje wirtualnego peceta uruchomionego na A1 X1000 zaledwie między 486DX2-50MHz a 486SX2-66MHz. Za to zdecydowanie najlepiej wyszedł test Quake, gdyż moje 11.6fps okazało się najlepszym wynikiem w zestawieniu bijąc wydajność 486DX4-100MHz o mniej więcej 10%.

Można więc powiedzieć, że na mojej konfiguracji uzyskuję emulację na poziomie 486 100MHz czy może Pentium 75Mhz, choć jak to już z emulatorami bywa zdarzają się sytuacje, że jest nieco wolniej. Biorąc jednak pod uwagę, że mówimy o emulatorze platformy MS-DOS, a nie Windows, a złota era DOSa, to jednak połowa lat 90-tych i czasy rynkowej dominacji procesora Intel 80486, śmiało można powiedzieć, że miażdżąca większość gier stworzonych dla tej platformy jest (na nie będącej wszak liderem wydajności wśród nowych Amig) na A1-X1000 całkowicie grywalna. Oczywiście pojedyncze tytuły z końcówki życia tego systemu, jak choćby Quake pozostawiają do życzenia, ale akurat w tym wypadku możemy pograć bezpośrednio pod AmigaOS.

Na koniec przedstawiam kilka przebojów sprzed lat, w które moim zdaniem najlepiej zagrać właśnie pod DOSBoxem.

Heroes of Might & Magic II
Jako zdeklarowany fan HoM&M nie mogłem rozpocząć od innego tytułu. Amigowcy zapewne kojarzą pierwsze odsłony tej serii z emulacją Maca, lecz po pierwsze AmigaOS 4 nigdy nie dorobił się emulatora jabłka klasy ShapeShiftera. Po drugie Mac oparty na Motoroli, w świecie gier był platformą niszową, która w żaden sposób nie mogła równać się z pecetem. Ta gra jest tego kolejnym przykładem. Tylko pecet doczekał się jedynego oficjalnego dodatku The Price of Loyalty, który nie tylko wzbogacał podstawkę o cztery nowe kampanie, ale przede wszystkim wniósł szereg nowych elementów do samej rozgrywki. Te okazały się na tyle trafione, że potem trafiły do jednej z największych produkcji w dziejach elektronicznej rozrywki, jaką bez wątpienia był Heroes of Might & Magic III. Minimalne wymagania gry to 486DX-2, co pozwala na bardzo przyjemną zabawę (z pewnością lepszą niż pod Shapeshifterem na 040) na X1000, nie mówiąc już o X5000.

HOM&M II – dodatek The Price Loyalty

The Settlers II
Najlepsza część osadników i bodaj najbardziej wyczekiwany tytuł przez amigowców. Jako żywo stają mi przed oczami akcje pisania listów przez polskich fanów do BlueByte, czy liczne przecieki, że gra na „Przyjaciółkę” już się tworzy. Z perspektywy czasu myślę, że było coś na rzeczy, świadczą o tym nie tylko drobiazgi, jak choćby interfejs gry z oknami komunikacyjnymi, które mogliśmy zamykać w dokładnie taki sam sposób jak w Workbenchu, ale przede wszystkim dosyć zaskakująca edycja dla Maca. Zupełnie tak jak by BlueByte chciał gdzieś zagospodarować ukończony kod dla MC68k, wszak ani jedynka, ani trójka nigdy nie zostały wydane na system spod znaku nadgryzionego jabłka. Cóż jak było naprawdę trudno wyrokować, fakt jest taki, że amigowcy zostali z niczym, a w zasadzie ze świetnym zamiennikiem w postaci Foundation. Niemniej oryginał to oryginał, zapewne spora część fanów Settlersów już dawno uruchomiła go na Amidze z pomocą emulatora Maca. Przy czym z naszej perspektywy pecet znowu pokazuje tutaj swoją wyższość, gdyż wersja dla MS-DOS została wydana w języku polskim. Sama gra zadowoli się już procesorem na poziomie 486 33MHz, zatem spokojnie można do niej podejść nawet na nieco słabszych konfiguracjach.

Settlers II – misja piąta kampani rzymskiej.

GTA
Kwestie językowe przemawiają także za Gran Thief Auto pod DOSBoxem. Z tym tytułem akurat od lat nie ma problemu w przypadku Amigi One, gdyż bardzo dobrze działa na emulatorze Playstation. Niemniej w wersję konsolową zagramy tylko po angielsku. Dodatkowo odsłona z PSX jest tylko ubogim krewnym edycji na komputery. Odmiana pecetowa charakteryzuje się lepszą grafiką, zwiększonym ruchem, większą ilością przedmiotów, broni i pojazdów. Do tej wersji wyszły też dodatki, takie jak London 1969, wybór wydaje się więc oczywisty.

GTA 1 – początek gry

MDK
Tutaj wyboru nie ma żadnego, gdyż choć MDK został wydany także na PS1, to nie działa poprawnie z amigowym emulatorem FPSE. Do niedawna nie działał też z DOSBoxem, gdyż przy ustawieniach CPU=normal nie przechodził wstępnych testów wydajności. Teraz nie ma z tym problemu, aczkolwiek w DOSBOX.conf należy ustawić typ procesora na Pentium_slow. Gra ma swoje wymagania, którym AmigaOne X1000 jeszcze jakoś jest w stanie sprostać, ale nie ma co ukrywać, że prędkość działania gry ociera się o akceptowalne minimum. Zatem na słabszych komputerach nie polecam, zresztą nie wiem, czy jest to w ogóle możliwe ze względu na wspomniany test wydajności, którego zaliczenie jest warunkiem uruchomienia gry.

MDK

Redneck Rampage
Lochy, duchy, potwory to ulubione klimaty większości graczy, dlatego nie jest niczym dziwnym, że akcja chyba ponad 80% gier FPS rozgrywała się w realiach świata fantasy. Był jednak tytuł, który w sposób absolutnie bezkompromisowy wyłamywał się z tego trendu. W Redneck Rampage mamy do czynienia z młócką wieśniaków na dzikim zachodzie, strzelamy więc do wrogów przedzierając się przez stada kur na otwartym terenie, tudzież odwiedzając obory i tym podobne budowle. Pomysł swojski i niecodzienny. Niestety gra jest dowodem na to, że DOSBox, chociaż dziś nieporównywalnie szybszy niż wcześniej, wciąż potrafi niezbyt miło zaskakiwać. Oparty na silniku DukeNukem 3D, Rendeck Rampage oficjalnie nie ma wielkich wymagań zadowalając się już procesorem 486DX. Jednakowoż gra w rozdzielczości 640×480 na domyślnych ustawieniach po prostu klatkuje. Po zmianie karty graficznej z domyślnej S3 na vesa_nolfb oraz wyłączeniu kilku opcji w samym RR, jest nieco lepiej, jednak nadal za mało by w przypadku X1000, można było mówić o jakiejś minimalnie akceptowalnej prędkości rozgrywki, choćby na poziomie 15fps. Oczywiście można grać w rozdzielczości 320×200, jednak nie jest to polecane przez samych autorów, o czym zostaniemy poinformowani stosownym głosowym ostrzeżeniem. Po prostu produkcja ma dosyć ładne tekstury, skrojone pod 640×480, które przeskalowane w dół wyglądają okropnie. Reasumując na swój sposób ciekawy, niepozbawiony humoru tytuł, w który warto zagrać, ale względnej zabawy może dostarczyć tylko użytkownikom Amigi One X5000.

Blood
A zatem jednak znowu lochy, duchy, potwory. Blood to również gra oparta na silniku DukeNukem 3D, o teoretycznie podobnych wymaganiach do poprzednika, choć co ciekawe według bazy Moby Games „Krew” wymaga nawet więcej, bo procesora klasy Pentium. Zaskakiwać może więc to, że tym razem nie ma żadnych problemów z dynamiką rozgrywki. Na Amidze One X1000 gra śmiga aż miło. Po wszystkich Doomach, Hexenach czy Hereticach, to był ostatni wielki klasyk 3D lat 90-tych, który nie doczekał się portu dla Amigi. Teraz możemy nadrobić zaległości dzięki emulacji.

Blood- poziom drugi

Rzecz jasna na temat gier dla systemu MS-DOS można by napisać opasłą wielotomową księgę. Zawężając temat nawet do okresu, kiedy Amiga „wypadła z obiegu”, a więc lat 1994 – 1998, ciekawych strategii, bijatyk, wyścigów, przygodówek czy symulacji było naprawdę sporo. To był wciąż jeszcze bardzo ciekawy czas, gdy akceleratory 3D dopiero zaczęły wchodzić na rynek i autorzy gier nadal ścigali się na pomysł czy grywalność, a nie tylko na zwiększenie liczby wielokątów. Jest więc w czym przebierać i zapewne każdy znajdzie dla siebie tytuł, który pomimo upływu lat, dalej potrafi przykuć do monitora na długie wieczory. Na koniec zamieszczam film autorstwa Romana Kargina, przedstawiający małą próbkę możliwości DOSBoxa na Amidze One X5000 020.

O Mufa