Player SID-ów na c64

Szukasz drobnej pomocy przy kodowaniu, albo chcesz przedstawić światu swoją gotową lub w trakcie realizacji produkcję? To właściwy dział.
Wiadomość
Autor
Awatar użytkownika
skull
Posty: 760
Rejestracja: 15 wrz 2008, 08:18
Grupa: samar

Player SID-ów na c64

#1 Post 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 :)
Bo pecet to zwykły banan...

Awatar użytkownika
prezes
Posty: 213
Rejestracja: 15 wrz 2008, 17:40

#2 Post 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.

Awatar użytkownika
skull
Posty: 760
Rejestracja: 15 wrz 2008, 08:18
Grupa: samar

#3 Post 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!
Bo pecet to zwykły banan...

Awatar użytkownika
prezes
Posty: 213
Rejestracja: 15 wrz 2008, 17:40

#4 Post 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.

kotrobot
Posty: 2362
Rejestracja: 06 lis 2008, 13:55
Grupa: URDAD

#5 Post autor: kotrobot »


Awatar użytkownika
skull
Posty: 760
Rejestracja: 15 wrz 2008, 08:18
Grupa: samar

#6 Post 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
Bo pecet to zwykły banan...

Awatar użytkownika
V-12
Posty: 351
Rejestracja: 18 lut 2009, 13:51
Grupa: Tropyx
Kontakt:

#7 Post 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.
http://www.riversedge.pl/ - Zapraszam na nową odsłonę mojej strony z artykułami i galerią! Scena C64, wywiady, relacje z koncertów etc.

Awatar użytkownika
prezes
Posty: 213
Rejestracja: 15 wrz 2008, 17:40

#8 Post 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.

Awatar użytkownika
skull
Posty: 760
Rejestracja: 15 wrz 2008, 08:18
Grupa: samar

#9 Post 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!!
Bo pecet to zwykły banan...

fenek
Posty: 95
Rejestracja: 15 wrz 2008, 20:43
Grupa: Arise

#10 Post 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.

Awatar użytkownika
skull
Posty: 760
Rejestracja: 15 wrz 2008, 08:18
Grupa: samar

#11 Post 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
Bo pecet to zwykły banan...

Awatar użytkownika
prezes
Posty: 213
Rejestracja: 15 wrz 2008, 17:40

#12 Post autor: prezes »

zabezpieczenie sprawdzające kilka danych (głównie tekst autora i takie takie ;P )
A tak z czystej ciekawosci - czyje to?

Awatar użytkownika
skull
Posty: 760
Rejestracja: 15 wrz 2008, 08:18
Grupa: samar

#13 Post 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!! **
Bo pecet to zwykły banan...

Awatar użytkownika
booker
Posty: 1272
Rejestracja: 08 paź 2008, 17:54
Grupa: MultiSyte Labz

#14 Post 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
Takibardzodługipodpissetuszczelecobyśmiałchwilkęoddechuaizadumymożeewentualniewkurtegozestraciłeśpółminutyżycianaczytanietekstuoniczym.

Awatar użytkownika
skull
Posty: 760
Rejestracja: 15 wrz 2008, 08:18
Grupa: samar

#15 Post 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.
Bo pecet to zwykły banan...

Awatar użytkownika
leming
Posty: 538
Rejestracja: 15 wrz 2008, 10:15
Grupa: Onslaught, Fatum

#16 Post 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!
Ten post wyraża moją opinię w dniu dzisiejszym.Nie może on służyć przeciwko mnie w dniu jutrzejszym,ani każdym innym następującym po tym terminie.Ponadto zastrzegam sobie prawo zmiany poglądów bez podania przyczyny.

Awatar użytkownika
booker
Posty: 1272
Rejestracja: 08 paź 2008, 17:54
Grupa: MultiSyte Labz

#17 Post 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.
Takibardzodługipodpissetuszczelecobyśmiałchwilkęoddechuaizadumymożeewentualniewkurtegozestraciłeśpółminutyżycianaczytanietekstuoniczym.

Awatar użytkownika
leming
Posty: 538
Rejestracja: 15 wrz 2008, 10:15
Grupa: Onslaught, Fatum

#18 Post autor: leming »

Chyba twoja :)
Ten post wyraża moją opinię w dniu dzisiejszym.Nie może on służyć przeciwko mnie w dniu jutrzejszym,ani każdym innym następującym po tym terminie.Ponadto zastrzegam sobie prawo zmiany poglądów bez podania przyczyny.

Awatar użytkownika
booker
Posty: 1272
Rejestracja: 08 paź 2008, 17:54
Grupa: MultiSyte Labz

#19 Post autor: booker »

leming pisze:Chyba twoja :)
Chyba jakakolwiek :)
Takibardzodługipodpissetuszczelecobyśmiałchwilkęoddechuaizadumymożeewentualniewkurtegozestraciłeśpółminutyżycianaczytanietekstuoniczym.

ODPOWIEDZ