1
0
mirror of https://github.com/narzoul/DDrawCompat synced 2024-12-30 08:55:36 +01:00

Updated license and readme

This commit is contained in:
narzoul 2021-04-09 00:31:40 +02:00
parent 1f5c86be11
commit ded2c92c3a
2 changed files with 30 additions and 45 deletions

View File

@ -1,12 +1,10 @@
Free Public License 1.0.0
Permission to use, copy, modify, and/or distribute this software for any Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted. purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. PERFORMANCE OF THIS SOFTWARE.

View File

@ -1,52 +1,39 @@
# DDrawCompat # DDrawCompat
#### Introduction ### Introduction
`DDrawCompat` is a DirectDraw wrapper aimed at fixing compatibility and performance issues with games based on DirectX 7 and below on newer versions of Windows (Vista/7/8/10). DDrawCompat is a DLL wrapper aimed at fixing compatibility and performance issues with games based on DirectDraw and Direct3D 1-7. Partially supports GDI as well. There is no API conversion involved, most of the rendering is still done by the native DirectDraw/Direct3D 1-7 and GDI libraries.
Games using DirectX 8 and above for rendering are not affected as they don't use `ddraw.dll`.
`DDrawCompat` does not use any external renderer (such as OpenGL), nor even a newer version of DirectX. It only changes how DirectDraw (and GDI) is used internally. Since older versions of Direct3D (v7 and below) also rely on DirectDraw, `DDrawCompat` may be useful for those renderers as well. ### Requirements
#### License
Source code is licensed under the `Free Public License 1.0.0`. See `LICENSE.txt` in the repository root for details. The same terms apply for the entire repository, not just for the versions in which the license file appears.
Binary releases are licensed under the `Microsoft Research Shared Source License Agreement (Non-commercial Use Only)`. Each release contains the exact terms in `license.txt`.
Note that `DDrawCompat` neither comes from, nor is endorsed by Microsoft. Use it at your own risk!
#### Requirements
- Windows Vista, 7, 8 or 10 - Windows Vista, 7, 8 or 10
- DirectDraw (comes preinstalled with Windows)
#### Installation Additional requirements **for Windows Vista and 7 only**:
- WDDM-compatible graphics driver - the legacy XPDM drivers are no longer supported (since v0.3.0)
- Desktop Composition must be enabled (especially for windowed mode applications)
Download the latest binary release from the repository's [releases](https://github.com/narzoul/DDrawCompat/releases) page. Unzip the file and copy the extracted `ddraw.dll` to any DirectDraw based game's installation directory, next to the main executable file. If the main executable is in a subdirectory of the installation directory, you must put `ddraw.dll` in the same subdirectory. ### Installation
If there is already an existing `ddraw.dll` file there, it is probably another DirectDraw wrapper intended to fix some issues with the game. You can still try to replace it with `DDrawCompat`'s `ddraw.dll`, but make sure you create a backup of the original DLL first. Download the latest binary release from the [releases](https://github.com/narzoul/DDrawCompat/releases) page (avoid the attachments with "debug" in the file name unless you know what you're doing). Unzip the file and copy the extracted ddraw.dll to the target game's install directory, next to where the main executable (.exe) file is located.
Do not attempt to overwrite `ddraw.dll` in a Windows system directory, it is currently not supported and will not work. If there is already an existing ddraw.dll file there, it is probably another DirectDraw wrapper intended to fix some issues with the game. You can try to replace it with DDrawCompat's ddraw.dll, but make sure you create a backup of the original file first.
If you put the dll in the correct place, then (assuming the game really uses DirectDraw) every time you launch the game a `ddraw.log` file should be created in the same directory, containing some basic log messages. If something goes wrong, it is worth checking this log file for possible error messages. Once you start the game, a log file should be created in the same directory with the name DDrawCompat-*exename*.log (or ddraw.log in versions prior to v0.3.0). If no log file is created, then DDrawCompat was not picked up by the game - check the [Wiki](https://github.com/narzoul/DDrawCompat/wiki) for possible solutions.
#### Uninstallation ### Uninstallation
Delete `DDrawCompat`'s `ddraw.dll` from the game's directory and restore the original `ddraw.dll` file (if there was any). You can also delete the `ddraw.log` file. Delete DDrawCompat's ddraw.dll file from the game's directory. You can also delete any leftover log files (DDrawCompat-\*.log or ddraw.log).
#### Configuration ### Configuration
`DDrawCompat` aims to minimize the amount of user configuration required to make games compatible. It currently doesn't have any configuration options. This may change in future versions, if the need arises. There are currently no configuration options available, but this is expected to change in an upcoming release.
#### Troubleshooting ### Development
If some compatibility options are set for the game via the Compatibility tab of the executable's Properties window, try disabling or changing them. DDrawCompat is developed in C++ using Microsoft Visual Studio Community 2019.
If that doesn't help, advanced users can access additional compatibility options using Microsoft's ACT (Application Compatibility Toolkit). This is not a user guide for ACT, you'll have to look for that elsewhere. However, here are some of the compatibility fixes I found useful: Additional dependencies:
- **`Disable8And16BitD3D:`** It can help with performance issues in games that use 8 and 16 bit color modes. This fix is available only in the `Compatibility Modes` listing and not under `Compatibility Fixes`. - Windows 10 SDK & DDK (see WindowsTargetPlatformVersion in [DDrawCompat.vcxproj](DDrawCompat/DDrawCompat.vcxproj) for the exact version)
- **`DXPrimaryEmulation:`** Use it with the `-DisableMaxWindowedMode` parameter. It can help with performance issues. `DDrawCompat` enables this automatically. - Git for Windows (optional, needed for proper DLL versioning)
- **`ForceSimpleWindow:`** If you are not using **`DXPrimaryEmulation`** and the game is running in full screen mode with visible window borders, then this may help remove the borders.
- **`NoGDIHWAcceleration:`** Despite what the name suggests, this can improve performance. It can be used as an alternative to **`DXPrimaryEmulation`**. Usually using both will not provide additional performance benefits.
- **`SingleProcAffinity:`** Old games often have various issues when running on multiple CPU cores. This fix will force a game to run on a single core. `DDrawCompat` enables this automatically.
- **`Win98VersionLie:`** Some games use different code paths based on the reported OS version or may not run if the version is not recognized. This and other similarly named fixes report the specified fake Windows version to the game and may help with various issues.
#### Development ### License
`DDrawCompat` is written in C++ using Microsoft Visual Studio Community 2015. Source code is licensed under the [BSD Zero Clause License](LICENSE.txt).
Compilation depends on [Detours Express 3.0](http://research.microsoft.com/en-us/projects/detours/). It needs to be built first before `DDrawCompat` can be built. Change the include and library paths as needed if you didn't install/build Detours in the default directory. Binary releases starting with v0.3.0 are licensed under the same, and no longer carry a separate license file in the release archive.
The project initially used the Windows 8.1 SDK and WDK, but some commits after the v0.2.1 release it was updated to use the Windows 10 SDK and WDK instead. The exact version required can be checked in the project properties in Visual Studio (General tab / Target Platform Version). Commits using an older platform version can probably still be built with a newer version by retargeting the project to the appropriate SDK. Older binary releases are licensed under the Microsoft Research Shared Source License Agreement (Non-commercial Use Only) - see license.txt in those release archives for the details.