1
0
mirror of https://github.com/FunkyFr3sh/cnc-ddraw.git synced 2025-03-15 14:14:47 +01:00

sync with master

This commit is contained in:
FunkyFr3sh 2019-08-07 12:50:27 +02:00
parent 0a779ac4fe
commit 5610f86e7b
2 changed files with 52 additions and 17 deletions

49
README.md Normal file
View File

@ -0,0 +1,49 @@
# cnc-ddraw
cnc-ddraw can fix compatibility issues in older games, such as black screen, bad performance, crashes or defective Alt+Tab.
### Features
- Supports Windows XP, Vista, 7, 8, 10 and Wine
- GDI / OpenGL / Direct3D 9 renderer (With automatic renderer selection)
- Upscaling via glsl shaders - https://imgur.com/a/kxsM1oY | https://imgur.com/a/wjrhpFV
- Windowed Mode / Fullscreen Exclusive Mode / Windowed-Fullscreen Mode / Fullscreen-Stretched Exclusive Mode
- Alt+Enter support to switch quickly between Fullscreen and Windowed mode
- Automatically saves and restores window position/size/state
- FPS Limiter
- VSync
- Automatic mouse sensitivity scaling
- Preliminary libretro shader support - https://github.com/libretro/glsl-shaders
- ...
### Supported Games
- Command & Conquer Gold
- Command & Conquer: Red Alert
- Command & Conquer: Tiberian Sun
- Command & Conquer: Red Alert 2
- Carmageddon
- Carmageddon 2
- Warcraft 2
- StarCraft
- Diablo 2
- Age of Empires
- Age of Empires II
- Theme Hospital
- Populous: The Beginning
- Outlaws
- Dungeon Keeper
- Dark Reign: The Future of War
- Star Wars: Galactic Battlegrounds
- Atomic Bomberman
- Dune 2000
- Oddworld: Abe's Oddysee
- Commandos
- Red Baron 3D
- F-16 Multirole Fighter
- F-22 Raptor
- Nox
- ...
### Download
You can always find the latest release here: https://github.com/CnCNet/cnc-ddraw/releases/latest

View File

@ -1586,7 +1586,7 @@ HRESULT __stdcall ddraw_QueryInterface(IDirectDrawImpl *This, REFIID riid, void
if (riid && !IsEqualGUID(&IID_IDirectDraw, riid))
{
printf(" IID_IDirectDrawX\n");
printf(" GUID = %08X\n", ((GUID *)riid)->Data1);
ddraw_AddRef(This);
*obj = This;
@ -1708,21 +1708,7 @@ struct IDirectDrawImplVtbl iface =
HRESULT WINAPI DirectDrawEnumerateA(LPDDENUMCALLBACK lpCallback, LPVOID lpContext)
{
printf("DirectDrawEnumerateA(lpCallback=%p, lpContext=%p) ???\n", lpCallback, lpContext);
/*
HMODULE hddraw = LoadLibrary("system32\\ddraw.dll");
if (hddraw)
{
HRESULT(WINAPI *DDrawEnumerateA)(LPDDENUMCALLBACK, LPVOID) =
(HRESULT(WINAPI *)(LPDDENUMCALLBACK, LPVOID))GetProcAddress(hddraw, "DirectDrawEnumerateA");
if (DDrawEnumerateA)
return DDrawEnumerateA(lpCallback, lpContext);
FreeLibrary(hddraw);
}
*/
printf("??? DirectDrawEnumerateA(lpCallback=%p, lpContext=%p)\n", lpCallback, lpContext);
if (lpCallback)
lpCallback(NULL, "display", "(null)", lpContext);
@ -1746,7 +1732,7 @@ HRESULT WINAPI DirectDrawCreate(GUID FAR* lpGUID, LPDIRECTDRAW FAR* lplpDD, IUnk
#if _DEBUG
if(!stdout_open)
{
freopen("ra95stdout.txt", "w", stdout);
freopen("cnc-ddraw.log", "w", stdout);
setvbuf(stdout, NULL, _IOLBF, 1024);
stdout_open = 1;
}