diff --git a/EXE/D3D9_compat.dll2 b/EXE/D3D9_compat.dll2 new file mode 100644 index 0000000..7a4c48c Binary files /dev/null and b/EXE/D3D9_compat.dll2 differ diff --git a/EXE/d3d8_compat.dll2 b/EXE/d3d8_compat.dll2 deleted file mode 100644 index ae292a2..0000000 Binary files a/EXE/d3d8_compat.dll2 and /dev/null differ diff --git a/EXE/dgVoodoo.conf b/EXE/dgVoodoo.conf index a531f93..d1fd2ce 100644 Binary files a/EXE/dgVoodoo.conf and b/EXE/dgVoodoo.conf differ diff --git a/EXE/dgVoodooCpl.exe b/EXE/dgVoodooCpl.exe index fdbd25c..a6a1a28 100644 Binary files a/EXE/dgVoodooCpl.exe and b/EXE/dgVoodooCpl.exe differ diff --git a/EXE/dgVoodooReadMe.html b/EXE/dgVoodooReadMe.html deleted file mode 100644 index a5704a5..0000000 --- a/EXE/dgVoodooReadMe.html +++ /dev/null @@ -1,1255 +0,0 @@ - - - - - - - - - - dgVoodoo2 Main Readme - - - - - - -

-===============================================================================
-dgVoodoo 2.54: Glide, DirectDraw/Direct3D and D3D8 to Direct3D11 Wrapper
-Released: April 25, 2017
-Author: Dege
-
-Copyright (c) 2013-2017
-===============================================================================
-

- -

-

-Table of contents -

-

-1. Redistribution rights
-2. Features
-3. Requirements
-4. Test results
-5. Usage
-6. Configuring
-7. Resolution overriding
-8. General Control Panel (CPL) options
-9. General tips and known issues
-10. Change log
-

-===============================================================================
- -

- -
-

-1. Redistribution rights -

-

-Files of dgVoodoo can be redistributed freely as far as they are kept together, -remain unmodified and unrenamed. Namely, only the full package can be -redistributed in the form as it is! -

-

-If you would like to utilize them in publicly available custom solutions or -packages, like game patches or anything else, then PLEASE ask me for permission, -furthermore mention its original source in your package along with the following -download link: -

-http://dege.fw.hu/ -

-Official dgVoodoo forum where you can contact me and the dgVoodoo community is at: -

-http://www.vogons.org/viewforum.php?f=59/
-
-Tip: See topic "WIP versions" for checking out new dgVoodoo versions that are not officially released. -

- - - - - - -
---------------------- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ----------------------
-

-Very BIG THANKS must go to the community of Vogons for helping me a lot in -testing during the development! Thanks Guys, I couldn't have proceed so far -without such a great quality assurance! -

-
-

-And I append a new sentence here to emphasize it again, especially for testing -my DX8 implementation and supplying me with ideas, tips and various informations -on several games!!! -

-
---------------------- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ----------------------
-
- -
-

-2. Features -

-

-dgVoodoo 2 is a wrapper for old graphics API's for Windows Vista/7/8/10. -

-This wrapper can use Direct3D 11 with different device types as wrapping output: -

- -The API's it currently can wrap are: - -

-For both Glide and DirectX, dgVoodoo pushes as many emulation work to the GPU as -possbile. Thus, the entire internal 3Dfx GPU logic is mapped to pixel shaders -for Glide emulation, and all the fixed function vertex & pixel processing -pipeline is implemented by shaders for DirectX emulation (when possible).
-dgVoodoo basically can work in two ways: -

-

-

-If dynamic shader compiling is available (see Usage) then dgVoodoo can work -with specialized shaders requiring much less GPU power, providing much better -performance, especially on weaker video cards.
-

- -
-

-3. Requirements -

- -Optional and recommended: - - -
-

-4. Test results -

-

-We can examine this in two aspects: -

- - -
-

-5. Usage -

-

