atarionline.pl XEX2WAV - 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:
         
        CommentAuthorgienekp
      • CommentTime30 Apr 2024 08:04 zmieniony
       
      Zrobiłem prosty programik, który zamienia nam kilka XEXów w jeden WAV dla magnetofonu w normalu. ->link<-

      Cel chyba tylko po to, żeby posłuchać sobie pisków na Altirze :)

      użycie jest poprzez wpisanie komendy:
      xex2wav RiverRaid.xex RiverRaid.wav

      lub jak chcemy więcej
      xex2wav RiverRaid.xex Seawolf.xex Pack.wav

      Produkowany jest WAV 44100Hz Stereo 16-bit, czyli taki jak wchodzi na CD.

      XEX powinien być bez cudowań, bo doklejany jest zwykły loader "wykrzyknik" (po poprawkach).

      Matematycznie jest, ok. Na Altirze też jest OK.

      Natomiast nie mam technicznej możliwości nagrać WAVa na kasetę, więc jakby ktoś wykonał taki eksperyment to byłbym wdzięczny o jakąś informację zwrotną.
      • 2: CommentAuthorw1k
      • CommentTime30 Apr 2024 08:04
       
      wow, super
      • 3: CommentAuthorbartgo
      • CommentTime30 Apr 2024 11:04
       
      Wow... Czy taki program skonwertowany, z loaderem "wykrzyknikowym" wgra się spod COS-u (tego z "Tajemnic Atari")? Czy dla takiego zastosowania brak loadera też będzie okej?

      Nie pytam dla kolegi tylko dla siebie, planuję eksperyment ;)
      • 4: CommentAuthormono
      • CommentTime30 Apr 2024 11:04 zmieniony
       
      COS wgrywa zwykłe xex-y, czyli pliki binarne DOS-u. Wykrzyknik to jest plik boot, który ładuje się przy resetowaniu komputera z przytrzymanym START-em. COS go nie załaduje - trzeba przewinąć do początku xex-a.
      • 5: CommentAuthorbartgo
      • CommentTime30 Apr 2024 13:04
       
      Rozumiem... podejrzewam, że dla potrzeb COS mogę użyć xex2wav ale wtedy muszę wyciąć "sekcję wykrzyknika" edytorem do wave'ów. Zrobię kiedyś test.
      • 6: CommentAuthormono
      • CommentTime30 Apr 2024 17:04 zmieniony
       
      A nie prościej by było udostępnić plik wykrzyknika i po prostu generować wav-a z podanych w linii poleceń plików, a nie wbudowywać na sztywno teego wykrzyknika w program? I przyjemniejsze by to było i użyteczniejsze i elastyczniejsze...
      Ja bym mógł użyć swojego "wykrzyknika"...

      Edit: A jakbym miał źródła i jeszcze mógł sobie to skompilować na linuxie to już w ogóle.

      Edit 2: A a8cas-convert nie umie wava? Zdawało mi się że -fw robiło.
      • 7:
         
        CommentAuthorgienekp
      • CommentTime30 Apr 2024 19:04
       
      Źródła są na githubie :)

      Kompilacja w release dla: windows, macos (intel i M1), linux (Ubuntu 64).

      W kodzie jest funkcja:
      void addXEX(U8 *track, unsigned int *pos, const U8 *xex, unsigned int size)
      {
      addFile(track,pos,exma,sizeof(exma),0); // <-wykrzyknik
      addFile(track,pos,xex,size,1);
      addInterspace(track,pos);
      }

      Wywalenie linijki z addFile-exma usunie wykrzyknik

      Programik powstał troszkę pod pewien eksperyment. Chce sprawdzić jak naprawdę reagują filtry w XC12 na zmieniającą się falę. Czy czasem inne harmoniczne o zmiennej amplitudzie i fazie nie pozwolą na większą prędkość niż by się wydawało.

      Na razie jest zabawka do testów

      @mono
      Bardzo mnie kusiło, żeby wstawić Twój jednorekordowy loader zamiast wykrzynika, ale nie wiem czy pozwalasz? ;)
      • 8:
         
        CommentAuthorgienekp
      • CommentTime30 Apr 2024 19:04 zmieniony
       
      A w sumie czemu nie... Już nie będę zakładał nowego wątku ale:

      RAW2WAV - dowolny plik na WAV dla magnetofonu ATARI.
      ->link<-

      Można skleić sobie wiele wiele plików za jednym zamachem.
      raw2wav program.bas ExLoader.boot gra.xex costam.bin kaseta.wav
      • 9: CommentAuthormono
      • CommentTime30 Apr 2024 20:04 zmieniony
       
      Super! Dzięki @gienekp! Pewnie, że pozwalam :) A zadziała z normalną rozbiegówką przed xexem? Bo zdaje mi się że jemu tam wystarczała krótka pauza jak między rekordami w pliku.

      Edit: I nie wiem czy on tam nie ma obciętego rekordu EOF.
      • 10:
         
        CommentAuthorgienekp
      • CommentTime30 Apr 2024 21:04
       
      No właśnie to ja bym xex2wav specjalnie przygotował pod Twój loader.

      A zwykłe "wykrzykniki" można raw2wav machnąć bo to w sumie osobny plik.

      Czy w Twoim loaderze jak jest blok INIT to zatrzymujesz silnik? Bo mógłbym dodać taką opcję, że jak wykryje INITa to ja dam dłuższą przerwę. Wtedy nawet takie cudaczne XEXy by poszły :)
      • 11:
         
        CommentAuthorgienekp
      • CommentTime1 May 2024 09:05 zmieniony
       
      Na GitHubie XEX2WAV z loaderem od kolegi mona. ->link<-
      Wersja z wykrzyknikiem zostawiłem dla pokoleń ale jak ktoś chce wykrzyknik to lepiej wziąć RAW2WAV bo wykrzyknik to zwykły plik.

      A ten loader od mona jest taki sprytny, że go nie widać. :) To jest pierwszy rekord pliku i wczytywanie leci jakby nigdy nic. Czyli włączamy ATARI ze Start+Option, pierwszy rekord to loader a potem od razu idzie xex. Dlatego pasowało, żeby taki loader miał ekstra narzędzie, które po prostu go doklei :)

      Dodałem w generatorze WAV jeszcze takie coś, że jak XEX robi skok do INIT (wczytała się jakaś partia danych i jest uruchamiana) to wstawiana jest długa przerwa.

      Sprawdziłem (Altirra) na Spy vs Spy II i loader wczytał i czołówkę z animacją i grą. WAV ma 20minut :)

      Podsumowując. Jeżeli chcę sobie zrobić składankę gier XEX na kasetę to:
      xex2wav Gra1.xex Gra2.xex Gra3.xex Zestaw.wav


      A jeżeli chcę sobie zrobić składankę różnych programów, gdzie pierwsza to gra xex, drugi to np. jakiś kopier ładowany ze Start+Option, trzeci to program w BASICu a czwarta to binarka dla COS to:
      raw2wav Exloader.boot Gra.xex Kopier.boot Program.bas Binarka.com Zestaw.wav

      Widać, że w wersji RAW trzeba zadbać aby przed XEX był jakiś loader BOOT
      • 12: CommentAuthormono
      • CommentTime1 May 2024 11:05
       
      Tak. Silnik magnetofonu jest zatrzymywany przed skokiem pod INITAD.