Dodałem kompilację warunkową dla jednego planu, pozbyłem się lsrów dzięki wprowadzeniu oddzielnych masek. Hmm... Panowie, czemu łatwiej jest wam ściągać plik z githuba, niż z forum, bo szczerze powiem żadnej różnicy nie widzę? :P

Post's attachments

btri4p2.zip 6.2 kb, liczba pobrań: 3 (od 2015-03-06) 

Tylko zalogowani mogą pobierać załączniki.

2 Ostatnio edytowany przez Cyprian (2015-03-06 22:24:54)

Osobiście dla mnie to jest ok.
Problem z forum AA jest taki że osoba niezalogowana nie pobierze pliku. Czyli ograniczamy się tutaj do garstki osób z PL.


--edycja--

widzę tylko szary ekran

Lynx I / Mega ST 1 / 7800 / Portfolio / Lynx II / Jaguar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
DDD HDD / AT Speed C16 / TF536 / SDrive / PAK68/3 / Lynx Multi Card / LDW Super 2000 / XCA12 / SkunkBoard / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
http://260ste.atari.org

Dziwne. Trochę zmieniłem includy, więc jeśli wrzuciłeś tylko fillera do katalogu z poprzedniej wersji, to może rzeczywiście coś nie zadziałać. Wrzucę PRG, sprawdź, czy będziesz widział trójkąt.

Post's attachments

BTRI4P2.PRG 10.31 kb, liczba pobrań: 3 (od 2015-03-06) 

Tylko zalogowani mogą pobierać załączniki.
Cyprian napisał/a:

Problem z forum AA jest taki że osoba niezalogowana nie pobierze pliku. Czyli ograniczamy się tutaj do garstki osób z PL.

Rozumiem. Jeśli potwierdzicie, że działa - pomyślę o światowej premierze :P. Gdzie najlepiej wrzucić źródło?

5

Tomasz Wachowiak napisał/a:

Dziwne. Trochę zmieniłem includy, więc jeśli wrzuciłeś tylko fillera do katalogu z poprzedniej wersji, to może rzeczywiście coś nie zadziałać. Wrzucę PRG, sprawdź, czy będziesz widział trójkąt.

Twój PRG działa ok. Devpac kompiluje również ok. PRG z VASMa coś nie działa. Jeszcze to sprawdzę i jakby co to zgłoszę problem do Franka Wille

Lynx I / Mega ST 1 / 7800 / Portfolio / Lynx II / Jaguar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
DDD HDD / AT Speed C16 / TF536 / SDrive / PAK68/3 / Lynx Multi Card / LDW Super 2000 / XCA12 / SkunkBoard / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
http://260ste.atari.org

W programie są dziwne makra i opcje kompilacji warunkowej np. ifgt, być może VASM tego nie rozumie. Pusty ekran możemy otrzymać, jeśli podamy za duży indeks koloru w stosunku do ilości wypełnianych bitplanów.

7

ok mam. VASM nie łapie "IFGT    planes-1=0" i generuje tylko kod "ENTEREXIT"

planes                equ    4

    dc.b    'ENTR'
    IFGT    planes-1=0
        REPT     planes-1
            nop
        ENDR
    ENDC
    
    dc.b    'EXIT'

Wysyłam maila do Franka.

Swoją drogą czy nie powinno to być ""IFGT    planes-1" ?
Devpac łyka Twój kod ale w dokumentacji jest to tak opisane:
"          IFEQ      expression
          IFNE      expression
          IFGT      expression
          IFGE      expression
          IFLT      expression
          IFLE      expression

These  directives will evaluate the expression,  compare  it  with
zero and then turn the conditional assembly on or off depending on
the  result. "

Lynx I / Mega ST 1 / 7800 / Portfolio / Lynx II / Jaguar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
DDD HDD / AT Speed C16 / TF536 / SDrive / PAK68/3 / Lynx Multi Card / LDW Super 2000 / XCA12 / SkunkBoard / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
http://260ste.atari.org

8

