Compatibility Tool

cnc-ddraw

Open-source DirectDraw wrapper for classic Diablo II / LoD setups, focused on compatibility, windowed mode and shader upscaling.

7.3 Editorial / 10

Resource Details

Supported Game
Diablo II: Lord of Destruction
Tool Type
Graphics Wrapper / DirectDraw Renderer
Access Mode
Desktop, Offline
Operating System
Windows
File Formats
ddraw.dll wrapper; ddraw.ini settings via cnc-ddraw config.exe; GLSL and preliminary libretro shaders
Compatibility
Diablo II needs the proxy-dlls.zip package from the releases page (per project wiki); game must use the DirectDraw renderer and be set to fullscreen, windowed mode is chosen in cnc-ddraw config.exe; does not support Direct3D renderers; patch 1.14d dropped software rendering, so a Glide wrapper is usually better there; under Wine override ddraw in winecfg; not for official Battle.net realms; no effect on Diablo II: Resurrected
Resource Version
7.1.0.0
Status
Active
Verification
Reviewed
Last Updated
2024-12-28
Last Checked
2026-09-29
D3D9DDrawDiablo IIDirectDrawGraphics WrapperLoDOpenGLToolsUpscalingWindowed Mode

About cnc-ddraw

cnc-ddraw is a free compatibility wrapper for old 2D games that draw through DirectDraw, and classic Diablo II and Lord of Destruction are on its list of supported games. It replaces the system DirectDraw library with its own renderer, fixing black screens, poor performance, crashes and broken Alt-Tab on modern computers, and adds windowed, borderless and shader-upscaled display modes. Among the graphics wrappers for classic Diablo II, cnc-ddraw is the one that is still actively developed.

What cnc-ddraw fixes

DirectDraw is the old 2D graphics interface that many late-1990s games used, and modern versions of Windows handle it poorly. Typical symptoms are a black screen on start, low or unstable frame rates, a frozen image after Alt-Tab or a window that cannot be resized. The wrapper takes over those calls and draws the game through GDI, OpenGL or Direct3D 9, choosing a suitable renderer automatically. It then adds features the original game never had: Diablo 2 windowed mode without glitches, borderless fullscreen, fullscreen exclusive mode, quick switching with Alt-Enter, a remembered window position and size, an FPS limiter, VSync and optional mouse sensitivity scaling.

cnc-ddraw Diablo 2 setup

The project’s general instructions are short: take the latest cnc-ddraw.zip from the GitHub releases page, extract it into the game folder and start the game. Two points matter for cnc-ddraw Diablo 2 setups. First, the project wiki lists Diablo II among the games that need an extra step: download the proxy-dlls.zip package from the same releases page and follow the instructions inside it. Second, the game must run on its DirectDraw (software) renderer and be set to fullscreen; windowed mode, borderless mode, shaders and other options are then chosen in the included cnc-ddraw config.exe tool rather than with the game’s own -w switch. The current release is version 7.1.0.0 from December 2024.

Diablo 2 windowed mode, shaders and hotkeys

Most players install the wrapper for a clean Diablo 2 windowed mode or a borderless window that behaves well on a second monitor. Alt-Enter switches between windowed and fullscreen, Ctrl-Tab or Right Alt plus Right Ctrl unlocks the cursor, and Alt-Page Down maximises the window. For a sharper or softer picture on large screens, the wrapper supports GLSL upscaling shaders and has preliminary support for libretro shaders. Resolution changes inside the game itself are a separate topic: players who want a wider in-game view combine a wrapper with a resolution mod such as SGD2FreeRes.

Compatibility and limitations

The wrapper runs on everything from Windows ME and XP to Windows 11, inside virtual machines and under Wine on Linux, macOS and Android, where ddraw must be overridden in winecfg or by running the config tool once. It only works with DirectDraw renderers and does not support Direct3D games. On Diablo II that means it depends on the patch still offering the DirectDraw mode; the D2GL documentation notes that patch 1.14d dropped software rendering, so 1.14d players are usually better served by a Glide wrapper. Like any custom wrapper, it should not be used on official Battle.net realms. It has no effect on Diablo II: Resurrected.

cnc-ddraw, D2DX or D2GL?

All three solve similar problems in different ways. D2DX replaces the Glide renderer and focuses on clean scaling and high-FPS motion prediction, but has not been updated since 2021. D2GL covers both Glide and DirectDraw through OpenGL and offers the most visual options. cnc-ddraw is the simplest and most general: it does not add motion prediction or HD text, but it is maintained, fixes the core DirectDraw problems reliably and works across hundreds of games, so a copy often ends up in more than one game folder. Because each wrapper installs as a few files, trying them one after another takes minutes.

Who should use cnc-ddraw

The wrapper is a good fit for players on older LoD patches or private-server clients that still rely on the DirectDraw renderer, for anyone who wants a stable window on a multi-monitor desktop, and for players running Diablo II under Wine or in a virtual machine. It is also handy for people who keep several classic games installed, because the same tool fixes many of them. Players on 1.14d who want smoother motion or high-definition text should look at the Glide-based options first and keep cnc-ddraw as a fallback for DirectDraw installs.

D2 Horadric editorial view

cnc-ddraw is a dependable, actively maintained fix for classic Diablo II on modern systems, especially for players who mainly want a stable window, borderless mode or a clean fullscreen on patches that still use DirectDraw. It is less specialised than the Diablo-specific wrappers, needs the extra proxy step for Diablo II and does not help on 1.14d’s default renderer, which keeps its score in the mid range. For DirectDraw setups it remains one of the safest choices available.

Key Features

  • Fixes black screens, crashes, low performance and broken Alt-Tab in DirectDraw games
  • GDI, OpenGL and Direct3D 9 renderers with automatic selection
  • windowed, borderless and fullscreen exclusive modes
  • Alt-Enter switching
  • Remembers window position and size
  • FPS limiter and VSync
  • GLSL and preliminary libretro shader upscaling
  • Runs under Wine and in virtual machines

Requirements

  • Classic Diablo II or Lord of Destruction using the DirectDraw renderer
  • Windows ME or newer, or Wine
  • proxy-dlls.zip package for Diablo II

Pros

  • Actively maintained
  • Reliable fix for core DirectDraw problems
  • Clean windowed and borderless modes
  • Works on almost any Windows version and under Wine
  • One tool for many classic games

Cons

  • Diablo II needs the extra proxy step
  • DirectDraw renderer only, so limited value on 1.14d
  • No motion prediction or HD text
  • Not Diablo-specific
  • Classic LoD only
Keep exploring

Related Tools

Tool 5.0/10

ATMA Stash to D2R Converter

Web-based converter for moving old ATMA or PlugY stash files into Diablo II: Resurrected .d2i stash format.
Reviewed Legacy
Tool 8.4/10

ATMA

Classic Diablo II / LoD single-player muling tool for storing, sorting and transferring items outside the game.
Reviewed Legacy
Tool 8.4/10

PlugY, The Survival Kit

A legendary Diablo II: Lord of Destruction utility mod that expands single-player with infinite/shared stash, ladder runewords, Uber content, World Event and…
Reviewed Legacy
Tool 8.1/10

Halbu Editor

Offline native Diablo II: Resurrected save editor focused on safe character editing, validation and backups.
Reviewed Active
Curated picks

Related Rankings

Ranking Diablo II

Best Diablo 2 Graphics Wrappers

Three graphics wrappers and one resolution add-on for classic Diablo II, ranked by patch support, picture and frame rate quality, setup effort…
Last verified: