atarionline.pl Warsztaty Action! - robimy action games;) - 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:
       
      CommentAuthorPecus
    • CommentTime18 Jun 2023
     
    No teraz to ja nie rozumiem.... :)

    Że TeDeC to mem? :P
    • 2:
       
      CommentAuthorpirx
    • CommentTime18 Jun 2023
     
    kur, to miała być wiadomość prywatna, ja tego nie ogarniam :(
    • 3:
       
      CommentAuthormiker
    • CommentTime18 Jun 2023
     
    OK, to kiedy światowa premiera pierwszej dokończonej gry TeDeCa? ;)
    • 4: CommentAuthormav
    • CommentTime18 Jun 2023
     
    Ale czy zrobienie albo nie zrobienie gry daje jakieś "punkty socjalne", przez które można kogoś lubić, albo nie?
    Wobec tego ja tu w ogóle nawet zdania nie powinienem pisać, bo w sumie dorobku 8bitowego nie mam żadnego.
    • 5:
       
      CommentAuthorPecus
    • CommentTime18 Jun 2023 zmieniony
     
    Ale to nie o to chodzi. Ja np. TeDeCa lubię i z radością z nim pokonwersuję.
    Chodzi o jego mentorski ton wobec osób, które nie zatrzymują się w swoim rozwoju jako programista na Action! , które to w dzisiejszych czasach narzędziem jest kiepskim.
    Człowiek, który chce zrobić coś więcej zmienia narzędzie na takie, które go mniej ogranicza, a dla Tomka to wygląda jak osobista zniewaga.... bo on do tego dłutka i młotka jest przywiązany i broni je jak niepodległości.

    Słabe jest to, że robiąc to nie zauważa, że nie ma racji, a jak zauważa to brnie dalej i wszystkie wypowiedzi zwracające uwagę na to, że rzeczywistość jest inna, traktuje jako ataki na niego.

    A kończenie gier.... Cóż to efekt tego, że jak zauważyliście, Tomek często zwraca uwagę innym że może czas by dokończyli swoje gry i coś tym udowodnili. Tyle, że np. ja nie chcę/nie muszę nikomu nic udowadniać (chyba że samemu sobie) tym bardziej w naszymw małym światku.
    Ale dokończyłem! :)
    Tomek. Czas na Ciebie. Dokończ coś.... Cokolwiek!

    P.-S. Pisałem ostatnio szybkiego PLOTa w wersji na C64 i kurde, organizacja pamięci ekranu hires na C64 bardzo to ułatwia :) więc Tomku - nie tylko sprajty mają lepsze.... :) (oczywiście ułatwianie jednego nie oznacza ułatwiania wszystkiego - szybkie wypełnianie gór w Scorchu szybsze i trochę łatwiejsze jest na Atari)
    • 6:
       
      CommentAuthorjhusak
    • CommentTime19 Jun 2023
     
    Ale na Atari można (niemal) tak samo pamięć ekranu zorganizować, jak w C64. To niemal to szczegół, bo i tak adresy początków linii zapamiętuje się w tablicy.
    • 7:
       
      CommentAuthorPecus
    • CommentTime19 Jun 2023 zmieniony
     
    Kuba - tak, ale.. :)
    Oczywiście adresy początków i tu i tu stablicowane.

    I teraz by wyznaczyć bajt w linii na Atari jest tak:
    ; calculate offset in xbyte
    lda xdraw+1
    lsr
    lda xdraw
    ror ;just one bit over 256. Max screenwidth = 512!!!
    lsr
    lsr
    sta xbyte


    a na C64 jest tak:
    ; calculate offset in xbyte
    lda xdraw
    and #%11111000
    sta xbyte


    O.K. w C64 xbyte musi byś dwubajtowe :) ale to nie ma takiego znaczenia w tym przypadku (bo u mnie i tak jest :P z innego powodu).
    I ja wiem, że da się tę pamięć tak samo zorganizować, ale do tego potrzeba "paru" zestawu znaków, trybu tekstowego i DLI. A i tak wyjdzie tylko w trybie wąskim.

    Na moje oko, różnica w szybkości PLOTa (przy takiej ilości PLOTów jak w Scorchu :) ) równoważy nam minimalnie wolniejszy procesor w C64.
    • 8: CommentAuthoradi
    • CommentTime20 Jun 2023
     
    @mav: Słuszna uwaga. Inaczej tylko ci co jakąś grę napisali mieliby prawo wypowiedzi na forum, a i tak musieliby tłumaczyć się, dlaczego tak wolno i taką słabą napisali.
    Uważam, że stworzenie czegokolwiek jest godne pochwały. Nie ma co oczekiwać, że ktoś za darmo siądzie na wiele dziesiątek/setek godzin i stworzy hit porównywalny z River Raidem.
    • 9:
       
      CommentAuthorjhusak
    • CommentTime20 Jun 2023 zmieniony
     
    @Pecus, ok, rozumiem. ale ... :)
    Coś mi nie pasi. W C64 masz 40 chars na linię i nie używasz dziewiątego bitu? A jeśli go chcesz użyć to masz inną prockę dla bitu 0 i inną dla 1?

    Nie rozumię, daj cały plot i tu i tu.

    A ten trik - nie tylko w trybie wąskim, ale zgadza się - ze stratami. Poza tym generatory znaków traktujesz jako pamięć ekranu przecież. W przypadku trybu wąskiego nie masz strat, w przypadku normalnego masz 1 generator na 3 linie i 8 i 64 bajty straty na każde 3 linie.
    • 10:
       
      CommentAuthorPecus
    • CommentTime20 Jun 2023 zmieniony
     
    Kuba, używam 9 bit, ale robi się to łatwiej/szybciej niż się wydawa:

    Plot Atari:
    ; let's calculate coordinates from xdraw and ydraw

    lda xdraw+1
    lsr
    lda xdraw
    ror ;just one bit over 256. Max screenwidth = 512!!!
    lsr
    lsr
    sta xbyte
    ;---
    ldx ydraw
    ldy linetableL,x
    lda linetableH,x
    sta xbyte+1

    ; which bit?
    lda xdraw
    and #%00000111
    tax

    ; make plot
    lda (xbyte),y
    ora bittable,x
    sta (xbyte),y
    rts


    Plot C64:
    ; let's calculate coordinates from xdraw and ydraw

    lda xdraw
    and #%11111000
    sta xbyte
    lda xdraw+1
    ;---
    ldx ydraw
    clc
    adc linetableH,x
    sta xbyte+1
    ldy linetableL,x

    ; which bit?
    lda xdraw
    and #%00000111
    tax

    ; make plot
    lda (xbyte),y
    ora bittable,x
    sta (xbyte),y
    rts


    xdraw (word) i ydraw (byte) to oczywiście współrzędne stawianego piksela. I pominąłem tu wybór koloru (jednego z dwóch, ale jednak to wybór).
    linetableL i linetableH to oczywiście tablice młodszych i starszych bajtów adresów początków kolejnych linii ekranu, a bittable - tablica bitów w bajcie.

    Dla Ciebie Kuba to oczywista oczywistość, ale może będzie czytał ktoś, komu się przyda i cośtam się naumie.

    W sumie jeśli chodzi o szybkość to 6 cykli do przodu na C64, niby niewiele, ale przy tylu powtórzeniach.... A i nie ma rorowania, jak ja nie lubię rorować/rolować :) i kod jakiś taki ładniejszy.
    Trzeba też pamiętać, że kod dla Atari jest mocno zoptymalizowany. Wydawał mi się już wcześniej wyjątkowo dobry :), ale Fox urwał jeszcze parę cykli - dzięki! No ale na C64 też użyłem manewru z rejestrem Y, który oszczędza cykle.

    Odwzorowując taką organizację pamięci na Atari, poza stratą 64 bajtów na każde 3 linie znakowe (przy normalnej szerokości ekranu), musisz mieć także DLI co te 3 linie, a jak masz już jakieś DLI i to nie jedno a do tego cyklowane (by tak samo wyglądało w PAL i NTSC i na A5200) to zaczyna być ciężko. Komu by się chciało.... :)

    Aaaaa.... i jeszcze jedno. W Scorchu PLOT w wersji C64 jest trochę inny (dłuższy), nie ma kombinacji na Y i jest dodawanie dwubajtowe, ale to dlatego, że czasem PLOT jest stawiany tylko po to by zainicjować dane do dalszego wypełniania, i po prostu inne dane są potrzebne na C64 - ale to tak na marginesie, jakby ktoś chciał zaglądać do źródeł na githubie i zobaczył różnicę.
    • 11:
       
      CommentAuthorjhusak
    • CommentTime20 Jun 2023
     
    Dzięki za pouczający post :)
    • 12: CommentAuthorCuzz
    • CommentTime20 Jun 2023
     
    Wychodza nowe gierki a wy sie kłócicie . Jest river raid on mars
    • 13:
       
      CommentAuthorshanti77
    • CommentTime20 Jun 2023
     
    @pecus powiększając tablicę bittable do 256 bajtów można zaoszczędzić dodatkowe 5 cykli w obu wersjach procedury.
    • 14:
       
      CommentAuthorPecus
    • CommentTime20 Jun 2023 zmieniony
     
    @shanti77 masz rację, a najlepiej by nie przekraczała ona granicy stron (z resztą tak samo jak tablice adresów początków linii).

    W naszym przypadku szybkość jest baaardzo ważna, ale pamięć stanowi także ograniczenie, a w tej chwili wolnych bajtów jest coś około 10 :) (32KB ROM w Atari 5200).
    Aaa... i potrzebne są dwie takie tabelki (w końcu mamy dwa kolory :) ).

    Wiem, można procką wygenerować na starcie te tabelki do RAM, ale już nie bardzo mi się chce :) i w sumie nie wiem jak tam z RAMem - chyba też cienko (sprawdziłem - znajdą się jeszcze dwie strony, tylko trzeba pokombinować, żeby tabelki nie przekraczały granicy - w sumie jest około 540b wolnego RAMu - ale nie! - nie dam się przekonać! :P )
    • 15:
       
      CommentAuthorpirx
    • CommentTime20 Jun 2023
     
    oj prosimy :))))))))))))))))))))))
    • 16:
       
      CommentAuthorPecus
    • CommentTime20 Jun 2023 zmieniony
     
    Potrzymaj mi Longa! :)

    Będziesz musiał dłużej trzymać :) po użyciu kolejnej dyrektywy .align MADS zaczął zachowywać się co najmniej dziwnie - i wyrzuca błędy, kompilacji, których nie ma (bo samo przeniesienie tej dyrektywy w inne miejsce naszego bloku zmiennych powoduje inne błędy i ostrzeżenia, które nie mają związku z tą dyrektywą).

    Wygląda mi to na problem z MADSem a nie z naszym kodem.

    Zrobiłbym to bez .align , ale to nie po krasnoludzku!
    • 17: CommentAuthormono
    • CommentTime21 Jun 2023
     
    Taaaaaaaaaa. :)
    • 18:
       
      CommentAuthorPecus
    • CommentTime21 Jun 2023 zmieniony
     
    O.K. Zwracam honor :)

    Przy takiej konstrukcji wyznaczającej adres do ORG (nie ja, to Paweł :) ) jaka jest przed includem ładującym plik z definicjami zmiennych nawet 20to przebiegowy kompilator by się poddał (jakby w tym pliku dostał .align :) ).

    Paweł - oddaj Longa - zrobione! :)
    • 19:
       
      CommentAuthorjhusak
    • CommentTime21 Jun 2023 zmieniony
     
    tabulkę z bitami to bym wypełnił tak:

    ldy #0
    lda #$40
    l asl
    adc #0
    sta bits,y
    dey
    bne l

    w sumie 13 bajtów, a wstawił bym tam, gdzie wiadomo, że y jest zero, wtedy 11 bajtów, bo y jest dalej 0 po zakończeniu procki :)

    Ale @Pecus pewnie tak zrobiłeś, bo to chyba najkrócej :)
    • 20:
       
      CommentAuthorPecus
    • CommentTime21 Jun 2023 zmieniony
     
    A właśnie nie - bo są dwie tabelki jedna w "inverse" i nie chciało mi się myśleć :)
    Ale pewnie poprawię na taki ładny kod, tylko dodam:

    TAX
    EOR #$ff
    STA druga_tabelka,y
    TXA

    P.-S. Bardzo eleganckie rozwiązanie. Moje było o 8b dłuższe (przy dwóch tablicach) i zawierało 8mio bajtową tabliczkę (wliczyłem jej długość do całości :) ).
    • 21: CommentAuthorbob_er
    • CommentTime21 Jun 2023
     
    a to nie prościej rol zamiast asl+adc?
    • 22:
       
      CommentAuthorPecus
    • CommentTime21 Jun 2023
     
    Rol roluje przez 9 bitów (dolicz Carry).
    • 23: CommentAuthorbob_er
    • CommentTime21 Jun 2023
     
    faktycznie :)
    • 24:
       
      CommentAuthorjhusak
    • CommentTime22 Jun 2023
     
    eee, to lepiej bez tax i txa, 2 x eor #$ff
    • 25:
       
      CommentAuthorPecus
    • CommentTime22 Jun 2023
     
    Szybkość nie ma tu znaczenia, długość kodu taka sama.
    A ten z TAX i TXA ładniej mi wygląda.... kwestia gustu :)
    X w czasie inicjowania zmiennych i tablic i tak jest ciągle używany i nie muszę trzymać konkretnej wartości.
    • 26:
       
      CommentAuthorjhusak
    • CommentTime22 Jun 2023
     
    No ale 2x eor#$ff jest o 2 cykle szybsze :)
    • 27:
       
      CommentAuthortdc
    • CommentTime24 Jun 2023 zmieniony
     
    Kto by pomyślał, że wątek warsztatu Action! może doprowadzić do takich analiz :P (i to jeszcze Atari vs Commodore - temat żelazny, nie da się go obejść :P )

    Chyba trzeba ogłosić jakiś konkurs - do ilu absurdalnych rzeczy może doprowadzić wątek programowania w Action!;))
    • 28: CommentAuthorCuzz
    • CommentTime24 Jun 2023
     
    Kochani, wstawiłem nowa czcionkę do atarynki w rom-ie. Chciałem się czegoś upewnić, bo wymieniłem procesor, czy komputer jest sprawny. Zachowuję się jak kiedyś, ale nie ładuję się połowę programów? Co z tym fantem zrobić? Wstawiłem swój ROM, ale komputer dalej nie rusza. Asemblery się nie właczaja. Czego to wina? Zasilacza? Sygnał jest dziwny, sa pewne artefakty
    • 29: CommentAuthorlzd
    • CommentTime24 Jun 2023 zmieniony
     
    Przeliczyłeś na nowo sumę kontrolną ROM-u?

    W. Zientara, "Podstawowe procedury systemu operacyjnego":

    Podczas inicjowania komputera sprawdzana jest poprawność układów pamięci ROM zawierających system operacyjny. Dokonywane jest to przez zsumowanie zawartości wszystkich bajtów pamięci i porównanie otrzymanego wyniku z zapisaną w ROM sumą kontrolną.

    Ponieważ system operacyjny jest zapisany w dwóch oddzielnych blokach pamięci, które posiadają odrębne sumy kontrolne, to sprawdzenie poprawności ROM wykonywane jest przez dwie procedury - CKROM1 i CKROM2.

    Procedura CKROM1 kontroluje pamięć ROM znajdującą się w obszarach $C002-$CFFF, $5000-$57FF i $D800-$DFFF. Obszary $E000-$FFF7 i $FFFA-$FFFF są kontrolowane przez procedurę CKROM2.

    Porównanie podanych obszarów ROM ze wskazanymi na początku książki wykazuje dwie dwubajtowe luki. Są to miejsca umieszczenia sum kontrolnych, które oczywiście nie podlegają sprawdzaniu. Pierwszy blok pamięci ma sumę kontrolną pod adresem $C000 (CHSRO1), a drugi pod $FFF8 (CHSRO2).
    • 30: CommentAuthorCuzz
    • CommentTime24 Jun 2023
     
    padło mi te atari. To był ten 65c816. Chciałem sprawdzić procek ale nie wyszło. Jest nowy zybex III.
    • 31: CommentAuthorCuzz
    • CommentTime24 Jun 2023
     
    Znalazłem podrasowanego FEUD-a. Jest u w bibliotekach Kaza
    • 32:
       
      CommentAuthorPecus
    • CommentTime24 Jun 2023 zmieniony
     

    tdc:

    Kto by pomyślał, że wątek warsztatu Action! może doprowadzić do takich analiz :P (i to jeszcze Atari vs Commodore - temat żelazny, nie da się go obejść :P )


    Jak sam pewnie zauważyłeś, analizy te nie mają zupełnie związku z warsztatami Action!, a wątek się rozjechał po prostu. Ludzie (w tym ja) znaleźli ciekawsze tematy :P
    Co do Atari vs Commodore, to to co napisałem jest w pewnym sensie kontynuacją Twoich "rozważań" nad lepszością :) grafiki PM w Atari i jej przewagą na sprajtami C64. Cóż... zacząłem portować Scorcha na C64 i odkryłem przy tym, że są też inne miejsca w których budowa C64 upraszcza pewne sprawy. Widać że C64 zdecydowanie lepiej nadaje się do programowania gier niż Atari. No sorry, taka prawda i już.

    A dodatkowo Scorchem potwierdzamy to, że Action! (tak jak assembler) nie jest językiem programowania, który pozwala na jakieś cudowne wykorzystywanie możliwości Atari i w ten sposób góruje nad innymi językami. Otóż nie wykorzystuje on tych możliwości wcale.
    Wszystko co dotyczy sprzętu trzeba robić procedurami systemowymi, albo pisać swoje własne. Tak samo można napisać takie na C64 i odpalać dokładnie ten sam kod.
    Zobacz sobie tutaj: ->link<-
    Wszystkie moduły gry, poza tymi z katalogu Atari lub C64, kompilują się bez najmniejszej modyfikacji i na Atari i na C64. Jedyne różnice to procedura inicjowania ekranu graficznego, procedura stawiania piksela, stawiania znaku 8x8 i stawiania znaku 4x4 (co więcej stawianie znaków może być robione plotami - wolniej - a wtedy nawet te dwie ostatnie procedury są identyczne). O.K. - C64 nie ma jeszcze zrobionego interfejsu użytkownika, ale cała gra działa.
    Napisanie programu w Action! z przygotowaniem procedur obsługi sprzętu pod kątem C64 zadziała tak samo. Bo Action! nie ma w sobie nic wyjątkowego.

    tdc:

    Chyba trzeba ogłosić jakiś konkurs - do ilu absurdalnych rzeczy może doprowadzić wątek programowania w Action!;))


    Jeśli uważasz, że nasza dyskusja na temat szybkości czy też zajętości pamięci przez kod asm była absurdalna... no cóż. Popatrz jakie śmieci pojawiają się dalej.

    P.-S. Skńczyłbyś coś :) (teraz mogę to pisać w każdym wątku :P )
    • 33: CommentAuthorCuzz
    • CommentTime26 Jun 2023
     
    No, moje atari przez chwilę działało, potem znowu peryferia zawodza. Wracam do naprawiania.
    • 34: CommentAuthorCuzz
    • CommentTime26 Jun 2023
     
    Komputer działa, ale w peryferiach urywa się sygnał, czasami się właczaja na chwile, dziwne zjawisko. Wzmocnilem napiecie i komputer lepiej reaguje. Dziala PUT w basicu, sprawdzone ale user juz nie. Ogolnie jesli mi nikt nie pomoze, to gdzie mi naprawia te cudo techniki?
    • 35:
       
      CommentAuthorpirx
    • CommentTime26 Jun 2023
     
    jak user nie działa to nic się nie da zrobić :(
    • 36:
       
      CommentAuthorPecus
    • CommentTime27 Jun 2023 zmieniony
     
    Ja bym jeszcze bardziej wzmocnił napięcie. Może user zacznie działać.

    Są znane, opisywane w literaturze, przypadki wznowienia działania usera przy bardzo mocnym napięciu. Co prawda nie działał już wtedy tak dobrze jak przed ta operacja, a nawet zwracał się przeciwko dawkujacym napięcie. No ale nie można odmówić mu działania.
    • 37:
       
      CommentAuthortdc
    • CommentTime16 Jul 2023 zmieniony
     
    Pecuś - wypisujesz w wielu wątkach jakieś nieprawdopodobne farmazony do mnie. Zwracamy ci z Kazem uwagę od lat (ściśle od początku covida), że zachowujesz się wysoce niestosownie. Niestety to powoduje, że twoje zachowania są przeciwne temu, że wyciągnąłeś jakieś wnioski z naszych uwag - a szkoda.

    Z racji tego pokuszę się o ten komentarz, który co prawda powinien być dużo, dużo bardziej ostry - ale tego się doczekasz osobiście. Bo nie trzeba Tobie mówić:

    Pecus:

    Na pewno, ale to nie ten wątek

    ***

    Pecus:

    Ale czego brakuje??? :)

    Pecus:

    O i TeDeC wrócił!

    Dobrze Cię widzieć chłopie.

    Będzie się z kim podroczyć :P

    Pecus:

    Ja np. TeDeCa lubię i z radością z nim pokonwersuję.

    Oczami wyobraźni widzę tę panią przedszkolankę z piekła rodem, która nawtykała ci do głowy takich rzeczy, że jak się kogoś "lubi" to trzeba mu to okazać i "podroczyć" się z nim.

    Następnie wbijała do głów nieletnich, że im bardziej kogoś lubimy, im bardziej cieszymy się na jego widok - tym częściej, głośniej i oczywiście publicznie musimy mu powtarzać, że go bardzo lubimy...
    Pani potwór-oprawca z przedszkola podkreślała, że im głośniej, im częściej, im z większą pasją i radością - tym łatwiej zasłużyć na to abyśmy im byli lubiani i dostrzegani.

    Tak to było?;)

    (to pytanie retoryczne - tak dopiszę, dla pewności...)
    • 38: CommentAuthoradi
    • CommentTime17 Jul 2023
     
    Mężczyzna wychowywany przez ojca = działanie i odpowiedzialność.

    Mężczyzna wychowywany przez mamę = uczucia, kłótnie i inne "babskie" sprawy.
    • 39:
       
      CommentAuthorPecus
    • CommentTime17 Jul 2023 zmieniony
     
    Pozostają jeszcze mężczyźni nie wychowywani w rodzinach dysfunkcyjnych.

    Czyli wychowywani przez oboje rodziców :P
    • 40: CommentAuthoras...
    • CommentTime18 Jul 2023
     
    Tomek, dobrze dziś było na sztabie ;)
    • 41: CommentAuthorsolo/ng
    • CommentTime18 Jul 2023 zmieniony
     
    szkoda strzepic r.
    • 42: CommentAuthoradi
    • CommentTime18 Jul 2023 zmieniony
     
    Solo, przecież Cię przeprosiłem.

    Milczenie złotem.

    p.s.
    Solo usunął, więc i ja puszczam w niepamięć :).
    • 43:
       
      CommentAuthorPecus
    • CommentTime18 Jul 2023 zmieniony
     
    @as... Nie wiem czy nie będzie to uznane za wysoce niestosowne i czy kogoś tym nie obrażamy, ale jeśli chodzi o wczorajszy sztab, to towarzystwo zacne więc sztab udany.

    ...

    Kurcze.. Przeczytałem to zdanie powyżej i już widzę, że poobrażałem dziesiątki osób. Napisałem wprost, że sztab był taki dzięki zacnemu towarzystwu, czyli jeśli ktoś nie był na wczorajszym sztabie, nie jest zacnym towarzystwem. No a jeśli by był to zapewne sztab nie byłby udany (bo to trudne w takim towarzystwie).

    Chyba bana dostanę.
    • 44: CommentAuthoras...
    • CommentTime18 Jul 2023
     
    Tomek, było zacnie.
    • 45:
       
      CommentAuthorjhusak
    • CommentTime18 Jul 2023
     
    Dlaczego nic o tym nie wiedziałem? Byłbym.
    • 46:
       
      CommentAuthormaly_swd
    • CommentTime18 Jul 2023
     
    Jhusak: pewnie nie jesteś zacny
    • 47:
       
      CommentAuthorPecus
    • CommentTime18 Jul 2023
     
    @jhusak Bo to jakieś takie nagłe i nie bardzo planowane chyba. AS dał mi znać w przeddzień wieczorem, a Ciebie brakowało jako jednego z zacnych :)
    • 48:
       
      CommentAuthorjhusak
    • CommentTime18 Jul 2023
     
    Ja po prostu byłem cny.
    • 49:
       
      CommentAuthorPecus
    • CommentTime19 Jul 2023
     
    W przeciwieństwie do tych wszystkich niecnych :)
    A nie cniło Ci się czasem do nas?
    • 50:
       
      CommentAuthorjhusak
    • CommentTime20 Jul 2023
     
    Cniło jakem cnym.