Üdv,
Az 50 fps játékok a szokásos ok miatt nincsenek, egyszerűen lassú a Z80-as processzor hozzá.
A játékokban 2 megoldással állítható elő a kép, ha nincs semmilyen hardver layout vagy sprite:
1; Közvetlenül a videómemóriában történő műveletek.
Gyors rajzolási lehetőség, de ez csak akkor járható, ha nincs háttér vagy térbeli egymáson megjelenése az objektumoknak. Ha ezeknek még megfelelne (ami szinte kizárt), akkor is a "havazás" effektus szinte kikerülhetetlen.
2; Puffer használata
Itt jön képbe a Z80 lassúsága:
Ha a pufferben állítjuk elő a szükséges képet, ami így egy pillanat alatt tehető fel a képernyőre, így ott nem kell törölgetni, pixeles ütközést is könnyebb vizsgálni, akkor a puffer másolásának jelentős átviteli ideje van.
Ha például Spectrumnál maradva a teljes képet kellene frissíteni (azaz 6912 byte-ot), akkor még a leggyorsabban szervezett, teljesen speciális, trükkös puffer átmásolás sem képes a ~69000 T idő alatt átvinni a teljes képet.
Ezért volt szokás Spectrumon a képernyő 1 vagy 2 harmadát használni.
Enterprise-on persze az LPT tábla variálásáva lehet egy pillanat alatt átváltani a puffer-re, de gondoljunk arra is, hogy a puffert minden képösszeállítás előtt törölni kell (ami szintén idő), utána "rárajzolni", és még a játéknak ezernyi számítást (ütközés vizsgálatok, AI, egyéb objektumok mozgatása, stb.) is el kell végeznie az adott 1 képfrissítési ciklus alatt ahhoz, hogy 50 fps teljesíthető legyen.
Bőven elég a 12.5 fps is sokszor, főleg Spectrumnál, ahol még hangot is kell képezni. Ott már a 25 fps-es játékoknak is örülünk.
Hiába az Enterprise 4 Mhz-ja, a felbontásból és színekből adódóan csak úgy lehet 50 fps-es játékot írni, ha nagyon kicsi a képernyőrész, ahol zajlik a játék (ezt nem szeretjük) vagy kicsi a színfelbontás (akkor meg ez nem is igazi EP játék).
Lehet különben próbálkozni, de ha egyszer végigküzdesz egy akciójátékot, amit sebességhez optimalizálsz, hamar rájössz, hogy nagyon kicsi a Z80 teljesítménye, illetve rengeteg a számítási művelet. Ezért aztán a végletekig rövidítesz, trükközöl, de egy pont alá nem lehet lemenni. A függőleges LPT scroll technikai is csak annyit segít, hogy nem neked kell soronként feljebb vinni a képet, de ha két "sprite" pixelhelyes ütközését szeretnéd vizsgálni és ráadásul 8-10 objektum is mozog a képernyőn, akkor azt pufferben tudod elvégezni, ergo, azok törlése, rajzolgatása, ellenőrizgetése jelentős processzor idő, aminél 99 %, hogy kicsúszol az 1 képfrissítésből.
Természetesen előfordulhat, hogy egy játék teljesítheti az 50 fps-t (feladattól függ, ha egy emberkét kell a képernyő almákhoz rohangáltatni, akkor az simán belefér, de egy háttér előtt mozgó űrhajó (a szépség kedvéért helyenként átlátszó) és 6-8 ellenséges ufo plusz azok lövedékeinek folyamatos kezelése már nem), de a demok erre jobban alkalmasak.
Pgyuri