CM2
From Atariki
Wersja z dnia 17:19, 18 cze 2015 Mono (Dyskusja | wkład) (→Dane pliku - sygnatura) ← Previous diff |
Aktualna wersja Mono (Dyskusja | wkład) |
||
Linia 3: | Linia 3: | ||
Format pliku używany przez program [[Stereo Double Chaos Music Composer 2000]] v1.02 copyright 6.11.1999 by datri. | Format pliku używany przez program [[Stereo Double Chaos Music Composer 2000]] v1.02 copyright 6.11.1999 by datri. | ||
- | Plik CM2 jest zmodyfikowanym plikiem binarnym [[Binarny plik DOSu|DOSu]] i jest pochodną [[CMC (format pliku)|formatu CMC]] rozszerzoną o dane tracków przeznaczonych dla drugiego POKEYa. | + | Plik CM2 jest zmodyfikowanym plikiem binarnym [[Binarny plik DOSu|DOSu]] i jest pochodną formatu [[CMS]] rozszerzoną o dodatkowe komendy. |
== Zmodyfikowany nagłówek binarny DOS == | == Zmodyfikowany nagłówek binarny DOS == | ||
Linia 9: | Linia 9: | ||
|align="center"|Offset ||align="center"|Rozmiar ||align="center"|Opis | |align="center"|Offset ||align="center"|Rozmiar ||align="center"|Opis | ||
|- | |- | ||
- | |align="center"| $00 ||align="center"| $02 || Sygnatura $0000 | + | |align="center"| $00 ||align="center"| $02 || Znacznik $0000 |
|- | |- | ||
|align="center"| $02 ||align="center"| $02 || Adres początku danych | |align="center"| $02 ||align="center"| $02 || Adres początku danych | ||
Linia 20: | Linia 20: | ||
|align="center"|Offset ||align="center"|Rozmiar ||align="center"|Opis | |align="center"|Offset ||align="center"|Rozmiar ||align="center"|Opis | ||
|- | |- | ||
- | |align="center"| $000 ||align="center"| $013 || Sygnatura "<Chaos2000 v1.00>" w [[Kody ekranowe|kodach ekranowych]] | + | |align="center"| $000 ||align="center"| $013 || Sygnatura "<Chaos2000 v1.00>" w [[Kody ekranowe|kodach ekranowych]] |
|- | |- | ||
|align="center"| $013 ||align="center"| $001 || Tempo (globalne) | |align="center"| $013 ||align="center"| $001 || Tempo (globalne) | ||
|- | |- | ||
- | |align="center"| $014 ||align="center"| $040 || Tablica adresów Patternów - młodsze bajty | + | |align="center"| $014 ||align="center"| $040 || Tablica adresów patternów - młodsze bajty |
|- | |- | ||
- | |align="center"| $054 ||align="center"| $040 || Tablica adresów Patternów - starsze bajty | + | |align="center"| $054 ||align="center"| $040 || Tablica adresów patternów - starsze bajty |
|- | |- | ||
|align="center"| $094 ||align="center"| $340 || Tablica definicji instrumentów | |align="center"| $094 ||align="center"| $340 || Tablica definicji instrumentów | ||
Linia 32: | Linia 32: | ||
|align="center"| $3d4 ||align="center"| $01a || Tablica oktaw dla instrumentów | |align="center"| $3d4 ||align="center"| $01a || Tablica oktaw dla instrumentów | ||
|- | |- | ||
- | |align="center"| $3ee ||align="center"| $012 || Tytuł utworu w [[Kody ekranowe|kodach ekranowych]] [[ANTIC]]a | + | |align="center"| $3ee ||align="center"| $012 || Tytuł utworu w [[Kody ekranowe|kodach ekranowych]] |
|- | |- | ||
|align="center"| $400 ||align="center"| $055 || 1 ścieżka w SONG (1 kanał pierwszego POKEYa) | |align="center"| $400 ||align="center"| $055 || 1 ścieżka w SONG (1 kanał pierwszego POKEYa) | ||
Linia 55: | Linia 55: | ||
== Dane patternów == | == Dane patternów == | ||
- | Identyczne, jak w CMC. | + | Rozszerzone o kod $2x pozwalający na zmianę głośności kanału. |
== Dane instrumentów == | == Dane instrumentów == | ||
Linia 61: | Linia 61: | ||
Zawiera 26 bloków po 32 bajty definujące instrument. | Zawiera 26 bloków po 32 bajty definujące instrument. | ||
- | AB | + | AB |
- | CD | + | CD |
- | EF | + | EF |
- | vvvvvvvvvvvvvvvv GH | + | vvvvvvvvvvvvvvvv GH |
dddddddddddddddd IJKL | dddddddddddddddd IJKL | ||
ffffffffffffffff MNOP | ffffffffffffffff MNOP | ||
- | * 8 bajtów definicji obwiedni (v) w kolejności najpierw młodszy nibble, potem starszy | + | * 8 bajtów definicji głośności obwiedni (v) w kolejności najpierw młodszy nibble, potem starszy |
* 8 bajtów definicji zniekształceń obwiedni (d) w kolejności najpierw młodszy nibble, potem starszy | * 8 bajtów definicji zniekształceń obwiedni (d) w kolejności najpierw młodszy nibble, potem starszy | ||
* 8 bajtów odchylenia częstotliwości (f) w kolejności najpierw młodszy nibble, potem starszy | * 8 bajtów odchylenia częstotliwości (f) w kolejności najpierw młodszy nibble, potem starszy | ||
Linia 98: | Linia 98: | ||
1. Sygnatura pliku CM2 zawiera bajty: $9c $a3 $e8 $e1 $ef $f3 $92 $90 $90 $90 $80 $80 $80 $f6 $91 $8e $90 $90 $9e. | 1. Sygnatura pliku CM2 zawiera bajty: $9c $a3 $e8 $e1 $ef $f3 $92 $90 $90 $90 $80 $80 $80 $f6 $91 $8e $90 $90 $9e. | ||
- | Jest to napis "<Chaos2000 v1.00>" w inwersie. Napis ten jest zakodowany przy użyciu [[Kody_ekranowe|kodów ekranowych]], a nie jak w przypadku CMC za pomocą [[ATASCII|kodów ATASCII]]. | + | Jest to napis "<Chaos2000 v1.00>" w inwersie. Napis ten jest zakodowany przy użyciu [[Kody_ekranowe|kodów ekranowych]], a nie jak w przypadku CMC za pomocą [[ATASCII|kodów ATASCII]]. |
2. Znacznik nagłówka binarnego w pliku demonstracyjnym GRAVE.CM2 ma wartości $88 $42. | 2. Znacznik nagłówka binarnego w pliku demonstracyjnym GRAVE.CM2 ma wartości $88 $42. |
Aktualna wersja
Format pliku używany przez program Stereo Double Chaos Music Composer 2000 v1.02 copyright 6.11.1999 by datri.
Plik CM2 jest zmodyfikowanym plikiem binarnym DOSu i jest pochodną formatu CMS rozszerzoną o dodatkowe komendy.
Spis treści |
Zmodyfikowany nagłówek binarny DOS
Offset | Rozmiar | Opis |
$00 | $02 | Znacznik $0000 |
$02 | $02 | Adres początku danych |
$04 | $02 | Adres końca danych |
Dane pliku
Offset | Rozmiar | Opis |
$000 | $013 | Sygnatura "<Chaos2000 v1.00>" w kodach ekranowych |
$013 | $001 | Tempo (globalne) |
$014 | $040 | Tablica adresów patternów - młodsze bajty |
$054 | $040 | Tablica adresów patternów - starsze bajty |
$094 | $340 | Tablica definicji instrumentów |
$3d4 | $01a | Tablica oktaw dla instrumentów |
$3ee | $012 | Tytuł utworu w kodach ekranowych |
$400 | $055 | 1 ścieżka w SONG (1 kanał pierwszego POKEYa) |
$455 | $055 | 2 ścieżka w SONG (2 kanał pierwszego POKEYa) |
$4aa | $055 | 3 scieżka w SONG (3 kanał pierwszego POKEYa) |
$4ff | $001 | Zarezerwowany |
$500 | $055 | 4 ścieżka w SONG (1 kanał drugiego POKEYa) |
$555 | $055 | 5 ścieżka w SONG (2 kanał drugiego POKEYa) |
$5aa | $055 | 6 scieżka w SONG (3 kanał drugiego POKEYa) |
$5ff | $001 | Zarezerwowany |
$600 | - | Dane patternów |
Dane patternów
Rozszerzone o kod $2x pozwalający na zmianę głośności kanału.
Dane instrumentów
Zawiera 26 bloków po 32 bajty definujące instrument.
AB CD EF vvvvvvvvvvvvvvvv GH dddddddddddddddd IJKL ffffffffffffffff MNOP
- 8 bajtów definicji głośności obwiedni (v) w kolejności najpierw młodszy nibble, potem starszy
- 8 bajtów definicji zniekształceń obwiedni (d) w kolejności najpierw młodszy nibble, potem starszy
- 8 bajtów odchylenia częstotliwości (f) w kolejności najpierw młodszy nibble, potem starszy
- 4 bajty atrybutów w kolejności JI LK NM PO
- 4 bajty atrybutów w kolejności AB CD EF GH
Dane oktaw instrumentów
Zawiera 26 bajtów oznaczających numery oktawy bazowej dla instrumentu. Wartości pary bitów 0 i 1 oznaczają:
- 0 - oktawy 1-2
- 1 - oktawy 2-3
- 2 - oktawy 3-4
- 3 - oktawy 4-5
Bity 2..7 są zarezerwowane.
Dane tracków
Rozszerzone o rozkazy:
- $87 V: volume (w kolejnej linii na każdej ścieżce definiuje się głośność kanału)
- $97 P: pause (na tracku 2 ilość ramek, na tracku 3 ilość sekund - sumarycznie pauza wynosi więc 50*yy+xx ramek)
- $A7 M: mode (na tracku 2: $00 = normal - player gra 1x na ramkę, $01 = double - player gra 2x na ramkę)
- $B7 I: transpozycja (w kolejnej linii definiuje się transpozycje każdego kanału)
Uwagi
1. Sygnatura pliku CM2 zawiera bajty: $9c $a3 $e8 $e1 $ef $f3 $92 $90 $90 $90 $80 $80 $80 $f6 $91 $8e $90 $90 $9e. Jest to napis "<Chaos2000 v1.00>" w inwersie. Napis ten jest zakodowany przy użyciu kodów ekranowych, a nie jak w przypadku CMC za pomocą kodów ATASCII.
2. Znacznik nagłówka binarnego w pliku demonstracyjnym GRAVE.CM2 ma wartości $88 $42.