atarionline.pl Emulacja A800 do osadzenia na AtariOnline.pl - 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:
       
      CommentAuthorgalu
    • CommentTime10 Apr 2024
     
    Cześć,

    Przy okazji prac nad samodzielnym przeglądarkowym emulatorem różnych retro sprzętów przygotowałem demonstrator webowej emulacji Atari800 do osadzenia np. bezpośrednio na AtariOnline.pl
    Piszę tutaj bo może będzie to zachęta do zerknięcia w kod samego rdzenia emulacji (o szczegółach technicznych napiszę w kolejnym poście).

    Tutaj można odwiedzić "demonstrator" (na razie na desktopowej przeglądarce) ->link<-

    Tutaj filmik:


    Wyobraziłem sobie, że dla zalogowanych użytkowników (lub wszystkich odwiedzających stronę i forum) przy każdym linku do pliku .xex, .atr, .cas itp. automatycznie dodawana byłaby ikonka "emuluj", uruchamiająca emulację w bieżącej karcie przeglądarki (z możliwością zamknięcia emulacji lub przełączenia na tryb "obraz w obrazie" i dalszą lekturę strony). Alternatywnie możnaby ograniczyć się do linków zawierających specjalny atrybut html, np. data-emulation, który dodatkowo możnaby parametryzować nazwą lub konfiguracją docelowej emulowanej platformy.

    Wykorzystany został rdzeń Atari800 z projektu Libretro ( ->link<- ) skompilowany z użyciem Emscripten oraz parę dodatkowych gotowych rozwiązań, o których poniżej. Oznacza to, że jeżeli kod samego rdzenia emulacji (pisany w C) będzie rozwijany to skorzysta na tym nie tylko emulacja w przeglądarce, ale każdy kto używa RetroArch/RetroPie/Batocera/Lakka/Ludo/RetriXGold na dowolnym systemie (używają tego samego kodu/rdzenia)
    Również dodanie obsługi kolejnej retro platformy będzie wyłącznie kwestią dołączenia kolejnego rdzenia (czyli "za darmo" na AOL będzie można wprowadzić emulację ST, Lynksa, 2600, C64, Spectruma albo Amigi). W skrócie chodzi o to, że wszystkie rdzenie libretro będą tak samo "rozmawiać" z front-endem, czyli wystarczy raz napisać obsługę sterowania, interfejs użytkownika i każda platforma skorzysta z tego tak samo.
    • 2:
       
      CommentAuthorgalu
    • CommentTime10 Apr 2024
     
    Wersja przeglądarkowa libretro-atari800 nie jest aktualnie budowana na ->link<- , aby zbudować ją samodzielnie będziemy potrzebowali m.in. Emscripten SDK (system operacyjny - dowolny).
    Instalacja:
    git clone ->link<-
    cd emsdk
    ./emsdk install 3.1.51
    ./emsdk activate 3.1.51
    source ./emsdk_env.sh


    Sama kompilacja rdzenia:
    git clone ->link<-
    git clone ->link<-
    cd libretro-atari800
    emmake make -f Makefile platform=emscripten


    Wynikiem będzie plik atari800_libretro_emscripten.bc, który przenosimy pod zmienioną nazwą do katalogu RetroArch i budujemy:
    mv atari800_libretro_emscripten.bc ../RetroArch/libretro_emscripten.bc
    cd ../RetroArch
    emmake make -f Makefile.emscripten LIBRETRO=atari800 -j all


    Wynikiem powyższego powinny być dwa pliki: atari800_libretro.wasm i atari800_libretro.js - to właśnie rdzeń emulacji do wykorzystania na stronce.

    Aktualnie najbardziej odczuwalnym ograniczeniem tego rdzenia jest brak obsługi ROM-ów innych niż kilka wybranych z białej listy, w szczególności należałoby dodać obsługę ROM-ów Altirry.
    • 3:
       
      CommentAuthorgalu
    • CommentTime10 Apr 2024
     
    Użycie rdzenia na stronce: użyłem biblioteki ->link<- , która upraszcza osadzenie i uruchomienie emulacji na stronie, a my możemy zbudować od zera własny interfejsu użytkownika, który w poniższym przykładzie celowo pozostawiłem możliwie minimalistyczny. Pominąłem np. sterowanie dotykowe gdyż niedługo udostępnię rozwijany przeze mnie samodzielny webowy emulator (będzie można wykorzystać część zaproponowanych tam rozwiązań).

    Ten demo-skrypt skleciłem na szybko z myślą o desktopowych przeglądarkach (sprawdziłem pod Safari i Chrome - pod Safari chwilowo nie działa Picture-in-Picture, Chrome z kolei chyba nie obsługuje jakiegoś rozszerzenia webgl wykorzystywanego przez Nostalgista przez co może działać wolniej na słabszych sprzętach).
    Skrypt przelatuje przez linki do obsługiwanych plików, dodaje do nich ikonę emulacji, a gdy użytkownik kliknie na niej to uruchomi emulację. Gdyby osadzić go na AtariOnline to wszystkie linki np. w Katalogu Gier dostałyby ikonkę joysticka odpalającą emulację.

    Pliki (wymagane ROM-y, pliki programów) na potrzeby tej demonstracji pobierane są z serwera atarionline.pl poprzez proxy (które po osadzeniu skryptu na AtariOnline nie będzie oczywiście potrzebne)).

    Aktualnie zamapowane sterowanie (klawiatura): kursory + Z.
    • 4: CommentAuthortebe
    • CommentTime10 Apr 2024
     
    to teraz jeszcze poproszę program graficzny na tym silniku
    • 5:
       
      CommentAuthorpirx
    • CommentTime10 Apr 2024
     
    piękne!
    • 6:
       
      CommentAuthorjhusak
    • CommentTime10 Apr 2024
     
    Jak zwykle @galu pozamiatałeś :)