dgVoodoo V1.50 Beta2 - Ksztette DG, 2007
============================================

dv jra! Nem, a dgVoodoo nem tmadt fel, csak szptgettem rajta ezt-azt.
Sajnos ez mg mindig csak egy bta, mivel vannak ismert, kijavtand hibk,
s hinyz fejlesztsek a Vista-val kapcsolatosan.

s akkor most az ltalam mr rohadtul utlt szveg:

A dgVoodoo egy Glide Wrapper, amely a Glide 2.11 s Glide 2.43 API-nak egy
DirectX-et hasznl megvalstsa.
A dgVoodoo tmogatja a Windows-os s a DOS-os Glide-alkalmazsok futtatst,
illetve kpes a DOS-os programok szmra a VESA 2.0 interfszt emullni.

-----------------------------------------------------------------------------

   I. Kvetelmnyek
  II. A dgVoodoo 1.50-hez tartoz fjlok
 III. jdonsgok az 1.50-es verziban
  IV. A wrapper mkdse, hasznlata
   V. VESA-emulci
  VI. Telepts
 VII. DOS-os programok Windows Vista alatt (j!)
VIII. ltalnos tippek s megjegyzsek a dgVoodoo-hoz (frisstve!)
  IX. A DirectX7- s DirectX9-megjelent kzti klnbsgek
   X. Technikai megjegyzsek (ez a rsz tugorhat)
  XI. Felbonts belltsa
 XII. Kpernyments
XIII. A dgVoodooSetup hasznlata (GUI)
 XIV. A dgVoodooSetup hasznlata (Parancssoros)

-----------------------------------------------------------------------------

I. Kvetelmnyek
----------------

- Windows 95/98/Me/2000/XP/Vista windows-os alkalmazsokhoz
- Windows 95/98/Me/XP DOS-os alkalmazsokhoz
- DirectX 7.0 vagy jabb
- mi fontosat szoktak mg ide rni? mittomn...


====================================================================================
Ez csak egy Bta2!! Vedd ezt figyelembe, ha/amikor nem akar mkdni, vagy rosszabb
eredmnyt ad a korbbi verzikhoz kpest!!
A DX9 megjelentt mg mindig csak a kvetkezkn teszteltem:
          GeForce 5700 Ultra, Detonator 56.64
          ATI X600,           Catalyst 5.6
(Mg mindig nem ppen a legfrissebb drivereket hasznlom...)
====================================================================================

====================================================================================
FONTOS: A dgVoodoo nem biztos, hogy mkdik minden ATI Catalyst verzival, lehet,
        hogy a gp jraindul, amikor a wrappert VDD-mdban indtod egy Dos-os
        Glide-alkalmazssal. Szerver-mdban viszont mkdnie kell(ene).
        n 5.6-os Catalysttal (is) hasznlom brmifle gond nlkl, azonban kaptam
        visszajelzseket jraindulsokrl ugyanezzel a driverrel.
        pp ezrt azt kell mondanom: ezt az egsz szarsgot kizrlag csakis a sajt
        felelssgedre prbld ki!!!
====================================================================================


II. A dgVoodoo 1.50-hez tartoz fjlok
--------------------------------------

        glide.dll                 -    Glide 2.11 driver a Windows-os alkalmazsokhoz
        glide.ovl                 -    Glide 2.11 driver a DOS-os alkalmazsokhoz
                                       (lsd a megjegyzseket a tippek kztt s a wrapper hasznlatt)
        glide2x.dll               -    Glide 2.43 driver a Windows-os alkalmazsokhoz
        glide2x.ovl               -    Glide 2.43 driver a DOS-os alkalmazsokhoz
        dgVoodoo.exe              -    Glide szerverprocessz a DOS-os alkalmazsokhoz
        dgVoodoo.vxd              -    Kernelmodul a DOS-os alkalmazsokhoz (csak Win9x/Me-hez)
        dgVesa.com                -    VESA 2.0 driver DOS-os programokhoz
        dgVoodooSetup.exe         -    Konfigurlprogram
        readme_eng.txt            -    dgVoodoo lersa, angol vltozat
        readme_hun.txt            -    dgVoodoo lersa, magyar vltozat


III. jdonsgok az 1.50 Beta2 verziban
---------------------------------------

    - Textramemria sklzhatsga 4MB-ra. Csak a Red Baron 3D-hez.
      Az tlet s az implementcis technika GabiLaser! Thanxx GabiLaser!!!

      s most, hogy rom a rdmt, jut eszembe, hogy a begrt "Ignore Palette changes"
      funkcit elfelejtettem bepteni...  De most mr ks, hehehe...

    - Paletts textrk hardveres jragenerlsa a DirectX9-es megjelentvel, ha a
      videkrtya tmogat bizonyos textraformtumokat (a mainstream krtyk tmogatjk...)

    - A DirectX9-es megjelentvel elbukkan s villog desktop-elemek, egyb szarsgok elvileg
      kikszblve.

    - VESA-emu: a wrapper nem ragaszkodik foggal-krmmel ahhoz a felbontshoz s sznmlysghez,
      ami a hasznland VESA-md paramtereibl jn. Ha az adott zemmdot a videodriver nem
      tmogatja, akkor megkeresi a hozz legkzelebb allt, s azt hasznlja, szksg esetn
      konvertlva a sznformtumot s sklzva a kpet (hasonlan az ablakos mdhoz).
      Mindez igaz a frisstsi frekvencira is, a setup-ban a VESA-tabon megadott frekvencihoz
      legkzelebb es tmogatott frekvencit hasznlja. Mindezt azrt csinltam, mert egyszer
      Vista alatt szvtam, amikor kiderlt, hogy a videdriver azt hazudja, hogy 640x480-nl kisebb
      felbontst nem tmogat.
      A korbbi verzik ezeket nem tmogattk, s mindig 60Hz-cel hajtottk meg a monitort.
      Az egyetlen kivtel a 8 bit-es zemmdok 32 biten trtn kezelse volt, minthogy a DirectX9
      ilyen skvlet dolgokat nem tmogat.

    - Asszem kb. ennyi, nha mintha mg nyltam volna valamit a dgVoodoo-hoz, de azok mr annyira
      rgen voltak, hogy nem emlkszek konkrtumokra + legurult pr sr is azta...


IV. A wrapper mkdse, hasznlata
----------------------------------

A rgi, 3Dfx videkrtykat a Glide nev API-n keresztl lehetett meghajtani.
A Glide-nak tbb verzija is ltezett, ahogy folyamatosan fejldtt, s szmos
platformon voltak driverei. A dgVoodoo szempontjbl a kt fontos s tmogatott
platform a DOS s a Windows, a kt legfontosabb Glide verzi pedig a 2.11 s a 2.43.
Maga a driver egy library volt, amit vagy statikusan vagy dinamikusan csatolt
maghoz egy Glide-ot hasznl program.

    - DOS,      Glide 2.11, driver: statikusan linkelt lib
    - DOS,      Glide 2.43, driver: glide2x.ovl
    - Windows,  Glide 2.11, driver: glide.dll
    - Windows,  Glide 2.43, driver: glide2x.dll

Az egyes fenti platformok alatt teht a Glide-os programokhoz elg volt a megadott
fjlt mellkelni (kivve, ha maga a driver nem ignyelt tovbbi fjlokat), s a
program mr mkdtt is. A glide wrapperek, s gy a dgVoodoo is, "mindssze" annyit
csinlnak, hogy a fenti emltett fjl(oka)t lecserlik olyan(ok)nal, amely(ek)
ugyangy megvalstjk a Glide API-t, de az egyes API-hvsokat talaktjk (wrappelik)
OpenGL vagy DirectX-hvsokk, gy ezen programok futtatshoz nincs szksg valdi
3Dfx-krtyra.

DOS esetn mindezt nem lehet kzvetlen mdon elintzni, mivel DOS alatt nincs s nem
is volt soha sem OpenGL, sem DirectX, gy a dgVoodoo DOS-os drivernek szksge van
a Windows-os driverre is. A DOS-os driver feladata, hogy hidat kpezzen a DOS-os program
s a Windows kztt, minden hvst tovbbdob DOS-bl Windows-ba.
A DOS-bl Windows-ba trtn kommunikcit a dgVoodoo ktfle mdon tudja megoldani:

    - VDD-md: Mindenfle szempontbl (technikai, knyelmi, stb.) ez a preferlt md.
               Ilyenkor a DOS-os driver teljesen automatikusan "betlti" a Windows-os
               drivert, s hasznlja azt. Ez a md csakis WinXP alatt hasznlhat.

    - Szerver-md:
               Ebben az esetben elindtunk egy szerverprogramot, ami maghoz csatolja a
               Windows-os drivert, s a DOS-os driver magval a szerverrel kommunikl.
               WinXP alatt maga az opercis rendszer tmogatja a DOS-bl Windows-ba
               trtn kommunikcit, Win9x/Me alatt azonban nem, ezrt ott ezt is a
               wrappernek kell megoldania (ezrt jn be a kpbe a dgVoodoo.vxd fjl).

