26 Ostatnio edytowany przez grzeniu (2012-12-03 08:45:50)

W archiwum WORMHOLE brakuje bitmapy, którą oczywiście można skopiowac z archiwum TUNNEL ....

Fajne ! Więcej węgla ;)

STYMulator JIL ST YM2149 mjuz:k @ gnu/linux
SIUP (SIo2Usb2Pc) - SIO2PC USB Edition
PIN ready logo
3M / InD: ... na kasetach były zabezpieczenia w postaci tzw. "mikropierdnięcie" ...

27

przykład w Delphi uaktualniony, Tunnel i Wormhole zintegrowane w jeden program, dodane dodatkowe parametry wpływające na kształt

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

28

2D Bump Mapping

http://madteam.atari8.info/index.php?prod=fx#bump

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

29

do plotterow moze jeszcze taki efekt:

http://youtu.be/GeLeyrAHiZg?t=1m50s

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

30

obowiązkowa lektura

http://gamedev.tutsplus.com

sporo ciekawych przykładów dotyczących programowania gier, szczegółowo opisanych, z przykładami w prostym języku m.in. C#

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

31 Ostatnio edytowany przez tebe (2012-12-30 22:55:44)

opisany kolejny efekt, Metaballs

http://madteam.atari8.info/index.php?prod=fx#metaballs

strona uaktualniona o dodatkowy przykład szybkich blobów dających się przenieść na XE/XL, oba przykłady w załączonych archiwum razem ze źródłami w Delphi

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

32

kolejna strona z opisem efektów i przykładami w CPP

http://freespace.virgin.net/hugo.elias/ … x_main.htm

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

33

chyba warto wykopać artykuły z serious'a - np. ten o wypełnianiu z nr 3
http://www.serious-dial.atari.pl/SSerious/S03/menu.html

PunBB bbcode test

34

Water / Rain Drop Effect

http://madteam.atari8.info/index.php?prod=fx#water

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

35

w przerwie kłótni nad xBios-em można zaznajomić się z nowym opisem efektów, tym razem przy wydatnym współudziale Konopa/atariBDSM vel LieblingPejcz/atariBDSM :)

Konop opracował wszystkie obliczenia potrzebne dla uzyskania efektu TWIRL http://madteam.atari8.info/index.php?prod=fx#twirl

dodatkowo opis realizacji fraktali Sierpinskiego http://madteam.atari8.info/index.php?prod=fx#sierpinski

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

36

dodatkowe opisy i przykłady

HORIZONTAL SCROLLING
http://madteam.atari8.info/index.php?prod=fx#hscrol

LENS EFFECT
http://madteam.atari8.info/index.php?prod=fx#lens

po odpowiednim zwiększeniu promienia dostajemy teksturowaną kule

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

37 Ostatnio edytowany przez tebe (2013-03-20 10:52:31)

na stronie http://codebase64.org

pojawił się ciekawy i obszerny opis efektów w wykonaniu zestawu znakowego C64, m.in. Twister

http://codebase64.org/doku.php?id=base: … ng_carpets

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

38

nowy/stary efekt z przykładem w Delphi

X-ROTATOR

http://madteam.atari8.info/index.php?prod=fx#xrot

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

39 Ostatnio edytowany przez tebe (2013-04-09 09:57:31)

kolejna strona, tym razem z mnóstwem artykułów

http://www.flipcode.com/archives/

i rozdziałem poświęconemu efektom z dem

http://www.flipcode.com/archives/The_Ar … ogue.shtml

na dole tej podstrony są odnośniki do kolejnych opisów efektów (m.in. Bitmap Distortion, Bump Mapping, Fractal Zooming, Static Texture Mapping, Roto-Zooming)

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

40

istotne informacje dla programujących

http://bob.allegronetwork.com/prog/tricks.html

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

41

w końcu natrafiłem na opis optymalizacji pętli roto-zoomera z której korzystają najpewniej commodorowcy

http://www.gamedev.pl/forum/super-szybk … -by-madmax

Cytat:

Najbardziej pomysłowa organizacja wewnętrznej pętli, jaka mi przychodzi do głowy w tej chwili wyglądała by mniej więcej tak:

    Kod: do {
        if(((xp|yp)&~0xFFF)==0)
            *dst = src[(xp>>8)|((yp>>8)<<4)]
        dst++;
        xp += dx;
        yp += dy;
    } while(dst<line_end);


Co prawda hardcodowane do bitmap 16x16, ale powinno zasuwać aż miło. :)
*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

42

gut werk,
ja probuje namierzyc formułę na zoomrotatora w 160x200 w jednej ramce, ale komodorowcy milcza

43 Ostatnio edytowany przez tebe (2013-04-09 17:12:47)

ta procka z posta #41 pozwala obliczyć tylko jeden "kwadrat" zoom-rotatora, resztę piksli przepisuje się na tej podstawie dla x-Xofset, y-Yofset

to jest tylko wewnętrzna pętla, reszta jest podobna jak w klasycznej metodzie http://madteam.atari8.info/index.php?prod=fx#rzoom

wg moich domysłów to właśnie ta procka której używają komodorowcy, pozwala to zmniejszyć rozmiar danej klatki animacji, liczymy tylko jej niewielki fragment, resztę na tej podstawie przekopiowujemy

