PSG (format pliku)

Z Atariki mirror
Przejdź do nawigacjiPrzejdź do wyszukiwania

Format pliku przeznaczony do przechowywania danych dźwiękowych dla układu PSG, czyli AY-3-8910/YM2149.

Zawartość takiego pliku to nieskompresowany strumień wartości rejestrów układu PSG: to sprawia, że pliki PSG są raczej długie, przeciętnie mają od kilkudziesięciu do kilkuset KB długości (np. plik zawierający 9-minutowy zapis utworu Yerzmyeya z gry Droga do Duplandu w wersji dla ZX Spectrum ma 615 KB).

Struktura

Plik PSG składa się z 16-bajtowego nagłówka i następującego zaraz za nim strumienia danych.

Nagłówek

Bajty Znaczenie
0-3 Znacznik formatu. Cztery bajty o wartościach kolejno: $50, $53, $47, $1A ("PSG" + znak CTRL/Z).
4-15 Dwanaście bajtów o wartości $00.


Niektóre źródła twierdzą, że strumień danych zaczyna się zaraz za początkową, czterobajtową sygnaturą formatu, czyli na pozycji 4 w pliku PSG. Mimo że takie potraktowanie zarezerwowanych bajtów nagłówka jest nieszkodliwe (patrz niżej), ma tu jednak miejsce przekłamanie: strumień danych zaczyna się dopiero na pozycji 16.

Strumień danych

Strumień danych PSG składa się z bajtów "komend", którym mogą towarzyszyć dodatkowe dane.

Komenda Dane Znaczenie
$00-$0F wartość rejestru (1 bajt) Rozkaz załadowania wartości rejestru do rejestru PSG o podanym numerze.
$FF - Rozkaz oczekiwania na impuls synchronizacji pionowej (VBL).
$FE licznik czasu (1 bajt) Rozkaz odczekania liczby impulsów synchronizacji pionowej określonej przez wartość licznik czasu * 4.
$FD - Rozkaz zakończenia odtwarzania. Na to, że każdy plik PSG będzie na końcu miał ten rozkaz, niestety nie można liczyć.

Pozostałe wartości (w tym np. sekwencja $FE,$00) są zarezerwowane, ich wystąpienie przypuszczalnie świadczy o uszkodzeniu danych pliku PSG.

Zobacz też