Poczytałem nieco o programowaniu Atari 2600 (całkiem ciekawa zabawka). Obejrzałem nieco screenshotów i znalazłem ten:
Atari 2600

i stąd temat multiplexing duszków...

Szkoda, że nikt się nie podjął napisania automatu do portowania gier z 2600 do XL/XE. Patrząc na opis byłoby to trudne ale możliwe ;-).

Za to ten zrzut z gry dla 2600 podpowiada jak można w łatwy i w miarę mało uciążliwy (dla gracza) sposób zrobić x2 ilość spritów w Atari XE/XL z użyciem miksu interlace + "doublescan".
Na każdej ramce widać wtedy wszystkie duszki tyle, że każdy z duszków byłby pokazywany "połowicznie".

Chyba, że istnieją gry, które ten "patent" podchwyciły i używały?

--
1985? - DA'Fuzz, 1987? - Meritum, 1989? - Atari 130XE, 1992 - PC/AT, 2008 - Atari 130XE + Meritum

2

chyba większość gier korzysta z multiplexingu duszków i to pełnego, nie połowicznego...

___
Press play on tape...

3

maw napisał/a:

chyba większość gier korzysta z multiplexingu duszków i to pełnego, nie połowicznego...

Zaryzykowałbym stwierdzenie, że jednak mniejszość.

MM: Punkt #8 Regulaminu. Zapraszam za tydzień. Naruszenie regulaminu zgłosił Sikor.

http://www.5oft.pl/

4

Ja nawet zaryzykowałbym, że w nieprzekraczalnej granicy 1 procenta :)

Czy możecie wyjaśnić, Stirlitz, dlaczego wasz służbowy adres stirlitz@rsha.gov.de ma aliasa justas@gru.su?
Nie czytam PM. Proszę używać e-mail.

5 Ostatnio edytowany przez maw (2008-06-24 08:56:38)

pirx napisał/a:

Zaryzykowałbym stwierdzenie, że jednak mniejszość.

a to z czego korzysta wyświetlająć > 4 sprite'y naraz na ekranie ? albo 4 dwukolorowe ? chyba nie powiecie mi, że jest jakiś specjalny tryb duszków, który pozwala z nich robić dwukolorowe (nie mówię o interakcji z kolorem tła!) - a jeśli nawet, to dwa kolory == 2bity/1px czyli z duszka 8px zrobił by się duszek 4px, łącząc do uzyskania poprzedniej wielkości z 4ch jednokolorowych, czyli 32 bitów dostępnych, robiło by się 2 dwu(/trzy)kolorowe szerokości 16bitów - mylę się ? No to wtedy skąd wziąć ruchome przeszkadzajki ?

Ok, to doprecyzuję swoje zdanie: "chyba większość gier korzystających z PMG korzysta z  z multiplexingu duszków i to pełnego, nie połowicznego..."

//EDIT: mogą być trzykolorowe, jak nałożymy dwa na siebie, czyli na to samo wychodzi... przy okazji pytanie: czy jest jakiś wzór pozwalający wyliczyć wartość otrzymanego trzeciego koloru ?

___
Press play on tape...

6

Podejrzewam, że zasugerowałeś się duchami programowymi.

Czy możecie wyjaśnić, Stirlitz, dlaczego wasz służbowy adres stirlitz@rsha.gov.de ma aliasa justas@gru.su?
Nie czytam PM. Proszę używać e-mail.

7

maw napisał/a:
pirx napisał/a:

Zaryzykowałbym stwierdzenie, że jednak mniejszość.

a to z czego korzysta wyświetlająć > 4 sprite'y naraz na ekranie ? albo 4 dwukolorowe ?

Rzuć jakimiś tytułami to będzie można odpowiedzieć. O ile się nie mylę to w większości gier animacja zrobiona jest jakoś na znakach, software'owych sprajtach czy w inny podobny sposób.

maw napisał/a:

chyba nie powiecie mi, że jest jakiś specjalny tryb duszków, który pozwala z nich robić dwukolorowe (nie mówię o interakcji z kolorem tła!) - a jeśli nawet, to dwa kolory == 2bity/1px czyli z duszka 8px zrobił by się duszek 4px, łącząc do uzyskania poprzedniej wielkości z 4ch jednokolorowych, czyli 32 bitów dostępnych, robiło by się 2 dwu(/trzy)kolorowe szerokości 16bitów - mylę się ? No to wtedy skąd wziąć ruchome przeszkadzajki ?

