Edytor Omnivore i jego zastosowania by Adam Wachowski 2016-10-21 14:01:14
Chciałbym Wam przedstawić program Omnivore, będący ciekawym
edytorem do plików binarnych 8-bitowego Atari. Jego twórcą jest
Rob McMullen, znany na AtariAge pod nickiem
playermissile.
Rob przy okazji przygotowywania podcastu Player/Missile
miał wiele pomysłów dotyczących hackowania kodu. Jednym z narzędzi
posiadanych przez niego lata temu był Omnimon, który można było montować w swoim
Atari, realizujący funkcjonalność monitora języka maszynowego. I to
do niego nawiązuje nazwa nowego narzędzia.
Czym jest więc Omnivore (czyli dosłownie
wszystkożerny)? To wieloplatformowa aplikacja na współczesne
maszyny, działa pod systemami Linux, OS X i Windows, a przeznaczona
jest do pracy z plikami wykonywalnymi oraz obrazami dysków dla
8-bitowych komputerów Atari. Zawiera edytor heksadecymalny,
dezasembler (z mini-asemblerem) oraz edytor map. W praktyce
Omnivore został jak dotychczas użyty do modyfikacji gier
Getaway i Jumpman, o czym będzie mowa w dalszej
części artykułu. Na razie przedstawmy możliwości narzędzia.
Podstawowe funkcjonalności:
• Obsługa obrazów dysków .ATR, .XEX, .XFD w formatach pojedynczej
(SD), średniej (ED) i podwójnej (DD) gęstości (dodatkowo format
Apple II: 140K .DSK),
• "Rozumienie" formatów Atari DOS, SpartaDOS, KBoot (oraz Apple DOS
3.3) przy podglądzie i wyodrębnianiu plików,
• Edycja obrazu dysku w całości lub w segmentach logicznych,
• Obsługa copy+paste na danych, nieograniczona liczba
operacji cofnij / ponów,
• Wbudowane wsparcie dla domyślnego zestawu znaków Atari i Apple
II, możliwość użycia własnego zestawu znaków,
• Wsparcie dla domyślnej palety PAL i NTSC, z opcją definiowania
własnej palety kolorów,
• Te same dane prezentowane są w różnej postaci w odrębnych oknach,
zmiany wykonane w dowolnym oknie są widoczne w pozostałych.
Edytor heksadecymalny (Hex Editor):
• Wyświetla te same dane w wielu formatach: szesnastkowo, binarnie,
jako grafika znaków i jako zdezasemblowany kod,
• Możliwość zaznaczania obszarów, ich kopiowania i wklejania,
• Możliwość zaznaczania wielu obszarów i traktowania ich jako
jeden,
• Wyszukiwanie działa również na literach hex, mapie znaków,
• Podświetlanie wszystkich dopasowań wzorca, nawigowanie między
nimi,
• Praca na danych heksadecymalnych w wybranych obszarach (funkcje
logiczne i arytmetyczne, shift / rotate, ustawianie i kasowanie
bitów),
• Wsparcie dezasemblacji dla wielu procesorów, m.in.: 6502, 65c02,
65816, Z80,
• Wsparcie dla map pamięci (obecnie 8-bitowe Atari, Atari 5200,
Apple II oraz KIM-1),
• Pokazywanie różnic w stosunku do wersji bazowej pliku,
• Zapamiętywanie ustawień dla danego pliku (m.in. typ procesora,
ustawione kolory).
Oto półgodzinna prezentacja z lipcowego Kansas Fest 2016, na którym
Rob opowiada o Omnivore i o użyciu tego narzędzia do tworzenia
leveli w Jumpmanie:
Program jest nadal na etapie wersji beta, więc mile widziany jest
feedback i informacje o znalezionych błędach. W planach jest
dodanie edytora zestawu znaków i grafiki sprajtów.
Szczegóły oraz kod źródłowy znajdziecie tutaj.
Ostatnia wersja ma numer 0.13.8 i można ją pobrać z tej podstrony.
Do Roba można pisać na adres feedback @ playermissile.com
• Getaway Inverse ATASCII
W lutym pojawiła się zmodyfikowana wersja gry Getaway! –
nową mapę levelu stworzył Wade Ripkowski występujący pod
ksywą ripdubski, znany m.in. z podcastu Inverse
ATASCII (tematyka 8-bitowego Atari), a także 1632 Atari
podcaST (Atari ST).
Wade przy okazji testowania powstającego Omnivore postanowił
pobawić się tą klasyczną grą. Mapa levelu jest tam jednym spójnym
obszarem danych, więc wykorzystując edytor w łatwy sposób można
było ją modyfikować. Autor zmian umieścił na nowej planszy kilka easter eggów, m.in.
drogi, po których jeździ nasz samochodzik układają się w różne
napisy nawiązujące do Atari i osoby twórcy.
Jedną z ciekawszych funkcjonalności Omnivore jest bardzo wygodny
wbudowany edytor do leveli Jumpmana, ulubionej gry Roba, z
możliwością wyklikania za pomocą myszki pełnego levelu tej gry, z
edycją ustawień oraz możliwością ustawiania akcji wyzwalanych w
wyniku działań gracza.
Jumpman to prosta gra platformowa, niezwykle popularna wśród
użytkowników Atari w 1983 roku. Spośród innych tytułów ten
wyróżniał się m.in. charakterystyczną animacją bohatera spadającego
z platform oraz dość urozmaiconą rozgrywką. Natomiast w Polsce
chyba raczej niewiele osób ma do tej gry większy sentyment, w
drugiej połowie lat 80. pojawiały się jednak ciekawsze propozycje
na naszą maszynę.
Kevin Savetz w przystępny sposób zaprezentował, jak używać
tego edytora do tworzenia własnych poziomów:
Opowiedział też więcej o umieszczaniu w levelu własnego kodu
(oryginalna gra umożliwia definiowanie specyficznych akcji w
pewnych momentach rozgrywki):
Rob i Kevin razem ogłosili na forum AtariAge konkurs na nowe levele – planują
wybrać najlepsze 32 propozycje i stworzyć z nich nową edycję
gry.
Konkurs oficjalnie kończy się jutro, 22 października, o północy
czasu UTC, natomiast dotychczas nie było wielu zgłoszeń, więc z
pewnością
poziomy przesłane później również będą wzięte pod uwagę.
Zachęcamy do spróbowania swych sił w tym edytorze, tworzenie w nim
nowych poziomów Jumpmana jest naprawdę łatwe, każdy więc może stać
się level designerem w grze na małe Atari.
Więcej szczegółów dotyczących edytora znajdziecie na tej
stronie.
larek 2016-10-21 23:26:43
Dzięki. Może się w przyszłości przyda. wieczór 2016-10-22 10:28:18
Świetny jest też ATR Tools od Jaya L. "Atari Geezer" Braya. Można nawet podejrzeć strukturę obrazu ATX: http://atariage.com/forums/topic/192052-atr-tools/