atarionline.pl 22 kolory w linii (+1) - Forum Atarum

Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.

  • :
  • :

Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.

    • 1:
       
      CommentAuthorjhusak
    • CommentTime12 May 2021
     
    Cóż, dali 9 kolorów, zostawili miejsce na 7 życzeń :)
    • 2:
       
      CommentAuthorKaz
    • CommentTime12 May 2021
     
    Brawo Mono.

    Mono:

    Dodałem jeszcze możliwość nakładania M01 na P01 i M23 na P23, co pomaga testować nakładanie kolorów przy ustawionym priorytecie 0 i włączonym 5 graczu.

    Z wstępnych obserwacji wychodzi mi że w hiresie też da się uzyskać 23 kolory :) ale inaczej są liczone. Bo COLBAK występuje tylko na ramce, więc zostaje 22. I te 22 to jest tak naprawdę 11 kolorów powstałych z miksowania kolorów PM0, PM1, PM2, PM3, PF2 i PF3 przez GTIA (kolor tła) i 11 kolejnych powstałych z ustawienia luminancji pobranego z rejestru COLPF1 (kolor "atramentu"). W hiresie COLPF0 nigdy nie pojawia się na ekranie (!).
    W załączniku tabelka z możliwymi kombinacjami kolorów (bo jest za szeroka na wuwuwu :]).


    Poproszę jednak o taką grafikę - tutaj szerokość nie ma znaczenia, bo jak ktoś sobie ściągnie plik źrodłowy - to u siebie na ekranie będzie miał dużą rozdzielczość.
    • 3: CommentAuthorRocky
    • CommentTime12 May 2021 zmieniony
     
    Tak na boku bawiąc się w rekordy proponuję 80 kolorów w linii..
    • 4: CommentAuthormono
    • CommentTime12 May 2021 zmieniony
     
    @Rocky: Ale to jest 11 kolorów w hiresie bez sztuczek, przerwań, VBXE i trybów GTIA. A Ty pokazujesz zmiany w rastrze w GR.9... To nie o to chodzi. Nie chodzi o bicie rekordów, bo wiadomo że Atari potrafi 256 kolorów, ale o standartowe możliwości GTIA. Ustawiasz w BASIC-u GPRIOR na $30, kolory i pozycje sprajtów i masz te 11(22) kolorów.
    • 5:
       
      CommentAuthorKaz
    • CommentTime12 May 2021
     
    Rocky - też fajne! Założmy wątek 80 kolorów w linii - opisałbyś tam metodę? :)
    • 6: CommentAuthormono
    • CommentTime12 May 2021 zmieniony
     
    Trywialny przykład w BASIC-u.
    10 G=13*16*256:REM GTIA HARDWARE
    15 S=2*256:REM GTIA SHADOWS
    20 FOR I=8 TO 11:POKE G+I,3:NEXT I:POKE G+12,255:REM SIZEP+SIZEM
    30 POKE S+6*16+15,48:POKE G+16+13,0:REM GTIACTLS+PMCNTL
    40 POKE S+12*16+0,8*16+2:REM COLPMS
    50 POKE S+12*16+1,4*16+4
    60 POKE S+12*16+2,2*16
    70 POKE S+12*16+3,1*16
    75 POKE S+12*16+5,14:REM COLPF1S
    80 POKE S+12*16+6,8:REM COLPF2S
    90 POKE S+12*16+7,4*16+6:REM COLPF3S
    100 FOR I=13 TO 16+1:POKE G+I,255:NEXT I:REM GRAFPM
    150 POKE G+0,16*4:REM HPOSP
    160 POKE G+1,16*5
    170 POKE G+2,16*8
    180 POKE G+3,16*9
    190 POKE G+4,16*7+8:REM HPOSM
    200 POKE G+5,16*8+8
    210 POKE G+6,16*9+8
    220 POKE G+7,16*10+8
    290 ?
    300 ? "11(22) COLORS IN HIRES ON STOCK ATARI"
    310 ? "────────────────────────────────"
    320 ? " P0P0P0P0"
    330 ? " P1P1P1P1"
    340 ? " P2P2P2P2"
    350 ? " P3P3P3P3"
    360 ? "F2 F2 F2 F2 F2 F2"
    370 ? " F3 F3 F3 F3"
    390 ? "────────────────────────────────"
    400 ? "088282C6C64444084628663876185608"
    410 ? "────────────────────────────────"
    420 ? "COLPM0=82"
    430 ? "COLPM1=44"
    440 ? "COLPM2=20"
    450 ? "COLPM3=10"
    460 ? "COLPF0=--"
    470 ? "COLPF1=0E"
    480 ? "COLPF2=08"
    490 ? "COLPF3=46"

    Edit: F3 to jest kolor wzięty z COLPF3 czyli missile połączone w 5 playera.
    Edit 2: Zmieniłem kolorystykę i dodałem zrzuty z PAL i NTSC.
    • 7: CommentAuthorCyprian
    • CommentTime12 May 2021
     
    @mono fajny przykład, dzięki
    • 8:
       
      CommentAuthorDracon
    • CommentTime12 May 2021 zmieniony
     

    Kaz:

    Poproszę jednak o taką grafikę

    Też mnie to ciekawi i chętnie zobaczyłbym jakąś grafikę (całoekranową) korzystającą w praktyce z tego dobrodziejstwa. :)
    • 9:
       
      CommentAuthorKaz
    • CommentTime13 May 2021
     
    Dracon - mnie chodziło o rozpiskę kolorów, którą Mono przygotował w formie pliku txt. Jako grafika jest to czytelniejsze dla mnie niż surowy tekst. Kiedyś taką grafikę zrobił dla innego trybu:
    • 10: CommentAuthormono
    • CommentTime13 May 2021
     
    A w tym przypadku nie ma grafiki tylko program w BASIC-u :)
    Co na jedno wychodzi.
    • 11:
       
      CommentAuthorKaz
    • CommentTime18 May 2021
     
    Trochę tak, ale zdaje się, że niektórzy dalej nie dowierzają, bo czytałem, że te 22 kolory w linii są mityczne :D. Może nie mają interpretera Basica? :P

    Wrzuciłem Twój program na dyskietkę ATR i teraz sam się ładuje i uruchamia, więc jeśli ktoś zechce sam sobie to zobaczyć, a nie poradził sobie z plikiem LST, to teraz ma gotowca.
    • 12:
       
      CommentAuthorshanti77
    • CommentTime18 May 2021
     
    Chodzi tylko o to, że użycie takiej palety w grze będzie bardzo trudne. Nie możemy sobie ich dowolnie wybierać, jak ktoś użyje połowę z nich to już będzie nieźle.
    • 13:
       
      CommentAuthorKaz
    • CommentTime18 May 2021
     
    Oczywiście, że tryb ma ograniczenia, tak jak każde inne rozwiązanie, od trybów interlacowanych po tryby G2F. Do pewnych rzeczy się nada, do innych nie bardzo.

    Wczoraj z Mono wymyśliliśmy, jak można by zaprezentować praktyczne wykorzystanie. Ale wiadomo - pomysł to jedno, a znalezienie czasu na realizację - to zupełnie inna sprawa.

    Fajne jest to, z czego może niektórzy nie zdają sobie sprawy, że to nie jest żaden wymagający programistycznie trick z podkolorowaniem. Te możliwości są dostępne wprost z Atari, nawet z poziomu Basica, prostym programem - jak to pokazał Mono. Moim zdaniem więc warto ten temacik drążyć i popularyzować, bo a nuż ktoś zechce wykorzystać ten sposób we własnych grach. Szczególnie korzystne może być to właśnie w grach prostszych, Basicowych, które nie mogą sobie pozwolić na podkolorowanie innymi sposobami, które byłyby bardzo zasobochłonne albo wymagały wstawek asemblerowych.
    • 14: CommentAuthormono
    • CommentTime26 May 2022 zmieniony
     
    Podobnież trywialny przykład w Atari BASIC-u dla trybu multicolor. Niestety, żeby cokolwiek było widać trzeba było zdefiniować swojego fonta, no i nie bardzo widać niekiedy tekst.
    Tym razem używane są wyłącznie playery - missile są niewykorzystane.
    5 F=PEEK(106)-4:POKE 106,F:GRAPHICS 12:U=256*F:A=256*16*14
    10 G=256*16*13:REM GTIA HARDWARE
    15 S=256*2:REM GTIA SHADOWS
    20 FOR I=8 TO 11:POKE G+I,3:NEXT I:POKE G+12,255:REM SIZEP+SIZEM
    30 POKE S+16*6+15,16*2:POKE G+16*1+13,0:REM GTIACTLS+PMCNTL
    40 POKE S+16*12+0,16*8+12:REM COLPMS
    50 POKE S+16*12+1,16*4+6
    60 POKE S+16*12+2,16*2+2
    70 POKE S+16*12+3,16*1+10
    72 POKE S+16*12+4,16*1+8:REM COLPFS
    75 POKE S+16*12+5,16*2+4
    80 POKE S+16*12+6,16*4+2
    90 POKE S+16*12+7,16*8+4
    100 FOR I=13 TO 16:POKE G+I,252:NEXT I:REM GRAFP
    150 POKE G+0,16*4-4:REM HPOSP
    160 POKE G+1,16*5-8
    170 POKE G+2,16*6+12
    180 POKE G+3,16*7+8
    190 FOR I=4 TO 7:POKE G+I,0:NEXT I:REM HPOSM
    300 ? #6;"22 COLORS IN MULTICOLOR ON STOCK ATARI"
    310 ? #6;"────────────────────────────────"
    320 ? #6;" 0 0 2 2 COLPM"
    330 ? #6;" 1 1 3 3 COLPM"
    340 ? #6;" !";CHR$(34);" !";CHR$(34);" !";CHR$(34);" !";CHR$(34);
    350 ? #6;" #";CHR$(128+35);" #";CHR$(128+35);" #";CHR$(128+35);" #";CHR$(128+35)
    360 ? #6;" 01 01 01 01 23 23 23 23 COLPF"
    370 ? #6;" ───────────────────────"
    380 ? #6;" 1289ACDE456 4826A37B159"
    390 ? #6;" 84CCCEEE6E6 24226AAEAAE"
    400 ? #6;" ───────────────────────"
    410 ? #6;" #";CHR$(128+35);" #";CHR$(128+35);" #";CHR$(128+35);" #";CHR$(128+35);
    420 ? #6;" !";CHR$(34);" !";CHR$(34);" !";CHR$(34);" !";CHR$(34)
    430 ? #6;" 23 23 23 23 01 01 01 01"
    440 ? #6,," COLPM0=8C"
    450 ? #6,," COLPM1=46"
    460 ? #6,," COLPM2=22"
    470 ? #6,," COLPM3=1A"
    480 ? #6,," COLPF0=18"
    490 ? #6,," COLPF1=24"
    500 ? #6,," COLPF2=42"
    510 ? #6,," COLPF3=84"
    600 RESTORE
    610 FOR I=8*(16*0+0) TO 8*(16*0+4)-1:READ B:POKE U+I,B:NEXT I
    620 FOR I=8*(16*1+0) TO 8*(16*1+10)-1:READ B:POKE U+I,B:NEXT I
    630 FOR I=8*(16*1+13) TO 8*(16*1+14)-1:READ B:POKE U+I,B:NEXT I
    640 FOR I=8*(16*5+2) TO 8*(16*5+3)-1:READ B:POKE U+I,B:NEXT I
    650 FOR I=8*(16*2+1) TO 8*(16*2+7)-1:READ B:POKE U+I,B:NEXT I
    660 FOR I=8*(16*2+7) TO 8*(16*3+11)-1:READ B:POKE U+I,B:NEXT I
    670 POKE 756,F
    1000 END
    2000 REM --BLOCKS
    2010 DATA 0,0,0,0,0,0,0,0
    2020 DATA 85,85,85,85,85,85,85,85
    2030 DATA 170,170,170,170,170,170,170,170
    2040 DATA 255,255,255,255,255,255,255,255
    2100 REM --DIGITS
    2110 DATA 0,21,17,17,17,17,21,0
    2120 DATA 0,4,4,4,4,4,4,0
    2130 DATA 0,21,1,21,16,16,21,0
    2140 DATA 0,21,1,21,1,1,21,0
    2150 DATA 0,17,17,17,17,21,1,0
    2160 DATA 0,21,16,21,1,1,21,0
    2170 DATA 0,21,16,21,17,17,21,0
    2180 DATA 0,21,1,1,1,1,1,0
    2190 DATA 0,21,17,21,17,17,21,0
    2200 DATA 0,21,17,17,21,1,21,0
    2250 REM --SPECIAL
    2260 DATA 0,0,21,0,21,0,0,0
    2270 DATA 0,0,0,85,85,0,0,0
    2300 REM --LETTERS
    2310 DATA 0,21,17,17,17,21,17,0
    2320 DATA 0,16,16,21,17,17,21,0
    2330 DATA 0,21,16,16,16,16,21,0
    2340 DATA 0,1,1,21,17,17,21,0
    2350 DATA 0,21,16,21,16,16,21,0
    2360 DATA 0,21,16,16,21,16,16,0
    2370 DATA 0,0,21,17,17,21,1,21
    2380 DATA 0,17,17,21,17,17,17,0
    2390 DATA 0,21,4,4,4,4,21,0
    2400 DATA 0,1,1,1,1,1,17,0
    2410 DATA 0,17,17,20,17,17,17,0
    2420 DATA 0,16,16,16,16,16,21,0
    2430 DATA 0,17,21,21,17,17,17,0
    2440 DATA 0,21,17,17,17,17,17,0
    2450 DATA 0,21,17,17,17,17,21,0
    2460 DATA 0,21,17,17,21,16,16,0
    2470 DATA 0,21,17,17,17,17,21,5
    2480 DATA 0,21,17,17,20,17,17,0
    2490 DATA 0,21,16,21,1,1,21,0
    2500 DATA 0,21,4,4,4,4,4,0
    2510 DATA 0,17,17,17,17,17,21,0
    2520 DATA 0,17,17,17,17,21,4,0
    2530 DATA 0,17,17,17,21,21,17,0
    2540 DATA 0,17,17,4,17,17,17,0
    2550 DATA 0,17,17,17,4,4,4,0
    2560 DATA 0,21,1,4,4,16,21,0

    Edit: Rozbudowałem jeszcze program aby unaocznić priorytety sprajtów. Kładąc sprajty 0 i 1 nie da się użyć kolorów %11 bo mają niższy priorytet. Z kolei przy sprajtach 2 i 3 wszystkie piksele są widoczne.