atarionline.pl
atarionline.pl Atari
Login:
Hasło:
Zapamiętaj mnie
Translate to RSS RSS
Modyfikacje starszych gier: Donkey Kong Jr. i Bubsy z 2017-11-19 23:00 (7)
Nowe demo na duże Atari z 2017-11-14 23:01 (137)
Zanim stali się znani... Kto wystąpił w reklamach Atari? z 2017-11-07 21:27 (8)
Powrót z przyszłości: Giełda Bajtka i koncert Marka Bilińskiego! z 2017-11-03 01:03 (155)
Aktualności growe z 2017-11-01 14:19 (13)
Silly Venture 2k17 – nowa invitka i garść informacji! z 2017-10-30 10:45 (17)
Wyniki konkursu programistycznego ABBUC 2017 z 2017-10-28 16:53 (17)
Pokłosie RetroKomp/LOAD ERROR 2017 z 2017-10-22 16:28 (22)
Starotki ze strychu z 2017-10-20 12:30 (14)
Nowy RECOIL v4.1.0 z 2017-10-19 22:10 (8)
RetroKomp/LOAD ERROR 2017 – zapraszamy! z 2017-10-18 20:01 (3)
Robimy plakaty z 2017-10-11 23:56 (23)
Festiwal retro już za chwilę z 2017-10-10 12:26 (0)
Beyond the Borders – zbiórka na Kickstarterze z 2017-10-08 23:46 (43)
Remanent growy – ACTris! 2.1 z 2017-10-03 22:22 (6)
Silly Venture 2k17 – invitka na… C-64! z 2017-10-01 12:48 (13)
Relacja z KWAS-a 12 z 2017-09-30 02:03 (15)
Remanent growy – mini-Slots z 2017-09-28 00:25 (8)
Gry na Atari w IPN z 2017-09-26 08:18 (3)
Nowa polska gra na Atari ST z 2017-09-23 01:49 (25)
«« nowszestarsze »»

Pomocnik/Helper
Gry/Games

Katalog gier

Opisy gier
Frogs opisał Xeen (0)
Choplifter! opisał Urborg (0)
Joust opisał Urborg (16)
Commando opisał Urborg (35)
Mario Bros opisał Urborg (13)
Xenophobe opisał Urborg (34)
Robbo Forever opisał tbxx (16)
Kolony 2106 opisał tbxx (0)
Archon II: Adept opisał Urborg/TDC (9)
Spitfire Ace/Hellcat Ace opisał Farscape (7)
Wyspa opisał Kaz (9)
Archon opisał Urborg/TDC (16)
The Last Starfighter opisał TDC (30)
Dwie Wieże opisał Muffy (17)
Basil The Great Mouse Detective opisał Charlie Cherry (121)
Inny Świat opisał Charlie Cherry (17)
Inspektor opisał Charlie Cherry (19)
Grand Prix Simulator opisał Charlie Cherry (16)
Rescue On Fractalus opisał Kaz (18)
Stranded opisał Kaz (10)
«« nowszestarsze »»

Użytki/Utils
Wewnętrzne/Internals



   Nowinki tworzone dzięki CuteNews
Edytor duchów
Tomasz Cieślewicz przedstawia:

Stare edytory...

W zeszłym roku zaprezentowałem wiekowy edytor znaków i grafiki, który powstał przy okazji tworzenia kilku innych programów i gier w Mirage Software LTD. "Help me", bo o nim mowa, był programem zaskakująco (nawet dla mnie, autora!) dopracowanym i posiadającym wiele funkcji (unikalne w tym czasie undo, itp.), jak na proste narzędzie, które nawet nie miało szans na wydanie.



Dziś zaprezentuję drugi niezbędny edytor dla każdego twórcy programów multimedialnych: edytor sprzętowych duszków. Niestety, mimo że został oparty o źródła programu „Help me”, nie był tak dopracowany i rozbudowany jak tamten, początkowo umożliwiał jedynie proste zmienianie bitów w kolejnych duszkach, kolorów i kilku innych parametrów. Wcześniej cała grafika w moich programach pochodziła z kartek papieru, na których podliczałem wszystkie bity... Zapewne któregoś razu powiedziałem dość i powstał ten edytor. Potem dzięki niemu powstało wiele duszków do moich programów.

