IMOS

Szukasz drobnej pomocy przy kodowaniu, albo chcesz przedstawić światu swoją gotową lub w trakcie realizacji produkcję? To właściwy dział.
Wiadomość
Autor
Awatar użytkownika
nes
Posty: 509
Rejestracja: 21 maja 2010, 22:03
Grupa: Impact

IMOS

#1 Post autor: nes »

Ktoś tam pytał na party o IMOS'a to napiszę..

http://noname.c64.org/csdb/release/?id=89237

Jest to program na PC. W założeniu lata temu miał to być cały engine do robienia animacji na sprajtach. Miało to tak działać jak muzyka z SID'a, czyli że animacja po stworzeniu miała się składać z uniwersalnego playera i ciągu instrukcji. Ale nie zostało to zrobione. Pierwsza i jedyna próba przekonwertowania faz na sprajty i złożenia z tego czegoś logicznego była w tej produkcji (postać):

http://noname.c64.org/csdb/release/?id=32536

Działa za to konwersja sprajtów. Czyli np. mając 10 faz obracającej się gwiazdki na PC jako bitmapę, można to w 30 sekund przenieść na C64.
Działa też edycja sprajtów dowolnie na siebie ponakładanych. Działa też generator tabel.

Awatar użytkownika
nes
Posty: 509
Rejestracja: 21 maja 2010, 22:03
Grupa: Impact

#2 Post autor: nes »

Zero pytań ? ... :-)

k.

#3 Post autor: k. »

ja mam pytanie dlaczego :http://apt.tyszkiewicz.edu.pl/~nes/imos.html
nie działa?

Awatar użytkownika
nes
Posty: 509
Rejestracja: 21 maja 2010, 22:03
Grupa: Impact

#4 Post autor: nes »

Hmm musiałbym Mayka zapytac..

Przeniosłem tu chwilowo:
http://4x4.x12.pl/imos/imos.html

Awatar użytkownika
nes
Posty: 509
Rejestracja: 21 maja 2010, 22:03
Grupa: Impact

#5 Post autor: nes »

Kilka szybkich trików..

Przykład 1. Założenia: chcemy edytować sprajta o szerokości 8 sprajtów i wysokości 1 spraja, w HiRes
a) odpalamy IMOSa
b) odznaczamy ptaszek przy "show bitmap"
c) najeżdżamy kursorem na jeden z przekreślonych na czerwono przycisków - na ten na którym pojawi się opis "DELETE LAST SPRITE". ale go nie klikamy normalnie, tylko lewym przyciskiem myszy. Pojawi się "DELETE ALL SPRITES" i to naciskamy.
d) naciskamy strzałeczkę z tabliczką, znajdującą się z prawej strony ekranu u góry, opisaną jako "Create Sprite Matrix" (utwórz matrycę sprajtów)
e) w polu ROWS wpisujemy 1 (bo chcemy 1 wiersz), w polu Columns wpisujemy 8 (bo chcemy 8 kolumn). Resztę zostawiamy bez zmian i klikamy OK
f) powinna się pojawić aranżacja 8 sprajtów ułożonych obok siebie.
g) wybieramy jaki docelowo kolor mają mieć sprajty. Załóżmy że wszystkie mają być żółte. W tym celu klikamy kolorowy przycisk po prawej z szachownicą, opisany jako "C64 Colors Table". W wierszu "kolor" wpisujemy wszędzie wartość "7". Pozostałe 2 wiersze pomijamy - dotyczą one multikoloru.
h) zatwierdzamy "Set Colors". po przeniesieniu na C64 sprajty będą zółte i w HiRes
i) Zapisujemy aranżację, czyli klikamy szeroki przycisk "Store Object". Pojawi się pole wyboru. Zaznaczamy że interesuje nas aranżacja (rozmieszczenie), atrybuty (kolory), i puste sprajty (clear sprites)(bo nic nie konwertujemy z żadnego obrazka) - czyli 3 pozycja od góry.
j) klikamy "Store Object"

Przechodzimy do "Objects Editor"

