cnc-ddraw can fix compatibility issues in older 2D (DirectDraw) games, such as black screen, bad performance, crashes or defective Alt+Tab. Adds new features such as borderless mode, windowed mode and upscaling via shaders.
Need help? Post a comment below or ask on Discord
Features
- Supports Windows 2000, XP, Vista, 7, 8, 10, 11, Wine (Linux/macOS/Android) and Virtual Machines
- GDI / OpenGL / Direct3D 9 renderer (With automatic renderer selection)
- Upscaling via glsl shaders - Imgur.com | Imgur.com
- Windowed Mode / Fullscreen Exclusive Mode / Borderless Mode
- Alt+Enter support to switch quickly between Fullscreen and Windowed mode
- Automatically saves and restores window position/size/state
- FPS Limiter
- VSync
- Optional mouse sensitivity scaling
- Preliminary libretro shader support - Github.com
- ...
Instructions
- Download cnc-ddraw.zip and extract it into your game folder
- Start the game
Wine (Linux/macOS/Android) only: override ddraw
in winecfg manually or run cnc-ddraw config.exe once.
If you use cnc-ddraw with a game that got its own windowed mode built in then make sure you disable the games own windowed mode first. You can enable windowed mode via cnc-ddraw config.exe instead.
If the game starts but it doesn't work perfectly then open the config program and check the Compatibility settings.
cnc-ddraw does not support Direct3D/Glide, it will only work with games that use a DirectDraw (Software) renderer. Usually you can tell by the look of the game if it's a 3D game or not, but you can also let cnc-ddraw generate a debug log and search for "IDirect3D" - Link: #44
Some games may require additional steps before they can be used with cnc-ddraw, please check the wiki for more details.
If the game doesn't start at all or it's crashing, then please generate a debug log file and upload it.
Hotkeys
- [Alt] + [Enter] = Switch between windowed and fullscreen mode
- [Ctrl] + [Tab] = Unlock cursor
- [Right Alt] + [Right Ctrl] = Unlock cursor
- [Alt] + [Page Down] = Maximize window
Supported Games
- Age of Empires
- Age of Empires II
- Age of Empires II: The Conquerors
- Age of Empires: The Rise of Rome
- Age of Wonders
- Age of Wonders 2
- Age of Wonders: Shadow Magic
- Airline Tycoon Deluxe
- Alien Nations
- American Conquest (Steam+GOG)
- American Girls Dress Designer
- Amerzone
- Anno 1602: Creation of a New World
- Anstoss 3
- Arcanum: Of Steamworks and Magick Obscura
- Arthur's Pet Chase
- Arthur's Sand Castle Contest
- Arthur's Wilderness Rescue
- Atlantis 2: Beyond Atlantis
- Atlantis 3: The New World
- Atlantis: The Lost Tales
- Atomic Bomberman
- Atrox
- Baldr Force EXE
- Baldur's Gate
- Baldur's Gate 2
- Barbie(tm) Beach Vacation(tm)
- Batman: Justice Unbalanced
- Batman: Toxic Chill
- Blade & Sword
- Blood II - The Chosen
- Blue's 123 Time Activities
- Blue's Treasure Hunt
- Caesar III (Sierra - 1998)
- Call To Power 2
- Capitalism II
- Capitalism Lab
- Captain Claw
- Carmageddon
- Carmageddon 2
- Casino Empire (AKA Hoyle Casino)
- Chaos Gate
- Close Combat 2: A Bridge Too Far
- Close Combat 3: The Russian Front
- Close Combat 4: The Battle of the Bulge
- Close Combat 5: Invasion: Normandy
- ClueFinders 3rd Grade Adventures
- ClueFinders 4th Grade Adventures
- ClueFinders 5th Grade Adventures
- ClueFinders 6th Grade Adventures
- ClueFinders Math Adventures 1.0
- ClueFinders Math Adventures 2.0
- ClueFinders Mystery Mansion
- ClueFinders Search and Solve Adventures
- ClueFinders The Incredible Toy Store Adventure
- ClueFinders(R) Reading Adventures Ages 9-12
- Command & Conquer Gold
- Command & Conquer: Red Alert
- Command & Conquer: Red Alert 2
- Command & Conquer: Red Alert 2: Yuri's Revenge
- Command & Conquer: Sole Survivor
- Command & Conquer: Tiberian Sun
- Commandos
- Commandos - Beyond The Call Of Duty
- Commandos 2
- Corsairs Gold
- Cossacks (Steam+GOG)
- Cultures - The Discovery of Vinland
- Cultures 2
- Cyberchase Carnival Chaos
- Cyberchase Castleblanca Quest
- Dark Reign: The Future of War
- Daytona USA (Sega - 1996)
- Deadlock 2
- Desperados: Wanted Dead or Alive
- Diablo
- Diablo 2
- Diablo 2: Lord of Destruction
- Diablo: Hellfire
- Disciples
- Disciples 2 - Rise of the Elves
- Divine Divinity
- Dragon Throne: Battle of Red Cliffs
- DuelSavior
- DuelSavior: Justice
- Dune 2000
- Dungeon Keeper
- Dungeon Keeper 2
- Economic War
- Eggsucker
- Enemy Infestation
- Escape Velocity Nova
- F-16 Multirole Fighter
- F-22 Raptor
- Fairy Tale About Father Frost, Ivan and Nastya
- Fallout
- Fallout 2
- Final fantasy VII
- Final fantasy VIII
- Freddi Fish
- Freddi Fish 4
- Freddi Fish's One-Stop Fun Shop
- Freddi Fish: Maze Madness
- Freddi Fish: The Case of the Creature of Coral Cove
- Freddi Fish: The Case of the Haunted Schoolhouse
- Freddi Fish: The Case of the Hogfish Rustlers of Briny Gulch
- Freddi Water Worries
- Future Cop L.A.P.D
- G-Police
- Grand Theft Auto
- Grand Theft Auto: London 1961
- Grand Theft Auto: London 1969
- Gruntz
- Hamtaro: Wake Up Snoozer!
- Hard Truck: Road to Victory
- Hearts of Iron 2
- Heroes of Might and Magic II
- Heroes of Might and Magic III
- Heroes of Might and Magic IV
- Hooligans: Storm over Europe
- Hugo Gold
- Hugo Wild River
- Icewind Dale
- Icewind Dale 2
- Infantry Online
- Interstate 76
- Invictus: In the Shadow of Olympus
- Jagged Alliance 2
- Jagged Alliance 2: Unfinished Business
- Jagged Alliance 2: Wildfire
- Jazz Jackrabbit 2
- Killing Time
- Kings Quest 8: Mask of Eternity
- KKND Xtreme
- KKND2: Krossfire
- Knights and Merchants: The Peasants Rebellion
- Knights and Merchants: The Shattered Kingdom
- Kohan: Immortal Sovereigns
- Konung
- Konung 2
- Lionheart - Legacy of the Crusader
- Little Bear Kindergarten Thinking Adventures
- Little Bear Preschool Thinking Adventures
- Little Bear Rainy Day Activities
- Little Bear Toddler Discovery Adventures
- Locomotion
- Lode Runner 2
- Madeline 1st Grade Math
- Madeline 2nd Grade Math
- Majesty Gold
- Majesty Gold HD
- Mech Warrior 3
- Megaman X4
- Metal Gear Solid
- Moorhuhn
- Moorhuhn 2
- Moorhuhn Winter Editon
- Moto Racer
- Moto Racer 2
- Nancy Drew: Danger on Deception Island
- Nancy Drew: Last Train to Blue Moon Canyon
- Nancy Drew: Message in a Haunted Mansion
- Nancy Drew: Secrets Can Kill
- Nancy Drew: Stay Tuned For Danger
- Nancy Drew: The Secret of Shadow Ranch
- Nancy Drew: Treasure in the Royal Tower
- Need For Speed III: Hot Pursuit
- Need For Speed: High Stakes
- New Robinson
- NexusTk
- Nox (Westwood - 2000)
- Oddworld: Abe's Exoddus
- Oddworld: Abe's Oddysee
- Outlaws
- Outlive
- Pacific General
- Pajama Sam
- Pajama Sam 3
- Pajama Sam's Games to Play on Any Day
- Pajama Sam's One-Stop Fun Shop
- Pajama Sam(r): Life is Rough When You Lose Your Stuff(tm)
- Pajama Sam: No Need to Hide When It's Dark Outside
- Pajama Sam 3: You Are What You Eat From Your Head To Your Feet
- Patrician 3
- Pax Imperia
- Pharaoh (Sierra - 1999)
- Pizza Syndicate (AKA Fast Food Tycoon)
- Populous: The Beginning
- Poseidon: Master of Atlantis
- Pro Pinball - Big Race USA
- Pro Pinball - Fantastic Journey
- Putt-Putt and Pep's Balloon-o-Rama
- Putt-Putt and Pep's Dog On A Stick
- Putt-Putt Joins the Circus
- Putt-Putt Saves The Zoo
- Putt-Putt's One-Stop Fun Shop
- Putt-Putt: Pep's Birthday Surprise
- Putt-Putt: Travels Through Time
- Quest for Glory 5
- Rage of Mages 2
- Railroad Tycoon II
- Reader Rabbit 1st Grade
- Reader Rabbit 2nd Grade
- Reader Rabbit Dreamship Tales
- Reader Rabbit Kindergarten
- Reader Rabbit Learn To Read With Phonics
- Reader Rabbit Learning Creations
- Reader Rabbit Math Ages 4-6
- Reader Rabbit Preschool 2002
- Reader Rabbit Reading Ages 4-6
- Reader Rabbit Reading Ages 6-9
- Reader Rabbit Thinking Ages 4-6 (US)
- Reader Rabbit Toddler
- Reader Rabbit's(R) Math Ages 6 - 9 (2002)
- Red Baron 3D
- Reksio and the Pirate Treasure (Reksio i Skarb Piratów)
- Reksio and the UFO (Reksio i Ufo)
- Reksio and the Wizards (Reksio i Czarodzieje)
- Reksio and the Time Machine (Reksio i Wehikuł Czasu)
- Reksio and Captain Nemo (Reksio i Kapitan Nemo)
- Reksio and Kretes in Action (Reksio i Kretes w Akcji!)
- Road Rash
- Robin Hood - The Legend of Sherwood
- RollerCoaster Tycoon
- Sanitarium
- Scooby-Doo(TM), Case File #2 The Scary Stone Dragon
- Scooby-Doo(TM), Phantom of the Knight(TM)
- Scooby-Doo(TM), Showdown in Ghost Town(TM)
- Sega Rally
- Sega Touring Car
- Septerra Core
- Settlers 3
- Shadow Flare
- Shadow Watch
- Shogo - Mobile Armor Division
- Sim City 3000
- Sim Copter
- Sim Theme Park (aka Theme Park World)
- SimCoaster / Theme Park Inc
- Sonic 3D Blast
- Space Rangers
- SpongeBob SquarePants: Typing
- SPY Fox : Some Assembly Required
- SPY Fox in Dry Cereal
- SPY Fox: Hold the Mustard
- SPY Fox: Operation Ozone
- Star Wars Jedi Knight: Dark Forces II
- Star Wars: Galactic Battlegrounds
- Star Wars: Galactic Battlegrounds: Clone Campaigns
- StarCraft
- StarCraft: Broodwars
- StarFlyers Alien Space Chase
- StarFlyers Royal Jewel Rescue
- Starship Titanic
- Start Trek Armada
- Steel Panthers: World At War
- Strawberry Shortcake: Amazing Cookie Party
- Stronghold Crusader Extreme HD
- Stronghold Crusader HD
- Stronghold HD
- Sudden Strike 2
- The Powerpuff Girls - Princess Snorebucks
- The Powerpuff Girls(TM) Mojo Jojo's Clone Zone
- The X-Files DVD
- Theme Hospital
- Three Kingdoms: Fate of the Dragon
- Total Annihilation
- Total Annihilation (Unofficial Beta Patch v3.9.02)
- Total Annihilation: Kingdoms
- Twisted Metal
- Twisted Metal 2
- Tzar: The Burden of the Crown
- Uprising 2: Lead and Destroy
- Uprising: Join or Die
- Vermeer
- Virtua Fighter PC
- War Wind
- War Wind II - Human Onslaught
- Warcraft 2
- Warlords 3: Darklords Rising
- Warlords Battlecry
- Warlords Battlecry 2
- Warlords Battlecry 3
- Wizardry 8
- Wizards and Warriors
- Worms 2
- Worms Armageddon
- Zeus: Master of Olympus
- Zoombinis Island Odyssey
- Zoombinis Logical Journey
- Zoombinis Mountain Rescue
- Zuma Deluxe
- ...
There are a lot more games supported but I don't usually update the list, just give it a try and if it doesn't work then check the wiki and the instructions above.
THX!
it is possible to implement direct draw zoom like wroms?
Zoom is possible, but only if the game gets patched to support it.
Currently cnc-ddraw zoom works with worms 2 plus, kknd extreme, c&c 1 and c&c red alert
hi , it is possible to zoom for aoe2?
Nope, unfortunately not. Someone would have to write a game patch for it. cnc-ddraw does only one part of the zoom, other part needs to be handled by the game itself like it was done in worms 2 plus, kknd extreme, c&c 1 and c&c red alert
game no start if you use voobly rending 32 bits
game stop and freezing when you have windowed.dll on your Age of Empire II\
without any message error.
You mean wndmode.dll? Yes that can't be used, you have to choose either cnc-ddraw OR wndmode.dll - do not try to mix two different wrappers, it may cause problems. You can enable cnc-ddraw windowed mode via cnc-ddraw config.exe instead
AOE2 does not have a 32bit mode, so that means you probably enabled a different wrapper as well. Do not try to mix different wrappers, cnc-ddraw does also use 32bit mode by default, so there is no need to use a different wrapper for that
Can you fix this bug?
Which bug?
to no load dll when you have windowed hook or voobly wrappers
You can't combine cnc-ddraw with other wrappers, it's not possible.
You have to choose either wndmode or cnc-ddraw, never try to use both.
Why would you want to use wndmode? cnc-ddraw does have a very good windowed mode.
i means no load dll in those case to avoid bug :
BOOL WINAPI DllMain(HINSTANCE hInst, DWORD reason, LPVOID)
{
if (reason == DLL_PROCESS_ATTACH)
{
if (fileExist(pathWindowed))
{
//avoid
return TRUE;
}
// //HKEY_CURRENT_USER\SOFTWARE\Voobly\Voobly\game\13\windowmode
if (GetProcessIdByName("Voobly.exe") && isWindowedVoobly())
{
//avoid
return TRUE;
}
...
}
There might be a way to do something like this. At least for wndmode.dll it could work. Not sure about the voobly wrapper.
But why would you want this? If you don'T want to use cnc-ddraw then just don't put it into your game folder?
Maybe you could ask the voobly devs if they could add a checkbox for cnc-ddraw?
it is for you i tell you this, if some one write commentary "no work", you will know why.People will just downlaod and use without searching if they have windowed.dll in their folder or if they have windowed activacted on voobly.
It is just to avoid freeze game without error message.
I just installed voobly and here are my test results:
- Game does start with 32bit mode enabled
- Game is not working with windowed mode enabled (invisible window)
But even with windowed mode disabled, the game is crashing after a few seconds with cnc-ddraw, works fine without it. This problem does only happen on voobly though, the original single player game is working fine without crashes.
I tried to debug it, but they don't like debuggers and banned me from the server. So now I can't continue testing.
It's probably the best if you ask the voobly devs for support, they could just add a checkbox for cnc-ddraw. They would also be able to debug it, which I can't due to the anti-cheat on their server.
Also, after installing voobly my single player game wasn't working anymore, i get a "The scenario could not be loaded" error and had to reinstall my game
Okay, good news: Ban was only temporary.
I added detection now for the following:
- Render in 32-bit color
- wndmode.dll
- windmode.dll
- DxWnd
I still can't use the debugger though, so I'm not sure about the crash. Does cnc-ddraw work for you without a crash? Did you play a whole game through?
Here is the temp build for testing:
Github.com
Still issue with GetModuleHandleExA(flags, returnAddress, &mod;);
i think ddraw.dll load before windowed.dll so condition is avoid.
i think you should add this :
Codefile.io
i know read registery key is not adviced and read voobly process too, but here no choice.We can't recomplie wndmode.dll and voobly will never recompile client.If you see a better way to do. Maybe the code i give is the wrong way to do.
Ty for add fix.
maybe if you contact chris Voobly.com
voobly can integrate cnc-ddraw
thanks for you work. :)
golicah769
Can you tell me how to reproduce the issue? I tested it with voobly and it worked every time. I also tested it with userpatch (wndmode.dll) and also with the widescreen patch from katsuie (windmode.dll) without issues.
What settings do you use? Did you install some more patches/updates other than just the voobly ones?
Note: that the load order doesn't matter for my solution, I'm just checking which module is trying to create the DirectDraw object. Normally the game is doing it, but if there's a hook then the call would come from another dll. So my patch doesn't trigger right at startup, it happens a bit later when all dlls were loaded already.
Checking if the file is in the game folder might not be a good solution. Just because the file is there doesn't mean it's actually being used
Edit:
Maybe you can do 1 test run for me with the cnc-ddraw debug build?
Download it here: Github.com
After the test run, check your game folder for "cnc-ddraw-*.log" - Upload me the file(s) somewhere so I can see what happened
Voobly conf:
Memberplushq.com
Streamable.com
Streamable.com
patch:
Voobly.com
same with 1.RC
log file:
Codeshare.io
without windowed this work porpely.but when i use windowed it freez windows like video
golicah769 Thanks! I can see the problem. It's a windows compatibility issue. "apphelp.dll" is hooking the game and the call comes from there instead. I'll try to find a different solution
@golicah769 - I think I got it working now with compatibility modes enabled as well:
Here is the temp build for testing:
Github.com
now no working for voobly , even if disable windowed it say can't load both.
It can't detect windowed right now, it detects "Render in 32-bit color". Does it work if you disable that one?
The "Render in 32-bit color" is the main setting in voobly, this one enables their wrapper.
golicah769
It seems like voobly behaves differently depending on the version of windows being used. I combined now my solution with yours, it's using the registry key now as well to detect windowed mode
Temp test build Github.com
Updated to 6.7
Changelog
Fixed main menu issues in Carmageddon 1 lores mode
Added a workaround for crashes on VMware Windows Vista virtual machines
Fixed F4 (toggle windowed) hotkey in Heroes of Might and Magic 3 & 4
Fixed Maintain Aspect Ratio / windowboxing settings for Airline Tycoon
Added tooltips to a few cnc-ddraw config settings
Added a preset for Heroes of Might and Magic III - Master of Puppets mod
Added a preset for Age Of Empires 1 RockNRor patch
Added support for Robin Hood - The Legend of Sherwood - see proxy-dlls.zip
Added support for Sudden Strike 2
Added support for The Missing on Lost Island
Added support for Gorasul: The Legacy of the Dragon
这个在模拟器(exagear)上使用的话,打开红警会显示使用了较慢的补丁,请更换补丁
"-WARNING- Using slow software rendering, please update your graphics card driver " ???
Crazy mod, you deserve a medal, with your tool we can implement aoc zoom.
this is crazy i have 1980x1080 i can load 2560 x 1440 resolution 11.
I.ibb.co
i think with cnc-ddraw we can implement zoom in aoc .
This mod is crazy i can load 1980x1080 to 1366x760 screen :) .
Big thanks <3
katsuie_
Yes, cnc-ddraw does support upscaling and downscaling.
Note that downscaling currently does not work in windowed mode, Upscaling works though.
EDIT: this is for commandos 2 men of courage.
just in case anyone is having the issue where the game freezes immediately on start up it because the cutscenes use some obscure codec. if you into the data folder then wofip folder and rename:
DATARO.pop to DATARO.pop.old
DATALE00.pop to DATALE00.pop.old
DATAEI.pop to DATAEI.pop.old
then the game should launch. downside no cutscenes but at least its playable. haven't played a full game yet so i don't know if all the files need to be renamed to avoid crashes
lowlifescum What game is it?
Note: cnc-ddraw was tested with 300+ games
oh sorry, commandos 2 men of courage. i wasn't aware the comments sections would get lumped together
Ah I see! I'll have a look into the game, maybe I can fix the cutscenes. Had been testing it before, but that was long time ago.
did a little more digging and it has to do with the indeo codec being turned off by default post winxp. tried turning it back on via cmd but no luck
lowlifescum
That's weird, the latest version of cnc-ddraw does actually fix the indeo bug (that was one of the changes of release 6.7!)
I had no time to look at the game yet, been busy with a few other games the last days
Edit:
Just tested it - wihtout cnc-ddraw the videos do not play, it sends me straight to the main menu. With cnc-ddraw it works fine, i can see all the intros
i'm gonna be real with you chief. i think the commandos series might just be a bit ****
Hey friend, big work. But this seems to fall back to software rendering (huge lag up to seconds). Maybe you're using the latest shader version that not everyone can handle? Please keep it at shader v4.0 if possible thanks.
luftangriff
Hardware requirements for the hardware acceleration are very low, it does work with OpenGL 2.0 (2004) or DirectX 9 (2002). So I guess there's probably a different problem on your end, are you maybe using a virtual machine?
If you want, you could generate a debug log (cnc-ddraw-log*.log) and upload it somewhere so I can check. Download: Github.com
What game is it BTW?
Not sure friend. Just latests Sandboxie. Is that bad?
luftangriff
I had once problems with the OpenGL renderer on sandboxie, but directx has been working fine. Gernally it should work though.
I'm still not sure if the software renderer you are talking about is the cnc-ddraw software renderer AKA this here: "-WARNING- Using slow software rendering, please update your graphics card driver", or if the game is switching to the software renderer? What game is it?
Hi
Is this program able to be better than “Wrapper v1.90” for Disciples 2, and is there an option to speed up the game ;)?
Reaper;) I'm not an expert with this game, so I can't really tell you TBH. I tested this game a couple years ago and it did work, that's why it ended up in the "supported games" list. You may just have to give it a try. If it doesn't work, let me know and I'll check
Updated to 6.8
Changelog
Fixed black screen issues in games that fully use GDI functions as renderer
Added Vietnamese translation made by @TheBuck338
Added partial support for windowed games (Setting the game to fullscreen is still recommended)
Fixed some bugs related to upscaling in Age of Empires 1 & 2
Fixed a blackscreen bug in Jagged Alliance 2: Wildfire
Shader files can now contain "-pass1scale" in the filename to enable upscaling via pass1 rather than pass0
Added new "aspect_ratio=" setting to ddraw.ini
Does now detect other wrappers and warns about possible conflicts
Fixed a bug in the OpenGL renderer that could randomly switch to slow software rendering
Added new DDEnableZoom export for Age of Empires 2 widescreen zoom patch: Indiedb.com
Improved compatibility with more games (Changed default settings)
cnc-ddraw config does now check if Vsync is needed and disables the toggle switch if it isn't needed
Updated the Shadow Flare preset
Added a preset for Moorhuhn (Does now use Alt+Backspace for windowed toggle to avoid conflicts with original toggle)
Added a preset for Emperor: Rise of the Middle Kingdom
Added a preset for Real War
Added a preset for WarCraft 2000: Nuclear Epidemic
Added support for Barbie(R) Photo Designer
Added support for Lapis (lapis.mgame.com)
Added support for Cossacks: Back To War [Steam version] (See proxy-dlls.zip)