X-System Pro 1.0

Starý program pro tvorbu textových her na ZX Spectru.

Tedy nic zajímavého.

Navíc se X-System Pro 1.0 ztratil a zmizel v propadlišti dějin, od roku 1994, kdy jsem ho napsal, jsem o něm už neslyšel.

X-System Pro jsem vytvořil pro Matsofta, který v něm vytvořil textovky Normal Life a Normal Life 2 (první kolem roku 1996, druhou 1999), které i spolu s X-Systémem (ne)distribuoval jako Freeware ZX Magazínu na disketě Freeware 6.

Nevím ale o nikom, kdo by Freeware ZX Magazínu měl, na internetu v archivech tento software není (takže ani moje hra Zabijáci Číhají z diskety Freeware 3).

Může to souviset s tím, že Freeware 1 a 2 byly oznámeny v čísle 1/1996, 3 a 4 (Zabijáci číhají) v čísle 1/1998, ovšem v čísle 3/1998 vyšla Matsoftova omluva, že freeware nerozesílal, protože nemá diskety a že určitě pošle.

Zmínka o tom, že bude Freeware 6, se mihla jen tak mimochodem v ZXM 3-4/1999, oficiální ohlášení Freeware 5 a 6 (Normal Life 1 a 2, X System Pro, na pětce byly taky zajímavé programy od Pola) bylo až v čísle 1-2/2000, takže se distribuovaly až v roce 2000 – respektive tím Freeware nejspíš zároveň skončil, neb už jsem sázel ZX Magazín já, Matsoft nefungoval a žádná další zmínka o Freeware ZX Magazínu tedy v dalších číslech (od čísla 3/2000) už není.

Diskové přílohy k ZX Magazínu jsou archivovány jen z doby Public Domain od Proximy a pak až od roku 2003, kdy začal vycházet online a byl sázen barevně.

Našel se sice někdo, kdo měl na disketě aspoň hru Normal Life, takže je ke stažení v archivu československého software, dokonce ji Velesoft upravil tak, aby fungovala na +2A, ale X-System Pro byl stále ztracený v propadlišti dějin.

Není se co divit.

Jako program to bylo poměrně slabé, ani já sám jsem si X-System nenechával s tím, že vytvořím modernější Visual X-System Pro, víc v duchu doby, s proporčním fontem, pod hlubokými dojmy z hry Heroes 92 jsem chtěl mít i pakování textů.

Ovšem krom skoro dokončeného textového packeru Caesar (který jsem začal psát proto, že jsem se nedostal k packeru Tolkien od George K.) se nic z toho už nekonalo.

Textovku Generátor I, kterou jsem dal dohromady ještě v roce 1994, jsem napsal normálně bez editoru (a s nepakovanými texty, což mne dodatečně mrzí).

Jenže on X-System ze světa nezmizel.

Celou tu dobu tu byl s námi, právě díky hře Normal Life.

Teprve nedávno mi totiž došlo, že editor i runtime jsou jeden program!

Takže někde v té dochované hře musí přeci editor být!

A co byste řekli? – Byl tam.

Podle některých drobností, jako je neopravený překlep ve slově “úvodní” a nedodělané výpisy při kompilaci, usuzuju, že Matsoft při tvorbě své hry nepoužil definitivní verzi, ale některou z posledních vývojových (asi nepořádek na disketách).

Úvodní basic ke hře je trochu divoký, je tam spousta RANDOMIZE USR, je tam depakování, nastavení fontu (čeština je na písmenech se shiftem, takže textový výstup vypadá trochu jako na ZX81).

Podstatné jsou poslední tři RANDOMIZE USR: na adrese 25e3 depakování, na adrese 52e3 spuštění hudby (u Normal Life přehraje hudbu z Orfea a po ní inicializuje přehrávání iritující AY hudby, jejímž autorem jsem opět já) a poslední USR 25e3 spustí hru.

X-System Pro při spuštění testuje adresu 65535 a zachová se podle ní, můžeme ji ovlivnit například pomocí POKE:

