speccy.pl
Facebook Like


SPECCY.PL

[SPECCY.PL PARTY 2023.1]

[WIKI SPECCY.PL]
Polecamy

KOMITET SPOŁECZNY KRONIKA POLSKIEJ DEMOSCENY
PIXEL HEAVEN 2023
AYGOR
Forum ZX Spectrum
Zawartość panelu chwilowo niedostępna
Archiwum plików ZX Spectrum
Nawigacja
Aktualizacja formatu .ay i archiwum muzyczne AYGOR
W archiwum AYGOR z każdą edycją przybywa muzyki. W poprzedniej kompilacji wprowadzone zostały dość duże zmiany. Muzycy, których przybywa (folder Musicians) został podzielony na podfoldery wg alfabetu. W folderach Games i Demos docelowo znajdować się będą tylko utwory anonimowych i niezidentyfikowanych autorów, więc plików jest i będzie znacznie mniej, niż w podobnych archiwach z innych platform.

Poważniejsze zmiany wprowadzane są systematycznie w samych plikach .ay. Oprócz ujednolicenia pisowni i ustalania czasu, największą ewolucją jest zamiana nieużywanego pola FadeLength na SysPresets. FadeLength w starszych odtwarzaczach miało na celu wyciszanie utworu pod koniec, w dzisiejszych nie jest to używane. Dzięki tej poprawce format .ay może obsługiwać różne chipy muzyczne, różne taktowania Z80 i chipów, różne konfiguracje, nie tylko bezpośrednio spokrewnione z ZX Spectrum.
Pole SysPresets definiuje konfigurację dla każdego utworu. Bazuje ono na pojedynczych bitach i zawiera predefiniowane ustawienia (presety) identyfikacji sprzętu. Niższy bajt dotyczy ogólnych ustawień, wyższy przeznaczony jest dla chipów muzycznych.


W odróżnieniu od formatów trackerowych (np. stc, stp, asc, sqt, pt3, st2) czy zrzutów rejestrów AY w czasie (ym, vtx, psg), format .ay zawiera kod dla procesora Z80, który jest wykonywany (emulowany). Te trzy metody można odpowiednio porównać: .ym do snapshotu czy action replay, formaty trackerowe do bloków kodu, a pliki .ay do finalnych plików .tap czy .trd, z nagłówkiem, loaderem i informacją o autorach.

Początkowo emulacja ograniczała się do muzyki z ZX Spectrum i Amstrad CPC granej przez chip AY na przerwaniach 50Hz. Dzięki dokładnej emulacji procesora Z80 .ay to jedyny format, który oprócz muzyki może przechowywać efekty dźwiękowe, sample i muzykę dla beepera. Na przestrzeni lat rozszerzano możliwości muzyczne komputerów montując w nich drugi AY lub inne chipy, a format .ay stał w miejscu.
Standard Turbosound (2xAY) dla ZX Spectrum i chip SAA 1099, znany z komputera SAM Coupe są już obsługiwane przez jeden z odtwarzaczy (Modo dla Android).
Emulacja chipu SAA ograniczona jest do muzyki granej na przerwaniach 50Hz, więc nie ma różnicy, do jakiego komputera z Z80 jest ten chip podłączony. Istotne, żeby był tak samo taktowany i używał tych samych portów. Trudniejsza sytuacja pojawia się w przypadku odtwarzania sampli i digi. Dla każdej platformy musi być określone taktowanie Z80, a także pewnych elementów środowiska. W przypadku ZX Spectrum z chipem SAA musi być uwzględnione inne taktowanie Z80, emulacja beepera i AY, gdyby ktokolwiek chciał wykorzystać ten zestaw w muzyce.


Wartości SysPresets ułatwiają konfigurację platformy i ustawienie parametrów emulacji przez rozpoczęciem odtwarzania. Identyfikacja CPC dotychczas odbywała się przez odczyt aktywnych portów po próbie grania. Po ustawieniu odpowiedniego presetu, wartości te są odczytywane z nagłówka utworu. Inne wartości presetów mogą być przydatne do synchronizacji Z80 i chipu muzycznego, czyli "fine tuning", a także do zdefiniowania specyficznych wartości dla konstrukcji bazujących na ZX Spectrum.


Format .ay został opracowany dla systemu Amiga. Aby zachować wsteczną kompatybilność, zmiany muszą być jak najmniej zauważalne dla nierozwijanych już odtwarzaczy. Oczywiste jest, że starszy player nie zagra muzyki z nieobsługiwanego chipu, czy grającego na innych portach, ale nie można spowodować, że muzyka która dotąd w nich grała, grać przestanie. W istniejących już plikach .ay z ZX i CPC, ewentualne poprawki dotyczą tylko ustawienia presetu na 0 lub 128, jeśli wcześniej ustawiona była wartość FadeLength.


W planach jest wprowadzenie dostrojenia zegara Z80, przerwań 60Hz dla NTSC, równoległego odtwarzania dwóch ścieżek i kilku nowych wewnętrznych PlayerVersion. Tu kilka słów wyjaśnienia, czym jest PlayerVersion. Oprócz danych zawartych w pliku .ay, do odtwarzania muzyki niezbędna jest pętla, która umieszczana jest przez emulator w pamięci pod adresem 0. Ten adres niekiedy koliduje z kodem czy danymi muzyki, stąd niektóre utwory nie grają. Nie ma przeszkód, aby w krytycznych sytuacjach pętla ta znajdowała się w innym miejscu. PlayerVersion jest także systemowym presetem, który zawiera wytyczne do emulacji konkretnego środowiska. Najprostszym przykładem użycia jest wstawienie RET pod adres systemowych przerwań, dzięki czemu muzyka nie zawiesi się po napotkaniu w kodzie instrukcji RST 56.


Zaktualizowany także został pakiet AY Maker, do tworzenia i edycji plików .ay oraz dokumentacja formatu (po angielsku) znajdująca się w każdej edycji AYGOR, w folderze ay_development/docs. Link do pobrania AY Maker.

Autor: Abrimaal

Licencja Creative Commons Artykuł autorstwa Abrimaal został wydany na licencji Creative Commons Uznanie autorstwa - Użycie niekomercyjne - Bez utworów zależnych 4.0 Międzynarodowe License.
W oparciu o utwór dostępny pod adresem http://speccy.pl/articles.php?article_id=50

Brak komentarzy. Może czas dodać swój?
Dodaj komentarz
Zaloguj się, aby móc dodać komentarz.
Oceny
Tylko zarejestrowani użytkownicy mogą oceniać zawartość strony
Zaloguj się , żeby móc zagłosować.

Brak ocen. Może czas dodać swoją?