Frontier3 - Z-buffer flythrough demo
=====================================

Spusteni:
  - Rozbalit vsechny soubory do jedne slozky (musi zustat spolu:
    amiga_flythrough_demo_<cpu>, hull.model, station.model).
  - Podle sveho CPU spustit prislusny soubor, napr. na 060:
    "amiga_flythrough_demo_68060 station.model hull.model"
    (bez parametru to hleda DH1:station.model / DH1:hull.model - funguje
    jen pokud mate prave takhle pojmenovany disk; s parametry to funguje
    vzdy, kdekoliv soubory rozbalite).

Ukonceni:
  - Klik levym tlacitkem mysi, nebo klavesa Escape.
  - Po ukonceni se otevre okno "Frontier3 Report" se statistikami FPS
    za jednotlive okruhy kamery (zustava otevrene, dokud v nem
    nezmacknete klavesu). Behem letu bezi report i primo do konzole
    (kazdych 220 snimku = 2 okruhy), takze FPS jde sledovat prubezne,
    ne az na konci.

Co uvidite:
  - Stanice se pomalu otaci kolem vlastni osy (nakloneni 40 stupnu).
  - Mala oranzova lod (svetelny zdroj - "motory zapnute") pomalu obiha
    stanici, v OPACNEM smeru nez stanice rotuje.
  - Kamera rychle obleta cele okoli, ponoruje se blizko k rovine
    prstence stanice a zase stoupa, porad dokola.
  - Skutecne stinovani (smerove svetlo = ta oranzova lod) a skutecny
    Z-buffer (spravne prekryvani mezi lodi a stanici, vcetne castecneho
    prekryti).
  - FPS pocitadlo vpravo dole (zive, aktualizuje se za behu).

Co je jinak oproti drivejsi verzi (2026-09-20):
  - amiga_flythrough_demo_68060 uz NENI kompilovany jednotne -mcpu=68010
    (bezpecne, ale zbytecne konzervativni kod pro vsechno) - ted je to
    "smisene": core/fixmath a nacitani modelu bezi na bezpecnem 68010
    (behem hry se nepocitaji vubec, na FPS to nema vliv), vsechno ostatni
    (transformace, rasterizace, c2p) je prelozeno pro 68040 (realny 060
    plne podporuje vsechny adresni mody a instrukce 68020-68040, chybi mu
    jen 64bitove MULS.L/DIVS.L formy) - a rucne proverene rozborem
    vysledneho strojoveho kodu (disasm cele slinkovane binarky), ze uz se
    tam nikde tyhle nebezpecne instrukce nevyskytuji ani nepatrne (jedina
    zbyvajici "podezrela" mista jsou rucne psany c2p prevod, ktery
    nasobeni/deleni vubec nepouziva - overeno primo ve zdrojich).
  - Pridana rucne psana 68k asm vnitrni smycka pro Z-buffer rasterizaci
    (raster_pixel_68060.s) a odstranena zbytecna prepocitavana
    transformace kamery/objektu (drive se pocitala znovu pro kazdy vrchol
    kazdeho trojuhelniku, ted jen jednou za objekt za snimek - matematicky
    presne stejny vysledek, jen bez zbytecne prace navic).

Namerene FPS (FS-UAE 3.2.35, bezne nastaveni, bez cpu_speed=max - zkousel
jsem to i s tim, zadny rozdil):
  - 68030: ~14.4 fps
  - 68040: ~24-25 fps
  - 68060: ~13.5 fps

Ano, 68060 vychazi v FS-UAE HORE nez 68030, i kdyz je kod uplne bez
nebezpecnych instrukci a je overene rychlejsi na 68040. Nejpravdepodobnejsi
vysvetleni: samotne 68060 jadro v FS-UAE je znatelne min optimalizovane/
presne nez jeho 68020/030/040 jadra (dost bezna zkusenost v UAE komunite) -
ale bez testu na realnem 060 hardware se to od skutecne zbyvajici chyby v
kodu nedá se 100% jistotou odlisit. PROTO by bylo fajn dostat cislo z
realneho stroje - kdyz i tam vyjde 060 pomalejsi nez 030/040, je to jasny
dukaz problemu v emulatoru, ne v teto hre.

Pozadavky: AmigaOS 3.x, AGA (256 barev), 68020+ (testovano na
emulovanych 68030/68040/68060 pres FS-UAE).