- wybieramy kolor 7 z palety Hi-Res i możemy sobie rysować po 8 sprajtach. tryb rysowania można przełączać na Set/Invert/Clear. Można też korzystać z ZOOM. Można zmienić tło żeby lepiej było widać obszar sprajtów
- w zakładce Object view mamy podgląd aktualnego dzieła. Można wczytać pod spód jakąś bitmapę jeśli to potrzebne.

Przechodząc do zakładki "Object Browser" widać efekty pracy (po kliknięciu Show). Można zobaczyć obiekt, albo jako bank sprajtów. Tak samo można zapisać na dysk sprajty tylko zapełnione, albo cały bank.

Można zapisać sprajty od razu z przykładową wyświetlarką na C64 (uruchamia się ją przez SYS6656), ale wiadomo że jak jest ich więcej niż 8 to się będą grupami wyświetlać. Dodatkowo moża zapisać osobny plik POS+COL który zawiera informacje o pozycjach i kolorach sprajtów. Z tego poziomu powinno się dać zapisać też obiekt jako znaki (FONTS) - ale nie pamiętam czy to w końcu działało.


Dużo pisania ale używanie jest dość schematyczne i jak się rozkmini to się da przyzwyczaić. Najważniejszy jest pomysł na efekt końcowy, bo przekonwertować 4 warstwy sprajtów o wysokości ekranu to nie problem - tylko trzeba sobie obmyśleć jak to potem sensownie użyć/wyświetlić.

Tu jest efekt gryzmolenia w czasie pisania tego tekstu, odpalony pod emu:
Obrazek

To tyle prostego przykładu.
Ostatnio zmieniony 24 wrz 2010, 02:50 przez nes, łącznie zmieniany 2 razy.

Awatar użytkownika
nes
Posty: 509
Rejestracja: 21 maja 2010, 22:03
Grupa: Impact

#6 Post autor: nes »

Przykład 2. Założenia: chcemy edytować sprajta o szerokości 8 sprajtów i wysokości 1 spraja, w MultiColor
a) odpalamy IMOSa
b) odznaczamy ptaszek przy "show bitmap"
c) najeżdżamy kursorem na jeden z przekreślonych na czerwono przycisków - na ten na którym pojawi się opis "DELETE LAST SPRITE". ale go nie klikamy normalnie, tylko lewym przyciskiem myszy. Pojawi się "DELETE ALL SPRITES" i to naciskamy.
d) naciskamy strzałeczkę z tabliczką, znajdującą się z prawej strony ekranu u góry, opisaną jako "Create Sprite Matrix" (utwórz matrycę sprajtów)
e) w polu ROWS wpisujemy 1 (bo chcemy 1 wiersz), w polu Columns wpisujemy 8 (bo chcemy 8 kolumn). Resztę zostawiamy bez zmian i klikamy OK
f) powinna się pojawić aranżacja 8 sprajtów ułożonych obok siebie.
g) wybieramy jakie docelowo kolory mają mieć sprajty. Załóżmy że wszystkie mają być żółto-zielono-czerwone, czyli 7,5,2. W tym celu klikamy kolorowy przycisk po prawej bez szachownicy, opisany jako "SET COLORS". W wierszu "C64 color" wpisujemy kolejno wartości "7", "5", "2" i wybieramy "Switch mode to... MultiColor". Resztę zostawiamy standardowo ustawioną.
h) zatwierdzamy "OK". po przeniesieniu na C64 sprajty będą zółto-zielono-czerwone i w MultiColor
i) Zapisujemy aranżację, czyli klikamy szeroki przycisk "Store Object". Pojawi się pole wyboru. Zaznaczamy że interesuje nas aranżacja (rozmieszczenie), atrybuty (kolory), i puste sprajty (clear sprites)(bo nic nie konwertujemy z żadnego obrazka) - czyli 3 pozycja od góry.
j) klikamy "Store Object"

Przechodzimy do "Objects Editor"

- wybieramy kolor czerwony, żółty lub zielony z palety Multicolor i możemy sobie rysować po 8 sprajtach. tryb rysowania można przełączać na Set/Invert/Clear. Można też korzystać z ZOOM. Można zmienić tło żeby lepiej było widać obszar sprajtów
- w zakładce Object view mamy podgląd aktualnego dzieła. Można wczytać pod spód jakąś bitmapę jeśli to potrzebne.