papierowy "edytor" znaków
papierowy "edytor" duszków, rysunek powstał w czasie lekcji w podstawówce :)


Publikacja tego edytora była przeze mnie planowana od lat, ze względu na fakt, że trudno znaleźć programy o podobnej funkcjonalności, choć wielu programistów zapewne miało/ma podobne w swoich prywatnych zbiorach narzędzi. W końcu zdecydowałem się na to z powodu imprezy Global Game Jam, w czasie trwania której miałem przygotować grę ze swoim zespołem. Potrzebowałem czegoś do zaprojektowania duszków, a więc należało zapoznać zespół z programem. A skoro tak - należało dopracować działanie i nieco ulepszyć interfejs.

wersja 0.4 z 1991 roku


W moich zbiorach znalazłem wersję 0.4 pochodzącą z 1991 roku. Gdy chciałem przygotować jako tako funkcjonującą wersję na potrzeby teamu GGJ, zajrzałem do źródła. Po upływie prawie 20 lat kompletnie nie wiedziałem o co chodzi w tym kodzie. Po drugie, niektóre fragmenty wzbudzały mój śmiech, na przykład znalazłem w kodzie zapis i odczyt danych dla dobrze wszystkim znanego urządzenia "C:"... (magnetofon).



...i nowe edytory ;)

Dziś do Waszych rąk trafia znacznie udoskonalona wersja edytora. Początkowo chciałem upublicznić historyczną wersję programu, jednak wspólna praca z kolegą Insertem po GGJ zaowocowała szeregiem usprawnień. Dzięki Insertowi oraz pośrednio GGJ obecna wersja programu jest dość rozbudowana, nie jest to już tak mały i prosty program jak poprzednio.

wersja 1.7 z 2011 roku


Dla wielu twórców chcących tworzyć kolorowe obiekty na ekranie za pomocą sprzętowych duszków, istotne będzie, że program umożliwia edycję kilku wybranych duszków naraz. Nazwałem to trybem scalania duszków. Po włączeniu go funkcje operujące na większej ilości danych graficznych, np. kopiowanie bloku danych, wypełnianie, inwersja itp. będą funkcjonować równocześnie na wybranych duszkach. Bardzo istotne jest, że tryb ten można w każdej chwili przełączać (klawisz K), ustawiać jego parametry (np. klawisze H i J), a operacja undo (klawisz Back Space) również działa, odpowiednio do aktualnego trybu oraz jego parametrów. Operacja ta na razie nie dotyczy grupowego ustawiania pozycji pionowej duszków. W następnych wersjach programu będzie taka możliwość, obecnie należy ręcznie ustawić pozycje, kolory kolejnych duszków, itp. Następnie można je zapisać do pliku (kombinacja Control+S) i odczytać następnym razem (klawisze Control+A).

Poza podstawowymi operacjami na duszkach, mamy możliwość operowania na blokach w obrębie danego duszka, a prawie każda z funkcji może dotyczyć wybranych duszków (scalanie). Istnieje możliwość sprytnego kopiowania danych w tym trybie i bez. Do tego program posiada dwie niezależne opcje undo, w tym jedna podwójna, w odniesieniu nawet do wszystkich duszków (zależnie od wybranego trybu scalania).



Opis funkcji edytora

