Spindizzy

Z PMD 85 Infoserver

Spindizzy

Spindizzy
Obrázok:Spindizzy_01.png
úvodný obrázok pri nahrávaní
Autor:Roman Bórik
Martin Bórik (úvodný obrázok)
Vývojár:RM-TEAM
Verzia:SPINDZ, 2013
(PMD 85-2A, PMD 85-3, Consul 2717)
Lokalizácia:angličtina
Žáner:logická hra
Download: pmd85emu_games_rm-team.zip

archív obsahuje verziu vo formáte súboru pásky PTP, ako aj image bootovateľnej diskety P32 pre MIKROS PMD 85 a diskety DZ8 pre CP/M Consul 2717.
Hra je na disku ako spustiteľný súbor
SPINDZ.COM a spúšťa sa priamo z Mikrosu zadaním príkazu SPINDZ.

informácie

Po objavení novej dimenzie, v ktorej sa nachádza neobyčajný svet visiaci v priestore, ste dostali úlohu preskúmať ho. Dostali ste na to zariadenie s názvom GERALD - Geographic Environmental Reconnaissance Land-mapping Device, ktoré obsahuje základnú mapu povrchu a vy musíte preskúmať každú oblasť nového sveta. Na prieskum máte obmedzený čas, ktorý sa predlžuje navštívením ďalšej ešte neobjavenej oblasti a zbieraním diamantov. Keďže nový svet visí v priestore, dávajte si veľký pozor na to, aby ste nevypadli do voľného priestoru. Vaše zariadenie bude síce obnovené a prenesené na posledne navštívenú lokáciu, stratíte však časť svojej energie vo forme času.

tipy

V hornej časti obrazovky je informačný panel, ktorý obsahuje:

  • zostávajúci Čas
  • počet Miestností (oblastí), ktoré je ešte treba navštíviť, zmapovať
  • počet zozbieraných Diamantov
  • aktivované Prepínače

V pravej dolnej časti obrazovky je Kompas, ktorý ukazuje stále na Sever a uľahčuje tak orientáciu pri zmene pohľadu.

V niektorých miestnostiach sa v ľavej dolnej časti obrazovky zobrazuje Stopa, ktorá je vodítkom, ktorý Prepínač je treba zapnúť, aby sa v danej miestnosti niečo zobrazilo, alebo skrylo. Občas je potrebné zapnúť naraz dva prepínače, avšak pozor na to, že niektoré prepínače vypínajú iné prepínače.

Na východ od úvodnej miestnosti hry je sekcia pre začiatočníkov. V tejto časti je odpočítavanie času pomalšie a tak je tu možné experimentovať a vyskúšať si niektoré "zákonitosti" hry.

A nakoniec:

  • je možné využívať Výťahy, tie je však potrebné niekedy zapnúť
  • vo Vode sa GERALD "utopí"
  • po Ľade sa GERALD kĺže, nemôže zmeniť smer a ani zabrzdiť
  • Trampolíny možno využiť na preskakovanie a dosiahnutie inak neprístupných miest

odpočítavanie času a obtiažnosť

Počiatočný čas je 100 jednotiek. Maximálny čas je 150 jednotiek.

  • navštívenie novej miestnosti - +8
  • zobratie diamantu - +10
  • normálne plynutie času - -1
  • brzdenie - -1
  • strata GERALDa - -5
  • stretnutie s nepriateľom - -2

Obtiažnosť:

  • HARD - normálne odpočítavanie času
  • MEDIUM - čas sa neodpočítava pri brzdení, čas môže byť väčší ako 150
  • EASY - čas sa vôbec neodpočítava ani nepripočítava

ovládanie

Hru možno ovládať voliteľnými klávesmi a joystickom. Joystick ovláda smery a zrýchlenie. Testovanie Joysticku sa aktivuje, ak sa hra spustí pomocou FIRE na Joysticku. Testovanie navolených klávesov však zostáva naďalej aktívne.

  • DOWN, UP, RIGHT, LEFT - pohyb GERALDa v danom smere
  • FIRE - zrýchľovanie GERALDa
  • FREEZE - zabrzdenie GERALDa na pevnom povrchu
  • PAUSE - pozastavenie hry
  • MAP - zobrazenie mapy
  • SCORE - zobrazenie aktuálneho stavu hry a typu obtiažnosti; možnosť uloženia a načítania aktuálneho stavu hry
  • GERALD SHAPE - zmena vzhľadu GERALDa - ihlan, guľa, gyroskop

Naviac možno pomocou klávesov K0 až K3 meniť pohľad.

  • K0 - otočenie pohľadu proti smeru hodinových ručičiek o 90°
  • K1 - otočenie pohľadu o 180°
  • K2 - otočenie do základného pohľadu
  • K3 - otočenie pohľadu v smere hodinových ručičiek o 90°

Klávesom STOP možno hru prerušiť.

uloženie a načítanie stavu hry

Z hlavnej obrazovky je možné načítať uložený stav hry a v samotnej hre po zobrazení SCORE je možné stav hry načítať aj uložiť. Uložené dáta obsahujú okrem samotného stavu hry aj typ obtiažnosti, zoznam navolených ovládacích klávesov a príznak o použití joysticku.