Przechodząc do zakładki "Object Browser" widać efekty pracy (po kliknięciu Show). Można zobaczyć obiekt, albo jako bank sprajtów. Tak samo można zapisać na dysk sprajty tylko zapełnione, albo cały bank.

Można zapisać sprajty od razu z przykładową wyświetlarką na C64 (uruchamia się ją przez SYS6656), ale wiadomo że jak jest ich więcej niż 8 to się będą grupami wyświetlać. Dodatkowo można zapisać plik POS+COS który zawiera informacje o pozycjach i kolorach sprajtów.

Tu jest efekt gryzmolenia w czasie pisania tego tekstu, odpalony pod emu:
Obrazek

To tyle drugiego prostego przykładu.
Ostatnio zmieniony 24 wrz 2010, 02:51 przez nes, łącznie zmieniany 1 raz.

Awatar użytkownika
nes
Posty: 509
Rejestracja: 21 maja 2010, 22:03
Grupa: Impact

#7 Post autor: nes »

W powyższych dwóch przykładach, chcąc uzyskać inne kształty niż matryca 8x1, po prostu po stworzeniu matrycy na początku przeciąga się sprajty na takie pozycje w jakich mają być. Jak mają być mieszane Hires z Multi to się zmienia dla odpowiednich sprajtów: podświetla sprajta klikając go i klika przyciskiem zmiany trybu Hires/Multi. Kolory można ustawić w tabeli kolorów, dowolne dla dowolnego sprajta.

Awatar użytkownika
nes
Posty: 509
Rejestracja: 21 maja 2010, 22:03
Grupa: Impact

#8 Post autor: nes »

Temat: Generowanie tabel

1) odpalamy IMOSa
2) przechodzimy na zakładkę Table Generator
3) klikamy Draw Function
4) klikamy Generate Table
5) zaznaczamy "animate"

widzimy jak na podstawie wygenerowanej tabeli 8 sprajtów może poruszać się po ekranie C64. Zmieniając "output values" można zawęzić albo rozszerzyć ruch (trzeba ponownie kliknąć Generate Table). Tabelę można nagrać na dysk przez "Save Table". Jeśli nagramy z wyświetlarką, to na emu dostaniemy inny efekt bo wyświetlarka nie jest dopracowana - trzeba sobie samemu napisać najprostszą.

Awatar użytkownika
nes
Posty: 509
Rejestracja: 21 maja 2010, 22:03
Grupa: Impact

#9 Post autor: nes »

kisiel pisze:ja mam pytanie dlaczego :http://apt.tyszkiewicz.edu.pl/~nes/imos.html
nie działa?
zmieniła się domena - jest http://mayk.pl/~nes/imos

Awatar użytkownika
skull
Posty: 760
Rejestracja: 15 wrz 2008, 08:18
Grupa: samar

#10 Post autor: skull »

projekt oczywiście bardzo ciekawy, nie wiem jak teraz ale jak ostatnio coś próbowałem w nim zrobić to się nie udało...
dzięki za instrukcje może tym razem pójdzie lepiej
Bo pecet to zwykły banan...

Awatar użytkownika
nes
Posty: 509
Rejestracja: 21 maja 2010, 22:03
Grupa: Impact

#11 Post autor: nes »

Najprościej by było zrobić video z ekranu i przeklikać parę przykładów ale jeszcze nie odkryłem jakim softem na PC nagrywać ekran.
No i np. w edytorze powinna być możliwość poruszania się kursorami a nie ma, itp. Przerósł mnie trochę ten projekt ale coś tam działa.

comankh
Posty: 1646
Rejestracja: 08 wrz 2009, 12:10
Kontakt:

#12 Post autor: comankh »

nes: win gui - camtasia, dx - fraps.

piszesz jakbys mial grzyba od wczoraj :>

fenek
Posty: 95
Rejestracja: 15 wrz 2008, 20:43
Grupa: Arise

#13 Post autor: fenek »

Kilka lat temu jak składałem Sweet Infection to ten program bardzo przydał
mi się do przeniesienia grafiki w hiresie na kolumny sprajtów, logos
Arise w parcie z wektorówką kolorową.
Była tam bardzo fajna opcja konwertowania jakoś od różnej pozycji Y,
np. kilka kolumn sprajtów, ale każda zaczynała się od innego Y.
To tyle.

