Numer 3/2014 (13) cena 20 zł APELAPEL OO KonkursKonkurs nana artykułartykuł

ARTYKUŁY!ARTYKUŁY! Redakcja PPA ogłasza konkurs na na- W miarę możliwości będziemy starać pisanie artykułu do „Polskiego Pisma się opublikowane artykuły nagradzać Amigowego”. Temat artykułu powinien albo w drodze plebiscytu na najlepszy Drodzy Czytelnicy, pasować do profilu pisma i powinien tekst numeru lub w postaci wierszówek być wstępnie uzgodniony z redakcją wypłacanych za zapełnioną stronę pi- Czekamy na Wasze artykuły, które (np. e-mailowo na adres kontaktowy sma. zasilają bazę artykułów do kolej- [email protected]). Artykuł zgłoszony do konkursu nie może być krótką notką, Oprócz tego, tradycyjnie, każdy autor nych numerów. Przed nadesła- orientacyjne minimum to 10 000 zna- artykułu zakwalifikowanego do druku niem artykułu prosimy o skonsulto- ków oraz ilustracje, co pozwoli wypełnić otrzyma bezpłatny egzemplarz pisma. wanie tematu z redakcją. Artykuły dwie strony pisma. prosimy nadsyłać w postaci plików Termin nadsyłania artykułów upływa: Redakcja zastrzega sobie prawo do tekstowych (ASCII) wraz z dołą- wydrukowania każdego ze zgłoszonych 15 listopada 2014 roku. czonymi obrazkami lub zdjęciami artykułów w „Polskim Piśmie Amigo- (format PNG lub JPG). Propozycje wym”. Artykuł wybrany do druku nie Zapraszamy do udziału! oraz sugestie należy nadsyłać na może być nigdzie opublikowany ani adres podany w stopce redak- przed, ani rok po wydaniu go drukiem w PPA. cyjnej.

2 POLSKIE PISMO AMIGOWE 3/2014 Wiadomości z kraju i ze świata

Polskie Pismo Amigowe Redaktor naczelny: Sebastian Rosa WW numerzenumerze Zespół redakcyjny: Konrad Czuba, Grzegorz Murdzek, Piotr Sadowski, Krzysztof Żegleń Furia EC020 ...... 4 Współpracują: Mateusz Eckert, Aleksander Giedyk, Tomasz Pacyna BetterWB czy ClassicWB ...... 6 Skład: Sebastian Rosa MomosIRC ...... 9 Grafika: Sławomir Woźniak AmiKit 7 – na gorąco ...... 10 Kontakt: [email protected], http://ppa.pl. Redit ...... 12 Skład pisma wykonywany jest w progra- 2048 ...... 13 mie OpenOffice 3. Open XCom ...... 14 Druk: Drukarnia cyfrowa DCTF w Tarnowie. Nasza pierwsza gra – kurs programowania pod AmigaOS – część 8 ...... 16

Wydawnictwo AIBB – Tomasz Bernacik Zabawa obrazem w Pythonie ...... 18 ul. Piotrkowska 201 lok.10, 90-451 Łódź Rise of the Triad ...... 20 PT-1210 MK1 Protracker Digital Turntable ...... 21 Goatlizard DX ...... 22 Polskie Pismo Amigowe jest wydawane Jedi Knight: Jedi Academy ...... 24 w wolnym czasie członków redakcji i autorów. Redakcja nie gwarantuje regu- Scenowe graffiti ...... 26 larnego ukazywania się kolejnych nume- rów. Cena jaką płacisz za pismo pokrywa jedynie koszty jego wydawania, pismo nie przynosi zysków. OdOd redakcjiredakcji Poglądy wyrażane w artykułach są po- glądami ich autorów i niekoniecznie od- Często sięgam do starych amigowych pism, mogli na chwilę cofnąć się w czasie i potrzy- powiadają stanowisku redakcji. aby chwilę powspominać czasy młodości, gdy mać w dłoniach papier przesiąknięty amigową z wypiekami na twarzy biegłem do kiosku lub (chociaż może nie tylko) nutą. Cieszę się z na giełdę komputerową po nowy numer moich tego, że udało się zbudować pewną kadrę re- Prawa autorskie artykułów należą do ich ulubionych periodyków. Zapach farby drukar- daktorów chętnych do napisania kilkunastu autorów. Przedruk i publikacja w formie skiej oraz szelest przewracanych kartek do słów, dzięki którym możesz czytać to, co wła- elektronicznej wyłącznie za zgodą redak- dzisiaj rodzą niezapomniane wspomnienia. śnie masz przed sobą, drogi czytelniku, ale cji. Pojawiające się w artykułach słowne i Podczas tej mojej wycieczki w czasie, dopada jednocześnie ubolewam, że jest ich tak mało. graficzne znaki towarowe firm trzecich są mnie refleksja czy obecnie młodzież, a i nawet Internet wielu z nas rozleniwił – wolimy pisać w użyte wyłącznie w celach informacyjnych my – stare, komputerowe wygi – choć przez puste na forach o tym, co potrafimy i co zro- i pozostają własnością tych firm. PPA nie krótką chwilę doświadczamy tego samego. bimy, ale dopóki te przechwalanki nie zamienią jest gospodarczo związane z żadną z Oczywiście technologia jest trochę inna i nie się w namacalny byt nic nie znaczą i, co wła- tych firm. wiem jak u innych, ale dla mnie oczekiwania i śnie najgorsze, doprowadzają do upadku cie- wrażenia są dokładnie takie same. Gdy przy- kawych inicjatyw. A tego nikt z nas chyba by © Polski Portal Amigowy 2010–2014. chodzi do mnie koperta z nowym numerem nie chciał. Postarajmy się pokazać, że prasa Tux (maskotka Linuksa) © Larry Ewing, Future lub Retro Gamerem, za każdym tematyczna może żyć tak długo, jak są ludzie, Simon Budig i Anja Gerwinski. razem z taką samą fascynacją i zainteresowa- którzy chcą ją czytać, a nie tak długo jak lu- niem przeglądam kolejne strony, zaczynam dzie, którzy chcą ją pisać. Ci drudzy zazwyczaj http://www.ppa.pl lekturę, którą kończę tuż przed premierą na- znikają przed tymi pierwszymi... A co jest dalej, stępnego numeru, na który zawsze czekam z to już przerabialiśmy na tym ziemskim padole niecierpliwością domyślając się, co też tym ra- wiele razy. zem w nim przeczytam. Obie lektury wzajem- nie się uzupełniają – Retro Gamer zapewnia Z tego miejsca chciałem podziękować tym, mi powrót do przeszłości, wspomnienia, cie- którym się chce zrobić coś więcej niż zapeł- kawe historie, a Amiga Future, choć lingwi- niać bazy danych dysków twardych serwerów, stycznie raczej słabe, daje lekki powiew świe- na których stoją internetowe fora. Te osoby nie żości rzucając okiem na amigowe nowinki. robią tego dla pieniędzy ani dla sławy – robią to właśnie dla Ciebie, aby takie refleksje, jak Tak co miesiąc dopada mnie także jeszcze moje, nikogo nie dopadały i aby każdy z nas jedno – dlaczego coś takiego nie jest możliwe mógł choć przez krótką chwilę powspominać po polsku? Trochę zaczepnie postawione py- swoją młodość. tanie, bo przecież mamy Polskie Pismo Ami- gowe, którego kolejny numer możesz trzymać P.S. Tylną okładkę numeru stanowi JEDNA w rękach, drogi Czytelniku, jak również piszę nadesłana praca na ogłoszony przez nas kon- te słowa tuż przed premierą Amigazynu oraz kurs, o który zabiegali czytelnicy. Jej tytuł to reaktywowanego Secret Service, o którego „Planeta Amiga" i, jak napisał jej autor, „sta- formie niewiele można powiedzieć. Tylko nie- nowi analogię do naszego amigowego świat- liczni jednak zdają sobie sprawę, jak ciężko w ka. Jest on bardzo mały, ale musi pomieścić obecnych czasach, taki periodyk wydawać. ludzi o różnych poglądach, zwolenników róż- Jak zażarcie trzeba prosić o to, aby znalazły nych rozwiązań. Na tej planecie dla każdego z się osoby zainteresowane zapełnieniem tych nich powinno znaleźć się miejsce.” kilkunastu stron tekstu, aby inni raz na kwartał Sebastian Rosa

POLSKIE PISMO AMIGOWE 3/2014 3 Furia EC020

FuriaFuria EC020EC020

Po powrocie do amigowania, na początku 2011 roku, nabyłem w sklepie eFunzine A1200 wraz z Blizzardem 1230 Mk III. Wówczas jesz- cze nie przypuszczałem, że bakcyl, jakim się zaraziłem, stanie się poważną epidemią, na którą antidotum nie znalazłem do dnia dzisiej- szego. Niedługo później, na znanym portalu aukcyjnym, wypatrzyłem fajny zestaw A600 z rozszerzeniem pamięci Chip do 2 MB. Rzecz była o tyle nietypowa, że model rozszerzenia znałem tylko ze słyszenia, a zaintrygował mnie ze względu na karty pamięci SRAM na PCM- CIA dające dodatkowe 1, 2 i 4 MB pamięci Fast oraz obecność złącza IDE. Gdy go kupo- wałem na rynku były już dostępne karty ACA 630/25 MHz i 30 MHz, jednak po zakupie „ty- siącdwusetki” byłem na tyle spłukany, że mo- głem sobie pozwolić tylko na tyle. Brak fundu- szy był również pomniejszą przyczyną tego, że ominęła mnie pierwsza seria A6095 i tylko dzięki szybciej reakcji załapałem się na drugą edycję. Co by jednak nie pisać, doświadczenia zebrane z używania kart PCMCIA oraz A6095 spowodowały, że owszem – tak dopalonej A600 można było używać jako platformy do WHDLoad, jednak dla mnie gry to nie wszyst- ko. Lubię coś porobić „na systemie”, a w tych niestety przypadkach, jest to mało komfortowe i jak dla mnie niewystarczające.

W sierpniu 2012 roku natrafiłem na naszym fo- rum na informację o karcie Furia S628, której twórcą jest Boris „Boboo” Krizma. Kartę wypo- ukończenie Furii EC020 w pierwszym kwartale wam także BlazeWCP, FText oraz FBlit. Nie sażono w procesor 68000 28 MHz oraz 2 MB 2013 roku, ale był niezadowolony z oprogra- bez znaczenia pozostaje także FPU pracujący pamięci Fast. Przyspieszenie ponad 5 razy mowania sterującego akceleratorem określa- z tą samą częstotliwością, co procesor. Mie- względem fabrycznej A600 robi wrażenie, choć jąc je jako złe i niewystarczająco dobre. Osiągi dziane radiatory widoczne na pamięciach za- ilość pamięci wywołuje pewien niedosyt. Z pozostawiały wówczas wiele do życzenia – montowałem dodatkowo, gdyż fabrycznie ta- tego też powodu zrezygnowałem z nabycia tej nieco ponad 5 MIPS, ale warto było czekać. 9 kich nie ma, a po kilku godzinach pracy robi karty, jednak projekt na tyle mnie zaintereso- grudnia 2013 roku otrzymałem potwierdzenie się bez nich naprawdę gorąco. Do używania wał, że postanowiłem dokładniej przyjrzeć się zamówienia. Po wpłaceniu kwoty 90 euro plus pakietu WHDLoad zaleca się wersję od 17.x pracy tego zdolnego Słowaka i comiesięcznie koszty wysyłki, karta dotarła do mnie kilka dni wzwyż, gdyż z innymi mogą występować pro- wspierać jego kolejny projekt finansowo. Po- przed świętami i była doskonałym prezentem – blemy – zwłaszcza dotyczy to starszych gier, stępy prac śledziłem dzięki stronie tym bardziej, że otrzymałem podziękowanie gdzie zachodzi czasami konieczność wyłącze- http://www.amigaportal.cz. widoczne na PCB. nia FPU lub cache.

Oszołomiony powodzeniem pierwszego projek- Furia EC020 28 MHz posiada 9,5 MB Fast Boris nie zapomniał także o oprogramowaniu o tu „Boboo” podjął się stworzenia kolejnego ak- pamięci DRAM (z możliwością dodania 1,5 nazwie FuriaTune autorstwa Martina Kuchinki celeratora opartego na procesorze 68020. Do- MB) o czasie dostępu 60 ns, dzięki czemu kar- będącym nawiązaniem do ACATune. Kod źró- datkowego smaczku dodawał fakt, że produkt ta pracuje szybko osiągając wynik 5,89 MIPS. dłowy programu został napisany w assemble- Borisa wydawał się, jak dla mnie, doskonałą Z kartą CF 512 MB Kingston Elite Pro osiąga rze. Obecnie można używać wersji 1.2. Spo- alternatywą dla turbin ACA spod szyldu Indivi- na standardowym scsi.device z FFS około 1,7 sób użycia programu jest banalny – wystarczy dual Computers. Boris początkowo zakładał MB/s. Jako dodatkowe oprogramowanie uży- skopiować go do katalogu C: partycji systemo-

Testy pamięci wykonany w programie AIBB. Jak widać, konkurencja daleko w tyle.

4 POLSKIE PISMO AMIGOWE 3/2014 Furia EC020

obecnie dodat- kowego sprzętu, jak np. A603 lub A604, aby móc wypróbo- wać współpracę z IndivisionECS oraz montowanych na clockporcie dodat- ków Silversurfer, Delfina tudzież Ca- tweasel MK2. Mocno ubolewam też nad brakiem 030 „na po- kładzie” pozwalają- cym na rozbudowę o SubwayUSB. Nie bez znaczenia po- wej i wywołać z CLI z odpowiednim parame- on, ale efekt był żaden – być może zostanie to zostaje też obecność koprocesora matema- trem. Poniższe opracowanie wykonałem na kiedyś dopracowane, gdyż widziałem obrazki z tycznego, który znajdzie zastosowanie w nie- podstawie komend zawartych w FuriaTune 1.1. Sysinfo, gdzie dzięki tej komendzie transfer których demach, programach graficznych, wynosił ponad 4 MB/s! grach doomopodobnych, symulatorach. ● ? – wyświetla listę komend, ● status – wyświetla aktualną konfigurację Karta jest świetną propozycją dla każdego, kto P.S. Obecnie trwają prace nad Furia EC020 Furii, trochę poważniej myśli o korzystaniu z A600. Rev2. Ma to być ten sam typ karty tylko takto- ● reboot – restart Amigi, Za całkiem rozsądną kwotę nabywamy wyso- wany 33 MHz oraz 40 MHz uzyskując osiągi ● default – przywraca ustawienia fabryczne kiej jakości produkt stanowiący na chwilę na poziomie odpowiednio 7 MIPS oraz 8.41 (czasami może być wymagany restart), obecną czołówkę kart turbo dla sześćsetki. MIPS. Wygląda to bardzo obiecująco. ● fpu on/off – w zależności od opcji włącza Tak wyposażona Amiga pozwala komfortowo lub wyłącza FPU, pracować w środowisku Workbencha – kopio- ● cpu cache on/off – w zależności od opcji wanie plików przebiega szybko, praca z pro- Mirosław Arciszewski włącza lub wyłącza cache procesora, gramami, takimi jak , DOpus, Fi- ● shadowrom – włącza dostęp do 32-bitowej lemaster, Scala należy do przyjemności. pamięci, Zgodność z pakietem WHDLoad jest bardzo ● boardrom – wyłącza dostęp do 32-bitowej wysoka i nie zauważyłem żadnej różnicy w pamięci, zgodności z grami względem innych kart, które ● maprom file – wczytuje ROM z pliku (file to dane mi było używać z Amigą 1200 (Blizzard nazwa pliku), IV, M-tec, Elbox 1230). Niestety nie posiadam ● addmem – dodaje 1,5 MB pamięci.

Dodatkowo przytrzymanie przez 3 sekundy klawiszy CTRL+LAmiga+RAmiga włącza tryb PCMCIA friendly, czyli uzyskujemy 5,5 MB Fast.

Ciekawe efekty daje użycie kombinacji ko- mend shadowrom i addmem – ilość MIPS wzrasta do 5,96, zyskujemy 1,5 MB pamięci oraz wzrasta transfer do ponad 1,9 MB/s. Do- datkowo próbowałem aktywować funkcję ide

Oficjalna strona projektu::

http://www.kuchinka.cz/furia/

● szybkość działania (nieznacznie tylko ustępuje ACA030), ● szybki dostęp do pamięci (ponad 14 MB/s), ● FPU, ● cena, cena, cena, ● wysoka jakość wykonania, ● bardzo dobre wyniki transferów.

● brak pisemnej gwarancji oraz jakiegoś fajnego opakowania, ● „tylko” 11 MB dodatkowej pamięci. Druga strona karty. Jak widać, wytłoczone zostały na niej nazwiska osób, które przyczyniły się do finansowego wsparcia projektu.

POLSKIE PISMO AMIGOWE 3/2014 5 BetterWB czy ClassicWB?

BetterWBBetterWB czyczy ClassicWB?ClassicWB?

Dawno już minęły czasy, kiedy użytkownik „Misc3.1”, „Tools3.1”, Amigi klasycznej mógł się zadowolić gołym „Bonus3.1”, „Docs31”, systemem AmigaOS, instalowanym ze sfaty- „Icons3.1” oraz „Dri- gowanych dyskietek. Nawet dwie ostatnie wer- vers3.1”. Instalacja sje systemu dla klasycznej Amigi – 3.5 i 3.9 ku- powinna odbywać się leją już w wielu miejscach, takich jak obsługa na „gołym” systemie i dużych dysków twardych, brak wygodnego fi- zaczyna się od dys- lemanagera czy stare wersje bibliotek. W kietki „Misc3.1”. Pro- związku z oczywistym brakiem szans na roz- ces instalacji, w zależ- wój systemu AmigaOS na procesory 68k, w ności od posiadanego sukurs przyszli jak zwykle sami amigowcy, w Amidze procesora, tworząc gotowe pakiety oprogramowania i ła- może potrwać do kil- tek, przygotowane do instalacji na „goły” sys- kunastu minut jako, że tem. Nie bez znaczenia pozostaje też fakt sta- na dyskietkach znajdu- le rosnącej popularności emulatorów Amigi ją się archiwa LhA, klasycznej, których użytkownicy zamiast insta- które skrypt instalacyj- lować i konfigurować system od zera, wolą ko- ny musi najpierw roz- rzystać z gotowych rozwiązań. W niniejszym pakować. Po instalacji artykule pragnę opisać dwa popularne pakiety Amigę wystarczy zre- wzbogacające AmigaOS, czyli BetterWB i setować i system jest ClassicWB. Oba te rozwiązania łączy fakt, że gotowy do użytku. można je z powodzeniem wykorzystać nawet na niezbyt rozbudowanych konfiguracjach Użytkowanie sprzętowych, a różni natomiast sposób podej- ścia do kwestii rozbudowy systemu i ilości do- Na pierwszy rzut oka w systemie nie widać icon.library i inne), stępnych po zainstalowaniu programów. wielu zmian, na ekranie pozostają standardo- ● zainstalowany i gotowy do wykorzystania we szarości, jednak już po kliknięciu na ikonkę pakiet filesystemu PFS3, dysku systemowego naszym oczom ukazują ● dodatkowe sterowniki drukarek, się poprawione (aczkolwiek nadal 4-kolorowe) ● możliwość szybkiej podmiany ikon na kolo- ikonki. Większość zmian, jakie zaszły w sys- rowe GlowIcons, BetterWB temie, widać po otwarciu kolejnych katalogów ● i wiele innych... systemowych czy zajrzeniu do startup-sequ- ence. Najważniejsze dodane programy to, np. Czy warto? Na pierwszy ogień pójdzie prostszy z pakietów, HDInstTools, czyli program do przygotowywa- czyli BetterWB. Pakiet ten został pomyślany, nia i partycjonowania twardych dysków, będą- Pakiet BetterWB na pewno jest warty uwagi jako rozszerzenie dla AmigaOS3.0 i 3.1, z cy wygodnym i bezpiecznym zamiennikiem użytkowników posiadających mało rozbudo- przeznaczeniem do uruchamiania na prawdzi- systemowego HDToolboxa. W katalogu Tools wane Amigi. Osobiście wykorzystałem go sta- wym sprzęcie, z założeniem, że wystarczy znajdziemy także lekki manager plików Dir- wiając system koledze na A1200 z zaledwie 2 procesor 68000, standardowa ilość pamięci Work, edytor tekstu TextEngine, kalkulator To- MB pamięci Fast na wolniutkiej karcie PCM- RAM oraz 10 MB miejsca na twardym dysku. talCalc czy też program diagnostyczny Whi- CIA. BetterWB przy takiej konfiguracji staje się Nie znajdziemy tu więc wizualnych wodotry- chAmiga. W katalogu Utilities umieszczony bardzo funkcjonalnym rozszerzeniem systemu, sków, tony programów na każdą okazję czy został odtwarzacz płyt CD oraz znany monitor a dzięki instalacji pakietu zyskujemy też sporo pakietu gier. Znajdziemy za to masę uspraw- aktywności systemu SnoopDos. BetterWB in- czasu, który stracilibyśmy na pobieranie z nień, wspomagających codzienne użytkowanie staluje także między innymi oprogramowanie Aminetu potrzebnych programów i łatek oraz lawendowej Amigi. do obsługi plików ADF tsGui, rozszerzony ręczne ich instalowanie. Narzędzia, takie jak wiersz poleceń Zshell i kopiera dysków Super- HDInstTools czy manager plików, są po prostu Instalacja Duper. od razu pod ręką, a jednocześnie system nie pożera dużo pamięci Ram i nadal zajmuje W archiwum znajduje się sześć obrazów dys- Poza zmianami widocznymi dla oka i naszego mało miejsca na dysku. Nie bez znaczenia jest ków, w formacie DMS bądź ADF, nazwanych kursora myszki, wiele usprawnień zachodzi też też fakt, że pakiet BetterWB jest bardzo często w samym systemie. aktualizowany – w ciągu pierwszego półrocza Wszystkich nie sposób tu- 2014 roku były już cztery aktualizacje. taj wymienić, jednak do najważniejszych należą:

● nowe datatypy (gif, jpg, bmp, png, pcx, ilbm, tga, tiff, wav, ), ● wiele dodanych commo- dities, takich jak Magic Menu czy Win2Front, ● paker XPKMaster, ● najnowsze wersje archi- wizerów LHA, LZX, ZIP, ClassicWB jest zupełnie innym pakietem niż DMS i innych, opisany powyżej BetterWB. Oczywiście idea ● FastFileSystem w wersji ulepszenia systemu operacyjnego jest nie- 44.5, zmienna, za to twórcom pakietu przyświecał ● pakiet Fat95 do obsługi zupełnie inny zamysł. Już samo wejście na dysków w formatach stronę projektu może przyprawić o lekki zawrót FAT i FAT32, głowy, bo do wyboru mamy na dzień dobry aż ● wiele zaktualizowanych osiem (!!!) wersji pakietu: bibliotek i poleceń sys- BetterWB temowych (np. Setpatch ● Lite – wersja przeznaczona do używania w

6 POLSKIE PISMO AMIGOWE 3/2014 BetterWB czy ClassiWB?

gramów; Użytkowanie ● dodanie na blat Workbencha ikonek Shell, CX Handler (obsługa commodities), Clear W moim opisie sku- Ram (czyszczenie pamięci ze „śmieci”), pię się na wersji Run (uruchomienie ButtonMenu z szybkim ClassicWB, której dostępem do programów); używam na Amidze ● MagicWB – pakiet 8 kolorowych ikon, w 600, czyli GAAE. wersji przystosowanej do rozdzielczości Jest to bodajże jedy- 640x256. Włączona jest także obsługa na wersja pakietu, NewIcons; która zadowoli się ● Pakiet MUI; kickstartem 2.x. Nie ● SmartWin – łatka przyspieszająca otwiera- zawiera może ona nie okienek. wszystkich wizual- nych wodotrysków, Oczywiście zmian i usprawnień jest dużo wię- obecnych w wersjach cej, wszystko dokładnie opisane jest w doku- na lepsze konfigura- mentacji pakietu, więc nie ma sensu wymie- cje, jednak podsta- niać tutaj całości. Poza usprawnieniami czysto wowe zasady działa- systemowymi, ClassicWB oferuje także spory nia pakietu są po- pakiet oprogramowania. Wystarczy powie- dobne dla każdej dzieć, że po instalacji wszystko zajmuje ok. 45 jego edycji. Po odpa- MB miejsca na dysku. Przeglądając katalogi leniu nowo zainsta- systemowe trafimy chociażby na następujące Wersja Full lowanego systemu programy: od razu widzimy wie- trybach 8-16 kolorów w rozdzielczości le usprawnień w stosunku do „gołego” Work- ● katalog System: AmiDock, ButtonMenu, 640x256 dla docelowego systemu, jakim bencha. Domyślnie uruchomione programy i AGLaunch, SmartCache. jest goła A1200, łatki to: ● katalog Utilities: SnoopDos. ● Full – rozbudowana wersja powyższego pa- ● katalog Storage: dodatkowe sterowniki dru- kietu, przeznaczona dla A1200 z 4 MB pa- ● ToolsDaemon – dodający multum nowych karek, monitorów, mapy klawiatury itp. mięci Fast, komend do menu w górnej belce Workben- ● katalog Help: pełna dokumentacja wszyst- ● ADV – modyfikacja wersji Full, przeznaczo- cha. W domyślnej konfiguracji ClassicWB kich zainstalowanych dodatków. na dla rozdzielczości 640x512 w minimum mamy tam szybki dostęp do ustawień sys- ● katalog Tools: TTManager, IconImage. 16 kolorach, temowych, narzędzi do archiwizacji plików, ● ADVSP – wersja dla dopalonych A1200, edycji tekstu, otwierania CLI, a także szyb- Na partycji systemowej odnajdziemy także ● P96 – wersja dla kart graficznych w trybach kiego uruchamiania wielu domyślnie zain- nowe katalogi z zainstalowanym oprogramo- 16 i 32-bit, stalowanych programów (playery, przeglą- waniem: ● UAE – gotowy system dla emulatorów, darki obrazków, DOpus4, SnoopDos i wiele ● OS3x – wersja dla systemów AmigaOS 3.5 innych); ● Programs: DirOpus4, DiskSalv, DpaintIV, i 3.9, ● AssignWedge – łatka umożliwiająca szyb- FMSsys, SuperDuper, HippoPlayer, Octa- ● 68k – najprostsza wersja pakietu, która za- kie przypisywanie dysków logicznych, w MED, PeelIcons, SysInfo, Trans Write, dowoli się procesorem 68000, 2 MB pamię- przypadku ich wywołania przez programy, Georg, TSGui, VirusZ. Dodatkowo w kata- ci i kickstartem 2.0 (wersja GAAE). eliminuje potrzebę używania komendy as- logu Programs odnajdziemy pakiet gier Pu- sign; blic Domain. Jak widać z powyższej listy, wybór wersji jest ● MagicMenu – powszechnie używany przez ● Icons – zestawy ikon na każdą okazję. szeroki i powinien zadowolić każdego: od amigowców program, dzięki któremu do ● My Files – zestaw oprogramowania do ob- użytkownika A500 z ACA500, przez użytkow- opcji dostępnych w pull-down menu, na sługi dużych dysków twardych (różne wer- ników A600 z rozszerzoną pamięcią i standar- górnej belce Workbencha, mamy dostęp w sje scsi.device, FFS_v43.20, PFS3, HDIn- dowym kickstartem, po highendowe Amigi kla- każdym miejscu ekranu; stTools i inne), zestaw modułów w katalogu syczne i użytkowników UAE. ● AmiDock – umieszczony domyślnie u dołu Music, narzędzie do dzielenia i łączenia pli- ekranu pasek szybkiego uruchamiania pro- ków (Splitz i Joinz). Instalacja

I tutaj są pierwsze schody. Mimo, że więk- szość wersji pakietu przeznaczona jest dla „prawdziwej” Amigi, to instalację najłatwiej przeprowadzić pod emulatorem. Dlaczego? Otóż w archiwum z ClassicWB znajduje się plik w formacje *.hdf, czyli jest to plikopartycja emulatora UAE. Według autorów pakietu, ma to na celu ułatwienie instalacji i łatwość dosto- sowania pakietu do swoich potrzeb przed transferem na prawdziwą Amigę. Nie do końca zgadzam się z tą argumentacją, ponieważ jako zatwardziały amigowiec nie lubię do amigowa- nia używać peceta… ale co zrobić? Takie cza- sy, panowie... Tak czy inaczej, w celu zainsta- lowania pakietu, niezbędne jest wykorzystanie emulatora oraz posiadanie odpowiednich pli- ków z kickstartem (w zależności od instalowa- nej wersji ClassicWB wymagany do 2.0 do 3.1). System instaluje się dość łatwo, bootując z plikopartycji i w odpo- wiednim momencie umieszczając w „stacji” plik ADF z obrazem dysku z odpowiednią wer- sją AmigaOS. Osobną kwestię stanowi prze- transferowanie plików z systemem na praw- dziwą Amigę. Ja osobiście użyłem karty CF, podłączonej do peceta, którą sformatowałem pod emulatorem jako dysk amigowy. Innym wyjściem może być podłączenie amigowego dysku bezpośrednio do peceta czy transfer pli- Wersja P96 ków na płycie CD.

POLSKIE PISMO AMIGOWE 3/2014 7 BetterWB czy ClassicWB?

Dużą zaletą ClassicWB jest także do- myślne skonfigurowanie pod użytkowanie WHDLOAD. Aby wszystko działało, wystarczy zapisanie w katalogu devs:kickstarts odpo- wiednich plików z kickstartami, niezbędnych do uruchamiania gier i dem.

Wszystkie powyższe usprawnienia mają swoją jedną wadę: zajmują dużo pamięci RAM, co przy konfiguracjach z mniejszą ilością dostęp- nej pamięci może być problematyczne. Auto- rzy pakietu przewidzieli jednak rozwiązanie tego problemu. Otóż, jeśli podczas bootowania Amigi przytrzymamy wciśnięty prawy klawisz myszy, trafimy do ClassicWB BootMenu, gdzie będziemy mogli wybrać parę alternatywnych opcji uruchomienia Amigi, takich jak: CLI, Mi- nimum Startup, Safe Startup, Virus scan i inne. Oczywiście menu jest w pełni konfiguro- walne i nic nie stoi na przeszkodzie, aby dodać do niego nowe opcje (np. ja dodałem opcję uruchomienia odpalarki WHDLOAD – X- Bench).

Podsumowanie Jak widać, ClassicWB jest pakietem o bardzo dużych możliwościach, w znaczny sposób usprawniającym i modyfikującym pracę z sys- temem Amigi. Dla niektórych wadą może być ClassicWB UAE sposób jego instalacji, wymuszający w praktyce użycie emulatora, jednak nie jest to kwestia dyskwalifikująca BetterWB ClassicWB. Pakiet jest bardzo roz- budowany i w powyższym artykule Autorem pakietu BetterWB jest niejaki Gul- nie zamieściłem na pewno informa- liver, który rozwija swój projekt z czystej cji o wszystkich zmianach, jakie chęci stworzenia czegoś dla amigowej spo- wprowadza. Na pewno do jego naj- łeczności. większych zalet należą ogromne możliwości konfiguracji, duży wybór http://lilliput.amiga-projects.net/BetterWB.htm oprogramowania dostępnego „pod ręką” czy, dzięki dużemu zróżnico- ClassicWB waniu dostępnych wersji pakietu, możliwość instalacji na praktycznie Projekt, za który odpowiedzialny jest Blo- każdej konfiguracji Amigi. Pakiet odwych – członek społeczności portalu En- mogę polecić każdemu amigowco- glish Amiga Board. Pakiet można pobrać ze wi, który niekoniecznie chce się ba- specjalnie wydzielonej podstrony na serwe- wić w „ręczne” konfigurowanie sys- rze, a dyskusję na jego temat prowadzić na temu oraz wyszukiwanie i instalację forum będącym częścią wspomnianego łatek i programów, które ułatwiają portalu. Wszelkie sugestie, uwagi, błędy nasze amigowanie. ClassicWB GAGE można zgłaszać właśnie tam, podobnie jak i tam w pierwszej kolejności autor zamiesz- cza informację o nowych wersjach. Mateusz „Twardy” Eckert http://classicwb.abime.net/ http://eab.abime.net/forumdisplay.php?f=61

ClassicWB GAGE ClassicWB OS3.9

8 POLSKIE PISMO AMIGOWE 3/2014 MomosIRC

MomosIRCMomosIRC

Tradycyjnie przyjęło się uważać, że do czego, jak do czego, ale do pogaduszek na IRC-u systemy amigowe oprogramowane są znako- micie. Bliższe przyjrzenie się sytuacji ujawnia jednak, że ta opinia bazowała na jednym pro- gramie, mianowicie AmIRC-u. Ten zaś, choć niewątpliwie dobry, a od jakiegoś czasu rów- nież darmowy, zaczął zdradzać objawy wieku. Podstawowy problem, szczególnie istotny dla użytkowników spoza zachodnioeuropejskiej strefy językowej, to problem kodowania zna- ków. Na większości kanałów polskojęzycznych standardem stało się kodowanie UTF-8. Czę- ściowym rozwiązaniem problemu Unikodu dla użytkowników MorphOS-a stała się wtyczka do AmIRC-a wydana przez Thomasa Bodliena. Choć zasadniczo spełnia swoje zadanie, ma kilka wad – na przykład wywołuje problemy z kolorowaniem wypowiedzi. Próba dodania ob- sługi kodowań do samego AmIRC-a też nie jest prosta, ze względu na dość nieuporząd- kowany projekt programu.

Nic dziwnego, że w tej sytuacji kilku programi- stów próbowało swoich sił chcąc napisać al- ternatywny program do IRC. Część z tych prób zakończyła się mniej lub bardziej działającymi produktami: WookieChat, Sermonatrix, mamy też port konsolowego IRSSI. Mamy też wresz- cie nasz polski produkt, tytułowego Mo- mosIRC-a, napisany przez Mariana Guca. Au- tor początkowo miał zamiar prze- Na górze kilka okienek programu otwartych jednocześnie. portować napisany na AROS-a Do rozwiązania pozostaje nato- program AIRCOS, ale najwyraźniej miast wiele drobnych niedogod- zachwycony jakością jego kodu, ności, z jakimi spotka się użyt- zdecydował się na napisanie wła- kownik MomosIRC-a. Nie dys- snego programu. kwalifikują one rzecz jasna pro- gramu, tym bardziej, że autor MomosIRC jest w pełni funkcjonal- wciąż go ulepsza. Jednak osoba nym programem, co bardzo ważne przyzwyczajona do wielu udo- nie mającym żadnych problemów z godnień z programu AmIRC, obsługą wielu kodowań znaków, z może być nieco rozczarowana. unikodem włącznie. Co więcej, na Jednym ze źródeł problemów jest różnych kanałach IRC czy oknach użyta do wyświetlania rozmowy prywatnych możemy w tym samym na kanale zewnętrzna klasa MUI czasie pracować z różnymi kodo- NList. Autor ma zamiar ją wyeli- waniami, możemy je również dy- minować, ale póki co przyczynia namicznie zmieniać wewnętrzną się ona do pewnej niestabilności komendą, gdy na przykład zorien- programu. Od czasu do czasu tujemy się, że rozmówca pisze w MomosIRC lubi się zawiesić, ISO-2 czy nawet w AmigaPL. Pro- Główne okno programu. podczas gdy AmIRC, na tej sa- mej maszynie, jest stabilny jak gram korzysta z syste- skała. NList ma również problemy z kopiowa- mowej biblioteki charset niem tekstu, zaznaczanie jest problematyczne, library i obsługuje a czasem kopiuje się nie to, co zaznaczyliśmy. wszystkie znane jej ko- Nie ma też funkcji automatycznego wyróżnia- dowania. Trzeba jednak nia adresów URL oraz automatycznego otwie- pamiętać o tym, że póki rania ich w przeglądarce internetowej. Po- co MorphOS nie ma ob- mniejszym problemem jest brak obsługi kolo- sługi rysowania tekstu z rowania tekstu. Nie działa też obsługi przesy- pełnym zestawem zna- łania plików za pomocą DCC, chociaż ta funk- ków Unicode, chociaż cja często i tak nie działa w dobie firewalli i autor zapowiada omi- stosowania lokalnych adresów IP. nięcie tego problemu przez użycie biblioteki Słodko więc nie jest, ale nie przeszkadza mi to TTEngine. Niemniej używać MomosIRC-a na co dzień jako pod- problem pisania z pol- stawowego programu do czatowania. Tym skimi znakami na kana- bardziej, że w tej chwili program Mariana Guca łach IRC używających jest chyba jedynym aktywnie rozwijanym klien- kodowania UTF-8 jest w tem IRC dla MorphOS-a, więc w przyszłości pełni rozwiązany. może być tylko lepiej :-). Okno ustawień programu. Grzegorz Kraszewski

POLSKIE PISMO AMIGOWE 3/2014 9 AmiKit 7 – na gorąco

nana gorącogorąco

Na przełomie maja i czerwca ukazała się ko- CD/DVD zajmuje lejna wersja pakietu AmiKit – prekonfigurowa- nieco czasu (do nej, darmowej dystrybucji środowiska Amiga- przeniesienia jest OS – oznaczona już numerkiem 7. Postanowi- ponad 35000 plików), łem się jej nieco bliżej przyjrzeć, zwłaszcza, że o czym instalator mogłem przetestować ją na specjalnej, wów- grzecznie przypomi- czas jeszcze niedostępnej dla zwykłego użyt- na. Następny etap to kownika, wersji WinUAE 2.8.1 AmiKit preview. konfiguracja WinU- Na wstępie należy odnotować, że początkowo AE, rozdzielczości słowo „darmowa” było nieco na wyrost – nie amigowego blatu (za- było możliwe pobranie pakietu zwyczajowymi lecana rozdzielczość metodami, gdyż autor, Jan Zahurancik, zdecy- 1024x768) i środowi- dował o przygotowaniu limitowanej edycji dys- ska do wyboru spo- trybuowanej na specjalnie przygotowanym „pa- śród Magellana II, Scalosa i Workbencha. Tu- Ale, niestety, pojawiły się i pierwsze „schodki”. luchu USB”. Można było ją nabyć w kilku wa- taj autor również rekomenduje wybór – Magel- Jako, że „apetyt rośnie w miarę jedzenia”, a riantach cenowych, w zależności od wysokości lan II (w trybie zamiennika Workbencha). Zde- wcześniej ustawiłem środowisko na Magellana dotacji, jaką chcieliśmy przekazać autorowi za cydowałem się na tę opcję. II jako zamiennik Workbencha, oczekiwałem wkładany wysiłek w rozwijanie pakietu. Po na odlotową konfigurację. I tu się w dwóch tygodniach od tego momentu wydana dużej mierze zawiodłem. Co mi się na została również wersja do pobrania w tradycyj- początku rzuciło w oczy, to zbyt małe ny sposób w wersjach przeznaczonych dla czcionki ustawione w listerach. W tym systemów Windows, , Mac OS, Android, przypadku wystarczyły sekundy a także nieco okrojona wizualnie dla Amig kla- „grzebania” w ustawieniach Magella- sycznych. Jak już wspomniałem, na potrzeby na, aby rzecz poprawić, jednak trud- tego artykułu skupię się na tej pierwszej, od niejsza sprawa związana jest z ikon- której wszystko się zaczęło. Przejdę przez kami na belce listera, które są zdecy- proces instalacji pakietu, a następnie podzielę dowanie za małe w stosunku do zale- się moimi odczuciami. canej rozdzielczości blatu, nie wspo- minając już jak to musi wyglądać na Instalacja Kilka chwil później zobaczyłem ekran bootują- wyższych rozdzielczościach. Przydałby się cy Amikitowej Amigi w wysokiej rozdzielczości również, oprócz większego rozmiaru tych iko- Pakiet „zassałem” ze strony domowej projektu wraz z paskiem postępu, a następnie moim nek, także lepszy efekt 3D wciśnięcia ikonki, a i uzbrojony w laptopa, przystąpiłem do instala- oczom ukazał się blat Amikita w pełnej okaza- nie tylko jej zacienienie. Według mnie, autor cji. Sam proces jest prosty i intuicyjny – jeste- łości. Za pomocą amigowego programu Scre- umieścił także zbyt dużo narzędzi w belce na- śmy praktycznie prowadzeni za rączkę krok po enMode ustawiłem rozdzielczość ekranu do rzędziowej listera i dlatego są one takie małe, kroku. Aby przystąpić do zabawy, musimy za- bardziej praktycznej w formacie 16x9, pasują- aby jak najwięcej ich tam pomieścić. Kwestia pewnić sobie posiadanie pod ręką amigowego cej do mojego notebooka, po czym przystąpi- dyskusyjna też samego doboru ikonek czy np. kickstartu (ROM) 3.1 zgranego do pliku i mieć łem do oględzin Amikitowej Amigi. ikonka z symbolem „i” najbardziej się nadaje w pogotowiu płytę CD/DVD z system amigo- do zmiany trybu wyświetlania listera. Podobnie wym AmigaOS 3.5 lub AmigaOS 3.9 (czy Wrażenia problematyczne jest ustawienie czcionek w choćby ich odmianę AmigaOS XL lub pakiet ). Dyskietki z systemem 3.x nie Jako, że piszę te słowa pozwalają na instalację pakietu. Amigowy jeszcze niemalże na gorą- skrypt instalacyjny jest zlokalizowany i dostęp- co, tuż po zainstalowaniu ny jest do wyboru język polski. pakietu, moje pierwsze odczucia są ambiwalent- Plik kickstartu 3.1 najlepiej skopiować do da- ne, że tak to ujmę. Gra- nego katalogu w szufladzie Amikita. „Będąc ficznie czy też wizualnie szczęśliwym posiadaczem” pakietu Amiga Fo- cały desktop prezentuje rever 2012 Plus w postaci obrazu ISO kupio- się bardzo ładnie. Co wię- nego na promocji, natychmiast się go dogrze- cej – widać, że autor mu- bałem w czeluściach przenośnego dysku twar- siał rzeczywiście poświę- dego. Przed uruchomieniem windowsowego cić mnóstwo czasu na se- instalatora Amikita zainstalowałem AF 2012 lekcję i instalację amigo- Plus w wirtualnym napędzie, zgodnie z zale- wego oprogramowania. ceniami skryptu instalacyjnego. Do tego, co od razu rzuca się w oczy, wszystko jest Po znalezieniu amigowego ROM-u i wskazaniu ładnie dopieszczone i systemu na CD/DVD, instalator pakietu Amikit wstępnie skonfigurowane, ochoczo przystąpił do kopiowania koniecznych aby zaoszczędzić począt- plików na twardy dysk. kującemu użytkownikowi tej żmudnej konieczności, Sam proces kopiowania amigowego systemu z a i nawet uciążliwości. AmiKit w trakcie uruchamiania

10 POLSKIE PISMO AMIGOWE 3/2014 AmiKit 7 – na gorąco menu belki tytułowej Magellana czy rozwija- nym pop-up menu po wciśnięciu prawego przycisku myszy na blacie. Czcionki tam wyko- rzystane są zdecydowanie zbyt małe i przez to małe czytelne, przynajmniej na ekranie o roz- miarze 15 cali.

Z innych bardziej praktycznych rzeczy brakuje mi, na przykład powrotu do dostępnej listy na- pędów z poziomu listera. W tej chwili po dwu- kliku lewym przyciskiem myszy na blacie, po- jawia się lister z napędami. Po wyborze które- goś z tych napędów, nie można się później cofnąć w tym samym listerze do listy napędów. Jako, że działamy na emulatorze przydałoby się jeszcze tworzenie pliku HDF z danego ka- talogu. Jest funkcja tworząca obraz ISO, ale niestety nie działa. Rzuca się też w oczy brak konfiguracji magellanowego dwukliku prawego przycisku myszy na blacie. Autor wykorzystał zamiennie program MagicMenu i niestety, zdublował w tym menu ustawienia z belki tytu- łowej Magellana, a więc rzeczy której raczej rzadziej się wykorzystuje w codziennej prakty- ce. Brakuje mi też lepszej konfiguracji wyda- rzeń systemowych śledzonych przez Magella- na (Scripts), gdyż tylko dwa wydarzenia mają przypisane im funkcje. Kontrowersyjne jest – moim zdaniem – wykorzystanie programu AmiStart w miejsce magellanowego menu Start. Krótko mówiąc, jeśli Magellan ma zastę- Wizualnie oceniam całość na piatkę. Na pew- pować nam Workbencha, to część wykorzy- no AmiKit 7 pozytywnie zaskoczy kogoś nie- stanych w pakiecie programów jest raczej zaznajomionego wcześniej z Amigą wyposa- zbędna. żoną w kartę graficzną. Za wykorzystanie "mocy" Magellana II i konfigurację amigowego Oczywiście wiele rzeczy z założonej w Amiki- desktopu z jego pomocą dam co najwyżej cie konfiguracji amigowego desktopu można czwórkę minus. Chwała autorowi za wysiłek... I ● bogaty wybór i konfiguracja amigowego samemu poprawić czy zmienić, ale do tego po- czekam na bardziej amigową w klimacie i bar- oprogramowania, trzebna jest raczej nieco głębsza niż tylko po- dziej funkcjonalną pod kątem wykorzystania ● dopracowane wizualnie ustawienia, wierzchowna znajomość systemu amigowego i Magellana, wersję 8. ● prosta i intuicyjna instalacja. oprogramowania, zwłaszcza w tak rozbudowa- nym pakiecie. Streszczając całą krytykę do minimum powiem, że odczuwam zbyt mało tak Dariusz Gac ducha amigowego, jak i magellanowego w ca- łości i za dużo zapożyczeń z systemu Win- dows. Samoistnie nasuwa mi się skojarzenie, Strona projektu: że autor mocno chciał odwzorować Windowsy ● wymaga kickstartu 3.1 i systemu Ami- w środowisku amigowym. Dostrzegam pewien http://www.amikit.amiga.sk gaOS od 3.5 wzwyż, brak konksekwencji, typu zbyt małe czcionki i ● zbyt duże nawiązanie do systemu Win- ikonki w stosunku do dużych rozdzielczości dows, pod emulatorem. Nie podoba mi się tez rezy- ● niepełne wykorzystanie możliwości Ma- gnacja z funkcji wbudowanych w Magellana, gellana, jak np. zegarek czy Start menu, na rzecz ze- ● zdecydowany przerost formy. wnętrznych programów. Odnoszę wrażenie, że amigowy system zaproponowany przez autora powinien być raczej uruchamiany bez Magel- lana, raczej w trybie klasycznego Workbencha. Miałoby to większą rację bytu.

Z lewej strony listery Magellana II w wersji oryginalnej, z prawej po drobnych poprawkach.

POLSKIE PISMO AMIGOWE 3/2014 11 Redit

ReditRedit

Edytorów tekstu Amiga klasyczna doczekała kombinacją klawiszy Ami- się wielu. Niektóre są lepsze, inne gorsze, ale ga+C mamy kopiowanie, a wszystkie mają jedną podstawową zaletę, z nie na przykład wycinanie). którą zgodzą się chyba wszyscy – są lepsze niż systemowy Ed. Ale czy to zdanie jest na Instalacja programu, po- pewno prawdziwe w przypadku bardzo orto- dobnie jak i jego wykorzy- doksyjnych użytkowników Amigi, którzy nie stanie są banalnie proste. wyściubiają nosa spod Amig działających pod Jeden plik, który należy AmigaOS 1.2? Nie za bardzo, gdyż tacy użyt- skopiować w wybrane kownicy raczej nie mają alternatywy. Znalezie- miejsce na dysku i uru- nie dobrego edytora tekstu, który byłby w sta- chamiać w przypadku za- nie zaspokoić ich podstawowe potrzeby mogło istnienia takiej potrzeby. być trudne, o ile nie całkowicie niemożliwe. Aż Nie ma konieczności do- do teraz, gdyż Kai Scherrer napisał program o grywania żadnych bibliotek brzmiącej z niemiecka nazwie Redit. ani dodatkowych komend, chociaż w przypadku ich Nasz bohater to prosty edytor plików teksto- dostępności lub lepszej wych. Zajmuje niewiele miejsca (plik wykony- konfiguracji systemu, pro- walny liczy sobie niecałe 60 kB) i ma niewy- gram to zauważa i robi z obrażalnie niskie wymagania – zadowoli się tego użytek (np. tak działa praktycznie każdą Amigą z systemem od Ami- procedura schowka, która gaOS 1.2 aż po AmigaOS 3.9, z 0,5 MB pa- po wykryciu clipboard.de- Redit pod AmigaOS 1.3 mięci. Podobnie jak i wymagania, jego możli- vice robi z niego użytek za- wości są również niewielkie, co jednak nie miast wykorzystywać wbudowane mechanizmy tach startowych dla „początkujących”. Takie znaczy, że całkowicie eliminują pro- zastosowanie program już zresztą gram z centrum zainteresowania. Je- znalazł, gdyż znajduje się w opisy- żeli zaczniemy go porównywać na wanym choćby w tym numerze Bet- przykład z CED-em, wówczas szybko terWB. Szybko zbierając pomysły, dojdziemy do wniosku, że takie po- wydaje mi się, że można go również równanie nie ma sensu (choćby na wykorzystać przy dyskietkach ratun- sam start – brak jakiejkolwiek konfigu- kowych lub dyskietkach startowych, racji), ale już myśląc w kategoriach gdzie niezbędne jest użycie edytora zastąpienia nim Ed-a, ma to jak naj- tekstu, a z różnych przyczyn (miej- bardziej szansę powodzenia. Powo- sce na dysku, wolna pamięć, ograni- dów jest kilka, z czego najważniejsze czenia systemowe) wybór mamy to intuicyjna, w pełni amigowa obsługa bardzo zawężony. Z całą pewnością (mówcie sobie co chcecie, ale moim amigowe wygi, o ile jeszcze w ogóle zdaniem Ed jej nie ma), podstawowe korzystają z edytorów tekstu, nie za- funkcje kopiowania, wycinania i wkle- interesują się tym programem, gdyż jania tekstu czy praca na wielu doku- nie przedstawia on dla nich żadnej mentach otwartych jednocześnie w wartości. Mała liczba funkcji i prosto- różnych oknach. O takich elementach, ta mogą się okazać zbyt dużymi jak odczyt i zapis pliku nie ma co ograniczeniami, które zdeklasują w wspominać, gdyż są one absolutnym ich oczach ten program. minimum, jakie każdy program powi- nien posiadać. Dodatkowo, wszystkie Sebastian Rosa funkcje programu można wywołać ko- programu). Program startuje zarówno z po- rzystając ze skrótów klawiaturowych, których Strona projektu: obłożenie jest przyjęte jako standard (pod ziomu CLI, jak i Workbencha zapewniając użytkownikowi swobodę w http://www.amikit.amiga.sk zakresie jego wywołania.

Zapewne rodzi się pytanie, dla kogo jest taki, dość ubogi, ale jednocześnie bardzo przyjazny syste- mowi, o bardzo niskich wymaganiach program? ● niewyobrażalnie niskie wymagania – Osobiście zastosowania program działa bez problemów nawet znalazłem dwa. Pierwsze na AmigaOS 1.2, z nich to, już wspomniane ● podstawowe funkcje edycji tekstu, takie wcześniej, zastąpienie jak kopiowanie, wklejanie, wycinanie, „koślawego”, nieintuicyj- ● możliwość pracy na kilku dokumentach nego i kiepskiego Ed-a, co jednocześnie, otwartych w osobnych na pewno pozytywnie od- oknach. bije się na zdrowiu psy- chicznym wielu z Was, którzy są czasami zmu- szeni, aby z niego korzy- stać. Drugie, jakie wpadło mi do głowy, to wykorzy- ● brak jakiejkolwiek, choćby podstawowej stanie programu przy możliwości konfiguracji. Redit pod AmigaOS 3.1 wszelkiego rodzaju pakie-

12 POLSKIE PISMO AMIGOWE 3/2014 2048

20482048

Jeszcze kilka lat temu cały świat zagrywał się w „Sudoku” – czy to w postaci papierowej, czy elektronicznej, choć było to nieistotne, gdyż każda z dostępnych odmian pozwalała sku- tecznie zabić czas w drodze do pracy/szkoły czy też podczas śniadania, jednocześnie cały czas ćwicząc nasze szare komórki. W dobie coraz bardziej zaawansowanych telefonów komórkowych i tabletów gry logiczne powoli odchodzą w zapomnienie i wypierane są przez gry bardziej zręcznościowe: „Angry Birds”, „Flappy Bird” – te tytuły nie schodziły z wokan- dy pulpitów „tableciarzy” na całym świecie w okresie ostatnich kilku latach. Rok 2014 to chyba jednak renesans gier logicznych, gdyż furorę robi między innymi tytuł „2048”. Z jednej strony gra niezwykle prosta, zarówno w obsłu- dze, jak i w zasadach w niej obowiązujących, a z drugiej strony dosyć wymagająca i przy tym jednocześnie wciągająca.

Gracz ma przed sobą kwadratową planszę składającą się z 16 pól oraz dwa znajdujące się na niej w losowych miejscach klocki z cyfrą 2 i/lub 4. Zadaniem gracza jest przesuwanie klocków po planszy przy wykorzystaniu klawi- szy sterujących kursora. Należy jednak mieć na uwadze, że nie przesuwamy każdego kloc- ka z osobna, lecz ich całe wiersze lub kolumny aż do momentu, gdy napotkają przeszkodę, którą jest kolejny klocek lub granica planszy. Każde przesunięcie skutkuje dwoma zdarze- niami. Pierwsze z nich występuje zawsze i jest to pojawienie się na dowolnym, pustym polu stępnemu kodowi źródłowemu autorstwa planszy nowego klocka z cyfrą 2 lub 4. Drugie Gabriele Cirulli, niczym grzyby po desz- Wizualna prezentacja zasad gry – linie proste jest warunkowe i zależy od tego czy dwa klocki czu, zaczęły pojawiać się jej różne inkarnacje wskazują kierunek ruchu gracza i efekt, jaki to z tą samą cyfrą lub liczbą zderzą się. Jeżeli na różne systemy operacyjne. Robert Krajcarz za sobą niesie. Linie krzywe, to kolejność miała miejsce taka sytuacja dwa klocki z tą wraz z Aleksandrem Piotrem Chylińskim stwo- wykonywanych kroków. samą cyfrą lub liczbą łączą się w jeden o war- rzyli także jej amigową odmianę. Jak na takie tości będącej ich sumą. W ten sposób nastę- maleństwo, gra ma dosyć spore wymagania – sze, jest zawsze ukończony lub ukończony na puje systematyczne zwiększanie wartości konieczny jest system AmigaOS 3.x lub wyż- tyle, aby kolejne wersje były tylko usprawnie- klocków, aż do pomyślnego uzyskania tytuło- szy (także system AmigaOS 4.x, jak i Mor- niami poprzedniej. Panowie, tak trzymać i cze- wej liczby 2048. W trakcie rozgrywki wszystkie phOS) oraz datatyp PNG. Jak to się już przyję- kamy na Waszą kolejną „małą” grę. wartości połączonych klocków zwiększają ło w przypadku dokonań Roberta i Aleksandra, również ogólny wynik punktowy gracza. gra działa komfortowo na kartach graficznych, jak i na chipsecie AGA (nie było testowane Sebastian Rosa Popularność tej dosyć prostej, lecz niezwykle działanie na chipsecie ECS), zarówno w trybie wciągającej gry sprawiła, że dzięki ogólnodo- pełnoekranowym, jak i w okienku oraz posiada tzw. oskórowanie, a więc kilka różnego rodzaju zestawów graficznych, w zależności od upo- dobań gracza lub konfiguracji posiadanego 4096 sprzętu (wybór skórek odbywa się przez pa- rametr/tooltype SKIN). Dodatkowo, gra zapisu- „4096” to wariacja oryginału napisana przez Roba Hewitta z grupy Coagulus. Zasady są dokładnie je jeden, najlepszy uzyskany wynik punktowy. takie same, lecz autor zwiększył poziom trudności podnosząc dwójkę do kolejnej potęgi, dopiero wtedy umożliwiając graczowi zakończenie zabawy. http://blabla.ppa.pl/download/2048.lha Graficznie gra nie wygląda może rewelacyjnie (pa- leta kolorów jest trochę matowa), lecz dzięki temu tytuł nie posiada zbyt dużych wymagań i zadziała Gra jest prosta, napisana przyjaźnie dla sys- ● atrakcyjny wygląd, na Amidze z 1 MB pamięci. Rozgrywka jest do- ● poprawność wykonania technicznego, kładnie taka sama. temu i w zasadzie nie ma sensu się nad nią zbyt rozpisywać. Cieszyć powinien fakt, że to, ● nowość na świecie, nowością na Ami- http://coagulus.newport.net/cs/bin/4096.zip w co zagrywa się cały świat, możemy mieć dze. również i my na naszych poczciwych, starych (a także i nowych) Amigach lub ich wciele- niach. Nie powinniśmy również mieć żadnych pretensji do jakości wykonania tej amigowej odmiany gry, gdyż Robert Krajcarz i APC nie raz już udowodnili, że stanowią pewnego ro- dzaju gwarancję tego, iż ich produkt zawsze ● drobne przekłamanie graficzne wersji posiada wystrój adekwatny do swojego charak- AGA (zalecane jest granie na własnym teru (choć niekoniecznie emanuje wodotry- ekranie, a nie w okienku). skami graficznymi) oraz, co chyba najważniej-

POLSKIE PISMO AMIGOWE 3/2014 13 OpenXcom

„Ufo: Enemy Unknown” to gra, która została wydana w 1994 roku. Niestety, tytuł, który bez problemów działał nawet na poczciwej Amidze 500, sprawia problemy na nowych kompute- rach. Dlatego też grupa fanów tej gry posta- nowiła napisać wersję, która zadziała bez pro- blemów na nowych komputerach. W ten spo- sób narodził się w 2009 roku projekt Ope- nXcom. Pierwsza wersja gry ukazała się w październiku 2010 roku, a dzięki dużym wysił- kom Pawła „Stefkosa” Stefańskiego od nie- dawna możemy cieszyć się portem tej gry tak- że dla systemu MorphOS.

Historia gry jest prosta – Obcy z innych sys- temów gwiezdnych pojawiają się na naszej planecie i zaczynają terroryzować ludzkość. Powołana zostaje tajna organizacja X-Com, która postawiła sobie jeden cel – zniszczyć na- jeźdźców. Podstawowa rozgrywka nowej od- słony klasyka jest dokładnie taka sama, jak pierwowzoru i w tym artykule nie będziemy się na tym skupiać. Wiele już o „UFO: Enemy Unknown” napisano i zainteresowani na pew- no znajdą wiele informacji w szeregu popeł- nionych recenzji, znajdujących się także na naszym portalu. W tym tekście postaram się przyjrzeć bliżej temu, jakie zmiany wnosi nowa MorphOS możemy: ● agresywne akcje odwetowe, czyli UFO za- inkarnacja gry, bo jak to mówią – diabeł tkwi w wsze szuka naszych baz, szczegółach. ● zmienić rozdzielczość – u mnie wybór jest ● natychmiastowe granaty, czyli granat eks- od 640x480 aż do 1600x900, ploduje zaraz po rzucie, Najważniejsza z nich jest taka, że OpenXcom, ● wybrać tryb wyświetlania – okienko lub peł- ● podstępna AI – UFOki trochę inaczej się dzięki wieloplatformowej bibliotece SDL, przy ny ekran, zachowują, preferują ostrzał z odległości, pomocy której została napisana, bez najmniej- ● nałożyć filtry na obraz, które mają poprawić przez co częściej używają np. Blaster Laun- szego problemu można uruchomić na syste- jakość obrazu (choć nie zawsze tak jest), chera, mie MorphOS lub Windows. Wystarczy pobrać ● wybrać wersję językową – jest też dostępny ● ustawienie rozmiaru eksplozji, czyli jak wy- odpowiednie archiwum, dograć pliki z orygi- język polski, soko w górę sięga detonacja (ja mam usta- nalnej wersji gry i już można zaczynać zaba- ● zmienić zasady gry w opcjach zaawanso- wione na 3 pola, przez co zabawa w mie- wę. Jednak nie to jest największą zaletą Ope- wanych. ście nabiera dodatkowych rumieńców, gdyż nXcom – siła gry tkwi w możliwości zastoso- wystarczy, że obcy chowa się na piętrze, a wania modyfikacji, które mogą całkowicie Tych ostatnich, które w przypadku OpenXcom ja podkładam C4 na parterze i bum), zmienić rozgrywkę. OpenXcom udostępnia odgrywają największą rolę, jest bardzo dużo i ● sprzedaż żywych obcych – żywy jest wart nam cały szereg zmian, które uprzyjemniają pozwalają one między innymi na następujące więcej niż martwy, więc „nadwyżkę” inwen- rozgrywkę. I tak w wersji gry dla systemu atrakcje: tarza można sprzedać,

Z lewej strony klasyczny Interceptor, a z prawej jego delikatnie zmodyfikowana wersja, która otrzymała nazwę Retaliator.

14 POLSKIE PISMO AMIGOWE 3/2014 OpenXcom

● przymusowy start – można zmusić do startu Po tych kilku modach, OpenXcom zmienił sza z nich to prędkość działania wersji dla sys- nasze myśliwce, nawet jeżeli się nie prze- pierwowzór w całkowicie nową grę – niby jest temu MorphOS. Jest niestety WOLNO. Na zbroiły/uzupełniły paliwa/są uszkodzone. to stare „UFO: Enemy Unknown”, a jednak gra moim G4 1.5 GHz i karcie graficznej Radeon się zupełnie inaczej. Obcy są sprytniejsi, po- 9600PRO, zajętość procesora przez cały czas Ustawień jest znacznie więcej – wymieniłem trafią zasadzić się z Blasterami i wytłuc całą utrzymuje się na poziomie 100%, a prędkość jedynie te, które wydają mi się na pierwszy ekipę ziemskiej federacji. „UFO: Enemy pozostawia wiele do życzenia. Nie jest to wina rzut oka najciekawsze. Dodam, że ja przez Unknown” to tytuł, który pomimo tego, że kon- wolnego procesora, a niedbale napisanego prawie tydzień dobierałem różne kodu i efekt wykorzystania SDL. To konfiguracje, aż znalazłem „tę wszystko sprawia, że wersja dla idealną”. Jednak to i tak nie jest systemu MorphOS działa wolniej wszystko, co OpenXcom ma do niż powinna i dużo wolniej niż ana- zaoferowania. Najważniejsze w logiczna wersja przeznaczona dla całej zabawie są mody, które do- systemu Windows, która po prostu dają np. nowe uzbrojenie, nowe śmiga, choć często zdarza się jej myśliwce. „wykrzaczyć”. Być może jest to spowodowane wykorzystaniem któ- Mody można pobrać ze strony au- regoś z modów, a być może i sa- torów portu. Archiwum rozpakowu- mej. Oprócz tej małej niedogodno- jemy i pliki wgrywamy do katalogu ści, gra nie posiada praktycznie Resources, który znajduje się w wad. Oprócz może jeszcze jednej – katologu z główną grą. Ja osobi- wciąga. Podczas pisania tego arty- ście polecam zainteresować się: kułu uruchomiłem „na chwilę” UFO i okazało się, że ta chwila trwała ● Combat Armour – pancerz, prawie dwie godziny. Wiadomo, lepsze to niż mundurek, ale planeta sama się nie uratuje. słabsze od Personal Armour, ● Combat Knife – nóż, którym zabijesz nie jednego Sectoida, Aleksander „trOLLO” Giedyk ● Firestorm Restyle – inna skór- ka myśliwca Firestorm, ● Grenade Launcher – granatnik, lżejszy od cepcyjnie ma 20 lat, wcale się nie starzeje, a bazooki a równie skuteczny, dzięki tej rewitalizacji, gra odmłodniała. Roz- Oficjalna strona projektu: ● Light Machinegun – karabinek, zaskakująco grywka jest równie przyjemna, jak dwie dekady http://openxcom.org skuteczny na bliskie odległości, temu, o ile nawet nie lepsza. ● Retaliator – ulepszony Interceptor, Wersja dla MorphOS-a: ● Sniper Rifle – snajperka, co tu dużo pisać, Nie ma jednak róży bez kolców – nawet taki http://stefkos.amigazeux.net/openxcom.lha jeden strzał i Sectoid trupem leży. ideał jak OpenXcom ma swoje wady. Najwięk-

Zasadniczo to stare, dobre „UFO”, ale mody pozwalają wejść w posiadanie nowego wyposażenia naszych baz oraz żołnierzy.

POLSKIE PISMO AMIGOWE 3/2014 15 Nasza pierwsza gra – kurs programowania z wykorzystaniem Visual Studio 2005 Express Edition i VBCC – część 8 NaszaNasza pierwszapierwsza gragra Kurs programowania z wykorzystaniem Visual Studio 2005 Express Edition i VBCC – część 8

W ósmej odsłonie tworzenia gry skupimy się mieńców, gdyby można było użyć do tego celu który przeanalizuje zdarzenie IDCMP_MO- na następujących rzeczach: ulepszymy menu również myszki. Tym zajmiemy się chwilę póź- USEBUTTONS, a sam kod polega na spraw- w obrazku tytułowym, które zaczęliśmy w po- niej. Jak wiemy, jeden kolor mamy inny w ta- dzeniu odpowiednich stałych w msg_code, ta- przednim odcinku, dodamy możliwość konfigu- blicy m_menuTitle i jeśli będziemy odpowied- kich jak SELECTUP – dla wciśniętego lewego rowania klawiszy poprzez menu Options oraz nio nim manipulować, umieszczając kolor CO- przycisku myszki, SELECTDOWN – dla pusz- uatrakcyjnimy rozgrywkę umieszczając licznik LORTXT_LIGHT w różnych wierszach, to roz- czonego. Podobnie będzie dla prawego przy- punktów w dolnym panelu. wiążemy problem poruszania się po menu. Co cisku – tu mamy MENUUP i MENUDOWN. W więcej – nasze menu zawiera też informacje o window.c dokładamy funkcje GetMouseY i Aby zająć się porządnie konfiguracją klawiszy, ograniczeniach, czyli kiedy gracz już nie może GetMouseX zwracające pozycję poziomą i musimy zrobić odpowiednie menu z możliwo- iść do góry czy też do dołu (mówią o tym po- pionową myszki, które pobieramy odpowiednio ścią edycji pól tak, aby były widoczne zmiany zycje pionowe w pierwszej i ostatniej linii w ta- z pól GZZMouseX i GZZMouseY ze struktury dokonane przez gracza. W siódmej części w blicy). Załóżmy, że wystąpił ruch w naszym Window. Tak uzbrojeni możemy przystąpić do title.c w bardzo prosty sposób napisaliśmy ta- menu – wtedy musimy na samym początku właściwej procedury zawierającej obsługę kie przykładowe menu. Niestety nie jest ono zamienić kolor ówczesnego podświetlenia na menu wraz z pozycją y myszy. A zatem na wystarczająco elastyczne dla naszych nowych normalny kolor, czyli innymi słowy musimy samym początku pobieramy wspomnianą po- potrzeb, więc niewiele myśląc zmienimy je. zgasić podświetloną wcześniej pozycję w zycję pionową. Aby dobrać się do linii w menu, Początkującym twórcom takie zmiany mogą menu. Potem trzeba tylko podświetlić napis w musimy, tak na chłopski rozum, pozycję po- się kojarzyć z niewłaściwą drogą, bo przecież nowej pozycji i gotowe. Oto funkcja realizująca dzielić przez wysokość fonta, wziąć część cał- wystarczy tylko nieznacznie rozbudować to, co to zadanie. kowitą i pomnożyć przez wysokość fonta. zaczęliśmy robić, dodając brakujące elementy, Dzięki temu otrzymamy jed- void MenuUpdate(MenuEntry* menuTable, int amount, int nPosY) a to, co już jest zostawić, skoro zostało to już { ną pionową pozycję w obrę- int i = 0; przetestowane. Ja uważam inaczej z dwóch while (i < amount) bie danej linii menu. Ja za- { powodów. Po pierwsze, ulepszanie przez roz- if (COLORTXT_LIGHT == menuTable[i].color) stosowałem tutaj sztuczkę, budowanie przy złym podejściu może skutko- { break; aby uniknąć dzieleń i mno- wać zawiłym kodem, a po drugie warto pro- } żeń. Bo jak pamiętamy – w i++; gramować na różne sposoby (a nuż wymyśli } naszej grze wysokość fontów menuTable[i].color = COLORTXT_NORMAL; się coś zupełnie nowego). W każdym razie const MenuEntry entry = menuTable[i]; wynosi 8 pikseli. Te 8 pikseli PrintTxt(entry.name, entry.color, entry.posX, entry.posY); tworzymy nowe menu. Standardowo dodajemy for (i = 0; i < amount; ++i) w zmiennej posY zajmuje 3 nowy moduł menu do naszego projektu. My- { if (nPosY == menuTable[i].posY) pierwsze bity (licząc oczywi- ślę, że nie sprawi to problemu czytelnikowi, bo { ście od lewej). A więc, aby break; temat ten przewijał się w paru odcinkach. Naj- } osiągnąć jedną pozycję w li- } ważniejszą rzeczą w menu będzie odpowied- menuTable[i].color = COLORTXT_LIGHT; nii, wystarczy te 3 bity ska- const MenuEntry e = menuTable[i]; nia struktura, która ułatwi nam życie zarówno PrintTxt(e.name, e.color, e.posX, e.posY); sować w zmiennej. I dokład- przy wyświetlaniu, jak i w poruszaniu się po } nie to robimy wykorzystując menu. Będzie to struktura odpowiedzialna za do tego celu negację i ko- jedną linię menu. Samo wyświetlenie całego menu jest banalne i niunkcję (and). Wprowadzamy też zmienną nie będę go przedstawiał, gdyż sprowadza się przetrzymującą starą wartość pozycji typedef struct Widzimy, że jest to do jednej pętli, w której wyświetlamy napis o m_nOldPosY, aby było możliwe usunięcie sta- { to bardzo intu- int posX; znanej pozycji i kolorze. Ponieważ wcześniej- rego podświetlenia menu oraz ze względów int posY; icyjne podejście. sza wersja funkcji odpowiedzialnej za pokaza- wydajnościowych (przy małych ruchach mysz- char* name; int color; Mamy tu pozycję nie tekstu na ekranie, znajdująca się w module ki nie ma potrzeby aktualizacji podświetlania). } MenuEntry; poziomą, piono- tile, nie miała możliwości zmiany koloru, to ona Jeśli faktycznie użytkownik wykonał ruch w wą, kolor i ciąg także została napisana od nowa. Aby ułatwić kierunku zmiany linii w menu, to wówczas po- znaków do wyświetlenia. Umieszczenie koloru sobie pracę z tekstem, dodałem też dwie do- zostaje nam sprawdzić nasze menu i pozycję na końcu struktury ma znaczenie praktyczne – datkowe wersje funkcji pokazujące tekst w pionową, aby wiedzieć którą linię musimy zak- służy zmniejszeniu ilości błędów podczas pro- normalnym i podświetlonym kolorze. Pojawiła tualizować. gramowania oraz nie musimy się zastanawiać się też nowa funkcja – BackgroundToBlack, czy najpierw jest kolor a potem pozycje x i y, której zadaniem jest zrobienie czarnego tła w static WORD m_nOldPosY = 0; czy też najpierw są pozycje a później kolor. całym oknie. Oprócz wyświetlenia menu bę- void MenuMousePosY(MenuEntry* menuTable, int amount) { Mając takie MenuEntry możemy teraz sobie dziemy potrzebować też funkcję inicjującą const WORD posY = GetMouseY() & ~0x07; if (m_nOldPosY != posY) stworzyć przykładowe menu, robiąc odpo- menu, która przechodząc w pętli wszystkie po- { int i; wiednią tablicę, którą umieściłem w title.c. zycje menu ustawi podświetlenie na pierwszej. m_nOldPosY = posY; for (i = 0; i < amount; ++i) static MenuEntry m_menuTitle[] = { { Jak zaznaczyłem już wcześniej, const MenuEntry entry = menuTable[i]; {MENU_POS_X, MENU_START_POS_Y, "start", COLORTXT_LIGHT}, if (posY == entry.posY && COLORTXT_NORMAL == en- {MENU_POS_X, MENU_OPTIONS_POS_Y, "options", COLORTXT_NORMAL}, dodamy obsługę myszki w naszym try.color) {MENU_POS_X, MENU_EDITOR_POS_Y, "editor", COLORTXT_NORMAL}, { {MENU_POS_X, MENU_EXIT_POS_Y, "exit", COLORTXT_NORMAL}, menu. Zaczniemy najpierw od MenuUpdate(menuTable, amount, posY); }; ArrowUpdateY(posY); umieszczenia niezbędnych rzeczy break; } w module window. Tam bowiem } Nietrudno się domyślić – MENU_POS_X i będą zbierane eventy o przyciskach urządze- } } MENU_START_POS_Y to przykładowe pozy- nia i tam też dołączymy funkcje zwracające cje zdefiniowane za pomocą dyrektywy #defi- pozycje poziomą i pionową myszki. W każdym ne. Słowo komentarza należy się kolorom. Aby razie powiększymy ilość tagów okna, dorzuca- W powyższym bloku kodu pojawiła się tajem- menu na starcie wyglądało jak należy, pierw- jąc WA_RMBTrap, który blokuje dostęp do nicza funkcja ArrowUpdate, która zajmuje się sza jego linia powinna mieć inny kolor niż po- menu (mam tu na myśli główny pasek na sa- aktualizacją strzałki widocznej z lewej strony. zostałe, aby było wiadomo, że zaczynamy od mej górze w Workbenchu) dla prawego przyci- Cały wcześniejszy kod dotyczący obsługi tego miejsca. Zastanówmy się teraz, w jaki sku naszego elektronicznego stworzenia, a strzałki został przeniesiony z modułu title do sposób będziemy realizować przemieszczanie także dopisujemy IDCMP_MOUSEBUTTONS arrow i właśnie nim zajmiemy się teraz. Naj- się po menu. Oczywiście będziemy się poru- w tagu WA_IDCMP, umożliwiając systemowi ważniejszą funkcją jest ArrowInit, której zada- szać za pomocą joysticka lub klawiatury. generowanie zdarzeń o przyciskach. Oczywi- niem jest inicjalizacja niezbędnych rzeczy do Oprócz tego nasza gra nabrałaby kolejnych ru- ście musimy umieścić odpowiedni blok kodu, poprawnego funkcjonowania strzałki. Są to po-

16 POLSKIE PISMO AMIGOWE 3/2014 Nasza pierwsza gra – kurs programowania z wykorzystaniem Visual Studio 2005 Express Edition i VBCC – część 8 zycja pozioma i pionowa a także granice – ty? Co w takim przypadku funkcja zwróci? Ja- punktów za to, że statek uderzył w ka- dolna i górna. Oprócz tego zerujemy licznik sne jest, że nie może zwrócić poprawnej war- mień. Dlatego w naszej grze zrobimy na od- opóźniający animację i ustawiamy początkowy tości z zakresu 0-127. Oznaczałoby to, że jed- wrót – gracz dostanie na starcie każdej plan- znak z fontów, który przedstawia graficzny nak klawisz został wciśnięty – przyjąłem, że szy pewną ilość punktów, a grając punkty będą symbol strzałki. Pozostałe funkcje to: ArrowA- będzie to 255. Mając odpowiednie funkcje w ubywać w zależności od tego, w jaki obiekt nimate, czyli serce naszego modułu, służące module input, możemy zabrać się za napisa- nasz statek uderzy. Wtedy to lepsi gracze, któ- do animacji strzałki, ArrowDown i ArrowUp nie pętli głównej w menu options. Najważniej- rzy odnajdą krótszą drogę, będą mieli więcej przemieszczają znak do dołu bądź do góry o sze w tej pętli to oczekiwanie na przycisk czy punktów. Logika punktacji powinna się znaleźć jedną linię, która ma stałą wielkość 8 pikseli. to joysticka, czy to myszki oraz czekanie na w module game i tam też umieszczamy Za pomocą funkcji ArrowGetPosY możemy z ruch dół/góra. Jedyne co jest zawsze robione zmienną g_nScore, za to odpowiedzialną. Do innego modułu dowiedzieć się o aktualnej po- w ciele funkcji, to animacja strzałki. Szybko zwiększania i zmniejszania punktów posłużą zycji pionowej, a ArrowUpdateY aktualizuję omówmy przypadki łatwiejsze, które to w za- dwie funkcje: decreaseScore i increaseScore. pozycję y. sadzie aktualizują menu zgodnie z tym, co static void decreaseScore(int amount) gracz zrobił. Jeśli skierował joystick do góry, to { strzałka wędruje do góry i aktualizujemy pod- g_nScore -= amount; W module options znajdziemy menu odpowie- if (g_nScore < 0) dzialne za opcje w naszej grze. W poprzednim świetlanie menu. Bardzo podobnie to wygląda { g_nScore = 0; odcinku dodaliśmy konfigurację dla klawiszy i dla wychylenia w dół kontrolera. Słowo wyja- } } kolejnym bardzo naturalnym krokiem jest wła- śnienia dlaczego korzystamy z konstrukcji if static void increaseScore(int amount) { śnie możliwość ich zmiany. Modyfikacja klawi- else zamiast używać tylko if. Naiwnie rozumu- g_nScore += amount; szy w dowolny sposób musi pociągać za sobą jąc, ruch myszki i ruch joystickiem są nieza- if (g_nScore > 9999) odzwierciedlenie w postaci napisu, jaki to kla- leżne od siebie i nie powinny generować pro- { g_nScore = 9999; wisz użytkownik wybrał, a zatem potrzebujemy blemu. Z początku też tak myślałem, ale szyb- } tablicy zawierającej wszystkie możliwe klawi- ko się okazało, że strzałka może być w innym } sze. Przedstawię kawałek takiej tablicy, bo miejscu niż podświetlenie menu i wygląda to zwyczajnie szkoda miejsca na takie tabelki. co najmniej nieciekawie. Przejdźmy do przy- W obu przypadkach sprawdzamy czy licznik padku, gdy użytkownik wcisnął przycisk kla- punktów nie osiągnął ograniczenia. Ma to zna- Na marginesie warto wiedzieć, jaki kod klawi- wiatury. Na początku odtwarzany jest dźwięk. czenie przy wyświetlaniu punktów – będziemy sza przychodzi w zdarzeniu IDCMP_RAWKEY. Następnie pobieramy pozycję pionową strzałki, wiedzieli ile minimalnie i maksymalnie miejsca Jest on w msg_code. Siedem młodszych bitów sprawdzamy której linii menu to dotyczy i jeśli zajmie punktacja. W tym przypadku będzie to mówi o klawiszu, dla przykładu ESC ma kod udało się ją odnaleźć, to wyświetlamy komuni- najmniej jeden znak a najwięcej cztery. Skoro 0x45, a ostatni 7 bit (licząc od zera) mówi o kat proszący o wciśnięcie klawisza. Potem na- mówimy o pokazywaniu punktów, to w module tym czy klawisz został naciśnięty. Jeśli gracz stępuje przejście do procedury czekającej na bottomPanel umieściłem funkcję PrintBottom- wciśnie i puści ESC, to zostaną wygenerowa- puszczenie klawisza. Odbywa się to w typowy Panel, która między innymi rysuje wynik uzy- ne dwa zdarzenia IDCMP_RAWKEY i dla nas sposób – poprzez ustawienie wskaźni- skany przez gracza. msg_code będzie zawierał 0xC5 (0x45+0x80), ka na funkcję. Sama procedura czekająca, a później będzie to 0x45. wykorzystuje do tego celu niepoprawną war- W dzisiejszym odcinku to tyle. Zachęcam jak tość 255, wykonując się w kółko aż żaden kla- zwykle do eksperymentowania z kodem i do const char *lv_all_keys_tab[] = { "`", /*;00 */ wisz nie będzie wciśnięty. Po spełnieniu tego zadawania pytań na forum PPA. "1", /*;01 */ warunku czeka na wciśnięcie klawisza, poka- "2", /*;02 */ "3", /*;03 */ zuje na ekranie ten klawisz w postaci napisu i Asman "4", /*;04 */ powraca do pętli głównej w menu options.

static void optionsLoop(void) Mamy tu tablicę zawierającą wskaźniki do na- { pisów i poruszając się po indeksach tejże ta- if (g_bFire || g_bMouseLeft) { blicy mamy napis odpowiadający klawiszowi. PlaySfx(SND_CLUNK); g_bFire = FALSE; Jeśli gracz wciśnie na klawiaturze jedynkę, to g_bMouseLeft = FALSE; int nPosY = ArrowGetPosY(); odpowiada to pierwszemu (liczymy od zera w int i; tym przypadku) elementowi naszej tablicy. for (i = 0; i < ARRAY_SIZE(m_menuOpts) - 1; ++i) Ułożenie napisów w tej tablicy nie jest przy- { const MenuEntry key = m_menuOpts[i]; padkowe – jest ono zgodne z kodami otrzy- if (key.posY == nPosY) { mywanymi za pomocą zdarzenia PrintLightTxt("press a key", KEY_POS_X, key.posY); m_nWaitPosY = key.posY; IDCMP_RAWKEY. Swoją drogą, zbieraliśmy pNextFnc = &waitForKey; pCfgValue = (g_pCfg + i); tylko niektóre kody klawiszy w window.c – g_pFnc = &wiatForReleasedKey; pora to zmienić. Najpierw definiujemy w modu- break; } le input tablicę przechowującą wszystkie kla- } if (EXIT_POS_Y == nPosY) wisze – będzie ich aż 128. Oczywiście klawi- { CopyCfgKeys(g_pCfg); szy na klawiaturze jest mniej, ale na 7 bitach g_bCfgChanged = TRUE; g_pFnc = &Title; tyle można pomieścić wartości. } } UBYTE nKeyValue = 1; else if (g_bDown) if (msg_code & 0x80) { { g_bDown = FALSE; nKeyValue = 0; ArrowDown(); } MenuUpdate(m_menuOpts, ARRAY_SIZE(m_menuOpts), ArrowGetPosY()); g_bKeys[msg_code & 0x7f] = nKeyValue; } else if (g_bUp) { g_bUp = FALSE; ArrowUp(); Powyższy kod wstawia do tablicy jedynkę o in- MenuUpdate(m_menuOpts, ARRAY_SIZE(m_menuOpts), ArrowGetPosY()); } deksie równym kodowi klawisza – o ile gracz else { nacisnął klawisz. Jeśli ten sam klawisz został MenuMousePosY(m_menuOpts, ARRAY_SIZE(m_menuOpts)); puszczony, to wówczas w to miejsce powędru- } je zero. W input.c doszły dwie nowe funkcje ArrowAnimate(); wspierające klawiaturę: ClearKeysTable czyści } tablicę przechowującą kody klawiszy a GetFir- stPressedKey zwraca pierwszy klawisz, jaki A na deser punktacja. Umieścimy ją na dole, a został wciśnięty, a jeśli zostało wciśniętych kil- więc tym samym musimy powiększyć trochę ka klawiszy, to zostanie zwrócona wartość od- okno zmieniając jedną zmienną w window.c. powiadająca najniższemu kodowi klawisza. Poprzednia wersja gry wykorzystywała całą Czyli jeśli gracz wcisnął jednocześnie klawisze przestrzeń okna i nie było miejsca na punkty. 3 i ESC, to po pierwsze przyjdą dwa zdarzenia Oprócz punktów na dole umieścimy też ilość IDCMP_RAWKEY i dla każdego inny indeks żyć. Przeważnie w grach startuje się z wyni- tablicy klawiszy zostanie ustawiony na jeden, a kiem 0, a grając zdobywa się punkty. W na- GetFirstPressedKey zwróci kod odpowiadają- szym przypadku to standardowe podejście się cy klawiszowi 3, czyli w tym przypadku właśnie nie sprawdzi, bo nie do końca wiadomo za co 3. A co jeśli żaden klawisz nie został wciśnię- przydzielać punkty. Przecież nie można dostać

POLSKIE PISMO AMIGOWE 3/2014 17 Zabawa obrazem w Pythonie

ZabawaZabawa obrazemobrazem ww PythoniePythonie

Raz na jakiś czas słyszymy o pewnych epo- pliku graficznego, który chcemy skonwerto- we przeskalowanie obrazków (np. wskazanych kowych odkryciach. Dawno, dawno temu Ko- wać. Funkcja Image.open zwróci nam obiekt w listerze Ambienta). Ale po kolei, najpierw za- lumb odkrył Amerykę, potem Fleming trochę typu Image, który ląduje w zmiennej o nazwie cznijmy od stworzenia nowej funkcji, którą na- przypadkowo natrafił na sposób uzyskiwania picture. zwiemy resize_picture. Rzucimy jej na pożar- penicyliny. Czasy teraźniejsze to również miej- cie trzy parametry: picture = Image.open("RAM:fotka.jpg") sce wielu genialnych odkryć zmieniających bieg historii każdego z nas. Mam tu na myśli ● max_width – maksymalna szerokość ob- chociażby zaprojektowanie i wyprodukowanie Obrazek jest już wczytany do pamięci, może- razka, pierwszej Amigi czy odkrycie sposobu na po- my więc zmienić jego rozmiar za pomocą jed- ● max_height – maksymalna wysokość ob- bieranie za frajer plików MP3 z chomikuj.pl. nej z „magicznych” funkcji wujka PIL-a: razka Przykłady można by mnożyć. Moim osobistym ● input_file – pełna ścieżka dostępu do resized_picture = picture.resize((100,70),Image.ANTIALIAS) mega epokowym odkryciem ostatnich miesię- pliku graficznego, który chcemy prze- cy jest biblioteka PIL umożliwiająca łatwe prze- skalować. twarzanie plików graficznych za pomocą Py- w ten oto sposób obrazek kryjący się pod thona. I zanim dostanę nagrodę Nobla za to obiektem o nazwie picture został przeskalowa- Podanie maksymalnej szerokości i wysokości wyjątkowe odkrycie, podzielę się z wami całym ny i ma teraz szerokość 100 px i wysokość 70 obrazka pozwoli przeskalować pliki graficzne o dobrodziejstwem, jakie niesie za sobą użytko- px. Najbardziej enigmatycznie może wyglądać zróżnicowanych proporcjach. Wiadomo, cza- wanie PIL-a. użycie parametru Image.ANTIALIAS. Jest to sami zrobimy „sweetfocie” dłuższą w pionie, typ filtra, jaki zostanie użyty w trakcie przetwa- innym razem w poziomie. Ustawienie wartości PIL, a raczej Python Imaging Library to mo- rzania pliku graficznego. Do wyboru mamy granicznych pozwoli przeskalować obrazek duł Pythona dostarczający szeregu bardzo NEAREST, BILINEAR, BICUBIC oraz ANTIA- tak, aby ani szerokość, ani wysokość przeska- przydanych funkcji do przetwarzania obrazów. LIAS. Przy tym ostatnim otrzymywałem naj- lowanego obrazka nie przekraczała ustalonych Za jego pomocą możemy w banalny sposób lepsze jakościowo „obróbki”, dlatego też nie wartości maksymalnych. Przykładowo, jeśli (praktycznie za pomocą jednej metody) zmie- zawahałem się go użyć tutaj. Przeskalowany mamy plik graficzny w rozdziałce 2560x1920, nić rozdzielczość obrazka czy obrócić go o obrazek wędruje znowu jako obiekt typu Ima- to ustawiając max_width i max_height na dowolny kąt. Całą brudną robotę wykona za ge, tym razem do zmiennej o nazwie 1024 px, PIL przeskaluje dłuższą część obraz- nas PIL. Oczywiście na tym nie kończą się resized_picture. Wystarczy go tylko zapisać ka do maksymalnej szerokości (1024 px) a jego możliwości. Dla ciekawskich polecam jako „fotka_przeskalowana.jpg” z jakimś ludz- wysokość obliczy tak, aby obrazek był nadal stronę internetową projektu. Tam znajdziecie kim współczynnikiem kompresji (np. na po- proporcjonalny. W efekcie otrzymamy obrazek pełną dokumentację wraz z przykładami do ziomie 85%, czyli z niewielkim, bo jedynie 15% o rozdzielczości 1024x768 px. Ale wróćmy do wszystkich metod składających się na moduł ubytkiem jakości). naszej funkcji. Jej nagłówek mógłby wyglądać PIL. następująco: resized_picture.save("RAM:fotka_przeskalowana.jpg",quality=85) „Prześlij przepis” Kompletny skrypt o nazwie resize.py wygląda def resize_picture(max_width, max_height, input_file): No dobrze, ale co ma to wspólnego z nami, następująco: amigowcami. A no tyle, że dzięki Yomguiowi, #!/usr/python W ciele funkcji oddzielimy najpierw niezłomnemu krzewicielowi Pythona na plat- import sys import os ziarno od plew, czyli z podanej ścież- formie MorphOS, możemy cieszyć się bibliote- from PIL import Image ki musimy wyłuskać ścieżkę do kata- ką PIL na naszym ulubionym systemie. Archi- picture = Image.open("RAM:fotka.jpg") logu oraz nazwę pliku. Na przykład, resized_picture = picture.resize((100,70),Image.ANTIALIAS) wum z biblioteką w wersji 1.1.7-10 dostępne resized_picture.save("RAM:fotka_przeskalowana.jpg",quality=85) jeżeli w zmiennej input_file mamy jest do pobrania z MorphOS Files. Tu od razu następującą ścieżkę dostępu do pliku drobna uwaga. Poprzednia wersja biblioteki graficznego: „Foto:Wakacje2013/fot- (1.1.7-8) zawiera błędy i żadnego chleba z niej Zapisujemy skrypt do RAM, kopiujemy tam też ka_z_gor.jpg”, to po rozbiciu jej następującymi nie upieczemy. Dlatego pobieramy najnowszą plik fotka.jpg i odpalamy nasz garażowy kon- operacjami: wersję, rozpakowujemy i kopiujemy część pli- werter plików JPEG z poziomu konsoli CLI za dir = os.path.normpath(os.path.split(input_file)[0]); ków do katalogu C, a część do pomocą następującej file = os.path.normpath(os.path.split(input_file)[1]); LIBS:python2.5/site-packages (zgodnie ze komendy. Jeśli wszyst- python RAM:resize.py strukturą katalogów w archiwum PIL-a). Zakła- ko poszło dobrze (zga- ... w zmiennej dir zachowa się ścieżka do sa- dam, że samego Pythona mamy już zainsta- dzają się ścieżki do plików itd.), to po wykona- mego katalogu (czyli: „Foto:Wakacje2013/”), a lowanego. Jeśli nie, to szczegółową instrukcję niu skryptu, RAM powinien wzbogacić się o w zmiennej file siedzieć będzie tylko nazwa znaleźć można w piątym numerze papierowe- nowy plik o nazwie „fotka_przeskalowana.jpg” pliku (a więc „fotka_z_gor.jpg”). To odseparo- go PPA (artykuł: „Python pod MorphOS-em, o rozdzielczości 100x70 px. wanie katalogu od nazwy pliku przyda się w czyli MP3 Renamer”). Mając już zainstalowa- czasie składania nowej nazwy dla przeskalo- nego PIL-a, możemy trochę poszaleć. Za chwi- Danie główne wanego pliku (zdradzę, że ten nowy plik bę- lę przedstawię prosty przepis na zmianę roz- dzie miał prefiks „resized_”). Skalowanie od- dzielczości przykładowego pliku graficznego w Czas wykorzystać możliwości modułu PIL do bywa się za pomocą wspomnianej już wcze- formacie JPG. Zatem do dzieła – odpalamy jakiegoś zbożnego celu. Poniżej znajdziecie śniej metody thumbnail. Funkcja ta przyjmuje Scribble'a! przykład bardzo przyjemnego skryptu pozwala- dwa parametry: pierwszy określa nowy rozmiar jącego na konwersję serii obrazów do dowolnej obrazka, a drugi typ filtra: Przystawka rozdzielczości. Do takich celów wręcz stworzona jest funkcja thumbnail, która picture.thumbnail((max_width,max_height),Image.ANTIALIAS) Po pierwsze musimy zaimportować moduł PIL działa w bardzo podobny sposób do tak, aby interpreter Pythona dowiedział się o przedstawionej wcześniej metody resize, z tą W tym momencie obiekt picture przechowuje istnieniu metod służących do obróbki plików różnicą, że thumbnail czuwa nad zachowa- już nowy, przeskalowany obrazek. Jednak graficznych. Rozpoczynamy nasz skrypt taką niem odpowiednich proporcji przetwarzanego wciąż to nic „namacalnego”. Zapiszmy więc oto linią: obrazu. Zatem możemy być pewni, że obrazki efekt naszej pracy na dysk. Aby odróżnić plik po przeskalowaniu nie zostaną nienaturalnie źródłowy od wynikowego, dodamy wspomnia- from PIL import Image poszerzone albo zwężone. Na końcu pode- ny już wcześniej prefix „resized_” do pierwot- pniemy kompletny skrypt pod menu kontek- nej nazwy obrazka (którą przechowuje zmien- Następnie wskazujemy ścieżkę dostępu do stowe MorphOS-a tak, aby możliwe było hurto- na file). Nową nazwę tworzymy w następujący

18 POLSKIE PISMO AMIGOWE 3/2014 Zabawa obrazem w Pythonie sposób: my opcję „Wy- bór łączony”, new_filename = "resized_" + file aby skrypt uru- chomił się tylko Przeskalowany plik zapiszemy w tym samym raz i odebrał katalogu, w którym znajduje się plik źródłowy. jako argumenty Łączymy zatem katalog i nową nazwę pliku kompletną listę metodą join i jeszcze dla bezpieczeństwa ścieżek dostę- normalizujemy całą ścieżkę funkcją norm- pu do naszych path. obrazków (w

picture_resized_path = os.path.normpath(os.path.join(dir,new_filename))

Jesteśmy gotowi do lotu. Odpalamy więc silni- innym wypadku ki oraz dobrze nam znaną metodę save z peł- wykona się od- ną ścieką dostępu do nowego pliku oraz stop- dzielnie dla niem kompresji jako parametrami. każdego z po- danych plików). picture.save(picture_resized_path,quality=85) Zapisujemy ustawienia Am- I tyle! Tak z grubsza wygląda metoda konwer- bienta i szukamy na naszym dysku jakichś nie. Właściwie może aż nadto rozpisałem się tująca pliki graficzne do zadanej rozdzielczo- biednych plików graficznych w formacie JPG, na temat tak prostych metod, jak te oferowane ści. Aby cały skrypt nabrał „mocy”, trzeba go które mogłyby posłużyć nam jako króliki do- przez bibliotekę PIL, jednak wiem też, że nie- jeszcze obudować główną metodą świadczalne (spokojnie, nic im się nie stanie, zwykle często diabeł tkwi w szczegółach i war- '__main__'. Odczytamy w niej parametry to wiedzieć, co z czym się je i w max_width i max_height podane przez użyt- jakiej kolejności. Tym bardziej kownika oraz nazwę pliku. Oto jak powinna nie chciałem wam podrzucać wyglądać: kompletnych skryptów na zasa- dzie czarnych skrzynek (tzn. po- if __name__ == '__main__': if (len(sys.argv)>1): depnij pod Ambienta i hulaj du- max_width = int(sys.argv[1]) sza). Jeśli chodzi o sam proces max_height = int(sys.argv[2]) for plik in sys.argv[3:]: konwersji za pomocą PIL-a, to resize_picture(max_width, max_height, plik) muszę przyznać, że skrypt zżera bardzo dotkliwie czas procesora. Główna funkcja naszego skryptu odczytuje Nie powiem, żeby konwersja najpierw argumenty z linii poleceń. Maksymal- odbywała się jakoś wyjątkowo na szerokość ląduje w max_width a wysokość powoli, jednak czuć, że to dość – wiadomo gdzie. Potem rozpoczyna się lot w ciężkie zadanie dla procesora. Z pętli po wszystkich kolejnych argumentach najwyżej zostaną sklonowane). Zaznaczamy pewnością konwersja w ShowGirls jest nieco podanych w linii poleceń. No właśnie i tu do- więc gromadkę obrazków i klikając prawym szybsza, jednak biorąc pod uwagę fakt, że chodzimy do sedna całego tego zamieszania. klawiszem myszy wywołujemy menu kontek- nasz pythonowy skrypt odpalamy jednym (a Tymi pozostałymi argumentami mogą być po stowe Ambienta. Tam powinien znajdować się dokładnie to dwoma) kliknięciami myszy, moż- prostu ścieki do plików, które chcemy skon- już odnośnik do naszego skryptu pod nazwą na z całą pewnością uznać, że gra jest warta wertować. Dla przykładu, chcemy przeskalo- „Resize to 1024x768”. Po jego wybraniu, wy- świeczki. Samo podpięcie skryptu pod menu wać dwa pliki graficzne, aby ich szerokość lub świetli się jeszcze okienko konsoli, w którym kontekstowe Ambieta sprawia, że konwersja wysokość nie przekraczała 1024 px. Urucha- na bieżąco będziemy mogli oglądać jak prze- np. 30 zdjęć (które chcemy przesłać znajo- miamy więc z poziomu CLI nasz skrypt z ta- biega proces konwersji. Po dłuższej lub krót- mym na maila) staje się banalnie prosta w re- kimi oto argumentami: szej chwili PIL powinien wypluć skonwertowa- alizacji. A myślę, że właśnie o taką wygodę tu ne pliki graficzne z prefiksem „resized_”. przecież chodzi. Zresztą – sprawdźcie sami. python resize.py 1024 1024 ram:foto1.jpg ram:foto2.jpg

Skrypt wprawi w ruch „maszynę parową” PIL-a i już po chwili w RAM znajdziemy dwa nowe pliki: resized_foto1.jpg i resized_foto2.jpg. Fajnie, co?

Deser Wiemy już jak działa skrypt do hurtowej zmia- ny rozdzielczości obrazków napisany w opar- Oczywiście nic nie stoi na przeszkodzie aby Archiwum ze skryptem znaleźć można na mo- ciu o bibliotekę PIL. Jednak niewielu jest „arty- utworzyć drugą akcję w menu kontekstowym jej stronie. Poza plikiem resize.py znajduje się stów”, którzy za każdym razem mieliby ochotę Ambienta i nazwać ją np. „Resize to 640x480” tam pewien drobny bonus, ale to już nagroda odpalać okienko CLI i wklepywać tam całą li- ze skryptem wywoływanym np. w następujący dla wytrwałych lub ciekawskich. tanię argumentów (wraz ze ścieżkami dostępu sposób: Marek „MarX” Hać do plików graficznych). Dużo wygodniej było- by, gdybyśmy mogli podpiąć nasz skrypt pod C:python <ścieżka_do_katalogu_ze_skryptem>/resize.py 640 640 %sp [email protected] menu kontekstowe Ambienta (wywoływanego przez kliknięcie prawym przyciskiem myszy) i W ten sposób możemy skonwertować jedno- wybierać z listera pliki do skonwertowania. To cześnie wiele plików graficznych do wielu róż- Jeśli nie kręci was roztrząsanie poleceń Pythona na czę- właśnie zostawiłem Wam na deser. nych, predefiniowanych rozdzielczości. Nie ści pierwsze (czyli jakieś 80% tego artykułu), a z drugiej strony chcielibyście wzbogacić swój system o ten przy- musimy odpalać ShowGirls, wybierać żmudnie datny skrypt do konwersji zdjęć, to dobrze trafiliście. Wy- Przechodzimy do ustawień Ambienta i w za- plików i za każdym razem ustalać docelowej starczy że zainstalujecie Pythona i bibliotekę PIL (opis na kładce MIME odnajdujemy definicję akcji dla rozdzielczości. Wszystko możemy mieć pod początku artykułu) i bez zbędnych ceregieli podepniecie plików typu „jpeg” (JPEG FileInterchange skrypt resize.py pod menu kontekstowe Ambienta (zgod- prawym przyciskiem myszy! Oczywiście nie nie ze wskazówkami na końcu tego artykułu). Tak na- Format Image) w grupie „image”. Tworzymy żebym wieszał psy na ShowGirls, to wspaniały prawdę nie potrzebujecie żadnej wiedzy nt. programowa- nową akcję o nazwie „Resize to 1024x768”, a program, ale jego batch do konwersji obraz- nia ani tym bardziej na temat programowania w Pythonie. w linii poleceń umieszczamy wywołanie skryp- ków zupełnie mnie nie przekonuje. Enjoy! tu (pamiętajcie o podaniu pełnej ścieżki dostę- Strona autora artykułu: pu do skryptu): Podsumowanie http://python.fatmagnus.ppa.pl/pil/ C:python <ścieżka_do_katalogu_ze_skryptem>/resize.py 1024 1024 %sp Strona, skąd można pobrać dodatek PIL: Tak przeczytałem ten artykuł i my- http://effbot.org/imagingbook/ Typ zdarzenia to Menu. Koniecznie zaznacza- ślę, co by tu napisać na zakończe-

POLSKIE PISMO AMIGOWE 3/2014 19 Rise of the Triad

Pod koniec roku 2013, po 11 długich latach TAB możemy obej- od upublicznienia kodu źródłowego gry, dla rzeć mapę danego Amig klasycznych ukazał się port pecetowej etapu, widoczni są strzelaniny FPP – „Rise Of The Triad: Dark też najbliżsi wrogowie War” (w skrócie ROTT). Autorem portu jest oraz apteczki (w pochodzący z Kansas koder, ukrywający się „ROTT” są one w po- pod pseudonimem Lantus360. Niniejszy opis staci posiłków), bro- oparty jest na wersji 1.0 portu gry, jednak Lan- nie i klucze. Roz- tus360 w wątku na forum EAB zapowiadał, że grywka jest dyna- pojawią się kolejne wersje. miczna i krwawa, wrogowie padają na Gra „Rise Of The Triad” wydana została na ziemię, prosząc o li- komputery PC w roku 1994 przez firmę Apo- tość, po to tylko, żeby gee Software. W pierwotnym zamyśle autorów potem wstać i strzelić miała to być kontynuacja hitu „Wolfenstein”, bohaterowi gry w ple- jednak ostatecznie zrezygnowano z tego po- cy. Na zakończenie mysłu. Fabuła „ROTT”, jak to w większości każdego z czterech gier bywa, zbudowana jest wokół motywu walki epizodów gry, czeka dobra ze złem. Gracz wciela się w postać nas walka z bossem, agenta organizacji H.U.N.T., a jego zadaniem wielokrotnie natkniemy się też na pułapki, np. lojalnie informuje, że jest to za słaby procesor, jest zlikwidowanie członków niebezpiecznego w postaci miotaczy ognia czy wirujących aby czerpać z niej przyjemność – w praktyce kultu, który zajął jedną z wysp u wybrzeży Kali- ostrzy, do których nie należy się zbliżać. rozgrywka staje się wygodna na 68040, a przy fornii. Ciekawostką jest fakt, że sekciarze ubie- moim 68060/75 MHz uzyskuję ponad 20 fps rają się w mundury do złudzenia przypomina- Technicznie engine „ROTT” plasuje się pomię- przy największym oknie i pełnych detalach (są jące te, noszone przez hitlerowców. Interesu- dzy grami „Wolfenstein” i „Doom”, stopniem to wyniki dla chipsetu AGA). Niestety nie udało jącą cechą „ROTT” jest możliwość wyboru zaawansowania przypominając amigową strze- mi się uruchomić gry w trybie CGX – posiadam pomiędzy pięcioma postaciami, w które mo- laninę „Nemac IV”. Mamy tutaj pełne tekstu- zainstalowane sterowniki P96 i kartę Voodoo żemy się wcielić. Różnice między bohaterami rowanie podłóg i sufitów oraz zróżnicowaną III w Mediatorze i mimo dostępnego wymaga- są bardzo istotne – różnią się szybkością, cel- wysokość pomieszczeń. Brakuje co prawda nego przez grę trybu 320x200x8bit, gra nie nością i wytrzymałością, więc początkowy wy- schodów, jednak jest możliwość wchodzenia uruchamia się. Według informacji od forumo- bór ma duże znaczenie podczas rozgrywki. na specjalne platformy i windy. wiczów z English Amiga Board gra działa bez Uzbrojenie naszego bohatera jest bardzo po- problemów, ale np. na karcie Cybervision 64, dobne do tego dostępnego w grach „Wolfen- Wymagania amigowej wersji portu „ROTT” to działającej pod kontrolą P96. Niestety nie uru- stein” i „Spear of Destiny”, czyli znajdziemy m. system operacyjny w wersji co najmniej 3.1, chomimy „Rise Of The Triad” w rozdzielczości in. pistolet Walter i karabin maszynowy MP40. procesor 68020, kości graficzne działające co wyższej niż 320x200. Trochę szkoda, ponie- najmniej w trybie EHB lub karta graficzna, 16 waż myślę, że na 68060 i karcie graficznej z Zasady gry są proste, należy zabijać wrogów, MB pamięci Fast i 20 MB miejsca na dysku. powodzeniem można byłoby zagrać w wyższej zbierać kolejne bronie i klucze, odnajdować Oczywiście wymagane jest posiadanie pełnej, rozdziałce. przejścia. Każdy, kto grał w „Dooma” i „Wol- pecetowej wersji gry, z której należy skopiować fensteina” będzie się czuć jak w domu. Etapy pliki z danymi. Dystrybucją w wersji elektro- Tak jak wspomniałem na wstępie, autor zakła- gry są dosyć rozległe, już druga mapa zabiera nicznej zajmuje się serwis GOG.COM, a cena da dalszy rozwój portu. Zamierza m. in. zop- kilkanaście minut. Po naciśnięciu klawisza tytułu to ok. 3 USD. Po zdobyciu odpowiedniej tymalizować kod pod kątem szybkości działa- wersji czeka nas nia na 68030, dodać obsługę joysticka oraz jeszcze jedna obsługę dla trybu Indivision ECS. Czas pokaże czynność, którą czy Lantus360 będzie miał motywację, żeby należy wykonać rozwijać port dalej. na pececie – cho- dzi o spatchowa- Czy warto zagrać w „Rise Of The Triad” na nie plików tak, aby Amidze? Na pewno tak. Port jest stabilny i do- amigowy port po- pracowany, a rozgrywka prosta, ekscytująca i prawnie odtwarzał pełna miodności. Oczywiście, „ROTT” daleko dźwięk. Wszystko, jest do współczesnych FPP czy nawet co niezbędne „Quake”, jednak każdy, kto ma ochotę dla re- znajduje się w ar- laksu postrzelać i pobiegać po korytarzach gry, chiwum z grą, a będzie usatysfakcjonowany. cała procedura opisana jest w do- Mateusz „Twardy” Eckert kumentacji.

Gra wymaga pro- cesora 68020, jednak autor portu

20 POLSKIE PISMO AMIGOWE 3/2014 PT-1210 MK1 – Protracker Digital Turntable

Wśród amigowej braci znajdzie się niejeden wy. Z dwóch dowolnych DJ. I nie jeden pewnie myślał o tym, aby na modów, sprawnie operu- imprezie zaprezentować muzykę prosto z uko- jąc tempem i ścieżkami, chanej Amigi. Zagrać tak, jak gra się z profe- tworzy się zupełnie sjonalnego djskiego sprzętu – czy to z gramo- nowy utwór. Program fonów, czy cdplayerów. Do niedawna jedynym ten daje możliwość, ja- sposobem było zgranie amigowego moda do kiej do tej pory nie było pliku w formacie WAVE i wypalenie go na pły- – miksowanie Protrac- cie CD. Te czasy się już jednak skończyły, bo kerowych modów na nareszcie powstał program, który pozwala od- żywo. Oczywiście moż- twarzać amigowe mody tak, jakby były odtwa- na iść dalej za ciosem i rzane za pomocą profesjonalnego, djskiego podpiąć do zestawu CD playera. wiele innych urządzeń, takich jak gramofony, syntezato- ry, efekto- ry. Ograni- cza nas już tutaj tylko nasza kre- atywna wy- obraźnia.

Program, jak pi- szą autorzy Aki- ra i Hoffman, napisany jest tak, aby bez- problemowo pracował na do- Czymże specjalnym jest taki sposób odtwa- dowolnej klasycznej Amidze. rzania? Odtwarzacze dla DJ-ów pozwalają na Wystarczy umieścić swoje regulację tempa utworu, zapętlanie, szybki ulubione mody w katalogu, powrót do zapamiętanego punktu i wiele in- gdzie znajduje sie plik star- nych ciekawych funkcji, które umożliwiają towy i jesteśmy gotowi do Mateusz „twardy” Eckert płynne miksowanie utworów muzycznych. To pracy. Jedynym poważniej- samo daje nam program PT-1210 MK1. Oferu- szym minusem, jaki został je regulację tempa moda, zapętlanie patternów wychwycony podczas weso- czy też szybkie zapętlenie wybranej ilości tak- łych testów na Amiparty XV tów. Dodatkową przewagą jest konstrukcja to fakt, iż do ładowania mo- dów używana jest tylko pamięć Chip i niestety moda. Cztery ścieżki, które można dowolnie Autor zdjęć z AmiParty XV – Stony wyciszać dają wiele możliwości do ekspery- przy większych wagowo modach bywa, iż tej mentowania. pamięci brakuje. Dodatkowym smaczkiem na stronie programu są paczki z selekcją modów A teraz wyobraźcie sobie dwie Amigi, na któ- od Akiry i Hoffmana. Sterowanie programem Odnośniki rych pracuje ten djski software i obie są wpięte odbywa się głównie przy pomocy klawiszy w djski mikser audio – nieograniczone możli- funkcyjnych. Po całość klawiszologii, jak i do- Strona programu: wości miksowania modów z dwóch kompute- kładne specyfikacje odsyłam do pliku „readme” http://pt1210.kikencorp.com/ rów. Już nie cztery a osiem ścieżek do zaba- dołączonego do programu. Zwiastun autorów oprogramowania: Podsumowując nie zawaham się użyć stwier- http://vimeo.com/92446931 dzenia, że na obecne czasy, jeżeli chodzi o wykorzystanie Amigi klasycznej, tego typu Moje boje i ich zapis audio: program jest niesamowitym krokiem naprzód. https://soundcloud.com/mario_dj/amiga- Otwiera szeroko bramę do występów na żywo, mix-1-amiparty-xv do prezentacji Protrackerowej muzyki na dużej scenie i to w sposób bardzo profesjonalny. Go- Video z Amiparty XV: rąco polecam.. https://www.youtube.com/watch? v=pqCiPst6dIE Mariusz „MarioDJ” Jaczyński

POLSKIE PISMO AMIGOWE 3/2014 21 Goatlizard DX

GoatlizardGoatlizard DXDX

Gra „Moebius Goatlizard” była już przeze wanej Custom, mo- mnie opisywana w 11. numerze PPA. Pojawiła żemy wybrać jedną z się jednak dobra okazja, żeby do tego tytułu kilku dostępnych pro- wrócić, bowiem grupa Blackjet postanowiła raz pozycji układów tele- jeszcze uraczyć amigowców, wydając nową portów oraz zdecydo- wersję tej gry. Szczegółowy opis rozgrywki wać o typach przeciw- zamieszczony jest w numerze 11, więc wystar- ników, którzy będą czy przypomnienie, że „Moebius Goatlizard” to biegać po platfor- gra zręcznościowa, której celem jest zebranie mach. wszystkich artefaktów na danym poziomie, przy jednoczesnym unikaniu kontaktu z prze- Dodanie nowych opcji ciwnikami. Tytułowy Moebius może prze- wpłynęło na wymaga- mieszczać się po poziomych platformach za nia sprzętowe gry, któ- pomocą teleportów. W grze dostępne są także ra nie uruchomi się już rozmaite power-upy, pomagające nam w osią- na Amigach wyposa- gnięciu celu. żonych jedynie w 512 kB pamięci (wymaga Nowa wersja gry nazywa się „Goatlizard DX”. 1 MB pamięci Chip), a Wprowadza sporo innowacji, dzięki którym więc niestety nie po- rozgrywka staje się bardziej urozmaicona. gram w nią na mojej Pierwszą, zauważalną zmianą jest dodanie ulubionej Amidze muzyki – moduły odgrywane są zarówno na 1000. Dodatkowo au- ekranie tytułowym, jak i podczas gry (razem z torzy informują, że gra efektami dźwiękowymi) oraz po jej zakończe- nie działa na proceso- niu. Kolejną zmianą jest dodanie dużych, trud- rze 68010 (który na http://blackjet.co.uk/amiga.php nych do uniknięcia bossów, zajmujących aż szczęście w Amigach jest rzadkością), ale trzy sąsiadujące platformy. Pojawienie się uruchomi się na procesorze 68000 i kicku 1.3. bossów okazało się prostym zabiegiem, który w znacznym stopniu urozmaicił grę. Kolejne Podsumowując, można stwierdzić, że wpro- Mateusz Eckert: Cześć, na wstępie powiedz usprawnienia to poprawienie trybu dla dwóch wadzone zmiany wyszły grze na dobre. Nowy proszę parę słów o sobie. graczy oraz wprowadzenie możliwości tworze- typ przeciwników oraz możliwości tworzenia nia własnych poziomów. Dzięki tej opcji, naz- własnych etapów znacznie urozmaiciły roz- Andrew Gillen: Mam 37 lat, mieszkam w grywkę, a dzięki Oxfordshire, w Wielkiej Brytanii, pracuję w dodaniu muzyki dziale IT, w firmie z sektora finansowego w gracz ma wrażenie Londynie. Moje główne Amigi to A1200 z kartą obcowania z kom- Blizzard 1230 IV oraz z Apollo pletną, profesjo- 4040. Niestety nie mam tyle miejsca, żeby nalną produkcją. moje Amigi były cały czas podłączone i gotowe Grę można pobrać do działania, więc najczęściej pracuję na za darmo ze stro- WinUAE. W swojej kolekcji posiadam także ny autorów. CDTV, CD32, A600, martwą A500+, A4000 przełożoną z obudowy desktop do wieży oraz Korzystając z oka- A3000. zji, jaką jest wyda- nie „Goatlizard M.E.: Jak zaczęła się Twoja przygoda z DX”, postanowiłem Amigą i programowaniem? przeprowadzić wy- wiad z osobą od- A.G.: Pierwszą Amigę dostałem na urodziny, w powiedzialną za roku 1991. Była to A500 w zestawie Screen kod produkcji, An- Gems – zakochałem się w niej od pierwszego drew Gillenem, wejrzenia. Do niedawna nie zajmowałem się znanym na forum programowaniem, byłem tylko zapalonym EAB pod ksywą amigowym graczem. Pomimo posiadania Spud. komputerów PC i różnych konsol, cały czas grałem na Amidze i bawiłem się takimi pro- gramami, jak Vista czy Deluxe Paint.

22 POLSKIE PISMO AMIGOWE 3/2014 Goatlizard DX

M.E.: Kim jest Moebius Goatlizard? na Amigę? Co się stało z zapowiadaną A.G.: Cóż, Moebius jest postacią wykreowaną grą „Carpet Cap- przez Davida Hughes na potrzeby jego gier na ers”? Pamiętam, że ZX Spectrum, takich jak „Stamp Quest”, „En- na waszej stronie dless Forms Most Beautiful” i „The Lost Tapes były już zapowiedzi i of Albion”. Moebius jest dziwacznym i jedno- nawet trochę grafiki cześnie urokliwym spritem. Co do jego nazwi- z gry. ska, Goatlizard, to wymyślił je Jaco (grafik grupy), na etapie ustalania tytułu gry. A.G.: Gra „Carpet Capers” nie była za- M.E.: Jak wpadłeś na pomysł stworzenia awansowana w rozwo- gry? ju. Początkowo była to gra, którą pisałem na A.G.: Tak jak powiedziałem wcześniej, kon- Sama Coupe, chcąc cepcję gry stworzył David Hughes. Uwielbiam jednocześnie nauczyć jego gry na ZX Spectrum i najpierw postanowi- się więcej o progra- łem napisać moją własną wersję „Lost Tapes mowaniu scrollowa- of Albion” na komputer Sam Coupe, ponieważ nia. Pomyślałem, że uznałem go za odpowiednią platformę do fajnie byłoby pisać przećwiczenia swoich umiejętności i upiększe- jednocześnie na Ami- nia gry w stosunku do oryginału. Przez ostat- dze, jednak bardzo nie parę lat moje zainteresowanie retro grami szybko poczułem się wypalony. Tworzyłem „Spacewhale”, więc poczekajmy i zobaczmy, spowodowało niechęć do grania w cokolwiek jednocześnie gry na Amigę, ZX Spectrum i co się wydarzy. „nowoczesnego”, zapragnąłem także zgłębić Sam Coupe, urodził mi się także syn, więc swoją wiedzę na temat architektury retro kom- miałem mniej czasu. Postanowiłem zrezygno- M.E.: Jakie są twoje ulubione amigowe puterów. Naukę zacząłem od asemblera Z80 wać z niektórych pomysłów i skupić się na gry? na ZX Spectrum i Sam Coupe, a potem zainte- prostszych tematach, takich jak strzelanina na resowałem się Amigą i asemblerem 68k. Jako, ZX Spectrum oraz kolejna wersja Moebiusa na A.G.: „Rainbow Islands”, „SWOS”, „Pinball że posiadałem już gotową grę dla Sama Co- 25-lecie komputera Sam Coupe. Postanowi- Dreams”, „Monkey Island”, „Super Twintris” upe, stwierdziłem, że przeniesienie jej na Ami- łem też wydać poprawioną wersję gry na Ami- oraz „The Adventures of Robin Hood”. Oczywi- gę nie będzie stanowiło problemu i że projekt gę, dodając muzykę i parę ciekawych dodat- ście jest także wiele innych, jednak te które jest możliwy do zrealizowania. ków. wymieniłem, przyszły mi do głowy jako pierw- sze, więc pewnie to właśnie one są moimi M.E.: Z kim współpracowałeś przy ulubionymi. tworzeniu gry? M.E.: Na zakończenie powiedz proszę, A.G.: Pracowałem z grafikiem, Jaco czy interesujesz się nowymi amigowy- van der Walt-em. Ja sam potrafię ewen- mi i postamigowymi systemami, takimi tualnie przerobić czyjąś grafikę z gry na jak AmigaOS 4, MoprhOS czy AROS? inną platformę (takie, jak np. sprite'y Davida Hughesa), nie jestem jednak na A.G.: Nie interesuję się tym. Wypróbo- tyle dobrym grafikiem, żeby stworzyć wałem kiedyś AROS-a, ale ponieważ coś od podstaw. Jaco tworzy dużo gra- na co dzień pracuję w branży IT, to po fiki, zajmuje się także testowaniem oraz godzinach pracy nie interesują mnie tworzeniem efektów dźwiękowych w żadne nowoczesne rzeczy, niezależnie projektach Black Jet. czy mówimy o PC, nowoczesnych kon- solach, czy nowych amigowych syste- M.E.: Czy jesteś bądź byłeś kiedyś Od tego zestawu zaczęła się przygoda autora gry z Amigą. mach. Relaksuję się obcując ze starymi związany z amigową demosceną? maszynami z czasów młodości. „Carpet Capers” miało być grą w stylu „Space A.G.: Nie. Do niedawna nawet się tym nie inte- Taxi”, ale osadzoną w arabskich klimatach. M.E.: Dziękuję za rozmowę. resowałem. Na chwilę obecną, od kiedy lepiej Może kiedyś do niej wrócę, podobała mi się rozumiem, co kryje w sobie Amiga, zacząłem grafika i zapowiadała się niezła frajda z pro- Mateusz „twardy” Eckert bardziej doceniać produkcje demosceny, jed- gramowaniem gry. Myślę jednak, że powstanie nak to Jaco jest bardziej zainteresowany tema- tylko wersja na Sam Coupe. tami scenowymi. Co do nowych projektów związanych z Amigą, M.E.: Czy planujecie wydanie kolejnych gier to na pewno coś planujemy. Nie będzie to jed- nak kolejna wersja Moebiusa – szczerze mówiąc mam go już dość! Chcemy stwo- rzyć coś zupełnie no- wego i jednocześnie chcę nauczyć się pro- gramowania kości AGA, więc gra będzie najprawdopodobniej na Amigę 1200. Pisa- nie gry to długi proces, a kiedy ma się mało czasu, proces ten ule- ga dalszemu wydłuże- niu... Ech, fajnie było- by programować na Amidze na pełen etat! W każdym razie, mamy już pewne no- tatki, a Jaco bardzo chce stworzyć amigo- wy odpowiednik gry

POLSKIE PISMO AMIGOWE 3/2014 23 Jedi Knight: Jedi Academy

Dawno temu, w odległej galaktyce żył sobie mat „Jak skutecznie pewien chłopiec. Miał wiele przygód – poleciał nie dać się przecią- ratować księżniczkę, rozwalił orbitalną stację gnąć na ciemną stronę bojową, stał się rycerzem Jedi, odnalazł ojca, mocy” albo „Jak za- stracił dłoń, odzyskał dłoń, potem pokonał złe- chowywać się w kan- go Imperatora, stracił ojca, ale za to odnalazł tynie na Zewnętrznych siostrę. W pojedynkę – no, może samotrzeć – Rubieżach, żeby nie zadał druzgocącą klęskę złemu Galaktyczne- spowodować interga- mu Imperium i było wiele radości. Ale z takiej laktycznego konfliktu”. historii można ciągnąć kasę niemal w nieskoń- Takie rzeczy to może czoność, więc nie myśleliście chyba że na tym były lata temu, gdy się skończy? młodzików Jedi szkolił ten wapniak Yoda. 11 lat po pierwszej bitwie o Yavin – Imperium, Dziś uczymy się na mimo otrzymania druzgocących ciosów nadal sposób praktyczny. istnieje i wciąż próbuje kontratakować, choć Krótki kurs jak machać już raz kontratakowało i nic dobrego z tego nie mieczem świetlnym jak wyszło. Ponieważ – jak się okazuje – Luke najdalej od krocza Skywalker jest dość leniwy i nie ma już ochoty swojego mistrza (któ- na samotną walkę z Siłami Zła, założył na rym nota bene jest Yavin 4 Akademię Jedi, do której ściąga młode znany i lubiany jeszcze talenty z całej galaktyki. Jednym (lub jedną – od czasów Dark For- zależy co wybierzecie w opcjach) z nich jest ces czy Rebel Assault – Kyle Katarn) i jesteś rych nie uświadczymy w wersji „pecetowej” (na Jaden Korr, który (lub która) właśnie próbuje gotów (lub gotowa – zależy co wybierzesz w szczęście nie ma ich dużo). Po trzecie – loka- się zrelaksować na pokładzie promu, mknące- opcjach) do misji! A tych jest trochę do wyko- cje są zaprojektowane z elegancją, niektóre go na powierzchnię planety niczym nieubłaga- nania, bo cień jakowyś padł na Galaktykę – nawet z rozmachem, a udźwiękowienie i mu- ne ostrze losu. coraz częściej słyszy się o jakichś Uczniach zyka trzymają klimat (kto nigdy nie stał przed Ragnosa, że niby zbierają gdzie się da koń- lustrem wymachując świetlówką mrucząc „łu... Jak już pewnie zdążyliście się przyzwyczaić w cówki Mocy i pewnie chcą jej użyć w jakimś łu...” ten i tak nie zrozumie), a twórcy gry za- przypadku wielu innych pojawiających się niecnym celu. A jeśli cel jest niecny, to kto dbali nawet o takie detale, jak skwierczące ostatnio gier na nasze amiplatformy, rozgryw- wkracza? My! I kogo będą pokazywać na holo wesoło i parujące na ostrzu naszego miecza kę w Jedi Academy rozpoczynamy od dwóch stąd do Ord Mantell? Nas! świetlnego kropelki padającego deszczu. rzeczy: pobrania portu oraz zdobycia wersji pecetowej. Następnie przegrywamy wszystkie Pora na kilka słów o oprawie audiowizualnej: Skoro o mieczu mowa – mówiłem Wam już, że potrzebne pliki do podkatalogu /base i gotowe! Po pierwsze – podstawą gry jest (podobno to elegancka broń, na bardziej cywilizowane Prawda, że dużo prostsze od uruchamiania ja- niebywale ulepszony, ale jakoś tego nie za- cza... Nie, nie – chodziło mi o to, że w Jedi kichś instalatorów? uważyłem) silnik Quake 3, co powinno dać Academy solidnie się nim namachamy (i to w Wam już jakiś osąd. Jeśli nie daje, to powiem trybie TPP). W dodatku jest to jedyna broń, do Fabuła gry – jak pewnie się domyślacie – nie tak: jak na amiwarunki jest całkiem nieźle, której nie potrzebujemy amunicji. Dla uparciu- będzie polegać na słuchaniu wykładów na te- choć okupione jest to podwyższonymi wyma- chów – można przejść całą grę korzystając tyl- ganiami sprzętowy- ko z niego (za wyjątkiem jednej misji), choć do mi – Mac Mini wy- dyspozycji mamy wiele blasterów, a nawet wy- posażony w Rade- rzutnię rakiet, że o termodetonatorach i mina- ona 9200 z 64 MB ch-potykaczach nie wspomnę. Z kolei dla VRAM lubi niestety Hardkorów – można spróbować tylko trybu dostać zadyszki (z FPP, bez użycia miecza świetlnego (rozgrywka typowymi dla braku skończy się bardzo szybko, gwarantuję). Jest pamięci graficznej oczywiście też łyżka dziegciu w całej tej artefaktami na ekra- świetlnomieczowej awanturze – nasz sprzęt nie), więc niestety jest najzwyczajniej w świecie wybrakowany! To trzeba będzie po- nie są te same ostrza, które topią zbrojony me- grzebać w opcjach i tal czy wycinają dziury w burtach kosmicznych poświęcić rozdziel- krążowników! Te błyskotki może i potrafią roz- czość, tudzież deta- członkować jakiegoś Mrocznego Jedi (ale nie le na ołtarzu płynno- tak od razu – najpierw z reguły trzeba go moc- ści. Po drugie – no posiekać), zwalić drzewo czy przeciąć łań- BSzili robił co mógł, cuch (z tym, że nie każde, tylko konkretne, ale z racji że TinyGL wybrane przez twórców gry), ale próba głupie- mamy taki, a nie go wycięcia zamka z zablokowanych drzwi co inny w niektórych najwyżej zakończy się pozostawieniem na nich miejscach spotkamy nikłego, wypalonego śladu, który zaraz zniknie. się z uproszczenia- Co to ma być? Potężna broń Jedi czy jakieś – mi wyświetlania, któ- nie przymierzając – żelazko Philips Elance

24 POLSKIE PISMO AMIGOWE 3/2014 Jedi Knight: Jedi Academy

Darthem Korrem – wybór co prawda do- staniemy, ale dopiero pod koniec gry (i od niego będzie zależeć ostatnia misja oraz fi- nałowy pojedynek). ● dopracowana oprawa audiowizualna, ● zróżnicowane misje, Ale ja tu już o ostatniej ● gratka dla fanów Gwiezdnych Wojen. misji, a Wy jeszcze się nie nauczyliście, którą część miecza się trzyma, a którą ma- cha. Ogólnie – misje są bardzo zróżnico- wane. Przyjdzie nam podkładać ładunki wy- ● liniowość rozgrywki, buchowe, rozbrajać ● pewne ładunki wybuchowe niedociągnięcia/niekonsekwencje w grze (rzecz jasna nie te same), ratować za- kładników, szukać części do Maka na szrocie... (napisałem „do nizmy rządzące grą z pewnością Was zadziwią 3100? Zostaliśmy bezczelnie oszukani i żą- Maka?” Miałem na myśli: „do statku”, oczywi- – jako dobry przykład niech posłuży misja, w damy zwrotu pieniędzy, ot co! A raczej żądali- ście), aresztować złoczyńców, uciekać z wię- której ratujemy więźniów z przedziwnej gry byśmy, gdyby nie to, że pojedynki na miecze zienia, ba – nawet sabotować imperialny sta- bukmacherskiej, polegającej na obstawianiu świetlne to – mimo wszystko – wielka siła tej tek bojowy! Zwiedzimy przy tym pół galaktyki, jak długo przeżyją uciekając przed Rancorem. gry, szczególnie jeśli władamy naszą bronią nie omijając oczywiście standardowych lokali- Poświęcając wystarczająco dużo czasu i amu- biegle (a z czasem dostaniemy do wyboru trzy zacji typu Tatooine, Hoth, czy Coruscant. Misje nicji (tudzież ciosów mieczem) jesteście w style walki, a nawet wymianę naszego wysłu- danego rozdziału wykonujemy co prawda w stanie bestię powalić. Cóż jednak z tego, skoro żonego miecza na dwa albo miecz drań zaraz się zrespawnuje? To nie fair, podwójny). A jeśli dołożymy jeszcze panie Lucas, po prostu nie fair... techniki Mocy... Mimo wszystkich niedociągnięć w Jedi A właśnie – Moc. To kolejna sprawa, Academy zagrać warto, nawet jeśli (jak o której nie można nie wspomnieć. ja) nie jesteście zagorzałymi fanami se- Oprócz podstawowych technik Mocy, rii Star Wars. Rozczarują się pewnie ci, jak przyciąganie, pchnięcie, szybkość którzy liczyli na coś w rodzaju Dark czy skok, nasz bohater (lub bohater- Forces na sterydach – tutaj trzeba jed- ka – zależy co wybierzesz w opcjach) nak trochę pomachać mieczykiem w ma do wyboru osiem mocy specjal- trybie TPP, co dla nienawykłych może nych (po cztery dla jasnej i ciemnej rodzić pewne problemy. No i trzeba bę- strony). To od nas zależy które z nich dzie przełknąć gorzką pigułkę wymagań chcemy rozwijać w pierwszej kolejno- sprzętowych. ści – osobiście polecam leczenie (po- zwala uniezależnić się od rozsianych Konrad Czuba po planszach apteczek – niestety nie ma umiejętności Mocy regenerującej utraconą zbroję czy amunicję) oraz duszenie (na wyższych poziomach pozwala w zabawny sposób pozbyć się adwersarza – na przykład przenosząc go dowolnej kolejności, ale – niestety – nie da się nad jezioro lawy i zwalniając chwyt). Niestety – uciec od przemożnego wrażenia, że gra pro- Projekt OpenJK: za wszystko trzeba płacić, poziom mocy spada wadzi nas cały czas „za rączkę” – poszczegól- http://jkhub.org/page/index.html przy każdym użyciu, a regeneruje się dość ne zadania są liniowe do bólu, a czynno- wolno. Warto więc śledzić wskaźnik po prawej, ści wykonujemy (z drobnymi wyjątkami) za- Strona autora portu: http://bszili.morphos.me/ szczególnie jeśli akurat zachciało się nam wy- wsze w tej samej kolejności. Nawet jeśli uda konać Skok Mocy nad pierwszą-lepszą, bez- się Wam gdzieś utknąć, to pewnie z opresji denną otchłanią. Aha, nie przejmujcie się, że wybawi Was moc „Wyczuwania (Sense)”, używając umiejętności Mocy spod znaku ujawniająca ukryte przyciski, wajchy i takie Ciemnej Strony staniecie się ni stąd i zowąd tam. Jeśli kombinujecie za bardzo, to mecha-

POLSKIE PISMO AMIGOWE 3/2014 25 Scenowe graffiti

ScenoweScenowe graffitigraffiti

W poprzednim odcinku wspominałem na łamach PPA o nowej (w kontekście Amigi) gru- pie Australian Drug Foundation. Jak się okazało „Feeling Blue” nie było ich jednorazo- wym amigowym wybrykiem. Na party Stream, które odbyło się w dniach 16-18 maja w fiń- skim Tampere ADB zaprezentowali kolejną produkcję. „Outside Planet Earth” (kod – Sha- dez, muzyka – Serpent) znów ujmuje widza charakterystyczną melancholijną i rozmarzoną atmosferą, znaną z poprzedniego dema. Ład-

Demo „Sun Candy” grup Resistance i Wanted Team

skich służb specjalnych – Sachy - opisuje ją wspomógł go Sim1, a muzycznie Nainain i tak: „Impreza jest na wsi, można spać w lesie Mccnex. „Sun Candy” utrzymane jest w nieco w namiotach lub budynku wiejskiego domu oldskoolowym klimacie, przywodzącym (mię- kultury, w którym jest sala kinowo-dyskoteko- dzy innymi za sprawą muzyki) miłe, nostal- wa i tam też było głownie party. Ludzi około giczne wspomnienia. Design jest może mo- 200, Spaceballs, Insane, Hoaxers, Darklite, mentami trochę niespójny, ale naprawdę Szwecja, Finlandia, Norwegia, Niemcy, Szwaj- świetne, ręcznie rysowane logosy autorstwa carzy, ktoś z USA, UK no i ja sam z Polski. Sim1 odwracają uwagę od tego faktu. Jak po- Atmosfera fajna, upał, więc party było w środ- wiedział cytowany wcześniej koder, pierwotnie ku, a na zewnątrz piknik, grill i dmuchany ba- miało to być tylko małe cracktro, ale wraz z sen z wodą itd. Klimat z jednej strony niby pik- upływem czasu zaczęły dochodzić coraz to nikowy, ale z drugiej naprawdę kawał dobrego nowe części, wydłużono przy okazji muzykę i party.” zrobiło się dentro, a właściwe to małe demo. Kolorystycznie inspirację czerpali z dem zna- Mimo, że w ostatnich latach Solskogen nie nych i lubianych grup Melon Design i Lemon, było jakoś specjalnie nasączone amigowymi co również można zauważyć. Typowo „sceno- produkcjami, tegoroczna edycja przyniosła w wy proces produkcji” dobrze podsumowuje tej materii pewne pozytywne zmiany. Dość wypowiedź Sachy'iego: „Dentro skończyłem w nieoczekiwanie to nie Newschool / PC Demo noc przed wyjazdem (odlot 6 rano)”. Compo, a Oldskool Demo Compo stało się głównym punktem imprezy. Wystawiono w nim Srebro w konkursie zdobyło demo na kości 9 produkcji, z czego pięć było amigowych. Trzy AGA i szybszy procesor. Mowa o „We Are The z nich zajęły miejsca na podium i właśnie o tej Scene” (kod – OriGO, Prospect, muzyka – zwycięskiej trójce warto coś więcej napisać. Mygg, Gemini, grafika – Bitflippr, Corel, Ran- Demo „Sun Candy”, które zajęło miejsce trze- dy), wspomnianej zresztą ostatnio przeze mnie cie, to kooperacja grup Resistance i Wanted na łamach „Scenowego Graffiti” – w kontek- Team. Jest to produkcja stworzona praktycz- ście powrotów na scenę po latach – grupy In- nie w całości przez naszych rodaków i pierw- sane. Z pewnością nie mamy tu zbyt zaawan- sza – od bardzo dawna – większa rzecz, którą sowanych efektów, rażą też trochę „dłużyzny”, zakodował wspominany Sachy. Graficznie ale jest dobre synchro, niezły design i całkiem

Demo „Outside Planet Earth” grupy Australian Drug Foundation ne, „świetliste” efekty, dobrze zsynchronizowa- ne z muzyką a'la Jean-Michel Jarre tworzą przyjemną mieszankę. Co ważne, mimo oczy- wistej nostalgicznej aury, nie czuć tu owego „retro - geriatrycznego” wyrachowania, które to często owocuje produkcjami wydawanymi współcześnie, a wyglądającymi jak wyjęte żywcem z roku 1988 (w czym nigdy nie widzia- łem większego sensu). Gdyby tak jeszcze tyl- ko do utalentowanego kodersko-muzycznego duetu Shadez + Serpent dołączył jakiś grafik z prawdziwego zdarzenia, grupa Australian Drug Foundation mogłaby wyrosnąć na nową gwiazdę amisceny, bo do pełni szczęścia bra- kuje mi tam już tylko solidnej oprawy graficz- nej.

Solskogen to z kolei norweskie party, odbywa- jące się (z małymi przerwami) od 2002 roku we Flateby – małej, malowniczej wiosce, poło- żonej niedaleko Oslo. Jedyny polski wysłannik na tej imprezie, zakamuflowany agent rosyj- Demo „Emperor of the North Pole” grupy Spaceballs

26 POLSKIE PISMO AMIGOWE 3/2014 Scenowe graffiti spójna całość. Widać, że Insane po swoim amigowym comebacku wzięli się solidnie do roboty i zaczynają powoli wypracowywać wła- sny, ciekawy i unikatowy styl.

Czas na opis dema z miejsca pierwszego. Już sam fakt, że to produkcja na Amigę 500, która wygrała z demem na kości AGA może zaintry- gować. „Emperor of the North Pole” grupy Spaceballs to naprawdę mocna pozycja. Slummy (odpowiedzialny za kod) to bez wąt- pienia jeden z ostatnich prawdziwych koder- skich wizjonerów, który stara się tworzyć no- woczesne dema na „małe Amigi”, często wyko- rzystując przy tym koderskie, hardware'owe sztuczki, o których niewiele osób już dzisiaj pamięta. Jego produkcje nie przypominają tych, znanych z lat 90-tych. Są maksymalnie współczesne, kojarzące się bardziej z niektó- rymi minimalistycznymi demami na PC. „Em- peror of the North Pole” to trzecia część jego „koderskiej trylogii” (poprzedzonej równie do- brymi demami „Vold” i „Straff”), która zawiera rozwinięcia i wariację wcześniej pokazanych efektów. Przyznam, że dawno nie widziałem tak dobrych procedur na układy OCS. Dosko- nała dynamika, świetne synchro pod świeżą, klubową ścieżkę, za którą stoi lug00ber, spra- wia, że zastanawiamy się czy to oby na pewno demo na starą, poczciwą „pięćsetkę”, czy też Cover magazynu „Hugi #38 - Gravity Shot”, autor: Forcer może na większe Amigi. Po raz kolejny Slum- my potwierdza, że Cesarz Bieguna Północne- przegrało w łączonym Demo Compo jedynie z Mamy zatem powolne, monumentalne obiekty go jest tylko jeden. legendą demosceny, czyli grupą Andromeda 3D, nieco „organiczne”, laboratoryjne efekty i Software Development i ich doskonałym de- tajemniczy, spokojny soundtrack. Warto do- Z wyjątkowo słonecznej Norwegii przenosimy mem na PC „Mrs Escher's Nightmare” – to tyl- dać, że na Euskal 2014 grupa SF wydała jesz- się do – równie słonecznego – miasta Kraju cze amigowe 64k intro „Flow My Programs” – Basków – Bilbao. To właśnie tam odbyło się nie tak udane jak wspomniane demo, ale rów- demoscenowe party Euskal, na którym (moż- nież prezentujące solidny poziom. na rzec, że tradycyjnie) dała o sobie znać ami- gowa grupa Software Failure z Hiszpanii. Tak W czerwcu ukazał się 38 numer magazynu naprawdę jest to projekt kierowany przez jed- „Hugi”. Tematycznie traktuje on scenę przekro- nego człowieka, który bardzo sporadycznie jowo i multiplatformowo, ale ortodoksyjni fani zaprasza do gościnnej współpracy inne osoby amisceny znajdą w nim między innymi tekst (może to błąd). Ham, bo taką ksywę ma ów so- dotyczący prac nad dokumentem „Viva lista, to prawdziwy multiinstrumentalista – ko- Amiga”, wywiad z Paradroidem / Lemon, Hof- der, muzyk i grafik w jednym ciele. Jak mówią fmanem / Unstable Label, raport z Datastorm plotki, lubi się on zaszyć w leśnej głuszy, z czy publikację o legendarnym diskmagu dala od cywilizacji i żywiąc się tylko tym, co „RAW”. „Hugi” w kodowanej wersji dostępny sam upoluje, kodować dema. Może dlatego, w jest niestety tylko dla systemu Windows, ale niemal wszystkich jego produkcjach napotkać Magic / Nah-kolor (zastępca naczelnego) możemy rozmaite insekty, owady i inne – mało ko pozornie produkcja w typowej dla Software obiecał mi, że „niedługo” pojawi się także wer- smaczne nawet dla samego Roberta Makłowi- Failure estetyce. Moim zdaniem jest to spory sja dla systemu AmigaOS 4.0. Niezależnie od cza – stworzenia. krok do przodu w dokonaniach Hama. Z pew- tego cały czas dostępna jest też wersja online. nością wciąż nie jest to poziom, jaki prezentuje „Mind Floating Palace” (kod, grafika, muzyka – TBL, Skarla czy Dekadence, ale w końcu wię- Na koniec jeszcze krótka wzmianka o produk- Ham) – demo na procesor 060 + AGA, które cej tu finezji i nacisku na design oraz klimat. cjach wydanych na kilku mniejszych impre- zach, które to z różnych powodów warto odno- tować. Na niewielkim party RESETkani, które odbywa się cyklicznie w czeskim Brnie, dała o sobie znać (po bardzo długiej przerwie) ami- gowa formacja D.T.A. Software Studio. Ich 64k intro „Reborn” nie jest może niczym pory- wającym, ale znak życia z „wymarłych ami- sceonwo” sąsiednich Czech jest z pewnością godny uwagi. Na jeszcze mniejszym – tym ra- zem polskim – meetingu Garaż Party 2014 zaktywizowała się (w kontekście amigowo- wym) grupa Lamers. Ich „Greetz-tro” (kod, grafika – at0m, muzyka – Lamesoft) to – co prawda – króciutka, prosta, pchełka, ale oglą- da się ją z naprawdę dużą przyjemnością. Nie wiem, czy to był tylko „amigowy wypadek przy pracy”, ale chętnie obejrzałbym w końcu jakieś nowe produkcję Lamersów na naszej ulubionej platformie, a nie na (nieco mniej ulubionym) Atari. :-)

Tomasz Pacyna (Slayer/Ghostown) [email protected]

Demo „Mind Floating Palace” grupy Software Failure

POLSKIE PISMO AMIGOWE 3/2014 27 Scenowe graffiti

28 POLSKIE PISMO AMIGOWE 1/2014