Niżej będzie używana następująca terminologia PMG (Player/Missile Graphics): gracz - Player, pocisk - Missile, duszek - Player or Missile. Funkcji edytora jest ponad osiemdziesiąt:

  • 1, 2, 3, 4, 5 - wybór duszka do edycji, 1-4 kolejni gracze, a 5 to pociski (jako piąty duszek), po uruchomieniu programu aktywny jest gracz numer 1
  • Shift + 1, 2, 3, 4, 5 - kolory duszków +2 (Shift + 2 zastąpiony jest kombinacją Control+2)
  • Control + Shift + 1, 2, 3, 4, 5 - kolory duszków -2
  • Control + Shift + Q, W, E, R, T - kolory duszków +16
  • spacja – bit
  • strzałki - poruszanie kursorem
  • Shift+Control+ strzałki góra/dół - przesuwanie obszaru edycji (zoomu) o ekran (tak jak w edytorze Action!)
  • Shift + - oraz O - przesunięcie obszaru edycji o 1 linię
  • Shift+ = oraz P - przesunięcie obszaru edycji o 1 linię
    B - dane z bufora, undo dla całego pojedynczego duszka, działa pomiędzy przełączaniem się pomiędzy duszkami. Oznacza to, że dane z całego duszka są zapamiętywane w momencie przełączania się pomiędzy duszkami
  • < - wczytywanie pliku danych (grafika duszków), np. z pliku D:DUSZKI.DAT
  • > - zapisywanie pliku danych
  • Control + A - wczytanie pliku parametrów (zawsze plik: D:EDUCHOW.DAT)
  • Control + S - zapisanie pliku parametrów (zawsze plik: D:EDUCHOW.DAT), zapisywane są ustawione przez użytkownika: pozycje duszków i ich parametry np. kolory oraz początek i koniec zaznaczonego bloku
  • Q, W, E, R, T, Y, U, I - przesuwanie graczy i pocisków +1
  • Shift + Q, W, E, R, T, Y, U, I - przesuwanie graczy i pocisków -1
  • A, S, D, F, G - sprzętowe skalowanie kolejnych duszków (zwiększanie wartości odpowiednich rejestrów)
  • Shift + Control + Delete - kasowanie wszystkich duszków, wymaga potwierdzenia klawiszami: Control+Delete
  • 8 - zaznacza początek bloku dowolnego duszka (góra bloku)
  • 9 - zaznaczamy koniec bloku dowolnego duszka (dół bloku), jeśli wskazany punkt będzie mniejszy od pozycji wskazanej klawiszem 8 - długość bloku wyniesie jedną linię
  • 0 - kopiuje w miejsce kursora zaznaczony blok dowolnego duszka

    Po uruchomieniu programu długość kopiowanego bloku wynosi 16 linii. Jeśli nie wybrano początku klawiszem 8 to początek pochodzi z danych nad strzałami (piąty duszek). Kopiowany blok może nachodzić na obszar celu, itp. Jednak druga taka operacja dotyczy już wcześniej zmodyfikowanej (czyli nie tak jak "wklej ze schowka" w 16-bitowych systemach). Bez trybu scalania duszków (klawisz "K") kopiuje z danego duszka do dowolnego aktualnie edytowanego. W trybie scalania kopiuje z wskazanej wysokości (klawisze 8 i 9) ze wszystkich aktywnych duszków do wszystkich aktywnych.

    Back Space - undo (drugie) dla ostatniej grupowej, np. blokowej, operacji na fragmencie duszka, np. wypełnianie, kopiowanie, także wstawianie z bufora (klawisz "B") itp. Działa przemiennie czyli da się wycofać efekt undo poprzez ponowne naciśnięcie tego klawisza. Undo działa we wszystkich trybach (potrafi podwójnie kopiować wszystkie duszki nawet w całości). To undo jest podwójne, działa na 5 duszkach, w 5*2 trybach.

    Funkcje działające w trybie scalania duszków

  • Z - kasuje jedną linię (pod kursorem)
  • Shift + Z - kasuje albo obszar edycji albo zaznaczony blok (klawisze 8 i 9)
  • Control + Z - kasowanie aktualnego duszka
  • L - wartość losowa w linii kursora
  • Shift + L - wartości losowe albo w obszarze edycji albo w zaznaczonym zakresie
  • Control + L – wstawia wartości losowe na całej powierzchni aktualnego duszka
  • X - wypełnia aktualną linię wartością $FF
  • Shift + X - wypełnia blok lub obszar edycji
  • Control + X - wypełnia całego aktualnego duszka
  • Inverse - negatyw aktualnej linii
  • Shift + Inverse - negatyw w obszarze edycji lub w zaznaczonym bloku
  • Control + Inverse - negatyw całego sprite'a
  • C - odbicie aktualnej linii
  • Shift + C - odbicie obszaru edycji, odbijanie nie działa w trybie scalania duszków. Należy jednak pamiętać, że funkcja undo działa w trybie scalania (o ile jest włączony) i będzie przywracać dane dla wszystkich aktywnych w tym trybie duszków - co może czasami prowadzić do nietypowych rezultatów.

    Scalanie duszków

  • H - zwiększanie numeru duszka, od którego ma się zaczynać scalanie
  • Control + H lub Shift + H - zmniejszanie numeru duszka, od którego ma się zaczynać scalanie
  • J - zwiększanie numeru duszka, na którym ma się kończyć scalanie
  • Control + J lub Shift + J - zmniejszanie numeru duszka, na którym ma się kończyć scalanie
  • K - tryb łączenia-scalania duszków (włączone/wyłączone), undo (klawisz BackSpace) działa na wszystkich duszkach wskazanych w tym trybie
  • Esc - wyjście z programu, wymaga potwierdzenia T (Tak) lub Y (Yes) lub w przeciwnym wypadku należy nacisnąć dowolny klawisz.

    Dodatkowe informacje

    Domyślną nazwą pliku danych (grafika duszków) to D:DUSZKI.DAT. Program do tego pliku NIE zapisuje dodatkowych parametrów duszków jak: pozycje, kolory, skalowania duszków itp. Dane zapisywane są do pliku jako struktura danych układu GTIA czyli pierwszymi danymi będą pociski, następnie kolejni gracze. Dodatkowo pomiędzy danymi duszków jest niewielka przerwa wynikająca z funkcjonowania GTIA. Dzięki tej zgodności, plik wystarczy wczytać we własnym programie w odpowiednie miejsce, aby osiągnąć tą samą grafikę duszków, która jest widoczna w edytorze.

    Edytor nazwy plików - umożliwia wybór nazwy pliku do zapisu/odczytu danych duszków. Aktywne są tylko niezbędne klawisze związane z poprawną nazwą pliku oraz jego edycją. Zatwierdzenie nazwy pliku następuje za każdym razem, jednak klawisze Return i Tab kontynuują zapis lub odczyt pliku o podanej nazwie, natomiast klawisz Esc przerywa operacje czyli do zapisu/odczytu nie dojdzie. Jeśli nazwa pliku zawiera spację to nazwa pliku zostanie przycięta do tej pozycji. Wprowadzona nazwa pliku nie musi się rozpoczynać od "D:".

    Program zapisuje parametry duszków oraz ustawienia programu w pliku D:EDUCHOW.DAT. Pierwsze 5 bajtów to kolory odpowiednio: graczy 1-4 oraz pocisków. Pozycje duszków to 8 następnych bajtów, 5 następnych bajtów to sprzętowe skalowanie duszków, dalsze dane są parametrami edytora. Program nie kasuje zawartości duszków przy uruchomieniu i zakończeniu pracy, dzięki czemu możliwe jest wyjście z programu do DOS-a, a następnie ponowne uruchomienie i kontynuowanie pracy (o ile inny program nie uszkodził roboczego fragmentu pamięci). Obszar, który nie może być uszkodzony w tym czasie przez inny program to $8595-$9800. Uszkodzenie danych bufora (undo) może spowodować uszkodzenie zapamiętanych adresów i dane zostaną przekopiowane do nieprawidłowego adresu - może to zawiesić komputer. Program sprawdza taką ewentualność, jednak nigdy nie wiadomo jakie jeszcze inne dane zostaną uszkodzone.

    Ponowne uruchomienie programu może polegać na jego wczytaniu lub wykonaniu polecenia RUN w DOS-ie. Jeżeli wcześniejszy program umieścił jakieś dane w obszarze $85xx - $9800 to po uruchomieniu edytora duszki mogą być wypełnione śmieciami. Należy wtedy nacisnąć kombinację klawiszy Shift + Control + Delete (kasowanie wszystkich duszków) i potwierdzić klawiszami: Control + Delete.

    Program przed wczytaniem pliku danych duszków, zapamiętuje dane (odpowiednio do aktualnego trybu scalania duszków). Dzięki temu po wczytaniu nowego pliku można osiągnąć opcją undo wcześniejszą grafikę na wybranych duszkach. Wystarczy jedynie przed wczytaniem pliku włączyć tryb scalania duszków, wybrać duszki do zapamiętania, a następnie je odtworzyć po wczytaniu pliku. Z wyłączonym trybem scalania, zapamiętany zostanie jedynie aktualnie edytowany duszek.



    Przykłady

    Po uruchomieniu programu możemy wczytać jeden z przykładowych plików. Naciskamy klawisz „<”, podajemy nazwę pliku: „misiek.dat” lub „bauvan.dat”. Następnie naciskamy Control + A, aby wczytać zapisane ustawienia duszków. Dzięki temu przekonujemy się jaka jest ulubiona broń bauvanów :).

    Program był rozwijany w ostatnich tygodniach, nie miałem jednak czasu na dokładne testowanie, więc może posiadać jakieś błędy. Dlatego apeluję o rozwagę, jeśli ktoś zechce w nim zrobić "Archon III" ;). Oczywiście wszelkie nieprawidłowości proszę zgłaszać do mnie, na przykład na Forum Atarum.

    Obraz dyskietki z edytorem w wersji 1.7 do pobrania w tym miejscu. Następne wersje programu w drodze ;).

    2011-03-27 20:13 by Kaz
    komentarzy: 0
  • nickname
    e-mail / website (opcjonalnie)
    Aktualne tematy
    Jak nazywa się ta gra? (5)
    ostatni: 21-11-2017 22:51, pgru
    Wywiad z Rolandem Pantołą by Vicek (18)
    ostatni: 21-11-2017 21:49, Enjo
    Poszukuję kilka tytułów gier + ty... (10)
    ostatni: 21-11-2017 21:47, Xavier_Velo
    Zamienie C64C na Atari XL/XE/ST... (9)
    ostatni: 21-11-2017 21:46, miki1406
    Atarociekawostki na blogu TDC (30)
    ostatni: 21-11-2017 21:09, tdc
    Silly Venture 2k17 - uniting the ... (144)
    ostatni: 21-11-2017 17:51, greymsb
    Pixel Retro Shop (2)
    ostatni: 21-11-2017 09:55, wataB
    SV2k17 - rejestracja, koszulki i ... (27)
    ostatni: 20-11-2017 21:54, jesionen
    SIO2SD - configurator 3.5 (16)
    ostatni: 20-11-2017 15:09, piomet
    SoundMachine instrukcja (3)
    ostatni: 20-11-2017 03:39, mono
    Sio2SD problem podpięcie dyskietk... (9)
    ostatni: 19-11-2017 22:55, piomet
    [Sprzedam] płytki pod własny cart... (7)
    ostatni: 19-11-2017 18:53, ccwrc
    Dekodowanie sygnału z magnetofonu (1)
    ostatni: 19-11-2017 09:56, gsgalezowski
    Laura Konstruktor (10)
    ostatni: 19-11-2017 06:44, QTZ
    Pomoc jak zwykle potrzebna i przy... (21)
    ostatni: 18-11-2017 21:15, IRATA4

    Kategorie Forum Atarum

    Użytkowników: 1752
    Ostatnio zarejestrowany: vicek
    Postów ostatniej doby: 15

    Społeczność/Community

    Najbliższe imprezy

    Sprzęt/Hardware

    Wynalazki
    Atari i Bluetooth napisał Kaz (17)
    SIO2PC-USB napisał Larek (44)
    Nowe SIO2SD napisał Larek (0)
    SIO2SD w CA12 napisał Urborg (9)
    Ratowanie ATMEL-ów napisał Yoohaas (12)
    Projektowanie cartów napisał Zenon (12)
    Joystick do Atari napisał Larek (54)
    Tygrys Turbo napisał Kaz (7)
    Testowałem "Simple Stereo" napisał Zaxon (3)
    Rozszerzenie 1MB napisał Asal (20)
    Joystick trzyprzyciskowy napisał Sikor (18)
    Moje MyIDE oraz SIO2PC na USB napisał Zaxon (16)
    Jak wykonać płytkę drukowaną? napisał Zaxon (26)
    Rozszerzenie 576kB napisał Asal (13)
    Soczyste kolory napisał scalak (28)
    XEGS Box napisał Zaxon (13)
    Atari w różnych rolach napisał (8)
    SIO2IDE w pudełku napisał Kaz (5)
    Atari steruje tokarką napisał Kaz (14)
    DarkMouse napisał Kaz (7)
    «« nowszestarsze »»