Raster Music Tracker
From Atariki
Wersja z dnia 10:49, 5 lut 2025 Mono (Dyskusja | wkład) (biblioteki) ← Previous diff |
Aktualna wersja Krótki (Dyskusja | wkład) (Czas przeszły, bo autor nie żyje.) |
||
Linia 2: | Linia 2: | ||
Program działający w środowisku MS Windows umożliwiający tworzenie muzyki dla [[Atari 8-bit|ośmiobitowego Atari]] przy wykorzystaniu bibliotek emulujących układy [[6502]] i [[POKEY]]. | Program działający w środowisku MS Windows umożliwiający tworzenie muzyki dla [[Atari 8-bit|ośmiobitowego Atari]] przy wykorzystaniu bibliotek emulujących układy [[6502]] i [[POKEY]]. | ||
- | Autorem jest [[Raster/C.P.U.]]. | + | Autorem był [[Raster/C.P.U.]], obecnie zaś rozwojem programu kieruje [[VinsCool]]. |
== Opis == | == Opis == | ||
Linia 24: | Linia 24: | ||
== Emulacja == | == Emulacja == | ||
- | Tracker odtwarza dźwięk emulując działanie CPU 6502 i POKEY-a za pomocą bibliotek: | + | Tracker odtwarza dźwięk emulując działanie CPU 6502 i POKEY-a za pomocą bibliotek dostarczanych wraz z RMT: |
* sa_c6502.dll | * sa_c6502.dll | ||
* sa_pokey.dll | * sa_pokey.dll | ||
- | * apokey.dll | + | a udostępnianych [http://raster.atariportal.cz/sa_libraries/sa_libraries.htm na stronie] [[Raster]]a. |
+ | |||
+ | [[Analmux]] do patcha BRK implementował własną wersję biblioteki sa_pokey.dll opisywaną w [https://forums.atariage.com/topic/118448-implementation-of-pokey-2-tone-filter-in-emulation/ tym wątku] na forum [[AtariAge]]. | ||
+ | |||
+ | Począwszy od wersji 1.27 RMT pozwala wykorzystać bibliotekę emulacji [[POKEY]]a z projektu [http://asap.sourceforge.net ASAP]: | ||
+ | * [http://asap.sourceforge.net/apokeysnd.dll apokeysnd.dll] | ||
+ | [[Antrykot]] udostępnił własną modyfikację biblioteki apokeysnd.dll, którą opisywał w [https://forums.atariage.com/topic/275737-air-man-mega-man-2-atari-pokey-cover/page/2/#findComment-3975190 tym wątku] na forum [[AtariAge]]. | ||
== Modyfikacje == | == Modyfikacje == | ||
Na forum [[AtariAge]] rozwijały się dyskusje których skutkiem były kolejne modyfikacje procedury odtwarzającej i "łatane" wersje Trackera. Odpowiedzialny za te modyfikacje był [[Analmux]] i [[Miker]], choć zmiany inspirowało więcej osób. | Na forum [[AtariAge]] rozwijały się dyskusje których skutkiem były kolejne modyfikacje procedury odtwarzającej i "łatane" wersje Trackera. Odpowiedzialny za te modyfikacje był [[Analmux]] i [[Miker]], choć zmiany inspirowało więcej osób. | ||
- | Z racji na to, że kod trackera nie był otwarty, każda "łatka" bazowała wyłącznie na: | + | Ponieważ kod trackera nie był otwarty, każda "łatka" bazowała wyłącznie na: |
* zmianach typu zniekształcenia, | * zmianach typu zniekształcenia, | ||
* modyfikacjach tablic częstotliwości, | * modyfikacjach tablic częstotliwości, | ||
- | * ewentualnym usunięciu 16-bitowego basu, | + | * ewentualnym usunięciu 16-bitowego basu na rzecz dodatkowych tablic dla brzmień 8-bitowych, |
* zmianach kodu procedury odtwarzającej. | * zmianach kodu procedury odtwarzającej. | ||
+ | '''Nie zmieniał się natomiast nigdy [[RMT (format pliku)|format pliku RMT]]!''' i z tego powodu nie można automatycznie rozpoznać jakiego patcha wymaga dany utwór (chyba, że dysponujemy plikiem wykonywalnym [[XEX]]). | ||
+ | |||
+ | Raster Music Tracker definiuje | ||
+ | 8 rodzajów brzmień (wytłuszczenie oznacza brzmienie 16-bitowe, jego brak zaś 8-bitowe): | ||
+ | <table border=1> | ||
+ | <tr><td>nr</td><td>tablica</td><td>AUDC</td></tr> | ||
+ | <tr><td>0</td><td>puretone</td><td>$0v</td></tr> | ||
+ | <tr><td>1</td><td>puretone</td><td>$2v</td></tr> | ||
+ | <tr><td>2</td><td>puretone</td><td>$4v</td></tr> | ||
+ | <tr><td>3</td><td><b>bass16bit</b></td><td>$Cv</td></tr> | ||
+ | <tr><td>4</td><td>puretone</td><td>$8v</td></tr> | ||
+ | <tr><td>5</td><td>puretone</td><td>$Av</td></tr> | ||
+ | <tr><td>6</td><td>bass1</td><td>$Cv</td></tr> | ||
+ | <tr><td>7</td><td>bass2</td><td>$Cv</td></tr> | ||
+ | </table> | ||
+ | oraz 5 tablic po 64 tony każda: | ||
+ | <table border=1> | ||
+ | <tr><td>nr</td><td>offset</td><td>tablica</td></tr> | ||
+ | <tr><td>0</td><td>-</td><td><b>bass16bit</b> LSB</td></tr> | ||
+ | <tr><td>1</td><td>$00</td><td>bass1</td></tr> | ||
+ | <tr><td>2</td><td>$40</td><td>bass2</td></tr> | ||
+ | <tr><td>3</td><td>$80</td><td>puretone</td></tr> | ||
+ | <tr><td>4</td><td>-</td><td><b>bass16bit</b> MSB</td></tr> | ||
+ | </table> | ||
+ | Tablica 0 i 4 składają się na kompletną 16-bitową wartość wpisywaną do połączonych kanałów 1+2 lub 3+4. Pozostałe tablice definiują tony 8-bitowe. | ||
=== Patch BRK === | === Patch BRK === | ||
- | Patch na RMT 1.25 przygotowany przez [[Analmux]]a pod psudonimem [[BRK]]. | + | https://forums.atariage.com/topic/106228-raster-music-tracker-hardsynth-hack/ |
+ | |||
+ | Patch na RMT 1.25 wypuszczony 29 IV 2007 przez [[Analmux]]a pod pseudonimem [[BRK]]. | ||
+ | |||
+ | Zmieniono: | ||
+ | * rodzaj zniekształcenia w brzmieniu 2 | ||
+ | * przypisane tablice w brzmieniach 1 i 2 | ||
+ | <table border=1> | ||
+ | <tr><td>nr</td><td>tablica</td><td>AUDC</td></tr> | ||
+ | <tr><td>0</td><td>puretone</td><td>$0v</td></tr> | ||
+ | <tr><td>1</td><td><i>bass1</i></td><td>$2v</td></tr> | ||
+ | <tr><td>2</td><td><i>bass2</i></td><td><i>$Av</i></td></tr> | ||
+ | <tr><td>3</td><td><b>bass16bit</b></td><td>$Cv</td></tr> | ||
+ | <tr><td>4</td><td>puretone</td><td>$8v</td></tr> | ||
+ | <tr><td>5</td><td>puretone</td><td>$Av</td></tr> | ||
+ | <tr><td>6</td><td>bass1</td><td>$Cv</td></tr> | ||
+ | <tr><td>7</td><td>bass2</td><td>$Cv</td></tr> | ||
+ | </table> | ||
+ | i zmodyfikowano tablice bass1 i bass2. | ||
+ | <table border=1> | ||
+ | <tr><td>nr</td><td>offset</td><td>tablica</td></tr> | ||
+ | <tr><td>0</td><td>-</td><td><b>bass16bit</b> LSB</td></tr> | ||
+ | <tr><td>1</td><td>$00</td><td><i>bass1</i></td></tr> | ||
+ | <tr><td>2</td><td>$40</td><td><i>bass2</i></td></tr> | ||
+ | <tr><td>3</td><td>$80</td><td>puretone</td></tr> | ||
+ | <tr><td>4</td><td>-</td><td><b>bass16bit</b> MSB</td></tr> | ||
+ | </table> | ||
+ | co sumarycznie zmienia brzmienia 1, 2 i 6, 7. | ||
=== Patch BRK zmodyfikowany przez Mikera === | === Patch BRK zmodyfikowany przez Mikera === | ||
Linia 45: | Linia 103: | ||
Patch na RMT 1.25 przygotowany przez [[Miker]]a. | Patch na RMT 1.25 przygotowany przez [[Miker]]a. | ||
+ | |||
+ | Zmieniono: | ||
+ | * rodzaj zniekształcenia w brzmieniu 2 | ||
+ | * przypisane tablice w brzmieniach 1 i 2 | ||
+ | <table border=1> | ||
+ | <tr><td>nr</td><td>tablica</td><td>AUDC</td></tr> | ||
+ | <tr><td>0</td><td>puretone</td><td>$0v</td></tr> | ||
+ | <tr><td>1</td><td><i>bass1</i></td><td>$2v</td></tr> | ||
+ | <tr><td>2</td><td><i>bass2</i></td><td><i>$Av</i></td></tr> | ||
+ | <tr><td>3</td><td><b>bass16bit</b></td><td>$Cv</td></tr> | ||
+ | <tr><td>4</td><td>puretone</td><td>$8v</td></tr> | ||
+ | <tr><td>5</td><td>puretone</td><td>$Av</td></tr> | ||
+ | <tr><td>6</td><td>bass1</td><td>$Cv</td></tr> | ||
+ | <tr><td>7</td><td>bass2</td><td>$Cv</td></tr> | ||
+ | </table> | ||
+ | oraz: | ||
+ | * tablicę bass2 przesunięto na miejsce bass1 | ||
+ | * zmodyfikowano tablicę bass2 | ||
+ | <table border=1> | ||
+ | <tr><td>nr</td><td>offset</td><td>tablica</td></tr> | ||
+ | <tr><td>0</td><td>-</td><td><b>bass16bit</b> LSB</td></tr> | ||
+ | <tr><td>1</td><td>$00</td><td><i>bass1</i></td></tr> | ||
+ | <tr><td>2</td><td>$40</td><td><i>bass2</i></td></tr> | ||
+ | <tr><td>3</td><td>$80</td><td>puretone</td></tr> | ||
+ | <tr><td>4</td><td>-</td><td><b>bass16bit</b> MSB</td></tr> | ||
+ | </table> | ||
+ | co sumarycznie zmienia brzmienia 1, 2 i 6, 7 (przy czym oryginalne brzmienie 7 jest teraz brzmieniem 6). | ||
=== Patch 2 === | === Patch 2 === | ||
https://forums.atariage.com/topic/142394-running-out-of | https://forums.atariage.com/topic/142394-running-out-of | ||
- | Patch na RMT 1.25 przygotowany przez [[Analmux]]a pod psudonimem [[BRK]]. | + | Patch na RMT 1.25 wypuszczony 13 IV 2009 przez [[Analmux]]a pod pseudonimem [[BRK]]. |
+ | |||
+ | Zmodyfikowano zniekształcenie brzmień 6 i 7: | ||
+ | <table border=1> | ||
+ | <tr><td>nr</td><td>tablica</td><td>AUDC</td></tr> | ||
+ | <tr><td>0</td><td>puretone</td><td>$0v</td></tr> | ||
+ | <tr><td>1</td><td>puretone</td><td>$2v</td></tr> | ||
+ | <tr><td>2</td><td>puretone</td><td>$4v</td></tr> | ||
+ | <tr><td>3</td><td><i>bass1</i></td><td>$Cv</td></tr> | ||
+ | <tr><td>4</td><td>puretone</td><td>$8v</td></tr> | ||
+ | <tr><td>5</td><td>puretone</td><td>$Av</td></tr> | ||
+ | <tr><td>6</td><td><i>bass2</i></td><td><i>$2v</i></td></tr> | ||
+ | <tr><td>7</td><td>bass2</td><td><i>$Av</i></td></tr> | ||
+ | </table> | ||
+ | oraz tablice bass1 i bass2: | ||
+ | <table border=1> | ||
+ | <tr><td>nr</td><td>offset</td><td>tablica</td></tr> | ||
+ | <tr><td>0</td><td>-</td><td><b>bass16bit</b> LSB</td></tr> | ||
+ | <tr><td>1</td><td>$00</td><td><i>bass1</i></td></tr> | ||
+ | <tr><td>2</td><td>$40</td><td><i>bass2</i></td></tr> | ||
+ | <tr><td>3</td><td>$80</td><td>puretone</td></tr> | ||
+ | <tr><td>4</td><td>-</td><td><b>bass16bit</b> MSB</td></tr> | ||
+ | </table> | ||
+ | sumarycznie więc zmieniono brzmienia 3, 6 i 7. | ||
+ | |||
+ | Brzmienie 3 nie jest już 16-bitowe i używa 8-bitowej tablicy bass1, a dla brzmienia 6 włączany jest zegar 1.77 MHz i tablica bass2. | ||
=== Patch 3 === | === Patch 3 === | ||
https://forums.atariage.com/topic/228757-instrumentarium-final-release-links-summary | https://forums.atariage.com/topic/228757-instrumentarium-final-release-links-summary | ||
- | Patch na RMT 1.25 przygotowany przez [[Analmux]]a. | + | Patch na RMT 1.25 wypuszczony 21 VIII 2009 przez [[Analmux]]a. |
- | Wyjątkowo, jako jedyna spośród znanych, ta łatka modyfikuje zawartość rejestru [[Rejestry POKEY-a#SKCTL|SKCTL]] włączając synchronizację okresu kanału 1 kontrolowaną przez ustawienie okresu kanału 2. Odbywa się to na pozycjach $18 i $19 songu, ale może być zrealizowane w dowolnym miejscu songu przez modyfikację procedury znajdującej się pod adresem $2000 w wyeksportowanym pliku [[XEX]]. | + | Wyjątkowo, jako jedyna spośród znanych, ta łatka modyfikuje zawartość rejestru [[Rejestry POKEY-a#SKCTL|SKCTL]] włączając synchronizację okresu kanału 1 kontrolowaną przez ustawienie okresu kanału 2 (przez kontrolę bitów odpowiadających za transmisję dwutonową). Odbywa się to na pozycjach $18 i $19 songu, ale może być zrealizowane w dowolnym miejscu songu przez modyfikację procedury znajdującej się pod adresem $2000 w wyeksportowanym pliku [[XEX]]. |
+ | |||
+ | Zmodyfikowano zniekształcenia w brzmieniach 2 i 3, oraz przypisano inne tablice brzmieniom 1 i 2: | ||
+ | <table border=1> | ||
+ | <tr><td>nr</td><td>tablica</td><td>AUDC</td></tr> | ||
+ | <tr><td>0</td><td>puretone</td><td>$0v</td></tr> | ||
+ | <tr><td>1</td><td><i>bass1</i></td><td>$2v</td></tr> | ||
+ | <tr><td>2</td><td><i>bass2</i></td><td><i>$Av</i></td></tr> | ||
+ | <tr><td>3</td><td><b>bass16bit</b></td><td><i>$8v</i></td></tr> | ||
+ | <tr><td>4</td><td>puretone</td><td>$8v</td></tr> | ||
+ | <tr><td>5</td><td>puretone</td><td>$Av</td></tr> | ||
+ | <tr><td>6</td><td>bass1</td><td>$Cv</td></tr> | ||
+ | <tr><td>7</td><td>bass2</td><td>$Cv</td></tr> | ||
+ | </table> | ||
+ | zmodyfikowane zostały wszystkie tablice basów: | ||
+ | <table border=1> | ||
+ | <tr><td>nr</td><td>offset</td><td>tablica</td></tr> | ||
+ | <tr><td>0</td><td>-</td><td><b><i>bass16bit</i></b> LSB</td></tr> | ||
+ | <tr><td>1</td><td>$00</td><td><i>bass1</i></td></tr> | ||
+ | <tr><td>2</td><td>$40</td><td><i>bass2</i></td></tr> | ||
+ | <tr><td>3</td><td>$80</td><td>puretone</td></tr> | ||
+ | <tr><td>4</td><td>-</td><td><b><i>bass16bit</i></b> MSB</td></tr> | ||
+ | </table> | ||
+ | więc finalnie zmieniono brzmienia 1, 2, 3 i 6, 7. | ||
+ | |||
+ | Brzmienie 3 ma dodatkowo włączony 9-bitowy licznik POLY (zamiast 17-bitowego). | ||
=== Patch 4 === | === Patch 4 === | ||
https://forums.atariage.com/topic/150001-rmt-patch-4 | https://forums.atariage.com/topic/150001-rmt-patch-4 | ||
- | Patch na RMT 1.27 przygotowany przez [[Analmux]]a. | + | Patch na RMT 1.27 wypuszczony 3 IX 2009 przez [[Analmux]]a. |
+ | |||
+ | Zmodyfikowano zniekształcenia, oraz przypisano inne tablice brzmieniom 2 i 3: | ||
+ | <table border=1> | ||
+ | <tr><td>nr</td><td>tablica</td><td>AUDC</td></tr> | ||
+ | <tr><td>0</td><td>puretone</td><td>$0v</td></tr> | ||
+ | <tr><td>1</td><td>puretone</td><td>$2v</td></tr> | ||
+ | <tr><td>2</td><td><i>bass16bit</i> MSB</td><td><i>$Av</i></td></tr> | ||
+ | <tr><td>3</td><td><i>bass16bit</i> LSB</td><td><i>$2v</i></td></tr> | ||
+ | <tr><td>4</td><td>puretone</td><td>$8v</td></tr> | ||
+ | <tr><td>5</td><td>puretone</td><td>$Av</td></tr> | ||
+ | <tr><td>6</td><td>bass1</td><td>$Cv</td></tr> | ||
+ | <tr><td>7</td><td>bass2</td><td>$Cv</td></tr> | ||
+ | </table> | ||
+ | zmodyfikowano tablice 0 i 4 odpowiadające za 16-bitowy bas: | ||
+ | <table border=1> | ||
+ | <tr><td>nr</td><td>offset</td><td>tablica</td></tr> | ||
+ | <tr><td>0</td><td>-</td><td><i>bass16bit</i> LSB</td></tr> | ||
+ | <tr><td>1</td><td>$00</td><td>bass1</td></tr> | ||
+ | <tr><td>2</td><td>$40</td><td>bass2</td></tr> | ||
+ | <tr><td>3</td><td>$80</td><td>puretone</td></tr> | ||
+ | <tr><td>4</td><td>$C0</td><td><i>bass16bit</i> MSB</td></tr> | ||
+ | </table> | ||
+ | a więc zmieniono brzmienia 2 i 3. | ||
+ | |||
+ | Nie ma 16-bitowego basu, a tablice 0 i 4 wykorzystane są jako 8-bitowe. Brzmienie 3 jest taktowane zegarem 1.77 MHz. | ||
=== Patch 5 === | === Patch 5 === | ||
https://forums.atariage.com/topic/150205-rmt-patch-5 | https://forums.atariage.com/topic/150205-rmt-patch-5 | ||
- | Patch na RMT 1.27 przygotowany przez [[Analmux]]a. | + | Patch na RMT 1.27 wypuszczony 7 IX 2009 przez [[Analmux]]a. |
+ | |||
+ | Zmodyfikowano zniekształcenia, oraz przypisano inne tablice brzmieniom 2 i 3: | ||
+ | <table border=1> | ||
+ | <tr><td>nr</td><td>tablica</td><td>AUDC</td></tr> | ||
+ | <tr><td>0</td><td>puretone</td><td>$0v</td></tr> | ||
+ | <tr><td>1</td><td>puretone</td><td>$2v</td></tr> | ||
+ | <tr><td>2</td><td><i>bass16bit</i> MSB</td><td><i>$Av</i></td></tr> | ||
+ | <tr><td>3</td><td><i>bass2</i></td><td><i>$2v</i></td></tr> | ||
+ | <tr><td>4</td><td>puretone</td><td>$8v</td></tr> | ||
+ | <tr><td>5</td><td>puretone</td><td>$Av</td></tr> | ||
+ | <tr><td>6</td><td>bass1</td><td>$Cv</td></tr> | ||
+ | <tr><td>7</td><td><i>bass16bit</i> LSB</td><td>$Cv</td></tr> | ||
+ | </table> | ||
+ | oraz zmodyfikowano tablice dla 16-bitowgo basu i bass2: | ||
+ | <table border=1> | ||
+ | <tr><td>nr</td><td>offset</td><td>tablica</td></tr> | ||
+ | <tr><td>0</td><td>-</td><td><i>bass16bit</i> LSB</td></tr> | ||
+ | <tr><td>1</td><td>$00</td><td>bass1</td></tr> | ||
+ | <tr><td>2</td><td>$40</td><td><i>bass2</i></td></tr> | ||
+ | <tr><td>3</td><td>$80</td><td>puretone</td></tr> | ||
+ | <tr><td>4</td><td>$C0</td><td><i>bass16bit</i> MSB</td></tr> | ||
+ | </table> | ||
+ | czyli sumarycznie zmieniono brzmienia 2, 3 i 7. | ||
+ | |||
+ | Nie ma brzmień 16-bitowych, a wszystkie kanały taktowane są zegarem bazowym. | ||
=== Patch 6 === | === Patch 6 === | ||
https://forums.atariage.com/topic/175878-rmt-patch-6 | https://forums.atariage.com/topic/175878-rmt-patch-6 | ||
- | Patch na RMT 1.27 przygotowany przez [[Analmux]]a. | + | Patch na RMT 1.27 wypuszczony 22 I 2011 przez [[Analmux]]a. |
+ | |||
+ | Zmieniono zniekształcenie brzmienia 3: | ||
+ | <table border=1> | ||
+ | <tr><td>nr</td><td>tablica</td><td>AUDC</td></tr> | ||
+ | <tr><td>0</td><td>puretone</td><td>$0v</td></tr> | ||
+ | <tr><td>1</td><td>puretone</td><td>$2v</td></tr> | ||
+ | <tr><td>2</td><td>puretone</td><td>$4v</td></tr> | ||
+ | <tr><td>3</td><td><b>bass16bit</b></td><td><i>$Av</i></td></tr> | ||
+ | <tr><td>4</td><td>puretone</td><td>$8v</td></tr> | ||
+ | <tr><td>5</td><td>puretone</td><td>$Av</td></tr> | ||
+ | <tr><td>6</td><td>bass1</td><td>$Cv</td></tr> | ||
+ | <tr><td>7</td><td>bass2</td><td>$Cv</td></tr> | ||
+ | </table> | ||
+ | oraz obydwie tablice 16-bitowego basu: | ||
+ | <table border=1> | ||
+ | <tr><td>nr</td><td>offset</td><td>tablica</td></tr> | ||
+ | <tr><td>0</td><td>-</td><td><b><i>bass16bit</i></b> LSB</td></tr> | ||
+ | <tr><td>1</td><td>$00</td><td>bass1</td></tr> | ||
+ | <tr><td>2</td><td>$40</td><td>bass2</td></tr> | ||
+ | <tr><td>3</td><td>$80</td><td>puretone</td></tr> | ||
+ | <tr><td>4</td><td>-</td><td><b><i>bass16bit</i></b> MSB</td></tr> | ||
+ | </table> | ||
+ | a więc zmieniono tylko brzmienie 3. | ||
=== Patch 7 === | === Patch 7 === | ||
https://forums.atariage.com/topic/175883-rmt-patch-7 | https://forums.atariage.com/topic/175883-rmt-patch-7 | ||
- | Patch na RMT 1.27 przygotowany przez [[Analmux]]a. | + | Patch na RMT 1.27 wypuszczony 22 I 2011 przez [[Analmux]]a. |
+ | |||
+ | Nie zmodyfikowano w żadnym brzmieniu żadnego zniekształcenia, ani nie zmieniono przypisań tablic: | ||
+ | <table border=1> | ||
+ | <tr><td>nr</td><td>tablica</td><td>AUDC</td></tr> | ||
+ | <tr><td>0</td><td>puretone</td><td>$0v</td></tr> | ||
+ | <tr><td>1</td><td>puretone</td><td>$2v</td></tr> | ||
+ | <tr><td>2</td><td>puretone</td><td>$4v</td></tr> | ||
+ | <tr><td>3</td><td><b>bass16bit</b></td><td>$Cv</td></tr> | ||
+ | <tr><td>4</td><td>puretone</td><td>$8v</td></tr> | ||
+ | <tr><td>5</td><td>puretone</td><td>$Av</td></tr> | ||
+ | <tr><td>6</td><td>bass1</td><td>$Cv</td></tr> | ||
+ | <tr><td>7</td><td>bass2</td><td>$Cv</td></tr> | ||
+ | </table> | ||
+ | ale zmieniono obydwie tablice dla 16-bitowego basu: | ||
+ | <table border=1> | ||
+ | <tr><td>nr</td><td>offset</td><td>tablica</td></tr> | ||
+ | <tr><td>0</td><td>-</td><td><b><i>bass16bit</i></b> LSB</td></tr> | ||
+ | <tr><td>1</td><td>$00</td><td>bass1</td></tr> | ||
+ | <tr><td>2</td><td>$40</td><td>bass2</td></tr> | ||
+ | <tr><td>3</td><td>$80</td><td>puretone</td></tr> | ||
+ | <tr><td>4</td><td>-</td><td><b><i>bass16bit</i></b> MSB</td></tr> | ||
+ | </table> | ||
+ | a więc finalnie zmieniono brzmienie 3. | ||
=== Patch 8 === | === Patch 8 === | ||
https://forums.atariage.com/topic/234769-rmt-patch-8 | https://forums.atariage.com/topic/234769-rmt-patch-8 | ||
- | Patch na RMT 1.28 przygotowany przez [[Analmux]]a. | + | Ostatni patch na RMT 1.28 wypuszczony 7 II 2015 przez [[Analmux]]a. |
+ | |||
+ | Przedefiniowuje zniekształcenia dla brzmień 2, 4 i 7 oraz przypisuje nowe tablice wszystkim brzmieniom prócz 3: | ||
+ | <table border=1> | ||
+ | <tr><td>nr</td><td>tablica</td><td>AUDC</td></tr> | ||
+ | <tr><td>0</td><td><i>pure</i></td><td>$0v</td></tr> | ||
+ | <tr><td>1</td><td><i>poly5</i></td><td>$2v</td></tr> | ||
+ | <tr><td>2</td><td><i>sawtooth</i></td><td><i>$Av</i></td></tr> | ||
+ | <tr><td>3</td><td><i><b>cldglo</b></i></td><td>$Cv</td></tr> | ||
+ | <tr><td>4</td><td><i>cldghi</i></td><td><i>$Av</i></td></tr> | ||
+ | <tr><td>5</td><td><i>pure</i></td><td>$Av</td></tr> | ||
+ | <tr><td>6</td><td><i>poly4</i></td><td>$Cv</td></tr> | ||
+ | <tr><td>7</td><td><i><b>cldglo</b></i></td><td><i>$8v</i></td></tr> | ||
+ | </table> | ||
+ | i wykorzystując obszar zajmowany przez 5 tablic częstotliwości, wprowadza dodatkowe o mniejszej ilości tonów: | ||
+ | <table border=1> | ||
+ | <tr> | ||
+ | <td>nr</td> | ||
+ | <td>offset</td> | ||
+ | <td>tablica</td> | ||
+ | <td>offset</td> | ||
+ | <td>tablica</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td rowspan="2">0</td> | ||
+ | <td rowspan="2">-</td> | ||
+ | <td rowspan="2"><i><b>cldglo</b></i></td> | ||
+ | <td>$00</td> | ||
+ | <td><i><b>cllo</b></i></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>$20</td> | ||
+ | <td><i><b>dglo</b></i></td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td rowspan="2">1</td> | ||
+ | <td rowspan="2">$00</td> | ||
+ | <td rowspan="2"><i>pure</i></td> | ||
+ | <td>$00</td> | ||
+ | <td><i>purebass</i></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>$30</td> | ||
+ | <td><i>pureflute</i></td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>2</td> | ||
+ | <td>$3C</td> | ||
+ | <td colspan="3"><i>poly5</i></td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td rowspan="2">3</td> | ||
+ | <td rowspan="2">$6C</td> | ||
+ | <td rowspan="2"><i>poly4</i></td> | ||
+ | <td>$00 ($6C)</td> | ||
+ | <td><i>polydeg41</i></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>$1F ($8B)</td> | ||
+ | <td><i>polydeg43</i></td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>4</td> | ||
+ | <td>$9C</td> | ||
+ | <td colspan="3"><i>sawtooth</i></td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td rowspan="2">5</td> | ||
+ | <td rowspan="2">$C0</td> | ||
+ | <td rowspan="2"><i>cldghi</i></td> | ||
+ | <td>$00 ($C0)</td> | ||
+ | <td><i>clhi</i></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>$20 ($E0)</td> | ||
+ | <td><i>dghi</i></td> | ||
+ | </tr> | ||
+ | </table> | ||
+ | a więc przedefiniowuje wszystkie brzmienia. | ||
+ | |||
+ | Brzmienia 3 i 7 są 16-bitowe, taktowane zegarem 1.77 MHz i mają włączony 9-bitowy rejestr POLY (zamiast 17-bitowego). | ||
+ | |||
+ | Tony z tablic podzielonych na dwie części dostępne są w dolnych rejestrach (pierwsza część), i górnych (druga część) dla wybranej tablicy głównej. | ||
=== Patch 0a === | === Patch 0a === | ||
https://forums.atariage.com/topic/246784-rmt-128_0a-a-type-16-bit-bass-patch | https://forums.atariage.com/topic/246784-rmt-128_0a-a-type-16-bit-bass-patch | ||
- | Patch na RMT 1.28 przygotowany przez [[Miker]]a. | + | Patch na RMT 1.28 wypuszczony 15 XII 2015 przez [[Miker]]a. |
+ | |||
+ | Zmieniono zniekształcenie brzmienia 3: | ||
+ | <table border=1> | ||
+ | <tr><td>nr</td><td>tablica</td><td>AUDC</td></tr> | ||
+ | <tr><td>0</td><td>puretone</td><td>$0v</td></tr> | ||
+ | <tr><td>1</td><td>puretone</td><td>$2v</td></tr> | ||
+ | <tr><td>2</td><td>puretone</td><td>$4v</td></tr> | ||
+ | <tr><td>3</td><td><b>bass16bit</b></td><td><i>$Av</i></td></tr> | ||
+ | <tr><td>4</td><td>puretone</td><td>$8v</td></tr> | ||
+ | <tr><td>5</td><td>puretone</td><td>$Av</td></tr> | ||
+ | <tr><td>6</td><td>bass1</td><td>$Cv</td></tr> | ||
+ | <tr><td>7</td><td>bass2</td><td>$Cv</td></tr> | ||
+ | </table> | ||
+ | oraz obydwie tablice 16-bitowego basu: | ||
+ | <table border=1> | ||
+ | <tr><td>nr</td><td>offset</td><td>tablica</td></tr> | ||
+ | <tr><td>0</td><td>-</td><td><b><i>bass16bit</i></b> LSB</td></tr> | ||
+ | <tr><td>1</td><td>$00</td><td>bass1</td></tr> | ||
+ | <tr><td>2</td><td>$40</td><td>bass2</td></tr> | ||
+ | <tr><td>3</td><td>$80</td><td>puretone</td></tr> | ||
+ | <tr><td>4</td><td>-</td><td><b><i>bass16bit</i></b> MSB</td></tr> | ||
+ | </table> | ||
+ | czyli zmodyfikowano tylko brzmienie 3. | ||
== Dalsze losy == | == Dalsze losy == | ||
Po śmierci autora RMT, program nie został zapomniany, ale kilka osób ulepsza/poprawia jego funkcje, m.in. [[VinsCool]]. Ostatnia wersja programu to 1.34 i od tej wersji program stał się 'open source'. | Po śmierci autora RMT, program nie został zapomniany, ale kilka osób ulepsza/poprawia jego funkcje, m.in. [[VinsCool]]. Ostatnia wersja programu to 1.34 i od tej wersji program stał się 'open source'. | ||
+ | ==Zobacz też== | ||
+ | * [[RMT (format pliku)]] | ||
- | == Linki == | + | ==Odnośniki zewnętrzne== |
- | * [https://github.com/VinsCool/RASTER-Music-Tracker/releases Repozytorium] | + | * [https://github.com/VinsCool/RASTER-Music-Tracker Strona domowa] na GitHubie |
+ | * [http://raster.infos.cz/atari/rmt/rmt.htm Strona domowa] u [[Raster/C.P.U.|Rastera]] (nieaktualizowana) | ||
* [https://forums.atariage.com/topic/328790-release-raster-music-tracker-v13400/#comments Dyskusja na Atari-Age] | * [https://forums.atariage.com/topic/328790-release-raster-music-tracker-v13400/#comments Dyskusja na Atari-Age] | ||
- | |||
- | ==Zobacz też== | ||
- | * [http://raster.infos.cz/atari/rmt/rmt.htm Strona domowa] | ||
- | * https://github.com/VinsCool/RASTER-Music-Tracker | ||
- | * [[RMT (format pliku)|RMT format pliku]] | ||
* [https://forums.atariage.com/topic/234400-rmt-128-patch-8-theory/page/2/#findComment-3168725 RMT 1.25 patch BRK] zmodyfikowany przez [[Miker]]a | * [https://forums.atariage.com/topic/234400-rmt-128-patch-8-theory/page/2/#findComment-3168725 RMT 1.25 patch BRK] zmodyfikowany przez [[Miker]]a | ||
* [https://forums.atariage.com/topic/228757-instrumentarium-final-release-links-summary/#findComment-3053631 RMT 1.25 patch 3] | * [https://forums.atariage.com/topic/228757-instrumentarium-final-release-links-summary/#findComment-3053631 RMT 1.25 patch 3] |
Aktualna wersja
Program działający w środowisku MS Windows umożliwiający tworzenie muzyki dla ośmiobitowego Atari przy wykorzystaniu bibliotek emulujących układy 6502 i POKEY.
Autorem był Raster/C.P.U., obecnie zaś rozwojem programu kieruje VinsCool.
Spis treści |
Opis
Program pozwala na tworzenie dosyć zaawansowanych instrumentów, które użyć można następnie w muzyce lub efektach specjalnych.
Podstawowe cechy to:
- tworzenie 4- jak i 8-kanałowych (Stereo) modułów,
- odtwarzanie modułu do 4 × na ramkę,
- użycie do 64 instrumentów,
- użycie do 254 patternów,
- regulację długości patternu,
- song może mieć do 256 pozycji.
Przy komponowaniu można też korzystać z instrumentu podłączanego do komputera za pośrednictwem interfejsu MIDI.
W pakiecie znajdziemy również gotowe procedury odtwarzające, wraz ze źródłami.
Ostatnią wersją programu udostępnioną przez autora jest RMT 1.28.
Najbardziej rozpowszechniony na scenie.
Emulacja
Tracker odtwarza dźwięk emulując działanie CPU 6502 i POKEY-a za pomocą bibliotek dostarczanych wraz z RMT:
- sa_c6502.dll
- sa_pokey.dll
a udostępnianych na stronie Rastera.
Analmux do patcha BRK implementował własną wersję biblioteki sa_pokey.dll opisywaną w tym wątku na forum AtariAge.
Począwszy od wersji 1.27 RMT pozwala wykorzystać bibliotekę emulacji POKEYa z projektu ASAP:
Antrykot udostępnił własną modyfikację biblioteki apokeysnd.dll, którą opisywał w tym wątku na forum AtariAge.
Modyfikacje
Na forum AtariAge rozwijały się dyskusje których skutkiem były kolejne modyfikacje procedury odtwarzającej i "łatane" wersje Trackera. Odpowiedzialny za te modyfikacje był Analmux i Miker, choć zmiany inspirowało więcej osób.
Ponieważ kod trackera nie był otwarty, każda "łatka" bazowała wyłącznie na:
- zmianach typu zniekształcenia,
- modyfikacjach tablic częstotliwości,
- ewentualnym usunięciu 16-bitowego basu na rzecz dodatkowych tablic dla brzmień 8-bitowych,
- zmianach kodu procedury odtwarzającej.
Nie zmieniał się natomiast nigdy format pliku RMT! i z tego powodu nie można automatycznie rozpoznać jakiego patcha wymaga dany utwór (chyba, że dysponujemy plikiem wykonywalnym XEX).
Raster Music Tracker definiuje 8 rodzajów brzmień (wytłuszczenie oznacza brzmienie 16-bitowe, jego brak zaś 8-bitowe):
nr | tablica | AUDC |
0 | puretone | $0v |
1 | puretone | $2v |
2 | puretone | $4v |
3 | bass16bit | $Cv |
4 | puretone | $8v |
5 | puretone | $Av |
6 | bass1 | $Cv |
7 | bass2 | $Cv |
oraz 5 tablic po 64 tony każda:
nr | offset | tablica |
0 | - | bass16bit LSB |
1 | $00 | bass1 |
2 | $40 | bass2 |
3 | $80 | puretone |
4 | - | bass16bit MSB |
Tablica 0 i 4 składają się na kompletną 16-bitową wartość wpisywaną do połączonych kanałów 1+2 lub 3+4. Pozostałe tablice definiują tony 8-bitowe.
Patch BRK
https://forums.atariage.com/topic/106228-raster-music-tracker-hardsynth-hack/
Patch na RMT 1.25 wypuszczony 29 IV 2007 przez Analmuxa pod pseudonimem BRK.
Zmieniono:
- rodzaj zniekształcenia w brzmieniu 2
- przypisane tablice w brzmieniach 1 i 2
nr | tablica | AUDC |
0 | puretone | $0v |
1 | bass1 | $2v |
2 | bass2 | $Av |
3 | bass16bit | $Cv |
4 | puretone | $8v |
5 | puretone | $Av |
6 | bass1 | $Cv |
7 | bass2 | $Cv |
i zmodyfikowano tablice bass1 i bass2.
nr | offset | tablica |
0 | - | bass16bit LSB |
1 | $00 | bass1 |
2 | $40 | bass2 |
3 | $80 | puretone |
4 | - | bass16bit MSB |
co sumarycznie zmienia brzmienia 1, 2 i 6, 7.
Patch BRK zmodyfikowany przez Mikera
https://forums.atariage.com/topic/234400-rmt-128-patch-8-theory/page/2/#findComment-3168725
Patch na RMT 1.25 przygotowany przez Mikera.
Zmieniono:
- rodzaj zniekształcenia w brzmieniu 2
- przypisane tablice w brzmieniach 1 i 2
nr | tablica | AUDC |
0 | puretone | $0v |
1 | bass1 | $2v |
2 | bass2 | $Av |
3 | bass16bit | $Cv |
4 | puretone | $8v |
5 | puretone | $Av |
6 | bass1 | $Cv |
7 | bass2 | $Cv |
oraz:
- tablicę bass2 przesunięto na miejsce bass1
- zmodyfikowano tablicę bass2
nr | offset | tablica |
0 | - | bass16bit LSB |
1 | $00 | bass1 |
2 | $40 | bass2 |
3 | $80 | puretone |
4 | - | bass16bit MSB |
co sumarycznie zmienia brzmienia 1, 2 i 6, 7 (przy czym oryginalne brzmienie 7 jest teraz brzmieniem 6).
Patch 2
https://forums.atariage.com/topic/142394-running-out-of
Patch na RMT 1.25 wypuszczony 13 IV 2009 przez Analmuxa pod pseudonimem BRK.
Zmodyfikowano zniekształcenie brzmień 6 i 7:
nr | tablica | AUDC |
0 | puretone | $0v |
1 | puretone | $2v |
2 | puretone | $4v |
3 | bass1 | $Cv |
4 | puretone | $8v |
5 | puretone | $Av |
6 | bass2 | $2v |
7 | bass2 | $Av |
oraz tablice bass1 i bass2:
nr | offset | tablica |
0 | - | bass16bit LSB |
1 | $00 | bass1 |
2 | $40 | bass2 |
3 | $80 | puretone |
4 | - | bass16bit MSB |
sumarycznie więc zmieniono brzmienia 3, 6 i 7.
Brzmienie 3 nie jest już 16-bitowe i używa 8-bitowej tablicy bass1, a dla brzmienia 6 włączany jest zegar 1.77 MHz i tablica bass2.
Patch 3
https://forums.atariage.com/topic/228757-instrumentarium-final-release-links-summary
Patch na RMT 1.25 wypuszczony 21 VIII 2009 przez Analmuxa.
Wyjątkowo, jako jedyna spośród znanych, ta łatka modyfikuje zawartość rejestru SKCTL włączając synchronizację okresu kanału 1 kontrolowaną przez ustawienie okresu kanału 2 (przez kontrolę bitów odpowiadających za transmisję dwutonową). Odbywa się to na pozycjach $18 i $19 songu, ale może być zrealizowane w dowolnym miejscu songu przez modyfikację procedury znajdującej się pod adresem $2000 w wyeksportowanym pliku XEX.
Zmodyfikowano zniekształcenia w brzmieniach 2 i 3, oraz przypisano inne tablice brzmieniom 1 i 2:
nr | tablica | AUDC |
0 | puretone | $0v |
1 | bass1 | $2v |
2 | bass2 | $Av |
3 | bass16bit | $8v |
4 | puretone | $8v |
5 | puretone | $Av |
6 | bass1 | $Cv |
7 | bass2 | $Cv |
zmodyfikowane zostały wszystkie tablice basów:
nr | offset | tablica |
0 | - | bass16bit LSB |
1 | $00 | bass1 |
2 | $40 | bass2 |
3 | $80 | puretone |
4 | - | bass16bit MSB |
więc finalnie zmieniono brzmienia 1, 2, 3 i 6, 7.
Brzmienie 3 ma dodatkowo włączony 9-bitowy licznik POLY (zamiast 17-bitowego).
Patch 4
https://forums.atariage.com/topic/150001-rmt-patch-4
Patch na RMT 1.27 wypuszczony 3 IX 2009 przez Analmuxa.
Zmodyfikowano zniekształcenia, oraz przypisano inne tablice brzmieniom 2 i 3:
nr | tablica | AUDC |
0 | puretone | $0v |
1 | puretone | $2v |
2 | bass16bit MSB | $Av |
3 | bass16bit LSB | $2v |
4 | puretone | $8v |
5 | puretone | $Av |
6 | bass1 | $Cv |
7 | bass2 | $Cv |
zmodyfikowano tablice 0 i 4 odpowiadające za 16-bitowy bas:
nr | offset | tablica |
0 | - | bass16bit LSB |
1 | $00 | bass1 |
2 | $40 | bass2 |
3 | $80 | puretone |
4 | $C0 | bass16bit MSB |
a więc zmieniono brzmienia 2 i 3.
Nie ma 16-bitowego basu, a tablice 0 i 4 wykorzystane są jako 8-bitowe. Brzmienie 3 jest taktowane zegarem 1.77 MHz.
Patch 5
https://forums.atariage.com/topic/150205-rmt-patch-5
Patch na RMT 1.27 wypuszczony 7 IX 2009 przez Analmuxa.
Zmodyfikowano zniekształcenia, oraz przypisano inne tablice brzmieniom 2 i 3:
nr | tablica | AUDC |
0 | puretone | $0v |
1 | puretone | $2v |
2 | bass16bit MSB | $Av |
3 | bass2 | $2v |
4 | puretone | $8v |
5 | puretone | $Av |
6 | bass1 | $Cv |
7 | bass16bit LSB | $Cv |
oraz zmodyfikowano tablice dla 16-bitowgo basu i bass2:
nr | offset | tablica |
0 | - | bass16bit LSB |
1 | $00 | bass1 |
2 | $40 | bass2 |
3 | $80 | puretone |
4 | $C0 | bass16bit MSB |
czyli sumarycznie zmieniono brzmienia 2, 3 i 7.
Nie ma brzmień 16-bitowych, a wszystkie kanały taktowane są zegarem bazowym.
Patch 6
https://forums.atariage.com/topic/175878-rmt-patch-6
Patch na RMT 1.27 wypuszczony 22 I 2011 przez Analmuxa.
Zmieniono zniekształcenie brzmienia 3:
nr | tablica | AUDC |
0 | puretone | $0v |
1 | puretone | $2v |
2 | puretone | $4v |
3 | bass16bit | $Av |
4 | puretone | $8v |
5 | puretone | $Av |
6 | bass1 | $Cv |
7 | bass2 | $Cv |
oraz obydwie tablice 16-bitowego basu:
nr | offset | tablica |
0 | - | bass16bit LSB |
1 | $00 | bass1 |
2 | $40 | bass2 |
3 | $80 | puretone |
4 | - | bass16bit MSB |
a więc zmieniono tylko brzmienie 3.
Patch 7
https://forums.atariage.com/topic/175883-rmt-patch-7
Patch na RMT 1.27 wypuszczony 22 I 2011 przez Analmuxa.
Nie zmodyfikowano w żadnym brzmieniu żadnego zniekształcenia, ani nie zmieniono przypisań tablic:
nr | tablica | AUDC |
0 | puretone | $0v |
1 | puretone | $2v |
2 | puretone | $4v |
3 | bass16bit | $Cv |
4 | puretone | $8v |
5 | puretone | $Av |
6 | bass1 | $Cv |
7 | bass2 | $Cv |
ale zmieniono obydwie tablice dla 16-bitowego basu:
nr | offset | tablica |
0 | - | bass16bit LSB |
1 | $00 | bass1 |
2 | $40 | bass2 |
3 | $80 | puretone |
4 | - | bass16bit MSB |
a więc finalnie zmieniono brzmienie 3.
Patch 8
https://forums.atariage.com/topic/234769-rmt-patch-8
Ostatni patch na RMT 1.28 wypuszczony 7 II 2015 przez Analmuxa.
Przedefiniowuje zniekształcenia dla brzmień 2, 4 i 7 oraz przypisuje nowe tablice wszystkim brzmieniom prócz 3:
nr | tablica | AUDC |
0 | pure | $0v |
1 | poly5 | $2v |
2 | sawtooth | $Av |
3 | cldglo | $Cv |
4 | cldghi | $Av |
5 | pure | $Av |
6 | poly4 | $Cv |
7 | cldglo | $8v |
i wykorzystując obszar zajmowany przez 5 tablic częstotliwości, wprowadza dodatkowe o mniejszej ilości tonów:
nr | offset | tablica | offset | tablica |
0 | - | cldglo | $00 | cllo |
$20 | dglo | |||
1 | $00 | pure | $00 | purebass |
$30 | pureflute | |||
2 | $3C | poly5 | ||
3 | $6C | poly4 | $00 ($6C) | polydeg41 |
$1F ($8B) | polydeg43 | |||
4 | $9C | sawtooth | ||
5 | $C0 | cldghi | $00 ($C0) | clhi |
$20 ($E0) | dghi |
a więc przedefiniowuje wszystkie brzmienia.
Brzmienia 3 i 7 są 16-bitowe, taktowane zegarem 1.77 MHz i mają włączony 9-bitowy rejestr POLY (zamiast 17-bitowego).
Tony z tablic podzielonych na dwie części dostępne są w dolnych rejestrach (pierwsza część), i górnych (druga część) dla wybranej tablicy głównej.
Patch 0a
https://forums.atariage.com/topic/246784-rmt-128_0a-a-type-16-bit-bass-patch
Patch na RMT 1.28 wypuszczony 15 XII 2015 przez Mikera.
Zmieniono zniekształcenie brzmienia 3:
nr | tablica | AUDC |
0 | puretone | $0v |
1 | puretone | $2v |
2 | puretone | $4v |
3 | bass16bit | $Av |
4 | puretone | $8v |
5 | puretone | $Av |
6 | bass1 | $Cv |
7 | bass2 | $Cv |
oraz obydwie tablice 16-bitowego basu:
nr | offset | tablica |
0 | - | bass16bit LSB |
1 | $00 | bass1 |
2 | $40 | bass2 |
3 | $80 | puretone |
4 | - | bass16bit MSB |
czyli zmodyfikowano tylko brzmienie 3.
Dalsze losy
Po śmierci autora RMT, program nie został zapomniany, ale kilka osób ulepsza/poprawia jego funkcje, m.in. VinsCool. Ostatnia wersja programu to 1.34 i od tej wersji program stał się 'open source'.
Zobacz też
Odnośniki zewnętrzne
- Strona domowa na GitHubie
- Strona domowa u Rastera (nieaktualizowana)
- Dyskusja na Atari-Age
- RMT 1.25 patch BRK zmodyfikowany przez Mikera
- RMT 1.25 patch 3
- RMT 1.27 patch 6
- RMT 1.27 patch 7
- RMT 1.28 patch 8
- RMT 1.28 patch 0a