Spindizzy

Z PMD 85 Infoserver

(Rozdiel medzi revíziami)
Rombor (Diskusia | príspevky)
(Úpravy a pridaný ďalší odsek)
Rombor (Diskusia | príspevky)
(Doplnený text)
Riadok 16: Riadok 16:
== informácie ==
== informácie ==
-
Po objavení novej dimenzie, v ktorej sa nachádza neobyčajný svet vysiaci v priestore, ste dostali úlohu preskúmať ho. Dostali ste na to vozidlo 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 neobjavenej oblasti a zbieraním diamantov. Keďže nový svet visí v priestore, dávajte si veľký pozor na to, aby ste nespadli mimo. Vaše vozidlo bude síce obnovené a prenesené na posledne navštívenú lokáciu, stratíte však časť svojej energie vo forme času.
+
Po objavení novej dimenzie, v ktorej sa nachádza neobyčajný svet vysiaci 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 neobjavenej oblasti a zbieraním diamantov. Keďže nový svet visí v priestore, dávajte si veľký pozor na to, aby ste nespadli mimo. 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.
=== typy ===
=== typy ===
Riadok 34: Riadok 34:
A nakoniec:
A nakoniec:
* je možné využívať '''Výťahy''', tie je však niekedy potrebné zapnúť
* je možné využívať '''Výťahy''', tie je však niekedy potrebné zapnúť
-
* '''Ľad''' je klzký
+
* vo '''Vode''' sa GERALD "utopí"
 +
* po '''Ľade''' sa GERALD kĺže
* '''Trampolíny''' možno využiť na preskakovanie
* '''Trampolíny''' možno využiť na preskakovanie
Riadok 75: Riadok 76:
=== uloženie a načítanie stavu hry ===
=== 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é uložiť alebo načítať stav hry. 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.
+
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.
-
Hra je distribuovaná osobitne ako kazetová verzia (PTP) a ako CP/M disková verzia pre PMD 85 (P32) a pre Consul 2717 (DZ8). Odlišnosti sa teda týkajú iba "dialógu" pri samotnom ukladaní a načítavaní súboru so stavom hry.
+
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:
-
 
+
-
Uloženie stavu hry sa zapisuje do súboru o veľkosti 203 bytov, ktorého názov môže užívateľ zadať. Názov súboru môže mať 1 až 8 znakov. Ak si hra vyžiada zadanie mena, v dolnej časti obrazovky sa vypíše '''File name:''' a na editáciu sa používajú tieto klávesy:
+
* A až Z, 0 až 9 a pomlčka - pre samotné meno
* A až Z, 0 až 9 a pomlčka - pre samotné meno
* <--- - zmazanie znaku pred kurzorom
* <--- - zmazanie znaku pred kurzorom
Riadok 86: Riadok 85:
* RCL - prerušenie vstupu
* RCL - prerušenie vstupu
-
==== Magnetofón ====
+
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'''.
-
Súbor na magnetofónovej páske má vždy číslo '''0''', typ '''#''', začiatočnú adresu '''0''' a dĺžku '''202''' (v hlavičke je dĺžka o 1 menej ako skutočná).
+
== screenshoty ==
-
Pri ukladaní stavu hry sa po zadaní mena vypíše '''Start tape and then press any key.''' Po stlačení klávesu dôjde k uloženiu hry na pásku a následne sa vypíše '''Stop tape.'''
+
{| align="center"
 +
|-
 +
| [[Obrázok:Spindizzy_02.png|thumb|úvodné menu]]
 +
| [[Obrázok:Spindizzy_03.png|thumb|HELP obrazovka]]
 +
|-
 +
| valign="top" | [[Obrázok:Spindizzy_04.png|thumb|počiatočná miestnosť hry]]
 +
| valign="top" | [[Obrázok:Spindizzy_07.png|thumb|ďalšia z miestností]]
 +
|-
 +
| valign="top" | [[Obrázok:Spindizzy_06.png|thumb|zobrazené SCORE hry]]
 +
| valign="top" | [[Obrázok:Spindizzy_05.png|thumb|MAPA rozohranej hry]]
 +
|}
-
Pri načítavaní stavu hry sa po zadaní mena čaká na správny súbor. Keď sa podľa hlavičky súboru zistí, že sa nejedná o súbor so stavom hry, vypíše sa iba napr. '''Found: 00/? FILENAME''' a čaká sa na ďalšiu hlavičku súboru. Keď je súbor správny, vypíše sa napr. '''Loading: 00/# SCORE1''' a súbor sa nahraje do pamäti. Následne sa dáta stavu hry preveria a ak sa zistí, že nie sú v poriadku, vypíše sa '''File corrupted!'''. V opačnom prípade sa dáta spracujú, zobrazí sa aktuálna miestnosť podľa načítaneho stavu a opätovne sa zobrazí '''SCORE''' s aktuálnym stavom. Ak pri nahrávaní dôjde k chybe, vypíše sa '''Tape loading Error!'''. Nahrávanie je možné prerušiť klávesom '''STOP'''.
+
== o vzniku... ==
-
==== Disk ====
+
Hra vznikla portovaním rovnomennej hry pre ZX Spectrum, ktorú vytvoril v roku 1986 '''Paul Shirley''' a '''Phil Churchyard''' z '''Electric Dreams'''.
-
Súbor na CP/M disku má vždy príponu '''SPD'''. Uloženiu a načítaniu predchádza zadanie mena rovnako, ako pri kazetovej verzii. Súbor sa vždy zapisuje alebo ukladá na aktuálny disk, teda ten, z ktorého bola hra spustená.
+
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 (samozrejme, vrátane grafiky), 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 C2717, ktoré majú 64kB RAM a tak možnosť mať v oblasti 8000h až BFFFh rošírenú RAM.
-
Pri ukladaní sa súbor rovnakého mena automaticky prepisuje. Po načítaní súboru sa postupuje rovnako, ako pri kazetovej verzii. Všetky diskové chyby (nenájdený súbor, málo miesta disku atď.) sú hlásené jednotne ako '''Disk Error!''' Chyby vznikajúce na úrovni BDOSu, po ktorých sa nevracia riadenie do volaného programu, majú za následok návrat do CP/M a násilné prerušenie ukončenie hry.
+
Portovanie spočívalo v disassemblovaní pôvodného Z80 kódu a jeho prepis do i8080 inštrukcií. Vždy sa najprv určitá časť kódu analyzovala, okomentovala (ak bolo jednoznačne jasné, čo daná časť kódu robí; nie vždy to bolo úplne jasné), 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 pri pochopení kódu ako celku sa dopisoval komentár.
-
== o vzniku... ==
+
Na PMD 85 je hra citeľne "lenivejšia", avšak proti PMD 85 hralo mnoho faktorov:
 +
