Autor Wątek: Skatin USA  (Przeczytany 10018 razy)

Damianx

  • *****
  • Wiadomości: 657
  • Miejsce pobytu:
    Pruszków
Skatin USA
« dnia: 2014.03.02, 20:52:45 »
Chłopaki czy jest możliwość przerobienia tej gry.

Chodzi o przeniesienie muzyki i dźwięków z wersji CPC na zx 128 Ay ,czy jest to wykonalne ??
Spectrum512k - Spectrum+128k - +2A - +3 Pear Ay - TC2048 S-VIDEO - Didaktik Gama80k\192k- A4000\060 - A1200\030 - A600\9tails - CD32 - A500 GVP Impact II - C64\SD2IEC\DualSID - Atari130XE\SIO2SD\Stereo - CA2001 - CPC6128\HXC - Atari Mega Ste UltraSatan.

matofesi

  • *****
  • Wiadomości: 2049
  • Miejsce pobytu:
    Toruń/Poland
Odp: Skatin USA
« Odpowiedź #1 dnia: 2014.03.03, 12:33:22 »
Fizyczne przeniesienie jest oczywiście możliwe. Problem w tym, że AY w ZX i w CPC jest taktowany innym zegarem i nie da się uzyskać dokładnie tych samych częstotliwości (są różnice zakresu i skoki między wartościami nie pasują dokładnie) a do przybliżenia trzeba by zastosować jakiś mechanizm tablicujący i podmieniać częstotliwości przed zapisem do portów. No i szumy o ile pamiętam brzmią w związku z różnicami taktowania zupełnie inaczej. Szybciej przekonasz jakiegoś muzyka, żeby ci skomponował "funkcjonalny odpowiednik" w jakimś trackerze ;)

ZbyniuR

  • *****
  • Wiadomości: 3333
  • Miejsce pobytu:
    Carlisle w UK
  • CPC AGA PSX
Odp: Skatin USA
« Odpowiedź #2 dnia: 2014.03.03, 16:43:51 »
A nie ma nikt pomysłu jak ten mechanizm tablicujący zrobić?

Rozumiem że najpierw trzeba by tablicę z częstotliwościami i parametrem podawanym do AY.
Instrukcja obsługi do CPC podaje taką tabelę na stronach 24-26 w rozdziale 7.  (każdy rozdział ma osobno liczone strony)

Tabela zawiera 8 oktaw od -3 do 4, po 12 nut w każdej.
Najniższa podana nuta to C w okt -3, częstotliwość 32.703, a jako drugi parametr do komendy SOUND jest 3822.
   Tak szczerze to pojęcia nie mam jak się ma ten nr do wartości jakie trzeba wysłać do rejestrów w AY.
Najwyższa podana nuta to B w okt 4, częstotliwość 7902.133, a jako drugi parametr do komendy SOUND jest 16.
Środkowe C w okt 0, częstotliwość 261.626, a jako drugi parametr (...) 478.
Międzynarodowe A w okt 0, częstotliwość 440.000, a drugi par... 284.
A dalej cytuję/tłumaczę: Wszystkie powyższe wartości są obliczane z międzynarodowego A w następujący sposób:
Częstotliwość=440*(2^(oktawa+((N-10)/12)))
a parametr do SOUND=ROUND(125000/częstotliwość)
gdzie N to 1 dla C, 2 dla C#, 3 dla D, itd.  :)

A jak to jest w ZX? - Kto ma instrukcję obsługi?

Bo może ten mechanizm tablicujący to po prostu podobny wzorek i kilka linijek Basica umiałoby konwertować pliki między CPC a ZX. :D  Albo jakiś zdolny koder dodał by opcje do playerków  "graj to jako plik z tego tam wiesz..." ;)
« Ostatnia zmiana: 2014.03.03, 17:02:02 wysłana przez ZbyniuR »
- Jeśli masz w domu światło i wodę, tzn. że masz światłowód. ;)

matofesi

  • *****
  • Wiadomości: 2049
  • Miejsce pobytu:
    Toruń/Poland
Odp: Skatin USA
« Odpowiedź #3 dnia: 2014.03.04, 08:58:44 »
A nie ma nikt pomysłu jak ten mechanizm tablicujący zrobić?

