1
0
mirror of https://github.com/DxWnd/DxWnd.reloaded synced 2024-12-30 09:25:35 +01:00

v2_03_94_srcfx3

Former-commit-id: a7808ff92166d5665b838c5309eb3245269cf594
This commit is contained in:
gho tik 2016-01-11 11:48:00 -05:00 committed by Refael ACkermann
parent 27b1d7899d
commit 025aaa26ae
9 changed files with 229 additions and 48 deletions

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:aefbbf270e55f04618178767c563b732a273e29eac1e0a68a42bd15c1be21058
size 697856
oid sha256:287b4afcae41e705bf3b4f67be71fce5403a26b7494cad40d5f1e4dbf5bf2925
size 698368

178
build/dxwnd.ini Normal file
View File

@ -0,0 +1,178 @@
[window]
exepath=D:\Games\Year Dead\
posx=1164
posy=243
sizx=320
sizy=200
exportpath=G:\DxWnd.develop\v2_03_94fx3_src\build\exports\
[target]
title0=NITRO.EXE
path0=D:\Games\WCW Nitro\NITRO.EXE
startfolder0=
launchpath0=
module0=
opengllib0=
notes0=
registry0=
ver0=0
monitorid0=-1
coord0=0
flag0=136314914
flagg0=1207959552
flagh0=20
flagi0=138412036
flagj0=4224
flagk0=65536
flagl0=0
flagm0=0
tflag0=0
dflag0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0
winver0=0
maxres0=-1
swapeffect0=0
maxddinterface0=7
slowratio0=2
initresw0=800
initresh0=600
title1=Warcraft II BNE.exe
path1=D:\Games\WarCraft II BNE\Warcraft II BNE.exe
startfolder1=
launchpath1=
module1=
opengllib1=
notes1=
registry1=
ver1=0
monitorid1=-1
coord1=0
flag1=136314914
flagg1=1207959552
flagh1=20
flagi1=138412036
flagj1=4224
flagk1=65536
flagl1=0
flagm1=0
tflag1=0
dflag1=0
posx1=50
posy1=50
sizx1=800
sizy1=600
maxfps1=0
initts1=0
winver1=0
maxres1=-1
swapeffect1=0
maxddinterface1=7
slowratio1=2
initresw1=800
initresh1=600
title2=Dethkarz
path2=D:\Games\dethkarz\Dethkarz.exe
startfolder2=
launchpath2=
module2=Vertigo Direct3D
opengllib2=
notes2=Beware! This game REQUIRES initial resolution set as 640x480 as needed by the \nintro movie, otherwise the game won't start and will show an error message\ndialog box.\nNeeds also bypass MCI calls if no CD is present.\nTested OK with D3D renderer, 16 & 32 bpp.
registry2=
ver2=0
monitorid2=-1
coord2=0
flag2=681574434
flagg2=1207959552
flagh2=20
flagi2=205520902
flagj2=4224
flagk2=35717120
flagl2=8389120
flagm2=0
tflag2=0
dflag2=0
posx2=50
posy2=50
sizx2=800
sizy2=600
maxfps2=0
initts2=0
winver2=0
maxres2=-1
swapeffect2=0
maxddinterface2=7
slowratio2=2
initresw2=640
initresh2=480
title3=yeardead.exe
path3=D:\Games\Year Dead\yeardead.exe
startfolder3=
launchpath3=
module3=
opengllib3=
notes3=
registry3=
ver3=0
monitorid3=-1
coord3=0
flag3=681574434
flagg3=1207959552
flagh3=20
flagi3=138412036
flagj3=4224
flagk3=2162688
flagl3=0
flagm3=0
tflag3=-2147477245
dflag3=0
posx3=50
posy3=50
sizx3=800
sizy3=600
maxfps3=0
initts3=0
winver3=0
maxres3=-1
swapeffect3=0
maxddinterface3=7
slowratio3=2
initresw3=800
initresh3=600
title4=SPWaW 2016
path4=G:\Games\The Depot\SPWaW 2016\mech.exe
startfolder4=
launchpath4=
module4=
opengllib4=
notes4=
registry4=
ver4=0
monitorid4=0
coord4=1
flag4=49186
flagg4=1207992338
flagh4=532
flagi4=18907136
flagj4=1152
flagk4=0
flagl4=0
flagm4=0
tflag4=0
dflag4=0
posx4=50
posy4=50
sizx4=1340
sizy4=1000
maxfps4=0
initts4=0
winver4=0
maxres4=-1
swapeffect4=0
maxddinterface4=7
slowratio4=1
initresw4=0
initresh4=0

View File

@ -1,20 +1,20 @@
[target]
title0=Dethkarz
path0=D:\Games\Dethkarz\Dethkarz.exe
path0=D:\Games\dethkarz\Dethkarz.exe
launchpath0=
module0=
module0=Vertigo Direct3D
opengllib0=
notes0=On Win7, FORCECLIPPER is requested\nOn Win10, FORCECLIPPER is not necessary and may cause program crash:\neither unckeck FORCECLIPPER or check HANDLEEXCEPTIONS seems to fix the problem
notes0=Beware! This game REQUIRES initial resolution set as 640x480 as needed by the \nintro movie, otherwise the game won't start and will show an error message\ndialog box.\nNeeds also bypass MCI calls if no CD is present.\nTested OK with D3D renderer, 16 & 32 bpp.
registry0=
ver0=0
coord0=0
flag0=679477282
flag0=681574434
flagg0=1207959552
flagh0=8212
flagi0=138416132
flagj0=1073741952
flagk0=65536
flagl0=0
flagh0=20
flagi0=205520902
flagj0=4224
flagk0=35717120
flagl0=8389120
flagm0=0
tflag0=0
dflag0=0
@ -25,7 +25,11 @@ sizy0=600
maxfps0=0
initts0=0
winver0=0
maxres0=3
maxres0=-1
swapeffect0=0
maxddinterface0=7
slowratio0=2
startfolder0=
monitorid0=-1
initresw0=640
initresh0=480

View File

@ -1321,11 +1321,13 @@ fix: proper handling of dinput DirectInputDevice::GetDeviceData() DI_BUFFEROVERF
fix: user32 GetCursorPos() wrapper
fix: user32 mouse_event() wrapper
v2.03.94.fx1-2:
v2.03.94.fx1-3:
fix: aligned Lock cheats in Direct/Indirect mode ......
fix: no window interventions in non windowed mode. Fix "Gunbound" in fullscreen mode
fix: avoid multiple injection for early-hooked programs. Fix "Gunbound" regression.
fix: Restore of all lost surfaces upon D3D BeginScene DDERR_LOSTSURFACE error. Fix "Gunbound" lost textures in fullscreen mode.
add: more logging in mciSendCommand - possibly some regression problem...
fix: corrected clipping bug introduced in v2.03.93.
fix: SetWindowLog hooker preventing to set DxWnd windowproc when not in fullscreen mode. Fixes "Nascar Racing 3" recursion and crash.
fix: SetWindowLog hooker preventing to set DxWnd windowproc when not in fullscreen mode. Fixes "Nascar Racing 3" recursion and crash.
fix: eliminated useless filter to suppress high resolutions detection in PREVENTMAXIMAZE mode
fix: fixed mciSendCommand wrapper log messages that could crash the program

View File