A wrapper hasznlata teht:

Windows esetn a megfelel fjlok bemsolsa s az esetleges setup (dgVoodooSetup)
utn az adott program minden tovbbi nlkl indthat.

DOS esetn a megfelel fjlok bemsolsa s wrapper VDD-mdra val konfigurlsa utn
az adott program minden tovbbi nlkl indthat.

DOS esetn a megfelel fjlok bemsolsa s wrapper Szerver-mdra val konfigurlsa utn
el kell indtanunk a szerverprocesszt (dgVoodoo.exe), s ez utn az adott program futtathat.

A DOS-os programokat a httrben is tudjuk futtatni, ezzel azonban vigyznunk kell,
mert bizonyos helyzetekben (amikor a cooperative level nem megfelel, pl. ha egy
jtkot teljes kpernyn futtatunk, de tkapcsolunk egy msik alkalmazsra) a
wrapper bizonyos Glide-fggvnyeket nem kpes vgrehajtani, gy azok hibval trnek
vissza. Ennek kvetkezmnye lehet, hogy a jtk ezt szlelve kilp, stb.


V. VESA-emulci
----------------

A dgVoodoo kpes a DOS-os programok szmra egy 2.0-s VESA-interfszt emullni,
kisebb-nagyobb hibkkal (na j, valsznleg inkbb nagyobbakkal, a hall se
tesztelte ezt tl sok mindennel).
A VESA-emulci a Glide-emuhoz hasonlan szintn vagy VDD- vagy szerver-mdban
hasznlhat, st, mindehhez a glide2x.dll fjlra van szksge, azaz a VESA-emu
kdja a 2.43-as Glide-driverbe van beptve (kivve Win9x/Me alatt, mert ott
amit csak lehet, a kernelmodul (dgVoodoo.vxd) kzvetlenl megvalst, s csak a
legszksgesebb dolgok hvdnak a dll-bl, pl. kprfrissts a DirectDraw-n keresztl).

[Tudom, hogy itt illett volna az implementcit kipakolni pl. egy dgVesa.dll-be,
 de a visszajelzsek alapjn sok embernek az (is) a baja, hogy a dgVoodoo tl sok
 fjlbl ll, nem tudjk, mire valk. OK, gondoltam, akkor nem tklk vele, az
 integrls az n dolgomat is megknnytette a VESA-Glide kzti zemmd-vltogatsokat
 illeten. Taln majd gy 2010 magassgban rendbeszedem logikailag is, amikor
 ezen wrapper DOS-os rsze mr nemcsak a gyakorlatban, hanem elmletben is hasznlhatatlan
 lesz, minthogy a 64 bites Windows nem tmogatja 16 bites kdok futtatst.]


A dgVoodoo VESA-emu tmogatja az sszes felbontst 320 x 200-tl 1280 x 1024-ig
8, 16 s 32 bites sznmlysgben. A 320 x 200 x 256color egy standard VGA-md,
amelyet kln engedlyezhetnk.
A VESA-ra klnbz paramtereket adhatunk meg, lsd setup.

A VESA-emu hasznlathoz szksges a DOS-os driver, a dgVesa elindtsa.
Win9x/Me alatt, amikor a szerver fut, s az emu engedlyezve van, minden
jonnan megnyitott DOS-ablakba automatikusan installlja a DOS-drivert, gy
ott ebben az esetben szksgtelen a dgVesa hasznlata.
(A VESA-emu DOS-drivere a Glide DOS-driverhez hasonlan, csak a DOS-Windows
kzti kapcsolattartsra kell.)


VI. Telepts
-------------

Fontos: Ha a gpen megvan az elz verzi, akkor minden komponenst rj fell az
        jakkal, ne keverd ket a rgiekkel vagy ms szoftverbl szrmaz,
        megegyez nev fjlokkal!

Globlis telepts: a megfelel fjlokat a Windows-knyvtrba msold
Loklis telepts:  a megfelel fjlokat az adott alkalmazs/jtk knyvtrba msold


Telepts Windows-alkalmazsokhoz
.................................

    Az albbi fjlokat msold a megfelel helyre, attl fggen, hogy loklis vagy
    globlis mdon akarod a wrappert hasznlni:
        GLIDE2X.DLL
        GLIDE.DLL           (ha Glide2.11-tmogatsra is szksged van, br ez esetben
                             tancsos inkbb loklis teleptst vgezni!)
        DGVOODOOSETUP.EXE

    Ezek utn az alkalmazs minden tovbbi nlkl indthat (na j, esetleg mg
    konfigurlhatsz egyet, ha kell, ld. a setup hasznlatnl).



Telepts DOS-alkalmazsokhoz
.............................

    Az albbi fjlokat msold a megfelel helyre, attl fggen, hogy loklis vagy
    globlis mdon akarod a wrappert hasznlni:
        GLIDE2X.DLL
        GLIDE2X.OVL
        DGVOODOOSETUP.EXE
        DGVOODOO.EXE
        DGVOODOO.VXD        (ez a fjl csakis Win9x/Me alatt szksges, XP alatt
                             nem fog a wrappernek hinyozni)
        DGVESA.COM          (ha VESA-tmogatsra is szksged van)


VII. DOS-os programok Windows Vista alatt
-----------------------------------------

Sajnos a dgVoodoo nem teljesen kompatibilis mg vele, van pr knyelmetlensg, amit
nem volt kedvem eddig kikszblni.

A dgVoodoo elmletileg hasznlhat, de csak 32 bites Vistval
(mint ahogy csak 32 bites XP-vel), errl egyszer lmnybeszmoltam a Vogons-on:

A kt f szvs XP-hez kpest a kvetkez:
       - A Vista csak a Windows\System32-bl hajland VDD-t betlteni, gondolom
         valami security-baromsg miatt. A lnyeg, hogy a Glide2x.dll-t mindig ide
         kell bemsolni, ha DOS-os cuccot akarunk hasznlni. St, fontos, hogy az
         adott jtk knyvtrban NE legyen semmilyen Glide2x.dll, mert akkor a DOS-os
         driver nagy rmmel az arcn szreveszi, hogy ott vala egy, s aszondja a
         Windows-nak, hogy konkrtan azt a pldnyt tltse be VDD-knt. Erre a Vista
         visszazeni, hogy na ne durvuljunk m'.
         (Na pl. ezt kellene mg megfejleszteni, + hogy a setup a system32-ben is
          keressen.)
         Egybknt hasonl a helyzet a VDMSound-dal is, a vddloader.dll-t be kell
         msolni a System32-be, s mris gynyren mkdik.

       - Ha a desktop composition (Aero fellet) engedlyezve van, azaz a Vista az j
         WDDM-drivermodellel hajta a krtyt, akkor semmifle teljeskpernys mdba
         nem tudunk vltani (kivve persze DirectX-en keresztl), mivelhogy ez a
         drivermodel nem tmogat ilyet. Azaz, nincs teljes kpernys szveges md,
         VGA-md, stb., ehelyett feldob egy zenetet, hogy 'Ez a rendszer nem tmogat
         teljes kpernys zemmdot'. Aztn szoks szerint vagy elutasthatjuk a dolgot,
         vagy bezrhatjuk a renitens mitkpzelmagrl programot, s az tlagjzer be
         is zrja, mert rthet mdon fogalma sincs, hogy mirl van sz.
         A lnyeg, hogy Vista alatt knytelen vagy hasznlni a dgVest VGA-emuval,
         ami DirectX-en keresztl megkerli a dolgot, mert nincs ms t!!

Nem mondom, hogy tl sokat teszteltem volna ezgyben, de azrt a fentiek alapjn
sikerlt futtatnom a Tomb Raider 1-et.


VIII. ltalnos tippek s megjegyzsek a dgVoodoo-hoz
-----------------------------------------------------

- A textramemria sklzsa azt jelenti, hogy az alkalmazs fel 4MB-ot mutat,
  de a valsgban annyit hasznl, amennyit belltunk a setup-ban. Ennek alapveten
  semmi rtelme, ez kifejezetten a Red Baron 3D-hez kszlt, abban ugyanis van egy
  hiba, textrakorrupci lp fel, ha a memria nagyobb 4MB-nl.
  Semmi mshoz ne hasznld!!!!
  A korrekt mkdshez az is kell, hogy az alkalmazs teljesen rbzza a textrk
  mreteinek a szmolst a wrapperre, ugyanis azok is sklzdnak!! Ha az
  alkalmazs sajt maga is szmolgat mreteket, akkor az nem lesz sszhangban
  a sklzott memrival, s textrakorrupci lp fel, ezrt kifejezetten a
  Red Baron 3D-vel hasznland!!! (Az jl viselkedik.)

