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 11:05
       
      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 12:05
       
      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 12:05 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 12:05
       
      Dzięki Panowie.
      Tylko pewnie ilość znaków z innym kolorem jest ograniczona ilością duszków (czyli 8)?
      • 5: CommentAuthormono
      • CommentTime9 May 2022 12:05 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 12:05 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 13:05
       
      @mono: ładny tryb. Jakiś materiał poznawczy można poprosić?
      • 8: CommentAuthormono
      • CommentTime9 May 2022 13:05
       
      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 13:05
       
      Materiał poznawczy był na zoomie, ale pewnie Mono się podzieli jeszcze raz :)
      • 10: CommentAuthortebe
      • CommentTime9 May 2022 13:05
       
      • 11: CommentAuthormono
      • CommentTime9 May 2022 13:05 zmieniony
       
      test3 i test4 się nie liczą bo to nie hires. Ale test2 piękny.
      • 12:
         
        CommentAuthorsun
      • CommentTime9 May 2022 13:05
       
      @mono: domyślam się, że rysowane, ale foncik ładny.
      Ja mam edytorek 4x8, ale ten ładniejszy, czytelniejszy :)
      • 13:
         
        CommentAuthorCyprian
      • CommentTime9 May 2022 21:05 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 21:05
       
      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 08:05
       
      O dzięki Panowie - teraz mogę kombinować dalej ;)
      • 16: CommentAuthormono
      • CommentTime10 May 2022 12:05
       
      • 17:
         
        CommentAuthorMaW
      • CommentTime10 May 2022 13:05 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: