TM2
From Atariki
(Różnice między wersjami)
Wersja z dnia 21:13, 15 wrz 2006 Epi (Dyskusja | wkład) ← Previous diff |
Wersja z dnia 21:15, 15 wrz 2006 Epi (Dyskusja | wkład) Next diff → |
||
Linia 4: | Linia 4: | ||
Wewnątrz znajdują się następujące dane: | Wewnątrz znajdują się następujące dane: | ||
- | <table> | + | <table border=1> |
<tr><td>offset</td><td>długość</td><td>zawartość</td></tr> | <tr><td>offset</td><td>długość</td><td>zawartość</td></tr> | ||
<tr><td>$0000</td><td>$0017</td><td>identyfikator pliku w formacie TMC 2.0: 14,21,13+128,c'TMC SONG FILE 2.0'*,13+128,21,14</td></tr> | <tr><td>$0000</td><td>$0017</td><td>identyfikator pliku w formacie TMC 2.0: 14,21,13+128,c'TMC SONG FILE 2.0'*,13+128,21,14</td></tr> | ||
Linia 11: | Linia 11: | ||
<tr><td>$001e</td><td>$0001</td><td>początkowa szybkość odtwarzania utworu</td></tr> | <tr><td>$001e</td><td>$0001</td><td>początkowa szybkość odtwarzania utworu</td></tr> | ||
<tr><td>$001f</td><td>$0001</td><td>ilość wywołań playera na ramkę</td></tr> | <tr><td>$001f</td><td>$0001</td><td>ilość wywołań playera na ramkę</td></tr> | ||
- | <tr><td>$0020</td><td>$0060</td><td>dane informacyjne o utworze wpisane przez autora; z racji istnienia ramek | + | <tr><td>$0020</td><td>$0060</td><td>dane informacyjne o utworze wpisane przez autora; z racji istnienia ramek bocznych w programie, bajty $20,$3f,$40,$5f,$60,$7f są obecnie nieużywane</td></tr> |
- | bocznych w programie, bajty $20,$3f,$40,$5f,$60,$7f są obecnie nieużywane</td></tr> | + | |
<tr><td>$0080</td><td>$0080</td><td>młodsze bajty adresów instrumentów</td></tr> | <tr><td>$0080</td><td>$0080</td><td>młodsze bajty adresów instrumentów</td></tr> | ||
<tr><td>$0100</td><td>$0100</td><td>młodsze bajty adresów patternów</td></tr> | <tr><td>$0100</td><td>$0100</td><td>młodsze bajty adresów patternów</td></tr> | ||
Linia 18: | Linia 17: | ||
<tr><td>$0300</td><td>$0080</td><td>starsze bajty adresów instrumentów</td></tr> | <tr><td>$0300</td><td>$0080</td><td>starsze bajty adresów instrumentów</td></tr> | ||
<tr><td>$0380</td><td>...</td><td>dane songu</td></tr> | <tr><td>$0380</td><td>...</td><td>dane songu</td></tr> | ||
- | <tr><td>...</td><td>...</td><td>dane instrumentów i paternów (zgodnie z adresami w tablicy); uwaga, nie są | + | <tr><td>...</td><td>...</td><td>dane instrumentów i paternów (zgodnie z adresami w tablicy); uwaga, nie są one ustawione kolejno, ale zgodnie z zasadą: ostatnio używany na koniec</td></tr> |
- | one ustawione kolejno, ale zgodnie z zasadą: ostatnio używany na koniec</td></tr> | + | |
</table> | </table> | ||
Linia 28: | Linia 26: | ||
... | ... | ||
* numer patternu na pierwszym kanale, wartość transpozycji | * numer patternu na pierwszym kanale, wartość transpozycji | ||
- | * bajt długość patternów($01-$40), lub koniec odgrywania ($00) lub skok do | + | * bajt długość patternów($01-$40), lub koniec odgrywania ($00) lub skok do pozycji w songu ($80-$ff), numer linii do skoku znajduje się w poprzednim bajcie (transpozycja pierwszego kanału) |
- | pozycji w songu ($80-$ff), numer linii do skoku znajduje się w poprzednim | + | |
- | bajcie (transpozycja pierwszego kanału) | + | |
=== Dane instrumentów === | === Dane instrumentów === | ||
Linia 36: | Linia 32: | ||
* 19 bajtów konfiguracyjnych dźwięku: | * 19 bajtów konfiguracyjnych dźwięku: | ||
** 8 bajtów transpozycji | ** 8 bajtów transpozycji | ||
- | ** długość danych obwiedni i punkt pętlowania (Uwaga, ta wartość jest 3 razy | + | ** długość danych obwiedni i punkt pętlowania (Uwaga, ta wartość jest 3 razy większa od tej używanej w TMC.) |
- | większa od tej używanej w TMC.) | + | ** pozostałe 9 bajtów definiujących typ dźwięku * do 255 bajtów obwiedni dźwięku (tyle ile ustalono w jej długości), ustawione w trójki $AB,$CD,$EF, gdzie: |
- | ** pozostałe 9 bajtów definiujących typ dźwięku | + | |
- | * do 255 bajtów obwiedni dźwięku (tyle ile ustalono w jej długości), ustawione | + | |
- | w trójki $AB,$CD,$EF, gdzie: | + | |
* A: zniekształcenie | * A: zniekształcenie | ||
* B: głośność podstawowej obwiedni | * B: głośność podstawowej obwiedni | ||
Linia 51: | Linia 44: | ||
Szereg poleceń, typ polecenia i jego długość jest rozpoznawana po pierwszym bajcie: | Szereg poleceń, typ polecenia i jego długość jest rozpoznawana po pierwszym bajcie: | ||
* $00: + nowa głośność | * $00: + nowa głośność | ||
- | * $01-$3f: nowa nuta + instrument (jeśli instument>=128, to instrument jest | + | * $01-$3f: nowa nuta + instrument (jeśli instument>=128, to instrument jest brany bez ostatniego bitu i dochodzi dodatkowy bajt: nowa głośność) |
- | brany bez ostatniego bitu i dochodzi dodatkowy bajt: nowa głośność) | + | * $40: nieużywane |
- | * $40: nieużywane 8-) | + | |
* $41-$7f: nowa nuta + nowa głośność | * $41-$7f: nowa nuta + nowa głośność | ||
- | * $80: + ilośc pustych linii w patternie (używane tylko wtedy gdy ich ilość | + | * $80: + ilośc pustych linii w patternie (używane tylko wtedy gdy ich ilość wynosi przynajmniej 15) |
- | wynosi przynajmniej 15) | + | |
* $81-$bc: nowa nuta | * $81-$bc: nowa nuta | ||
- | * $c0-$cf: nowe tempo (ten kod poprzedza kod dotyczący pozostałych informacji w | + | * $c0-$cf: nowe tempo (ten kod poprzedza kod dotyczący pozostałych informacji w tej linii) |
- | tej linii) | + | |
* $d0-$df: specjalny kod | * $d0-$df: specjalny kod | ||
* $e0-$ef: specjalny kod + nowa głośność | * $e0-$ef: specjalny kod + nowa głośność | ||
- | * $f0-$fe: puste linie (od 0 do 14, kod 0 jest używany, gdy w danej linii jest | + | * $f0-$fe: puste linie (od 0 do 14, kod 0 jest używany, gdy w danej linii jest tylko zmiana tempa) |
- | tylko zmiana tempa) | + | |
* $ff: puste linie aż do końca paternu | * $ff: puste linie aż do końca paternu | ||
+ | |||
+ | [[Kategoria: Formaty plików]] |
Wersja z dnia 21:15, 15 wrz 2006
Format modułu muzycznego używany przez program Theta Music Composer 2.0.
Plik w tym formacie posiada normalny nagłówek binarny, składa się z jednego bloku. Wewnątrz znajdują się następujące dane:
offset | długość | zawartość |
$0000 | $0017 | identyfikator pliku w formacie TMC 2.0: 14,21,13+128,c'TMC SONG FILE 2.0'*,13+128,21,14 |
$0017 | $0002 | długość danych w pamięci |
$0019 | $0005 | konfiguracja POKEYa i sposób odtwarzania |
$001e | $0001 | początkowa szybkość odtwarzania utworu |
$001f | $0001 | ilość wywołań playera na ramkę |
$0020 | $0060 | dane informacyjne o utworze wpisane przez autora; z racji istnienia ramek bocznych w programie, bajty $20,$3f,$40,$5f,$60,$7f są obecnie nieużywane |
$0080 | $0080 | młodsze bajty adresów instrumentów |
$0100 | $0100 | młodsze bajty adresów patternów |
$0200 | $0100 | starsze bajty adresów patternów |
$0300 | $0080 | starsze bajty adresów instrumentów |
$0380 | ... | dane songu |
... | ... | dane instrumentów i paternów (zgodnie z adresami w tablicy); uwaga, nie są one ustawione kolejno, ale zgodnie z zasadą: ostatnio używany na koniec |
Dane songu
- numer patternu na ostatnim kanale, wartość transpozycji
- numer patternu na przedostatnim kanale, wartość transpozycji
...
- numer patternu na pierwszym kanale, wartość transpozycji
- bajt długość patternów($01-$40), lub koniec odgrywania ($00) lub skok do pozycji w songu ($80-$ff), numer linii do skoku znajduje się w poprzednim bajcie (transpozycja pierwszego kanału)
Dane instrumentów
- 19 bajtów konfiguracyjnych dźwięku:
- 8 bajtów transpozycji
- długość danych obwiedni i punkt pętlowania (Uwaga, ta wartość jest 3 razy większa od tej używanej w TMC.)
- pozostałe 9 bajtów definiujących typ dźwięku * do 255 bajtów obwiedni dźwięku (tyle ile ustalono w jej długości), ustawione w trójki $AB,$CD,$EF, gdzie:
- A: zniekształcenie
- B: głośność podstawowej obwiedni
- C: rodzaj akcentu
- D: głośność dodatkowej obwiedni
- EF: parametr do akcentu
Dane paternów
Szereg poleceń, typ polecenia i jego długość jest rozpoznawana po pierwszym bajcie:
- $00: + nowa głośność
- $01-$3f: nowa nuta + instrument (jeśli instument>=128, to instrument jest brany bez ostatniego bitu i dochodzi dodatkowy bajt: nowa głośność)
- $40: nieużywane
- $41-$7f: nowa nuta + nowa głośność
- $80: + ilośc pustych linii w patternie (używane tylko wtedy gdy ich ilość wynosi przynajmniej 15)
- $81-$bc: nowa nuta
- $c0-$cf: nowe tempo (ten kod poprzedza kod dotyczący pozostałych informacji w tej linii)
- $d0-$df: specjalny kod
- $e0-$ef: specjalny kod + nowa głośność
- $f0-$fe: puste linie (od 0 do 14, kod 0 jest używany, gdy w danej linii jest tylko zmiana tempa)
- $ff: puste linie aż do końca paternu