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.

Plik z grą można pobrać stąd.


Jumpman – nowe levele i konkurs


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

Może? Fantastyczne narzędzie!

voy 2016-10-22 19:24:04

Ś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/