UHQ Community Manager
  • Content Count

  • Joined

  • Last visited

  • Days Won


Files posted by Eliteone

  1. dgVoodoo 2

    This file has been reported to fix the black screen when going under water in NOLF.
    dgVoodoo 2.55: Glide, DirectDraw/Direct3D and D3D8 to Direct3D11 Wrapper
    Released: March 24, 2018
    Author: Dege

    Copyright (c) 2013-2018
    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 additional options
    10. General tips and known issues
    11. Special release version with debug layer
    12. 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:
    Official dgVoodoo forum where you can contact me and the dgVoodoo community is at:

    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:
    Hardware rendering at GPU feature level 10.1 (recommended) Hardware rendering at GPU feature level 10.0 (there are some restrictions) Software rendering through Microsoft WARP renderer The API's it currently can wrap are:
    Glide 2.11, Glide 2.45, Glide 3.1 and Glide 3.1 Napalm DirectX 1-7 (all versions of DirectDraw and Direct3D up to version 7) Direct3D 8.1 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:
    Using its precompiled shaders - it is the less efficient mode (legacy) and doesn't provide DX8-level vertex/pixel pipeline functionality Using an external HLSL shader compiler - this is the most efficient and recommended mode and referred as 'dynamic shader compiling'  
    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
    Operating system: Windows Vista/7/8/10 Hardware: GPU supporting DirectX feature level 10.0. Optional and recommended:
    GPU supporting DirectX feature level 10.1 HLSL shader compiler (D3DCompiler_43 or D3DCompiler_47)
    (note that D3DCompiler_47 is part of Windows 10)  
    4. Test results
    We can examine this in two aspects:
    Used hardware and performance
    I've tested and run different versions of dgVoodoo2 on the following GPU's: Intel HD 2000 (feature level 10.0 only) GeForce 8600 GT (feature level 10.0 only) Intel HD 4000 Geforce GT 610 AMD HD 6450 Intel HD Graphics 530 GeForce GTS 450 AMD HD 7850 GeForce GTX Ti560 (RIP) AMD R7 360 GeForce GTX 1060 If dynamic shader compiling is utilized then dgVoodoo generally performs quite well on all hardware except integrated chips (like Intel HD 2000 and 4000).
    Using only precompiled shaders requires a mid-class video card at least, and the low-end ones (intended for office-like usage) like Geforce GT 610 and AMD HD 6450 are not recommended.
    Accuracy of the emulation, individual games and applications
    Of course it's not perfect but I think I got very nice results in general. I maintain expanding lists for games and demos, for DirectX emulation:
    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
    Windows\System32 folder for 32 bit operating systems Windows\SysWOW64 folder for 64 bit operating systems 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). Current configuration is stored in a file named 'dgVoodoo.conf'. Its format can either be binary or a textual INI-file for manual editing.
    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:
    Folder of the wrapper DLL Folder of the application (EXE) User application data folder If the config file can be found in none of them then the default config is used.
    For modifying config files, you can either use dgVoodoo Control Panel (dgVoodooCpl) or edit it manually with a text editor. dgVoodooCPL provides convenient GUI interface for the most relevant options while manual editing gives you free access to special options. In dgVoodooCpl you can choose a folder where you can load (from) and save the current configuration. Once 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.
    Note that
    CPL always writes INI format config file (unlike previous versions) - and you can edit it manually, passing over the CPL CPL doesn't expose all the available configuration options but only the most common used ones. Rarely used and special ones (referenced as additional ones) can be changed manually.  
    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:
    If the wrapped app and the CPL runs on different privilege levels (admin/nonadmin) then the app won't appear in the instance list or they cannot communicate to each other. Sorry for the inconvenience.
    Switching resolution or MSAA can only be performed perfectly if the application re-renders everything on each frame. If it uses or keeps previously (once-)rendered things like cockpits or similars then they will be missing as will not get re-rendered. (Glide only)
    A folder inserted formerly into the list can be removed. Also, list of the running instances can be refreshed.
    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:
    Static resolutions Those are enumerated by your videocard for the selected display output. Select any of them, and the wrapper will force that one (along with the selected refresh rate), no matter what resolution the application wants to set.
    Resolution 'Unforced' means always using the current application resolution, so there is no overriding at all.

    Dynamic resolutions First, a little explanation on what the practical problems are with static resolutions (especially for DirectX applications).
    The application may use multiple resolutions for different parts like movies, menus and ingame. The statically chosen resolution may not have the same aspect ratio as those of them. For app-resolutions with different aspect ratios like 4:3 vs 16:9 it's a problem because one of them will be displayed hugely distorted.
    Even if the app uses only one resolution, and you can select or type another one with the same aspect ratio, then selecting the proper resolution is still not an easy task:
    a) you don't necessarily know what resolution the app uses
    you don't necessarily know what the max resolution your display is capable of
    c) even if you know both of them, you may have to calculate manually the desired resolution.
    (My own problem was the following: I sat down in front of a new computer with a 4K monitor and wanted to try out some stuffs through dgVoodoo. I faced the fact that I didn't know the exact monitor resolution, I also didn't know what res the stuffs to try were using. I just wanted the maximum available resolution to be forced that keeps the aspect ratio.)
    Dynamic resolution is the synonim of "let the wrapper choose the current resolution for you". The maximum, and also the base used for calculating the current resolution, is your desktop resolution. The base rule is that the wrapper always calculates the maximum available resolution for the given scaling mode, but
    you can restrict the base maximum to FullHD (1920x1080) or QHD (2560x1440) for weaker GPUs (like low-end cards or maybe, integrated chips) with large-res display outputs, and
    you can restrict the scale factor to integer numbers.
    (ISF - integer scale factor)
    So, dynamic resolutions are the following: 2x, 3x, ...: Integer multiples of application resolutions; doubled, tripled, etc. Max: Maximum resolution available Max ISF: Maximum resolution with integer scale factor available Max FHD: Maximum resolution available (but restricted to 1920x1080) Max FHD ISF: Maximum resolution with integer scale factor available (but restricted to 1920x1080) Max QHD: Maximum resolution available (but restricted to 2560x1440) Max QHD ISF: Maximum resolution with integer scale factor available (but restricted to 2560x1440) By default, dynamic resolutions don't have refresh rate even if enumerating refresh rates is enabled. When working with a dynamic resolution, then the refresh rate is undefined and it is up to the wrapper and the video card that what rate will be used (probably the one at which desktop is driven).
    Custom resolutions A custom resolution is either a static one that is not in the enumerated list, or one that is partially overridden. Defining a custom resolution through the CPL is about typing the string -manually into the combo box- describing the resolution/refresh rate pair.
    Resolution and refresh rate can be overridden independently on each other. Here are some examples (don't type quotation marks):
    "128x128, 60" - means static resolution 128x128 at forced rate of 60Hz "128x128, 0" or just "128x128" - means static resolution 128x128 without overridden refresh rate "0x0, 75" or "unforced, 75" - means unforced (static) resolution with forced 75Hz "max isf, 83" - means Max ISF dynamic resolution with forced 83Hz
    If your resolution and refresh rate is in the list then it is better to select it from there than typing it manually. It is because e.g. 60Hz is not exactly 60Hz in practice but 60.01Hz or 59.95Hz or so, depending on your display hardware. dgVoodoo always handles the refresh rates in their exact rational form but it cannot do that with manually typed ones.
    When displaying a refresh rate in the combo box, dgVoodoo truncates the value. So, for example, 59.95Hz will appear as 59Hz in the list, while the display manufacturer probably claims that your display supports 60Hz. Don't let it mislead you. It is all about truncating or rounding the values.  
    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  
      Unspecified Centered Stretched Stretch with AR Max AS (A, D) AS (A, D) D AS (A, D) Max ISF IAS (A, D) IAS (A, D) * remarks IAS (A, D) Max FHD AS (A, min (D,F)) AS (A, min (D,F)) min (D,F) AS (A, min (D,F)) Max FHD ISF IAS (A, min (D,F)) IAS (A, min (D,F)) * remarks IAS (A, min (D,F)) Max QHD AS (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)) * remarks IAS (A, min (D,Q))
    Resolution is calculated in the same way for scaling mode 'Unspecified', 'Centered' and 'Stretch with AR'.
    Stretched scaling mode with ISF tries to stretch to min([D|F|Q]) and the scale factor for both direction is the integer part of the minimum of
    min ([Dx|Fx|Qx])/Ax and min ([Dy|Fy|Qy])/Ay (ratios of X/Y directions).
    I'd like to say some words about what happens on multimonitor systems with dynamic resolution forcing:
    Glide: when switching from windowed mode to fullscreen then a new forced resolution is calculated by the wrapper, based on the native res of the display on which the full screen output will appear.
    DX: It's not so flexible at all, unfortunately. Since DX impl doesn't support changing resolution during its working, it cannot do the same as Glide when switching into fullscreen. Also, since display outputs are enumerated to the application, resolution calculation can rely only on the native res of the output on which DX is initialized (so changing the output of a running DX emulated app from the CPL application is without avail, won't affect the next resolution calculation).
    8. General Control Panel (CPL) options

    Options on the General tab affects all wrapped APIs, that is, currently Glide and DirectX.
    Output API
    Three output API's are available: Direct3D11 feature level 10.1
    Direct3D11 feature level 10.0
    Direct3D11 Microsoft WARP renderer

    D3D11 with FL10.0 is designed to be used with late DX 10.0 hardware and has some limitations:
    No mipmapping in Glide rendering Limited operations on Z-buffers Buffers with forced MSAA can only be rendering targets; they cannot be used as depth textures source of copy operations (Blit in DDraw) locked for CPU-access (Lock in DDraw/ LockRect in D3D8) Faces of 3D-rendered cube-depth buffers cannot be source of copy operations (Blit in DDraw) locked for CPU-access (Lock in DDraw/ LockRect in D3D8) WARP is a software renderer, I intended it to be kind of a reference driver but I experienced some rendering errors with it unfortunately.
    Video card (adapter)
    In case you have more than one, then
    Glide: which one to use for rendering. Option 'All of them' is equivalent to selecting the first video card in the list. DirectX: it is a multi-device capable API so you can choose which adapter(s) are to be enabled for the emulation.  
    Monitor (output)
    If you have multiple monitors then you can choose which one(s) (connected to the selected adapter):
    Glide: which monitor is used for fullscreen output. When 'Default' is selected then switching from windowed to fullscreen during playing a game selects the monitor containing the largest part of the game window.
    It can be overridden dynamically on a running Glide wrapped application and it also affects dynamic resolution calculating (see resolution overriding). DirectX: which monitor(s) to enable to appear as DX devices to the application. 'Default' enables all the monitors connected to the selected adapter. When the game or application goes into fullscreen then it always happens on the monitor (device) that the game/application selected for use. In case of a multidevice environment games and applications often (and silently) selects the first available device which generally corresponds to the primary monitor, but advanced apps allows the user to configure it through the app itself. 
    It can be overridden dynamically on a running DirectX-wrapped application however it only affects the output, it is all about pure visuality. It doesn't affects dynamic resolution calculating (see resolution overriding) and also, the application shall continue to see the corresponding device in it original state (keep in mind that it can conflict with the app).  
    Full Screen / Windowed
    See section "Usage".
    Unspecified/Centered/Scaled/Scaled with Aspect Ratio kept, for full screen
    If the current resolution the wrapped app using does not match any natural resolution your adapter supports then the display can be strethed out to fit all the screen or its size can be left unchanged but centered. NOTE that if your video card supports overriding the scaling method of applications, and you'd like to apply a scaling with aspect ratio then it is recommended to set dgVoodoo's scaling method to 'Unspecified' + set the scaling mode on your video card control panel because dgVoodoo's internal scaling is unfortunately not a sterling one. It implies that you may experience various problems like wrong mouse cursor or glitches in rendering in certain applications. Scaling can only be done well (transparently) on the GPU/display side. 
    C64-like output: well, if you are not a former C64 owner and fan, don't even try it, I'm sure you won't like it at all. As dgVoodoo is my main hobby programming playground these times I tried some algorhytms as part of it. It's not really a feature, but the result of some former experimenting and can be funny for some scene demos.
    Progressive scanline order
    Default scanline order is interlaced or progressive. It is up to the output display device which one to choose altough it chooses progressive when it is possible, I think, so that when the device is capable of displaying a given resolution with a given refresh rate with progressive order. Otherwise it might choose interlaced order with halved physical refresh rate. If this option is enabled, you can only see enumerated resolutions that are displayable with progressive order. However, if a custom resolution is defined then it may causes the output device to use lower physical resolution than the wrapper set.
    Enumerate refresh rates
    Enables the CPL application to enumerate refresh rates for each resolution and enables the wrapper to override the default refresh rate of the application.However using other than the app default can cause heavy animation lagging or glitches!
    Color adjustments
    Brightness, color intensity (saturation) and contrast can be finetuned here. The defaults are good in general so treat this as a cool extra. (I'm using it in some cases for making colors more vital to get a bit cartoon-like effect.)
    Inherit Color Profile in full screen mode
    When this option is enabled then dgVoodoo won't change the physical gamma ramp of the screen but instead it solves the color adjustments just like in windowed mode and so your pre-configured color profile(s) for the given monitor(s) remain(s) preserved. Color adjustments are relative to the predefined color profile in that case.
    Keep window aspect ratio
    In windowed mode, when sizing the window, you can keep the aspect ratio of the current resolution.
    Capture mouse
    It's useful mainly (but not only) for multimonitor systems. If this is enabled then the mouse cursor is forced into the application window to prevent accidental mis-clicks outside of it.
    Center app window
    When a game controlling the mouse input is being run in windowed mode then it's a pain to move it's window into the screen, so I thought it's a valuable option (was a request too), but it can conflict with the mouse input or the app itself.
    9. General additional options
    DesktopResolution dgVoodoo takes the current desktop resolution as a base to do its calculations for self-done output scaling and other things like automatic pixel multiplying factor value. There some games however that pre-set the desktop resolution (typically to some low resolution) before dgVoodoo gets in action, spoiling the rendering. You can define your native desktop resolution here for such cases. If defined then this resolution is used for all outputs of the desktop.
    DeframerSize When resolution is forced to other than the app default then a black frame is drawn around the output image coming from a wrapped API to remove scaling artifacts - frame thickness can be defined in pixels (max 16, 0 = disable) (default is 1).
    ImageScaleFactor Integer factor for scaling the output image coming from a wrapped API (pixel multiplying). This is independent on scaling mode. 0 = maximum available factor. Default is 1 (no multiplying). Separate factors can be defined for horizontal and vertical directions.
    ForceNearestPointFilter When the scaling is done by the wrapper for the given scaling mode, you can force nearest point filtering instead of bilinear one.
    FreeMouse When enabled, physical mouse is free to move inside the game window when using emulated scaling and/or application and forced resolution differs; can be useful when a game relies on the physical window size.
    10. General tips and known issues
    Forcing things (like resolution, antialiasing, texture filtering, etc) is not a healthy thing. If an application or game uses low resolution or point sampled textures or anything dissonant to the eye then it has reasons for that. It is not because the programmers were so lame but of avoiding artifacts that would otherwise get brought in (typical example is a bilinear filtered texture with colorkey based transparency). If you force anything then potentially get one of those artifacts. If you can live with it then it is ok, use the wrapper in forced mode. If not then disable all forcings and use the particular game or application in the mode it was designed for, because no general method exists to fix such type of artifacts. Controlling antialiasing cannot be done on per-primitive basis in Direct3D 11 when feature set larger than 10.0 is used. That is why antialiased drawing is not emulated in Glide automatically in this version in any way (per-primitive or per-edge). It can only be forced globally in the CPL application. Fullscreen gamma ramp may not be supported by your card. nVidia and ATI seem to handle it as expected but (e.g.) Intel does not. When an application is being run in compatibility mode (Win98/XP etc) then the user's application data folder is different than the OS default. Therefore dgVoodoo cannot read the global config file and the default config gets applied if no local config file is present. The preferred way is creating a local config for such cases if other than the default needed. (Perhaps using the user's appdata folder is not a too good idea after all, I might change it later.) If you have a multimonitor system then always try a game to run on the primary one for the first time. Some games lock the mouse cursor to the screen area where game window is assumed to be (the left-top corner of the desktop). If such a game is being forced onto another monitor then clicking in the game causes application focus loss because its window is not under the mouse cursor. I don't know why but overriding refresh rates by arbitrary values (in the resolution selector combo box) does not seem to work for DirectX emulation. It is still subject to investigation because the code handling this is common for both Glide and DirectX.  
    11. Special release version with debug layer
    Special release version of dgVoodoo contains an additional validator and report layer. Its purpose is
    1) giving feedback to the user about potential error conditions, what currently is happening, and, how dgVoodoo is driven by the application at all 2) helping debugging a given application/game by the (extensive) feedback and opening the possibility to break into the debugger dgVoodoo currently has 2 main types for debug feedback
    Simple messages with 3 subtypes which can be disabled or associated with a debugger break INFO: harmless message about various events like creating/releasing an API object, reading a config file, loading a module, etc. WARNING: a message about a potential error condition ERROR: a message about an API driving error or an internal error of dgVoodoo. The latter is fatal, while the prior one may be normal.
    Tracing - means the full logging of API calls made to dgVoodoo and some additional information of dgVoodoo internals. Level 0: Tracing disabled Level 1: Logging of API calls Level 2: Logging of API calls + some additional info Messages and tracing are independent on each other. Tracing is mainly for devs, for quick and average usage only the messages are recommended.
    All of them are written to the debug output, logging to file is not yet implemented.

    So, I recommend you to use DebugView or much more DebugView++. They are very cool applications for cases when no any debugger is available. Also, if you have more than one monitors then you can watch the log in realtime: put DebugView++ on one display and run the game on another.
    Messages have a '[dgVoodoo]' prefix so the best way to check out a game with dgVoodoo's debug layer is enabling filtering to the 'dgVoodoo' substring (Crtl-L in DebugView and F5 in DebugView++). Every single log output appear in new lines in DebugView/DebugView++ - this is nice, except for some tracing messages written to the output part by part, like D3D8 disassembled shaders. Unfortunately they appear nastily because of that.
    It's not really a big problem however because I cannot recommend you to enable tracing. It's much more intended for developers but if you want to use it after all then do it with DebugView++ or a debugger like Visual Studio 2015 because feedback is so tremendous that only tools with asynchronous debug output window are able to handle it. Tools with synchronous debug output like DebugView won't be able to keep up with it and make your game/app crawl at speed near zero.
    I must emphasize:
    Do not look for a miracle when using the debug layer! If some game doesn't work for you then it can give you some useful feedback on what's going on, or you can see if dgVoodoo is utilized at all but won't necessarily tell you why the game crashes, for example.
    Also, if you see an ERROR entry in the log then it doesn't necessarily mean you did something wrong or there is a problem with your game. Many games rely on error codes got back from an API. So, for example if you see such a log like the following snippet ... [15500] [dgVoodoo] INFO: Direct3DDevice (0D3967D8)::EnumTextureFormats: Format XRGB8888 is enumerated to the application. [15500] [dgVoodoo] INFO: Direct3DDevice (0D3967D8)::EnumTextureFormats: Format ARGB8888 is enumerated to the application. [15500] [dgVoodoo] INFO: Direct3DDevice (0D3967D8) is released. [15500] [dgVoodoo] ERROR: DirectDrawSurface (0D2380C8)::DeleteAttachedSurface: Failed, HRESULT: DDERR_SURFACENOTATTACHED [15500] [dgVoodoo] INFO: DirectDrawSurface (0D2380C8) Plain offscreen rendertarget is released. [15500] [dgVoodoo] INFO: Direct3D (0ABC87B0)::EnumDevices: Device enumerated, Name: "Direct3D HAL", Description: "dgVoodoo Hardware A... ... Then the error entry about failed 'DeleteAttachedSurface' is not really an error. The application tried to delete a potential attached z-buffer, just to make sure, and doesn't care about the result. dgVoodoo however treat it as an error because it caused an error in an API method. It's really impossible to make a decision about classifying some conditions as an error or just a plain warning.
    But let's look at another case: one of my game just crashes right at startup. What could be the reason? The debug output is: ... [21964] [dgVoodoo] INFO: Direct3D8 (077BCEC8) Virtual video card is 'dgVoodoo Virtual 3D Accelerated' with 64MB onboard memory. [21964] [dgVoodoo] ERROR: Direct3D8 (077BCEC8): Validation of D3D8 swapchain presentation parameters failed. Reason: display mode "800x600, 72Hz" is required but not supported by output device: 0, DeviceType: D3DDEVT... [21964] [dgVoodoo] ERROR: Direct3DDevice8 (0EE99530)::Init: Cannot create device implicit swapchain. [21964] [dgVoodoo] ERROR: Direct3D8 (077BCEC8)::CreateDevice: Initializing Direct3DDevice8 (0EE99530) failed. ... Ah, OK. Previously I configured the game to run on a display at 72Hz but now I'm trying to run it on another that does not support this refresh rate at this resolution, so D3D8 initialization failed in dgVoodoo and so the game crashed due to lack of error checking.
    Use the spec release only for trying to solve an extant problem with an applicaiton. Spec release does some extra checking and validation compared to normal dgVoodoo releases and it can bite off from the speed or cause stuttering.  
    12. Change log
    2.55 Special release of dgVoodoo with DebugLayer providing feedback information is now available INFO, WARNING and ERROR type messages with severity levels, including breaking into debugger API call tracing with detailed information Migrating to INI format configuration files - also, adding rarely needed/used configuration options for advanced users and game hacking like Dithering for both Glide and DirectX Deframer Pixel multiplied output with arbitrary or automatic scale factor Arbitrary extra DirectX resolutions New scaling mode for centered appearance, scaling is done by the wrapper New dynamic resolution modes (2x, 3x, ...) are added Fixes for scaled output done by the wrapper ('Stretched, * AR' and 'Centered, AR' modes with larger than max of display-supported output images) Fix for 'Best available one' output type when only WARP is available Improved shader handling: Resource cache for reuse of D3D8 compiled shaders Dynamic shader compiling is moved to a background thread to avoid/minimize lags
    Glide: for all compiled shaders
    DirectX: for all compiled shaders that can be substituted by precompiled ones; also, unneeded shader variants could be unnecessary compiled, fixed Control Panel App Folder/location list handling code is rewritten Appearance is now PerMonitorAwareV2 for DPI scaling Cosmetics: missing logo bitmap when monitor scale is >150%, fixed DirectX DllMain detection along with warning messages through the debug layer Surface/texture lock incompatibilites fixed (Zombie Shooter, The Mystery of the Druids) DirectDraw surface-create, cooperative level, PageLock error and other incompatibility fix (Zero Comico, RC de Go, A Bug's Life, Wartorn, Message in a Haunted Mansion, Micro Machines v3) 24 bit surface creation issue in DirectDraw is fixed (Blade Of Darkness lava) Support for partial Z-buffer copy in DirectDraw (The Revenant) Option for disabling the default and classic resolutions Possibility of extra resolutions enumerable to applications is added Bugs causing crash and black screen are fixed (Empires Dawn of The Modern World, Honour & Freedom) Some effort for avoiding app deadlocks in DirectDraw and QuartzHookLayer D3D FVF and other parameter validation incompatibility, fixed (Praetorians, Earthworm Jim 3D) D3D state block incompatibility, fixed (Soldiers of Anarchy) D3D non-W-friendly matrix in ComputeSphereVisibility calcs, fixed (Pac-Man Adventures in Time) Old D3D-lighting incompatibility, fixed (when revising code and docs) D3D lighting issue is fixed (flashing lights in Tomb Raider 4 and hopefully King Of The Roads) Fixing range based fog hw calculations (The Chosen: Well of Souls) ATI and GeForce profiles are modified to force W-pixelfog (compatibility with old drivers) Minor D3D DDI bug fixed (Bear Hero) Minor internal D3D state/lighting bugs fixed (Tonko4) D3D device type 'Software MMX' is removed from Direct3D7 for better compatibility (3D Blitz) Disabling 32 bit z-buffers for Direct3D3/5 (e.g. Shadows of The Empire) D3D FPU state handling incompatibility fix (for general cases, and it fixed nVidia demos Creature, Toy Soldiers and Crystal Ball) D3D colorkey bug fixed (Sponge Bob - Employee of The Month) Minor D3D/D3D8 bugs, D3D11 leaks fixed (my own tests) D3D/D3D8 ProcessVertices and general software vertex processing incompatibility, fixed (RIM - Battle Planets, Mafia with multipass rendering, Micro Commandos) Issue of mixed type D3D8 stream sources is fixed (missing player characters in Final Fantasy XI) D3D8 shader validator bug resulted in uncreated shaders, fixed (Mace Griffin Bounty Hunter) Implementing D3D8 ValidateVertexShader and ValidatePixelShader for Microsoft Shader Assembler (Shadow of Destiny) D3D8 cursor handling and viewport depth scaling bugs fixed (WildFire) D3D8 GetFrontBuffer bug, fixed (Rome Total War) (movies only, ingame still has the old issues) D3D8 device reset fix (S.W.I.N.E.) Some D3D8 thing is fixed (The Gladiators Demo) D3D8 some object handling incompatibility fix (TOCA Racing Drive) Improvements for rendering with incompatible rendertarget/depthstencil buffers (TOCA Racing Drive) Changed behavior of window activating and entering fullscreen mode to Avoid OS issue appearing with Windows 10 Fall Creators Update (e.g. Splinter Cell) Avoid unwanted situations/crashes and improve compatibility (e.g. Hitman 2/3, RavenShield) Glide Clipping issues fixed (Gunmetal) LfbWriteRegion bug, fixed (Blade of Darkness, background images) Other fixes (broken multiadapter handling, manual screen mode changing) 2.54



  2. Lithtech Jupiter Enterprise package WITH NOLF2 Build 69 full source code

    File provided by David Myers
    Ever played Combat Arms, sudden attack, cross fire Medal of Honor Pacific Assault or even FEAR? They all started on this game engine. This is the actual build version it all started on. A game called No One Lives Forever 2.

    Lithtech was a very advanced game engine for its time. At its release date, it supported more advanced shader 3.0 files than any other game engine at the time. It's a great engine, everything is included in these parts.
    What's included in this package
    ALL the plugins needed
    --Photoshop texture file plugins
    --3ds max plugins (import/export model, import/export map/world)
    --alias maya wavefront plugins
    --windows audio codecs.

    Full tools for models/textures/mapping for the game
    --Dedit: Used for compiling maps, adding spawns/effects etc.
    --FXed: Used for editing what's called ClientFX. clientfx houses all the special effects in the game.
    --ModelEdit: Lets you name all the animations of your 3d model files
    --RenderStyleEditor: Lets you control what the lighting does to models

    TONS of sample games for learning how to use the engine

    Source code to NOLF2 Build 69

    Source code to my TPS game

    the Dev version of NOLF2

    the Dev version of TPS

    Linux files

    eventually i will release CAPS (CA Private server) files that we had working.

    Setting this up is very easy. Simply unzip the files to a folder on your c:\ drive and your all set to start learning!



  3. No One Lives Forever GOTY PC media

    The following files are in this download:
    NOLF-GOTY-Setup file. This file will extract the complete game (to C:\games however the installer allows you to choose an alternative install path), patched to the English 1.03 version of the game. Additionally it has  the no-cd patch integrated into it. 
    ISO files of the 2 CDs for the No One Lives Forever game GOTY edition (original released version)
    GOTY zip files. Zip files of the CD media (two files)
    The files are listed in the download in the following order:
    NOLF Goty setup file in .zip format
    Special addition to disclaimer:
    UnityHQ does not promote software piracy.
    As the copyright of this game is in question we leave it up to those who download to decide whether to download or not . By downloading you agree to take full responsibility for doing so and release Unityhq.net/nolfgirl.net from any repercussions for doing so.



  4. NOLF 2 CDs (PC) and media

    NOLF2-Patched-1.3,zip This is a zip file of the complete game. This file will extract the complete game (to C:\games however the installer allows you to choose an alternative install path), patched to the English 1.3 version of the game.  finally it has the no-cd patch integrated into it.   It also contains the latest dgvoodoo2 for additional video settings.
    The first two files in the selection are the disc 1 and 2 zip files.
    File 3 is the Nolf2-Setup.exe in a .zip compressed file.
    Files 4 and 5 and the iso images of the original media. 
    Special addition to disclaimer:
    UnityHQ does not promote software piracy.
    As the copyright of this game is in question we leave it up to those who download to decide whether to download or not . By downloading you agree to take full responsibility for doing so and release Unityhq.net/nolfgirl.net from any repercussions for doing so.



  5. Contract Jack Complete Game

    Contract Jack installs to C:\games folder (Patch can be changed) comes with all patches applied. No other media needed to run program. 
    Special addition to disclaimer:
    UnityHQ does not promote software piracy.
    As the copyright of this game is in question we leave it up to those who download to decide whether to download or not . By downloading you agree to take full responsibility for doing so and release Unityhq.net/nolfgirl.net from any repercussions for doing so.



  6. Mirror's Edge (2009)Fix for EA license server error

    When you get the attached error message when launching the original Mirror's Edge game through Origin.
    To fix this download and extract the two replacement DLL files and place them in the Binaries folder where you installed your Mirror's Edge game. 
    Then launch the game through Origin and it will launch for you.



  7. No One Lives Forever MP Super Map Pack Final

    No One Lives Forever - 1 MP Super Map Pack Final
    This final version of the (JAG) map pack from september 2005, which Sauron maintained since NoLF was released. It contains all the maps that were not deemed to 'buggy' or 'laggy' by the various players on NOLF.
    172 Deathmatch, 114 Assault maps
    Later updates he made were released as PU (parallel-universe.co.uk) map packs. The last one was released in 2007.
    To install, extract to your NOLF custom directory, as with every map/mod, and load it through the launch screen.



  8. No One Lives Forever CD zip files

    Zip files of the 2 CDs for the No One Lives Forever game (PC version- non Goty).
    Note you will need to make at least one post in the forum before downloading this file
    Note NOLF uses a 16 bit installer and will not install on 64 bit operating systems using the original installer. (Post on the forum for help with a workaround for this issue) If you are using Windows 10 UnityHQ.net recommends checking out the NOLF GOTY Edition download to install instead. 
    Special addition to disclaimer:
    UnityHQ does not promote software piracy.
    As the copyright of this game is in question we leave it up to those who download to decide whether to download or not . By downloading you agree to take full responsibility for doing so and release Unityhq.net/nolfgirl.net from any repercussions for doing so.



  9. NOLF for Mac

    Mac version of No One Lives Forever.
    Originally published by MacPlay
    Will need to run with a emulation solution on modern Macs such as SheepShaver
    Special addition to disclaimer:
    UnityHQ does not promote software piracy.
    As the copyright of this game is in question we leave it up to those who download to decide whether to download or not . By downloading you agree to take full responsibility for doing so and release Unityhq.net/nolfgirl.net from any repercussions for doing so.



  10. No One Lives Forever 2 - Mac

    NOLF 2 files for Mac. 
    This is the NOLF2 port from Macplay. 
    The anticipated sequel to the original game, No One Lives Forever 2: A Spy in H.A.R.M.'s Way is a humorous story-driven first person shooter featuring deadly UNITY operative Cate Archer. As Cate you must investigate a super-secret Soviet project that, if successful, could bring about a third world war. Armed with conventional and experimental weaponary and gadgets, you'll explore exotic locales, and contend with deadly agents determined to take Cate out of the spy trade once and for all.
    What harm does H.A.R.M. wish to inflict on secret agent Cate Archer? Find out in the sequel to one of the most highly acclaimed shooters of 2000. Agent Archer employs an vast arsenal of guns and gadgets - plus a wardrobe to die for - in challenging missions that span the globe. Powered by the new LithTech Jupiter System for the latest in graphic brilliance.
    Mulitple Play Modes: Charge in with guns blazing or focus on stealth to evade and outsmart your enemy. Includes over 40 action-packed single-player levels. Mission-based cooperative multiplayer - up to 4 players work together as a team. Travel to exotic locales as diverse as India, Japan, Siberia and Ohio, and immerse yourself in secret-agent intrigue. Square off against despicable new villains like elusive Ninjas, wiley Mimes and ruthless Soviets, and encounter some familiar foes as well. Co-op: Two agents that get to help the crazy Kate Archer in different map scenarios. Death Match: You against everyone else. No teams Team Death Match: A team against another team Doomsday: Two teams. There are three pieces of a "Doomsday" device through-out the map. Find and pick-up parts of the device and bring it back to your base. All three pieces assemble the device. Once built, the "Doomsday" device pops the other team and you win the shindig. No One Lives Forever 2 requires:
    Power Mac G4 700Mhz Mac OS 10.2.6 - 356 MB RAM (512MB RAM on iMacs) 32MB Radeon or GeForce video card  
    Special addition to disclaimer:
    UnityHQ does not promote software piracy.
    As the copyright of this game is in question we leave it up to those who download to decide whether to download or not . By downloading you agree to take full responsibility for doing so and release Unityhq.net/nolfgirl.net from any repercussions for doing so.



  11. Star trek Eliteforce 2 for Mac

    Complete game.  Requires an emulator to run on modern Mac operating systems. 
    You can find an emulator from this site.



  12. Star Trek Eliteforce Multiplayer complete game

    File is hosted by The Last Outpost Forum   UHQ is linking it here to introduce others to this great classic Star trek game.  
    Seventeen years ago, Raven Software released one of the most lovingly crafted, authentic Star Trek experiences ever made, and it just so happened to be a very good arena shooter. Even after players finished playing through the game's expertly designed single-player campaign, its frantic, Quake-like "Holomatch" multiplayer kept players hooked for hours. Star Trek: Voyager Elite Force was a magnificent product, but as the years have passed, and the game's gone out of print, it's become increasingly hard to find.
    With permission from Raven Software and CBS, The Last Outpost is proud to present the complete Holomatch experience, available for free. Based on Thilo's icculus Quake III engine conversion, this installer provides players with unrestricted access to the game's online multiplayer, no CD key required. We've also taken the liberty of including several user-created maps and player models to give players even more content, providing the best balance of variety and quality.
    Known Issues:

    •   No official support for Linux or macOS operating systems.
                •   A Linux client is currently being researched. No macOS client is planned at this time.
                       •    In the meantime, the game has been tested and confirmed to work on WINE.

    •   Resolution defaults to full screen 640x480.
    •   No in-game options for display 4:3 resolutions above 2048x1536 and 16:9 resolutions above 856x480.
    •   No in-game options for 3:2 and 21:9 aspect ratios.
                •   All of these problems can be fixed by setting /r_customwidth and /r_customheight to your desired window size.
                       •    For example, you would type /r_customwidth "1920";r_customheight "1080" in console for 1080p displays.
                       •    /r_fullscreen "0" can be used to force windowed mode.
                       •    If none of your changes are taking effect, try /r_mode "-1" and /vid_restart.

    •   No in-game options for anti-aliasing or anisotropic filtering.
                •   These must be set manually via your graphics card's control panel.

    •   Users may encounter problems joining servers due to a "bad CD key" error.
                •   This occurs because some servers still use the original game client, instead of ioEF, which has the CD key check disabled.
                       •    This cannot be fixed without a valid CD key. A list of compatible ioEF-based servers is available here.

    •   The in-game model list doesn't include all of the player models and skins present in BaseEF.
                •   This is the result of an engine limitation with how many models the menu can display. We are researching possible fixes.



  13. Loading Crash fix

    Author: XXXdreamer
    No One Lives Forever 2 - A Spy in H.A.R.M.'s Way  ver.1.3
       This is patch to fix LoadingCrash.
       This patch can only apply to version 1.3 No CD of No One Lives Forever 2.
       - Copy current file Lithtech.exe in the installed game folder to somewhere safe for backup,
         uninstalling purposes.
       - Copy 3 files Lithtech.exe, GamerX.dll, GamerX1.dll from this patch to NOLF2 the game folder
         (where the file Lithtech.exe is, i.e. C:\Program Files\Fox\No One Lives Forever 2).
         This will overwrite the old Lithtech.exe file.
       - Run the game normaly.
       - If you want to check how this patch is working, run the game as administrator so
         the log file GamerX.log can be created (in the game folder). Read the file.
         "CheckIStream End" means the game has run through this patch without any problems.
         "CheckIStream needLoop" means the patch has prevented a potentional crash.
       LoadingCrash: Game randomly stuck and then crash while loading a new level.
       For more infomation about LoadingCrash, patch's source code, go to
       or email me
       The patch fix sound  fixes the problem of sound and music 
       in the game No One Lives Forever 2
       A new version of the file SndDrv.dll  will be installed to the game folder.
       Install: copy with replacement new version of the file SndDrv.dll 
       Uninstall: to restore an older version the file SndDrv.dll 



  14. UNITY HQ Mappack

    October 15,2011
    DD maps version of the UnityHQ Mappack
    by Eliteone
    Maps by various NOLF2 Community mapmakers
    Please obtain permission from UnityHQ.net before hosting this file for download.
    Save the download then run the UHQDD_Mappack_Setup.exe file to automatically install/update your mappack rez file.



  15. {SFI} Eliteforce 2 Server Custom Maps

    Run the exe file. It will install the maps to your EF2\base folder.
    This installer (exe file) has been digitally signed to make it easier to install on Windows 10.
    Or if you prefer to extract them on your own download the zip file and extract them to your base file.
    Both options contain all the custom maps currently on the SFI Clan Eliteforce 2 server.



  16. UNITY HQ Mappack (DM)

    DM maps version of the UnityHQ Mappack
    This installer  has been digitally signed to make it easier to install on Windows 10. by Eliteone
    Maps by various NOLF2 Community mapmakers
    Please obtain permission from UnityHQ.net before hosting this file for download.
    Save the download then run the UHQDM_Mappack_Setup.exe file to automatically install/update your mappack rez file.



  17. 1.3 Retail Patch

    English version of the last patch released for NOLF2 by Monolith.
    Optional method (not an official release)
    As some people have had issues getting the patch to install I've added a zip file containing the 1.3 update rez and a registry modification file to tell you Windows installation that it has 1.3 installed - Eliteone
    Use at your own risk (Windows registry modification if done incorrectly can cause damage to your PC)
    Consider this option only if you've been unable to get the patch installer to work correctly.
    Extract the rez file to the root folder of your NOLF2 installation. run the reg file from your desktop (it will modify your Windows registry so be aware of the consequences of running it)



  18. NOLF 2 Patch for Mac

    Originally published by MacPlay
    Download contains:
    NOLF2 patch / Toast CD image, compressed w/ Stuffit
    You can obtain the Stuffit tool from HERE



  19. NOLF 2 NO CD for Mac

    NOLF2 NO-CD Patch / Toast CD image, compressed w/ Stuffit
    You can obtain the Stuffit tool from HERE
    Note you will need to make at least one post in the forum before downloading this file
    Special addition to disclaimer:
    UnityHQ does not promote software piracy.
    As the copyright of this game is in question we leave it up to those who download to decide whether to download or not . By downloading you agree to take full responsibility for doing so and release Unityhq.net from any repercussions for doing so.



  20. Wmfist.exe -Codec for NOLF2

    This file manually installs the audio codec used by NOLF2 
     Copy this file to your main installation folder (Default C:\Program Files\Fox\No One
    Lives forever 2), then double click on the file  WMFADist to start the install. Follow on-screen instructions. This will manually install the audio codec
    that is required by the game.



  21. Nimo Codec Pack

    A collection of Codecs used by Windows for various applications, including video games. 
    Coder & decoder Divx 4.12 Build 307 (Project Mayo)(DivX). 
    Coder & decoder DivX V3.11a (3.11Alpha Low Motion)(Div3) for playing old compressed movies.
    Coder & decoder DivX v3.11a (3.11Alpha Fast Motion)(Div4) for playing old compressed movies.
    Coder & decoder DivX WMA Audio V4.2 (Standard)(divxa32). 
    Coder & decoder MPEG-Layer 3 Audio V4.2 (Professional)(l3acm), With control panel icon. 
    Decoder for AC3 Audio V2.2. 
    Coder & decoder MS MPEG-4 (For ASF/DivX Conversion)(mpg4,mp42,mp43). 
    Filters for Vob playback in Windows Media Player: MPEG Parser ActiveX filter MPEG Decoder ActiveX filter
    MS-MPEG4 ActiveX filter 
    DivX V3.2 ActiveX filter 
    DivX V4.0 ActiveX filter 
    DivX AC3 Prologic ActiveX filter 
    The iviaudio.ax : InterVideo Audio Dec! oder ActiveX filter (No limit time) 
    The MS Mpeg Original codec (Microsoft) 
    The New MPEG-2 Splitter AC3 XForm 
    The New Ligos MPEG-2 Splitter 
    The Morgan Multimedia Stream Switcher (To change the audio stream in WMP) 
    I-Media Multi-MPEG2-Source 
    MPEG Layer-2 Audio Decoder 
    MPEG Layer-3 Audio Codec for MSACM 
    DivX AntiFreeze Filter (No more freezed movies) 
    DirectSound 3D Renderer (with help files) 
    Cyberlink PowerDVD 3.0 Audio Decoder 
    Ogg Vorbis Audio codec for MSACM 
    Lame_dshow.ax (Lame mp3) 
    Windows Media Audio Codec 
    Lame MP3 Encoder ACM Codec 
    3ivx Delta 3.5 Codec for QuickTime Windows and the pluging for flask 
    Plug-ins for Flask: Panasonic MPEG 1, LSX MPEG 1 or MPEG2 
    The New Mpeg2dec DLL And the New Avisynth 1.05 MMX Dll for fast Frameserving 
    The New SimpleResize filter! for Avisynth 
    The New Lame MP3 Encoder ACM 0.3.0 
    The New Directshow Bicubic Resizer 1.3 
    The New Playa 0.6.6 
    The New DivX AntiFreeze Filter 0.4 
    The New Sub Station Alpha v2.x/4.x 
    The New Moonlight Odio Dekoda 
    The New Moonlight Scalar Filter 
    The New Subtitle Picture Decoder 
    The New DynEQ DirectShow filter 
    The New DivX G400 Filter ver 2.7 
    The New DivFix 1.06 with Source Code 
    The Logo plug-in for VirtualDub and Nandub 
    The New Fraunhofer Vob Filters 
    The New Fraunhofer Mp3 codec Changes in Nimo Codec Pack 5.0 build 9 B1 :
    - The New On2 VP3 Video Codec version 
    - The New Ac3Filter 
    - The New XviD Codec 29/12/02 
    - The New Ogg DirectShow filters v0.9.9.5 06/10/02 
    - The New Ogg Vorbis implementation 
    - The New DirectShow Subtitle Filter 06/10/02 
    - The New Vorbis ACM 08/07/02 
    - The New Avisynth 2.07 MMX Dll for fast Frameserving 
    - The New ffdshow filter 13/12/2002 
    - The New Lame MP3 Encoder ACM 0.9.0 
    - The New TFM Audio Filter 1. 8 beta 
    - The DirectVobSub, to make your Sub files for your movie and mux them (srt - Mux ) 
    - VobSub for VirtualDub, AviUtl, Avisynth & DirectShow 
    - VobSub Version 2.23, DirectVobSub Version 2.23 
    - Subresync 2.23, Submux 2.23 
    - The New SimpleResize filter for Avisynth



  22. lameACM Codecs

    LAME DirectShow and ACM Codecs
    The files here hook into into Windows multimedia frameworks to provide LAME encoding from several applications.
    ACM is the ancient Windows "Audio Codec Manager", and most applications that can save audio files to WAV do so through ACM, making LAME encoding through it pretty much universal. The catch is that saved files have WAV headers that make the MP3 file unrecognizable to several players and decoders. 
    This codec has helped some having sound issues with NOLF and NOLF2. 
    How to install on Win7 x64 and Win10 x64:
    1.       Extract it to for example c:\lame
    2.       Run cmd with admin rights (ctrl+shift+return)
    3.       cd %windir%\SysWOW64
    4.       rundll32 setupapi.dll,InstallHinfSection DefaultInstall 0 C:\lame\LameACM.inf



  23. Star Trek Bridge Commander Patch

    By Activision
    This is the latest official patch for Star Trek: Bridge Commander.
    Fixes Include:
    Added capability for multiplayer hosts to ban players Problem in E6M5 with shuttles sometimes not leaving the planet, which means the mission cannot be completed. Zhukov registry texture being upside-down Fixed "redshirts" getting stuck in an animation after falling down Multiplayer names containing '[' causing problems when restarting the game. If you believe that your copy of the game suffers from this problem, please delete the config file, that is found where you installed the game, before launching and repatching. Better support for adding custom missions Banning of players by IP address



  24. Winrez Studio Lite V3

    By BlackAngel Software
     WinRez LT Studio is a free set of GUI tools to help with your editing tasks in any Lithtech game, including  No One Lives Forever 2. Even though the WinRez LT Studio has been billed as being compatible with Win 2000/XP only, The package consists of three programs: WinRez LT, DTX Viewer, and Rez Edit. 
      DTX Viewer allows you to view the textures used in Lithtech games. These .dtx textures are in a proprietary format, so a program like DTX Viewer comes in real handy. Especially since it allows you to preview and see a .dtx file right in My Computer of Windows Explorer by highlighting it . . . provided you enabled the Show common tasks in folders option. (Note though, that DEdit also lets you view .dtx textures.)

    May encounter issues running with newer versions of Windows as such we cannot provide support for it.
     May need to use compatibility mode to get it to work or an older version of Windows.



  25. NOLF 2 SinglePlayer Game Save Chapters

    Game:...........................NO ONE LIVES FOREVER 2: A SPY IN H.A.R.M.'S WAY
    This file is provided by www.pcsavegames.com
    More instructions on how to use the provided files can be found on www.pcsavegames.com