THE PLAYER 6.0A. Odgrywanie moduīów w demach to problem stary jak ōwiat... Kaūdy koder ma na to swojā teoriė, jedni uūywajā standardowych playerów, inni playerów-packerów, jeszcze inni piszā wīasne "odgrywajki". Niedawno bardzo popularne byīy takie programy, jak ProPacker czy ProRunner. Teraz nastaīa era playera. (Mam chyba jakieō zadatki na poetė :-). Miklesz/Damage Kiedy pierwszy raz zetknāīem siė z Playerem 6.0A, zrozumiaīem, ūe jest to najlepszy format pakowania wōród aktualnie wymyōlonych. Nie doōź, ūe odtwarzanie zajmuje uīamek czasu ekranowego, to system pakowania gwarantuje nam, ūe z oryginaīu pozostanie nam zawsze mniej niū poīowa. Co naleūy jeszcze do atutów Playera? Przede wszystkim rozbudowany program konwertujācy, z peīnā obsīugā bibliotek autorstwa Nico Francois: reqtools.library i powerpacker.library. Mimo duūej liczby opcji, sam program jest bardzo prosty w obsīudze. Caīy Player 6.0A jest autorstwa Jarno Paananena, czyli Guru of Sahara Surfers. Program jest rozpowszechniany jako public domain. Autor prosi jednak, aby we wīasnych produkcjach zaznaczaź, kto jest autorem grajka. Wōród plików rozpowszechnianych w pakiecie znajdziemy odgrywajkė, dwa konwertery, dokumentacjė, include'y i gotowe śródīówki do wykorzystania. Jak to zazwyczaj w wypadku PD stuffu bywa, autor nie bierze odpowiedzialnoōci za to, co nam Player 6.0A ewentualnie zrobi. Twórca prosi takūe o kontakt z nim w wypadku chėci wykorzystania grajka w programie komercyjnym lub w wypadku znalezienia jakichō bīėdów. Okazuje siė, ūe poprzednie, bīėdne, wersje Playera, wykorzystywane byīy bez zgody autora przez Team 17 (np.: w grze Super Frog). Twórca prosi wiėc o kontakt w wypadku wykrycia podobnych incydentów. Player 6.0A ma naprawdė niewielkie wymagania. Wystarczy dowolna Amiga, w katalogu LIBS: znajduje siė reqtools.library i powerpacker.library, posiadajāca troszkė pamiėci (ale 512 KB teū wystarczy). Autor zapewnia, ūe program ruszy juū na Kickstarcie 1.2, choź īadnie wyglāda dopiero na 2.0. Natomiast co dostajemy w zamian? Podajė za dokumentacjā: -- Bardzo efektywny packer patternów, który odgrywa spakowane dane w czasie rzeczywistym. -- Skrócony nagīówek moduīu, który nie tylko zajmuje mniej miejsca, ale jeszcze utrudnia czasami wyprucie moduīu. -- Packer usuwa wszystkie nazwy sampli, niepotrzebne patterny, sample, dane, które i tak nie zostaīyby odegrane, dane o zerowej gīoōnoōci w nie zapėtlonych samplach, nie uūyte komendy i parė innych rzeczy. -- Program oferuje nam sposób pakowania metodā Delta, która nie powoduje utraty jakoōci, a pakuje lepiej niū na przykīad Imploder lub PowerPacker. Metoda Delta byīa juū opisywana na īamach Magazynu AMIGA. -- Konwersja sampli z 8-bitowych na 4-bitowe, co powoduje niewielkā utratė jakoōci, lecz pozwala na stopieļ kompresji 1:2. Gorāco polecam uūywanie tej funkcji, tylko radzė nie przyznawaź siė muzykom. Glue/Damage i MGL/Damage chyba do dzisiaj nie wiedzā, ūe wszystkie oddane mi przez nich moduīy, które nastėpnie gdzieō wykorzystywaīem, byīy pakowane na 4 bity :-). -- Trzeba nieśle siė napociź, aby wyciāź moduī, który ma spakowane i osobno zgrane sample. Standardowy Exotic Ripper 2.25 (unregistered) nie jest w stanie nam tego wykonaź! -- Sam Player dziaīa na wiėkszoōci konfiguracji sprzėtowych. Zarówno spod WB, jak teū i CLI. -- Konwerter īaduje pliki spakowane PowerPackerem, Imploderem i packerami z bibliotek XPK. -- Odgrywa moduīy, które majā nawet 100 patternów (czyli pochodzāce z Protrackera 2.0 i póśniejszych). -- Poprawnie odgrywa wszystkie komendy NoiseTrackera, Protrackera oraz reaguje na zmianė FineTune i Tempo. Jedynym mankamentem jest to, ūe wszystkie komendy Dxx traktuje jak D00, ale jest to drobny problem, który moūna omināź piszāc moduī. Nie bėdė tutaj opisywaī dziaīania poszczególnych opcji Playera 6.0A, gdyū od tego jest instrukcja w formacie AmigaGuide. Próbujāc jednak zachėciź Was do uūywania tego systemu, opiszė, jak przebiega caīy proces pakowania: 1. Odpalamy konwerter i sprawdzamy na wszelki wypadek ustawienie opcji w "Preferences", takich rzeczy jak DEFAULT LOADING DIRECTORY, DEFAULT SAVING DIRECTORY, DEFAULT BATCH DIRECTORY nie muszė chyba tīumaczyź. Równieū opcja PREFICES --------chyba prefixes----------- nie wymaga chyba komentarza. Ciekawe jest natomiast TWO FILES, które zgrywa osobno song, a osobno sample, co znakomicie utrudnia wyciāgniėcie moduīu. Polecam uūywanie. Odradzam natomiast P60A SIGN, dodaje tylko 4 bajty do pliku i uīatwia rippowanie. NO SAMPLES przyda siė moūe komuō, kto chce stworzyź sounddisk typu "Revolution", czyli kilka sampli i masa korzystajācych z nich melodyjek. Opcja po prostu nie zgrywa sampli. TEMPO wīācza wykrywanie zmian tempa w module. Jak Twój muzyk uūywa tempa, to opcjė wīācz. Opcja ICON powoduje dogrywanie ikon do plików, potrzebne to komuō? Moūe... DELTA oczywiōcie zaīācza metodė Delta, przy pakowaniu sampli, a SAMPLE PACKING dodaje jeszcze konwersjė na 4 bity. Wīāczyź bez zastanawiania siė. 2. Teraz uruchamiamy konwersjė i wybieramy odpowiedni plik. Po chwili jesteōmy zasypani informacjami w stylu: "Jak to Player 6.0A zaoszczėdziī nam 3 bajty, bo wyrzuciī z pliku moduīu jednā nutė" ;-). 3. Koniec koļców otwiera nam siė okienko, gdzie wybraź moūemy sample, które chcemy spakowaź jako 4-bitowe. Program daje nam moūliwoōź odsīuchu sampla oryginalnego i spakowanego, co jest czasem bardzo przydatne. Na ogóī jednak dajemy PACK REST i po dawce kolejnych wykresów i cyferek pozostaje nam tylko zapisaź... 4. Use-Code, czyli kod, którego odpowiednie bity odpowiadajā za asemblacjė fragmentów kodu playera. O co tu chodzi? Wyobraśmy sobie sytuacjė, ūe nasz moduī do demka nie zawiera komend typu 1xx (dla nie wtajemniczonych: glissando "w górė"). W takim wypadku player odgrywajāc moduī niepotrzebnie "zaprzāta sobie gīowė" (czytaj: wykonuje zbėdne instrukcje), próbujāc wykonaź glissando o wartoōci zero wzwyū. I tu z pomocā przychodzi Use-Code, który wyeliminuje przy asemblacji linie odpowiadajāce za efekt 1xx. Proste? Chyba tak, zwaūywszy na to, ūe jeūeli nie zaleūy nam na tych kilku instrukcjach straty, a jesteōmy leniwi, to moūemy wpisaź wartoōź Use-Code=-1=$FFFFFFFF, co jak wiadomo spowoduje zapalenie wszystkich bitów i asemblacjė peīnego kodu playera. Tutaj pozostaīa drobna uwaga. Jeūeli zamierzamy odegraź tym samym kodem "odgrywajki" kilka utworów, to ich wspólny Use-Code bėdzie oczywiōcie sumā logicznā Use-Code'ów kaūdego z moduīów! 5. Teraz pozostaje nam jedynie wgraź pliki(i) binarne do asemblera, zasemblowaź kod śródīowy i sīuchaź muzyki. Gorāco polecam ten format zapisu moduīów. O jego zaletach sporo juū napisaīem. Teraz parė sīów o wadach. Moūliwe, ūe szukam dziury w caīym, ale taki juū jestem... -- Player 6.0A nie odgrywa parametru komendy Dxx, traktujāc jā zawsze jako D00. Nie jest to jednak funkcja mogāca uszczupliź efekt ostateczny moduīu, o ile wczeōniej poinformujemy muzyka, ūeby Dxx z xx<>0 nie uūywaī. Swojā drogā, to maīo kto stosuje tė funkcjė. Ōciōlej: pakowaīem moduīy niejednego muzyka z zamiarem wykorzystania ich w asemblerze i na razie spotkaīem siė tylko z jednym osobnikiem stosujācym to "trefne" Dxx (Hi MaXyM!). -- Nasz playerek, nie "īapie" funkcji 8xx, która jest stosowana do synchronizacji dem z muzykā, i nie powoduje ūadnej zmiany odgrywanego dświėku. Zamiast tego mamy do wyboru: synchronizowanie "na czas" (dla masochistów), synchronizowanie za pomocā E8x, czyli funkcji podobnej do 8xx, rozpoznawanej jednak przez player (dla leniwych), oraz poszukanie w kodzie informacji o aktualnym poīoūeniu w patternie i module, co daje bardzo wygodnā moūliwoōź synchronizacji (dla dociekliwych). Wybraīem to ostatnie... I juū tak zupeīnie na zakoļczenie... Przypomniaīo mi siė pytanie, jakie otrzymaīem niedawno w jednym z listów: "Czy moduī muzyczny w demie odtwarzany jest za pomocā jakiegoō playera, doīāczanego np.: do Protrackera, czy teū koder pisze sam procedurė do odtwarzania takiego moduīu?" Odpowiedś na to pytanie jest oczywista, jednak nie za bardzo jestem w stanie pojāź, co popycha ludzi do pisania coraz nowszych "zīych" playerów. Dlaczego zīych? Otóū ja rozumiem, jak koder pisze ThePlayer, ProRunner czy ProPacker. Lecz istnieje okoīo 30 formatów zapisu, róūniācych siė jedynie nagīówkiem i "drobnā kosmetykā". Po co? Tylko po to, by Exotic 2.25 tego nie wypruī, kiedy wiadomo, ūe Exotic 2.26, juū bėdzie miaī filtr do "nowego formatu zapisu" moduīu. Czym by moduī w demie nie byī spakowany, to i tak w 90% wypadków w tydzieļ póśniej juū "chodzi" po Internecie, czasem "wpuszczony" tam przez samych czīonków grupy, która wydaīa demo. A juū przybywa nowy format, nowy player do Eagle'a, nowy filtr do Exotica i Noise'a. Efektem tego jest, ūe mamy ponad 130 "formatów" zapisu, których skromny uīamek stanowiā takie rodzynki, jak: ProRunner, ProPacker, ThePlayer, TrackerPacker, PlaySID, MED czy ScreamTracker3. Reszta to jakieō wykorzystywane sporadycznie dziwadīa ze starych dem i programów muzycznych, o wymyōlnych nazwach, jak: AC1D-DC1A-Packer, AudioSculpture, CustomPlay, Digital Illusions, Eureka-Packer, GameMusicCreator, KefrensSoundMachine, Kript, ModuleProtector, PowerMusic, Unic-Tracker, WantonPacker, XANN-Packer... Wystarczy? I po co to komu?! Tym pytaniem retorycznym ūegnam Was. Idė pisaź MikleszTrackera;-).