atarionline.pl xBIOS - demo nowych funkcji - 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: CommentAuthorpin
      • CommentTime30 Jan 2014 23:01 zmieniony
       
      ... to znaczy, co to za próbka konkretnie i czemu ma to służyć? ;)
      • 2: CommentAuthorxxl
      • CommentTime8 Feb 2014 19:02
       
      ->link<-

      testujemy nowego plajerka na GTIA.

      przy okazji kilka funkcji w xB :-)

      do posluchania mp3

      ->link<-
      • 3:
         
        CommentAuthorjhusak
      • CommentTime8 Feb 2014 22:02 zmieniony
       
      Jakieś konkrety tego playerka są? Bo gra zacnie...
      • 4: CommentAuthorxxl
      • CommentTime9 Feb 2014 13:02
       
      caly czas poprawiany. dzis wyszlo, ze kanaly nie graly z ta sama glosnoscia (gdy wylaczyl sie jakis kanal dwa pozostale graly glosniej), dodalem tez obsluge na klawiszach, mozna wlaczac i wylaczac kanaly w czasie odtwarzania. 6 oktaw, format nuta1,nuta2,nuta3,sampel1,sampel2,sampel3.
      • 5:
         
        CommentAuthorjhusak
      • CommentTime10 Feb 2014 10:02
       
      Nic nie zrozumiałem, oprócz tego, że ma 6 kanałów w sumie i 6 oktaw (zapewne "nut", nie sampli) :)
      • 6: CommentAuthorxxl
      • CommentTime10 Feb 2014 11:02
       
      sorka. tu jest instrukcja:

      ->link<-
      • 7: CommentAuthorGonzo
      • CommentTime15 Feb 2014 00:02
       


      f15 - od dzisiaj kodów nie wpisujemy :)

      crack niestety nie jest pełny i działa tylko dla kodów 0-9
      • 8: CommentAuthorxxl
      • CommentTime18 May 2014 08:05 zmieniony
       
      indeksowanie plikow i danych w plikach.

      przykladowo mamy kilka leveli polaczonych w jeden plik. standardowo dostep do tych danych realizujemy tak:
      - otworz plik
      - przesun wskaznik biezacej pozycji w pliku POINT/SEEK
      - pobierz dane

      w przypadku DOSow z rodziny Atari/My/Bibo/Top itd. DOS, problem jest taki, ze funkcja POINT nie jest wzgledna co oznacza, ze jesli przeniesiemy plik na inna dyskietke lub inna gestosc zapisu to program nie bedzie dzialal poprawnie. mozemy tez odczytac plik od poczatku do interesujacych nas danych - zabiera sporo czasu.

      w przypadku DOSow na filesystemie SpartaDOS dane w jaki sposob lezy plik na dysku przechowywane sa osobno, przez co dostep do danych w pliku wymaga ciaglej obecnosci tych danych w pamieci dla calego pliku.

      w xB obydwie te wady zostaly usuniete dodatkowo czas dostepu do tych danych zostal zminimalizowany.
      nie potrzeba otwierac pliku (co wiaza sie z przeszukaniem katalogu - odczyt od kilku do kilkunastu sektorow) nie trzeba przesuwac wskaznik biezacej pozycji co wiaze sie w SDOS obliczanie pozycji z danych z osobnego pliku.

      xB oferuje obecnie najszybszy mozliwy sposob dostepu do poindeksowanych danych na dysku, poindeksowanych danych w pliku oraz do poindeksowanych plikow na dysku.

      w zalaczniku xB oraz przyklad wczytywania i odtwarzania pliku .SAP
      • 9: CommentAuthorpin
      • CommentTime18 May 2014 18:05
       

      XXL:

      w przypadku DOSow na filesystemie SpartaDOS dane w jaki sposob lezy plik na dysku przechowywane sa osobno, przez co dostep do danych w pliku wymaga ciaglej obecnosci tych danych w pamieci dla calego pliku.


      Możesz rozwinąć tę myśl, bo się pogubiłem? ;)
      • 10: CommentAuthorxxl
      • CommentTime18 May 2014 20:05
       
      w instrukcji tego dos powinien byc rozdzial o mapie sektorow, poczytaj.

      w skrocie. dostp do poindeksowanych danych wewnatrz pliku w przypadku xB jest natychmiastowy, nie wymaga zadnych dodatkowych operacji. w dos (wszystkich) plik musi byc wczesniej otwarty, zeby otworzyc plik trzeba go najpierw znalezc na dysku itd. itd....

      przykladowo mamy 20 plikow roznej wielkosci, w kazdym pliku mamy po 10 roznej wielkosci blokow z danymi, czyli mamy 200 interesujacych nas blokow danych, zrobmy test: odczyt po jednym bajcie z kazdego bloku. w przypadku xB dostep jest natychmiastowy a w przypadku DOS :( ... rozjasnilo sie?
      • 11: CommentAuthorpin
      • CommentTime18 May 2014 21:05
       
      Nie musiałem się nad tym zastanawiać, bo w przypadku dysku twardego jest to pomijalna czasowo kwestia po prostu. Ale ok, to rozumiem tylko chaotycznie to opisałeś i stąd pytanie.
      • 12: CommentAuthorxxl
      • CommentTime18 May 2014 21:05
       
      kiedys jesli program byl niewydajny i niewspolmiernie pozeral zasoby to wymienialo sie program a nie upgrejdowalo sprzet :D
      • 13: CommentAuthorpin
      • CommentTime18 May 2014 21:05
       
      dlatego napisali SDX, bo radzi sobie o niebo lepiej w każdym temacie dotyczącym obsługi plików. Mowa o dosach, bo to co sobie tam rzeźbisz to jeszcze inna parafia jest.
      • 14: CommentAuthorxxl
      • CommentTime18 May 2014 22:05
       
      i dlatego npisali xB, bo rozwiazania dos sa niewydajne. wyzej masz przyklad jak bardzo niewydajne w stosunku do xBios :-)
      • 15: CommentAuthorpin
      • CommentTime19 May 2014 00:05
       
      nie promuj tego rozwiązania (xB)w ten sposób, bo xBios w stosunku do aktualnie osiągalnego hardware'u nie jest przyszłościąwą alternatywą ;) Jest jedynie dobrą alternatywą dla stockowego sprzętu - może i prawda - ale w stosunku do zaawansowanych nośników pamięci masowej powoduje jedynie spowolnienia transferu danych. I wiesz o tym doskonale.
      • 16: CommentAuthorxxl
      • CommentTime19 May 2014 00:05
       
      Twoj "zaawansowany nosnik pamieci masowej" spowalnia transfer przy obsludze atr. xBios nie ma tu nic do rzeczy :-)
      • 17: CommentAuthorpin
      • CommentTime19 May 2014 01:05
       
      Owszem, bo format ATR nie ma przyszłości i nikt się nim nie będzie przejmował zanadto. Spowolnienie po części wynika z ograniczeń nierozwojowego rozwiązania ;) Jak na razie, to wyłącznie plikowy dostęp wraz z dos w połączeniu z nowym urządzeniem sprzętowym daje maksymalną prędkość I/O.
      • 18: CommentAuthorxxl
      • CommentTime19 May 2014 08:05
       
      To Twoje zdanie :-) poza tym jak widac nie przejmuja sie tez filesystemem FAT bo ten rowniez zwalnia na tym "zaawansowanym nosniku pamieci masowej" - ciekawe ze na starym SIO2SD dziala bez niespodzianek :-)
      Chcesz "plikowego dostepu" to zmien filesystem :-) np. na ADOS FS a magicznie wszystko zacznie dzialac z pelna predkoscia... tak, xB tez :-)
      • 19: CommentAuthorpin
      • CommentTime19 May 2014 19:05
       
      Fat nie zwalnia. No może tylko w trybie "side-loadera", lecz jest to kwestią błędnego podejścia do odczytu pod samym loaderem. Poza tym, to odczyt z fata mam na poziomie od 90kB do 270kB/s

      Systemu plików też nie mam co zmieniać, bo przyzwyczaiwszy się do pewnego poziomu ciężko się cofać z możliwościami do tyłu.
      • 20: CommentAuthorpin
      • CommentTime19 May 2014 19:05
       
      Może jakby format Atari DOS miał odmianę na sektor 512B - no to by coś dało. Problem w tym, że go nie ma a xBios raczej nie obsłuży takiego sektora. No chyba, że się mylę.
      • 21: CommentAuthorxxl
      • CommentTime19 May 2014 19:05
       
      270 kB/s? calkiem niezly wynik dla komputerka z procesorem 1.79, lda / sta to 8 cykli czyli najszybciej jak atari moze przewalic dane to ok. 210 kB/s - lancuszek lda/sta musialby byc 6 x dluzszy od danych ktore przenosi czyli 100 bajtow odebranych danych to 600 bajtow programu ktory te dane moze odebrac :-)
      • 22: CommentAuthorpin
      • CommentTime19 May 2014 20:05
       
      około 90kB/s przy włączonym Anticu, około 100 przy wyłączonym (vbxe), 272kB/s osiągnęło side2 z taką śmieszną kartą CF, ale na Rapidusie po dopale.
      • 23: CommentAuthorxxl
      • CommentTime19 May 2014 21:05
       
      niestety... musisz upgrejdowac inaczej Twoj bloat dos nie bedzie dzialal ;-) szkoda, ze atari stracilo kolejnego usera, szkoda tym bardziej, ze muzyka. moze kiedys jeszcze wrocisz do atari.
      • 24: CommentAuthorpin
      • CommentTime19 May 2014 21:05
       
      Atari to coś więcej, niż 64k i XC12. Może czas zmienić podejście, bo właśnie dzięki takiemu hardware'owi ludzie odeszli od muzykowania / programowania / rysowania na real_hw. Na temat rozszerzeń nie chce mi się nawet gadać ale jedno, co jest proste do zrozumienia to fakt, że są one po to, by usprawnić zabawę i by wreszcie można było wrócić do pracy na Atari a nie PC. Więcej z tego radości jest, uwierz mi ;)

      Np. teraz rozpakowuje 0.5MB archiwum ARC z playerem do AY na Atari - testy. Wiesz, co trzeba zrobić na stockowej maszynie by rozpakować takiego molocha? ;)
      • 25: CommentAuthorxxl
      • CommentTime19 May 2014 22:05 zmieniony
       
      masz racje, kiedys xc12 zabijalo atari, dzis ducha atari zabija wmawianie ze "rozwoj" to upgrejdowanie do 16 bitow cpu, 16 bit dzwiek, 24bit grafika itd. itd... wpadasz ze skrajnosci w skrajnosc - bardzo niestabilne zachowanie ;-)
      • 26:
         
        CommentAuthorKaz
      • CommentTime19 May 2014 22:05
       
      Gdzie tu przycisk do dyskusji "Lubie to"? :D
      • 27: CommentAuthorpin
      • CommentTime19 May 2014 23:05
       
      8/16 bit, a to różnica jest, nie 16 bit dźwięk tylko opcjonalnie 8, a vbxe to też masz i to chyba złe nie jest jak sądzę ;)

      ... a w skrajności wpadam, jak czytam o szybkości I/O pod xB :D .. no może i na stock coś to daje, pytanie tylko jak długo ;)

      Dobra, dajmy już spokój ;)
      • 28: CommentAuthorxxl
      • CommentTime20 May 2014 10:05
       
      > a w skrajności wpadam, jak czytam o szybkości I/O pod xB :D

      widac nie miales do czynienia z nowym xB :-) na domyslnych ustawieniach ograniczeniem szybkosci jest sa tylko mozliwosci urzadzenia :-) wiec jesli Twoje uzadzenie wyciaga 90kB/s to xB na tym urzadzeniu bedzie wyciagal 90kB/s :-)
      • 29: CommentAuthorpin
      • CommentTime20 May 2014 21:05
       
      Z tym, że do tego musiałbym pozostawić jedną partycję na sektorze 256B w formacie MyDOS, a jest to -16MB w pojemności partycji z zakresu D1:-D16:, lub po -16MB dla każdej takiej. Dodatkowo z racji na to że dysk twardy fizycznie operuje na sektorach 512 B i sterownik musi składać sektory 512 z dwóch 256, to ostatecznie transfer spada do 50-60kB/s przy odczycie, jeszcze bardziej przy zapisie. Nie jest to oczywiście "wadą" cobyś tak nie mówił, bo wadą Atari FS jest to, że nie pracuje na niczym ponad 256B/sektor. Ostatecznie, to kiedyś nie miało to większego znaczenia - teraz ma.
      • 30: CommentAuthorxxl
      • CommentTime20 May 2014 22:05
       
      tak to wszystko wina xB a nie urzadzenia ;-)

      ->link<-
      • 31: CommentAuthorpin
      • CommentTime20 May 2014 23:05
       
      wina nieudolnego systemu plików ATARI-DOS ;). A Ty trzymasz się go jak Jaś i Małgosia razem ;)
      • 32: CommentAuthorxxl
      • CommentTime20 May 2014 23:05
       
      jak pokazuje test wyzej filesystem spartados jest jeszcze gorszy
      • 33: CommentAuthorpin
      • CommentTime24 May 2014 00:05
       
      widocznie xBios jest niedorobiony i wybrakowany ;)
      • 34: CommentAuthorxxl
      • CommentTime24 May 2014 09:05
       
      cos Cie izoluje od faktow.
      • 35: CommentAuthorxxl
      • CommentTime8 Jun 2014 11:06 zmieniony
       
      bylbym zapomnial uzupelnic.

      1. przyklad szybkiego dostepu do poindeksowanych danych w pliku i poindeksowanych plikow.

      2. przyklad odtwarzania muzyki podczas wczytywania, ladowania na strone zero, pod rom itp.

      w zalaczniku.

      xBIOS                           equ $0800
      xIRQEN equ xBIOS+$3e8
      xBIOS_SET_DEFAULT_DEVICE equ xBIOS+$2A
      DLP_PLAYER_ZPG_VARS equ $e0
      DLP_PLAYER_ADDRESS equ $78d4
      DLP_ADDRESS equ $7000
      ;AUDCTL_SUPPORT equ 1
      ;XBIOS_AUDCTL_SUPPORT equ 1
      DLP_INIT equ DLP_PLAYER_ADDRESS+$80
      DLP_PLAY equ DLP_PLAYER_ADDRESS+$83

      icl 'atarihw.ah'

      opt h- ; bez identyfikatora FFFF
      org [a(start,start+(stop-start)-1)],$0c00
      start
      sei
      lda #0
      sta nmien
      sta irqen
      sta dmactl
      sta xIRQEN
      lda #$fe
      sta portb ; ROM OFF
      jmp xBIOS_SET_DEFAULT_DEVICE
      stop
      opt h+
      ini start

      org $7000
      ins 'dciomusic.dat'

      org $0000 ; prosto na strone zero

      IONMI sta zpa
      stx zpx
      sty zpy
      jsr DLP_PLAY
      lda #0
      zpa equ *-1
      ldx #0
      zpx equ *-1
      ldy #0
      zpy equ *-1
      rti

      playmusic
      lda <IONMI
      sta $fffa
      lda >IONMI
      sta $fffb
      jsr DLP_INIT
      lda #$40
      sta nmien
      rts
      ini playmusic

      org $c000 ; do RAMU pod ROM
      :$1000 .byte $ff

      org $d800
      :$2700 .byte $ff

      koniec lda random
      sta colbak
      jmp koniec

      run koniec
      • 36: CommentAuthorpin
      • CommentTime8 Jun 2014 20:06
       
      po co odtwarzać muzykę w czasie ładowania? Jaki jest tego sens? Chodzi tylko o fakt, że się da? ;)
      • 37:
         
        CommentAuthorjhusak
      • CommentTime8 Jun 2014 23:06
       
      Pin, następnym etapem prac xxl będzie możliwość nagrywania muzyki w trakcie ładowania.

      A z drugiej strony - co to przeszkadza?
      • 38: CommentAuthorwieczor
      • CommentTime8 Jun 2014 23:06
       
      Już wyjaśniam pierwsze i być może jedyne sensowne zastosowanie - otóż masz grę z muzyką w tle ale niestety całość nie mieści się w pamięci i od czasu do czasu musisz coś doczytać. Przerywanie muzyki jest wyjątkowo słabym pomysłem i wku..rza :) Oczywiście żeby odtwarzać muzykę podczas wczytywania nie jest potrzebny xB - po prostu ma taki feature - tylko muzyka na dwa kanały (względnie taka gdzie dwa pozostałe da się płynnie i ładnie wyłączyć na chwilę).
      • 39: CommentAuthorpin
      • CommentTime8 Jun 2014 23:06 zmieniony
       
      Wieczor - to skomponuj taką muzę w której wyłączenie dwóch kanałów w czasie I/O na doczytywanie w dowolnym momencie będzie niezauważalne ;)

      @Kuba - a co to za feature? że przez 4 sekundy ładowania zagra wstęp do muzyczki (np. Mazazem), gdzie słysząc muzykę nerwowo naciskam fire, bo myślę - gra - to chyba już jest (a nie jest) .. no i naciskam i naciskam i myślę: Joy zrypany, albo gra wisi. No i po kilku sekundach okazuje się, że się załadowało. I taki sens jest. Może to i ciekawe, ale taki ficzer w połączeniu z np. obrazem ATR i HDD nie zadziała. Mamy więc możliwość załadować ze sio i tyle. A rozchodzi się o kilka sekund muzy... no i mamy ograniczenia nie wiedzieć po co. Zaraz, to XXL napisze że to urządzenia są ograniczone. Obawiam się niestety, że tak nie jest ;)
      • 40: CommentAuthorxxl
      • CommentTime9 Jun 2014 00:06
       
      > Oczywiście żeby odtwarzać muzykę podczas wczytywania nie jest potrzebny xB

      oczywiscie. jest kilka przykladow - ale to wszystko gry calodyskowe lub demosy z wlasnymi irqloaderami. xB pozwala na to z wykorzystaniem filesystemu - zwykle pliki. oprogramowanie tego teraz jest bardzo proste.
      • 41: CommentAuthorxxl
      • CommentTime9 Jun 2014 11:06
       
      > gdzie słysząc muzykę nerwowo naciskam fire, bo myślę - gra - to chyba już jest (a nie jest) .. no i naciskam i naciskam i myślę: Joy zrypany, albo gra wisi. No i po kilku sekundach okazuje się, że się załadowało.

      RACJA. trzeba bedzie na ekranie umieszczac info ze wlasnie trwa I/O nie wylaczaj sprzetu :-) identycznie jak na PS3 :D
      • 42: CommentAuthorwieczor
      • CommentTime9 Jun 2014 12:06
       
      @pin: prościej jest jednak zrobić 2 kanałową przez cały czas :) I zużyć pozostałe kanały na efekty - które i tak są używane kiedy nic się nie czyta. Taka muza "dynamicznie kanałowa" jest możliwa, ale to trudne, zależy od tematu, dostosowuje się do akcji jak muzyka w filmie - kupa roboty :)

      A oczywiście podczas ładowania dajemy sobie wskaźnik postępu na środku ekranu - user friendly, użytkownik widzi że coś się dzieje. Ale muza gra nadal i jest to o wiele lepsze wrażenie niż jej rwanie.
      • 43: CommentAuthormono
      • CommentTime9 Jun 2014 12:06
       
      A nie można by udostępniać wartości AUDF do odczytu dzięki czemu można by próbować grać podczas I/O sampelków o niskiej częstotliwości na IRQ?
      • 44: CommentAuthorxxl
      • CommentTime9 Jun 2014 14:06
       
      mozna dowoli korzystac z AUDF wolnych kanalow, rejestry AUDF kanalow zajetych przez I/O nie moga byc modyfikowane przez usera... mozna za to mozystac z AUDC3 - zajetego kanalu aby odgrywac sample.

      mozna tez uzywac AUDCTL (zapisujac jednoczensie do xAUDCTL), mozna tez korzysac z irq - xIRQEN. pierwsze wersje mialy tez taki trik, ze wszystko co zaczytal z SERIN szlo do rejestru glosnosci generatora 3 (mozna to bylo wylaczyc) jak ktos chcialby czytac sektory bezposrednio z samplami, ale efekt byl marny (od niedawana wiem dlaczego ;-)
      • 45: CommentAuthormono
      • CommentTime9 Jun 2014 15:06 zmieniony
       
      Pytałem o wartość AUDF3/4 a to po to, że wypadałoby ją znać żeby policzyć częstotliwość TIMR4 dla sampla. Mając xAUDCTL i xAUDF3/4 (jeśli korzystasz z łączonych dzielników) miałbym co trzeba. Prędkość komunikacji jest dość stabilna więc używany kanał można by wykorzystać do taktowania sampla a pozostałe kanały do grania muzyki. Używasz AUDF3 czy AUDF3/4? Jeśli tylko jedenego licznika, to czy można by taktować transmisję np. licznikiem 4? I czy mógłbyś nie zapisywać podczas transmisji AUDCx żeby można było grać sampla właśnie?

      Edit: OS zapisuje głośność 8 (lub 0 kiedy IOSNDEN wyłączony) tylko w celach poglądowych.

      Edit 2: A może to nie ma sensu, przerwanie co 40 cykli CPU zarżnie wszystko... Ale to przynajmniej nie zapisuj rejestru AUDCx.
      • 46: CommentAuthorxxl
      • CommentTime9 Jun 2014 15:06 zmieniony
       
      1. jesli korzystamy z SIO wartosc podzielnika (AUDF3-4) trzymana jest w zmiennej xSPEED - mozna ja modyfikowac, w zmiennej xHSPEED przechowywany jest podzielnik dla Ultraspeed jesli urzadzenie zewnetrzne obsluguje.
      2. rejestr AUDC3 nigdy nie jest zapisywany - do swobodnego uzycia,
      3. transmisja SIO idzie zawsze na polaczonych kanalach 3 i 4, co prawda mozna na atari przeprowadzac I/O na jednym liczniku (AUDF4) ale z obliczen wynika, ze standardowa stacja dyskow tego nie obsluzy (speed w okolicach 31kb troszke mniej niz turbo stacji XF551) - natomiast na SIO2PC dziala wysmienicie (Fox pisal, ze transmisja na jednym kanale moze byc problemowa)
      5. mozna grac sampla na AUDC3
      6. przy przerwaniu co 40 cykli nie ma mowy o stabilnym I/O
      • 47: CommentAuthormono
      • CommentTime9 Jun 2014 16:06
       
      OK. Chodzi mi o wykorzystanie wszystkich kanałów do generowania dźwięku. AUDF1 i 2 na syntetyki, 3 i 4 na sample - da się? Zapisujesz AUDC4?
      • 48: CommentAuthorxxl
      • CommentTime9 Jun 2014 17:06
       
      interesujace... przenioslem inicjowanie AUDC4 z modulu SIO I/O do funkcji xBIOS_SET_DEFAULT_DEVICE. teraz AUDC4 jest zapisywany tylko raz - wartoscia #$10 (jesli chcemy korzystac z modulu SIO).
      no i musze powiedziec ze dziala ... hmm, musze to jeszcze potestowac ale wyglada dobrze :-) dzieki za ciekawy pomysl.
      • 49: CommentAuthorxxl
      • CommentTime25 Jun 2014 00:06
       
      to jest TO:

      ->link<-
      • 50:
         
        CommentAuthorKaz
      • CommentTime25 Jun 2014 11:06
       
      xxl - a mozna prosic tez o mp3?