PSG (format pliku)
From Atariki
Wersja z dnia 23:16, 13 kwi 2015 KMK (Dyskusja | wkład) ← 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]. Zawartość takiego pliku to nieskompresowany strumień wartości rejestrów układu PSG, co sprawia, że pliki PSG są raczej długie: przeciętnie mają od kilkudziesięciu do kilkuset KB długości. | + | 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]] w wersji dla ZX Spectrum ma 615 KB). | ||
== Struktura == | == Struktura == | ||
Linia 9: | Linia 11: | ||
<table border =1 cellpadding=5> | <table border =1 cellpadding=5> | ||
<tr><td><b>Bajty</b></td><td><b>Znaczenie</b></td></tr> | <tr><td><b>Bajty</b></td><td><b>Znaczenie</b></td></tr> | ||
- | <tr><td>0-3</td><td><p>Znacznik formatu: cztery bajty o wartościach kolejno: $50, $53, $47, $1A ("PSG" + znak CTRL/Z).</p></td></tr> | + | <tr><td>0-3</td><td><p>Znacznik formatu. Cztery bajty o wartościach kolejno: $50, $53, $47, $1A ("PSG" + znak CTRL/Z).</p></td></tr> |
<tr><td>4-15</td><td><p>Dwanaście bajtów o wartości $00.</p></td></tr> | <tr><td>4-15</td><td><p>Dwanaście bajtów o wartości $00.</p></td></tr> | ||
</table> | </table> | ||
- | [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 28: | 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
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.