bel68k - Commandos: Behind Enemy Lines dla Amigi z PiStorm (Emu68)
==================================================================
Nowy silnik gry (remake 1:1) czytający dane oryginalnej wersji PC.
Stan: wersja 0.5.27 - grywalne misje: AI wrogów, broń i przedmioty
komandosów, cele misji, wygrana / przegrana, ekran wyników z hasłem do następnej
misji, filmy (intro, odprawy, zwycięstwo), zapis i odczyt gry.

Wymagania
---------
- Amiga z PiStorm (Emu68), AmigaOS 3.x, RTG przez P96 (tryb 640x480 w 16
  bitach; opcjonalnie 512x384, 800x600, 1024x768 - OPTIONS > VIDEO OPTIONS,
  zapamiętywane; gdy trybu brak, wraca 640x480)
- cybergraphics.library (instalowana razem z P96)
- AHI dla dźwięku (bez AHI gra działa po cichu)
- dane oryginalnej gry (wersja PC CD) na dysku: katalog COMANDOS z WARGAME.DIR,
  DATOS/ i VIDEO/. Płyta nie jest potrzebna.

Uruchomienie
------------
1. Skopiuj "bel68k" i "bel68k.info" do katalogu z grą (tam gdzie WARGAME.DIR).
2. Kliknij ikonę na Workbenchu albo z Shella:  bel68k
   (dane są szukane w katalogu programu; inny katalog: bel68k DH1:COMANDOS)
3. Opcje do testów:
   bel68k -mission N    od razu misja z pliku MAPAnnnn.MIS (0..26 bez 14;
                        21..26 to misje treningowe)
   bel68k -nobriefing   bez odprawy
   bel68k -nointro      bez filmu na starcie
   bel68k -res 800 600  wymusza rozdzielczość

Ustawienia i aktualizacja
-------------------------
OPTIONS > SETTINGS (zapisywane w bel68k.cfg):
  FRAME RATE   30 / 15 / 10 klatek na sekundę na mapie (gra dalej liczy 30 razy
               na sekundę - na wolniejszej Amidze płynniej)
  ENEMY SIGHT  zasięg wzroku wrogów 75..125%
  ENEMY AIM    celność wrogów 50..125%
  CONSOLE      konsola debug pod ~ / F10 włączona albo nie
  INTRO FILM   film na starcie gry
  BRIEF FILMS  filmy historyczne w odprawach
  FOOTPRINTS   ślady na śniegu
  UPDATE       podmenu: VERSION (twoja wersja), AUTO CHECK (sprawdzanie przy
               starcie), UPDATE NOW: CHECK = sprawdź; GET x.y.z = pobierz
               i zainstaluj (pasek postępu, gra działa dalej); potem RESTART
Aktualizacja (także klik w numer wersji w lewym dolnym rogu menu głównego:
pierwszy klik sprawdza, drugi przy "GET x.y.z" instaluje): gra sama łączy się z http://eterror.pl/commandos/ (pliki
"version" i "commandos_amiga.zip" - w zipie bel68k, bel68k.info, README_PL.txt;
rozpakowuje go sama i sprawdza sumy CRC) przez bsdsocket.library - wystarczy działający stos TCP/IP
(Roadshow, AmiTCP, Miami), AmiSSL ani wget nie są potrzebne. Stary program zostaje
jako bel68k.old (powrót: rename). Inny adres: w bel68k.cfg linia
  .UPDATEURL "http://.../"   (adresy https:// idą przez wget / curl + AmiSSL).

Gra we dwóch (MULTIPLAYER)
--------------------------
NEW GAME > MULTIPLAYER otwiera LOBBY (serwer 95.31.37.122 port 50002; inny
adres: w bel68k.cfg linia  .NETHOST "1.2.3.4"). Po lewej lista pokoi (klik =
dołącz), na dole czat dla wszystkich w lobby (pisz i Enter). CREATE ROOM
zakłada pokój, MISSION: klik = następna, prawy klik = poprzednia (1..20,
zmienia tylko gospodarz pokoju),
START (gospodarz, gdy jest drugi gracz) - obaj zaczynają tę samą misję,
LEAVE ROOM wychodzi z pokoju, BACK rozłącza. Nick: na czacie
"/NICK NAZWA" (albo klik w "NICK: ..." i wpisz nazwę, Enter) - zmienia się od
razu, bez rozłączania, i zapisuje w bel68k.cfg jako .NETNAME. Nick ma do 12
znaków A-Z 0-9 _ -; gdy ktoś już ma taki sam, serwer doda cyfrę (AMIGA2). Po misji
klik/klawisz wraca do lobby. Stare MISSION/CONNECT (szybkie parowanie
pierwszych dwóch) też działa. W grze obaj zaczynają tę samą misję. Każdy dowodzi co drugim komandosem z paska twarzy
(gracz 1: 1., 3., 5.; gracz 2: 2., 4.). Obie gry liczą się krok w krok: rozkazy
idą przez serwer i wykonują się u obu po 0,2 s; gdy partner nie nadąża, gra
czeka. Zapis gry, F5/F9 i konsola są wtedy wyłączone. "OUT OF STEP" = gry się
rozjechały (np. różne wersje bel68k - obaj muszą mieć tę samą),
"PARTNER LEFT" = partner wyszedł.
Serwer: tools/bel68k-server.c (C) albo tools/bel68k-server.js (Node, bez pakietów):
  node bel68k-server.js 50002
albo w C (Linux / dowolny POSIX):
  cc -O2 -o bel68k-server bel68k-server.c && ./bel68k-server 50002
Potrzebny działający stos TCP/IP na Amidze (bsdsocket.library).

Sterowanie
----------
Menu:  mysz (najechanie + klik) albo strzałki + Enter, Esc = wstecz
Mapa:
  przewijanie            kursor przy krawędzi ekranu albo strzałki
  wybór komandosa        klik na nim, klik na twarzy u góry, klawisze 1-8
                         (kamera przenosi się na niego); Ctrl = dodaj do grupy;
                         prawy przycisk przeciągnięty = prostokąt zaznaczenia;
                         0 = odznacz wszystkich
  ruch                   klik w teren = idź, podwójny klik = biegnij
  czołganie              C / S albo ikony u góry = połóż się / wstań
  przerwanie             prawy klik (albo schowanie przedmiotu z ręki)
  budynki                kursor z dźwignią nad drzwiami domu = klik, zaznaczeni
                         wchodzą do środka (wrogowie ich nie widzą); wyjście:
                         klik na zdjęcie w plecaku
  pojazdy                kursor z dźwignią nad pojazdem = klik, zaznaczeni wsiadają
                         (marine prowadzi ponton, kierowca pojazdy lądowe, reszta
                         jako pasażerowie); kierowca w środku: klik w teren = jedź
                         / płyń; wysiadka tylko klikiem na zdjęcie w plecaku
  plecak                 prawy dolny róg; klik na przedmiot = weź do ręki (kursor
                         zmienia się na jego ikonę, przekreśloną gdy nie ma na czym
                         go użyć); drugi klik albo prawy przycisk = schowaj (broń też)
  wspinaczka             zielony beret: kursor zmienia się w czekan nad murem /
                         dachem, na który może wejść (albo nad ziemią, gdy stoi
                         na górze) - klik = wejdź / zejdź
  nóż                    X albo nóż w plecaku, klik na Niemca = podejdź i dźgnij
  nurkowanie             marine: butla pokazuje się w plecaku tylko na płyciźnie
                         albo w pontonie; klik na butlę (lub D) = nurkuj (z pontonu
                         skacze do wody); wyjście: klik na ląd - sam dopłynie do
                         płycizny i zdejmie sprzęt (albo butla na płyciźnie)
  broń palna             G pistolet, R karabin snajpera (5 naboi - widać je w
                         plecaku), M pistolet maszynowy (seria), J harpun (cichy);
                         klik na Niemca albo w dowolny punkt mapy
  granat                 E, klik w miejsce rzutu (lot łukiem, wybuch)
  bomby                  B (bomba zegarowa, ok. 11 s, tyka) albo ładunek saper
                         kładzie pod nogami; A = detonator (zdalne ładunki)
  wabik                  Q kładzie wabik, potem przełącznik w plecaku (I) włącza /
                         wyłącza pikanie - żołnierze w pobliżu idą sprawdzić;
                         ręka (H) + klik na wabik = podnosi go (wyłączony wraca
                         do plecaka); tak samo sidła
  ciała                  zielony beret / szpieg: ręka (H) + klik na ciało = niesie
                         je na ramieniu i idzie wolniej (klik w teren); ręka
                         jeszcze raz albo prawy klik = kładzie
  sidła                  J (gdy brak harpuna) - pierwszy Niemiec, który wejdzie, ginie
  apteczka               K, klik na rannego komandosa (także na siebie)
  strzykawka             L (szpieg), klik na Niemca = usypia na zawsze
  mundur / odznaka       U przebiera szpiega (wrogowie go nie zaczepiają); założonego
                         munduru nie ma w plecaku i nie da się go zdjąć (jak w
                         oryginale); złota odznaka (D) = zagadywanie: klik na
                         żołnierza - "Soldat!", ten staje i patrzy na szpiega
  łopata                 zielony beret na śniegu: łopata albo F = zakopuje się
                         (wrogowie go nie widzą); prawy klik / rozkaz ruchu = wychodzi
  skróty (jak w oryginale) G pistolet, X nóż, H ręka, D butla / odznaka szpiega,
                         R karabin, K apteczka, M pistolet maszynowy, J harpun /
                         sidła, E granat, W nożyce, L strzykawka, F łopata, Q wabik,
                         B bomba, A detonator, T ponton, U mundur
  pole widzenia wroga    klik na oku u góry, potem na Niemcu - albo Shift+klik na
                         Niemcu; zielony stożek (jasny = bliska strefa, w ciemnej
                         leżących nie widać); ponowny klik = ukryj
  zapis / odczyt         Esc -> SAVE GAME / LOAD GAME (6 miejsc, nazwę wpisujesz
                         z klawiatury, Enter = zapisz); F5 = szybki zapis,
                         F9 = szybki odczyt (także NEW GAME > LOAD QUICK SAVED GAME
                         i (Q)UICK LOAD po przegranej)
  drabiny                kursor czekana nad drabiną = klik, komandos podchodzi
                         i wchodzi / schodzi
  gniazda karabinów      kierowca: kursor wejścia nad pustym gniazdem (po zabiciu
                         strzelca) = obsadza karabin; klik na Niemca = ogień
                         seriami (w zakresie obrotu); klik w teren = odchodzi
  ponton marine          T (ponton w plecaku), klik na płyciznę = podchodzi,
                         pompuje ponton i wsiada; pusty ponton zabiera ręką (H);
                         przestrzelony nie płynie - zabrać i rozłożyć ponownie
  psy                    pies szczeka (alarm), biegnie do komandosa i gryzie
  szpieg                 w mundurze widzą go dopiero, gdy niesie ciało, robi
                         zastrzyk albo strzela - wtedy jest zdemaskowany: alarm,
                         wszyscy go rozpoznają aż do końca alarmu, a odznaka
                         (zagadywanie) nie działa; prawy klik puszcza zagadanego
  notatki z odprawy      Ctrl+B (jeszcze raz = schowaj)
  znaczniki              Shift+klik w teren = znacznik (świeci na czerwono, gdy
                         widzi go któryś Niemiec); ponowny Shift+klik = usuń
  kamera                 Alt+klik na postaci / pojeździe = kamera jedzie za nim;
                         Alt+klik obok albo przewinięcie klawiszami = odblokuj
  notes z mapą           "?" na górnym pasku: notes z mapą misji (czerwona ramka =
                         widok, białe kropki = komandosi); klik na mapie = kamera
                         tam; zagięty róg = notatki z odprawy
  kamera (ikona)         ikona kamery u góry, potem klik na postaci = kamera za
                         nią; ponowny klik na ikonę = odblokuj
  zoom                   + na klawiaturze numerycznej = 200%, - albo * = 100%
  okna                   F2 jedno, F3 dwa obok siebie, F4 dwa jedno nad drugim,
                         F6 cztery; każde okno ma własną kamerę, działa to pod
                         kursorem (F5 zostaje szybkim zapisem)
  pojazd uzbrojony       kierowca w wozie pancernym / czołgu: Ctrl+klik na cel =
                         strzał z działka
  przełącznik prądu      klik na przełączniku = wyłącza / włącza płot pod prądem
                         (dotknięcie drutu pod prądem zabija)
  konsola debug          ~ (albo F10): GOD, NOTARGET, TP (zaznaczeni pod kursor),
                         KILL (wróg pod kursorem), KILLALL, HEAL, AMMO, TARGETS
                         (cele zniszczone), WIN, LOSE, ALARM, CALM, MISSION N
                         (N-ta misja kampanii 1..20), MAP N (plik MAPAnnnn),
                         SPEED N, POS, WHAT (co jest pod kursorem), CLEAR, HELP;
                         Enter = wykonaj, Esc = zamknij
  Esc                    menu główne (gra wstrzymana), Esc w menu = powrót

Co działa
---------
Menu i ekrany
- MAIN MENU, NEW GAME, OPTIONS (głośność, VIDEO OPTIONS, GAME PREFERENCES), HELP,
  CREDITS (z podpisem wersji na Amigę), QUIT - 1:1 z oryginałem (porównane
  piksel w piksel ze zrzutami), migotanie wybranej pozycji
- NEW GAME > PASSWORD - hasła misji (lista niżej)
- NEW GAME > TUTORIALS - oryginalne filmy samouczka; NEW GAME > MULTIPLAYER -
  lobby (opis wyżej); OPTIONS > SETTINGS - nasze ustawienia i aktualizacja
- odprawa przed misją (skrypty BRIEnnnn.SCR wykonywane polecenie po poleceniu):
  obrazy z przenikaniem i wyciemnieniem, muzyka, narracja z napisami (czeka na
  koniec głosu), przelot kamery nad mapą misji z przybliżaniem (do punktu albo
  jednostki), Esc = przeskok do następnej części
  filmy historyczne w odprawie (oryginalne AVI z katalogu VIDEO, obraz Cinepak
  i dźwięk, czytane z dysku na bieżąco), Esc = pomiń
  szacunki: prędkości przelotu i zoomu
- film intro przy starcie gry (Esc / klik = pomiń), film zwycięstwa po ostatniej
  misji
- zapis i odczyt gry: pliki BEL68K.S1..S6 i BEL68K.SQ w katalogu gry (szybki zapis);
  zapis z jednej wersji bel68k może nie wczytać się w innej

Mapa i komandosi
- wszystkie mapy misji, jednostki i obiekty z plików misji, zasłanianie przez
  budynki i drzewa, kamera startowa jak w oryginale
- chodzenie, bieganie, czołganie, grupy; trasa po siatce nawigacyjnej misji
- kolizje: skały, budynki, gęste kępy drzew i woda (sektory nieprzechodnie),
  mury i dachy (różnica wysokości - wejście po drabinie albo wspinaczką
  zielonego beretu), pnie drzew i słupy (CHOQnnnn.VOL), pojazdy, beczki, skrzynie
  i postacie (kształty kolizji z pliku misji) - przeszkody obchodzą bokiem
- pojazdy i łodzie: pasażerem może być każdy, kierowcą tylko kto umie (marine -
  ponton, kierowca - pojazdy lądowe); jazda, pływanie (ponton tylko po wodzie), marine
  wiosłuje, ślad bąbelków za łodzią, zdjęcia pasażerów na plecaku
- plecak z przedmiotami ułożonymi jak w oryginale, kursory przedmiotów i pojazdów
- pistolet (każdy komandos, który ma go w plecaku): podejście na zasięg,
  wyciągnięcie broni, strzał; trafiony żołnierz się zatacza, drugi strzał
  zabija, ciało zostaje w kałuży krwi; strzał w dowolny punkt mapy (kurz, w wodzie
  plusk); błysk z lufy; kule zatrzymują budynki, skały, mury i worki z piaskiem
  (przez drut kolczasty przelatują)
- wspinaczka zielonego beretu na mury i dachy (kursor czekana, animacja), chodzenie
  po nich; nóż (cichy); nurkowanie marine z butlą (także z pontonu)
- granaty, bomba zegarowa, ładunki zdalne z detonatorem, wabik z pilotem, sidła,
  apteczka, strzykawka, mundur i odznaka szpiega, karabin snajpera, pistolet
  maszynowy, harpun; wybuchy zabijają w promieniu, odpalają inne bomby, słychać
  je daleko
- cele misji z pliku misji: wysadzane budynki (zbiorniki, magazyny...) zamieniają
  się w ruiny z oryginalnych grafik, wybuchają łańcuchem i płoną; zabicie
  wskazanego wroga
- koniec misji jak w oryginale: wszyscy żywi w punkcie wyjścia albo w pojeździe
  ucieczki -> sukces (gdy cele wykonane) albo porażka; śmierć komandosa = porażka
- ekran wyników (PUNT000 + ranga): straty wroga (żołnierze, pojazdy, budynki),
  czas, obrażenia, ocena, hasło następnej misji; N = następna misja, P = jeszcze
  raz, Esc = menu
- górny pasek: twarze (zmieniają się ze zdrowiem), pasek zdrowia, ikony stania,
  czołgania, oka i kamery (UKŁAD TYMCZASOWY - do dopasowania do oryginału)

Wrogowie (AI)
- patrole chodzą po trasach z pliku misji (pętla / tam i z powrotem, postoje,
  prędkość), oddziały idą gęsiego za kapralem, wartownicy z ustawionym kątem
  rozglądają się
- pole widzenia jak w oryginale (zasięg 800, kąt 70 stopni - wartości z Comandos.exe),
  zasłaniane przez budynki, skały, mury; w dalszej połowie leżących nie widać;
  nurka i ludzi w pojazdach nie widać
- żołnierz, który zobaczy komandosa: "Alto!", celuje, strzela (komandos krzyczy,
  traci zdrowie - widać na twarzy u góry, po 4 trafieniach ginie)
- strzał z pistoletu słychać w pobliżu: żołnierze odwracają się w tę stronę
- wybuch, wabik i odznaka szpiega odciągają uwagę; zakopanego, przebranego
  szpiega i nurka nie widzą
- alarm jak w oryginale: strefy i komunikaty z plików misji (syrena, posiłki
  z koszar po zdefiniowanych trasach, oddziały reakcji, szukanie po śladach),
  reakcja na ciała, gniazda karabinów maszynowych, pojazdy wroga ruszające
  przy alarmie, psy

Dźwięk (AHI)
- muzyka w menu, w CREDITS, przy wyjściu; głos i muzyka w odprawie
- głosy komandosów jak w oryginale (wybór, rozkaz ruchu, rozkaz niewykonalny,
  okrzyk przy strzale), kroki przy biegu, wiosła i silniki, strzały, krzyki
  trafionych; głośność i strona zależą od położenia na ekranie
- ustawienia zapisywane do bel68k.cfg w katalogu gry (Comando.cfg nie jest ruszany)
- OPTIONS > GAME SPEED: 100% / 75% / 50% - spowalnia całą grę równo
- woda rzek i morza faluje, z tamy (REVERSE ENGINEERING) spada woda (wygląd to szacunek)

Szacunki do sprawdzenia z oryginałem
- położenie górnego paska, zasięg pistoletu (2 strzały na żołnierza),
  prędkości pojazdów, wygląd śladu za łodzią, kroki przy biegu
- promień wybuchu, czas lotu granatu, zasięg wabika, czas palenia się budynku,
  wzór na ocenę misji i miejsca liczb na ekranie wyników

Czego nie ma / co jeszcze do sprawdzenia
---------------------------------------
- miotacz ognia, kusza i klucz są w tablicy przedmiotów, ale żadna misja
  "Behind Enemy Lines" ich nie używa - nie są zrobione
- pojmanie komandosa przez wroga: w oryginale jest (patrole mają w danych
  .JAIL - swoje więzienie, komunikat "ALL YOUR MEN HAVE DIED OR HAVE BEEN
  CAPTURED", podpowiedzi misji 2 i 4; zatrzymany komandos, który odejdzie
  dalej niż ok. 80 jednostek, "ucieka" - wg kodu Comandos.exe), ale nie
  wiadomo jeszcze, kiedy dokładnie żołnierz aresztuje zamiast strzelać -
  nie zrobione
- szpieg: czy po alarmie odzyskuje przykrywkę (teraz tak), czy jest spalony
  do końca misji - do sprawdzenia z oryginałem
- multiplayer, lobby i wpisywanie znaków przez keymap nie były jeszcze
  uruchamiane na prawdziwej Amidze (tylko wersja PC)
- liczby z sekcji "Szacunki" wyżej

Hasła misji (wersja amerykańska; działają też hasła wersji brytyjskiej)
---------------------------------------------------------------------
 1 BAPTISM OF FIRE           W2D4     11 IN THE SOUP                9WODW
 2 A QUIET BLOW-UP           4JJXB    12 UP ON THE ROOF             UVHDC
 3 REVERSE ENGINEERING       4FQBF    13 DAVID AND GOLIATH          FBK48
 4 RESTORE PRIDE             5DNCQ    14 D-DAY KICK OFF             WA8DW
 5 BLIND JUSTICE             6S5TL    15 THE END OF THE BUTCHER     KEWD3
 6 MENACE OF THE LEOPOLD     AT1WN    16 STOP WILDFIRE              R7JP3
 7 CHASE OF THE WOLVES       O9VJ8    17 BEFORE DAWN                FXIMV
 8 PYROTECHNICS              WQ9XB    18 THE FORCE OF CIRCUMSTANCE  ZZMJV
 9 A COURTESY CALL           Q2AXT    19 FRUSTRATE RETALIATION      8HCWN
10 OPERATION ICARUS          TUGPD    20 OPERATION VALHALLA         C7KWW

Do sprawdzenia na prawdziwym sprzęcie
-------------------------------------
Gra zapisuje dziennik do bel68k.log (katalog gry) (przy problemie - przyślij go).
Obsługiwane formaty pikseli RTG: RGB16, RGB16PC, BGR16, BGR16PC, RGB15, RGB15PC.
Jeśli kolory są przekłamane albo ekran się nie otwiera - daj znać, co wypisał Shell.

Kod źródłowy: katalog src/, budowanie: make amiga (amiga-gcc), make sdl (PC).
Amiga port by Terror (solargrim@gmail.com) - eterror.pl