Panowie, panowie...
Co chcecie publikować? kod na wypełnienie trójkąta? :)
Nie wiem czy ktoś to doceni :> Ludzie wolą oglądać efekty i gotowe produkcje. Kiedy wypuściłem nieskończone nasze demo
w postaci pojedynczych efektów w PRG (bo tylko to się nam ostało) to świat na pouecie generalnie nas 'zjeb...ł' a nie pochwalił, a to brak muzyki, że nie polinkowane w całość, itd. :>

Atari Falcon 030 14MB+SD16GB; Atari TT 030 4MB ST-RAM, 64 MB TT-RAM; Atari 1040 STFM; Atari 1040 STE 4MB+NetUsbee+UltraSatan; Commodore 64+1541-II+XE1541; Atari 65 XE+CA-2001+Ultimate 1MB+Side2;  P166MMX+GUS.

9

Pouet to inna bajka. Jest to dobre miejsce ale dla kompletnego projektu. Jest tam paru wartościowych koderów 68k (czy to z amigi czy /|\)  ale niestety duży odsetek to durnie typu "jestę demosceno" lub "amigaaahhh".

Myślę że własna strona ze źródłami to dobre rozwiązanie.

ErOS, chodzi o Awaken?

Lynx I / Mega ST 1 / 7800 / Portfolio / Lynx II / Jaguar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
DDD HDD / AT Speed C16 / TF536 / SDrive / PAK68/3 / Lynx Multi Card / LDW Super 2000 / XCA12 / SkunkBoard / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
http://260ste.atari.org

10

Tak, "Awaken".  Początkowo miał być na QP98, potem na EIL99 (pojawiło się tam tylko małe preview poza konkursem) a potem projekt zdechł. W 2001 za zgodą Mayoneza opublikowałem to co się zachowało.

Atari Falcon 030 14MB+SD16GB; Atari TT 030 4MB ST-RAM, 64 MB TT-RAM; Atari 1040 STFM; Atari 1040 STE 4MB+NetUsbee+UltraSatan; Commodore 64+1541-II+XE1541; Atari 65 XE+CA-2001+Ultimate 1MB+Side2;  P166MMX+GUS.
erOS napisał/a:

Panowie, panowie...
Co chcecie publikować? kod na wypełnienie trójkąta? :)
Nie wiem czy ktoś to doceni :> Ludzie wolą oglądać efekty i gotowe produkcje. Kiedy wypuściłem nieskończone nasze demo
w postaci pojedynczych efektów w PRG (bo tylko to się nam ostało) to świat na pouecie generalnie nas 'zjeb...ł' a nie pochwalił, a to brak muzyki, że nie polinkowane w całość, itd. :>

Temat temu chłopacy sugerowali, żeby umieścić kod poza forum, więc się podpytuję... Ogólnie fillera napisałem, żebyście mogli go w swoich przyszłych zajebistych prodkach wykorzystać. :) Ostatnia inkarnacja kodu wygląda na kawał dobrej roboty, więc zachęcam do korzystania. :) Jak znajdę dosyć samozaparcia, to z tej obecnej wykroję jeszcze 10-15%, a to będzie oznaczać, że będziemy mieć jedną najszybszych procedur na STeka.

Cyprian napisał/a:

Swoją drogą czy nie powinno to być ""IFGT    planes-1" ?

Tak, przyrównanie do 0 jest nadmiarowe. :)

13 Ostatnio edytowany przez Cyprian (2015-03-12 00:26:45)

Mam pomysł inną implementację BLiTTERa. Chodzi o wykorzystanie rejestrów Halftone i Line Number.
Zrobiłem już pierwsze testy no i widzę że można dopalić całość jeszcze o kilkanaście procent.


---edycja---

Pierwsza próba.
To jest oryginalny BTRI4P:
http://www.atari.org.pl/forum/misc.php?action=pun_attachment&item=2324

a to z nową implementacją BLiTTERa:
http://www.atari.org.pl/forum/misc.php?action=pun_attachment&item=2323