Awatar użytkownika
nes
Posty: 509
Rejestracja: 21 maja 2010, 22:03
Grupa: Impact

#14 Post autor: nes »

No bo więcej niż konwertowanie, edytor dowolnie ułożonych sprajtów w dowolnych kolorach i mieszane hires/multi, edytor tabel i konwertowanie fontów z ttf na sprajty nie działa :(

W założeniu miał być player działający podobnie jak playery SIDów, czyli stała procedurka + dane, zawierający:

- ruch po linii z punktu X do Y
- zmianę kształtów sprajta w czasie ruchu (animacja)
- ruchy po tabelach (tabele miały być o różnych długościach)
- przemieszczanie do innej pozycji
- reakcje na kolizje
- do tego proste instrukcje jak pętle kilku-powtórzeniowe, oczekiwanie, reakcje na sygnały z zewnątrz

i parę innych gadżetów.

To miało być w formie prostego języka programowania, a konwerter i edytor miały być jako pomoce.

Pewnie jakby to jako projekt open source zrobić z osobnymi modułami i dokumentacją to by coś z tego było, ale nie wpadłem w jakim języku programowania by to najlepiej napisać, a BCPP nie jest darmowy.
comankh pisze:nes: win gui - camtasia, dx - fraps.

piszesz jakbys mial grzyba od wczoraj :>
mam ale nie używam ;) dzięki za nazwy. a to "dx" przy fraps to co to ?

comankh
Posty: 1646
Rejestracja: 08 wrz 2009, 12:10
Kontakt:

#15 Post autor: comankh »

directx

zyga
Posty: 186
Rejestracja: 05 gru 2008, 08:58
Grupa: Alliance

#16 Post autor: zyga »

nes pisze: Pewnie jakby to jako projekt open source zrobić z osobnymi modułami i dokumentacją to by coś z tego było, ale nie wpadłem w jakim języku programowania by to najlepiej napisać, a BCPP nie jest darmowy.
Sam kompilator (bez IDE) jest darmowy już od dłuższego czasu:
http://edn.embarcadero.com/article/20633

Awatar użytkownika
nes
Posty: 509
Rejestracja: 21 maja 2010, 22:03
Grupa: Impact

#17 Post autor: nes »

no właśnie, a bez ide to taka trochę lipa. wolałbym to od zera pisać jako aktywną bitmapę ;)

Jacek31
Posty: 230
Rejestracja: 02 maja 2009, 21:33

#18 Post autor: Jacek31 »

:D He.. wczoraj byłem na dniach otwartych w elektrowni i tam też był budynek IMOS, i dziś kombinowałem co taki temat robi na scenie C64, ale jaja.
A szóstego dnia Bóg stworzył człowieka ... Aby mógł się napić.

Awatar użytkownika
nes
Posty: 509
Rejestracja: 21 maja 2010, 22:03
Grupa: Impact

#19 Post autor: nes »

:D Reklama dźwignią handlu ;)

Anyway - strasznie mnie wkurzają niedokończone funkcjonalności w IMOSie, ciężko niektóre rzeczy szybko zrobić przez nie.

Awatar użytkownika
skull
Posty: 760
Rejestracja: 15 wrz 2008, 08:18
Grupa: samar

#20 Post autor: skull »

Przydałoby się, żebyś to skończył :)
Nawet jako konwerter bmp -> sprites, to chyba nie ma konkurencji (chyba, że macie coś ciekawego ???).
Właśnie udało mi się przerobić jeden obrazek - fakt że z bólem, ale to głównie przez mało przyjazne/instyktowne opcje - jakbyś nie dał w tym wątku przykładu jak się do tego zabierać to nie wiem czy bym do czegoś sam doszedł.

Od razu pytanie - wielokolorowe obrazki (multicolor), da się jakoś tak poustawiać, żeby kolory multicolor1 i multicolor2 zmieniały się co warstwę sprites ? Tzn w tabelce można ustawić nawet dla każdego sprajta, ale jakoś nie mogę później przełożyć to na wynik (Object browser).
Bo pecet to zwykły banan...

ODPOWIEDZ