- Ha engedlyezzk a paletts textrk hardveres jragenerlst, akkor kicsivel
  tbb vidememrit zabl a wrapper, szerencsre csakis annyival tbbet,
  amennyi minimlisan szksges. Az egsznek csak olyan alkalmazsok esetn
  van rtelme, amelyek a textrk palettinak folyamatos s gyakori vltoztatgatsval
  leizzasztjk a wrappert. Ilyen pl. a Blood, Red Baron 3D. Azonban pl. a
  Tomb Raider 1-hez semmi rtelme, ott a textrk elg statikusak, csak tbb
  vidememrit pocskolunk el feleslegesen.
  Egy hlye korlt van: ha menedzselt textrkat hasznlsz, akkor a hw-es
  jragenerls nem hasznlhat. Ne krdezd, mirt, technikailag viszonylag nehezen
  lett volna megoldhat.

- A videokrtya drivert NE knyszertsd FSAA (akrhnyszoros Full Screen AntiAliasing)
  alkalmazsra valamelyik setup-dialgjn keresztl, ha a dgVoodoo-t hasznlod!!
  Vagy, csinlj hozz egy kln profil-t (ha van r md), amelyben az FSAA
  alkalmazsvezreltre van lltva. FSAA esetn az adott buffert nem lehet zrolni,
  s kzvetlenl rni, mrpedig ez Glide-alkalmazsoknl nem szokatlan dolog.
  De ez vagy ltvnybeli hibkhoz vezet, vagy a hiba miatt abortl az alkalmazs,
  stb., kifel gy fog ltszdni, hogy a wrapper hibs. Pedig nem. Hehehehe....

- Nincsenek varzsbelltsok, azaz ha a dgVoodoo egyltaln nem mkdik az
  alapbelltsokkal, akkor valsznleg mssal sem fog (az egyetlen kivtel taln
  a VDD- s szerver-zemmd)

- NE hasznld a szervert (dgVoodoo.exe) kompatibilitsi mdban (WinXP)!!!!
  Ez megzavarja az opercis rendszer tpusnak detektlst, gy pl. azt fogja
  hinni, hogy Win98 alatt fut.

- Amikor villog a kperny, prbld a wrappert a "kzelebb az igazi hardver"
  engedlyezsvel hasznlni. A villogs akkor fordul el, amikor egy jtk
  nem vrt mdon viselkedik, mikzben a wrapper az LFB-t a legoptimlisabb
  mdon zrolja (legvalsznbb eset a 16 bites teljes kperny).

- Ha elindtasz egy DOS-jtkot, majd megjelenik a glide-ablak, aztn semmi
  sem trtnik, prbld a cuccot nem elrejtett konzolablakkal futtatni. Lehet,
  hogy a jtk egy hibazenettel kilpett, de ezt nem veszed szre, mert a
  konzolablak el van rejtve.

- Ha a legfinomabb animcit akarod elrni, prbld a frisstsi frekvencit
  az alkalmazs ltal ignyelthez legkzelebbire lltani (ld. setup)

- A mipmap-ek automatikus generlsa komoly mtermkeket idzhet el a ltvnyban,
  ezrt ltalban vve nem ajnlott a hasznlata. A mipmap egyes szintjei az eredeti
  textra jramintavtelezsvel vannak ellltva, emiatt az alakzatok krli
  colorkey szn pixelek elromlanak (colorkeying esetn gondot okoz),
  alfa-csatorns textrk esetn pedig a pixelek alfja mdosulhat gy, hogy az
  mr nem felel meg egy alpha-testinget hasznl programhoz.
  Radsul ha egy program folyamatosan frisstget textrkat, akkor a sebessg az
  sszes szint lland kiszmolgatsa miatt lecskkenhet.

- Nhny programot anno gy rtak meg (a specifikcitl eltren), hogy kihasznlja
  egy valdi Voodoo-krtya tulajdonsgait mikzben az LFB-t zrolja. (Ilyen pl. az
  Extreme Assault Demo). Ha furcsn "elcsszott" pixel-sorokat, vagy hasonl jelensget
  tapasztalsz, prbld meg a wrapper "kzelebb az igazi hardver" opcijt belltani.
  Ez a tbbi programnl sem okoz mkdsbeli zavart, de azoknl nem rdemes alkalmazni,
  mert lassabb puffertartalom trolst (cache-elst) tesz lehetv, s tbb memrit
  is eszik.
  Megjegyzs: Glide 2.11 esetn ez a mkdsi md automatikusan engedlyezve
  van azrt, hogy a Voodoo1-gyel kompatiblis LFB-kezelst kapjunk.

- DOS esetn a wrapper Glide-mdban jrulkos idztmegszaktsokat generl, emiatt
  az egyes jtkok gyorsabbak lehetnek a norml sebessgnl. Ez eredetileg amiatt lett
  bevezetve, mert a 3D megjelents sok idt elvihetett a DOS-tl, s ez alatt bizonyos
  megszaktsok elvesztek, lassult az adott jtk menete (mint a lasstott felvtel).
  Azta viszont javtottam valamit az egyes szlak kzti egyttmkdsen, s lehet, hogy
  ez a problma mr nem ll fenn.
  A korbbi verzik minden 15ms utn generltak egy megszaktst, ez a verzi minden 80ms
  utn teszi ezt alapesetben (az 1.40+ verziban vltozott 80ms-re az 1.40 40ms-rl).
  Ez a peridusid minden elz verziban rejtett opci volt. Mivel a jtkok gyorsabbak
  lehetnek a norml sebessgnl, ezrt a setup-ban kikapcsolhatod az idzt-gyorstst, vagy
  visszallthatod a mr emltett 80ms-ra. (Ez egy korltozott vlasztsi lehetsg, mivel
  ms rtkekre is be lehetne lltani, de egyltaln nem rlk annak, hogy ezt az opcit
  egyltaln kivezettem.)

- Az 2.11-es Glide library-t sajnos statikusan szerkesztettk a DOS-os programokhoz
  (legalbbis a Glide 2.11 SDK szerint). A glide.ovl csak dinamikus esetben lenne
  hasznlhat, ezrt nem mellkeltem ezt a fjlt.

- Fkusz-problma (Win9x/Me):

  Ha szerverproc elveszti a fkuszt, akkor az adott DOS-program futst felfggeszti.
  Ha visszakapja, akkor felbreszti. Vannak esetek, amikor a szerverproc visszakapja
  a fkuszt, de a Windows ezt nem kzli vele (vagy csak n kdoltam szarul). Ilyenkor a
  program sem fut. Ebben az esetben neknk kell inaktivlni, majd jraaktivlni a szerver
  ablakt. Teljes kpernyn ezt gy is megtehetjk, hogy a lthatatlan egrkurzort
  elvisszk a kp szlre s az ablakot elkezdjk tmretezni (csak akkor, amikor az
  egrfkusz nem a DOS-ablaknl van).

  Bizonyos esetekben bosszant lehet, hogy az egrfkusz a DOS-ablaknl van, pldul
  akkor, ha ablakban futtatjuk a programot, s azt t akarjuk mretezni. Ezt nem tudjuk
  megtenni (legalbbis nem tl egyszeren), ezrt bevezettem, hogy a Ctrl-Alt kombincira
  az egrfkuszt engedje el a DOS-os program. Ha az ablakra kattintunk, akkor ismt
  visszakapja.


IX. A DirectX7- s DirectX9-megjelent kzti klnbsgek
---------------------------------------------------------

Az ember elsre azt gondoln, hogy a 9-es mindenkppen jobb. ltalban nzve taln gy is
van, de sajnos a 7-esnek van nhny elnye, amit a MS volt szves kidobni vagy megvltoztatni
a ksbbi interfszeken (pl. a teljes DirectDraw vasvillval val kiganajozsa a 8-astl kezdve,
s a teli torokbl srk szmra egy-kt megmaradt hscafat raggatsa a 3d-interfszekre).

A DirectX9-es megjelenthz legalbb DirectX 9.0c installlsa szksges, ennl korbbi
verzikkal az API-t elrhetetlennek fogja rzkelni!!