Tryby jakie są każdy widzi (: A ruchome przeszkadzajki to zwykle jakieś animacje zrobione na grafice (co nie zmienia faktu, że multiplexxxowanie PMG jest możliwe i są programy, które z tego korzystają, spieramy się tylko, czy jest to "większość gier").

http://www.5oft.pl/

8 Ostatnio edytowany przez Pecus (2008-06-24 10:41:37)

Wydaje mi sie ze chodzilo mu o multiplikacje metada sortowania pionowej pozycji duszkow i powielania ich przez przesuwanie w poziomie na DLI na inna pozycje - bo to stosowane jest bardzo czesto..... tak mi od razu na mysl przychodzi starenka gra Mister Do's Castle, albo Pacman (klasyka w koncu). Zreszta w wielu grach jest to stosowane i objawia sie migotaniem duszkow w chwili gdy przypadkiem znajdzie sie ich za wiele w jednej linii.
I chodzi tu oczywiscie o duszki sprzetowe.

Polecam ktores demo OUR 5OFTu :))) nie pamietam ktore, ale zaraz sobie przypomne, albo Pirx nam przypomni ;)

Moge zaryzykowac nawet sformuowanie: "Wiekszosc starych gier". Animacja na znakach to taki "nowoczesny" wynalazek, kiedys stosowalo sie grafike PMG.

A najlepszy przyklad to ???......... River Raid!!! ")

Bla bla bla bla, bla bla bla. Bla bla bla - bla - bla. Blabla bleee.

9 Ostatnio edytowany przez maw (2008-06-24 10:45:19)

tak, dokładnie, o to mi chodziło i jeżeli nie jest w większości gier to przepraszam wszystkich, których wprowadziłem w błąd - jak widać, 15 lat wyrwane z życia atarowskiego to dużo :)

___
Press play on tape...

10

Ja uwazam, ze nikogo w blad nie wprowadzales. Jest to multiplexing duszkow i juz. Co wiecej, wszyscy juz - w dobie robienia wszystkiego na znakach - zapomnieli jak czesto ta metoda byla stosowana - i sprawdzala sie.

Bla bla bla bla, bla bla bla. Bla bla bla - bla - bla. Blabla bleee.

11

Gwoli wyjaśnienia o co mi chodziło.

2600 ma 2 duszki 1 bajtowe i 1 pocisk 1 bitowy.

Pozycję i wygląd duszków można zmieniać w locie podczas wyświetlania linii.

W zlinkowanym obrazku prawdopodobnie duszki zostały zduplikowane w linii i dodatkowo zduplikowane z użyciem sprytnego "double scana".

O migotanych duszkach wiem i widziałem. Tutaj zaproponowałem duszki migotane połowicznie z użyciem owego "double scana".

Stawiam, że nikt z wypowiadających się nie obejrzał screenshota wlinkowanego do tekstu.

--
1985? - DA'Fuzz, 1987? - Meritum, 1989? - Atari 130XE, 1992 - PC/AT, 2008 - Atari 130XE + Meritum

12

Ja zaryzukuje stwierdzenie, ze o co Tobie chodzi wiesz tylko Ty - co widac w innych dyskusjach....

Stawiac, to sobie mozesz piwo - ja screena widzialem i jak zastosujesz owego Twojego double scana (ze sprytem to on niewiele wspolnego ma), to zobaczysz jak nedznie to bedzie wygladalo.

Bla bla bla bla, bla bla bla. Bla bla bla - bla - bla. Blabla bleee.

13

Pecus - uprzedziles mnie :)
btw. jakie ryzyko jest w tym stwierdzeniu? przeciez ta banda zlodzieji wyroslych na gieldzie nie ma prawa zrozumiec o co chodzi naszemu "mesjaszowi programowania".

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep

14

Na załączonym zrzucie nie widzę żadnego multiplexing'u, gdyż za takowy uważam wyświetlanie zwiększonej ilości obiektów w lini poziomej. Kiedyś - dawno temu - zrobiłem multiplexing na przerwaniu DLI, które zmieniało adres bazowy sprite'ów oraz ich pozycje. Niestety było to niepraktyczne, ponieważ z oczywistych powodów (opóźnienia) nie pozwalało na dowolne pozycjonowanie. Z tego co pamiętam udało się wyświetlić 10 duchów w jednej linii. Być może przy sprytnym manewrowaniu pozycjami oraz przy pewnych założeniach można uzysykać jakiś sensowny wynik. Jeśli komuś na tym zależy to mogę przegrzebać dyski w celu zlokalizowania delikwenta.

Marek Konopka napisał/a:

Niestety było to niepraktyczne, ponieważ z oczywistych powodów (opóźnienia) nie pozwalało na dowolne pozycjonowanie. Z tego co pamiętam udało się wyświetlić 10 duchów w jednej linii.

Niepraktyczne do dynamicznych gier, ale do statycznych obrazkow moze by sie idealnie nadawalo? 10 duszkow w linii pozwalaloby pokryc caly ekran - toz to rewelacja! W czym tkwi haczyk (o ile jakis istnieje?)

Kaz/Rohar
Prowadzę stronę dla obłąkanych: http://atari.online.pl/

16

o ile dobrze pamiętam, to w ilości wolnych cykli na jedną linię...

___
Press play on tape...

17

Kaz napisał/a:

10 duszkow w linii pozwalaloby pokryc caly ekran - toz to rewelacja!

Standardowa liczba PMG w Atari 8bit pozwala na pokrycie całego ekranu. Bez trików i haczyków.