Uloženie stavu hry sa zapisuje do súboru, ktorého názov musí užívateľ zadať. Názov súboru môže mať 1 až 8 znakov. Na editáciu sa používajú tieto klávesy:

  • A až Z, 0 až 9 a pomlčka - pre samotné meno
  • <--- - zmazanie znaku pred kurzorom
  • CLR - zmazanie celého mena
  • EOL - potvrdenie zadaného mena
  • RCL - prerušenie vstupu

Súbor na magnetofónovej páske má vždy číslo 0 a typ #. Súbor na CP/M disku má vždy príponu SPD.

o vzniku...

Hra vznikla portovaním rovnomennej hry pre ZX Spectrum, ktorú vytvorili v roku 1986 Paul Shirley a Phil Churchyard z Electric Dreams.

Rozhodnutie, portovať hru Spindizzy zo ZX Spectra na PMD 85, bolo svojim spôsobom veľmi ambiciózne. Už pôvodný čistý kód má 34kB (síce vrátane grafiky, ale bez rôznych buffrov, ktoré ešte hra využíva), takže bolo veľmi pravdepodobné, že sa portovaný kód do základnej pamäti 32kB na PMD 85 asi nevôjde. To sa nakoniec aj potvrdilo, takže hra je iba pre PMD 85-2A, PMD 85-3 a Consul 2717, ktoré majú 64kB RAM a tak možnosť mať v oblasti 8000h až 0BFFFh nastránkovanú RAM.

Portovanie spočívalo v disassemblovaní pôvodného Z80 kódu a jeho prepise do i8080 inštrukcií. Vždy sa najprv určitá časť kódu analyzovala, okomentovala, následne sa prepísala do i8080 a testovala už na PMD 85. Niektoré časti kódu, hlavne algoritmy izometrického zobrazenia, či viditeľnosti objektov v priestore, neboli zo začiatku vôbec jasné a boli iba "hrubou silou" prepísané do i8080. Až neskôr po pochopení kódu ako celku sa dopisoval komentár.

Na PMD 85 je hra citeľne "lenivejšia", hlavne ak je v miestnosti okrem GERALDa viac objektov (diamanty, výťahy, nepriatelia). Avšak, proti PMD 85 hralo mnoho faktorov:

  • rýchlosť procesora: Z80@3,5MHz v ZX Spectre vs. i8080@2MHz v PMD 85
  • inštrukčná sada Z80 vs. i8080: V pôvodnom kóde sa využíva mnoho inštrukcií, ktoré i8080 nemá (indexové registre, 16 bitová aritmetika, rotácie a posuny), čo výsledný kód na PMD 85 predĺžilo a aj spomalilo.
  • grafika: Na ZX Spectre je celá scéna vyskladaná z "dlaždičiek" o veľkosti 16x8 bodov, teda 2x8=16 bytov na dlaždičku. Na PMD 85 je ale VideoRAM delená na šestice bodov vedľa seba, takže pôvodné grafické dáta nebolo možné priamo použiť. Preto bola grafika prekreslená a jedna dlaždička má na PMD 85 veľkosť 18x9 bodov, teda 3x9=27 bytov. Opäť v neprospech PMD 85...
  • aritmetika: Pôvodná 16 bitová aritmetika pre určenie pozície v scéne, či pohybu GERALDa používa obvyklé inštrukcie ADD, ADC a SBC a to vzhľadom na grafiku počítané "modulo 8". Na PMD 85 museli byť vzhľadom na grafiku vytvorené špeciálne rutiny pre počítanie "modulo 9" s aritmetikou, kde nižší byte 16 bitovej hodnoty je iba v rozsahu <0, 251>. Tieto rutiny nahrádzajú pôvodné jednoduché inštrukcie a trvajú samozrejme omnoho dlhšie.

Napriek vyššie uvedeným negatívnym faktorom je hra aj na PMD 85 hrateľná. Kód bol optimalizovaný na každom kroku, aby sa čo najviac zrýchlil. Naviac boli opravené tri zásadné chyby z pôvodného kódu.

Oproti pôvodnej verzii bola pridaná možnosť zvoliť si obtiažnosť, keďže hra je skutočne ťažká. Ďalšie uľahčenie hry je v podobe možnosti uložiť si rozohraný stav hry na kazetu alebo disk. A v neposlednom rade má verzia na PMD 85 aj prvý krát solídny úvodný obrázok, ktorý bol na ostatných platformách vždy iba jednoduchý "nadpis".

zdrojové kódy

Komentované zdrojové kódy pre prekladač AS, taktiež všetky dátové súbory, spolu s dávkovými skriptami, si môžte stiahnuť v balíčku pmd85emu_game-spindizzy-src.zip.

screenshoty

úvodné menu
úvodné menu
HELP obrazovka
HELP obrazovka
počiatočná miestnosť hry
počiatočná miestnosť hry
ďalšia z miestností
ďalšia z miestností
zobrazené SCORE hry
zobrazené SCORE hry
MAPA rozohranej hry
MAPA rozohranej hry