atarionline.pl Emulacja POKEY'a w przeglądarce - 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:
       
      CommentAuthorbocianu
    • CommentTime6 Mar 2021
     
    bład nie wyskakuje, bo nie sprawdzam czy plik jest dobry :) na szybko składałem, czy w ogole zadziała.
    @mav: czy jest type R można podejrzeć wewnątrz pliku. one mają tekstowe nagłówki i jest tam typ podany.

    @Dracon: mrk pisał, że volume-only mode jeszcze nie ma, wiec sample nie chodzą (mam nadzieje, że na razie ;))
    • 2: CommentAuthortebe
    • CommentTime6 Mar 2021
     
    ten SAP type R to nie jest przypadkiem zapis 9 wartości dla rejestrów POKEY-a
    • 3:
       
      CommentAuthorbocianu
    • CommentTime6 Mar 2021
     
    Tak, to właśnie ten.
    Surowy strumień danych do rejestrów.
    Dlatego tak łatwo i szybko się dało napisać player :)
    • 4: CommentAuthormrk
    • CommentTime6 Mar 2021
     
    @jhusak
    Zrobiłem eksperyment w atari800 ustawiając te rejestry: ->link<- jak zasugerowałeś, co daje stuknięcie co 4 sekundy. I faktycznie zmiana częstotliwości na wysoką działa dopiero po skończeniu bieżącej połówki okresu :) czyli brak jest natychmiastowego resetu tych liczników (i okazuje się że moja implementacja jest poprawna). Dzięki za pomoc.

    @bocianu volume-only mode oczywiście będzie, muszę tylko wcześniej zmienić nieco protokół i dodać timestamp (i pozwolić pewnie też przesyłać na raz większe strumienie rejestrów, trzeba przemyśleć jak to ma wyglądać).

    SAP type R bardzo mi się podoba, na pewno dodam opcję zrzucania audio w ten sposób w
    emulatorze.
    • 5: CommentAuthorilmenit
    • CommentTime7 Mar 2021
     
    @mrk - nie odnośnie Pokeya, ale grafiki - jaką paletę używasz? Podstawową z emulatora Atari800? Co byś powiedział na użycie innej jako podstawowej, np. tej z Altirra?
    • 6:
       
      CommentAuthorKaz
    • CommentTime7 Mar 2021
     
    Ilmenit - to tak z ciekawości, chociaż to poboczna dyskusja - dlaczego uważasz paletę z Altirry za lepszą od innych?
    • 7: CommentAuthorilmenit
    • CommentTime7 Mar 2021
     
    nie uważam za najlepszą, ale lepszą od tej z Atari800 ;)
    O ile pamiętam to ta z Altirry jest oparta na tym jak teoretycznie powinna wyglądać, ponieważ jest generowana według algorytmu ze schematów sprzętu.
    Dyskusji o "najlepszej" palecie było wiele i wszystkich się nie zadowoli. Nawet każdy grafik ma swoje preferencje (g2f, laoo, olivierpal, real, jakub).
    • 8:
       
      CommentAuthorKaz
    • CommentTime7 Mar 2021
     
    Tak, to prawda, że są różne upodobania. PS. OliverPAL i OliverNTSC też są generowane algorytmem, a wyszły zupełnie inaczej niż w AltirraPAL i AltirraNTSC :)
    • 9: CommentAuthormrk
    • CommentTime7 Mar 2021
     
    @ilmenit @Kaz na razie jest do domyślna paleta z atari800. (mogę łatwo przełączyć na dowolną inną paletę w formacie act, docelowo będzie się dało na pewno ustawić swoją)
    • 10:
       
      CommentAuthorKaz
    • CommentTime7 Mar 2021
     
    I to jest bardzo dobre rozwiązanie. Zawsze namawiam do tego, by była możliwość załadowania palety, bo tak jak napisał Ilmenit - są różne gusta i przyzwyczajenia wśród grafików, graczy, użytkowników.
    • 11: CommentAuthormrk
    • CommentTime11 Mar 2021 zmieniony
     
    Wracając do tematu wątku.

    Zainspirowany przez POC'a @bocianu zmodyfikowałem nieco jego player SAP type R:
    * poprawne rozpoznawanie typu (odmówi odtwarzania typów innych niż R zamiast odtwarzać sieczkę)
    * poprawna obsługa prędkości odtwarzania (z wyjątkiem niskich wartości FASTPLAY, na razie maksymalna prędkość odtwarzania to ok 4 / ramkę)
    * kontrolki do sterowania odtwarzaniem (play / pause / stop / ramka do tyłu / ramka do przodu + seek bar)
    * drag & drop rozszerzony na url'e (nie trzeba ściągać pliku lokalnie, można przeciągnąć po prostu URL do odtwarzacza)
    * możliwość przekazania URL'a do odtwarzania w URL'u do playera - w poniższych przykładach odtwarzane są załączniki z tego post'a :)

    Przykłady:

    Fred: ->link<-
    Lasermania#1: ->link<-
    Zybex: ->link<-

    W powyższych przykładach Fred został zrzucony za pomocą Altirry, dwa kolejne SAP'y za pomocą "GoodEnough Emulator"
    • 12: CommentAuthorbruno_j
    • CommentTime11 Mar 2021
     
    Na PC w Vivaldi działa super. Na tablecie z Adroidem 10, też pod Vivaldi, działa chimerycznie, gubi dźwięki i co najważniejsze nie trzyma tempa i strasznie szarpie, ale ogólnie to raczej zwalnia.
    • 13: CommentAuthormrk
    • CommentTime11 Mar 2021
     
    @bruno_j - jeżeli nie trzyma templa i zwalnia, to prawdopodobnie CPU nie wyrabia (POKEY jest taktowany zegarem 1.7Mhz i na koniec trzeba całość przesamplować do 48kHz aplikując wcześniej filtr dolnoprzepustowy i to jest najbardziej zasobożerna na razie część, na pewno uda się to jakoś docelowo zoptymalizować)
    • 14: CommentAuthorbruno_j
    • CommentTime11 Mar 2021
     
    Co prawda procek w tablecie to skromny MediaTek MT8768 2.00 GHz 4 rdzenie, ale z pokeyem to chyba sobie powinien poradzić.
    • 15: CommentAuthorpirx
    • CommentTime11 Mar 2021
     
    wspaniała rzecz, dzięmkujemy!
    (raporcik - u mnie na wypasionym linuchu i7, 32GiB RAM, itp tnie na chromium, oprze i firefloxie, więcej browserów nie mam. widzę, że pulseaudio ciumka procka. fyi - cały emulgator działa szybciutko, więc może gdzieś trzeba jakiś sleep wrzucić czy coś)
    • 16:
       
      CommentAuthorbocianu
    • CommentTime11 Mar 2021
     
    serio Wam tnie? Ja mam jakiegoś starutkiego xeona co ma 8 lat i chodzi jak złoto :D

    Btw, dzięki za poprawienie mojego playera, a w zasadzie napisanie od nowa ;)
    • 17: CommentAuthorbruno_j
    • CommentTime11 Mar 2021 zmieniony
     
    @bocianu
    Android 10 MediaTek MT8768 2.00 GHz 4 rdzenie - tnie się
    Win 10 Core 2 Duo 2,16 GHz 2 wątki - tnie się, procek popyla na 100%
    Win 10 i5 4 rdzenie 8 wątków 4GHz(boost) - nie tnie się, procek zajęty w 20-30%

    Przeglądarka to najnowsze Vivaldi
    • 18: CommentAuthormrk
    • CommentTime11 Mar 2021 zmieniony
     
    @bruno_j @pirx - U mnie na dwóch desktopach chodzi ładnie (linux z Intel i7@2.8 GHz oraz Win10 z Intel i5), zarówno chrome jak i firefox (pod win także Edge). Coś jest nie tak natomiast na telefonie OnePlus6 (z dość mocnym procesorem SnapDragon 845@2.8Ghz) - odtwarzając czysty prostokąt słyszę regularne szybkie 'pykanie' ->link<- - możecie sprawdzić też na tym czystym prostokącie?

    Na pewno to będę debugował, jak będę miał coś nowego dam znać (na pewno spróbuję zmienić sampleRate w AudioContext (teraz wymuszam 48kHz, default to chyba 44.1kHz), będę też próbować zoptymalizować zużycie CPU (głównie uprościć jakoś ten downsampling na koniec)

    EDIT: może podpatrzę po prostu jak to robi atari800 / Altirra - samo patrzenie chyba nie zarazi mi kodu GPL'em, nie?
    • 19: CommentAuthorpirx
    • CommentTime12 Mar 2021 zmieniony
     
    prostokąt pyka na moim łubudubuntu
    • 20: CommentAuthorilmenit
    • CommentTime12 Mar 2021
     
    Pyka na Chrome na telefonie (Snapdragon 855), ale nie pyka na telefonie gdy odpalę w Firefoxie.
    Na notebooku pod Windows, zarówno Chrome i Firefox nie pyka.
    • 21: CommentAuthormrk
    • CommentTime12 Mar 2021 zmieniony
     
    Dzięki!

    To jeszcze jedna prośba. Dodałem możliwość ustawienia tzw. latencyHint w AudioContext: ->link<- - wyświetlam także aktualną wartość latency oraz userAgent z przeglądarki.

    Jeżeli macie to "pykanie" prosiłbym o zanotowanie domyślnej wartości latency i poeksperymentowanie z większymi wartościami wpisywanymi do latencyHint oraz podesłanie mi tych trzech rzeczy - domyślna wartość latency, userAgent oraz wartość dla której dźwięk zaczyna być odtwarzany czysto.

    Przykładowo u mnie:

    Latency: 0.021333333333333333

    UserAgent: Mozilla/5.0 (Linux: Android 10; ONEPLUS A6003) AppleWebKit/537.36 (KIITML, like Gecko) Chrome/88.0.4324.181 Mobile Safari/537.36

    Przestaje pykać od: 0.1

    EDIT: właśnie zauważyłem że to raportowanie latency nie działa w Firefox (ale tam generalnie odtwarzanie wydaje się działać lepiej)
    • 22: CommentAuthorilmenit
    • CommentTime12 Mar 2021 zmieniony
     
    Chrome mobile:
    test1 - minimalna wartość 0.04 i nie pyka
    test2 - po restarcie - minimalna wartość 0.06 i nie pyka

    Latency: 0.021333333333333333
    UserAgent: Mozilla/5.0 (Linux; Android 11; Pixel 4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.181 Mobile Safari/537.36
    • 23: CommentAuthorpirx
    • CommentTime12 Mar 2021
     
    pyka
    Latency: 0.021333333333333333

    UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36


    pyka b. rzadko dla
    Latency: 0.096
    • 24: CommentAuthorbruno_j
    • CommentTime12 Mar 2021 zmieniony
     
    Tablet o którym wspominałem. UserAgent: Mozilla/5.0 (Linux; Android 10; KOB2-W09) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.186 Mobile Safari/537.36

    Po uruchomieniu na domyślnym latency 0.0213333333 nie pyka.
    Przy próbie zmiany pyka na wszystkich wartościach poniżej 0.1 :(

    Na lapku z i5 W10 mogę wstawiać cokolwiek i nie pyka.

    [Edit] Core 2 Duo 2.16 GHz W10 na domyślnych pyka.

    Latency: 0.03
    UserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.186 Safari/537.36 - Nie pyka dopóki nie ruszam myszą.
    • 25:
       
      CommentAuthorDracon
    • CommentTime12 Mar 2021
     
    Nooo, teraz to jest super, odtwarza się praktycznie perfekcyjnie, przynajmniej z tymi załączonymi 3 muzyczkami powyżej. :)
    Na 5-letnim kompie stacjonarnym i7, mam tak:
    Latency: 0
    UserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:86.0) Gecko/20100101 Firefox/86.0
    :)