Gry w produkcji – część XI by Adam Wachowski 2016-01-06 17:50:11
Pentagram
W sylwestrowy dzień Mariusz „mariuszw” Wojcieszek mile
zaskoczył wszystkich informacją o przygotowywanym przez siebie
porcie gry Pentagram z 1986 roku. To ostatnia część cyklu o
Sabremanie, bohaterze znanym z Sabre Wulf,
Underwurlde i Knight Lore (ta ostatnia gra,
przypomnijmy, została przeniesiona na małe Atari przez XXL-a w
2008).
Zaskoczenie jest tym większe, iż tym razem gra nie była
konwertowana z maszyny o procesorze 6502, tylko została
przygotowana na bazie kodu z ZX Spectrum. Na potrzeby portowania
Mariusz stworzył prosty statyczny rekompilator, który na podstawie
otrzymanego na wejściu kodu asemblerowego Z80 produkuje równoważny
kod 6502 – powolny i niezoptymalizowany, ale najczęściej działający
poprawnie.
Mariusz opracował również narzędzie do weryfikacji poprawności
kodu. Działa ono równolegle na wersjach Spectrum i Atari używając
emulatorów Z80 i 6502, porównuje dostęp do pamięci (odczyt i zapis)
i wykrywa różnice.
Kod wersji na Atari nie był na razie za bardzo optymalizowany, więc
gra jest wyraźnie wolniejsza niż w oryginale; miejmy nadzieję, że
ręczna optymalizacja przyniesie pozytywny efekt w kolejnych
wersjach. Nie było też na razie większych testów, więc jakieś
problemy z rozgrywką mogą się pojawić. Co ciekawe, efekty dźwiękowe
i muzyka są w tej chwili bezpośrednio przeniesione 1:1 ze Spectrum
(odgrywa je beeper układu GTIA).
Mariusz dotychczasowe efekty eksperymentu z Z80 ocenia jako bardzo
udane – udało mu się przygotować narzędzia, które na podstawie
listingu gry z ZX Spectrum w 80% automatycznie pozwalają na
przygotowanie działającego na Atari kodu. Co dalej? W najbliższym
czasie zamierza przyjrzeć się innej izometrycznej grze
Gunfright, jednej ze swoich ulubionych.
Więcej szczegółów dotyczących konwersji, w tym kody źródłowe
Pentagramu znajdziecie w
tym wątku na Atari Age. Z kolei źródła rekompilatora
umieszczone zostały
tu.
A wracając do samej gry: Sabreman musi najpierw wykonać akcję
polegającą na „uleczeniu” zniszczonych obelisków: trzeba znaleźć
studnię, ostrzelać ją magicznymi pociskami, a potem uzyskane
wiaderko z wodą zanieść do danego obelisku (i tak 4 razy, aż
wszystkie będą naprawione). W efekcie w jednym z pomieszczeń pojawi
się tytułowy pentagram, na którym musimy umieścić 5 kamieni
runicznych, porozrzucanych losowo w różnych miejscach mapy.
Magiczne pociski mogą również służyć do pozbycia się niektórych
istot w grze, poza tym można dzięki nim przesuwać przedmioty.
Sterowanie:
Na ekranie tytułowym wybieramy najpierw opcję 1, aby grać z
klawiatury lub 2, aby grać dżojstikiem. Cichnie wówczas
muzyka, a następnie wciśnięcie 0 rozpoczyna rozgrywkę
(najpierw wysłuchamy krótkiego motywu muzycznego).
Dżojstik w górę powoduje ruch naszego bohatera do przodu, wybranie
kierunku lewo/prawo obraca postać o 90 stopni. W porównaniu z grami
Knight Lore i Alien 8, opartymi na tym samym
izometrycznym silniku o nazwie Filmation, nowością jest
możliwość strzelania do przeciwników. Tak więc FIRE powoduje teraz
oddanie strzału, a nie skok. Żeby skoczyć, trzeba skierować
dżojstik w dół.
Uwaga: w wersji obsługiwanej dżojstikiem nie da się grać zupełnie
bez użycia klawiatury. Aby podnieść przedmiot, trzeba stanąć przed
nim i użyć jednego z klawiszy dolnego rzędu (Z, X, ..., M).
Plik z grą:
Mariusz udostępnił nam nowszą wersję roboczą. W stosunku do
poprzedniej opublikowanej gra działa nieco szybciej (ale nadal
wolno), dorzucona jest prosta emulacja kolorów, a także usunięto
pierwsze zauważone bugi (nie dało się np. podnosić przedmiotów).
Grę w postaci pliku OBX można pobrać
stąd.
Skyscraper
Martin „MatoSimi” Simeček, słowacki koder regularnie
tworzący nowe produkcje na Atari (w ostatnim roku Quarrion i
3plex), pracuje nad grą na jeden przycisk o nazwie
Skyscraper, w której budujemy drapacz chmur. Rozgrywka
polega na upuszczaniu w odpowiednim momencie kolejnego poziomu
elementów, tak aby jak najdokładniej trafić w ostatnio ułożony
poziom.
Pierwszą prostą grywalną wersję Martin stworzył jeszcze w 2013 roku
(samodzielnie w kilka godzin), potem zespół się powiększył i
postanowiono pójść w kierunku bardzo kolorowej gry, z wieloma
zmianami kolorów na każdym poziomie i płynną paralaksą co linia.
Brzmi fajnie, ale dynamiczne generowanie DL/DLI okazało się
skomplikowane, a pomimo wielu prób optymalizacji kodu w pewnych
momentach gry liczba potrzebnych zmian na linię przekraczała
możliwości maszyny.
Duży nakład pracy nie dał oczekiwanych rezultatów, więc projekt na
dłuższy czas został zarzucony. Ale gdy w ostatnim konkursie ABBUC
wystartowała bardzo prosta gra Gravity Jasona Kendalla
oparta na praktycznie tym samym pomyśle, Martin postanowił odkurzyć
swoją grę. Aby uprościć sobie pracę wrócił do trybu znakowego (już
nie będzie płynnego efektu paralaksy, tylko skokowy) i przepisał na
nowo większość kodu.
Graficznie wspomaga Matosimiego José Pereira, a muzycznie
Michał „stRing” Radecki.
Gra powinna być gotowa w najbliższych miesiącach. Tak wygląda
filmik z grudnia – trzeba przyznać, że Skyscraper prezentuje się
efektownie (muzyka w tle nie jest oczywiście generowana
przez Atari):
xxl 2016-01-06 19:06:58
wysmienite... zapowiada sie dobr rok. pin 2016-01-06 19:35:34
Gra Pentagram wiesza się na planszy tytułowej. Widać tylko jej migający fragment. A130XE, 1088k jhusak 2016-01-06 19:54:57
Hm rekompilator... Proponowałem takie coś kiedyś xxl-owi, ale powiedział, że to nie takie proste (w domyśle nie takie proste jak portować kod ręcznie, bo wówczas jest już zoptymalizowane)
Mariusz, udostępnisz swoje narzędzia? xxl 2016-01-06 19:56:02
a na atari dziala. dla wygody laduje loaderem boot z pakietu xB:
http://atari.pl/pg.atr pin 2016-01-06 20:14:32
.. no ale, co tu jest wygodne w takim rozwiązaniu?
Najwygodniej jest odpalić plik bez kombinowania jeszcze z jakimś ateerem. xeen 2016-01-06 20:14:56
Gravity jest zaskakująco grywalną, prostą grą. Ma też fajne pomysły (bonusy różnego rodzaju). Zobaczymy jak będzie ze scyscrapperem. Widzę jakieś murki z boku jako urozmaicenie. Adam 2016-01-06 20:36:18
Mariusz udostępnił mi nowszą wersję Pentagramu, m.in. z kolorami, wkrótce zaktualizuję artykuł. pin 2016-01-06 20:37:51
@XXL - ten ATR też mi nie działa. the fender 2016-01-06 20:38:05
Pentagram kulawo, ale odpala się. Trzeba naciskać "0" do oporu.
Co do prędkości - chodzi jak pierwsze emulatory ZX Spectrum na Amidze 500. Jeśli to efekt działania tego konwertera - to jest rewelacyjny!. Wierzę, że z czasem uda się grę zoptymalizować a nawet podrasować (co nieraz pokazał xxl). pin 2016-01-06 20:41:06
@XXL - podlinkuj ATR z xbiosem w trybie OS, to może coś z tego będzie. Adam 2016-01-06 20:43:08
@TheFender: naciśnij 1 lub 2, wówczas ucichnie muzyka. Potem naciśnij 0 i poczekaj, aż wybrzmi motyw dźwiękowy. Dopiero wówczas gra się odpala. Nie trzeba "naciskać do oporu" :) mariuszw 2016-01-06 20:47:23
@pin: to jest wersja robocza, ładuje się pod $800 więc pod DOSem nie będzie działać. Do użytku z Altirrą na tym etapie :)
@jhusak: zdecydowałem się udostępnić źrodła rekompilatora tutaj: http://atariage.com/forums/topic/247596-z80-6502-recompiler-used-with-pentagram-port/
@the fender: wersja która poszła wyszła rzeczywiście spod rekompilatora, z poprawkami wprowadzonymi po to by działała poprawnie. Nowsza wersja, którą Adam pewnie za chwilę wrzuci jest już trochę przeze mnie zoptymalizowana i działa lepiej. Co ciekawe okazało się, że kod z rekompilatora jest całkiem niezły i nie jest łatwo go zopytmalizować. Dwie procedury zabierające najwięcej CPU to rysowanie obiektów na ekranie oraz sortowanie obiektów na ekranie, i wygląda na to, że trzeba je będzie napisać ręcznie od zera, by uzyskać lepszą prędkość. Adam 2016-01-06 20:58:39
Dodałem kolorowe screenshoty, podpiąłem nową wersję i napisałem o zmianach w stosunku do poprzedniej, rozszerzyłem opis sterowania. pin 2016-01-06 21:01:44
@Mariuszw - nawet tego nie próbowałem odpalać pod dosem, bo widziałem strukturę pliku, tu sprawa jest jasna. Próbowałem to już pod tym cudownym xbiosem, ale ostatecznie ATR podesłany tu przez XXL'a uruchamia grę tylko w momencie, jak zostawię przy bootowaniu włączony... uwaga - BASIC ;). Ekran tytułowy widać przez około sekundę i następuje zwiecha, po której restart trzeba wykonać wyłączając komputer, bo jakieś śmieci lecą do VBXE i zwykły zimny reset nie pomaga. xxl 2016-01-06 21:13:18
w atr nie ma xbiosa tylko xboot. option (wylaczenie basica) trzymaj tylko na czas powerup i nie czekaj do zaladowania sektorow boot bo xboot sprawdza ten klawisz i jak jest nacisniety pomija ladowanie pliku autorun. sprawdzalem na atarce z vbxe... tez dziala. Czarny_faraon 2016-01-06 21:15:44
U mnie gra pentagram także nie startuje na real atari - 130XE z sio2sd (nie wiem czy wystarczy zmienić rozszerzenie z obx na xex?). Po załadowaniu ATR przygotowanego przez xxl'a gra zatrzymuje się na planszy tytułowej. nosty 2016-01-06 21:47:29
Pentagram na razie jest trudny choćby do szerszego obejrzenia, bo prawie nie reaguje na klawisze, a jak zareaguje to z koszmarnym opóźnieniem. Natomiast animacja stworków wydaje się płynna i całkiem szybka. "Muzyka" tytułowa zgwałciła mi mózg przez uszy :P Czekam jednak cierpliwie na finalną wersję, żeby sobie nie psuć zabawy.
PS. Na Altirze działa, a na Atari800Win już nie. Ciekawe dlaczego? pin 2016-01-06 21:54:53
@XXL - ciężko trafić, bo przy zbyt szybkim nośniku nawet nie zobaczysz, kiedy załadował się xboot.
Co ciekawe, odpala się to wyłącznie na... Rapidusie ;) Jest minimalnie za szybko :D Adam 2016-01-06 22:05:37
@Nosty: masz może niewłaściwe ustawienia w emulatorze, ja nie mam żadnego problemu ze sterowaniem postacią. xxl 2016-01-06 22:05:38
chcesz powiedziec ze szybkosc powerupa zalezy od polaczonego urzadzenia? Czarny_faraon 2016-01-06 22:07:58
Mi najlepiej działa na Atrai800Win Plus. pin 2016-01-06 22:25:32
@XXL - bootuje ATR z tym twoim wynalazkiem, i jak tylko pojawi się screen to puszczam option. Ładowanie zostaje przerwane i nic się nie dzieje. Z włączonym BASIC dzieje się to, co pisałem gdzieś tam wyżej.
Tylko na 65c816 i DracOS jest inaczej, bo tam przy boot funkcja klawisza option działa odwrotnie, więc na chwilę obecną gra działa mi wyłącznie na 65c816 z tego twojego atr.
Być może na zwykłej Atarce przy zbyt szybkim nośniku problem jest z "puszczeniem" option na czas ;). Przy 80-100kB/s ładowanie xboot'a ciężko jest zauważyć :D jhusak 2016-01-06 23:35:11
@mariuszw - dzięki. jhusak 2016-01-07 01:06:04
Lubię takie proste rozwiązania :) Proste i skuteczne (z dokładnością do samomodyfikującego się kodu). No i co? 2016-01-07 09:48:40
A jednak Smaku miał racje i tak filtr istnieje!!! znieście mu bana bo koleżka wiedział więcej niż Wy i to Wy byliście w błędzie!!! Oczywiste. the fender 2016-01-07 10:41:04
Adam: dzięki za informacje xxl 2016-01-07 12:43:31
trzymam kciuki za MariuszaW, zeby nie braklo mu zapalu. jest jeszcze tyle gier w ktore chcialoby sie zagrac na atari... the fender 2016-01-07 15:14:58
xxl Ty nie trzymaj kciuków, tylko weź się za to co zacząłeś i pokończ to :) atarka 2016-01-07 21:45:55
w ogóle może ktoś znający się na rzeczy potrafiłby stworzyć wątek jakie gry z jakiej platformy wchodzą w grę do konwersji typu: z ZX takie a takie tytuły, przy każdym problemy co trzeba dopisać lub inne. I tak samo z Commodore, BBC, Amstrad i innych? gry hot spot 2016-01-08 13:38:15
Dobry pomysł mariuszw 2016-01-08 19:21:27
@atarka: a czemu miałaby służyć taka lista? Najbardziej ogólna odpowiedź jest taka, że da się przenieść wszystko, pytanie ile czasu można zainwestować w projekt i na jakie kompromisy trzeba by pójść ze względu na ograniczenia techniczne. No i co? 2016-01-08 19:38:06
jak to czemu? by się jarać i pozbywać się kompleksów nagromadzonych przez lata ;) atarka 2016-01-08 21:01:52
Może dla ogólnej wiedzy ile brakuje do tego by dany tytuł przenieść. Może ktoś leniwy to znając połasi się by takich jak ty wspomóc równolegle by nas w przyszłości cieszyć większą liczbą tytułów, a jak wiemy sporo u nas ich brak. bob_er 2016-01-10 15:58:44
Nie chcę skrzydeł podcinać, ale osoby, które potencjalnie mają umiejętności, by takiej konwersji dokonać wiedzą, z czym potencjalnie problemy będą. Co najwyżej - wartościowa mogła by być lista, czego gawiedź by pragnęła najbardziej. XXL kiedyś taką listę prowadził, nie wiem, czy ciągnie ją nadal. Podejrzewam (z drugiej strony), że zrobi się taki koncert życzeń, że i tak będzie mało wartościowa (typu 300 pozycji z jednym/dwoma głosami każda). Ale jeszcze z innej strony - gdybym za konwersję się brał, na pewno publicznie bym tej informacji nie puszczał (co najwyżej 'krewni i znajomi królika' by się dowiedzieli). Nie chcę potem się tłumaczyć, dlaczego projekt jeszcze nie jest skończony. mariusz 2016-01-10 20:59:25
bob_er ma rację. A jakie tytuły z innych platform 8bitowych byłyby interesujące? Bonifacy 2016-01-10 21:55:54
np Super Bread Box z C64 - byłby absolutny czad. bob_er 2016-01-10 22:30:26
Super Bread Box - podobnie jak Bomb Jack - przy tej jakości - trochę ramu by zeszło, ale dało by radę pociągnąć. Z punktu widzenia XE 'irytująca' jest ilość przeciwników. xxl 2016-01-11 13:12:21
pociski z dokladnoscia do "znaku" a sprity stawiac EORem to moze by sie dalo...