A DirectX9 elnyei:

    - Pixel shaderek. A 9-es megjelent 1.4-es pixel shadereket hasznl a teljes 3dfx pipeline
      emulcijhoz. Ez nagyobb bels pontossgot (megszabadulunk a fixed function-ben meglv,
      stage-ek kztti szaturcitl) s a 3dfx pipeline majdnem tkletes emullst jelenti
      (texture combine -> chroma keying -> alphaControlITRgbLingthing -> alpha/color combine).
      Az FF shaderek erre kzel sem kpesek. Legalbb 1.4-es shaderek pedig a chroma keying miatt
      kellenek, ennl korbbi verzikkal nem lehetne megoldani. Ha a krtyd ezt nem tmogatja,
      akkor a 9-es renderer mg mindig mkdik FF shaderekkel is, m ez esetben inkbb a 7-es
      megjelentt hasznld (ld a htrnyokat). A GeForce FX szria, s kb. a Radeon 8500-as mr
      mind tmogatjk az 1.4-es shadereket.

    - Az alfa alap colorkeying az alpha testingtl s blendingtl teljesen fggetlen, nem akad ssze
      semmivel, gy minden krlmnyek kztt hasznlhat. A natv ck pedig egy jl definilt
      mdon mkdik, nem a driveren mlik a vgeredmny.

    - Vertex- s indexpufferek hatkonyabb alkalmazsa. A 9-eshez a hardveres vertexpufferek hasznlata
      (amely az indexpuffereket is magban foglalja) kifejezetten ajnlott, szebben mkdik, mint a
      7-esben (st, a tapasztalatok alapjn a 7-essel inkbb nem is szabad hasznlni).
      Ez valsznleg a DirectX ltal belsleg kezelt buffer renaming-nek ksznhet, ami
      tulajdonkppen egy az alkalmazs fel tltsz duplapuffer-technika, a 7-esben ilyesmi nincs, s
      a wrapper sem csinl sajt maga ilyesmit.

A DirectX9 htrnyai:

    - A Fixed Function shader megvalsts (amely a jvbeli verzikban valsznleg mr nem lesz
      benne, hiszen erre ott a 7-es) nem kpes a chroma keying-et natv mdon emullni.
      Ez sajnos mg a textracsempzses Lfb-elrsre is hatssal van, ezrt a 9-es FF a legtbb esetben
      hasznlhatatlannak bizonyulhat. Ezrt javasolt a rgi krtykhoz inkbb a 7-es renderer.

    - Az Lfb-elrs a legtbb esetben textracsempzssel trtnik nemalaprtelmezett felbontsoknl,
      mivel a Direct3D9 csak egy egyszer buffer-blittelst tmogat.

    - A front buffer elrhetetlen. A legtbb alkalmazs szmra ez tkmindegy. Viszont, hogy legalbb
      a lehetsg meglegyen vszhelyzetek esetre, a 9-es megjelent tkapcsolhat egy msik
      zemmdba, ahol a renderbuffer-lncot sajt maga tartja nyilvn, s az egyes pufferek kztt
      mindig msol, s gy mr a front buffer is elrhet. Ez azonban kicsit ront a teljestmnyen, ezrt
      vezettem ki vlaszthat opcinak. (Ennek az egsznek egybknt van egy kellemetlen mellkhatsa:
      amikor a front buffer elrhetetlen, pillanatkpeket sem tudunk menteni, hiszen az is ennek a
      tartalmt menten le...)

    - Teljes kperny esetn a buffervltsok kzti idtartamot nem lehet vltsonknt megadni,
      csak inicializlskor (azaz, hogy szinkronizlja-e magt a fggleges visszafutshoz, vagy azonnal
      vltson t). Emiatt alapbl mindig kivr egy fggleges visszafutst, de itt is van egy opci az
      azonnali vltsos zemmdhoz azokhoz az alkalmazsokhoz, amelyek ezt ignylik.

    - Paletts textrk tmogatsnak hinya. Br a GeForce-ok az FX-szrival bezrlag hardverbl
      tmogatjk, a driver a 9-es interfszen keresztl nem hajland ezt kivezetni valamilyen oknl fogva
      (tippeim ppen vannak...), ezrt ezt a rszt a 9-es megjelentben nem is tudtam volna letesztelni.
      Mivel nem akartam a wrapperben eleve halott s teszteletlen kdot hagyni, ezrt a 9-es megjelent
      mindig letiltja a paletts textrk hasznlatt fggetlenl a krtya kpessgeitl.
      
    - A teljes kpernys, 8 bites VESA mdokhoz mindig 32 bites kpernymdokat hasznl. A D3D9 teljesen a
      3D-rl szl, emiatt 8 bites mdokkal mr egyltaln nem is lehet mkdtetni.


Colorkeying DirectX7-tel:

    - Natv: ltalnos colorkeying mdszer, amely a videkrtya natv
             colorkeying kpessgt hasznlja

    - Natv TNT-hez:
            Ez egy specilis mdszer a TNT-krtykhoz
            (ezen krtyk egy alfa alap elgondols szerint
             valstjk meg a colorkeyinget, egy-kt tbblet-
             belltssal jr, s nem is mindig mkdik).

    - Alfa alap:
            ltalnos colorkeying mdszer, amely alpha-testinget s
            maszk-textrkat hasznl

    - Automatikus:
            Alapesetben mindig alfa-alap colorkeyinget prbl hasznlni,
            de ha ez valami miatt nem megy (nincs elg vidememria, vagy
            az alfa alap mdszer megszortsai miatt), akkor visszaesik
            natv colorkeyingre.

    Az alfa-alap mdszer ltal adott eredmny ll a legkzelebb egy igazi
    3Dfx-krtya colorkeying-ezshez, az automatikus mdszer ezrt erlteti
    mindig ezt. Ezen mdszernek htrnya azonban, hogy nem tud colorkeyinget
    biztostani, ha az alpha-testing specilis mdokban engedlyezve van, s
    rossz eredmnyt is adhat bizonyos alpha-blending mdok esetn.


Colorkeying DirectX9-cel:

    - Natv: Csak pixel shaderekkel hasznlhat, a 3Dfx dokumentciiban
             tallhat definci szerint mkdik.

    - Natv TNT-hez:
             Ez itt egy rtelmetlen opci, hatsa ezrt a natvval ekvivalens.

    - Alfa alap:
             Klnll maszk-textrk alpha komponensei alapjn dob el pixeleket,
             hasonlan, mint a 7-esben, de itt ez a funkcionalits az alpha testingbl a
             pixel shaderekbe kerlt (FF shaderek esetn persze nem).

    - Automatikus:
             Alapesetben a natv mdszert rszesti elnyben, mivel az itt mr megfelel a
             kvetelmnyeknek, s csak bizonyos krlmnyek kztt hasznl alfa alapt.
             A natvval egy baj van: ha egy textra-konverzi miatt pontossgveszts lp
             fel (pl. amikor 16 bites textrkat knyszertesz a setupban, akkor a 8 bites
             paletts 3dfx textrkat is arra konvertlja, azaz a 32 bites sznrtkeket
             knytelen lecsonkolni), akkor nemcsak a colorkey szn pixeleket szri ki,
             hanem a colorkey krli kis szntartomnyban levket is. Az automatikus
             mdszer ppen az ilyen s hasonl eseteket prblja elkerlni.
             FF shaderek esetn mindig az alfa alapt hasznlja.

    FF shaderekre ugyanazok a megszortsok rvnyesek, mint a 7-esben.     


X. Technikai megjegyzsek (ez a rsz tugorhat)
------------------------------------------------

Glide LFB kezels
.................

    - A "kzelebb az igazi hardver" opci automatikusan engedlyezve van, amikor
      Glide 2.11-et hasznlsz, hogy meglegyen a kompatibilits a Voodoo1-gyel. Ez azt
      jelenti, hogy a stride (azaz pitch vagy logikai sorhossz) az LFB mveletekhez
      mindig 2048 bjt, s az rsi/olvassi pointerek a pufferekhez "llandak" egy adott
      formtum esetn.

    - Egy bizonyos rejtett opci, a "Nincsenek egyez LFB-formtumok" szintn automatikusan
      engedlyezve van Glide 2.11 esetn, hogy elkerljk a nem egyez pufferpointerek
      problmjt. Ez tulajdonkppen megakadlyozza a dgVoodoo-t abban, hogy kzvetlenl
      hasznlja valamelyik bels, optimalizcihoz ltrehozott puffert. Mindezt azrt,
      hogy az egyes pufferek rsi/olvassi pointerei mindig egy adott terletre
      mutassanak (ez fontos a Glide 2.11-ben).

    - A "Nincsenek egyez LFB-formtumok" akkor is engedlyezve van, amikor a wrappert
      egy DOS-os programhoz hasznlod WinXP alatt szerver-mdban. Ez azrt van, mert egyez
      formtumok esetn a wrapper kzvetlenl az egyik, vidememriban lev puffert
      hasznln, gy a DOS-os program s a zrolt puffer kln-kln cmtrben helyezkednnek
      el. Megjegyzend, hogy amikor ez az opci engedlyezve van, nincs felesleges
      konvertls az adott formtumrl ugyanarra a formtumra, csak egy sima msols trtnik.

DOS Glide
.........

    - VDD-mdban a wrapper egy VDD-knt (Virtual Device Driver) kzvetlenl a DOS-os programot
      futtat NTVDM processzhez van csatolva. Elnye, hogy a DOS-os programot minden tovbbi
      nlkl futtathatjuk, a program s a wrapper egy processzt alkot, egy cmtrben futnak,
      ugyangy, mint ahogy a Windows-os programok esetben, ezrt akr tbb DOS-os program is
      hasznlhatja a wrappert egyidben.

    - Szerver-mdbeli htrnyok WinXP alatt: mivel a program s a wrapper kln programokknt
      kln cmterekben futnak, az LFB-rs estn nem tudja kihasznlni az egyez formtumok
      knlta elnyket (ilyenkor gy veszi, hogy a kt formtum soha nem egyezik,
      lsd LFB elrse), a szervert csak egy program hasznlhatja. Ezt a mdot akkor rdemes
      kiprblni, ha a VDD-mddal valamilyen problma lpne fel.


VESA Emu
........

    - Az emulci azt hirdeti magrl, hogy VGA-kompatibilis, azonban ez csak kt
      nagyon fontos terletre igaz, a palettaregiszterekre, s a 0x3DA
      sttuszregiszterre, mivel szinte minden DOS-os program gtls nlkl a VGA-regisztereken
      keresztl lltotta be a palettt a 8 bites mdokban, s a legtbb szinkronizlta
      magt a fggleges visszafutshoz valamilyen mdon.
      Teht az emu nem kpes pl. X-mdot emullni, stb.
      (De ez a project nem is a VESA tklyre fejlesztsrl szl...)

    - WinXP alatt a Linear/Flat Frame Buffer md nem lvez tmogatst.

    - A Bank Switching Win98/Me alatt a tnyleges memrialekpezs (memory mapping)
      megvltoztatsval trtnik, kernel mdban. Mivel Windows XP alatt ez tlmenne a
      lehetsgeken, gy ott a memriatartalom cserjvel, azaz nagy, 64K-s
      memriablokkok msolgatsval megy vgbe, gy lassabb, mint a W98/Me-s implementci.

    - csak Win9x/Me: ha egy DOS-ablakban elszr a dgVoodoo-t hasznljuk, majd a szerverprocot
      kilve az igazi VESA-drivert, akkor valsznleg csak szemetet ltunk a kpernyn.
      Ez azrt van, mert a dgVoodoo fellrja a VDD (Virtual Display Driver) ltal
      a videomemrihoz belltott mappinget (memria-lekpezst), s azt nem brja
      teljes mrtkben helyrelltani. A javaslat az, hogy ebben az esetben zrjuk
      be az adott DOS-ablakot, s hasznljunk egy msikat.

    - csak Win9x/Me: a szerver indtsakor a VESA-init knnyen sikertelen lehet.
      Ennek oka, hogy a vidememrinak hasznlt memriaterlet alloklsa akkor trtnik,
      amikor a kernelmodul betltdik. (Ha a modult kiszedjk a kernelbl, akkor
      a terletet eldobja.) Alapesetben a kernelmodul dinamikus VxD-knt viselkedik,
      azaz a szerverproc tlti fel s szedi ki a kernelbl. A f problma az, hogy az
      emltett memriaterletnek fizikailag folytonosnak kell lennie, s ezt a
      Windows nem biztos, hogy tudja teljesteni, ha a fizikai lapok nagy rsze mr
      ssze-vissza ki van osztva klnbz programok kztt.
      Ha valakit ez a jelensg felettbb idegest, akkor tegye be a SYSTEM.INI
      [386Enh] szekcijba az albbi sort:
           device = dgVoodoo.vxd
      Ilyenkor a kernelmodul statikus VXD-knt mkdik, azaz a Windows indulsakor
      kerl be a kernelbe, lefoglalja a memterletet (ami ilyenkor mindig 2MB, mert
      a konfigot nem brja olvasni), s csak a Windows lelltsakor lvdik ki.


XI. Felbonts belltsa
------------------------

Ha egy adott program nem tmogatja a felbonts belltst, akkor azt
megteheted a dgVoodoo-n keresztl. Tartsd szem eltt azonban, hogy ezt
a legtbb esetben nem lehet bntetlenl megtenni, mert azonkvl, hogy
grafikus mtermkeket idzhet el, a wrappernek sokkal kemnyebben kell
dolgoznia a httrben, teht teljestmnycskkenst okozhat (fleg akkor,
amikor az alkalmazs kzvetlen Lfb-elrst is hasznl).

ppen ezrt: ezt a lehetsget tnyleg csak akkor hasznld, ha az adott
alkalmazs nem engedi vltoztatni a felbontst!!

A videokrtya ltal tmogatott sszes felbontst hasznlhatjuk az eredeti
helyett.


XII. Kpernyments
-------------------

Ha engedlyezzk, lehetsgnk van a kperny tartalmt elmenteni. Ez mehet
egy fjlba vagy a vglapra egyarnt. Windows-os programoknl a Pause gombbal,
DOS-osoknl pedig a Scroll Lock gombbal menthetnk. Tudom, legalbb lenne
ugyanaz mindkt esetben, de technikai okok miatt egyelre csak gy brtam
megoldani. A mvelet eredmnyt a kperny kzepn egy zld feliraton lthatjuk.
Ez all egy kivtel van: egy 8 bites VESA-md teljes kpernyn. Ekkor nem
ltunk semmit, mert 8 bites mdban nem lehet a 3D-hardverrel rajzolni, mrpedig
a szveg ennek segtsgvel kerl kpernyre.
Ha fjlba mentnk, akkor a fjl neve a program neve megtoldva egy sorszmmal
lesz, s a "temp" knyvtrba kerl ugyanazon a meghajtn, amelyiken a progi van.
Ha a program neve nem ismert (DOS esetn lehetsges), akkor mindig a
C:\temp\dgVoodoo_xyz_.bmp nevet hasznlja (ahol _xyz_ egy sorszm).
Lehet, hogy ez sem a legjobb gy, ksbb mg vltozhat.
Az elmentett bitkp 8 (teljes kperny, VESA), 16 vagy 32 bites, attl
fggen, hogy hny bites mdban futtatjuk a programot, s mindig
.BMP formtum. Ms formtum tmogatsa nincs s nem is lesz betervezve.
Csak mentsd el a szksges dolgokat, aztn konvertld, amire akarod.

XIII. A dgVoodooSetup hasznlata (GUI)
--------------------------------------

A dgVoodoo nem hasznl kln konfig-fjlt, amibl a mindenkori belltsokat
beolvasn. Ehelyett ezek magban a GLIDE2X.DLL s GLIDE.DLL fjlban troldnak.
A setup program is ezeket a fjlokat fogja keresni, de lsd ksbb.

A setup hrom f s egy rejtett tablapot hasznl, amelyen klnbz opcik
tallhatak.

"Globlis" lap:                A Glide-ra s a VESA-ra egyarnt vonatkoz opcik
"Glide" lap:                   Csak a Glide belltsai
"VESA" lap:                    Csak a VESA-emulcihoz tartoz cuccok
"Megjelent-specifikus" lap:  Az egyes megjelentk specilis belltsai
                               (kontext-menbl csalhat el)


Platform
        Itt vlaszthatjuk ki, hogy a Windowsos vagy DOS-os drivert
        szeretnnk-e lltgatni.

Language / Nyelv
        A setup s a wrapper nyelvt adhatjuk meg.

Belltsok a dgVoodoo albbi pldnyra
        Ebben a combo box-ban a lehetsges konfigurland wrapper-fjloknak
        a neveit lthatjuk. Alapesetben az aktulis knyvtrban keres ilyen
        fjlokat, ha ott nem tall, akkor a Windows-knyvtrban.
        A listhoz tovbbi fjlokat adhatunk a "Keress" gombbal.
        A "Win dir" a Windows-knyvtrban, a "./" az aktulis knyvtrban
        keres wrapper-fjlokat, s ha tall, azokat hozzadja a listhoz.

Ezen elemek alatt lthat az aktulis lap. Az egyes lapok kztt a megfelel
flek segtsgvel vlaszthatunk.

"Globlis" lap
--------------

Megjelent API
        Vlaszthatunk a DirectX7- s DirectX9-megjelent kztt.

Megjelenteszkz
        Az adott kpernyadapter kivlasztsa.

Meghajt
        A megjelentst vgz driver kivlasztsa.
        (a szoftveres meghajtkkal valsznleg nem fog jl mkdni,
         de gondolom, ez nem tl nagy baj)


Kpernymd
        Ablakos vagy teljes kpernys md kzl vlaszthatunk.

Kp bitmlysge
        A sznmlysget adhatjuk meg teljes kpernys mdban.
        Ablakos md esetn ezt a kperny aktulis belltsa
        hatrozza meg, amelyet meg is tekinthetnk a lapok flei
        felett. Ha ez inkompatibilis a dgVoodoo-val (azaz nem
        16 vagy 32 bites), akkor erre figyelmeztetst kapunk.
        A 16 bites md hasznos lehet a gyors LFB-elrsekhez.

Pillanatkpek
        Itt engedlyezhetjk a kpernymentst.