@ -5078,14 +5078,6 @@ HRESULT WINAPI myEnumModesFilterDirect(LPDDSURFACEDESC lpDDSurfaceDesc, LPVOID l
lpDDSurfaceDesc->dwHeight=SupportedRes[ResIdx].h;
lpDDSurfaceDesc->dwWidth=SupportedRes[ResIdx].w;
if(CheckResolutionLimit(lpDDSurfaceDesc)) return DDENUMRET_OK;
if (dxw.dwFlags1 & PREVENTMAXIMIZE){
// if PREVENTMAXIMIZE is set, don't let the caller know about forbidden screen settings.
if((lpDDSurfaceDesc->dwHeight > dxw.GetScreenHeight()) ||
(lpDDSurfaceDesc->dwWidth > dxw.GetScreenWidth())){
OutTraceDW("EnumDisplayModes: skipping screen size=(%d,%d)\n", lpDDSurfaceDesc->dwHeight, lpDDSurfaceDesc->dwWidth);
return DDENUMRET_OK;
}
}
res=(*((NewContext_Type *)lpContext)->lpCallback)(lpDDSurfaceDesc, ((NewContext_Type *)lpContext)->lpContext);
OutTraceDW("EnumDisplayModes(D): proposed size[%d]=(%d,%d) res=%x\n", ResIdx, SupportedRes[ResIdx].w, SupportedRes[ResIdx].h, res);
if(res==DDENUMRET_CANCEL) break;

View File

@ -27,7 +27,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "TlHelp32.h"
#define VERSION "2.03.94.fx2"
#define VERSION "2.03.94.fx3"
#define DDTHREADLOCK 1
//#define LOCKTHREADS

Binary file not shown.

View File

@ -851,12 +851,12 @@ HRESULT WINAPI extDeviceProxy7(LPSTR lpDeviceDescription, LPSTR lpDeviceName, LP
return res;
}
HRESULT WINAPI extEnumDevices(EnumDevices_Type pEnumDevices, void *lpd3d, LPD3DENUMDEVICESCALLBACK cb, LPVOID arg)
HRESULT WINAPI extEnumDevices(int version, EnumDevices_Type pEnumDevices, void *lpd3d, LPD3DENUMDEVICESCALLBACK cb, LPVOID arg)
{
HRESULT res;
CallbackArg Arg;
OutTraceD3D("EnumDevices: d3d=%x arg=%x\n", lpd3d, arg);
OutTraceD3D("EnumDevices(%d): d3d=%x arg=%x\n", version, lpd3d, arg);
Arg.cb= &cb;
Arg.arg=arg;
res=(*pEnumDevices)(lpd3d, (LPD3DENUMDEVICESCALLBACK)extDeviceProxy, (LPVOID)&Arg);
@ -866,11 +866,11 @@ HRESULT WINAPI extEnumDevices(EnumDevices_Type pEnumDevices, void *lpd3d, LPD3DE
}
HRESULT WINAPI extEnumDevices1(void *lpd3d, LPD3DENUMDEVICESCALLBACK cb, LPVOID arg)
{ return extEnumDevices(pEnumDevices1, lpd3d, cb, arg); }
{ return extEnumDevices(1, pEnumDevices1, lpd3d, cb, arg); }
HRESULT WINAPI extEnumDevices2(void *lpd3d, LPD3DENUMDEVICESCALLBACK cb, LPVOID arg)
{ return extEnumDevices(pEnumDevices2, lpd3d, cb, arg); }
{ return extEnumDevices(2, pEnumDevices2, lpd3d, cb, arg); }
HRESULT WINAPI extEnumDevices3(void *lpd3d, LPD3DENUMDEVICESCALLBACK cb, LPVOID arg)
{ return extEnumDevices(pEnumDevices3, lpd3d, cb, arg); }
{ return extEnumDevices(3, pEnumDevices3, lpd3d, cb, arg); }
HRESULT WINAPI extEnumDevices7(void *lpd3d, LPD3DENUMDEVICESCALLBACK7 cb, LPVOID arg)
@ -878,7 +878,7 @@ HRESULT WINAPI extEnumDevices7(void *lpd3d, LPD3DENUMDEVICESCALLBACK7 cb, LPVOID
HRESULT res;
CallbackArg7 Arg;
OutTraceD3D("EnumDevices: d3d=%x arg=%x\n", lpd3d, arg);
OutTraceD3D("EnumDevices(7): d3d=%x arg=%x\n", lpd3d, arg);
Arg.cb= &cb;
Arg.arg=arg;
res=(*pEnumDevices7)(lpd3d, (LPD3DENUMDEVICESCALLBACK7)extDeviceProxy7, (LPVOID)&Arg);

View File

@ -15,7 +15,7 @@
#define EMULATEJOY TRUE
#define INVERTJOYAXIS TRUE
#include "logall.h" // comment when not debugging
//#include "logall.h" // comment when not debugging
BOOL IsWithinMCICall = FALSE;
@ -177,33 +177,34 @@ static char *sDeviceType(DWORD dt)
static void DumpMciMessage(char *label, BOOL isAnsi, UINT uMsg, DWORD_PTR fdwCommand, DWORD_PTR dwParam)
{
char *api="mciSendCommand";
switch(uMsg){
case MCI_BREAK:
{
LPMCI_BREAK_PARMS lpBreak = (LPMCI_BREAK_PARMS)dwParam;
OutTrace("mciSendCommand%s: MCI_BREAK cb=%x virtkey=%d hwndbreak=%x\n",
label, lpBreak->dwCallback, lpBreak->nVirtKey, lpBreak->hwndBreak);
OutTrace("%s%s: MCI_BREAK cb=%x virtkey=%d hwndbreak=%x\n",
api, label, lpBreak->dwCallback, lpBreak->nVirtKey, lpBreak->hwndBreak);
}
break;
case MCI_INFO:
{
LPMCI_INFO_PARMS lpInfo = (LPMCI_INFO_PARMS)dwParam;
OutTrace("mciSendCommand%s: MCI_INFO cb=%x retsize=%x\n",
label, lpInfo->dwCallback, lpInfo->dwRetSize);
OutTrace("%s%s: MCI_INFO cb=%x retsize=%x\n",
api, label, lpInfo->dwCallback, lpInfo->dwRetSize);
}
break;
case MCI_PLAY:
{
LPMCI_PLAY_PARMS lpPlay = (LPMCI_PLAY_PARMS)dwParam;
OutTrace("mciSendCommand%s: MCI_PLAY cb=%x from=%x to=%x\n",
label, lpPlay->dwCallback, lpPlay->dwFrom, lpPlay->dwTo);
OutTrace("%s%s: MCI_PLAY cb=%x from=%x to=%x\n",
api, label, lpPlay->dwCallback, lpPlay->dwFrom, lpPlay->dwTo);
}
break;
case MCI_GETDEVCAPS:
{
LPMCI_GETDEVCAPS_PARMS lpDevCaps = (LPMCI_GETDEVCAPS_PARMS)dwParam;
OutTrace("mciSendCommand%s: MCI_GETDEVCAPS cb=%x ret=%x item=%x\n",
label, lpDevCaps->dwCallback, lpDevCaps->dwReturn, lpDevCaps->dwItem);
OutTrace("%s%s: MCI_GETDEVCAPS cb=%x ret=%x item=%x\n",
api, label, lpDevCaps->dwCallback, lpDevCaps->dwReturn, lpDevCaps->dwItem);
}
break;
case MCI_OPEN:
@ -212,8 +213,8 @@ static void DumpMciMessage(char *label, BOOL isAnsi, UINT uMsg, DWORD_PTR fdwCom
// how to dump LPMCI_OPEN_PARMS strings without crash?
if(isAnsi){
LPMCI_OPEN_PARMSA lpOpen = (LPMCI_OPEN_PARMSA)dwParam;
OutTrace("mciSendCommand%s: MCI_OPEN %scb=%x devid=%x devtype=%s elementname=%s alias=%s\n",
label,
OutTrace("%s%s: MCI_OPEN %scb=%x devid=%x devtype=%s elementname=%s alias=%s\n",
api, label,
(dwFlags & MCI_OPEN_SHAREABLE) ? "OPEN_SHAREABLE " : "",
lpOpen->dwCallback, lpOpen->wDeviceID,
"", //(dwFlags & MCI_OPEN_TYPE) ? lpOpen->lpstrDeviceType : "",
@ -222,8 +223,8 @@ static void DumpMciMessage(char *label, BOOL isAnsi, UINT uMsg, DWORD_PTR fdwCom
}
else{
LPMCI_OPEN_PARMSW lpOpen = (LPMCI_OPEN_PARMSW)dwParam;
OutTrace("mciSendCommand%s: MCI_OPEN cb=%x devid=%x devtype=%ls elementname=%ls alias=%ls\n",
label,
OutTrace("%s%s: MCI_OPEN cb=%x devid=%x devtype=%ls elementname=%ls alias=%ls\n",
api, label,
(dwFlags & MCI_OPEN_SHAREABLE) ? "OPEN_SHAREABLE " : "",
lpOpen->dwCallback, lpOpen->wDeviceID,
L"", //(dwFlags & MCI_OPEN_TYPE) ? lpOpen->lpstrDeviceType : L"",
@ -235,22 +236,24 @@ static void DumpMciMessage(char *label, BOOL isAnsi, UINT uMsg, DWORD_PTR fdwCom
case MCI_STATUS:
{
LPMCI_STATUS_PARMS lpStatus = (LPMCI_STATUS_PARMS)dwParam;
OutTrace("mciSendCommand%s: MCI_STATUS cb=%x ret=%x item=%x(%s) track=%x\n",
label, lpStatus->dwCallback, lpStatus->dwReturn, lpStatus->dwItem, sStatusItem(lpStatus->dwItem), lpStatus->dwTrack);
OutTrace("%s%s: MCI_STATUS cb=%x ret=%x item=%x(%s) track=%x\n",
api, label, lpStatus->dwCallback, lpStatus->dwReturn, lpStatus->dwItem, sStatusItem(lpStatus->dwItem), lpStatus->dwTrack);
}
break;
case MCI_SYSINFO:
{
LPMCI_SYSINFO_PARMS lpSysInfo = (LPMCI_SYSINFO_PARMS)dwParam;
OutTrace("mciSendCommand%s: MCI_SYSINFO cb=%x retsize=%x number=%x devtype=%x(%s)\n",
label, lpSysInfo->dwCallback, lpSysInfo->dwRetSize, lpSysInfo->dwNumber, lpSysInfo->wDeviceType, sDeviceType(lpSysInfo->wDeviceType));
OutTrace("%s%s: MCI_SYSINFO cb=%x retsize=%x number=%x devtype=%x(%s)\n",
api, label, lpSysInfo->dwCallback, lpSysInfo->dwRetSize, lpSysInfo->dwNumber, lpSysInfo->wDeviceType, sDeviceType(lpSysInfo->wDeviceType));
}
break;
default:
{
LPMCI_GENERIC_PARMS lpGeneric = (LPMCI_GENERIC_PARMS)dwParam;
OutTrace("mciSendCommand%s: %s cb=%x\n",
label, ExplainMCICommands(uMsg), lpGeneric->dwCallback);
if(lpGeneric)
OutTrace("%s%s: %s cb=%x\n", api, label, ExplainMCICommands(uMsg), lpGeneric->dwCallback);
else
OutTrace("%s%s: %s params=(NULL)\n", api, label, ExplainMCICommands(uMsg));
}
break;
}
@ -345,11 +348,13 @@ MCIERROR WINAPI extmciSendCommand(BOOL isAnsi, mciSendCommand_Type pmciSendComma
}
}
#if 0
LPMCI_GENERIC_PARMS lpGeneric = (LPMCI_GENERIC_PARMS)dwParam;
if(HIWORD(lpGeneric->dwCallback) == NULL) {
lpGeneric->dwCallback = MAKELONG(dxw.GethWnd(),0);
OutTraceB("mciSendCommand: REDIRECT dwCallback=%x\n", dxw.GethWnd());
}
#endif
ret=(*pmciSendCommand)(IDDevice, uMsg, fdwCommand, dwParam);
if(IsDebug) DumpMciMessage("<<", isAnsi, uMsg, fdwCommand, dwParam);