-There is no installer for dgVoodoo beacuse you can copy its dlls anywhere -you want (to use). If u like it and want to use as the only global Glide -wrapper on your machine then copy Glide dlls to the system folder. -For DirectX emulation only a local installation is possible since the -DirectX dlls CANNOT be copied to the system folder (see DirectX readme). -

-

-A Glide wrapped application can start up either in windowed or full screen -mode (it is controlled by the Control Panel, see later). Also, you can switch between -them during the gameplay by Alt-Enter. See 'Known issues' for more. -

-

-The same is true for wrapped DirectX applications, but it is a more -complicated case, see DirectX readme. -

-

-Glide and DirectX dlls can co-work inside a process so the same versions -of them have to be used within a folder. If one of them detects the other -with different version then it refuses to initialize and work. -Co-work is useful for applications that use DirectDraw for some initial -in-game menu and Glide for 3D rendering. -

-

-If you use dgVoodoo on Windows 10 then dynamic shader compiling is automatically -available because D3DCompiler_47 is part of the operating system.
-For preceding Windows versions (Vista, 7, 8) you need to download it manually and -then, you can copy this dll into each game folder next to the wrapper dlls but the -best practice is to copy it into -

- - - -

-if it is not already there by the result of the installation of some -other software.
-Note that dgVoodoo supports both D3DCompiler_43 and D3DCompiler_47. -_43 is supported only because of compatibility with users having it -downloaded and copied into their system folder previously. -

-

-Utilizing dynamic shader compiling is strongly recommended and -even unavoidable to get all DX8 level features to work. -If dgVoodoo cannot find D3DCompiler then it can use only its -generalized precompiled shaders just like versions before 2.5. -If dgVoodoo finds a supported compiler dll then it can adapt to the current -circumstances and compile specialized shaders providing maximum GPU -performance. -

- -
-

-6. Configuring -

-

-As different options might wanted to be used for particular applications, -I kept the concept of local/global configurations (might be familiar from old dgVoodoo). -The configuration data is not stored in the dlls themself anymore. -It is in a separate file named 'dgVoodoo.conf'. All of the Glide and DirectX -dlls uses this file. -

-

-When the Glide or DirectX wrapped application starts, dgVoodoo tries to read -config data. The search paths and the order for the config file are the following: -

-If the config file can be found in none of them then the default config is used. -

-

-For modifying config files, you have dgVoodoo Control Panel (dgVoodooCpl). -In dgVoodooCpl you can choose a folder where you can load (from) and save the current -configuration. After you chose a folder, it remains in the list permanently. -If the CPL application finds a valid config file in its own folder (where the app itself -is located) then it automatically places the folder into the list and selects the folder. -Otherwise the user's application data folder is selected, by default. -

-

-If an application tolerates losing focus without closing/minimizing itself, -you can configure it dynamically: when the CPL starts up it builds -a list of detected running Glide/DirectX wrapped applications and insert it -into the folder selector combobox. When you select such a running instance -then the current state of the application is read as config and most of the -options can also be changed. So, you can set resolution, msaa, brightness, -etc on the spot without restarting the application (configurable items depend -on emulation type). When an option changes, it takes effect at once. If the -dialog gets cancelled or an other config folder/instance is selected, all the -changes gets cancelled as well. -

-

-You can always use the 'Apply' button to save the current config to the -selected folder or running application without exiting the CPL application. - -Important to note: -

- - - -

A folder inserted formerly into the list can be removed. Also, list of the -running instances can be refreshed.

- -