Ments llomnyba
        A fjlba val mentst teszi lehetv.

Ments a vglapra
        A vglapra val mentst teszi lehetv.


Mkds VDD-mdban
        Csak DOS-hoz s Windows XP-hez: a wrappert ezzel az opcival llthatjuk
        be VDD-mdba.

Httrben is fut
        Csak DOS-hoz s Windows XP-hez: a programok a httrben is futhatnak.


Konzolablak elrejtse
        Csak DOS-hoz: elrejti a program konzolablakt.

Egrfkusz az alkalmazsnl
        Csak DOS-hoz: ha az adott program fut, akkor az egrfkusz a
        Windows-tl a programhoz kerl. Ez az opci teszi lehetv az
        egr hasznlatt.

Ctrl-Alt engedlyezse
        Csak DOS-hoz: ha engedlyezve van, ezzel a billentykombincival
        elengedhetjk az egrfkuszt.

Az ablak mrett mindig megrzi
        Csak DOS-hoz, ablakos mdban: ha az ablakot mr tmreteztk
        knynkre-kedvnkre, akkor a tovbbi zemmdvltsok, j felbontsok
        hatsra sem ll vissza az alaprtelmezett mretre.
        
Kp mretarnyt megrzi
        A kp mretarnyai vltozatlanok maradnak az ablak mretezse kzben.


"Glide lap"
-----------

D3D-textrk bitmlysge
        A Direct3D-hez ltrehozott textrk bitmlysge. A dgVoodoo a kvetkez
        textraformtumokkal kpes dolgozni (a komponensek sorrendje tetszleges):
                - 16 bit ARGB_4444
                - 16 bit ARGB_1555
                - 16 bit RGB_555
                - 16 bit RGB_565
                - 32 bit ARGB_8888
                - 32 bit RGB_888
                -  8 bit P8
        Indulskor megnzi, hogy az adott videkrtya ezek kzl melyeket
        tmogatja, ezeket felveszi egy listba, majd futs kzben ezek
        kzl vlogat, amikor el kell dntenie, hogy egy adott 3Dfx-es
        textraformtumhoz melyik felel meg a legjobban. A lehetsges
        opcik:
                - 16 bit: csak 16 bites formtumokat hasznljon
                - 32 bit: csak 32 bites formtumokat hasznljon
                - Legjobban illeszked: az sszes formtumot figyelembe veheti,
                                        belertve a paletts (8 bites)
                                        textrkat is

Frisstsi frekvencia
                - A monitor frekvencija mindig a legkzelebbi tmogatott frekvencia:
                  Csak teljes kperny esetn, a frisstsi frekvencit arra a monitor
                  ltal tmogatott rtkre lltja be, amely az alkalmazs ltal ignyelthez
                  a legkzelebb esik. A gyakorlatban a kett valsznleg egyenl lesz,
                  mivel a legtbb Glide-alkalmazs 60Hz-es (esetleg 70, 72) frekvencit
                  kr, amelyet mg a legplhebb monitornak is tmogatnia kell.
                  Ez az opci termszetesen fellrja a "Frisstsi frekvencia" opciban
                  megadott rtket.
                  A legtkletesebb emulcihoz s a finom animcihoz ajnlott!!

                  [A msik rgi opci, amivel tetszleges frisstsi frekvencia mellett
                   lehetett az alkalmazs ltal megadottat hasznlni, eltnt, nem volt
                   kedvem foglalkozni vele, amikor jrartam a 7-es renderer aljt.
                   Nem hiszem, hogy valaki hasznlta volna, az egyetlen rtelme taln az
                   volt, hogy nagy fr. frekvencia mellett nem folyt ki az ember szeme,
                   de azt virtulisan mgis le tudta korltozni pl. 60Hz-re.]

                - Egy fggleges visszafutst mindig megvr:
                  A kpbufferek cserjekor mindig megvr legalbb egy fggleges
                  visszafutst (frisstst) akkor is, ha a program ezt nem ignyli.
                  Akkor lehet hasznos, ha egy program nem szinkronizlja magt a
                  frisstshez, s emiatt gyorsabban fut a mai gpeken, vagy a ltvny
                  nem tl szp.
                  Megjegyzs: Ez az opci a DirectX9-megjelentre nincs hatssal!!
                              Ott a megjelent-specifikus belltsok kztt tudjuk
                              szablyozni a renderer viselkedst (ami sajnos egy
                              globlis megszortst jelent).


LFB elrse
                Itt adhatjuk meg az LFB-elrs mkdsnek jellemzit.
                        - LFB elrsnek tiltsa az adott mvelet(ek)re (rs,olvass)
                                Az LFB elrse egy lass mvelet lehet.
                                Ha egy adott tpus elrst letiltunk ebben a
                                combo box-ban, akkor a programok tovbbra is gy
                                rzkelik, mintha elrnk az LFB-t, de a
                                valsgban egy hasznlaton kvli puffert ltnak.
                                A ltvny emiatt hinyos lesz (olvass esetn el is
                                romolhat), de legalbb jelentsen felgyorsul
                                a program.
                        
                        - Hardveres gyorstpufferek hasznlata, amikor lehet
                                Tartsd mindig engedlyezve

                        - Gyors rs nem egyez formtumokhoz
                                Tartsd mindig engedlyezve
                                
                        - Textracsempk hasznlatnak tiltsa
                                A wrapper alapesetben az adott krlmnyek alapjn
                                dnti el, hogy egy kzvetlen LFB-rshoz textra-
                                csempket hasznl-e vagy nem. Ha gy tallod, hogy
                                nem mindig dnt optimlisan, s a rohadt textrk
                                csak teljestmnycskkenst vagy mtermket okoznak,
                                akkor ezzel az opcival letilthatod az egszet,
                                visszaesve a sima mezei puffer-msolgatsos szintre.
                        
                        - Kzelebb az igazi hardverhez
                                A LFB-nek olyan tulajdonsgai lesznek, amelyek
                                kzelebb llnak az igazi Voodoo krtyhoz
                                (ez az opci csak Glide 2.43 esetn rhet el).


                Megjegyzs: ha egy program az aux-puffert akarja rni/olvasni,
                amikor az mlysgi- vagy alpha-pufferknt mkdik, akkor mindig
                a hasznlaton kvli puffert fogja ltni (ezen tpus pufferek
                zrolsa mg nincs implementlva :-| ).

Felbonts
                Itt brlhatjuk fell programok ltal hasznlt felbontst.
                Ez a lista tartalmazza a videokrtya ltal tmogatott felbontsokat,
                ezek kzl vlogathatunk. Ha a felbontst nem akarjuk megadni, akkor
                a legels elemet, az "alkalmazs adja meg"-et kell vlasztanunk.

Frisstsi frekvencia
                Itt adhatjuk meg, hogy mekkora legyen a monitor frisstsi frekvencija.
                Ablakos mdban, ill. ha a legkzelebbi tmogatott frekvencira lltjuk
                (lsd fentebb), akkor ezt nem tudjuk kivlasztani.

Textramemria mrete
                Az emullt textramemria mrete.


Mipmapping tiltsa
                Ha valamelyik programban/jtkban a mipmapping esetleg csnyn nzne ki,
                akkor letilthatjuk, visszaesve arra a szintre, mintha csak egyszint
                textrkat hasznlnnk.

Mindig trilineris mipmapping
                A mipmap egyes szintjei kztt is linerisan interpoll, gy nem
                ltszdik a hatrvonal kzttk.

Mipmap-ek automatikus generlsa
                Az mipmap sszes szintjnek generlsa, ha a mipmap csak egyetlen
                textrbl llna. Ha teht egy program eleve tbbszint textrkat
                hasznl, akkor azokat nem brlja fell. Ha ez az opci engedlyezett,
                mindig trilineris mipmapping trtnik, ha a mipmappinget a program
                letiltja.

Mindig bilineris szrs
                Ezzel az opcival kiknyszerthetjk, hogy a textrk mindig elmosva
                jelenjenek meg.

Texmem sklzs 4MB-ra
                Engedlyezhetjk azt, hogy a textramemria ltszlag 4MB legyen.
                Bvebb lershoz lsd az ltalnos tippeket.


Gamma-korrekci
                A kp fnyerssgnek megadsa: ezt 0%-tl - 400%-ig
                llthatjuk. Ez ablakos mdban is mkdik!

Colorkeying mdszer
                A colorkeying az az effekt, amikor nem jelennek meg azok a pixelek, amelyeknek
                a szne megegyezik a kulcssznnel (colorkey).

                Ngyfle mdszer a colorkeyinghez: 

                - Natv
                - Natv TNT-hez
                - Alfa alap
                - Automatikus

                Az egyes mdszerek lerst lsd a megjelentk kzti klnbsgek taglalsban.