Ale co to za problem? Musisz znaleźć w kodzie CPC kawałek wysyłający dane do AYgreka (za pośrednictwem tego czegoś, co tam robi za pośrednika ;)) i zamiast tego zrobić kawałek, który wysyła dane na porty zgodnie z mapowaniem ZX ale po drodze sprawdza, czy ostatnio wybrany indeks nie jest rejestrem częstotliwości i jeśli tak to wg tablicy albo innego algorytmu zamienia dane. Problem tylko w tym, że częstotliwość jest dwubajtowa i jeśli jest zapisywana do rejestrów w kolejności starszy-młodszy to zasadniczo nie ma problemu, ale nie ma technicznych przeszkód, żeby to robić w kolejności odwrotnej i wtedy jest problem.

Ogólnie procedurka musi być dopasowana do konkretnego playera - nie da się tego zrobić w pełni automatycznie.

Cytuj
Rozumiem że najpierw trzeba by tablicę z częstotliwościami i parametrem podawanym do AY.
Instrukcja obsługi do CPC podaje taką tabelę na stronach 24-26 w rozdziale 7.  (każdy rozdział ma osobno liczone strony)

Tabela zawiera 8 oktaw od -3 do 4, po 12 nut w każdej.
Najniższa podana nuta to C w okt -3, częstotliwość 32.703, a jako drugi parametr do komendy SOUND jest 3822.
   Tak szczerze to pojęcia nie mam jak się ma ten nr do wartości jakie trzeba wysłać do rejestrów w AY.
Najwyższa podana nuta to B w okt 4, częstotliwość 7902.133, a jako drugi parametr do komendy SOUND jest 16.
Środkowe C w okt 0, częstotliwość 261.626, a jako drugi parametr (...) 478.
Międzynarodowe A w okt 0, częstotliwość 440.000, a drugi par... 284.
A dalej cytuję/tłumaczę: Wszystkie powyższe wartości są obliczane z międzynarodowego A w następujący sposób:
Częstotliwość=440*(2^(oktawa+((N-10)/12)))
a parametr do SOUND=ROUND(125000/częstotliwość)
gdzie N to 1 dla C, 2 dla C#, 3 dla D, itd.  :)

A jak to jest w ZX? - Kto ma instrukcję obsługi?

Częstotliwości liczy się zgodnie z manualem AYgreka (np. tu: http://dev-docs.atariforge.org/files/AY-3-8910-8912_Feb-1979.pdf str. 19, punkt 3.1) wychodząc z częstotliwości taktowania samego chipa.
Cytuj
The frequency of each square wave generated by three Tone Generators (one each for Channels A, B, and C) is obtained in the PSG by first counting the input clock by 16, then by further counting down the result by the programmed 12-bit Tone Period value.

W wolnym tłumaczeniu
Cytuj
Częstotliwość każej z fal prostokątnych generowanych przez trzy "generatory tonu" (jeden dla każdego z kanałów A, B i C) jest uzyskiwana przez odliczanie zegara wejściowego najpierw przez 16 a następnie przez 12-bitową wartość "okresu tonu".

Zegar w ZXach to 1.7734 MHz, w CPC 1 MHz, co oznacza, że przy okresie ustawionym na 0 częstotliwość dźwięku to odpowiednio około 110,8 i 62,5 KHz a przy okresie 4095 to 27 i 16 Hz. Zmiana częstotliwości przy zmianie okresu o 1 to również około 27 Hz i około 16Hz. Jak widać przy takich parametrach można muzykę co najwyżej mocno aproksymować - CPC potrafi zejść niżej ale też ma dokładniej regulowaną częstotliwość. ZX potrafi podjechać wyżej ale z mniejszą dokładnością.

A to wszystko tylko sam podstawowy dźwięk - z tego samego zegara wychodzi generacja szumu i tutaj brzmień po prostu nie da się do siebie zbliżyć, bo ich regulacja jest zbyt zgrubna i wszelkiego rodzaju perkusje z szumem po prostu będą brzmiały inaczej. To samo dotyczy obwiedni, które są często używane do modulowania brzmienia albo wręcz generowania niskich tonów o innym kształcie niż prostokąt - one też są generowane z wejściowego zegara i również będą miały zupełnie inne zakresy brzmień.

Cytuj
Bo może ten mechanizm tablicujący to po prostu podobny wzorek i kilka linijek Basica umiałoby konwertować pliki między CPC a ZX. :D  Albo jakiś zdolny koder dodał by opcje do playerków  "graj to jako plik z tego tam wiesz..." ;)

Czy nie uważasz, że gdyby to było takie proste, to ktoś już by to dawno zrobił? ;)

