mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-24 17:49:52 +01:00
sync with master
This commit is contained in:
parent
0a779ac4fe
commit
5610f86e7b
49
README.md
Normal file
49
README.md
Normal 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
|
20
src/main.c
20
src/main.c
@ -1586,7 +1586,7 @@ HRESULT __stdcall ddraw_QueryInterface(IDirectDrawImpl *This, REFIID riid, void
|
|||||||
|
|
||||||
if (riid && !IsEqualGUID(&IID_IDirectDraw, riid))
|
if (riid && !IsEqualGUID(&IID_IDirectDraw, riid))
|
||||||
{
|
{
|
||||||
printf(" IID_IDirectDrawX\n");
|
printf(" GUID = %08X\n", ((GUID *)riid)->Data1);
|
||||||
|
|
||||||
ddraw_AddRef(This);
|
ddraw_AddRef(This);
|
||||||
*obj = This;
|
*obj = This;
|
||||||
@ -1708,21 +1708,7 @@ struct IDirectDrawImplVtbl iface =
|
|||||||
|
|
||||||
HRESULT WINAPI DirectDrawEnumerateA(LPDDENUMCALLBACK lpCallback, LPVOID lpContext)
|
HRESULT WINAPI DirectDrawEnumerateA(LPDDENUMCALLBACK lpCallback, LPVOID lpContext)
|
||||||
{
|
{
|
||||||
printf("DirectDrawEnumerateA(lpCallback=%p, lpContext=%p) ???\n", lpCallback, 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);
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
if (lpCallback)
|
if (lpCallback)
|
||||||
lpCallback(NULL, "display", "(null)", lpContext);
|
lpCallback(NULL, "display", "(null)", lpContext);
|
||||||
@ -1746,7 +1732,7 @@ HRESULT WINAPI DirectDrawCreate(GUID FAR* lpGUID, LPDIRECTDRAW FAR* lplpDD, IUnk
|
|||||||
#if _DEBUG
|
#if _DEBUG
|
||||||
if(!stdout_open)
|
if(!stdout_open)
|
||||||
{
|
{
|
||||||
freopen("ra95stdout.txt", "w", stdout);
|
freopen("cnc-ddraw.log", "w", stdout);
|
||||||
setvbuf(stdout, NULL, _IOLBF, 1024);
|
setvbuf(stdout, NULL, _IOLBF, 1024);
|
||||||
stdout_open = 1;
|
stdout_open = 1;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user