Mindig triplapufferels
                Ezzel az opcival rknyszerthetjk a wrappert, hogy mindig hrom puffert
                hasznljon az animcihoz, fggetlenl attl, hogy a program mennyit ad meg
                (2-t vagy 3-at). Ez felgyorsthatja a futst, azonban hibkat is okozhat a
                ltvnyban, ha a program felhasznlja az elz frame-ek (kpkockk) tartalmt.

A TR rnyk-hibjnak javtsa
                A Tomb Raider 1-ben manulisan korriglhatjuk az rnykhibt.
                Ha ez ms Dos-os programot megzavar, akkor kapcsold ki!

A vgst a Direct3D vgzi
                Ha egy program nem sajt maga vgzi el a geometriai vgst, hanem a wrapperre
                bzza, akkor az tovbbpasszolja a Direct3D-nek, ha ez az opci be van
                lltva. A Direct3D mindig 3D-ben vgzi a vgst (br a Glide szerint csak
                2D-vgs szksges), de ezzel gondok lehetnek (eltorzult poligonok, stb.).
                Ha ezt nem engedlyezzk, akkor a wrapper a sajt 2D-vgalgoritmust hasznlja.
                (A 2D vgs sem tkletes, mivel ha egy adott poligonnak pl. negatv W-koordinti
                 is vannak, akkor mr 3D-ben kellene vgni... Ez a krds szmomra mg nem
                 tisztzott.)

Glide-gammaramp engedlyezse
                Engedlyezhetjk a kp fnyerssgnek Glide-on keresztli lltst. Ez az elz
                verzikban automatikusan gy trtnt.

Hardveres vertex pufferek hasznlata
                Ha engedlyezzk, a wrapper a geometriai adatokat egybl a videkrtya hardveres
                pufferbe doblja. Ez kikszbli a felesleges msolgatsokat, viszont klnbz
                problmkat is okozhat, ezrt most mr nincs automatikusan engedlyezve.
                (Lsd a megjelentk kzti klnbsgeket.)
               
W-pufferels knyszertse
                Ha a videkrtyd tmogatja, valdi W-pufferelst knyszerthetsz ki
                (rgi ATI krtyk s a GeForce 6xxx-t megelz szrik).
                
Idzt gyorstsa
                Ki-bekapcsolhatod a idzt-gyorstst, lsd "ltalnos tippek" rsz.


"VESA-lap"
----------

Ez a lap csak DOS platformnl jelenik meg, meglep mdon, s ha el nem sztam
valamit a szetapban.

A beptett VESA-tmogats hasznlata
                Ezzel engedlyezhetjk a VESA-emulcit.

Frisstsi frekvencia
                A kp frisstsnek frekvencija. Minl nagyobb, annl finomabb
                animcit kapunk. Vigyzz azonban, talld meg az optimumot: a
                frissts idignyes mvelet, nagyobb frekvencia tbb idt ignyel,
                azaz kevesebb id jut a program futsra, lassabb lehet az egsz!
                (Ez itt igazbl mr rgi szveg, kkori gpeknl jhet el.)

Az emullt vidememria mrete
                Mekkora legyen a virtulis SVGA krtya memrija.
                (Az ezzel kapcsolatos problmkat lsd korbban)
                Vigyzz, nehogy kisebb legyen, mint amekkort egy adott videomd
                ignyel.

13h-as md tmogatsa
                A szabvnyos 320x200 256 szn VGA-mdot is emullhatjuk.

A Flat/Linear Frame Buffer mdok tiltsa (Win9x/Me)
                Mivel a VESA-emu implementcija fnyvekre van a tkletestl,
                bizonyos programok lehet, hogy nem mkdnek lineris mdban.
                Ilyenkor prbld meg ezt a lehetsget kikapcsolni, hogy a
                j reg bankvltsos technikt legyen knytelen hasznlni.


"Megjelent-specifikus"
------------------------

DirectX9

      - Bufferek msolsnak knyszertse a lncban
                Az opci lnyege, rtelme, hogy a front buffer elrhet legyen.
                Nem felttlenl rdemes mindig bekapcsolva tartani, mivel
                valamennyit ront a teljestmnyen.

      - Nem szinkronizlja magt a fggleges visszafutshoz
                Kpvltskor azonnali vlts. Vannak olyan alkalmazsok, amelyek
                ezt ignylik, DirectX9 esetn ezt csak ezzel az opcival tudjuk
                knyszerteni.

      - Fix funkcij shaderek knyszertse
                Ha a megjelent nagyon nem akar mkdni, ezzel megnzheted,
                hogy a hagyomnyos FF-shaderekkel mkdik-e.
                (Ezt ki kellene mr irtani a wrapperbl, de csak egy jelents
                 verziugrskor lenne rtelme.)

      - Hardveres gyorsts a paletts textrk jragenerlshoz, ha elrhet
                nmagrt beszl, s csak pixel shaderekkel hasznlhat.
      

      -	Fekete-fehr megjelents
                Ez csak affle meglepi, nincs sok rtelme. Csak pixel shaderekkel
                hasznlhat, s csak akkor, ha a hw ad egy kis specilis tmogatst.


Az "OK" gombbal mentjk az aktulis belltsokat, mg a "Cancel"-lel nem.
A "Nvjegy" a szoksos gomb, amivel egyltaln nem megynk semmire, de
legalbb komoly alkalmazs ltszatt kelti.


XIV. A dgVoodooSetup hasznlata (Parancssoros, a specilis belltsok piszklshoz)
-------------------------------------------------------------------------------------

Ha a dgVoodooSetup parancssora nem res, a grafikus ablak nem jelenik meg, az
egyes setup-mveletekhez szksges informcit a parancssorbl olvassa be.
A konzolon semmifle visszajelzst nem kapunk. (Windows alatt egy alkalmazs
nem tud egyszerre grafikus s konzolos is lenni, legalbbis nem egyknnyen.)

A parancssori interfsszel mintzhatjuk a grafikus munkafolyamatot, ami ltalban
a kvetkez:
- Betltnk egy konfigurcit, vagy a wrapper fjlbl (glide2x.dll, glide.dll),
  vagy egy exportlt konfig fjlbl
- A konfigot mdostjuk, ha szksges
- A konfigurcit elmentjk a wrapper fjlba, s/vagy exportljuk egy kls
  konfig fjlba, szvegfjlba
  
Parancssori opcik:

dgVoodooSetup [wrapperfile] [/opt1] ... [/optn]

ahol a wrapperfile az albbi mdokon adhat meg:

    File                            Egy adott fjl
    $Win$[File]|[:0|1|2]            A $Win$ prefix lecserldik a Windows folderre
                                    Ha a File-t megadtuk, azt hozzfzi a Windows folderhez
                                    
    $FirstFound$[:0|1|2]            Az a knyvtr, ahol a wrapper fjlt elszr megtallja

                                    1 = glide.dll, 2 = glide2x.dll, 0 = brmelyik
                                    alaprtelmezett = 0
                                    
Magyarzat a lershoz:

    (E/T = Engedlyez/Tilt)
    (Dec = decimlis szm)
    (Hex = hexadecimlis szm egy 'x' vagy '0x' prefixszel)
    (A logikai mveletek (On|Off|Inv) alaprtelmezettje = On)

opcik az egyes mveletekhez
    
    /?, /h, /help                   Segtsg a parancssoros interfszhez
    
    /NoSave                         Nem menti el a konfigot a wrapper fjlba
    /Import:configfile              Betlt egy konfigot configfile-bl, ktelez paramter
    /Export:configfile              Elment egy konfigot configfile-bl, ktelez paramter
    /ExportToText:textfile          A konfigot kirja egy szvegfjlba, ktelez paramter

    /Platform[:Win|Dos]             A kvnt konfig hasznlata, alaprtelmezett = Win
    /Lang[:Eng|Hun]                 Nyelv, alaprtelmezett = Eng