zresztą postaram się zamieścić gotowy przykład

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

44 Ostatnio edytowany przez tebe (2013-04-10 07:15:02)

sprawdzałem ile zajmą dane dla rotozooma 128x128 piksli o 64 klatkach obrotu w wersji bez optymalizacji, zapisanie wszystkich wyliczonych ofsetów X:Y dla tekstury zajmie ~1MB, po spakowanie 7Zip-em zejdzie do 128KB, spakowanie ZIP-em ~290KB

teraz wersja z załącznika dla metody z postu #41 która sprowadza się do wyliczenia jednego "kafelka" obrazu a potem to już "stemplowanie" tym kafelkiem tak aby pokryć cały obraz, dane zajmują bez kompresji 49KB

gdyby zamiast ofsetów do tekstury trzymać już gotową wyliczoną teksturę którą tylko wypełniamy obraz, zajętość pamięci zmniejszy się, szybkość "stemplowania" też wzrośnie jeśli będziemy robić to znakami a nie bajtami

Post's attachments

rotozoom_opty.7z 194.08 kb, liczba pobrań: 10 (od 2013-04-10) 

Tylko zalogowani mogą pobierać załączniki.
*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

45

przygladalem sie TB tym ichnim efektom i zauwazylem jedna rzecz, ze wprawdzie wszystko sie sklada z duzych klockow ale nie sa to bezposrednio kopiowane te same klocki- chodzi mi o to ze inaczej krawedzie wygladaja w roznych klockach choc maja ten sam "kierunek"- inny rozklad pikseli ( trudno mi to inaczej wytlumaczyc )

46

gorgh napisał/a:

ut werk,
ja probuje namierzyc formułę na zoomrotatora w 160x200 w jednej ramce, ale komodorowcy milcza

Mógłbyś podać linka do tego efektu, znaczy dema z tym efektem :)

"tatusiu zobacz, narysowałam tobie takie same coś jak na twojej koszulce" 
https://github.com/willyvmm/mouSTer
jmp $e477

47

willy, juz nie pamietam, ale tutaj komodorowcy zrobili szachownice chyba na tej zasadzie.pzdrrrrr

48

modyfikując pętle renderująca piksle uzyskać możemy roto-zoomowane pionowe pasy, kwadraty, szachownice jeśli zaczniemy przelączać test dla XP <-> YP

test dla kwadracików (dla pionowych pasów zamiast <8 będzie np. =8)

for j=0 to height -1 

for i=0 to width-1
 if (xp >> 8) mod 16 < 8 then plot(i,j) = white

 xp ...
 yp...
next i

 xp..
 yp...

next j
*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

49 Ostatnio edytowany przez willy (2013-04-12 19:49:27)

Pewnie każdy to wie ... ale:

Zegar atari: 1773447Hz (cykli na sekundę)

Zakładam 25 klatek/sek.

zostaje:
70937 cykli na klatkę.

Odświerzanie, dma, muzyka itd ... zaokrąglę to do 64000cykli/ramkę żeby łatwiej było.

160x200(pixeli)=32000 pixeli

Zostaje 2 cykle na pixel.
Zakładając że ekran jest w trybie 2bpp daje to 8 cykli na bajt.
LDA -> ~4 cykle, bardziej realnie 5
STA->  ~4 cykle, bardziej realnie 5

A gdzie reszta ??

Zmniejszając pionową rozdzielczość do 100pixli jest 2x więcej czasu, ale nadal to za mało na obliczenia wg jakiegokolwiek 'wysokopoziomowego' algo pixel by pixel.

Wg mnie to jest niemożliwe.
Chyba że zastosuje się jakieś tricki ... Ta rotująca szachownica z dema oxyronow  jest w rozdzielczości 160*96 i właśnie trickowo jest to zrealizowane. Nie wiem jeszcze jak ale chyba nie chce mi się dłużej nad tym siedzieć.

Edit: nie mógłbym spać gdybym nie popatrzył na to.

napi* pod afresem $b000 są generowane paterny, paternów jest ... całe 16 - 8 bitowych, ale są ułożone w sprytny sposób i w sprytny sposób następnie kopiowane na ekran. Paterny są wykorzystywane do "rysowania" linii przejść pomiędzy kolorami. Reszta jest wypełniana poprostu $00 albo $ff.

Dalej zgaduję bo tego już nie analizowałem.
Gdzieś jest zaszyta tablica co dokąd w jakich odstępach kopiować, ew. jest to na wstępie gdzieś obliczone. Teoretycznie można w ten sposób stwożyć niemal dowolną szachownicę niewielkim nakładem mocy.

W załączeniu nieco obrobiona bitmapa pokazująca paterny. Org miała rozdzielczość 8x4096, ale żeby była bardziej czytelna przeskalowałem na 64x4096.

Smacznego.

Post's attachments

paterny64.pbm 32.03 kb, liczba pobrań: 6 (od 2013-04-12) 

Tylko zalogowani mogą pobierać załączniki.
"tatusiu zobacz, narysowałam tobie takie same coś jak na twojej koszulce" 
https://github.com/willyvmm/mouSTer
jmp $e477

50

udało się rozgryźć tą pętlę, dodałem opis CHESS ZOOMROTATOR-a

http://madteam.atari8.info/index.php?prod=fx#chzoom

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C