Damianx

  • *****
  • Wiadomości: 657
  • Miejsce pobytu:
    Pruszków
Odp: Skatin USA
« Odpowiedź #4 dnia: 2014.03.04, 09:11:56 »
Czyli upraszczając na każdym kompie z Ay ,czy to zx ,cpc ,atari itp ten sam utwór będzie brzmieć podobnie ale też zupełnie inaczej.?
Spectrum512k - Spectrum+128k - +2A - +3 Pear Ay - TC2048 S-VIDEO - Didaktik Gama80k\192k- A4000\060 - A1200\030 - A600\9tails - CD32 - A500 GVP Impact II - C64\SD2IEC\DualSID - Atari130XE\SIO2SD\Stereo - CA2001 - CPC6128\HXC - Atari Mega Ste UltraSatan.

Tygrys

  • Administrator
  • *****
  • Wiadomości: 4540
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: Skatin USA
« Odpowiedź #5 dnia: 2014.03.04, 09:54:08 »
Upraszczając - tak właśnie będzie. Niby podobnie, ale zupełnie inaczej :-X

ZbyniuR

  • *****
  • Wiadomości: 3333
  • Miejsce pobytu:
    Carlisle w UK
  • CPC AGA PSX
Odp: Skatin USA
« Odpowiedź #6 dnia: 2014.03.04, 14:24:53 »

Ta sama melodia zagrana na innym instrumencie brzmi inaczej a jednak poznajemy melodię. :) Gdzie jest napisane że skoro melodię napisano na trąbkę to na fortepianie już nie ma sensu jej grać bo będzie brzmiała inaczej?

   Skoro istnieje nawet player SIDów na CPC i konwerter Amigowych modułów do Amstradowego Protrackera to myślę ktoś tu dramatyzuje. I to że jeszcze nie zrobiono konwertera plików między ZX a CPC albo playera który odtwarza pliki z pokrewnej konstrukcji to przypuszczam że dlatego, że na obu platformach jest taka masa modułków do posłuchania że życia nie starczy by to przesłuchać. Przez co brak nowych źródeł plików do słuchania nie jest czymś co spędza sen z powiek koderom/fanom chiptune. A do tego jak widzę powszechna wiara w to że jest to zbyt trudne by miało sens, zwłaszcza że każdy kogo o to zapytam mówi że efekt i tak byłby do bani.

   A ja myślę że gdyby nie było ludzi którzy kwestionują powszechne przekonania to nadal byśmy mieszkali na drzewach. Jedynie tacy co nie przyjmują takich "prawd" do wiadomości posuwają świat do przodu. Albo giną marnie. hehe. :D

   Myślę że przeliczyć częstotliwości to jest pikuś. Co innego wydaje mi się trudniejsze, a mianowicie różnorodność formatów plików z muzyczkami. Nie znam się na tym szczerze mówiąc ale domyślam się że do samego AYa są ich dziesiątki i to raczej nie takie same na różnych platformach. A mało kto wie który bajt w takim pliku co oznacza, zwłaszcza na obcej maszynie. A to że 2 bajty można wysłać w kolejności na dwa sposoby nie wydaje mi się przeszkodą. Próbujesz jeden i jak brzmi ciulowo to próbujesz drugi i tyle. To nie sejf z milionami kombinacji. ;)

   Trudniej jest wydłubać muzyczkę z gry zwłaszcza gdy zakodowano ją w nietypowy sposób, niż przerobić ją na inny znany już format pliku. Widzę też że nie brak majsterklepków co podłączają coraz to inne układy muzyczne do ZX, a zapewne do każdego trzeba jakiś player albo i tracker napisać. I w tym postrzegają kuszące źródło nowych dźwięków a nie gierki z CPC. I okey szanuję to, nie mam nic przeciw. I daleki jestem od narzucania innym upodobań. :)

   Ale nie mówcie że się nie da, bo założę się że takie konwertery istniały już w czasach gdy na obie platformy duże firmy jeszcze pisały gry. I korzystając z podobieństw sprzętowych przenosili także dźwięki półautomatycznie, a może nawet w pełni.

   A jak ich nie mamy to cóż. Wydaje mi się że prościej niż dłubać w kodzie na obcym kompie jest rozgryzać budowę przeniesionego pliku. Na początek można mając trackera na innym sprzęcie co używa takiego rodzaju pliczków napisać tam dosłownie kilka nutek i zapisać. A wiedząc czego szukamy łatwiej będzie rozpoznać w którym bajcie to schowano. ;)

   Dlatego wg mnie główną przeszkodą (poza pupogodzinami) są uprzedzenia i brak motywacji. No i nie każdy muzyk jest jednocześnie koderem, zwłaszcza biegłym na więcej niż jednym komputerze. - Rzekłem ;)

« Ostatnia zmiana: 2014.03.04, 14:37:57 wysłana przez ZbyniuR »
- Jeśli masz w domu światło i wodę, tzn. że masz światłowód. ;)

matofesi

  • *****
  • Wiadomości: 2049
  • Miejsce pobytu:
    Toruń/Poland
Odp: Skatin USA
« Odpowiedź #7 dnia: 2014.03.05, 09:34:54 »
Ale przeczytałeś to, co napisałem? Ze zrozumieniem? Bo mam wrażenie, że albo nie albo bez.

Co z tego, że z grubsza coś sobie przeliczysz skoro to nadal nie będzie to, co w oryginale? Pierwsze dołączane do ZXów AYgreki miały trochę inny zegar niż ten w oryginalnym 128 - muzyczki robione na nich na prawdziwym 128 po prostu fałszowały. Tutaj przy mechanicznym przeliczaniu będziesz miał to samo.

Oczywiście, że można skonwertować jeden format trackera na inny, ale tutaj pytanie było nie o konwersję źródła tylko o konwersję konkretnej, dostępnej wyłącznie w formie wykonywalnej, muzyczki z konkretnej gry.

I ja nie mówię, że się nie da. Mówię po prostu, że nie ma jednego uniwersalnego rozwiązania a wynik (konwersji binarnej) będzie zawsze gorszy niż napisanie przez fachowca muzyczki od początku na docelowym sprzęcie.

I uwierz mi, że wiem o czym mówię - próbowałem już robić taką konwersję. Wynik był co najwyżej średni. Ale to jaki on będzie zależy w dużej mierze od tego jaka jest muzyczka źródłowa, bo na przykład dawno temu Kassoft zrobił konwersję - o ile pamiętam - Overlandera z CPC i wynik był całkiem przyjemny. Ale to jest zawsze "kwestia osobnicza"

A to co piszesz o "różnorodności formatów" świadczy najwyraźniej o twoim całkowitym niezrozumieniu dyskutowanego w tym wątku problemu - nie dyskutujemy o konwersji w ogóle (a w szczególności o konwersji źródłowej) tylko o konwersji binarnej. Nie wiem, gdzie tu masz w ogóle jakieś formaty, chyba, że chodzi ci o wyripowaną muzyczkę w formacie AY - jej przeniesienie z jednej platformy na drugą to dokładnie ten sam rodzaj problemu co do którego wyrażam (cytując stosowne fakty z dokumentacji) zwoje wątpliwości.


ZbyniuR

  • *****
  • Wiadomości: 3333
  • Miejsce pobytu:
    Carlisle w UK
  • CPC AGA PSX
Odp: Skatin USA
« Odpowiedź #8 dnia: 2014.03.05, 10:42:12 »
Ja tylko wyraziłem swoje zdziwienie tym że tyle pary idzie w konstrukcje sprzętowe a programowych rozwiązań dzięki którym każdy mógłby sobie muzyczki z tak podobnej platformy jak CPC puścić, nie ma. (Choć może są a nie wiem).

A to że na temacie się nie znam to wiem i przecież tego nie ukrywam. I nie chciałem nikogo zdenerwować.
Yyyy Oki no może troszkę chciałem, w nadziei że to kogoś zmobilizuje to rozwiązania.
A że nie byłoby doskonałe, cóż ja bym chętnie posłuchał pliczków z maszyn których nie posiadam na tym co mam i na pewno bym nie marudził że źle to brzmi zwłaszcza że nie słyszałem ich w oryginale. Może jesteś dla siebie zbyt surowy że nie jesteś zadowolony z efektu swojej pracy. Nie wiem. Ale już się nie odzywam. Peace. :)
- Jeśli masz w domu światło i wodę, tzn. że masz światłowód. ;)

Damianx

  • *****
  • Wiadomości: 657
  • Miejsce pobytu:
    Pruszków
Odp: Skatin USA
« Odpowiedź #9 dnia: 2014.03.05, 11:29:53 »
Ej zaraz, zaraz

mam w katalogu z wild playerem różne utwory w formacie ay tak z zx jak i z cpc ,więc pewnie są to ripy z gier i demosów i brzmi to normalnie jak każdy Aygreko podobny.

czy nie można w ten sposób wyciąć muzyki z gry z wersji CPC z tematu i tak wkomponować w wersję zx 48 beeper(choć beeperowa tez mi się podoba) ,bo chyba nie było jej w wersji 48+ay lub 128 i stworzyć wersję taką jak niektóre gry mają np "jet story" gdzie mogę wybrać wersje udźwiękowienia pomiędzy beeper a Ay ???
Spectrum512k - Spectrum+128k - +2A - +3 Pear Ay - TC2048 S-VIDEO - Didaktik Gama80k\192k- A4000\060 - A1200\030 - A600\9tails - CD32 - A500 GVP Impact II - C64\SD2IEC\DualSID - Atari130XE\SIO2SD\Stereo - CA2001 - CPC6128\HXC - Atari Mega Ste UltraSatan.

sect0r

  • *****
  • Wiadomości: 698
  • Miejsce pobytu:
    Oltedal/NO
  • speccyholic
Odp: Skatin USA
« Odpowiedź #10 dnia: 2014.03.05, 12:33:41 »
OT: Czy to wszystko odnosi się także do SAA i utwory z e-trackera, przeniesione z Sama, będą brzmiały na zx'ie z saa inaczej, niż to zakładał autor utworu ?
Szarak # DivIDE+ # MasakratorFM DeluXe by Zaxon

Damianx

  • *****
  • Wiadomości: 657
  • Miejsce pobytu:
    Pruszków
Odp: Skatin USA
« Odpowiedź #11 dnia: 2014.03.05, 13:47:06 »
W tym przypadku chyba będzie identycznie ,ale o to zapytajcie zaxona.
Spectrum512k - Spectrum+128k - +2A - +3 Pear Ay - TC2048 S-VIDEO - Didaktik Gama80k\192k- A4000\060 - A1200\030 - A600\9tails - CD32 - A500 GVP Impact II - C64\SD2IEC\DualSID - Atari130XE\SIO2SD\Stereo - CA2001 - CPC6128\HXC - Atari Mega Ste UltraSatan.

Tygrys

  • Administrator
  • *****
  • Wiadomości: 4540
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: Skatin USA
« Odpowiedź #12 dnia: 2014.03.05, 14:01:17 »
Działa tak samo, bo taktowanie układu jest identyczne.

matofesi

  • *****
  • Wiadomości: 2049
  • Miejsce pobytu:
    Toruń/Poland
Odp: Skatin USA
« Odpowiedź #13 dnia: 2014.03.05, 14:29:46 »
@Damianx od początku usiłuję ci wytłumaczyć - być może zbyt szczegółowo. Da się fizycznie przenieść muzyczkę z CPC na ZXa, da się skonwertować playera itp. Ale bez grubej przeróbki taka muzyczka będzie na ZX grała inaczej niż na CPC. A gruba przeróbka to kombinowanie z dopasowaniem częstotliwości, których się dopasować nie da z przyczyn, które szczegółowo opisałem wyżej ;)

@ZbyniuR Rozwiązania programowego nie ma, bo po prostu nie da się go zrobić dobrze a normalni programiści (np. tacy, którzy za programowanie biorą pieniądze a ośmiobitówki traktują jako dodatkowe hobby) nie lubią robić rozwiązań na pół (albo i mniej) gwizdka chyba, że piszą jakieś rzeczy do własnego użytku. Ja po prostu wiem jak będzie brzmiała muzyka z CPC na ZX (i odwrotnie) po automatycznym przerobieniu i wiem ile pracy trzeba by włożyć w to żeby taka muzyczka zaczęła brzmieć przyzwoicie. I znając oba te fakty po prostu uważam, że gra jest absolutnie niewarta świeczki.

ZbyniuR

  • *****
  • Wiadomości: 3333
  • Miejsce pobytu:
    Carlisle w UK
  • CPC AGA PSX
Odp: Skatin USA
« Odpowiedź #14 dnia: 2014.03.05, 17:51:57 »
Przypomina mi się powiedzonko, że gdy ludzie uważają że coś jest niemożliwe (/niewarte świeczki) to przyjdzie taki co o tym nie wie i to zrobi. :D  Czekam na takiego.
- Jeśli masz w domu światło i wodę, tzn. że masz światłowód. ;)