Jest jeszcze jeden mały błąd w procedurze krótkich linii (czubek trójkąta ma inny kolor). Jutro rzucę na to okiem.

Post's attachments

BTRI4P.png 705 b, nikt jeszcze nie pobierał tego pliku. 

BTRI4P_C.png 715 b, nikt jeszcze nie pobierał tego pliku. 

Tylko zalogowani mogą pobierać załączniki.
Lynx I / Mega ST 1 / 7800 / Portfolio / Lynx II / Jaguar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
DDD HDD / AT Speed C16 / TF536 / SDrive / PAK68/3 / Lynx Multi Card / LDW Super 2000 / XCA12 / SkunkBoard / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
http://260ste.atari.org

14 Ostatnio edytowany przez Tomasz Wachowiak (2015-03-14 21:31:43)

O kurcze. Wygląda świetnie! To jest więcej, niż 10-15% o których myślałem! To rzeczywiście oznaczałoby najszybszą prockę na STeka. Mam nadzieję, że podzielisz się pomysłem.
Edit: Hmm.. Teoretycznie wypełnianie na halftonach powinno być mniej więcej tak samo szybkie, jak zerowanie lub wypełnianie jedynkami. Ciekawe, gdzie tkwi haczyk? :P

15 Ostatnio edytowany przez Cyprian (2015-03-15 12:53:26)

Może jeszcze dziś uda mi się wrzucić kod źródłowy.
Główną ideą było zaoszczędzenie cykli procesora przez usunięcie zbędnych instrukcji (zaskakujące :) ). Tak więc, podzieliłem kod blittera na trzy części - wykonywaną: tylko raz; raz na trójkąt; co każda linia. Najbardziej czasochłonna jest ta ostatnia, gdzie BLiTTER był programowany tymi samymi wartościami dla każdego bitplanu osobno.
Moja optymalizacja to wykonanie tylko jednego blittu dla wszystkich bitplanów. Rejestr yCount zawiera ilość wypełnianych bitplanów a dstYinc wartość ujemną - przesunięcie każdego bitplanu.
Haczyk tkwi w wykorzystaniu rejestrów Halftone, Line Number i OP. Dla wariantu 16sto kolorowego potrzeba 128 bajtów pamięci (16kolorów * 8bajtów), a dostępnych są 32 bajty.

--edycja--
dodałem plik dla wersji 4P. Teraz obsługuje tylko 4 bitplany. W wolnej chwili dorobię wariant dla innej ilość bitplanów.

Post's attachments

BTRI4P_C.zip 9.63 kb, liczba pobrań: 2 (od 2015-03-15) 

Tylko zalogowani mogą pobierać załączniki.
Lynx I / Mega ST 1 / 7800 / Portfolio / Lynx II / Jaguar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
DDD HDD / AT Speed C16 / TF536 / SDrive / PAK68/3 / Lynx Multi Card / LDW Super 2000 / XCA12 / SkunkBoard / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
http://260ste.atari.org

Zachwycające. :D Poważnie. Świetny pomysł. Nie ma to, jak wyciskać ostatnie soki ze słabego sprzętu. Myślę, że dzięki przekonfigurowaniu programu da się jeszcze z 5% uszczknąć. Muszę tylko żonę przekonać, żeby mi trochę czasu na testy dała :P
I będziemy kurdę najlepsi.. :P

17

Tomasz Wachowiak napisał/a:

Zachwycające. :D Poważnie. Świetny pomysł. Nie ma to, jak wyciskać ostatnie soki ze słabego sprzętu.

Dzięki. Wyprodukowałeś naprawdę fajny kod, przy nim optymalizacja BLiTTERa to błahostka :)
Swoją drogą BLiTTER był mocno niedoceniany ale myślę że może on czymś nas zaskoczyć.

Tomasz Wachowiak napisał/a:

Myślę, że dzięki przekonfigurowaniu programu da się jeszcze z 5% uszczknąć.

pewnie tak.
można jeszcze spróbować z rozdzieleniem linii - krótkie CPU; długie BLiTTER.

