atarionline.pl Przypadek The Coders' Guide To The Demoscene - 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: CommentAuthorTrachu
    • CommentTime4 Sep 2024
     
    Założyłem ten wątek ponieważ mam kilka przemyśleń po przeczytaniu komentarzy na temat tego dema na portalach pouet i youtube.

    Na samym początku muszę zaznaczyć, że osobiście uwielbiam to demo, zarówno pod względem programistycznym jak i użytej muzyki Jakuba.
    Koncepcja użycia czarnobiałych "zdjęć" generowanych przez AI jest także świeżym powiewem innowacji.

    Problem polega na tym, że większość komentarzy jest jednak negatywna zarzucająca autorom cheating. Głównym "problemem" tego dema jest objętość, która skłania co po niektórych do oskarżania autorów, że wyświetlają animacje, bo procesor nic nie liczy tylko sczytuje gotowe dane.
    Dodać do tego należy wszechobecną niechęć do obrazków generowanych przez AI i mamy gotowy hejterski koktajl.

    Nie spotkałem się za to z krytyką muzyki, która to choć generalnie się podoba jest głównym winowajcą takiego a nie innego odbioru dema. Otóż poprawcie mnie jeśli się mylę, ale streamowany dźwięk to główna zawartość tych 30Mbajtów danych....

    Reasumując, piszę to dlatego by przestrzec kolejnych twórców dem o bieżących trendach w demoscenie. Moja rada to"
    Jeżeli twoje demo jest duże jak na platformę to będziesz się musiał zmierzyć z zarzutem odtwarzania animacji, dlatego jest bardzo istotne byś w postcreditach wyjaśnił technikalia albo zrobił to w komentarzu na pouet i youtube zaraz na początku by ewentualne oskarżenia zadusić w zarodku. Jeżeli się spóźnisz z wyjaśnieniami i pojawi się kilkanaście komentarzach to w zasadzie jest po ptokach i odpowiednia łatka może zrujnować nawet świetne produkcje.

    Przykro mi to mówić, ale własnie taką świetną ale negatywnie przyjętą produkcją jest własnie to demo...
    • 2:
       
      CommentAuthorPeri Noid
    • CommentTime4 Sep 2024
     
    Właśnie na Zoomie autorzy opowiadają o tym demie. Każda maruda powinna wysłuchać - chociaż pewnie się jej nie zechce.
    • 3: CommentAuthorTrachu
    • CommentTime4 Sep 2024
     
    PEri Noid: wlasnie na pouet i youtube wypowiadaja sie anglojezyczni ktorzy jezyka Polskiego nie znaja. To co oni powiedzieli na Zoomie powinno IMHO znalezc sie w Creditsa dema po angielsku.
    Demo jest swietne ale autorzy skopali PR stad oceny bardzo niesprawiedliwe sa czeste.

    Pisze to by przestrzec kolejnych autorów by takie sytuacje sie nie powtorzyly
    • 4: CommentAuthorjakubp1985
    • CommentTime5 Sep 2024
     
    Ludzie po prostu lubią być wredne
    • 5:
       
      CommentAuthorjhusak
    • CommentTime5 Sep 2024 zmieniony
     
    Muza jest streamowana i zajmuje niecałe 13 MB.

    Ja bym się nie przejmował malkontenctwem. Sami sobie laurkę wystawiają. Demo łamie wszystkie zasady i to niektórych boli (ja też tak mogłem/mogłam) - nie zdają sobie sprawy, że nie, nie mogli w 99%.

    Te efekty są zadziwiające i jak powiedziałem oczarowują widza w pełnym tego słowa znaczeniu (we wszystkich znaczeniach). Czy do prestidigitatora ktoś ma pretensję, że czaruje? Nie. Podobnie jest i tutaj. Czary.
    • 6: CommentAuthorFoster
    • CommentTime6 Sep 2024
     
    Dotsy, plotsy - lubię, mi się podobało demko. Jakaś historia przemycona, super, że są chęci i coś się dzieje. Co do muzy to pierwsza cześć nieznacznie lepsza niż druga z uwagi na brak tego czegoś w brzmieniu/barwach. Trochę jakby one były z pierwszej połowy 2000 roku i tu mam lekki niedosyt skoro to stream, bo muzycznie to wiadomix - bezpiecznie i elegancko. Kibicuję następnej prodce, robić robić ;)
    • 7:
       
      CommentAuthorxorcerer
    • CommentTime7 Sep 2024 zmieniony
     
    ...cytat z rozmowy telefonicznej dzisiaj:
    ja
    "słuchaj no wiesz w środę robiłem prezentację jak tutaj do tego demo robiłem tą grafikę ejajem"
    rozmówca
    "a że ten kosmos na końcu"

    ja
    ....

    rolling on the floor laughing my ass off ale po cichu i w duchu, a następnie zacząłem delikatnie naprowadzać...

    rozmówca
    a no tak ja wiem jak to się dzisiaj robi
    • 8:
       
      CommentAuthorxorcerer
    • CommentTime7 Sep 2024 zmieniony
     
    @Trachu

    PEri Noid: wlasnie na pouet i youtube wypowiadaja sie anglojezyczni ktorzy jezyka Polskiego nie znaja. To co oni powiedzieli na Zoomie powinno IMHO znalezc sie w Creditsa dema po angielsku.
    Demo jest swietne ale autorzy skopali PR stad oceny bardzo niesprawiedliwe sa czeste.

    Pisze to by przestrzec kolejnych autorów by takie sytuacje sie nie powtorzyly


    Jeśli ktoś ma jakąś konstruktywną propozycję, jak sobie radzić z dzikim potokiem hejtu aroganckich ignorantów, to ja chętnie posłucham. Acid chciał zrobić deskryptywny readme.txt czy .md czy cokolwiek, ale nie widzę tego pliku w archiwum które można ściągnąć z pouet.net (a więc zapewne na demozoo jest to samo archiwum).

    Jak można bardziej wyłożyć łopato co kto zrobił jak czym i po co, niż z pomocą genialnego prowadzenia Kaza spotkania online? Chętnie posłucham propozycji.

    ps. dodam, że na pomysł "to napiszemy wszystko w readme" odpisałem "nikt nie czyta readme". Bo nikt nie czyta.
    • 9: CommentAuthordss
    • CommentTime8 Sep 2024
     
    Kilka pytanek od strony technicznej odnośnie rotatora kostki Rubika w tym demku:
    - jak rysowane są linie? z użyciem SW/CPU czy HW (Blitter)?
    - jeśli w SW to jaki algo był wykorzystany? Bresenham?
    - jaki algo linii zasłoniętej użyto?
    - metoda rotacji kostki: to są tylko rysowane pre-kalki czy obliczenia realtime?
    - jeśli realtime to jakie wzorki - zwykły sin i cos na rotację czy inna metoda?
    • 10:
       
      CommentAuthorpirx
    • CommentTime8 Sep 2024
     
    akurat na wszystkie te pytania odpowiedzi bardzo szczegółowe wraz z kodem są w filmie
    • 11:
       
      CommentAuthorKaz
    • CommentTime9 Sep 2024
     
    Potwierdzam!
    • 12: CommentAuthorTrachu
    • CommentTime10 Sep 2024
     
    xorcerer: Zgadzam sie readme malo kto czyta, natomiast dosc efektywnym sposobem ucinania watpliwosci w zarodku jest scroll na koncu dema. Bardzo czesto coderzy sie chwala swoimi osiagnieciami a ze jest to czesc dema, niektorzy to czytaja.
    • 13:
       
      CommentAuthorgreymsb
    • CommentTime10 Sep 2024 zmieniony
     
    Demko jest rewelacyjne. I odpaliło się na starym poczciwym HDD Seagate'a 50MB zainstalowanym w MegaSTE:

    • 14:
       
      CommentAuthorxorcerer
    • CommentTime14 Sep 2024 zmieniony
     
    Dzięki Grey, to jest najbardziej konstruktywna odpowiedź - bardzo dziękuję za wysiłek jaki włożyłeś i za wsparcie które dajesz na każdym kroku. Ty i Kaz tak naprawdę ratujecie twórców na tym rozszalałym oceanie.

    To jest konstruktywne i zgodne z najlepszą zasadą: SHOW, don't tell.

    A co do opowieści, pisania tasiemcowych scrolli i różańców w intencji wybłagania nieistniejącego miłosierdzia w readme.xyz, pozwolę sobie zacytować klasyka:
    • 15:
       
      CommentAuthorKaz
    • CommentTime22 Sep 2024 zmieniony
     
    dss - odpowiedzi na Twoje pytania wlasnie nadeszły na YT:

    ->link<-
    • 16:
       
      CommentAuthorjhusak
    • CommentTime22 Sep 2024
     
    Czy to @Kaz aby dobry linek?
    • 17:
       
      CommentAuthorKaz
    • CommentTime23 Sep 2024
     
    Teraz tak :)
    • 18:
       
      CommentAuthorKaz
    • CommentTime24 Sep 2024
     
    Na prośbę Fox-a, przekopiowałem dyskusję z nowinki:
    ->link<- , zeby łatwiej było komentować, cytować i wstawiać kod.

    immolator @2024-09-22 20:08:45
    Dzięki!

    George @2024-09-23 07:45:24
    Dzięki! Z chęcią obejrzę!

    0xF @2024-09-23 11:10:20
    Coder's pr0n! Nareszcie zrozumiałem, dlaczego to demo ma 30 MB, chociaż wciąż uważam to za kontrowersyjne, co rozwinę na forum. Najfajniejszą rzeczą, której się nauczyłem, jest pętla na RTS, chociaż na 6502 to już nie taki dopał (6 cykli na RTS vs 8 na DEC ZP + BNE). A gotowy kod do rysowania krótkich linii można spokojnie przenieść nie tylko na 6502, ale na dowolną architekturę.

    tebe @2024-09-23 11:54:47
    :) pętla RTS ? w sensie wrzucasz na stos n-adresów początku takiej pętli, uruchamiasz i po każdym RTS skacze na wskazany początek

    taka pętla może wykonywać skoki pod różne adresy, niekoniecznie na początek takiej pętli

    0xF @2024-09-23 12:26:46
    Dokładnie.

    0xF @2024-09-23 13:24:20
    Z minusów trzeba uważać, żeby przerwanie nie zamazało stosu do następnego użycia. Z plusów zysk będzie większy, jeśli pętla jest długa i branch nie sięga.

    mono @2024-09-23 15:40:59
    Przecież przerwanie niczego nie zamazuje, bo adresy są za wskaźnikiem stosu.

    0xF @2024-09-23 15:45:56
    A jak wykonasz tę pętlę drugi raz, co? Przecież zapis na stos przed każdym użyciem się nie opłaca. Robisz LDX count2sp,Y TXS

    Cyprian @2024-09-23 16:59:02
    68k ma dwa stosy - użytkownika USP i superwizora (np. przerwania) SSP. Druga sprawa, jeśli program działa w trybie superwizora i korzysta z SSP to tu też przerwanie nie powinno nic namieszać.
    Przerwanie zrzuca stan/rejestry na stos na wejściu przerwania i przywraca je na wyjściu, czyli z punktu widzenia programu, stos nie został naruszony.

    0xF @2024-09-23 17:47:49
    Zrzuca na stos nie naruszając stosu?

    Cyprian @2024-09-23 18:53:10
    na 68k z punktu widzenia aktualnie wykonywanego programu przerwanie nie narusza stosu, gdyż wyjście z przetrwania przywraca jego pierwotny adres.

    Konop @2024-09-23 18:58:04
    Przerwania musiałyby nie manipulować stosem w ogóle (co może być uciążliwe) lub dysponować swoją ramką w obrębie stosu (osobnym wskaźnikiem stosu). W tym drugim przypadku należałoby zapamiętać gdzieś na boku w pamięci te 3 bajty odkładane przy wywołaniu przerwania, przywrócić zawartość stosu pod tymi lokalizacjami podczas wyjścia oraz wychodzić przez jmp odpowiednio modyfikując rejestr flagowy. To ostatnie stanowi pewne wyzwanie.

    To tylko teoria, bo w praktyce na A8 to niepraktyczne w szczególności, gdy pętla mogłaby kończyć się przez dex/dey bne.

    Trzeba uważać na to, aby przerwanie nie nadpisało stosu również podczas pierwszego wykonania pętli.

    pirx @2024-09-23 19:03:17
    co do kodu do rysowania linii - oczywiście da się zrobić na malucha, nie będzie taki ładny, bo kilka rozkazów na punkt, dodatkowo jednak trochę mało ramu na dane i któtki stos. ale końcepcja zadziała.

    0xF @2024-09-23 21:11:16
    Konop, ciekawa analiza. Odtworzenie flag trzebaby zrobić kilkoma instrukcjami już po przywróceniu wskaźnika stosu TXS i rejestru X.
    Założenie jest oczywiście takie, że w pętli potrzebne nam X i Y do celów innych, niż zliczanie przebiegów pętli.

    O co chodzi w ostatnim zdaniu? Dlaczego pierwsze wykonanie pętli jest szczególne?

    0xF @2024-09-23 21:31:14
    Ciekawe wyzwanie :)
    V
    0 CLV
    1 BIT CONST64
    NZ
    00 CMP #A-1
    01 CMP #A
    10 CMP #A+1
    11 BIT CONST128 ; w pętli zrobiliśmy BIT, bo przecież nie PLP, trzeba obsłużyć razem z V
    C
    0 CLC
    1 SEC
    I - tylko jeśli mamy IRQ
    0 CLI
    D - teoretycznie, bo raczej nie zmieniamy na przerwaniu
    0 CLD
    1 SED


    Konop @2024-09-23 21:35:04
    Rozumiem, że można przyjąć założenie o tym, że to się w praktyce nie zdarzy w przypadku efektów synchronizujących się do VBL, ale w ogólności musimy być pewni, że przerwanie nie zniszczy nam zawartości stosu w trakcie wykonywania pętli na głównym wątku, bez względu na to, czy jest to pierwsze, czy kolejne wywołanie. No i oczywiście to samo dotyczy sytuacji, w której inicjujemy "stos". Tutaj również przerwanie występujące w trakcie tej operacji nie jest mile widziane. Oczywiście należy to synchronizować.

    Konop @2024-09-23 21:46:56
    Pierwotnie sądziłem, że to może być skomplikowane, ale zapamiętanie rejestru flagowego w osobnej komórce pamięci gdzieś na początku przerwania, a później odtworzenie go tuż przed powrotnym skokiem w postaci lda storedFlags pha plp jmp (returnAddressPtr) powinno być wystarczające.

    0xF @2024-09-23 21:55:29
    Albo synchronizujemy się do VBL, albo robimy takie VBL, które sprząta po sobie na stosie (patrz wyżej).
    Z DLI co 8 linii to już za duży narzut.
    Dla inicjalizacji stosu jest jeszcze trzecia opcja: bez przestawiania wskaźnika stosu.

    Ale PHA zamaże stos, a mieliśmy zostawić czysty?

    0xF @2024-09-23 22:00:41
    Prościej będzie zapamiętać na VBL, które trzy bajty stosu popsuliśmy (TSX STX vbl_sp) i przywracać je przed następną pętlą.

    0xF @2024-09-23 22:43:42
    NZ
    00 LSR $D20C
    01 INC $D20C
    10 DEC $D20C


    Da radę przenieść ten offtop na forum?

    Amigowiec @2024-09-24 00:02:22
    Ja pisałem na copperze paski decrunchu w ten sposób... IYKWIM
    • 19:
       
      CommentAuthorKaz
    • CommentTime24 Sep 2024 zmieniony
     
    Pod tym filmem słynny Wacek z grupy Arise ze sceny Commodore 64 zapytuje:

    Wacek:

    Pozdrawiam zaprzyjażnioną scenę Atari :) ale mam takie pytanie, czy efekt kostki był inspirowany podobny efektem (opartym zresztą na tej samej technologii) w "Add Astra" Arise + Joker na ZX? Bo zbieżność technologiczna i wizualna jest uderzająca. Pytam zupełnie bez negatywnych wibracji - sami w ostatnim demie zrobiliśmy efekt jako "tribute" dla Numen ;-)




    I jeszcze do kompletu w tym wątku dorzućmy film z dyskusją nad dwoma efektami oraz samym demem.



    • 20:
       
      CommentAuthorjhusak
    • CommentTime24 Sep 2024 zmieniony
     
    W sumie w tych efektach nie wykonywały się żadne przerwania (brak pewności co do tego), wszystko niemal "racing the beam". Da się i jest całkiem skuteczne. Ma się w pełni kontrolę gdzie na obrazie jest procek.

    W movplay np. to jest kluczowe dla dźwięku, żeby nie było nic losowego (moment wywołania przerwania, który też _podejrzewam_ można przymusić do wpadania w określony co do cykla moment, ale to dodaje jedną zmienną do ogrnięcia) - każda próbka musi być odtwarzana co identyczną ilość cykli (104), żeby nie wprowadzać przesunięć fazy, które są bardzo dobrze słyszalne i nieprzyjemne, bo ucho wykrywa małe przesunięcia w fazie znaaacznie lepiej, niż w głośności czy częstotliwości (jest to związane z przestrzenną lokalizacją dźwięku po różnicy w fazie L-P, jeśli odchylenia są niewielkie, oraz śledzeniem jego ruchu po zmianach fazy przy współpracy obu uszu.)

    W oryginalnym movplay (zanim go poprawiłem) były przesunięcia o 2-3 cykle i wszyscy pamiętamy, jak to gwizdało.

    Głośność i opóźnienie (też różnica w fazie, ale i w cyklach) to dwa pozostałe mechanizmy wykrywania położenia źródła dźwięku) ale te tu nie są przedmiotem rozważań.

    Podobnie, tutaj w demie, jak wziąłem poprawkę na przesunięcia czasów odtwarzania próbek w lewym i prawym kanale (taki interlace podobnie jak w TV), to muzyka nabrała czystości i wyrazistości, mimo tych 12.5 kHz w sumie. To była słyszalna różnica na tyle, że w ślepej próbie - 100% trafień, co jest gorsze, a co lepsze. Tak jak mp3 96 kB i 128 kB.
    • 21:
       
      CommentAuthorjhusak
    • CommentTime24 Sep 2024
     
    @Kaz, nie przeniosłeś całości dyskusji, ostatnie 3 posty Konopa - nie ma.
    • 22: CommentAuthor0xF
    • CommentTime24 Sep 2024
     
    Już jest wszystko w ->link<-
    • 23:
       
      CommentAuthorKaz
    • CommentTime24 Sep 2024
     
    Kuba, nie da się przenieść postów, których jeszcze nie było:)
    • 24:
       
      CommentAuthorjhusak
    • CommentTime24 Sep 2024
     
    Da się na 2 razy :)
    • 25:
       
      CommentAuthorKaz
    • CommentTime24 Sep 2024 zmieniony
     
    Odnośnie pytania Wacka (C64)o inspiracje, odpisał Piotr (Amiga):

    Nie. Add Astra jest super produkcja, którą podziwialiśmy w jeden z weekendów pracując nad efektami do "Coders Guide". Sama animacje kostki przygotowaliśmy na początku 2023 lub nawet w 2022 w ramach prototypów jeszcze na A500. Bo początkowo demo miało być na A500. Piwot w stronę atari ST nastąpił około listopada 2023. Bezpośrednia inspiracja do metody rysowania linii segmentami na atari ST był : ->link<- . Z tym, że chodzi tylko o idee, bo sama implementacja daleko odbiega od tej opisanej pod ww linkiem i jest dostosowana do Full Screen'a.