Strona 1 z 1

Player SID-ów na c64

: 04 mar 2009, 08:10
autor: skull
Niestety... ten oryginalny nie mieści mi się miedzy kolejnymi wywołaniami przerwań. Czy ma ktoś może jakąś szybszą wersję? Albo może pokrojony na części ? może chociaż źródłówka :)

: 04 mar 2009, 10:22
autor: prezes
Co to znaczy "oryginalny player sidow"? Chodzi ci o taki player ktory robi JSR $1003 czy player wewnetrzny zaka?

Dla zwyklego playera na czas wywolania mozesz wylaczyc rejestry (LDA #$30 STA $01) i pociac go przerwaniami. Pod koniec ramki wlaczasz rejestry i przepisujesz wszystko z RAMu do SIDa. Dzwiek bedzie czysty jak stol Durczoka po opierdolu.

A jesli juz koniecznie chcesz pociac wywolanie zaka na czesci bez przerwan to trik polega na odegraniu jednego kanalu przy jednym wywolaniu. Pewnie nie kazdy zak da sie w ten sposob odegrac, ale kuknij w kod playera, poszukaj jakiegos skoku ktory jest powtorzony 3 razy, a pozniej metoda prob i bledow. Pewnie bedziesz musial dopisac troche kodu.

: 04 mar 2009, 10:47
autor: skull
prezes pisze:Co to znaczy "oryginalny player sidow"? Chodzi ci o taki player ktory robi JSR $1003 czy player wewnetrzny zaka?
No mam na myśli ten wewntęrzny który jest razem z zakiem(-ami) w plikach *.sid - czasami zresztą kilka razy się powtarza.
prezes pisze: Dla zwyklego playera na czas wywolania mozesz wylaczyc rejestry (LDA #$30 STA $01) i pociac go przerwaniami. Pod koniec ramki wlaczasz rejestry i przepisujesz wszystko z RAMu do SIDa. Dzwiek bedzie czysty jak stol Durczoka po opierdolu.
czyli w zasadzie zmodyfikować zaka przy odwołaniach bezpośrednio do rejestrów sid-a?
prezes pisze: A jesli juz koniecznie chcesz pociac wywolanie zaka na czesci bez przerwan to trik polega na odegraniu jednego kanalu przy jednym wywolaniu. Pewnie nie kazdy zak da sie w ten sposob odegrac, ale kuknij w kod playera, poszukaj jakiegos skoku ktory jest powtorzony 3 razy, a pozniej metoda prob i bledow. Pewnie bedziesz musial dopisac troche kodu.
No właśnie ma może ktoś źródłówkę, bo wtedy zlokalizoawnie takiej pętli będzie znacznie łatwiejsze niż przeglądanie w monitorze.


W każdym razie dzięki za sugestie!

: 04 mar 2009, 16:27
autor: prezes
No mam na myśli ten wewntęrzny który jest razem z zakiem(-ami) w plikach *.sid
Kolejne stadium wirtualizacji emularorowej - synonimem "oryginalnego playera" do zakow jest teraz sidplayer. :shock:

Twoje pytanie jest o tyle dziwne, ze AFAIR pliki .sid (w formacie PSID) maja w srodku samego zaka, a odgrywaniem zajmuja sie przerwania programu sidplayer/winamp/xmms, chyba ze sa sample - wtedy podpiety jest custom player (RSID).

Tutaj masz specyfikacje PSID/RSID:http://cpansearch.perl.org/src/LALA/Aud ... format.txt

Strona projektu Sidplay2:http://sidplay2.sourceforge.net/
czyli w zasadzie zmodyfikować zaka przy odwołaniach bezpośrednio do rejestrów sid-a?
Zaka nie dotykasz. Przepisujesz tylko zawartosci rejestrow czyli adres $D400 - $D41F.
No właśnie ma może ktoś źródłówkę
O zrodla do Hardtracka pytaj Brusha/Esm. W temacie kodowania playerow siedzial niegdys mocno Glover/Samar. O samplach rozmawiaj z Ramosem.

: 04 mar 2009, 21:20
autor: kotrobot

: 05 mar 2009, 15:00
autor: skull
prezes pisze:
No mam na myśli ten wewntęrzny który jest razem z zakiem(-ami) w plikach *.sid
Kolejne stadium wirtualizacji emularorowej - synonimem "oryginalnego playera" do zakow jest teraz sidplayer. :shock:
eeee... noooo nie miałem tego na myśli - uważałem, że do odgrywania plików *.sid na c64 jest tylko jeden standart (a może jest ??).
Przyznaje także, że muzyka na c64 to moja największa pięta achillesowa.
prezes pisze: Twoje pytanie jest o tyle dziwne, ze AFAIR pliki .sid (w formacie PSID) maja w srodku samego zaka, a odgrywaniem zajmuja sie przerwania programu sidplayer/winamp/xmms, chyba ze sa sample - wtedy podpiety jest custom player (RSID).
No właśnie sęk w tym, że akurat ten plik *.sid do którego próbuję - nie dość, że ma zlepione ze sobą kilkanaście utworów to jeszcze między nimi są trzy playery - oznaczone ROMUZAK i nie są to sample.
Wyłuskałem ten który chciałem i działa ... jeno za dużo wpiernicza mi ramki.
Nawet już dobrałem się do podzielenia pętli generatorów (jak zasugerowałeś), ale niestety nawet "pojedyńczo" nie znalazłem tyle wolnego rastra i zdarza się szarpnąć moje cenne wycyklowane ramki :?
Swoją drogą to troche dużo żre - żeby jedna iteracja (dla jednego tracka) pożerała nawet do dwudziestu kilku rastrów to dla mnie przesada (co prawda przy wyświetlanych sprite'ach).
prezes pisze: Tutaj masz specyfikacje PSID/RSID:http://cpansearch.perl.org/src/LALA/Aud ... format.txt
to mi nie wiele pomaga i już widziałem -chyba tylko szybkość odtwarzania jest w tym nagłówku dla SID-a istotna.
prezes pisze: Zaka nie dotykasz. Przepisujesz tylko zawartosci rejestrow czyli adres $D400 - $D41F.
sprytne, ale ja potrzebuje rejestrów do VIC-a.


@kotrobot: dzięki za linka, ale nie moge sobie poradzić z dostosowaniem tego kodu (poległem na instrumentach).

może źródłówka ROMUZAK,ma ktoś coś takiego ?

i oczywiście thx 4 replay

: 05 mar 2009, 15:26
autor: V-12
Rozumiem, że chodzi Ci o źródłówkę playera Romuzaka? Well, można ją sobie samemu zrobić. Turbo Reassemblerem :) Jak byś był zainteresowany, to priv.

: 05 mar 2009, 16:13
autor: prezes
sprytne, ale ja potrzebuje rejestrów do VIC-a.
Na poczatku procedury obslugi przerwania ustawiasz wartosc $01, na koncu przed RTI ja przywracasz.

http://noname.c64.org/csdb/release/?id=17814
Nie znam tego edytora. Moze on tak po prostu ma.

W normalnych warunkach wywolanie playera nie powinno zajac wiecej niz 30 linii, Ceteris Paribus.

Daj linka do zaka jesli jest w HVSC.

: 07 mar 2009, 22:45
autor: skull
prezes pisze: Na poczatku procedury obslugi przerwania ustawiasz wartosc $01, na koncu przed RTI ja przywracasz.
Rozumiem zasade, ale w przypadku nie mieszczenia się w czasie i tak to mi nic nie pomoże. Musze muzykę robic w przerwaniach gdyż cały czas leci program również poza nimi, który czasem zabiera wiecej niż 1 ramkę - a więc dzwięk by nie trzymał synchronizacji.
Zostało mi za mało miejsca miedzy kolejnymi wywolaniami irq (a mam ich kilkanaście i to jeszcze ruchomych) wiec zostalo tylko ciąc kod playera - ale już jestem chyba na dobrej drodze i pociałem to w koncu w zadowalający sposób.
kod playera ROMUZAK mam juz zdisasemblowany (dzieki 64COPY) i jak ktos chce to juz sam moge udostepnic :)

Dzieki za pomoc!!

: 29 mar 2009, 15:33
autor: fenek
KOD ktory masz wrzucony w przerwania IRQ mozesz zrobic na timerach i dac je jako przerwania NMI, a muzyke wrzucic w IRQ.
IRQ bedzie odgrywac muzyke a NMI bedzie je przerywac na to co chcesz\
zrobic. Czas grania muzyki wydluzy sie i moze ona inaczej brzmiec niz
w oryginale.

: 30 mar 2009, 08:42
autor: skull
To też ciekawe rozwiązanie, ale już pociąłem tego playera i chodzi ładnie. Co ciekawsze, przy wyjściu z procedury miał jeszcze zabezpieczenie sprawdzające kilka danych (głównie tekst autora i takie takie ;P ) - wyciąłem i troszkę "przyspieszył".
Pozdro

: 30 mar 2009, 09:50
autor: prezes
zabezpieczenie sprawdzające kilka danych (głównie tekst autora i takie takie ;P )
A tak z czystej ciekawosci - czyje to?

: 30 mar 2009, 10:48
autor: skull
prezes pisze:
zabezpieczenie sprawdzające kilka danych (głównie tekst autora i takie takie ;P )
A tak z czystej ciekawosci - czyje to?

** ROMUZAK V6.3 <W> BY OLIVER BLASNIK, <C> DIGITAL MARKETING!! 02435-1295!! **

: 30 mar 2009, 12:42
autor: booker
Twój problem, Skull polega na tym, ze Romuzak, o ile dobrze pamietam, to jest player, ktory zajmuje strasznie duzo czasu rastra.

Nie ma czegoś takiego jak "oryginalny player" :D

A nie mozesz sobie uzyc jakiejs innej muzyczki, z playerem, ktory nie zżera tyle ramy? Tylko akurat musi to być muza napisana na Romuzaku :) ?