a konfigot mdost opcik:

    /Windowed[:On|Off|Inv]          E/T ablakos md
    /BitDepth[:16|32]               Kpbuffer bitmlysge teljes kperny esetn
                                    Alaprtelmezett: 16
    /ScrShot[:On|Off|Inv]           E/T pillanatkpek
    /ScrShotToCb[:On|Off|Inv]       E/T pillanatkpek a vglapra
    /VDDMode[:On|Off|Inv]           E/T VDD md
    /RunInBkgnd[:On|Off|Inv]        E/T httrben futs
    /CLIPOPF[:On|Off|Inv]           CLI/POPF kezelse (Dos, XP)
    /HideConsole[:On|Off|Inv]       Elrejti/mutatja a konzolablakot
    /Mouse[:On|Off|Inv]             E/T egrfkusz DOS-ra lltsa
    /MouseCtrlAlt[:On|Off|Inv]      E/T egrfkusz elengedse Ctrl-Alt-tal
    /PreWinSize[:On|Off|Inv]        E/T ablakmret megrzse
    /PreWinAspRat[:On|Off|Inv]      E/T ablak mretarnynak megrzse

    /MonFreq[:Hex|Dec]              Monitor frekv., 0 = alaprt. frekv., alaprtelmezett = 0
    /ClosestMonFreq[:On|Off|Inv]    E/T az alkalmazs ltal krt frekvencihoz
                                    legkzelebb ll tmogatott monitorfrekv. belltsa,
                                    fellbrlja a MonFreq belltst
    /WaitOneRetrace[:On|Off|Inv]    E/T legalbb egy fggleges visszafuts megvrsa

    /TextureBitDepth[:0|16|32]      Direct3D-textrk bitmlysge, 0 = legjobban illeszked,
                                    alaprtelmezett = 0
    /PerfectTexEmu[:On|Off|Inv]     E/T tkletes textramemria-emulci
    /StoreTexCopies[:On|Off|Inv]    E/T textramsolatok trolsa
    /DisableMipMap[:On|Off|Inv]     E/T mipmapping
    /AutoGenMipmap[:On|Off|Inv]     E/T mipmap-szintek automatikus generlsa
    /ForceTriMipMap[:On|Off|Inv]    E/T trilineris mipmapping knyszertse
    /ManagedTextures[:On|Off|Inv]   E/T managed textrk: a textrkat a DirectX runtime
                                    kezeli, s szksg szerint  lltja ket helyre
    /TexMemScaleTo4M[:On|Off|Inv]   E/T textramemria sklzsa 4MB-ra


    /LfbAccess[:Enable|Disable|DisableRead|DisableWrite]
                                    Lfb elrhetsgnek belltsa, alaprtelmezett = Enable
    /HwCacheBuffs[:On|Off|Inv]      E/T hardveres gyorstpufferek
    /FastWriteUnmatch[:On|Off|Inv]  E/T gyors rs nem egyez formtumokhoz
    /FastWriteMatch[:On|Off|Inv]    E/T gyors rs egyez formtumokhoz
    /ColorFmtOnLfbFmt[:On|Off|Inv]  E/T Lfb rsi formtumt befolysolja az ltalnos sznformtum
    /RescaleChangesOnly[:On|Off|Inv]E/T csak a vltozsok tmretezse
    /FlushAtUnlock[:On|Off|Inv]     E/T Lfb-vltozsok lland rtse zrols feloldsakor
    /NoMatchingFmt[:On|Off|Inv]     E/T nincsenek egyez Lfb-formtumok
    /TextureTiles[:Auto|Disabled|Forced]
                                    Mdszer kivlasztsa a textracsempk alkalmazshoz
                                    Auto = automatikus, Disabled = tiltott,
                                    Forced = mindig textracsempk knyszertse,
                                    alaprtelmezett = Auto
    /LfbRealHw[:On|Off|Inv]         E/T kzelebb az igazi hardver

    /CKMethod[:Auto|Alpha|Native|NativeTNT]
                                    A colorkeying mdszer belltsa, alaprtelmezett = Auto
    /CKTntInFallback[:On|Off|Inv]   E/T Native TNT mdszer, amikor auto mdban az alfa-alap
                                    nem hasznlhat (csak DirectX7)
    /AlphaRef[:Hex|Dec]             Alfa referenciartk az auto colorkeying mdszerhez
                                    tartomny: 0-255, alaprtelmezett = 0

    /TexMemSize[:Hex|Dec]           Textramemria mrete kB-okban, alaprtlemezett = 8192

    /XRes[:Hex|Dec]                 Fellbrlt vzszintes felbonts, alaprtelmezett = 0
    /YRes[:Hex|Dec]                 Fellbrlt fggleges felbonts, alaprtelmezett = 0
                                    (X=0 s Y=0 az alkalmazs ltal krt felbontst jelenti)
    
    /Gamma[:Hex|Dec]                Gamma korrekci szzalkban,
                                    tartomny: 0-400, alaprtelmezett = 100

    /ForceTriBuff[:On|Off|Inv]      E/T triplapufferels knyszertse
    /FixTR1[:On|Off|Inv]            E/T TR1 rnyk-hibjnak javtsa
    /ClipByD3D[:On|Off|Inv]         E/T geometriai vgst a Direct3D vgzi
    /GlideGamma[:On|Off|Inv]        E/T Glide gamma ramp
    /HwVertexBuff[:On|Off|Inv]      E/T hardveres vertexpufferek
    /WBuffDetMethod[:ForceZ|ForceW|DriverFlag]
                                    A W-puffer emulcija detektlsnak mdszere,
				        alaprtelmezett = DriverFlag
    /DepthColorEq[:On|Off|Inv]      E/T a kp- s mlysgi puffer bitmlysge egyenl
    /ForceIndexed[:On|Off|Inv]      E/T indexelt primitvek knyszertse
    /PreferTMUW[:On|Off|Inv]        E/T a TMU-hoz megadott W koordinta preferlsa, ha szksges 
    /TimerBoost[:Hex|Dec]           Idzt gyorstsnak peridusideje ms-okban DOS-hoz
                                    0 = nincs gyorsts, alaprtelmezett = 80

    /Vesa[:On|Off|Inv]              E/T beptett VESA-emulci hasznlata
    /VesaRefRate[:Hex|Dec]          VESA frisstsi frekvencia Hz-ben, tartomny: 45-70,
	                                alaprtelmezett = 50
    /VesaMem[:Hex|Dec]              VESA vidememria mrete kB-okban, alaprtelmezett = 1024
    /Supp13[:On|Off|Inv]            E/T 0x13-as VGA md (320x200x8)
    /DisableFlat[:On|Off|Inv]       E/T Flat/Linear VESA mdok

    /MirrorVert[:On|Off|Inv]        E/T kperny fggleges tkrzse

opcik csak DX9-hez

    /DX9LfbCopy[:On|Off|Inv]        E/T lfb-lncban msols, elrhet front buffer
    /DX9NoVRetrace[:On|Off|Inv]     E/T azonnali, szinkronizci nlkli buffervlts
    /DX9FFShaders[:On|Off|Inv]      E/T FF shaderek knyszertse
    /Dx9HwPalTextures[:On|Off|Inv]  E/T Paletts textrk hardveres jragenerlsa
    /DX9BlackWhite[:On|Off|Inv]     E/T fekete-fehr megjelents


A konfigurci a wrapper fjlbl kerl betltsre, de az /Import opci ezt fellbrlja,
ha meg van adva. Ha sem wrapper fjlt, sem kls konfig fjlt nem adunk meg, akkor
a setup az alaprtelmezett konfigurcit hasznlja. Ezutn minden megadott mdosts
megtrtnik a konfigban, majd ezt elmenti a wrapper fjlban, kivve ha a /NoSave opcit
megadtuk, st, exportlja egy kls fjlba /Export esetn, s kirja szvegfjlba a
/ExportToText hasznlatval.
Ha egy opcinak paramtert adunk, akkor azt kettsponttal vlaszthatjuk el. Ha egy adott
paramter nem ktelez s nincs megadva, akkor az alaprtelmezett rtket hasznlja a
setup.
Szintaktikai hiba vagy ismeretlen opci esetn nem trtnik semmi!
A paracssorban a kis- s nagybetk nincsenek megklnbztetve.

Pldk:

    dgVoodooSetup $FirstFound$:2 /Platform:Dos /Windowed:On

    Megkeresi a glide2x.dll fjlt (az aktulis s Windows knytrban), betlti a DOS
	konfigot, belltja az ablakos mdot, aztn elmenti a konfigot.

    dgVoodooSetup $Win$Glide2x.dll /Platform:Win /CKMethod /Export:MyConfig.cfg

    Megkeresi a glide2x.dll fjlt a Windows knytrban, betlti a Win
	konfigot, a colorkeying mdszert automatikusra lltja, aztn a konfigot elmenti,
	s exportlja a MyConfig.cfg fjlba.

    dgVoodooSetup /Platform:Win /LfbAccess:DisableRead /ExportToText:MyConfig.txt

    Veszi az alartelmezett konfigot, letiltja olvassra az lfb elrst, majd a
    konfigot kirja szvegfjlba.

Megjegyzsek:

    $Win$:1 ugyanaz, mint a $Win$glide.dll, s $Win$:2 ugyanaz, mint a $Win$glide2x.dll.
    
    $Win$:0 (vagy csak $Win$) a glide2x.dll-t keresi a Windows knyvtrban, de ha nem
	tallja, akkor a glide.dll utn kutakodik.

    $FirstFound$:0 (vagy csak $FirstFound$) a glide2x.dll-t vagy glide.dll-t keresi az
    aktulis s Windows knyvtrban.
    A keressi sorrend:

     current_dir\glide2x.dll
     current_dir\glide.dll
     Win_dir\glide2x.dll
     Win_dir\glide.dll

    mint ahogy az ablakos fellet is tev ezt.

    Remlem, igazn borzalmasra sikeredett, j szrakozst! :)