Tomasz Wachowiak napisał/a:

Muszę tylko żonę przekonać, żeby mi trochę czasu na testy dała :P
I będziemy kurdę najlepsi.. :P

hehe :)

Lynx I / Mega ST 1 / 7800 / Portfolio / Lynx II / Jaguar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
DDD HDD / AT Speed C16 / TF536 / SDrive / PAK68/3 / Lynx Multi Card / LDW Super 2000 / XCA12 / SkunkBoard / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
http://260ste.atari.org
Cyprian napisał/a:

[Dzięki. Wyprodukowałeś naprawdę fajny kod, przy nim optymalizacja BLiTTERa to błahostka :)
Swoją drogą BLiTTER był mocno niedoceniany ale myślę że może on czymś nas zaskoczyć.

Nie bądź taki skromny... :) Te kilkanaście linijek jest przykładem na to, jak myśląc w nieszablonowy sposób można uzyskać świetne rezultaty. Jak dla mnie, to numer jeden od naprawdę długiego czasu.

Cyprian napisał/a:
Tomasz Wachowiak napisał/a:

Myślę, że dzięki przekonfigurowaniu programu da się jeszcze z 5% uszczknąć.

pewnie tak. można jeszcze spróbować z rozdzieleniem linii - krótkie CPU; długie BLiTTER.

Myślę jeszcze o czymś innym :) Tyle, że dużo roboty i muszę cały kod napisać, żeby się przekonać, czy będzie szybciej. A krótkich linii bym nie ruszał, bo kod blittera jest zbyt piękny, żeby go prymitywną motorolą zastępować :P

20

http://s390174849.online.de/ray.tscc.de/gouraud.htm

Myślę, że dało by się zrobić to też na bitplanach

What can be asserted without proof can be dismissed without proof.

21 Ostatnio edytowany przez Tomasz Wachowiak (2015-03-16 10:22:01)

Z bitplanami będzie trudniej (szczególnie z przejściami kolorów na poszczególnych pikselach), ale chyba warto pochylić się i nad tym. Jak zrobimy najlepszego fillera ever :P, to proponuję pomyśleć nad gouraudem. :D Z tego co widzę, to facet na true kolorze jedzie - znacznie łatwiej zapalić punkt w takim trybie, a procka rzeczywiście (oczywiście, jak już wiadomo jak to zrobić :P) jest prościutka. Mam kilka pomysłów, które warto byłoby sprawdzić, ale jak zwykle moim największym wrogiem będzie czas. :)

22

Tomasz Wachowiak napisał/a:

ale jak zwykle moim największym wrogiem będzie czas. :)

Niezłe cuda robicie. Wiem jak to jest z czasem bo sam go na atari prawie nie mam:/ ale skoro masz już super filler i pisałeś coś o swoich mega szybkich prockach do rotacji to do prostego pipeline'u 3d już droga krótka:) Myslałeś by złożyć to do kupy razem? Namawiam i motywuję :)

Maciek
--------
Atari 65XE + Ultimate 1MB + Stereo + SIO2SD | Atari 520STE + 4MB + UltraSatan | Atari Falcon 030 + CT60e + 14MB ST + 256MB TT + 68882  + CF + Netusbee | Amiga 500 + 1MB + Gotek | Amiga 600 + 2MB Chip + 8MB Fast + CF

23 Ostatnio edytowany przez Tomasz Wachowiak (2015-03-16 10:22:36)

Myślałem. :) Jeszcze tylko procka na gourauda jakaś szybka i piękne intro może wyjść. Macie może jakieś fajne obiekty 3d składające się z kilkudziesięciu punktów? Przy dobrych wiatrach w 1-2 ramkach się zmieścimy. :D

24

Tomasz: proszę o poprawienie cytatów w swoich postach. Masz na to 1 dzień.

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.

Szczerze powiem, że nie wiem co jest nie tak z moimi cytatami. :( Chyba nie ma nic złego w cytacie w cytacie? Czy naprawdę musimy być tak bardzo drobiazgowi?