Czy możecie wyjaśnić, Stirlitz, dlaczego wasz służbowy adres stirlitz@rsha.gov.de ma aliasa justas@gru.su?
Nie czytam PM. Proszę używać e-mail.

18 Ostatnio edytowany przez maw (2008-06-24 15:18:49)

tak, w największej szerokości czyli ((8px + 2px) x 4) x 4 = 160px, ale wtedy masz prostokąty szerokości 4px, co znów nie jest takie fajne przy kolorowaniu obrazków...

//EDIT walnąłem się - ma być nie 320, a 160 - P/M G na atariki:

Bit          7  6  5  4  3  2  1  0
Szerokość:   ...nieużywane...  0  0  pojedyncza (8 cykli koloru)
                               0  1  podwójna   (16 cykli koloru)
                               1  0  pojedyncza
                               1  1  poczwórna (32 cykle koloru)

(dzięki Jell)

___
Press play on tape...

19

Przy odpowiednim zaplanowaniu obrazka (użycie szerokiego PMG do kolorowania dużych płaszczyzn, jako "underlay" z priorytetem poniżej tekstu/grafiki) oddaje ten sposób nieocenione przysługi i jest to jedyny plus atarowskiego PMG - nawet C64, które przoduje w sprite w gronie 8bit, tak "nie umi" :)

Czy możecie wyjaśnić, Stirlitz, dlaczego wasz służbowy adres stirlitz@rsha.gov.de ma aliasa justas@gru.su?
Nie czytam PM. Proszę używać e-mail.

20

maw - przelicz raz jeszcze to rownanie...

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep

21

> C64, które przoduje w sprite w gronie 8bit

a CPC i NES ?

http://atari.pl/hsc/ad.php?i=1.

22

Krzysztof (Kaz) Ziembik napisał/a:

Niepraktyczne do dynamicznych gier, ale do statycznych obrazkow moze by sie idealnie nadawalo?

Z tego co pamiętam, program GED dokonuje właśnie multiplexing'u sprite'ów w poziomie. Swego czasu Titus narysował parę rysunków w nim, z naprawdę imponującym efektem. Wystawiał te prace na którejś Ornecie.

Krzysztof (Kaz) Ziembik napisał/a:

10 duszkow w linii pozwalaloby pokryc caly ekran - toz to rewelacja! W czym tkwi haczyk (o ile jakis istnieje?)

Korekta - dokładnie połowę - 10 duszków x 8 pikseli = 80 pikseli (przy założeniu normalnej szerokości ekranu oraz standardowej szerokości sprite'ów).

Problem polegał na tym, że nie wystarczało cykli CPU, aby ustawić sprite'y w szeregu, jeden za drugim. Nie pamiętam dokładnych pomiarów, ale jestem pewny, że nie wystarczało, aby to zrealizować idealnie. Pomiędzy ostatnim duszkiem w pierwszej grupie, a pierwszym w następnej musiała być przerwa. Kod wyglądał tak:

lda #SPRITE0_GROUP0_POS
sta $d000
lda #SPRITE1_GROUP0_POS
sta $d001
lda #SPRITE2_GROUP0_POS
sta $d002
lda #SPRITE3_GROUP0_POS
sta $d003

lda #SPRITE0_GROUP1_POS
sta $d000
...

Nie da się szybciej tego zrealizować.

23

xxl napisał/a:

a CPC i NES?

A CPC miał w ogóle sprzętowe duchy? Co do NES to miałem na myśli komputery, ale faktycznie NES ma spore możliwości jeśli chodzi o sprite - może ich być bodajże 64, ale tylko 8 w linii.

Czy możecie wyjaśnić, Stirlitz, dlaczego wasz służbowy adres stirlitz@rsha.gov.de ma aliasa justas@gru.su?
Nie czytam PM. Proszę używać e-mail.

24

dely napisał/a:

Przy odpowiednim zaplanowaniu obrazka (użycie szerokiego PMG do kolorowania dużych płaszczyzn, jako "underlay" z priorytetem poniżej tekstu/grafiki) oddaje ten sposób nieocenione przysługi i jest to jedyny plus atarowskiego PMG - nawet C64, które przoduje w sprite w gronie 8bit, tak "nie umi" :)

Dely - pamiętaj, że ce64 ma mapę kolorów i nie potrzbuje jej emulować za pomocą sprajtów.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje
dely napisał/a:
Kaz napisał/a:

10 duszkow w linii pozwalaloby pokryc caly ekran - toz to rewelacja!

Standardowa liczba PMG w Atari 8bit pozwala na pokrycie całego ekranu. Bez trików i haczyków.

320 pikseli to nie jest caly ekran Atari. Poza tym, jak ktos Ci juz pisal - jest roznica miedzy pikselami 2x1 a 8x1. Wolalbym miec te pierwsze niz te drugie.

Kaz/Rohar
Prowadzę stronę dla obłąkanych: http://atari.online.pl/