atarionline.pl GR.0 - kolorowe znaki - 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: CommentAuthortatko74
    • CommentTime9 May 2022
     
    Witam i pozdrawiam
    Coś tam knuje sobie w TBXL i nie wiem jak (czy w ogóle się da) uzyskać dodatkowy kolor w tekście.
    Wiem iż ten tryb tego normalnie nie oferuje, ale może jakieś triki ?
    Na pewno da się zmienić kolor całej linii tekstu (pewnie jakimiś kombinacjami w DL, nie próbowałem ale sądzę że się da), ale mi chodzi o możliwość zabarwienia kilku znaków w tekście (przykładowo).
    Tylko wersje "krowie na rowie".
    • 2: CommentAuthorPecet
    • CommentTime9 May 2022
     
    W DLi możesz zmieniać kolory całych linii, a znaki kolorować duszkami (stawiasz duszka w odpowiednim miejscu, ustawiasz przenikanie kolorów duszka i znaku i otrzymujesz nowy kolor).
    • 3: CommentAuthormono
    • CommentTime9 May 2022 zmieniony
     
    Podłóż sprajty :)

    Najlepiej chyba sprawdzi się wyróżnienie tym samym kolorem, ale innym odcieniem, choć niektóre kolory też wyglądają nienajgorzej, n.p.:

    COLPF2S = $0A
    COLPF1S = $00
    COLPMxS = $0E

    ustawi odcienie szarości.
    Ponieważ sprajt zmienia kolor tła, to pisz w inwerse video - wtedy sprajt będzie podbarwiał litery a nie tło.
    Najprościej rozłożyć sobie sprajty statycznie na całej szerokości ekranu n.p.:

    HPOSM3 = $30
    HPOSM2 = $38
    HPOSM1 = $40
    HPOSM0 = $48
    HPOSP0 = $50
    HPOSP1 = $70
    HPOSP2 = $90
    HPOSP3 = $B0
    SIZEPx = %11
    SIZEM = %11111111
    PMCNTL = %11
    GTIACTS = %00000001
    DMACTS = %00101110

    i modyfikować tylko treść sprajtów w pamięci PMG.

    Co trzeba poustawiać:

    COLPF1S ($2C5)
    COLPF2S ($2C6)
    COLPMxS ($2C0-$2C3)
    HPOSPx ($D000-$D003)
    HPOSMx ($D004-$D007)
    SIZEPx ($D008-$D00B)
    SIZEM ($D00C)
    GTIACTS ($26F)
    DMACTS ($22F)
    PMCNTL ($D01D)
    PMBASE ($D407)

    i obszary sprajtów wg tego co ustawione w PMBASE:

    missiles ($180-$1FF)
    player0 ($200-$27F)
    player1 ($280-$2FF)
    player2 ($300-$27F)
    player3 ($380-$3FF)

    Edit: Ustawiona jest rozdzielczość dwuliniowa, żeby nie zajmować zbyt wiele pamięci, ale jeśli będziesz się bawił w DLI, to można wyłączyć DMA dla sprajtów i zapisywać wartości do GRAFPx ($D00D-D010) i GRAFM ($D011) samemu, co oszczędzi Ci kilobajt pamięci.
    • 4: CommentAuthortatko74
    • CommentTime9 May 2022
     
    Dzięki Panowie.
    Tylko pewnie ilość znaków z innym kolorem jest ograniczona ilością duszków (czyli 8)?
    • 5: CommentAuthormono
    • CommentTime9 May 2022 zmieniony
     
    Sprajty są poczwórnej szerokości, więc jeden piksel sprajta podbarwia cały znak. Wszystkie sprajty przykrywają dokładnie ekran o normalnej szerokości. 4 playery wystarczą do ekranu wąskiego, braknie sprajtów dla ekranu szerokiego.

    Edit: Dostajesz taki "atrybut" dla każdego znaku w ten sposób. Coś w ten deseń jak w załączniku
    • 6:
       
      CommentAuthorpirx
    • CommentTime9 May 2022 zmieniony
     
    sprajta możesz rozszerzyć, na maxa podbarwi 8 znaków

    tu masz mój stary programik z tajemnic atari do popróbowania:

    1 POKE 106,PEEK(106)-4:GRAPHICS 0:PMB=PEEK(106):FOR I=PMB*256+384 TO PMB*256+1024:POKE I,170:NEXT I
    2 POKE 54279,PMB
    3 POKE 623,1+16:POKE 53277,3:POKE 53256,3:POKE 53257,3:POKE 53258,3:POKE 53259,3:POKE 53248,112:POKE 53260,255
    4 POKE 53249,48:POKE 53250,80:POKE 53251,144:POKE 53255,176:POKE 53254,184:POKE 53253,192:POKE 53252,200
    5 POKE 559,46:POKE 704,8:POKE 706,6:POKE 707,10:POKE 705,4:POKE 711,12:POKE 710,0:POKE 709,15

    Interesujący sposób wykorzystania grafiki P/M pokazuje program Pawła Kalinowskiego z Pułtuska.
    Równie ciekawy, a może nawet ciekawszy efekt można uzyskać, wpisując w wierszu 2 liczbę 224 lub 204 zamiast PMB.
    • 7:
       
      CommentAuthorsun
    • CommentTime9 May 2022
     
    @mono: ładny tryb. Jakiś materiał poznawczy można poprosić?
    • 8: CommentAuthormono
    • CommentTime9 May 2022
     
    To zwykły tryb graficzny 320x200 z podłożonymi sprajtami i znakami 5x10 rysowanymi programowo więc z prostej kalkulacji wychodzi 64x20. Żadna filozofia :)
    • 9:
       
      CommentAuthorKaz
    • CommentTime9 May 2022
     
    Materiał poznawczy był na zoomie, ale pewnie Mono się podzieli jeszcze raz :)
    • 10: CommentAuthortebe
    • CommentTime9 May 2022
     
    • 11: CommentAuthormono
    • CommentTime9 May 2022 zmieniony
     
    test3 i test4 się nie liczą bo to nie hires. Ale test2 piękny.
    • 12:
       
      CommentAuthorsun
    • CommentTime9 May 2022
     
    @mono: domyślam się, że rysowane, ale foncik ładny.
    Ja mam edytorek 4x8, ale ten ładniejszy, czytelniejszy :)
    • 13: CommentAuthorCyprian
    • CommentTime9 May 2022 zmieniony
     
    Tu inny przykład mieszania Hires z duszkami. Pociski połączone w piątego duszka by uzyskać dodatkową barwę:
    REM DUSZKI OK 3
    0 Z=1024
    1 DIM P$(Z*2)
    2 X=(INT(ADR(P$)/Z)+1)*Z
    3 POKE 54279,X/256:POKE 53277,3:POKE 559,46:POKE 623,1+16
    4 FOR K=0 TO 7:POKE 704+K,K*32+4:NEXT K
    5 FOR K=0 TO 3:POKE 53248+K,48+K*32:POKE 53252+K,176+K*8:NEXT K
    6 FOR K=0 TO 4
    7 POKE 53256+K,255:L=X+K*128+16+384
    8 FOR N=L TO L+88 STEP 8:FOR M=0 TO 3:POKE N+M,170:POKE N+M+4,85:NEXT M:NEXT N
    10 NEXT K: POKE 709,202: POKE 710,148
    RUN
    • 14:
       
      CommentAuthorMaW
    • CommentTime9 May 2022
     
    Szkoda, że nie da się tego użyć przy multiplikowaniu duszków w pionie... fajnie by było mieć 29 kolorów wielokrotnie dla dowolnego znaku w linii...
    • 15: CommentAuthortatko74
    • CommentTime10 May 2022
     
    O dzięki Panowie - teraz mogę kombinować dalej ;)
    • 16: CommentAuthormono
    • CommentTime10 May 2022
     
    • 17:
       
      CommentAuthorMaW
    • CommentTime10 May 2022 zmieniony
     

    Jam napisał:

    Szkoda, że nie da się tego użyć przy multiplikowaniu duszków w pionie... fajnie by było mieć [s]29[/s] 22 kolorów wielokrotnie dla dowolnego znaku w linii...

    podtrzymuję i koryguję do 22... nawet nie musi być 22, wystarczy mi jeden z pięciu użyty w dowolnej kombinacji co jeden znak. :pureevil: