Autor Wątek: Muzyka w grach i pliki muzyczne  (Przeczytany 32623 razy)

Abrimaal

  • *****
  • Wiadomości: 965
  • Miejsce pobytu:
    Lemmingrad
  • Zamulator
    • Games for ULA plus
Muzyka w grach i pliki muzyczne
« dnia: 2012.02.27, 00:39:16 »
1. Kiedyś to robiłem z łatwością, teraz wszystko wypłynęło. Jak znaleźć muzykę na AY w kodzie gry? Wiem, że zaczynało się to od jakiś dwóch OUT, przypomnijcie proszę.

2. Czy istnieje możliwość skonvertowania muzyki z pliku .ay z powrotem do kodu maszynowego? Jeśli tak, to za pomocą jakiego programu?
AY Music, ULA plus.

Tygrys

  • Administrator
  • *****
  • Wiadomości: 4537
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: Muzyka w grach i pliki muzyczne
« Odpowiedź #1 dnia: 2012.02.27, 09:46:09 »
1. Kiedyś to robiłem z łatwością, teraz wszystko wypłynęło. Jak znaleźć muzykę na AY w kodzie gry? Wiem, że zaczynało się to od jakiś dwóch OUT, przypomnijcie proszę.

2. Czy istnieje możliwość skonvertowania muzyki z pliku .ay z powrotem do kodu maszynowego? Jeśli tak, to za pomocą jakiego programu?

1. to co musisz znaleźć to:
LD BC,65533 ; hex: 1,$fd,$ff
OUT (C),A; hex: $ED $79

albo
LD BC,49149 ; hex; 1,$fd,$bf
OUT (C),A ; hex: $ED $79


albo wariacje tych powyższych ;) Zazwyczaj player jest usytuowany na początku banku pamięci, czyli od 49152.
Długość bloku z muzyką zawsze była dla mnie tajemnicą ;) i kopiowałem blok pamięci 'na wyczucie'.


2. Na pewno się da. Trzeba poczytać o formacie AY i wyodrębnić blok binarny z playerem i danymi.
W sumie to ciekawy temat na artykuł. Ktoś chętny do napisania ? (tak, pytanie retoryczne).

Abrimaal

  • *****
  • Wiadomości: 965
  • Miejsce pobytu:
    Lemmingrad
  • Zamulator
    • Games for ULA plus
Odp: Muzyka w grach i pliki muzyczne
« Odpowiedź #2 dnia: 2012.03.06, 23:24:44 »
Widziałem na youtube, jak Yerzmyey ładował pliki .stc do ZX 81,
spytałem go o nie: tu odpowiedź.
Pliki STC są właściwie natywnymi plikami Spectrum.
Są to skompilowane songi SoundTrackera 1.1 (bez ustawionego Randomize).
Co innego puszczenie ich w przerwaniach - do tego trzeba się znać na kodowaniu. Umie to uczynić MAT.
Btw, do użycia we własnym programie trzeba im nadać już jakiś adres.
Ja natomiast mam pytanie - jak załadować .stc do emu ZX Spectrum,
czy wystarczy zmienić rozszerzenie np. na tap lub sna? Czy wymaga to bardziej skomplikowanej metody?
AY Music, ULA plus.

Tygrys

  • Administrator
  • *****
  • Wiadomości: 4537
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: Muzyka w grach i pliki muzyczne
« Odpowiedź #3 dnia: 2012.03.07, 09:17:52 »
Plik trzeba załadować jako binarny pod konkretny adres. Wiele emulatorów ma taką możliwość.

YERZMYEY/HOOY-PROGRAM

  • *****
  • Wiadomości: 1187
  • Miejsce pobytu:
    Rubber Planet
  • AY RIDERS
    • ZX Spectrum demos/games
Odp: Muzyka w grach i pliki muzyczne
« Odpowiedź #4 dnia: 2012.03.07, 11:06:05 »
Widziałem na youtube, jak Yerzmyey ładował pliki .stc do ZX 81,


Nooo, tu jest trochę różnica, bo ZX81 ma player przystosowany bezpośrednio do ładowania tych plików (i zczytywania ich z FAT).

Na Spectrum robią to też playery, ale wciąż nie widze chętnego, by przerobić WildPlayer na 128K. ;)

Abrimaal

  • *****
  • Wiadomości: 965
  • Miejsce pobytu:
    Lemmingrad
  • Zamulator
    • Games for ULA plus
Odp: Muzyka w grach i pliki muzyczne
« Odpowiedź #5 dnia: 2012.03.07, 22:49:14 »
Plik trzeba załadować jako binarny pod konkretny adres. Wiele emulatorów ma taką możliwość.
... a czy istnieje możliwość wyczytania skądś tego adresu, czy metodą prób i błędów ładować po kolei?
AY Music, ULA plus.

Tygrys

  • Administrator
  • *****
  • Wiadomości: 4537
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: Muzyka w grach i pliki muzyczne
« Odpowiedź #6 dnia: 2012.03.08, 07:35:19 »
... a czy istnieje możliwość wyczytania skądś tego adresu, czy metodą prób i błędów ładować po kolei?

W zależności od potrzeb, adres może być różny, a do tego zależny od innych programów/danych.
Napisz konkretnie co chciałbyś zrobić, a ja postaram się pomóc.


Abrimaal

  • *****
  • Wiadomości: 965
  • Miejsce pobytu:
    Lemmingrad
  • Zamulator
    • Games for ULA plus
Odp: Muzyka w grach i pliki muzyczne
« Odpowiedź #7 dnia: 2012.03.08, 19:46:46 »
Chciałbym w przerabianych loaderach, kiedy wyświetla się screen
aby grała muzyka (z tej gry lub inna).
Mogę to zrobić w Basic (PAUSE 1 i oczekiwanie na klawisz) lub w asm.
Do tej pory szukałem w jednym nieskompresowanym demo.
Znalazłem taki fragment kodu, jednak puszczając go w pętli cały czas gra tylko pierwszy dźwięk:
ORG 50221
LD C, 253
LD B, 255 (tutaj wykonuje LOOP przy JP P)
OUT (C),A
LD B,191
OUT (C),A
DEC A
JP P, 50223
RET
Może trzeba załadować inicjalne wartości do rejestrów?
AY Music, ULA plus.

Tygrys

  • Administrator
  • *****
  • Wiadomości: 4537
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: Muzyka w grach i pliki muzyczne
« Odpowiedź #8 dnia: 2012.03.09, 08:33:52 »
Może trzeba załadować inicjalne wartości do rejestrów?

Nawet trzeba. Kod który pokazałeś programuje AY w sposób chaotyczny, i z tego dźwięku (sensownego) nie będzie.
Troche na temat AY i jego rejestrów można poczytać tu: http://www.spectrum.8bit.pl/ay38910/aygrek.htm

Spróbuj najpierw poćwiczyć pisząc program w BASICu.


RafalM

  • *****
  • Wiadomości: 1133
  • Miejsce pobytu:
    Sulejówek
Odp: Muzyka w grach i pliki muzyczne
« Odpowiedź #9 dnia: 2012.03.09, 12:28:18 »
O graniu muzyki przez AY można też poczytać np. w podręczniku do Timexa.

Abrimaal

  • *****
  • Wiadomości: 965
  • Miejsce pobytu:
    Lemmingrad
  • Zamulator
    • Games for ULA plus
Odp: Muzyka w grach i pliki muzyczne
« Odpowiedź #10 dnia: 2012.03.09, 23:15:40 »
Może trzeba załadować inicjalne wartości do rejestrów?

Nawet trzeba. Kod który pokazałeś programuje AY w sposób chaotyczny, i z tego dźwięku (sensownego) nie będzie.
Troche na temat AY i jego rejestrów można poczytać tu: http://www.spectrum.8bit.pl/ay38910/aygrek.htm

Spróbuj najpierw poćwiczyć pisząc program w BASICu.

Mój "AY Controller" najprostszy w BASIC, był jednym z pierwszych załączników na tym forum:
http://www.speccy.pl/forum/index.php/topic,150.msg1705.html#msg1705
Poszukam jeszcze w demach i grach innego playera, który ruszy.
« Ostatnia zmiana: 2012.03.09, 23:17:48 wysłana przez Abrimaal »
AY Music, ULA plus.

Abrimaal

  • *****
  • Wiadomości: 965
  • Miejsce pobytu:
    Lemmingrad
  • Zamulator
    • Games for ULA plus
Odp: Muzyka w grach i pliki muzyczne
« Odpowiedź #11 dnia: 2012.03.13, 05:31:34 »
Czy jest jakaś reguła, w którym banku najczęściej umieszczona jest muzyka w ZX 128?
Dotyczy to gier, które na 48 nie mają muzyki, bo jeśli AY gra na 48 to musi być w MAIN RAM
AY Music, ULA plus.

matofesi

  • *****
  • Wiadomości: 2048
  • Miejsce pobytu:
    Toruń/Poland
Odp: Muzyka w grach i pliki muzyczne
« Odpowiedź #12 dnia: 2012.03.13, 07:54:02 »
Nie ma. Zwykle raczej w banku, który nie jest contended (czyli 0, 2, 4 lub 6) choć w wypadku gier nie ma to aż takiego strategicznego znaczenia więc zasadniczo może być w dowolnym poza 5 i 2 (podstawowy screen i pamięć $8000-$BFFF).

Abrimaal

  • *****
  • Wiadomości: 965
  • Miejsce pobytu:
    Lemmingrad
  • Zamulator
    • Games for ULA plus
Odp: Muzyka w grach i pliki muzyczne
« Odpowiedź #13 dnia: 2012.03.17, 05:58:32 »

Próbuję już wszystkiego, męczę się ponad tydzień aby znaleźć adres uruchamiający muzę w demach.
Na początek wziąłem jedno proste na ZX48, Znalazłem pętlę, w której jest scroll i analyzer,
chodzi ona w kółko, zaraz po wywołaniu obrazka. Po obrazku jest jeden CALL ale on nie gra muzyki (nie wiem co robi).

Wgranie pliku .stc jako binary też nic nie daje, debugger nie znajduje tam żadnych OUT, które z łatwością znajduje w demo.
Czy mógłby ktoś podrzucić jakiś utwór na AY (jako binary, tap/tzx czy snapshot) wraz z adresem startowym?
Zrobiłem trainer do Action Force 2 i bardzo chciałbym w intro wrzucić jakąś muzę.  Ratujcie, bo sobie strzelę w łeb  :-[
AY Music, ULA plus.

Pyza^Illusion

  • *****
  • Wiadomości: 586
  • Miejsce pobytu:
    Lubań, dolnośląskie
Odp: Muzyka w grach i pliki muzyczne
« Odpowiedź #14 dnia: 2012.03.17, 08:02:11 »
.stc (o czym już było pisane) to sam "tekst" utworu, bez playera go odtwarzającego. Skompiluj dowolną muzyczkę ST Compilerem (pod wybrany przez siebie adres) i nagraj jako osobne pliki player i skompilowany kawałek. W zasadzie potrzebny będzie Ci tylko player. Tam gdzie się kończy kod playera, dograj sobie swojego .stc (opcją binary w emulatorze).
Adres pod który skompilowałeś utwór wywołuje inicjację (np RANDOMIZE USR 40000), odgrywanie muzyki ma wtedy RANDOMIZE USR 40006 i należy ją wywoływać co ramkę. Powinno to zadziałać.
ZX Spectrum+ (128kB by STAVI), FDD3000, TI-OF-TTL/ZXVGS, Masterface2b, MacFace II, DivIDE plus, Just Speccy 128...