PSG (format pliku)

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 23:39, 13 kwi 2015
KMK (Dyskusja | wkład)
(szczegóły, szczególiki)
← Previous diff
Aktualna wersja
Mono (Dyskusja | wkład)
(Struktura - zaktualizowany link do "niektorych zrodel")
Linia 1: Linia 1:
-Format pliku przeznaczony do przechowywania danych dźwiękowych dla układu PSG, czyli [http://pl.wikipedia.org/wiki/General_Instrument_AY-3-8910 AY-3-8910/YM2149].+Format pliku przeznaczony do przechowywania danych dźwiękowych dla układu [[PSG (układ)|PSG]], czyli [http://pl.wikipedia.org/wiki/General_Instrument_AY-3-8910 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 [[Yerzmyey]]a z gry [[Droga do Duplandu]] ma 615 KB).+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 [[Yerzmyey]]a z gry [[Droga do Duplandu]] w wersji dla ZX Spectrum ma 615 KB).
== Struktura == == Struktura ==
Linia 16: Linia 16:
-[https://code.google.com/p/game-music-emu/issues/detail?id=10 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.+[https://bitbucket.org/mpyne/game-music-emu/wiki/Home 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 ===
Linia 30: Linia 30:
</table> </table>
-Pozostałe wartości (w tym np. sekwencja $FE,$00) są zarezerwowane, ich wystąpienie przypuszczalnie świadczy o uszkodzeniu danych pliku PSG. +Pozostałe wartości (w tym np. sekwencja $FE,$00) są zarezerwowane, ich wystąpienie przypuszczalnie świadczy o uszkodzeniu danych pliku PSG.
== Zobacz też == == Zobacz też ==
* [[Evie]] * [[Evie]]
-* [[PSGPlay]]+* [[PSG Player]]
[[Kategoria:Formaty plików]] [[Kategoria:Formaty plików]]

Aktualna wersja

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).

Spis treści

Struktura

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

Nagłówek

BajtyZnaczenie
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.

KomendaDaneZnaczenie
$00-$0Fwartość rejestru (1 bajt)

Rozkaz załadowania wartości rejestru do rejestru PSG o podanym numerze.

$FF-

Rozkaz oczekiwania na impuls synchronizacji pionowej (VBL).

$FElicznik 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ż

Personal tools