* rýchlosť procesora: i8080@2MHz v PMD 85 vs. Z80@3,5Mhz v ZX Spectre
 +
* 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ýsledý 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á aritmetika pre určenie pozície v scéne, či pohybu GERALDa používa obvyklé 16 bitové inštrukcie ADD, ADC a SBC. Na PMD 85 museli byť vytvorené špeciálne rutiny 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.
-
Hra vznikla podľa rovnomennej hry pre ZX Spectrum, ktorú vytvoril v roku 1986 '''Paul Shirley''' a '''Phil Churchyard''' z '''Electric Dreams'''.
+
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.
-
Portovanie hry...
+
Oproti pôvodnej verzii bola pridaná možnosť zvoliť si obtiažnosť, keďže hra je skutočne ťazká. Ďalšie uľahčenie hry je v podobe možnosti uložiť si rozohraný stav hry na kazetu alebo disk. A v neposednom rade má verzia na PMD 85 aj pekný úvodný obrázok, ktorý je na ZX Spectre iba ako jednoduchý "nadpis".
-
 
+
-
== screenshoty ==
+

Verzia zo dňa a času 19:12, 4. október 2013

Spindizzy

Spindizzy
Obrázok:Spindizzy_01.png
úvodný obrázok pri nahrávaní
Autor:RM-TEAM
Vývojár:RM-TEAM
Verzia:SPINDZ, 2013
(PMD 85-2A,3,C2717)
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.

informácie

Po objavení novej dimenzie, v ktorej sa nachádza neobyčajný svet vysiaci 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 neobjavenej oblasti a zbieraním diamantov. Keďže nový svet visí v priestore, dávajte si veľký pozor na to, aby ste nespadli mimo. 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.

typy

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
  • aktívované Prepínače

V pravej dolnej časti obrazovky je Kompas, ktorý ukazuje stále na Sever a uľahčuje 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 je sekcia pre začiatočníkov. V tejto časti je odpočítavanie času pomalšie a tak je tu možné expermentovať a vyskúšať si niektoré "zákonitosti" hry.

A nakoniec:

  • je možné využívať Výťahy, tie je však niekedy potrebné zapnúť
  • vo Vode sa GERALD "utopí"
  • po Ľade sa GERALD kĺže
  • Trampolíny možno využiť na preskakovanie

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
  • zobranie diamantu - +10
  • normálne plynutie času - -1
  • brzdenie - -1
  • strata GERALDa - -5
  • stretnutie s iným objektom - -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ávesami 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áves 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, typ obtiažnosti a možnosť uloženia a načítania aktuálneho stavu hry
  • GERALD SHAPE - zmena vzhľadu GERALDa - pyramída, 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.

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

o vzniku...

Hra vznikla portovaním rovnomennej hry pre ZX Spectrum, ktorú vytvoril 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 (samozrejme, vrátane grafiky), 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 C2717, ktoré majú 64kB RAM a tak možnosť mať v oblasti 8000h až BFFFh rošírenú RAM.

Portovanie spočívalo v disassemblovaní pôvodného Z80 kódu a jeho prepis do i8080 inštrukcií. Vždy sa najprv určitá časť kódu analyzovala, okomentovala (ak bolo jednoznačne jasné, čo daná časť kódu robí; nie vždy to bolo úplne jasné), 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 pri pochopení kódu ako celku sa dopisoval komentár.

Na PMD 85 je hra citeľne "lenivejšia", avšak proti PMD 85 hralo mnoho faktorov:

  • rýchlosť procesora: i8080@2MHz v PMD 85 vs. Z80@3,5Mhz v ZX Spectre
  • 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ýsledý 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á aritmetika pre určenie pozície v scéne, či pohybu GERALDa používa obvyklé 16 bitové inštrukcie ADD, ADC a SBC. Na PMD 85 museli byť vytvorené špeciálne rutiny 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 ťazká. Ďalšie uľahčenie hry je v podobe možnosti uložiť si rozohraný stav hry na kazetu alebo disk. A v neposednom rade má verzia na PMD 85 aj pekný úvodný obrázok, ktorý je na ZX Spectre iba ako jednoduchý "nadpis".