POKE 65535,0: USR 25e3 – inicializace X-systému (smaže proměnné a texty)
POKE 65535,1: USR 25e3 – spustí hru
POKE 65535,255: USR 25e3 – spustí editor X-systemu (pokud předtím neprovede inicializaci, tak v něm zůstanou data hry Normal Life)

Normal Life má tedy po poslední manipulaci s pamětí, před vykonáním posledního USR 25e3, na této adrese hodnotu 1.

Pokud se pamatuju, tak původní loader X-Systemu (ne výsledné hry) paměť na začátku inicializoval právě aby neměla nedefinovaný obsah.

Po nahrání editoru tedy následovaly příkazy
POKE 65535,0: USR 25e3: REM inicializace
POKE 65535,255: USR 25e3: REM spuštění

X-System Pro 1.0 byl na svou dobu celkem samovysvětlující, Matsoftovi stačilo dát jen nějaké instrukce, jako kam nahrát font a jaký je význam kompilace, takže k němu nevznikl ani žádný manuál.

Dnes bych ale o nějaké uživatelské přívětivosti moc nemluvil.

Ve hře se příkazy a názvy předmětů zadávají tak, jak je systém vypisuje, tedy i s češtinou, tehdy mi to přišlo jako dobrý nápad (čeština je na písmenech se shiftem, Ě je na W).

Povely SEVER, JIH, VÝCHOD a ZÁPAD lze zkracovat na S, J, V, Z.

Povel ROZHLÉDNI SE nebo ROZHLÉDNI (lze vynechat zájmeno) se dá zkrátit na R.

Ostatní povely se nezkracují.

Systém zná synonyma SEBER a VEZMI.

POLOŽ, POUŽIJ, PROZKOUMEJ a KONEC existují zdá se jen v jednom tvaru.

Příkaz pro inventuru chybí.

X-System Pro nemá nějaký pohodlnější editor textů.

Při editaci volá standardní basicovou rutinu pro input textu (takže s BS ROM by měl fungovat pohyb kurzoru v editačním poli nahoru a dolů, standardní ROM tuto možnost nemá).

I výpisy jsou přes rutiny ROM.

Systém je sice psán tak, aby za běžných okolností nedocházelo k výpisu hlášky Scroll?, ale pokud data poškodíte tak, že se vypíše dlouhý řetězec a na Scroll? odpovíte breakem, vyskočí program do Basicu (ve kterém nic není – jen loader) s chybou L BREAK into program.

X-System Pro nemá žádné ukládání nebo načítání rozpracované hry, na D40 se dal pro tento účel použít snapshot.

“Krajina” je tvořena 30 místnostmi (popis “místnosti” číslo 31 se zobrazí na začátku hry jako úvodní pokec).

Popis každé místnosti má pevnou délku 5 řádek textu.

Součástí popisu místnosti jsou čtyři směry, udávající číslo místnosti, kam je možno daným směrem jít (nula je nikam).

Počáteční místnost je číslo 1.

Předměty jsou objekty, které se dají brát a používat.

Detaily jsou objekty, které se objevují v popisech místnosti a je možné je prozkoumat, ale nedají se sebrat ani použít.

Předmětů je dvacet, detailů je dvacet.

Systém si nehlídá vždy správný rozsah – například při editaci detailu 21 už přeteče do prostoru předmětů, ale úplně se s nimi nepřekrývá, takže data poškodíte.

Editace místností a předmětů není moc editace, vždy musíte vytvořit kompletní popis znovu (alespoň ale vidíte, co bylo v popisu původním).

Při definici použití předmětů zadáváte vždy všech 20 předmětů naráz, jeden po druhém.

Logika definice použití je takováto:

Použij předmět číslo … v místnosti číslo … s hláškou …, jinak zemřeš v místnosti číslo … s hláškou …

Míněno to bylo třeba takto:

Použij LAHEV v místnosti 15 (vstup do pouště) s hláškou “NAPIL SES, JSI DOST OBČERSTVENÝ K CESTĚ PŘES POUŠŤ.”, jinak bys zemřel v místnosti 16 (poušť) s hláškou “ZMÍRÁŠ VEDREM A ŽÍZNÍ… JSI MRTEV.”

Použij MINCI v místnosti 15 (trolí budka u mostu) s hláškou “ZAPLATIL JSI TROLOVI, TEN SE ZAČAL USMÍVAT.”, jinak bys zemřel v místnosti 16 (most) s hláškou “TROL SE ZAMRAČIL, ŘEKL, ŽE JSI NEZAPLATIL, A ROZŠLÁPL TĚ.”

Předmět jde tedy použít jen v správné místnosti, ale “neopotřebuje se” a jde ho používat opakovaně, nikam nemizí ani nemění svůj stav.

Systém nebyl ještě připraven na nějaké složitější akce, jako změna stavu předmětu (třeba že by se předmět “OSTRÝ MEČ” po nesprávném použití změnil na “TUPÝ MEČ”), nebo třeba objevení předmětu při prozkoumání něčeho.

Úspěšné dohrání hry není definováno, plánoval jsem to tak, že dohrání je vlastně jedna ze smrtí, dokonce z definice je možné udělat to tak, že hra jde dohrát jen když hráč NEPOUŽIJE určitý předmět.

Třeba použij BALÓNEK v místnosti 15 (zbrojnice) s hláškou “BALÓNEK SE VZNESL, ALE O BLÍZKÉ KOPÍ PRASKL. RÁNA VYDĚSILA BOHY!”, jinak smrt v místnosti 16 (chrám) s hláškou “BOHOVÉ TĚ VZALI MEZI SEBE. GRATULUJI! ZÍSKAL JSI NESMRTELNOST A BOŽSKOU SÍLU!”

Jde to ovšem nadefinovat na použití předmětu, který se ve hře nevyskytuje, “smrt” (úspěšné dohrátí) se pak realizuje už pouhým dosažením cílové místnosti.

Matsoft to v Normal Life provedl jinak, “úspěšné dohrání” se provede vstupem do místnosti, ze které už není úniku.

Zdá se, že program končí asi na adrese 33857 a data hry začínají tedy někde od 33858.

Důležitou součástí je už zmíněný font, který je pod adresou 52000, od adresy 52000 je volné místo až do konce paměti, kde systém počítá s hudbou.

Hudbu je ale potřeba spustit před spuštěním hry, systém sám hudební rutinu zřejmě nevolá (alespoň ne ta nedokončená verze, která se dochovala).

Tedy jako všechny mé projekty – nápad dobrý, ale to provedení není dotaženo.

Do dokonalosti tedy ani zdaleka.

A teď ještě ke hře Normal Life, když už jsme z ní X-System Pro 1.0 vytáhli:

Ovládání, respektive slovník, vychází z už popsaných vlastností systému, ve kterém byla hra vytvořena.

Podařilo se mi nakreslit mapu (šipek si nevšímejte, použil jsem online program pro kreslení vývojových diagramů; rovněž chybí propojka místností Jugoslávských Partyzánů a Interbrigády).

Pro dohrání hry je potřeba:
použít pistoli v místnosti s žebrákem (zelenina) – dokud to není hotovo, vyhýbat se místnosti BIS
použít řvoucí dítě v místnosti s matkou (Interbrigády)
použít švába v místnosti se švábem (ruská škola)
použít muchomůrku v místnosti se Standou Devátým (BIS)
použít nezávislačku v místnosti s nezávislačkou (Arcus)
použít kondom v místnosti s Civínovou (ředitelna)
použít úchyla v místnosti s mgr.Doležalovou (Arcus 2.A)
ne nutně v tomto pořadí a pak dojít do testovací místnosti (testovací místnost).

Návod k (nedochované) hře Normal Life 2 pak vyšel v ZX Magazínu 3-4/1999.