-(Why configuration is still needed at all? Well, now it's not for choosing from -millions of technical options due to weak implementation but for fancy things, -see chapter 'General Control Panel (CPL) options' as well as Glide and DirectX readme.) -

- -
-

-7. Resolution and refresh rate overriding -

- -

-You can override the application resolution and refresh rate both for -Glide and DirectX rendering.
-There are three types of resolution overriding, and, the 'Resolution' -comboboxes contain two types of elements in the enumerated list: -

- - -If you are terribly interested in how the current dynamic resolution is calculated then -a little technical part comes here. Otherwise you can skip this section. -

- - - - - - - -
D:desktop resolution
F:FullHD resolution (1920x1080)
Q:QHD resolution (2560x1440)
A:application resolution
AS (x, y):stretched from x to y, with aspect ratio
IAS (x, y):stretched from x to y, with aspect ratio, integer scale factor
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
UnspecifiedCenteredStretchedStretch with AR
MaxAS (A, D)AS (A, D)DAS (A, D)
Max ISFIAS (A, D)IAS (A, D)* remarksIAS (A, D)
Max FHDAS (A, min (D,F))AS (A, min (D,F))min (D,F)AS (A, min (D,F))
Max FHD ISFIAS (A, min (D,F))IAS (A, min (D,F))* remarksIAS (A, min (D,F))
Max QHDAS (A, min (D,Q))AS (A, min (D,Q))min (Q,F)AS (A, min (D,Q))
Max QHD ISF IAS (A, min (D,Q))IAS (A, min (D,Q))* remarksIAS (A, min (D,Q))
-
-Remarks: - -

-I'd like to say some words about what happens on multimonitor systems with -dynamic resolution forcing: -

- - -
-

-8. General Control Panel (CPL) options -

-
-Options on the General tab affects all wrapped APIs, that is, currently -Glide and DirectX. - - -
-

-9. General tips and known issues -

- - -
-

-10. Change log -

- - - - -Have luck,
- -Dege - - -
- - - - - \ No newline at end of file diff --git a/EXE/dgVoodooReadme.url b/EXE/dgVoodooReadme.url new file mode 100644 index 0000000..b89898d --- /dev/null +++ b/EXE/dgVoodooReadme.url @@ -0,0 +1,2 @@ +[InternetShortcut] +URL=http://dege.fw.hu/dgVoodoo2/ReadmeGeneral/ diff --git a/EXE/dgVoodooReadmeDirectX.html b/EXE/dgVoodooReadmeDirectX.html deleted file mode 100644 index 6ba5daa..0000000 --- a/EXE/dgVoodooReadmeDirectX.html +++ /dev/null @@ -1,656 +0,0 @@ - - - - - - - - - - dgVoodoo2 DirectX Readme - - - - - - -

-===============================================================================
-dgVoodoo 2.54: DirectX emulation related stuffs
-
-===============================================================================
-

- -

- -

-Table of contents -

-

-1. Important notes
-2. General overview
-3. Some technical info
-4. Application resolutions and refresh rates
-5. About fullscreen and windowed mode
-6. DirectX Control Panel (CPL) options
-7. Tips and known issues
-8. Why doesn't dgVoodoo DX emulation start up? -

-

-===============================================================================
- -
-

-1. Important notes -

- -

-First of all: NEVER COPY DDRAW.DLL AND D3D8.DLL INTO SYSTEM FOLDERS!! -ALWAYS USE A LOCAL INSTALLATION FOR A GAME!
-DirectDraw and D3D8 are still existing and widely used system components in Windows.

- -For clarifying, let's see what dlls MS and dgVoodoo use for DirectDraw and -Direct3D: -

-
    -
  • - - MS:
    -
    - - - - - -
    ddraw.dll- Contains all DirectDraw implementations up to version 7
    d3dim.dll- Contains all Direct3D implementations up to version 6
    d3dim700.dll- Contains Direct3D 7 implementation
    d3d8.dll- Contains Direct3D 8.1 implementation
    -
  • -
    -
  • - - dgVoodoo:
    -
    - - - - -
    ddraw.dll- Contains all DirectDraw implementations up to version 7
    d3dimm.dll- Contains all Direct3D implementations up to version 7
    d3d8.dll- Contains Direct3D 8.1 implementation
    -
  • -
- -

-So, dgVoodoo packs all of its pre-D3D8 implementation into one module, d3dimm.dll, -which differs in name from the MS one (note the extra 'm' in the name).
-Thus, copying it to the system folder by accident won't cause any harm. In spite -of that, it is not recommended. -

- -
-

-2. General overview -

-

-If you want to wrap an old DirectX stuff then just copy dgVoodoo's dlls to the -application folder and launch that. DirectX rendering is configurable similarly -to Glide. (See DirectX related CPL options) -DirectDraw is usable without Direct3D but there are no 3D rendering capabilities -exposed to the applications in that case.
-Direct3D8 is a standalone component, no need for DirectDraw to use it. In spite of -that it is a good idea to copy DDraw.dll along with D3D8.dll because a lot of movie -playback system (e.g. DirectShow) rely on DDraw even in D3D8 games. dgVoodoo DDraw -and D3D8 has the ability and internal support to cooperate if the situation requires. -
-
-All the interfaces of old DirectX (that is, all DirectDraw interfaces and -Direct3D 3/5/6/7/8 interfaces) are almost fully supported, and existing implementation -is improved version by version by more and more reverse engineering and finetuning. -
-
-Since DirectX is not a pure hardware-only rendering API, basically two types of -virtual video cards can be used, like back in the old days, hehe. Four extra -video card types are added to utilize different chipset features and provide correct -vendorID/hardwareID. -Available video card types: -

-
    -
  • - One that simulates an old SVGA with hw-capabilites only for 2D blitting - operations.
    With such a card, only a software 3D rendering device can be used. -
  • -
    -
  • - One (imaginary) video card that has its custom hw 3D rendering support.
    - This card provides support for full hardware acceleration including - 'Transform & Light'. -
  • -
    -
  • - GeForce4 Ti 4800 -
  • -
  • - ATI Radeon 8500 -
  • -
  • - Matrox Parhelia-512 -
  • -
  • - GeForce FX 5700 Ultra -
  • -
- -

-For more detailed capabilities, see the technical info. -

-Software rendering devices does not use real software rendering in dgVoodoo. I -think that a software rasterizer has no reason for existence nowadays and didn't -want to write one just for fun so they use hw accelerated rendering in the -background. The point is, towards the applications they logically appear as -software devices. -

-DirectX renderer needs less GPU power (for general cases) than Glide renderer but -it uses relatively complex precompiled shaders too (since whole of the fixed -function vertex/pixel pipeline has to be mapped to pure shader functionality). -

-DX emulation has a method for fast CPU-access of locked surfaces. The current -method is not the final version and going to be improved later. -The reason of not using that one all the time but it is up to the user's choice -is that this method is not 100% safe and can cause crashes under certain -circumstances. It depends on the wrapped application. -

-Important to note that compatibility with MS DirectDraw is not completely -guaranteed, especially with very old applications written in the win95/Win98 era. -Those applications might utilize DirectDraw/GDI interaction which is not fully -supported in dgVoodoo. I would like to improve that somehow, in later versions. -

- -
-

-3. Some technical info -

- -

-I say 'almost fully supported' when talking about DX support because there are -some functions on certain interfaces of which functionality is somewhat unclear -or totally unimportant, so they either not implemented at all or just -partially because I did not have time and patience to figure out their exact -behavior. Think about a total of 5-6 functions of all the DX interfaces, -I hardly believe that anything used them. -

-For DX8.1, the following features are not implemented but planned to be in the -future: -

-
    -
  • Higher-Order Primitives (maybe some day)
  • -
- -

-................................................................................ -

- -Internal virtual 3D card has the following 3D hardware capabilities: - -

- -
    -
  • Supports transforming and all kind of lighting with flat, Gouraud and Phong - shading, max 8 active lights
  • -
  • Supports 6 clipping planes
  • -
  • Supports vertex bending with 3+1 weights
  • -
  • Supports matrix palette of 256 elements for indexed vertex blending
  • -
  • Supports texture coordinate generating & transformation, projective texturing
  • -
  • Supports all contemporary pixel formats for textures and render targets with - four different RGBA order (altough the order is not yet exposed in the CPL app)
  • -
  • Supports compressed textures (DXTC1-5)
  • -
  • Supports volume textures with limited number of texture formats
  • -
  • Supports Z-buffer (of course) and stenciling (but there is no W-buffer)
  • -
  • Supports vertex and pixel fog
  • -
  • Supports colorkeying with one texture (with colorkey blending or - colorkey discarding)
  • -
  • Supports all texture sampling modes
  • -
  • Paletted textures
  • -
  • Depth textures
  • -
  • 16 vertex streams
  • -
  • Vertex tweening
  • -
  • Supports point sprites
  • -
- -

-* Additionally, if dynamic shader compiling IS NOT AVAILABLE then -

- -
    -
  • Supports 4 texture stages and all DX7-level texture blending operations and - arguments on each of them including bump mapping
  • -
  • DX8-level vertex/pixel pipeline is UNAVAILABLE
  • -
- -

-* if dynamic shader compiling IS AVAILABLE then -

- -
    -
  • Supports all of the 8 texture stages and all DX8-level texture blending - operations and arguments on each of them
  • -
  • All types of DX8.1 bytecode shaders are supported
    - - vs1.0, vs1.1
    - ps1.0, ps1.1, ps1.2, ps1.3, ps1.4
  • - -
  • 256 vertex shader constants
  • -
- -

-The other 4 card types are not an exact emulation of the given chipsets with some -real ATI/nVidia/Matrox driver version. They are just present to bias the available -rendering capabilities and properties toward a real ATI, nVidia or Matrox card: -

- -

-GeForce4 Ti 4800 capabilities: -

- -
    -
  • Same as the internal virtual 3D card, except:
  • -
  • No 32 bit z-buffer support
  • -
  • Full cut colorkeying
  • -
  • No indexed vertex blending
  • -
  • Maximum supported pixel shader version is ps1.3
  • -
  • Max 96 vertex shader constants
  • -
- -

-ATI Radeon 8500 capabilities: -

- -
    -
  • Same as the internal virtual 3D card, except:
  • -
  • No 32 bit z-buffer support
  • -
  • Plain colorkeying
  • -
  • Max 57 matrices for indexed vertex blending
  • -
  • No paletted texture support
  • -
  • 8 vertex streams
  • -
  • Max 192 vertex shader constants
  • -
- -

- - Matrox Parhelia-512 capabilities: - -

-
    -
  • Same as the internal virtual 3D card, except:
  • -
  • No 32 bit z-buffer support
  • -
  • Plain colorkeying
  • -
  • No paletted texture support
  • -
  • Maximum supported pixel shader version is ps1.3
  • -
- -

- - GeForce FX 5700 Ultra capabilities: - -

-
    -
  • Same as the internal virtual 3D card, except:
  • -
  • No 32 bit z-buffer support
  • -
  • Full cut colorkeying
  • -
- -Since I cannot enumerate all the capabilities here, check them out with DXCapsViewer if interested.
-Also, those capabilities might be changed in the future if I get more accurate information about the hardwares in question. - -

-................................................................................ -

-DirectDraw and Direct3D objects supports all types of rendering devices that are -supported in original DirectX.
-Direct3D8 support HAL and software device types. -

-In MS pre-Direct3D8 implementations Direct3D7 is the only one that can be used with -hardware vertex transformation and lighting, through a Transform & Light (T&L) -device (but I guess it casually falls back to software vertex processing if the -device driver does not support the complete vertex operation pipeline that is -currently set). -

-In all other cases software vertex processing is used. In dgVoodoo vertex -processing is always routed to the hardware when possible.
-However, it's not so simple: software vertex processing is unavoidable in Direct3D -in some cases, for example when an application wants Direct3D to do only vertex -processing without rendering or to calculate visibility, or, when the rendering -extent must be updated when drawing primitives through a non-T&L device (this is -not too important in practice but I included it because of full compatibility). -Also, vertex processing for Direct3D3 can only be done in software because of the -execution logic of execute buffers.
-It all means that dgVoodoo has a software T&L vertex processing engine like -MS Direct3D for such cases, duplicating the hw functionality. However for -transforming, bending, lighting, fogging and texture coordinate transforming -calculations dgVoodoo uses fast vectorized SSE2 code instead of scalar FPU. -

-(It should be noted that in newer DX version like DX7 MS uses SSE2 too. - What is more, for software emulation of vertex shader code in DX8, MS seems to - apply an internal compiler, that compiles from shader code to x86 bytecode. - Wow, what a nice feature!! I should do the same, but probably it all is not too - relevant on modern CPUs.) -
-
- -Phong shading (per-pixel shading) is not supported by MS Direct3D, only -Gouraud (per-vertex). However the internal virtual 3D card can externally be -forced to Phong shading through the CPL app but keep in mind that it can cause -heavy GPU usage because Direct3D lighting is quite complex, typical hardware -implementations supports 8 active lights with a lot of properties and components. -Also, Phong shading is only applicable when the application commits all its -transforming and lighting calculations to the D3D runtime. Unfortunately it is -very common that games do their own T&L calcs and use D3D as a lowlevel rasterizer -for the rest. It is especially true when a game is written for multiple platforms -or multiple 3D APIs like Glide, D3D, OpenGL, etc. Direct3D3 always uses software -vertex processing so Phong shading cannot be applied there at all. -

-DX8 is a horse of another colour from the beginning of a new era. Applications -written for that usually heavily utilize multiple vertex streams through real -vertex and index buffers along with built-in hw T&L pipeline and/or shaders -without any calculations done in software. -

-Phong shading is only applicable with full fixed function vertex/pixel pipeline -usage. If an application is rendering through a vertex and/or pixel shader in DX8 -then Phong cannot be utilized. -
- -

- -
-

-4. Application resolutions and refresh rates -

- -

-An application using DirectX can only detect available resolutions and -associated refresh rates by asking DirectDraw/DX8 to enumerate them. There are two -slight problems with it in practice: -

-
    -
  • Modern hardware does not necessarily report some low resolutions like 320x200, - 640x480, etc.
  • -
  • Old hardware was not able to report refresh rates or query the current one in - general, back then when 60/75Hz CRTs were the standard displays. Thus, most of - the games/applications just used 0 for refresh rate when setting the resolution - which means 'unspecified or default' refresh rate.
  • -
- -

-To workaround the first case, dgVoodoo keeps a list of 'classic' resolutions. -These are the following: -

- - -
    -
  • 320 x 200 (X-mode is also supported in DDraw)
  • -
  • 320 x 240, (X-mode is also supported in DDraw)
  • -
  • 640 x 400,
  • -
  • 640 x 480,
  • -
  • 800 x 600,
  • -
  • 1024 x 768,
  • -
  • 1280 x 1024
  • -
-
- -

-If a resolution of that list is not amongst the ones that your modern adapter -reports then dgVoodoo forces enumerating it to the application. -

-As for the refresh rates, if an application does not specifify one of the -enumerated ones but specifies 0 (default) then dgVoodoo finds and applies the -natively supported one that is most closest to 60Hz. -

-If you want to make sure or would like to use a custom refresh rate then -you can override that through the resolution selector combo box (DirectX tab).
-For details, see chapter 'Resolution and refresh rate overriding' in the general readme. -

-If the refresh rate is overridden then all resolutions are enumerated with the -overidden value to the applications. -

- -
-

-5. About fullscreen and windowed mode -

- -

-Choosing fullscreen or windowed working mode is part of the DirectDraw API. Some -games or demoscene stuffs run only in fullscreen so one could think what cool it -would be to have them running in windowed mode. I thought the same so wanted to -enable by default the same method to switch between them as used for Glide. -There are some problems however: the ways handling fullscreen and windowed mode -via DirectDraw are totally different in the aspect of the driving code. So, -forcing an application into an unexpected situation may cause glitches or crashes. -Also, a game may have its on mechanism for mode switching with which dgVoodoo -could conflict. Due to those theoretic things, and because I experinced some -problems with some games, I decided to emulate the original DirectDraw behavior -by default: when a fullscreen application loses the focus then its window gets -minimized and when it regains that its window is restored and enters fullscreen -again and no manual switch is available. Also, there are no changes applied on the -app window like style and overridden messages, etc. -

-If you make sure that a given game does not conflict with dgVoodoo's Alt-Enter -thing then you can enable that in the CPL app. Also, you can force it to windowed -mode if 'app controlled fullscreen/windowed' option is disabled at the game -startup (and choose windowed mode in the general settings), without Alt-Enter. -Forcing a windowed application to fullscreen can only be done by manual switch -because there is no way to 1) detect when an application begins its rendering and -2) switch to fullscreen. -

-(But, think about it, windowed to fullscreen does not make any sense. The -resolution used comes from the window size but the window may get resized or -repositioned when switching mode, so..., it's confusing.) -

-What is more, since DirectDraw was a one-monitor-API in practice, integrating windowed -applications in a multimonitor environment is already a problem even for MS, -I think. If such an app is even forced to fullscreen mode then it may crash or -misworks for reasons I do not want to word here. -

-Lost mode is emulated in default DX emulation mode, namely when switching -between windowed/fullscreen mode by Alt-Enter is disabled. This is because some -DX applications count on losing their surfaces when their window loses focus and -their code paths can be mislead if they remain 'unlost'. (This is a result of bad -programming technique as DX SDKs clearly state that an application shouldn't -rely on window focus lost or any other circumstances.) -

-On the other hand, there are incomplete or buggy DX applications that can't -restore when they get reactivated and just get stuck. So, introducing lostmode -emulation is up to a potential feature loss, as such applications likely worked -well with older dgVoodoo versions. In order to keep this feature dgVoodoo applies -auto-restore for the needed elements when such a situation is detected. -

- -
-

-6. DirectX Control Panel (CPL) options -

- -
    -
  • Disable and passthru to real DirectX -

    - As it says, if you want to disable DirectX without - removing dgVoodoo's DLLs then use this option. -

  • - -
  • Videocard -

    - You can select between the internal virtual 2D (SVGA) - and 3D accelerated cards. -

  • - -
  • VRAM -

    - Onboard videomemory of the selected videocard. -

  • - -
  • Filtering -

    - Various texture filtering modes can be forced here, starting from simple point sampled to high level anisotropic. - Keep in mind however that forcing other than the application default can result in rendering glitches, or it can - completely break some visual effects! -

  • - -
  • No mipmapping -

    - Disabling mipmappig (forcing largest mip texture level). -

  • - - -
  • Resolution -

    - Here you can override the application resolution and - refresh rate. See detailed explanation of static/dynamic - resolutions in the general Readme. -

  • - -
  • Antialiasing -

    - For 3D rendered surfaces you can force MSAA. - Option 'Application controlled' is meaningful only for DX8. For DDraw/DX it is equivalent to 'Off'. -

  • - -
  • Application controlled fullscreen/windowed state -

    - Since choosing this state is part of DirectDraw, you - must disable this option to control that via general - settings. -

  • - -
  • Disable Alt-Enter to toggle screen state -

    - To prevent conflicting with an application built-in - Alt-Enter handler. -

  • - -
  • Bilinear blit stretch -

    - 2D bitmap copying can involve stretching in DirectDraw. - However the applied stretching filter cannot be controlled - via the API and early hw used simple point sampling. - It can result pixelated appearance here and there but - you can force bilinear filtering which looks cooler for - most cases. But, it can also introduce various artifacts - especially when colorkeying is also applied during - blitting.
    - Try forcing bilinear texture filtering for achieving similar - effects for D3D8 games. -

  • - -
  • Apply Phong shading when possible -

    - See technical info. -

  • -
  • Force vSync -

    - Forcing vertical retrace. -

  • -
  • Fast video memory access -

    - Provides an alternative method for accessing video memory - of DX surfaces by the CPU. Try this one if an application - renders at a low frame rate. -

  • -
  • dgVoodoo Watermark -

    - Similarly to 3Dfx watermark in Glide, you can use - dgVoodoo's own one to see if something is driven through - dgVoodoo's DirectX. -

  • -
- -
-

-7. Tips and known issues -

- -
    -
  • Always try to run an application with 'application controlled fs/windowed state' - and disabled 'Alt-Enter' for the first time. If 'Alt-Enter' is enabled then - the wrapper makes some changes to the application window which can cause some - applications to miswork or even crash.
  • -
  • Also, always try an application without enabling 'Fast video memory access' for - the first time as that method may be unsafe for the application in question, and, - unortunately can cause inappropriate working. -
  • -
  • - Upscaling (forcing resolution) for old 8 bit paletted DDraw applications are not - recommended. Paletted things and forced resolution don't work well together, - but I want to fix it in the future.
    - Upscaling scenes by forcing resolution, where no 3D-rendered objects are presents, - has no sense anyway. -
  • -
  • Forcing vertical retrace is not always a good idea. There are games of which - loaders refreshes the screen at maximum speed (without vertical sync) while - loading textures, meshes, etc. If vSync is forced to on then it can take ages - while it all gets over.
  • -
- -
-

- - - 8. Why doesn't dgVoodoo DX emulation start up? - - -

-

- I got reports about cases with dgVoodoo DirectX emulation not starting up. - The story is simple, one copies the DX dll files into the given application folder, - next to the executable, makes sure that DX emulation is enabled on the CPL, and in - spite of that, when starting the application dgVoodoo isn't utilized at all, dgVoodoo - watermark doesn't show up in the corner if the app starts at all. - Thanks to the Guys on Vogons, who are helping me a lot, they come out with 2 reasons: -

-
    -
  • - Some of the DX dlls (ddraw.dll, d3d8.dll) are registered in the KnownDLLs section of - the Windows registry. When they are then the operating system always loads the system - versions of those dlls. Removing the entries from
    - "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs"
    - is undangerous and can be safely done with Regedit. - This issue causes the majority of the problems. -
  • -
  • - A bit marginal but existing problem with DirectDraw is that it can be initialized through - Windows' OLE mechanism which identifies objects with GUIDs. The 'GUID-dll name' pairs are - also stored in Windows registry but Microsoft switched to absolute dll paths in Windows 8(?) - instead of the relative ones present in Windows 7, so the OLE-accessed DirectDraw is always - the system one in that case. The registry entries in question can be changed back to relative paths, - but since Regedit requires TrustedInstaller privilege level for that, and you have to search for - the entries yourself, it is a complicated process, I don't recommend you to experiment with it. - Luckily most of the old programs access DirectDraw directly, bypassing OLE. -
  • -
-

- I know that these details are technical like hell, and I don't at all expect an average user to - tinker the operating system registry by hand. I just write this info here because I think it's useful for - advanced users and experts to begin with. A dgVoodoo tool doing it all would be fine but currently doesn't - exist one. -

- - - - \ No newline at end of file diff --git a/EXE/dgVoodooReadmeDirectX.url b/EXE/dgVoodooReadmeDirectX.url new file mode 100644 index 0000000..2947c6e --- /dev/null +++ b/EXE/dgVoodooReadmeDirectX.url @@ -0,0 +1,2 @@ +[InternetShortcut] +URL=http://dege.fw.hu/dgVoodoo2/ReadmeDirectX/ diff --git a/script.xml b/script.xml index 957aa03..249b9d9 100644 --- a/script.xml +++ b/script.xml @@ -349,6 +349,9 @@ Credits: + + + @@ -658,9 +661,7 @@ position = 4da2fa, 0.5165, 4da30e, -0.3065, -1.0 - - - +