Narzędzi pomocnych w zabawie z Atari nigdy za wiele. Niedawno
dostaliśmy do rąk prosty, ale pożyteczny program dla peceta
Integrator Arkadiusza Lubaszki, który potrafi złączyć pliki
samouruchamialne wygenerowane przez program graficzny
Graph2Font z plikiem samouruchamialnym dowolnej gry czy
dema. Dzięki temu każdy, bez znajomości asemblera, może sobie
dołączyć grafikę jako czołówkę do programu. Ja skorzystałem z tego
narzędzia, żeby w końcu dorobić sobie ekran tytułowy do gry
Ninja, a przy okazji do kilku portów gier ze Spectrusia,
wykonanych przez kolegę Devweba, a o czym pisałem
tutaj.
Trzecia odsłona programu "Integrator" przynosi nam następujące
zmiany:
poprzednio (do wersji 2.1) przejście z obrazka do następnego
pliku XEX następowało po naciśnięciu klawisza, obecnie można sobie
wybrać między naciskaniem klawisza a upłynięciem czasu - 5
sekund;
możemy dowolnie nazwać plik wynikowy i zapisać go, gdzie tylko
chcemy. Poprzednie wersje "Integratora" wymuszały nazwę pliku do
zapisu (dodając do nazwy ostatniego pliku "_PLUS") oraz katalog, w
którym plik ten został zapisany. Nowa wersja programu tylko
proponuje nazwę i katalog, ale można to zmienić;
zmieniony interfejs użytkownika - czytelniejszy, a przez to
szybszy w obsłudze;
pięć wersji językowych!
Autor skromnie napisał: "Nie uważam i nigdy nie uważałem, że
Integrator to jakiś wybitny program i nadal mnie dziwi, że ktoś
chce go używać ;). Tym bardziej będzie mi miło, gdy choć u kilku
osób zostanie on od czasu do czasu uruchomiony. (...) Oczywiście
wielkie podziękowania należą się (...) każdemu z tłumaczy, którzy
zechcieli wziąć udział w tym skromnym projekcie. Dziękuję!",
ale dodam od siebie, że nowa wersja programu powstała właśnie pod
naciskiem użytkowników - dostałem kilka maili, w których pytano
mnie, czy autor może przetłumaczyć swój program na angielski, bo
polski niby łatwy, ale... ;). Przy okazji tłumaczenia powstały
powyższe poprawki. I tyle genezy nowego "Integratora".
Obsługa jest banalna - wskazujemy plik lub pliki z grafiką programu
G2F w formacie XEX (może być ich maksymalnie 99 sztuk) oraz program
główny XEX. Wybieramy, czy chcemy przechodzenie programów
składowych przez naciskanie klawiszy czy po upływie 5 sekund, a
potem zapisujemy gotowy projekt. Program wyrzuci nam jeden plik,
powstały ze złączonych XEX-ów i gotowe... "Integrator" dokona
podmiany bajtów, połączenia w jeden plik i zapisze całość pod nazwą
ostatniego programu dopisując mu „_PLUS” (w nowej wersji można to
dowolnie zmienić). Plik znajdziemy w katalogu z łączonym programem.
Oczywiście program zapamiętuje ścieżkę dostępu do ostatniego pliku
i przy kolejnym uruchomieniu nie mamy problemu z wyszukiwaniem
plików.
Program można przełączyć na komunikację po polsku, czesku,
angielsku, niemiecku lub hiszpańsku. Podziękowania należą się za to
następującym osobom:
German "Devweb" Gonzales (hiszpański)
Andreas "CharlieChaplin" Koch (niemiecki)
Petr "Fly" Svoboda (czeski)
Děkuji, Danke, Thanks, Gracias! :)
Integrator złączył nie tylko obrazki, ale i
ludzi z różnych krajów - na zdjęciach Larek, Kaz, Devweb,
CharliChaplin, brak Fly-a
Dodam jeszcze istotną informację od Tomasza "TeBe" Bieli,
autora programu "Graph2Font", jakie wymaganie muszą spełniać
obrazki przygotowane tym programem, żeby działały w "Integratorze"
tak, jak się tego po nich spodziewamy - czyli dawały się przełączać
klawiszem. Obrazek nie może mieć w pierwszym wierszu ekranu (8
linii od góry) żadnych zmian, tylko "gołą" grafikę. Łatwo to
sprawdzić opcją "Check" (Contro+C) w menu "Options" - linie od 001
do 007 muszą mieć status "OK", nie może tam być żadnych liczb.
Jeżeli bedą jakiekolwiek zmiany - program nie będzie reagował na
klawisze.
Fajny pomysł;) Pewnie będzie to impulsem do powstania paru grafik do ulubionych gier;) xeen 2009-05-22 08:33:44
na spectrum tzw. okładki (czyli obrazki tytułowe) to był naprawdę standard, a niektóre obrazki to był wypas. pora na atari...
zastanawiam się w ilu grach coś takiego na atari było podczas samego wczytywania (chodzi o kasety) - ja pamiętam np. World Karate Championship. vega 2009-05-22 11:28:43
Teraz tylko trzeba popodmieniać wersje oryginalne na jedyne słuszne z obrazkami:) Tak jak to było w zamyśle autorów ale z dziwnych względów lub przez piractwo często okaleczano wersje gier wycinając wszystko co było zbędne... xeen 2009-05-22 11:34:12
bo pirat dba o klienta nie posiadającego turbo w magnetofonie:) xxl 2009-05-22 12:29:00
moze tak autor doda do integratora mozliwosc dodania rowniez muzyki z rmt? larek 2009-05-22 13:48:45
Autor nie jest biegły w asemblerze, jak niektórzy ;)
Pokrótce opiszę, co robi Integrator, aby można było zrozumieć, że nie robi zbyt wiele :)
Plik xex generowany przez G2F jest samodzielnym plikiem dosowym i z tego względu zawiera rozkaz JMP(10) oraz ładuje dane do RUNAD. Dzięki temu system wie, że ma go uruchomić po załadowaniu CAŁEGO pliku (wszystkich danych) oraz na koniec wyjść do DOSu. Oprócz tego zawiera kod:
_lp lda skctl and #$04 bne _lp
co powoduje oczekiwanie na naciśnięcie klawisza przed wyjściem do DOSu.
Połączenie takiego pliku z innym poprzez standardową funkcję prawie każdego DOSu, nic nie daje, bo dane ładowane do RUNAD oznaczają: URUCHOM PROGRAM PO WCZYTANIU WSZYSTKICH DANYCH, czyli również tych danych, które należą do połączonej np. gry. Z reguły ta gra też załaduje sobie jakieś dane do RUNAD, a w tym przypadku istnieje zasada - kto ostatni, ten wygrywa :) i dlatego nasz obrazek się nie pojawia na ekranie.
Integrator zmienia w pliku xex RUNAD na INIAD, a JMP(10) na RTS. Po takiej zmianie system wie, że zaraz po wprowadzeniu jakiejś wartości do INIAD ma uruchomić to, co jest już załadowane, a dalsze ładowanie wstrzymać do momentu napotkania rozkazu RTS. Pozwala to na uruchomienie obrazka złączonego z jakimś innym plikiem zaraz po załadowaniu jego danych, a przed dalszym odczytywaniem. Integrator potrafi też podmienić fragment kodu odpowiedzialny za czekanie na naciśnięcie klawisza na kod:
ldx $04 dex _lp cpx $04 bne _lp
co powoduje odczekanie 5 sekund zamiast czekania na wciśnięcie klawisza.
I tyle. To proste rozwiązanie daje nam możliwość łączenia plików z obrazkami i cieszenia się z kolejnego ich wczytywania i uruchamiania.
Dołączenie plików z RMT do obrazka nie spowoduje odgrywania muzyki. Tu musi zadziałać player we wspólpracy z programem wyświetlającym obrazek, co jest już bardziej skomplikowane do zrobienia niż podmiana kilku bajtów.
Jeśli byłaby taka możliwość, to każdy mógłby sobie złączyć takie pliki jednym z wielu programów do łączenia plików. Można spróbować...
Oczywiście osoby, które znają dobrze asembler są sobie w stanie wygenerować obrazki z muzyką, ale czy udostępnią tak zaawansowaną technologię wszystkim pozostałym? Na to nie potrafię odpowiedzieć. sikor 2009-05-22 17:31:28
A ja mam prośbę do imć Pana administratora, aby wszelkiegierki z dodanymi obrazkami miały dodatkowy wyróżnik (I) w opisie (od integrator), co wprowadzi jako-taki porządek i ku uciesze ludu spracowanego łatwiej będzie takie pliki odnaleźć... zaxon 2009-05-22 18:21:15
No super, ostatnio wiecej w ZX Spectrum operuje i za kazdym razem widze te ladowane obrazki, az zal ze Atarowcy nie mieli, choc to tez wina piratow ktorzy zbedne w/g nich rzeczy wycinali. skóter 2009-05-22 18:25:30
http://img219.imageshack.us/img219/6530/ninjae.png Cezar 2009-05-22 19:55:17
Popieram pomysł mości Pana Sikora :) Cezar 2009-05-22 20:31:45
Skoro już gry miałyby mieć wyróżniki, to może warto byłoby dodać też takie znaczniki do gier, które wymagają większej ilości pamięci niż 64 kB (128...), że mają muzykę stereo (S) i że współpracują z kartą VBXE (V) ? Nie wiem, tylko pytam. Kaz 2009-05-22 20:34:17
Xeen - mnie sie przypomina Chimera. Akurat mialem slabo to nagrane na kasecie i czesto podczas odczytu wyskakiwal blad, wiec naogladalem sie tej czolowki tyle, ze az strach :D.
Xxl - pracuje nad tym, zeby taka mozliwosc byla :)
Sikor - nie wydaje mi sie to przydatne, ani konieczne. W nazwie pliku w nawiasach informuje o wymaganiach programu, a nie o kulisach jego powstania :). Jezeli ktos chce, to moze prowadzic liste takich programow - chetnie ja umieszcze i bede aktualizowal. Ale mieszanie wymagan co do programu z innymi informacjami wprowadziloby tylko zamieszanie.
Poza tym, przeciez to nie musi sluzyc tylko do wzbogacania cudzych gier czy programow. Napiszesz sobie program w Basicu, skompilujesz, a potem mozesz dolaczyc obrazek w G2F.
Skóter - swietne! :P Kaz 2009-05-22 20:35:54
Cezar - http://tiny.pl/3h2n Cezar 2009-05-22 20:47:40
Faktycznie, chyba się starzeję, coś z pamięcią nie tak :) MaW 2009-05-22 21:23:03
czy nie powinno być czasem "supplied" ? sikor 2009-05-22 22:15:39
@Kaz: Ty tu rządzisz. Konieczne nie jest, ale przydatne - a i owszem. Hipotetycznie: lubiłem grę "Kaz na wakacjach"*, miałem ją na kasecie. Niestety, nie miała początkowego obrazka. Wchodzę na atarionline.pl - i co widzę? Moja ulubiona gra jest w katalogu! Juppi! Ale co to, jest tam 28 wersji? Ściągam na chybił-trafił 7 z nich, na przykład 1,3,4,7,9,12,18 - na pierwszy rzut oka niczym się nie różnią, poza tym, że któraś tam ma nieśmiertelność (to mi nie jest konieczne), inna jest spakowana, jeszcze inna pozwala obejrzeć koniec gry... Niestety, nadal nie wiem, że jest obrazek tytułowy (a raczej powinien być - bądź był wycięty przez pirata, bądź firma developerska dbała o to, aby kaseta była krótka). Po przetestowaniu tychże (jako zwykły użytkownik) zapewne nigdy nie sprawdzę pozostałych wersji, więc nigdy się nie dowiem, że wersje 13,17,19 miały obrazek tytułowy dodany przez kogoś w jakimś celu. Oczywiście zakładam, że nowe gry od razu mają taki obrazek, więc nie istnieje potrzeba, aby dodawać specjalną informację o dodaniu takowego. Ale w sumie nie jest to wymóg konieczny, tylko - jak napisałem wcześniej - umożliwiło by nowe spojrzenie na temat. Tym bardziej, że wcale nie jest powiedziane, że wersja z obrazkiem będzie wersją ostatnią w katalogu. -------------------------------------------- ------------------------------ * Aluzja zamierzona ;) uicr0Bee 2009-05-22 23:22:47
Wiem, wiem, i tak macie pełne ręce roboty, ale tak na przyszłość :) Jak dla mnie przy każdym tytule miło by było mieć rozmiar w bajtach i MD5, a ew. dodatkowo: wydanie (i tu do wyboru np: "dump oryginału" + wydawca, "crack taki", "crack owaki", może screen tytułowy?). Może dałoby się dać to do uzupełniania ludzkości :) Wystarczyłaby wydmuszka z informacjami podstawowymi, które łatwo Wam dodać automatycznie (MD5, rozmiar), i pustymi na początku inf. dodatkowymi? Takie luźne pomysły :) Kaz 2009-05-23 00:04:12
Sikor, uicr0Bee - pomysly cenne, dziekuje. Jest jednak pewne ale :).
uicr0Bee - numeracja wersji nie jest malo znaczaca, jest KLUCZOWA. Inaczej po zgraniu wszystkich gier na dysk mialbys nadpisane jedne na drugich. Do czego zas mialby sie przydac zwyklemu uzytkownikowi rozmiar w bajtach i MD5, tego nie wiem?
Jezeli zas chodzi o opisywanie plikow - jak zwykle jestem za! Pod warunkiem, ze pomyslodawca zrobi na przyklad w ten sposob 100 gier - na probe :). Przyklad z Boulder Dashem jest doskonaly - prosilbym o oznakowanie czyj crack jest kogo :), ktora wersja zostala wydana w USA, a ktora w Europie, porownanie z oryginalami, etc.
Sikor - tu nie chodzi o to, kto rzadzi, tylko wszelkie powazne zmiany (a taka jest moim zdaniem znakowanie plikow) wymaga przemyslanego uzasadnienia, solidnej argumentacji. Wprowadzanie do informacji o wymaganiach programu dodatkowej informacji o tym, ze zostal zrobiony akurat Integratorem, uwazam za niepotrzebne. I tlumacze dlaczego.
Rownie dobrze mozna by znakowac programy, ktore zostaly skompilowane. Albo takie, ktore napisane zostaly w Action. Bo akurat ktos bedzie na wakacjach i przegapi, ze nowy program w Action powstal... Mozna to zrobic, ale po co od razu w postaci znakowania plikow? Jest duzo prostsze rozwiazanie, ktore zaprezentowalem - prowadzenie listy programow. Ciebie interesuja te z obrazkami - nie ma problemu, mozemy prowadzic taka liste. Kogos innego programy z obsluga myszki - nie ma problemu, nawet juz prowadzimy taka liste. Gdyby zas rozszerzac nazwe plikow o kazda kategorie, jaka kogos zainteresuje, to bedziemy rzeczywiscie mieli rozbudowane nazwy plikow - i zwiazane z tym problemy (chocby z nagraniem na CD, chocby z szerokoscia nazwy na stronie, etc).
Rozwiazaniem problemu z Integratorem, jezeli nie odpowiada Wam pomysl na prowadzenie listy takich programow - jest TOSEC. Program TOSEC-owy podaje zarowno nazwe producenta gry, jak i rok powstania, informuje o crackach i nadaje sumy kontrolne plikow. Nazwy tych plikow sa dlugie, pelne informacji i oczywiscie wielu przeklaman, bo niestety informacje o ktorych wspominal uicr0Bee w praktyce sa czesto nie do sprawdzenia/ustalenia. I w ten sposob mozna sobie przetworzyc wlasne pliki, sciagniete np. z atarionline.pl i trzymac cala kolekcje w takiej postaci - z wieloma informacjami w pliku.
Oczywiscie najpierw trzeba tam bedzie te informacje o plikach Integratorowych wprowadzic - ale to akurat szansa na wziecie udzialu w tym fajnym przedsiewzieciu.
Moim zdaniem lepszym rozwiazaniem jest baza danych. Ale tutaj jest Atarimania i Fandal. Szkoda, ze nie kolekcjonuja wszystkich plikow danej gry, tylko wybrane, ale takie sobie przyjeli zasady, wiec nie ma co sie rzucac. Jezeli wprowadzac informacje, o ktore sie upomnieliscie to wlasnie nie do nazwy pliku, ale do bazy danych. Z pomoca paru osob, z ktorymi juz wstepnie korespondowalem, ma to szanse zaistniec, ale wcale nie szybko - z powodu moich ograniczen czasowych. Znacznie szybciej mialoby szanse zaistniec, gdyby znalazl sie szef takiego projektu, ktory bedzie mogl poswiecic mase czasu na koordynacje prac. Tdc 2009-05-23 02:29:38
A ja jednak popieram pomysł Sikora. Skoro ziegratorowanych gier może być w przyszłości wiele, to prowadzając rozróżnienie dziś, spowodujemy pewien standard. Dzięki temu pojawienie się gry w necie będzie czytelne dla wszystkich. Przykładowo opis na Atariki, w przypadku niewprowadzenia będzie musiał podawać nazwę (lub nazwy!) plików, w których jest to i to. Natomiast tak to podawana będzie jedynie informacja o takiej wersji i każdy będzie wiedział co gdzie jest. Tdc 2009-05-23 02:32:21
...dochodzi jeszcze problem, że pewnie powstanie wiele wersji tej samej gry zgodnie z wizją artystyczną kolejnych autorów, wtedy trzeba będzie rozróżniać kolejne wersje z I. larek 2009-05-23 08:42:28
Nie przesadzajcie z tym wysypem gier z czołówkami. Integrator jest dostępny od dłuższego czasu i jakoś nie widzę aby masowo powstawały nowe grafiki do starych gier... Jedynie Kaz dołożył obrazki do kilku istniejących już gier. Jeśli natomiast ktoś dołączy obrazek do swojej nowej gry, to raczej nie będzie miało znaczenia, czy jest to zrobione Integratorem, czy też nie. To tak, jakby zaznaczać, że program w asemblerze kompilowany był QA czy Mads'em. sikor 2009-05-23 09:29:06
@larek: nie tylko, tylko tyle, że mój się nie bardzo nadaje - z prostej przyczyny, nie za bardzo mogę przetrawić G2F ;( Ale Kaz chyba poprawi obrazek ;) Kaz 2009-05-23 10:42:55
A jak ktos dolozyl obrazek nie-Intagratorem to tez sie bedzie liczyc czy nie? Bo wlasnie otrzymalem taka gre... A jezeli nie bedzie wiadomo, czym dolozyl?
I w czym tkwi problem, zeby bylo mozna zrobic liste, zamiast pakowac przesadne dane do nazwy pliku? :) xxl 2009-05-23 11:00:46
lepiej by bylo oznaczac oryginalne wydania a cala reszte .... sciagasz na wlasna odpowiedzialnosc ;-) : wyprobowalem integrator, robi to co trzeba :-) ewentualnie pole do edycji ile sekund ma czekac. no albo edycje tych 7 bajtow zeby mozna bylo wywolac program ktory zostal wczesniej (przed obrazkiem) zaladowany - np muzyka/programik do scrolla czy cokolwiek Kaz 2009-05-23 11:40:18
Ja bym jeszcze prosil o mozliwosc odwrocenia procesu Integratorem czyli odlaczenie obrazka z pliku. Pecus 2009-05-23 11:47:37
Czyli potrzebujesz Dezintegratora!!! :) sikor 2009-05-23 15:13:18
@Kaz: dla przykładu dałem I, może być po prostu P (picture) lub O (obrazek), narzędzie nieważne. jell 2009-05-24 17:33:12
tak wracajac do tematu: http://img219.imageshack.us/img219/6530/ninjae.png - rozwalilo mnie to ;-) Kaz 2009-05-24 18:01:48
Mnie tez sie podoba, wlasnie tego czesto mi brakuje na scenie - inteligentnego dowcipu :).