Mozesz tez spróbować pewnego triku, który zrobił Geir - facet w jakis sposób przekodowal player Future Composera, który okazuje się, może zajmować 2x mniej ramy (albo i jeszcze mniej). Zobacz sobie http://noname.c64.org/csdb/release/?id=76493

: 30 mar 2009, 13:26
autor: skull
booker pisze:Twój problem, Skull ...
Nie wczytałeś się - napisałem, że już sobie poradziłem.

Muzyczka, akurat ta mi najbardziej pasuje ew. ktoś musiał by mi ją przepisać w jakimś innym playerze :).
Cały player praktycznie rozłożyłem na czynniki pierwsze - każdy kanał wywołuje indywidualnie, a także inne stosowne moduły playera, zapętlanie itd. Udało mi się też pewne części zoptymalizować, albo nawet wyciąć (szczególnie to zabezpieczenie). Może się jeszcze nie podpisze pod zmodyfikowanym playerem, ale już nie wieleby brakowało ;-)
Także przystosowałem podmiane danych dla tracków i instrumentów oraz patternów (czy jak to tam się zwie).
W efekcie muzyczka już nie stwarza żadnych problemów.

Jeszcze raz dziękuję za pomoc.

: 30 mar 2009, 13:59
autor: leming
Booker, dzisiaj wniose pozew do Nitra o ostrzezenie ciebie za powierzchowne czytanie postów. To karygodne. FAQ/Manuala tez pewnie nie przeczytales. Do miecza!

: 31 mar 2009, 12:33
autor: booker
leming pisze:Booker, dzisiaj wniose pozew do Nitra o ostrzezenie ciebie za powierzchowne czytanie postów. To karygodne. FAQ/Manuala tez pewnie nie przeczytales. Do miecza!
Gorzej niż żona.

: 31 mar 2009, 12:53
autor: leming
Chyba twoja :)

: 31 mar 2009, 16:46
autor: booker
leming pisze:Chyba twoja :)
Chyba jakakolwiek :)