Port various fixes from Beetle renderers
- Use PGXP w values to detect 3D geometry when modifying tex coords for flipped sprites - Replace line rendering algorithm with find/force line hack implementations - Add UI drop box to access this (no longer dependent on tex coord control)
This commit is contained in:
parent
808e3feedb
commit
cd685f7b75
|
@ -353,6 +353,7 @@ extern BOOL bUseFastMdec;
|
|||
extern BOOL bUse15bitMdec;
|
||||
extern int iFrameTexType;
|
||||
extern int iFrameReadType;
|
||||
extern int iLineHackMode;
|
||||
extern int iClampType;
|
||||
extern int iSortTexCnt;
|
||||
extern BOOL bFakeFrontBuffer;
|
||||
|
|
|
@ -3326,167 +3326,194 @@ void primPolyG4(unsigned char * baseAddr)
|
|||
// cmd: flat shaded Texture3
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
|
||||
BOOL DoLineCheck(uint32_t *gpuData)
|
||||
|
||||
// 0 = disabled
|
||||
// 1 = enabled (default mode)
|
||||
// 2 = enabled (aggressive mode)
|
||||
|
||||
typedef struct
|
||||
{
|
||||
BOOL bQuad=FALSE;short dx,dy;
|
||||
short x, y;
|
||||
short padding[2];
|
||||
}sourceVert;
|
||||
|
||||
if(lx0==lx1)
|
||||
{
|
||||
dx=lx0-lx2;if(dx<0) dx=-dx;
|
||||
// Hack to deal with PS1 games rendering axis aligned lines using 1 pixel wide triangles with UVs that describe a line
|
||||
// Suitable for games like Soul Blade, Doom and Hexen
|
||||
BOOL Hack_FindLine(uint32_t *gpuData)
|
||||
{
|
||||
int pxWidth = 1; // width of a single pixel
|
||||
unsigned short cornerIdx, shortIdx, longIdx;
|
||||
|
||||
if(ly1==ly2)
|
||||
{
|
||||
dy=ly1-ly0;if(dy<0) dy=-dy;
|
||||
if(dx<=1)
|
||||
{
|
||||
vertex[3]=vertex[2];
|
||||
vertex[2]=vertex[0];
|
||||
vertex[2].x=vertex[3].x;
|
||||
}
|
||||
else
|
||||
if(dy<=1)
|
||||
{
|
||||
vertex[3]=vertex[2];
|
||||
vertex[2].y=vertex[0].y;
|
||||
}
|
||||
else return FALSE;
|
||||
sourceVert* pSourceVerts = (sourceVert*)&gpuData[1];
|
||||
|
||||
bQuad=TRUE;
|
||||
}
|
||||
else
|
||||
if(ly0==ly2)
|
||||
{
|
||||
dy=ly0-ly1;if(dy<0) dy=-dy;
|
||||
if(dx<=1)
|
||||
{
|
||||
vertex[3]=vertex[1];
|
||||
vertex[3].x=vertex[2].x;
|
||||
}
|
||||
else
|
||||
if(dy<=1)
|
||||
{
|
||||
vertex[3]=vertex[2];
|
||||
vertex[3].y=vertex[1].y;
|
||||
}
|
||||
else return FALSE;
|
||||
// reject 3D elements
|
||||
if ((vertex[0].w != vertex[1].w) ||
|
||||
(vertex[1].w != vertex[2].w))
|
||||
return FALSE;
|
||||
|
||||
bQuad=TRUE;
|
||||
}
|
||||
}
|
||||
// find short side of triangle / end of line with 2 vertices (guess which vertex is the right angle)
|
||||
if ((vertex[0].sow == vertex[1].sow) && (vertex[0].tow == vertex[1].tow))
|
||||
cornerIdx = 0;
|
||||
else if ((vertex[1].sow == vertex[2].sow) && (vertex[1].tow == vertex[2].tow))
|
||||
cornerIdx = 1;
|
||||
else if ((vertex[2].sow == vertex[0].sow) && (vertex[2].tow == vertex[0].tow))
|
||||
cornerIdx = 2;
|
||||
else
|
||||
return FALSE;
|
||||
|
||||
if(lx0==lx2)
|
||||
{
|
||||
dx=lx0-lx1;if(dx<0) dx=-dx;
|
||||
// assign other indices to remaining vertices
|
||||
shortIdx = (cornerIdx + 1) % 3;
|
||||
longIdx = (shortIdx + 1) % 3;
|
||||
|
||||
if(ly2==ly1)
|
||||
{
|
||||
dy=ly2-ly0;if(dy<0) dy=-dy;
|
||||
if(dx<=1)
|
||||
{
|
||||
vertex[3]=vertex[1];
|
||||
vertex[1]=vertex[0];
|
||||
vertex[1].x=vertex[3].x;
|
||||
}
|
||||
else
|
||||
if(dy<=1)
|
||||
{
|
||||
vertex[3]=vertex[1];
|
||||
vertex[1].y=vertex[0].y;
|
||||
}
|
||||
else return FALSE;
|
||||
// determine line orientation and check width
|
||||
if ((vertex[cornerIdx].x == vertex[shortIdx].x) && (abs(pSourceVerts[cornerIdx].y - pSourceVerts[shortIdx].y) == pxWidth))
|
||||
{
|
||||
// line is horizontal
|
||||
// determine which is truly the corner by checking against the long side, while making sure it is axis aligned
|
||||
if (vertex[shortIdx].y == vertex[longIdx].y)
|
||||
{
|
||||
unsigned short tempIdx = shortIdx;
|
||||
shortIdx = cornerIdx;
|
||||
cornerIdx = tempIdx;
|
||||
}
|
||||
else if (vertex[cornerIdx].y != vertex[longIdx].y)
|
||||
return FALSE;
|
||||
|
||||
bQuad=TRUE;
|
||||
}
|
||||
else
|
||||
if(ly0==ly1)
|
||||
{
|
||||
dy=ly2-ly0;if(dy<0) dy=-dy;
|
||||
if(dx<=1)
|
||||
{
|
||||
vertex[3]=vertex[2];
|
||||
vertex[3].x=vertex[1].x;
|
||||
}
|
||||
else
|
||||
if(dy<=1)
|
||||
{
|
||||
vertex[3]=vertex[1];
|
||||
vertex[3].y=vertex[2].y;
|
||||
}
|
||||
else return FALSE;
|
||||
// flip corner index to other side of quad
|
||||
vertex[3] = vertex[longIdx];
|
||||
vertex[3].y = vertex[shortIdx].y;
|
||||
}
|
||||
else if ((vertex[cornerIdx].y == vertex[shortIdx].y) && (abs(pSourceVerts[cornerIdx].x - pSourceVerts[shortIdx].x) == pxWidth))
|
||||
{
|
||||
// line is vertical
|
||||
// determine which is truly the corner by checking against the long side, while making sure it is axis aligned
|
||||
if (vertex[shortIdx].x == vertex[longIdx].x)
|
||||
{
|
||||
unsigned short tempIdx = shortIdx;
|
||||
shortIdx = cornerIdx;
|
||||
cornerIdx = tempIdx;
|
||||
}
|
||||
else if (vertex[cornerIdx].x != vertex[longIdx].x)
|
||||
return FALSE;
|
||||
|
||||
bQuad=TRUE;
|
||||
}
|
||||
}
|
||||
// flip corner index to other side of quad
|
||||
vertex[3] = vertex[longIdx];
|
||||
vertex[3].x = vertex[shortIdx].x;
|
||||
}
|
||||
else
|
||||
return FALSE;
|
||||
|
||||
// Draw Quad
|
||||
PRIMdrawTexturedQuad(&vertex[cornerIdx], &vertex[longIdx], &vertex[3], &vertex[shortIdx]);
|
||||
|
||||
if(bDrawMultiPass)
|
||||
{
|
||||
SetSemiTransMulti(1);
|
||||
PRIMdrawTexturedQuad(&vertex[cornerIdx], &vertex[longIdx], &vertex[3], &vertex[shortIdx]);
|
||||
}
|
||||
|
||||
if(ubOpaqueDraw)
|
||||
{
|
||||
SetZMask4O();
|
||||
if(bUseMultiPass) SetOpaqueColor(gpuData[0]);
|
||||
DEFOPAQUEON
|
||||
PRIMdrawTexturedQuad(&vertex[cornerIdx], &vertex[longIdx], &vertex[3], &vertex[shortIdx]);
|
||||
DEFOPAQUEOFF
|
||||
}
|
||||
|
||||
iDrawnSomething=1;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if(lx1==lx2)
|
||||
{
|
||||
dx=lx1-lx0;if(dx<0) dx=-dx;
|
||||
|
||||
if(ly1==ly0)
|
||||
{
|
||||
dy=ly1-ly2;if(dy<0) dy=-dy;
|
||||
// Hack to deal with PS1 games rendering axis aligned lines using 1 pixel wide triangles and force UVs to describe a line
|
||||
// Required for games like Dark Forces and Duke Nukem
|
||||
BOOL Hack_ForceLine(uint32_t *gpuData)
|
||||
{
|
||||
int pxWidth = 1; // width of a single pixel
|
||||
unsigned short cornerIdx, shortIdx, longIdx;
|
||||
|
||||
if(dx<=1)
|
||||
{
|
||||
vertex[3]=vertex[2];
|
||||
vertex[2].x=vertex[0].x;
|
||||
}
|
||||
else
|
||||
if(dy<=1)
|
||||
{
|
||||
vertex[3]=vertex[2];
|
||||
vertex[2]=vertex[0];
|
||||
vertex[2].y=vertex[3].y;
|
||||
}
|
||||
else return FALSE;
|
||||
sourceVert* pSourceVerts = (sourceVert*)&gpuData[1];
|
||||
|
||||
bQuad=TRUE;
|
||||
}
|
||||
else
|
||||
if(ly2==ly0)
|
||||
{
|
||||
dy=ly2-ly1;if(dy<0) dy=-dy;
|
||||
// reject 3D elements
|
||||
if ((vertex[0].w != vertex[1].w) ||
|
||||
(vertex[1].w != vertex[2].w))
|
||||
return FALSE;
|
||||
|
||||
if(dx<=1)
|
||||
{
|
||||
vertex[3]=vertex[1];
|
||||
vertex[1].x=vertex[0].x;
|
||||
}
|
||||
else
|
||||
if(dy<=1)
|
||||
{
|
||||
vertex[3]=vertex[1];
|
||||
vertex[1]=vertex[0];
|
||||
vertex[1].y=vertex[3].y;
|
||||
}
|
||||
else return FALSE;
|
||||
// find vertical AB
|
||||
unsigned short A, B, C;
|
||||
if (vertex[0].x == vertex[1].x)
|
||||
A = 0;
|
||||
else if (vertex[1].x == vertex[2].x)
|
||||
A = 1;
|
||||
else if (vertex[2].x == vertex[0].x)
|
||||
A = 2;
|
||||
else
|
||||
return FALSE;
|
||||
|
||||
bQuad=TRUE;
|
||||
}
|
||||
}
|
||||
// assign other indices to remaining vertices
|
||||
B = (A + 1) % 3;
|
||||
C = (B + 1) % 3;
|
||||
|
||||
if(!bQuad) return FALSE;
|
||||
// find horizontal AC or BC
|
||||
if (vertex[A].y == vertex[C].y)
|
||||
cornerIdx = A;
|
||||
else if (vertex[B].y == vertex[C].y)
|
||||
cornerIdx = B;
|
||||
else
|
||||
return FALSE;
|
||||
|
||||
PRIMdrawTexturedQuad(&vertex[0], &vertex[1], &vertex[3], &vertex[2]);
|
||||
// determine lengths of sides
|
||||
if (abs(pSourceVerts[A].y - pSourceVerts[B].y) == pxWidth)
|
||||
{
|
||||
// is Horizontal
|
||||
shortIdx = (cornerIdx == A) ? B : A;
|
||||
longIdx = C;
|
||||
|
||||
if(bDrawMultiPass)
|
||||
{
|
||||
SetSemiTransMulti(1);
|
||||
PRIMdrawTexturedQuad(&vertex[0], &vertex[1], &vertex[3], &vertex[2]);
|
||||
}
|
||||
// flip corner index to other side of quad
|
||||
vertex[3] = vertex[longIdx];
|
||||
vertex[3].y = vertex[shortIdx].y;
|
||||
}
|
||||
else if (abs(pSourceVerts[A].x - pSourceVerts[C].x) == pxWidth)
|
||||
{
|
||||
// is Vertical
|
||||
shortIdx = C;
|
||||
longIdx = (cornerIdx == A) ? B : A;
|
||||
|
||||
if(ubOpaqueDraw)
|
||||
{
|
||||
SetZMask4O();
|
||||
if(bUseMultiPass) SetOpaqueColor(gpuData[0]);
|
||||
DEFOPAQUEON
|
||||
PRIMdrawTexturedQuad(&vertex[0], &vertex[1], &vertex[3], &vertex[2]);
|
||||
DEFOPAQUEOFF
|
||||
}
|
||||
// flip corner index to other side of quad
|
||||
vertex[3] = vertex[longIdx];
|
||||
vertex[3].x = vertex[shortIdx].x;
|
||||
}
|
||||
else
|
||||
return FALSE;
|
||||
|
||||
iDrawnSomething=1;
|
||||
// force UVs into a line along the upper or left most edge of the triangle
|
||||
// Otherwise the wrong UVs will be sampled on second triangle and by hardware renderers
|
||||
vertex[shortIdx].sow = vertex[cornerIdx].sow;
|
||||
vertex[shortIdx].tow = vertex[cornerIdx].tow;
|
||||
|
||||
return TRUE;
|
||||
// Draw Quad
|
||||
PRIMdrawTexturedQuad(&vertex[cornerIdx], &vertex[longIdx], &vertex[3], &vertex[shortIdx]);
|
||||
|
||||
if (bDrawMultiPass)
|
||||
{
|
||||
SetSemiTransMulti(1);
|
||||
PRIMdrawTexturedQuad(&vertex[cornerIdx], &vertex[longIdx], &vertex[3], &vertex[shortIdx]);
|
||||
}
|
||||
|
||||
if (ubOpaqueDraw)
|
||||
{
|
||||
SetZMask4O();
|
||||
if (bUseMultiPass) SetOpaqueColor(gpuData[0]);
|
||||
DEFOPAQUEON
|
||||
PRIMdrawTexturedQuad(&vertex[cornerIdx], &vertex[longIdx], &vertex[3], &vertex[shortIdx]);
|
||||
DEFOPAQUEOFF
|
||||
}
|
||||
|
||||
iDrawnSomething = 1;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
|
@ -3536,9 +3563,18 @@ void primPolyFT3(unsigned char * baseAddr)
|
|||
|
||||
assignTexture3();
|
||||
|
||||
if(!(dwActFixes&0x10))
|
||||
{
|
||||
if(DoLineCheck(gpuData)) return;
|
||||
switch(iLineHackMode)
|
||||
{
|
||||
case 0:
|
||||
break; // disabled
|
||||
case 1:
|
||||
if (Hack_FindLine(gpuData)) // default mode
|
||||
return;
|
||||
break;
|
||||
case 2:
|
||||
if (Hack_ForceLine(gpuData)) // aggressive mode
|
||||
return;
|
||||
break;
|
||||
}
|
||||
|
||||
PRIMdrawTexturedTri(&vertex[0], &vertex[1], &vertex[2]);
|
||||
|
@ -3572,6 +3608,10 @@ void RectTexAlign(void)
|
|||
int UFlipped = FALSE;
|
||||
int VFlipped = FALSE;
|
||||
|
||||
// Leverage PGXP to further avoid 3D polygons that just happen to align this way after projection
|
||||
if ((vertex[0].w != vertex[1].w) || (vertex[1].w != vertex[2].w))
|
||||
return;
|
||||
|
||||
if(gTexName==gTexFrameName) return;
|
||||
|
||||
if(ly0==ly1)
|
||||
|
|
|
@ -139,6 +139,7 @@ BOOL bUseFastMdec=FALSE;
|
|||
BOOL bUse15bitMdec=FALSE;
|
||||
int iFrameTexType=0;
|
||||
int iFrameReadType=0;
|
||||
int iLineHackMode=0;
|
||||
|
||||
uint32_t (*TCF[2]) (uint32_t);
|
||||
unsigned short (*PTCF[2]) (unsigned short);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
//Microsoft Developer Studio generated resource script.
|
||||
// Microsoft Visual C++ generated resource script.
|
||||
//
|
||||
#include "resource.h"
|
||||
|
||||
|
@ -6,14 +6,8 @@
|
|||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 2 resource.
|
||||
// Use MFC if available
|
||||
//
|
||||
#if defined(_MFC_VER)
|
||||
#include "afxres.h"
|
||||
#else
|
||||
#include "WinResrc.h"
|
||||
#include <winres.h>
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
@ -22,29 +16,26 @@
|
|||
// Neutral resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEU)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
|
||||
#pragma code_page(1252)
|
||||
#endif //_WIN32
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Bitmap
|
||||
//
|
||||
|
||||
IDB_GPU BITMAP DISCARDABLE "res\\gpu.bmp"
|
||||
IDB_GPU BITMAP "res\\gpu.bmp"
|
||||
|
||||
#endif // Neutral resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// English (U.S.) resources
|
||||
// English (United States) resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
#pragma code_page(1252)
|
||||
#endif //_WIN32
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -52,18 +43,18 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
|||
// TEXTINCLUDE
|
||||
//
|
||||
|
||||
1 TEXTINCLUDE DISCARDABLE
|
||||
1 TEXTINCLUDE
|
||||
BEGIN
|
||||
"resource.h\0"
|
||||
END
|
||||
|
||||
2 TEXTINCLUDE DISCARDABLE
|
||||
2 TEXTINCLUDE
|
||||
BEGIN
|
||||
"#include ""afxres.h""\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
3 TEXTINCLUDE DISCARDABLE
|
||||
3 TEXTINCLUDE
|
||||
BEGIN
|
||||
"#define _AFX_NO_SPLITTER_RESOURCES\r\n"
|
||||
"#define _AFX_NO_OLE_RESOURCES\r\n"
|
||||
|
@ -81,7 +72,6 @@ END
|
|||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
#ifndef _MAC
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Version
|
||||
|
@ -104,18 +94,13 @@ BEGIN
|
|||
BEGIN
|
||||
BLOCK "040904b0"
|
||||
BEGIN
|
||||
VALUE "Comments", "\0"
|
||||
VALUE "CompanyName", "\0"
|
||||
VALUE "FileDescription", "gpuPeopsOpenGL.dll\0"
|
||||
VALUE "FileVersion", "1, 78, 0, 0\0"
|
||||
VALUE "InternalName", "P.E.Op.S. PSX OpenGL GPU (mod)\0"
|
||||
VALUE "LegalCopyright", "Copyright (C) 1999-2009\0"
|
||||
VALUE "LegalTrademarks", "\0"
|
||||
VALUE "OriginalFilename", "gpuPeopsOpenGL.dll\0"
|
||||
VALUE "PrivateBuild", "\0"
|
||||
VALUE "ProductName", "gpuPeopsOpenGL Dynamic Link Library\0"
|
||||
VALUE "ProductVersion", "1, 78, 0, 0\0"
|
||||
VALUE "SpecialBuild", "\0"
|
||||
VALUE "FileDescription", "gpuPeopsOpenGL.dll"
|
||||
VALUE "FileVersion", "1, 78, 0, 0"
|
||||
VALUE "InternalName", "P.E.Op.S. PSX OpenGL GPU (mod)"
|
||||
VALUE "LegalCopyright", "Copyright (C) 1999-2009"
|
||||
VALUE "OriginalFilename", "gpuPeopsOpenGL.dll"
|
||||
VALUE "ProductName", "gpuPeopsOpenGL Dynamic Link Library"
|
||||
VALUE "ProductVersion", "1, 78, 0, 0"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
|
@ -124,16 +109,14 @@ BEGIN
|
|||
END
|
||||
END
|
||||
|
||||
#endif // !_MAC
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Dialog
|
||||
//
|
||||
|
||||
IDD_DIALOG_ABOUT DIALOG DISCARDABLE 0, 0, 258, 165
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
IDD_DIALOG_ABOUT DIALOG 0, 0, 258, 165
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "About P.E.Op.S. PSX OpenGL Renderer ..."
|
||||
FONT 8, "MS Sans Serif"
|
||||
BEGIN
|
||||
|
@ -147,23 +130,18 @@ BEGIN
|
|||
RTEXT "Release date:",IDC_STATIC,8,17,49,10
|
||||
LTEXT "04/2009",IDC_STATIC,60,17,159,10
|
||||
RTEXT "Thanks to:",IDC_STATIC,8,74,49,10
|
||||
LTEXT "Lewpy - without his infos this driver wouldn't exist",
|
||||
IDC_STATIC,60,74,159,10
|
||||
LTEXT "Duddie && FoxPro - for their public sources",IDC_STATIC,
|
||||
60,86,159,10
|
||||
LTEXT "My girlfriend Heike - 'Hey, that cloud still looks funny, ",
|
||||
IDC_STATIC,60,112,170,10
|
||||
LTEXT "Lewpy - without his infos this driver wouldn't exist",IDC_STATIC,60,74,159,10
|
||||
LTEXT "Duddie && FoxPro - for their public sources",IDC_STATIC,60,86,159,10
|
||||
LTEXT "My girlfriend Heike - 'Hey, that cloud still looks funny, ",IDC_STATIC,60,112,170,10
|
||||
LTEXT "go on and change it...'",IDC_STATIC,125,121,117,10
|
||||
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDFRAME | SS_SUNKEN,4,68,
|
||||
249,70
|
||||
LTEXT "Gamma - thanks for your OpenGL book",IDC_STATIC,60,99,
|
||||
159,10
|
||||
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDFRAME | SS_SUNKEN,4,68,249,70
|
||||
LTEXT "Gamma - thanks for your OpenGL book",IDC_STATIC,60,99,159,10
|
||||
END
|
||||
|
||||
IDD_CFGDLG DIALOGEX 0, 0, 413, 306
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
IDD_CFGDLG DIALOGEX 0, 0, 413, 341
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Configure P.E.Op.S. PSX OpenGL Renderer ..."
|
||||
FONT 8, "MS Sans Serif"
|
||||
FONT 8, "MS Sans Serif", 0, 0, 0x1
|
||||
BEGIN
|
||||
CONTROL "Fullscreen mode",IDC_DISPMODE1,"Button",BS_AUTORADIOBUTTON,11,11,73,10
|
||||
CONTROL "Window mode",IDC_DISPMODE2,"Button",BS_AUTORADIOBUTTON,11,25,63,10
|
||||
|
@ -190,30 +168,30 @@ BEGIN
|
|||
CONTROL "Alpha MultiPass",IDC_OPAQUE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,219,127,66,10
|
||||
CONTROL "Mask bit",IDC_USEMASK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,219,138,47,10
|
||||
CONTROL "Advanced blending",IDC_ADVBLEND,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,219,149,76,10
|
||||
CONTROL "Scanlines",IDC_USESCANLINES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,176,46,10
|
||||
EDITTEXT IDC_SCANBLEND,375,175,29,12,ES_AUTOHSCROLL
|
||||
CONTROL "Line mode",IDC_USELINES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,186,48,10
|
||||
CONTROL "Unfiltered framebuffer updates",IDC_FASTMDEC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,196,113,10
|
||||
CONTROL "Force 15 bit framebuffer updates",IDC_FASTMDEC2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,206,121,10
|
||||
CONTROL "Color dithering",IDC_DRAWDITHER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,216,81,10
|
||||
CONTROL "Screen smoothing",IDC_BLUR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,226,81,10
|
||||
CONTROL "Disable screensaver",IDC_SSAVE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,236,81,10
|
||||
CONTROL "Special game fixes",IDC_GAMEFIX,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,246,75,10
|
||||
PUSHBUTTON "...",IDC_SELFIX,89,246,11,10,0,WS_EX_STATICEDGE
|
||||
PUSHBUTTON "Fast",IDC_DEF1,10,282,34,14
|
||||
PUSHBUTTON "Nice",IDC_DEF2,49,282,34,14
|
||||
DEFPUSHBUTTON "OK",IDOK,113,282,84,14
|
||||
PUSHBUTTON "Cancel",IDCANCEL,215,282,84,14
|
||||
PUSHBUTTON "Copy settings\n to clipboard",IDC_CLIPBOARD,322,276,87,25,BS_MULTILINE,WS_EX_STATICEDGE
|
||||
GROUPBOX "Misc",IDC_STATIC,3,166,406,104
|
||||
GROUPBOX "Default settings",IDC_STATIC,3,272,88,30
|
||||
CONTROL "Scanlines",IDC_USESCANLINES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,198,46,10
|
||||
EDITTEXT IDC_SCANBLEND,379,197,29,12,ES_AUTOHSCROLL
|
||||
CONTROL "Line mode",IDC_USELINES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,208,48,10
|
||||
CONTROL "Unfiltered framebuffer updates",IDC_FASTMDEC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,218,113,10
|
||||
CONTROL "Force 15 bit framebuffer updates",IDC_FASTMDEC2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,228,121,10
|
||||
CONTROL "Color dithering",IDC_DRAWDITHER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,238,81,10
|
||||
CONTROL "Screen smoothing",IDC_BLUR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,248,81,10
|
||||
CONTROL "Disable screensaver",IDC_SSAVE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,258,81,10
|
||||
CONTROL "Special game fixes",IDC_GAMEFIX,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,268,75,10
|
||||
PUSHBUTTON "...",IDC_SELFIX,93,268,11,10,0,WS_EX_STATICEDGE
|
||||
PUSHBUTTON "Fast",IDC_DEF1,14,309,34,14
|
||||
PUSHBUTTON "Nice",IDC_DEF2,53,309,34,14
|
||||
DEFPUSHBUTTON "OK",IDOK,117,309,84,14
|
||||
PUSHBUTTON "Cancel",IDCANCEL,219,309,84,14
|
||||
PUSHBUTTON "Copy settings\n to clipboard",IDC_CLIPBOARD,319,298,87,25,BS_MULTILINE,WS_EX_STATICEDGE
|
||||
GROUPBOX "Misc",IDC_STATIC,7,184,406,108
|
||||
GROUPBOX "Default settings",IDC_STATIC,7,293,88,30
|
||||
GROUPBOX "Textures",IDC_STATIC,3,41,406,40
|
||||
RTEXT "Desktop resolution:",IDC_STATIC,81,12,65,9
|
||||
GROUPBOX "Resolution && Colors",IDC_STATIC,3,1,406,40
|
||||
RTEXT "Color depth:",IDC_STATIC,219,12,39,9
|
||||
GROUPBOX "Framerate",IDC_STATIC,3,81,406,33
|
||||
LTEXT "FPS",IDC_STATIC,367,100,17,9,SS_CENTERIMAGE
|
||||
GROUPBOX "Compatibility",IDC_STATIC,3,115,406,51
|
||||
GROUPBOX "Compatibility",IDC_STATIC,3,115,406,67
|
||||
RTEXT "Texture quality:",IDC_QUALTXT,6,52,51,9
|
||||
RTEXT "Window size:",IDC_STATIC,85,26,61,9
|
||||
CTEXT "x",IDC_STATIC,177,26,8,9
|
||||
|
@ -221,144 +199,97 @@ BEGIN
|
|||
RTEXT "Off-Screen drawing:",IDC_STATIC,11,124,64,10,SS_CENTERIMAGE
|
||||
RTEXT "Texture filtering:",IDC_STATIC,6,65,52,10
|
||||
RTEXT "Framebuffer textures:",IDC_STATIC,7,137,68,10,SS_CENTERIMAGE
|
||||
LTEXT "Some games will need certain special options to work without glitches",IDC_STATIC,135,246,242,9,SS_CENTERIMAGE
|
||||
LTEXT "Smoother shading in 16 bit color depth",IDC_STATIC,135,216,242,9,SS_CENTERIMAGE
|
||||
LTEXT "Small speed up with mdecs",IDC_STATIC,135,196,242,9,SS_CENTERIMAGE
|
||||
LTEXT "Polygons will not get filled",IDC_STATIC,135,186,89,9,SS_CENTERIMAGE
|
||||
LTEXT "TV screen alike lines",IDC_STATIC,135,176,69,9,SS_CENTERIMAGE
|
||||
LTEXT "Some games will need certain special options to work without glitches",IDC_STATIC,139,268,242,9,SS_CENTERIMAGE
|
||||
LTEXT "Smoother shading in 16 bit color depth",IDC_STATIC,139,238,242,9,SS_CENTERIMAGE
|
||||
LTEXT "Small speed up with mdecs",IDC_STATIC,139,218,242,9,SS_CENTERIMAGE
|
||||
LTEXT "Polygons will not get filled",IDC_STATIC,139,208,89,9,SS_CENTERIMAGE
|
||||
LTEXT "TV screen alike lines",IDC_STATIC,139,198,69,9,SS_CENTERIMAGE
|
||||
LTEXT "Accurate psx color emulation",IDC_STATIC,302,149,97,9,SS_CENTERIMAGE
|
||||
LTEXT "Correct opaque texture areas",IDC_STATIC,302,127,97,9,SS_CENTERIMAGE
|
||||
LTEXT "Needed by a few games",IDC_STATIC,302,138,97,9,SS_CENTERIMAGE
|
||||
RTEXT "Scanline brightness (0...255, -1=Monitor dot matrix):",IDC_STATIC,210,176,162,9,SS_CENTERIMAGE
|
||||
EDITTEXT IDC_CLPEDIT,314,293,6,12,ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | NOT WS_VISIBLE
|
||||
RTEXT "Scanline brightness (0...255, -1=Monitor dot matrix):",IDC_STATIC,214,198,162,9,SS_CENTERIMAGE
|
||||
EDITTEXT IDC_CLPEDIT,318,311,6,12,ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | NOT WS_VISIBLE
|
||||
LTEXT "MBytes",IDC_QUALTXT3,340,65,27,9
|
||||
LTEXT "The complete screen will get smoothed. Very slow on some cards, lotta vram needed",IDC_STATIC,135,226,269,9,SS_CENTERIMAGE
|
||||
LTEXT "The complete screen will get smoothed. Very slow on some cards, lotta vram needed",IDC_STATIC,139,248,269,9,SS_CENTERIMAGE
|
||||
RTEXT "Framebuffer access:",IDC_STATIC,7,150,68,10,SS_CENTERIMAGE
|
||||
LTEXT "Disable screensavers and power saving modes. Not available in Win95/WinNT",IDC_STATIC,135,236,269,9,SS_CENTERIMAGE
|
||||
LTEXT "Speed up with mdecs in 32 bit color depth, but less colorful",IDC_T14_STATIC2,135,206,268,9,SS_CENTERIMAGE
|
||||
LTEXT "Disable screensavers and power saving modes. Not available in Win95/WinNT",IDC_STATIC,139,258,269,9,SS_CENTERIMAGE
|
||||
LTEXT "Speed up with mdecs in 32 bit color depth, but less colorful",IDC_T14_STATIC2,139,228,268,9,SS_CENTERIMAGE
|
||||
RTEXT "Hi-Res textures:",IDC_QUALTXT4,223,52,50,9
|
||||
COMBOBOX IDC_VSYNC,261,24,36,64,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
RTEXT "V-Sync:",IDC_STATIC,219,26,39,9,SS_CENTERIMAGE
|
||||
CONTROL "Gte accuracy",IDC_GTEACCURACY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,256,59,10
|
||||
LTEXT "Higher GTE precision that can improve vertex positioning (ie less polygon shaking)",IDC_STATIC,135,256,262,9,SS_CENTERIMAGE
|
||||
CONTROL "Gte accuracy",IDC_GTEACCURACY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,278,59,10
|
||||
LTEXT "Higher GTE precision that can improve vertex positioning (ie less polygon shaking)",IDC_STATIC,139,278,262,9,SS_CENTERIMAGE
|
||||
CONTROL "Force 4:3 aspect ratio",IDC_ARATIO43,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,306,25,95,12
|
||||
COMBOBOX IDC_LINEHACK,78,162,130,64,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
RTEXT "Line Hack Mode",IDC_STATIC,7,163,68,10,SS_CENTERIMAGE
|
||||
END
|
||||
|
||||
IDD_FIXES DIALOG DISCARDABLE 0, 0, 316, 322
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
IDD_FIXES DIALOG 0, 0, 316, 322
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Special game fixes..."
|
||||
FONT 8, "MS Sans Serif"
|
||||
BEGIN
|
||||
CONTROL "0x00001: Adjust framebuffer access",IDC_FIX1,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,11,30,133,10
|
||||
CONTROL "0x00004: Ignore black brightness",IDC_FIX3,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,11,60,140,10
|
||||
CONTROL "0x00008: Swap front/back detection",IDC_FIX4,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,11,75,144,10
|
||||
CONTROL "0x00010: Disable coord check",IDC_FIX5,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,11,90,139,10
|
||||
CONTROL "0x00020: Remove blue glitches",IDC_FIX6,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,11,105,139,10
|
||||
CONTROL "0x00040: Mixed software FB access",IDC_FIX7,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,11,120,143,10
|
||||
CONTROL "0x00080: Use PC fps calculation",IDC_FIX8,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,11,135,142,10
|
||||
CONTROL "0x00100: Use old frame skipping",IDC_FIX9,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,11,150,139,10
|
||||
CONTROL "0x00002: Direct framebuffer updates",IDC_FIX2,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,11,45,137,10
|
||||
CONTROL "0x00200: G4 polygon cache",IDC_FIX10,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,11,165,141,10
|
||||
CONTROL "0x00400: Fake subtractive blending",IDC_FIX11,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,11,180,143,10
|
||||
CONTROL "0x00800: Lazy upload detection",IDC_FIX12,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,11,195,144,10
|
||||
CONTROL "0x01000: Odd/even bit hack",IDC_FIX13,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,11,210,143,10
|
||||
CONTROL "0x02000: Expand screen width",IDC_FIX14,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,11,225,144,10
|
||||
CONTROL "0x00001: Adjust framebuffer access",IDC_FIX1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,30,133,10
|
||||
CONTROL "0x00004: Ignore black brightness",IDC_FIX3,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,60,140,10
|
||||
CONTROL "0x00008: Swap front/back detection",IDC_FIX4,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,75,144,10
|
||||
CONTROL "0x00010: Disable coord check",IDC_FIX5,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,90,139,10
|
||||
CONTROL "0x00020: Remove blue glitches",IDC_FIX6,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,105,139,10
|
||||
CONTROL "0x00040: Mixed software FB access",IDC_FIX7,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,120,143,10
|
||||
CONTROL "0x00080: Use PC fps calculation",IDC_FIX8,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,135,142,10
|
||||
CONTROL "0x00100: Use old frame skipping",IDC_FIX9,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,150,139,10
|
||||
CONTROL "0x00002: Direct framebuffer updates",IDC_FIX2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,45,137,10
|
||||
CONTROL "0x00200: G4 polygon cache",IDC_FIX10,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,165,141,10
|
||||
CONTROL "0x00400: Fake subtractive blending",IDC_FIX11,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,180,143,10
|
||||
CONTROL "0x00800: Lazy upload detection",IDC_FIX12,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,195,144,10
|
||||
CONTROL "0x01000: Odd/even bit hack",IDC_FIX13,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,210,143,10
|
||||
CONTROL "0x02000: Expand screen width",IDC_FIX14,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,225,144,10
|
||||
DEFPUSHBUTTON "OK",IDOK,83,302,50,14
|
||||
PUSHBUTTON "Cancel",IDCANCEL,182,302,50,14
|
||||
LTEXT "Activate the following options only if you want to play one of the listed games (or if your game is showing similar glitches)!",
|
||||
IDC_STATIC,7,4,246,22
|
||||
LTEXT "ONLY for FF7 battle cursor/battle swirl",IDC_STATIC,163,
|
||||
30,137,9,SS_CENTERIMAGE
|
||||
LTEXT "Speed up in nasty frame upload situations",IDC_STATIC,
|
||||
163,45,137,9,SS_CENTERIMAGE
|
||||
LTEXT "Fixes black screens in Lunar",IDC_STATIC,162,60,123,9,
|
||||
SS_CENTERIMAGE
|
||||
LTEXT "Speed freaks, Killer Loop",IDC_STATIC,162,75,90,9,
|
||||
SS_CENTERIMAGE
|
||||
LTEXT "Old coord compatibility mode",IDC_STATIC,162,89,99,9,
|
||||
SS_CENTERIMAGE
|
||||
LTEXT "Leg. o. Dragoon, Alpha Multipass needed",IDC_STATIC,162,
|
||||
105,136,9,SS_CENTERIMAGE
|
||||
LTEXT "Faster FB access on some systems/ATI",IDC_STATIC,162,
|
||||
120,125,9,SS_CENTERIMAGE
|
||||
LTEXT "Better fps limitation with some games",IDC_STATIC,162,
|
||||
135,117,9,SS_CENTERIMAGE
|
||||
LTEXT "Skips only every second frame",IDC_STATIC,162,150,130,9,
|
||||
SS_CENTERIMAGE
|
||||
LTEXT "ONLY for FF9 battle mode... yellow rect",IDC_STATIC,162,
|
||||
165,132,9,SS_CENTERIMAGE
|
||||
LTEXT "Needed by some (buggy) OpenGL ICDs",IDC_STATIC,162,180,
|
||||
132,9,SS_CENTERIMAGE
|
||||
LTEXT "DW7 fix (not 100% perfect...)",IDC_STATIC,162,195,132,9,
|
||||
SS_CENTERIMAGE
|
||||
LTEXT "Needed with epsxe 1.5.2 and older",IDC_STATIC,162,210,
|
||||
138,9,SS_CENTERIMAGE
|
||||
LTEXT "Shows the full area in Capcom 2D fighters",IDC_STATIC,
|
||||
162,225,138,9,SS_CENTERIMAGE
|
||||
CONTROL "0x04000: Use old texture filtering",IDC_FIX15,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,11,240,141,10
|
||||
LTEXT "Fixes black areas with some cards",IDC_STATIC,162,240,
|
||||
138,9,SS_CENTERIMAGE
|
||||
CONTROL "0x08000: Special upload detection",IDC_FIX16,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,11,255,146,10
|
||||
LTEXT "May show some additional splash screens",
|
||||
IDC_F14_STATIC3,163,255,137,9,SS_CENTERIMAGE
|
||||
CONTROL "0x10000: Use low-res fps timer",IDC_FIX17,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,11,270,147,10
|
||||
LTEXT "For buggy motherboard chipsets",IDC_F14_STATIC4,163,270,
|
||||
137,9,SS_CENTERIMAGE
|
||||
CONTROL "0x20000: Fake 'gpu busy' states",IDC_FIX18,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,11,285,147,10
|
||||
LTEXT "Toggles busy flags after drawing",IDC_F14_STATIC5,163,
|
||||
285,137,9,SS_CENTERIMAGE
|
||||
LTEXT "Activate the following options only if you want to play one of the listed games (or if your game is showing similar glitches)!",IDC_STATIC,7,4,246,22
|
||||
LTEXT "ONLY for FF7 battle cursor/battle swirl",IDC_STATIC,163,30,137,9,SS_CENTERIMAGE
|
||||
LTEXT "Speed up in nasty frame upload situations",IDC_STATIC,163,45,137,9,SS_CENTERIMAGE
|
||||
LTEXT "Fixes black screens in Lunar",IDC_STATIC,162,60,123,9,SS_CENTERIMAGE
|
||||
LTEXT "Speed freaks, Killer Loop",IDC_STATIC,162,75,90,9,SS_CENTERIMAGE
|
||||
LTEXT "Old coord compatibility mode",IDC_STATIC,162,89,99,9,SS_CENTERIMAGE
|
||||
LTEXT "Leg. o. Dragoon, Alpha Multipass needed",IDC_STATIC,162,105,136,9,SS_CENTERIMAGE
|
||||
LTEXT "Faster FB access on some systems/ATI",IDC_STATIC,162,120,125,9,SS_CENTERIMAGE
|
||||
LTEXT "Better fps limitation with some games",IDC_STATIC,162,135,117,9,SS_CENTERIMAGE
|
||||
LTEXT "Skips only every second frame",IDC_STATIC,162,150,130,9,SS_CENTERIMAGE
|
||||
LTEXT "ONLY for FF9 battle mode... yellow rect",IDC_STATIC,162,165,132,9,SS_CENTERIMAGE
|
||||
LTEXT "Needed by some (buggy) OpenGL ICDs",IDC_STATIC,162,180,132,9,SS_CENTERIMAGE
|
||||
LTEXT "DW7 fix (not 100% perfect...)",IDC_STATIC,162,195,132,9,SS_CENTERIMAGE
|
||||
LTEXT "Needed with epsxe 1.5.2 and older",IDC_STATIC,162,210,138,9,SS_CENTERIMAGE
|
||||
LTEXT "Shows the full area in Capcom 2D fighters",IDC_STATIC,162,225,138,9,SS_CENTERIMAGE
|
||||
CONTROL "0x04000: Use old texture filtering",IDC_FIX15,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,240,141,10
|
||||
LTEXT "Fixes black areas with some cards",IDC_STATIC,162,240,138,9,SS_CENTERIMAGE
|
||||
CONTROL "0x08000: Special upload detection",IDC_FIX16,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,255,146,10
|
||||
LTEXT "May show some additional splash screens",IDC_F14_STATIC3,163,255,137,9,SS_CENTERIMAGE
|
||||
CONTROL "0x10000: Use low-res fps timer",IDC_FIX17,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,270,147,10
|
||||
LTEXT "For buggy motherboard chipsets",IDC_F14_STATIC4,163,270,137,9,SS_CENTERIMAGE
|
||||
CONTROL "0x20000: Fake 'gpu busy' states",IDC_FIX18,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,285,147,10
|
||||
LTEXT "Toggles busy flags after drawing",IDC_F14_STATIC5,163,285,137,9,SS_CENTERIMAGE
|
||||
END
|
||||
|
||||
IDD_KEYS DIALOG DISCARDABLE 0, 0, 186, 162
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
|
||||
IDD_KEYS DIALOG 0, 0, 186, 162
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION
|
||||
CAPTION "GPU key configuration"
|
||||
FONT 8, "MS Sans Serif"
|
||||
BEGIN
|
||||
PUSHBUTTON "Default keys",IDC_DEFAULT,107,6,61,13
|
||||
COMBOBOX IDC_KEY1,108,25,61,62,CBS_DROPDOWNLIST | WS_VSCROLL |
|
||||
WS_TABSTOP
|
||||
COMBOBOX IDC_KEY2,108,41,61,62,CBS_DROPDOWNLIST | WS_VSCROLL |
|
||||
WS_TABSTOP
|
||||
COMBOBOX IDC_KEY3,108,57,61,62,CBS_DROPDOWNLIST | WS_VSCROLL |
|
||||
WS_TABSTOP
|
||||
COMBOBOX IDC_KEY4,108,73,61,62,CBS_DROPDOWNLIST | WS_VSCROLL |
|
||||
WS_TABSTOP
|
||||
COMBOBOX IDC_KEY5,108,89,61,62,CBS_DROPDOWNLIST | WS_VSCROLL |
|
||||
WS_TABSTOP
|
||||
COMBOBOX IDC_KEY6,108,105,61,62,CBS_DROPDOWNLIST | WS_VSCROLL |
|
||||
WS_TABSTOP
|
||||
COMBOBOX IDC_KEY1,108,25,61,62,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
COMBOBOX IDC_KEY2,108,41,61,62,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
COMBOBOX IDC_KEY3,108,57,61,62,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
COMBOBOX IDC_KEY4,108,73,61,62,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
COMBOBOX IDC_KEY5,108,89,61,62,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
COMBOBOX IDC_KEY6,108,105,61,62,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
DEFPUSHBUTTON "OK",IDOK,19,142,50,14
|
||||
PUSHBUTTON "Cancel",IDCANCEL,115,142,50,14
|
||||
RTEXT "Show/hide gpu menu:",IDC_STATIC,4,26,100,9,
|
||||
SS_CENTERIMAGE
|
||||
RTEXT "Show/hide gpu infos:",IDC_STATIC,4,42,100,9,
|
||||
SS_CENTERIMAGE
|
||||
RTEXT "Toggle selected option up:",IDC_STATIC,4,58,100,9,
|
||||
SS_CENTERIMAGE
|
||||
RTEXT "Toggle selected option down:",IDC_STATIC,4,74,100,9,
|
||||
SS_CENTERIMAGE
|
||||
RTEXT "Select previous option:",IDC_STATIC,4,90,100,9,
|
||||
SS_CENTERIMAGE
|
||||
RTEXT "Select next option:",IDC_STATIC,4,106,100,9,
|
||||
SS_CENTERIMAGE
|
||||
RTEXT "Show/hide gpu menu:",IDC_STATIC,4,26,100,9,SS_CENTERIMAGE
|
||||
RTEXT "Show/hide gpu infos:",IDC_STATIC,4,42,100,9,SS_CENTERIMAGE
|
||||
RTEXT "Toggle selected option up:",IDC_STATIC,4,58,100,9,SS_CENTERIMAGE
|
||||
RTEXT "Toggle selected option down:",IDC_STATIC,4,74,100,9,SS_CENTERIMAGE
|
||||
RTEXT "Select previous option:",IDC_STATIC,4,90,100,9,SS_CENTERIMAGE
|
||||
RTEXT "Select next option:",IDC_STATIC,4,106,100,9,SS_CENTERIMAGE
|
||||
END
|
||||
|
||||
|
||||
|
@ -368,7 +299,7 @@ END
|
|||
//
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
GUIDELINES DESIGNINFO DISCARDABLE
|
||||
GUIDELINES DESIGNINFO
|
||||
BEGIN
|
||||
IDD_DIALOG_ABOUT, DIALOG
|
||||
BEGIN
|
||||
|
@ -383,7 +314,7 @@ BEGIN
|
|||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 406
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 288
|
||||
BOTTOMMARGIN, 323
|
||||
END
|
||||
|
||||
IDD_FIXES, DIALOG
|
||||
|
@ -407,79 +338,21 @@ END
|
|||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Dialog Info
|
||||
// AFX_DIALOG_LAYOUT
|
||||
//
|
||||
#ifdef _MSC_VER
|
||||
|
||||
IDD_CFGDLG DLGINIT
|
||||
IDD_CFGDLG AFX_DIALOG_LAYOUT
|
||||
BEGIN
|
||||
IDC_RESOLUTION, 0x403, 1, 0
|
||||
"\000"
|
||||
IDC_COLORDEPTH, 0x403, 7, 0
|
||||
0x3631, 0x4220, 0x7469, "\000"
|
||||
IDC_COLORDEPTH, 0x403, 7, 0
|
||||
0x3233, 0x4220, 0x7469, "\000"
|
||||
IDC_TEXQUALITY, 0x403, 11, 0
|
||||
0x6f64, 0x276e, 0x2074, 0x6163, 0x6572, "\000"
|
||||
IDC_TEXQUALITY, 0x403, 12, 0
|
||||
0x3452, 0x4720, 0x2034, 0x3442, 0x4120, 0x0034,
|
||||
IDC_TEXQUALITY, 0x403, 12, 0
|
||||
0x3552, 0x4720, 0x2035, 0x3542, 0x4120, 0x0031,
|
||||
IDC_TEXQUALITY, 0x403, 12, 0
|
||||
0x3852, 0x4720, 0x2038, 0x3842, 0x4120, 0x0038,
|
||||
IDC_FILTERTYPE, 0x403, 9, 0
|
||||
0x7453, 0x6e61, 0x6164, 0x6472, "\000"
|
||||
IDC_FILTERTYPE, 0x403, 9, 0
|
||||
0x7845, 0x6574, 0x646e, 0x6465, "\000"
|
||||
IDC_FILTERTYPE, 0x403, 22, 0
|
||||
0x7453, 0x6e61, 0x6164, 0x6472, 0x2820, 0x6f6e, 0x5320, 0x7270, 0x7469,
|
||||
0x7365, 0x0029,
|
||||
IDC_FILTERTYPE, 0x403, 22, 0
|
||||
0x7845, 0x6574, 0x646e, 0x6465, 0x2820, 0x6f6e, 0x5320, 0x7270, 0x7469,
|
||||
0x7365, 0x0029,
|
||||
IDC_HIRESTEX, 0x403, 11, 0
|
||||
0x6f64, 0x276e, 0x2074, 0x6163, 0x6572, "\000"
|
||||
IDC_HIRESTEX, 0x403, 12, 0
|
||||
0x3452, 0x4720, 0x2034, 0x3442, 0x4120, 0x0034,
|
||||
IDC_HIRESTEX, 0x403, 12, 0
|
||||
0x3552, 0x4720, 0x2035, 0x3542, 0x4120, 0x0031,
|
||||
IDC_HIRESTEX, 0x403, 12, 0
|
||||
0x3852, 0x4720, 0x2038, 0x3842, 0x4120, 0x0038,
|
||||
IDC_OFFSCREEN, 0x403, 11, 0
|
||||
0x6f64, 0x276e, 0x2074, 0x6163, 0x6572, "\000"
|
||||
IDC_OFFSCREEN, 0x403, 12, 0
|
||||
0x3452, 0x4720, 0x2034, 0x3442, 0x4120, 0x0034,
|
||||
IDC_OFFSCREEN, 0x403, 12, 0
|
||||
0x3552, 0x4720, 0x2035, 0x3542, 0x4120, 0x0031,
|
||||
IDC_OFFSCREEN, 0x403, 12, 0
|
||||
0x3852, 0x4720, 0x2038, 0x3842, 0x4120, 0x0038,
|
||||
IDC_FRAMETEX, 0x403, 11, 0
|
||||
0x6f64, 0x276e, 0x2074, 0x6163, 0x6572, "\000"
|
||||
IDC_FRAMETEX, 0x403, 12, 0
|
||||
0x3452, 0x4720, 0x2034, 0x3442, 0x4120, 0x0034,
|
||||
IDC_FRAMETEX, 0x403, 12, 0
|
||||
0x3552, 0x4720, 0x2035, 0x3542, 0x4120, 0x0031,
|
||||
IDC_FRAMETEX, 0x403, 12, 0
|
||||
0x3852, 0x4720, 0x2038, 0x3842, 0x4120, 0x0038,
|
||||
IDC_FRAMEREAD, 0x403, 11, 0
|
||||
0x6f64, 0x276e, 0x2074, 0x6163, 0x6572, "\000"
|
||||
IDC_FRAMEREAD, 0x403, 12, 0
|
||||
0x3452, 0x4720, 0x2034, 0x3442, 0x4120, 0x0034,
|
||||
IDC_FRAMEREAD, 0x403, 12, 0
|
||||
0x3552, 0x4720, 0x2035, 0x3542, 0x4120, 0x0031,
|
||||
IDC_FRAMEREAD, 0x403, 12, 0
|
||||
0x3852, 0x4720, 0x2038, 0x3842, 0x4120, 0x0038,
|
||||
0
|
||||
END
|
||||
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// String Table
|
||||
//
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_INFO0 "FL - Frame limitation:\n[Off] - Speed as fast as possible\n[On-1] - Limits speed to manual value\n[On-2] - Limits speed to auto-detected value."
|
||||
IDS_INFO1 "FS - Frame skipping:\n[Off] - No frames get skipped\n[On] - Tries to speed up the game by skipping frames. Can cause glitches!"
|
||||
|
@ -493,7 +366,7 @@ BEGIN
|
|||
IDS_INFO9 "GF - Special game fixes:\n[Off] - Turn off all fixes\n[On] - Turn on all activated fixes. You have to select the fixes you want to use in the gpu config."
|
||||
END
|
||||
|
||||
#endif // English (U.S.) resources
|
||||
#endif // English (United States) resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
|
|
@ -76,6 +76,7 @@
|
|||
#define IDC_QUALTXT2 1053
|
||||
#define IDC_QUALTXT3 1054
|
||||
#define IDC_GARBAGE 1055
|
||||
#define IDC_LINEHACK 1055
|
||||
#define IDC_PALTEXWND 1056
|
||||
#define IDC_HIRESTEX 1057
|
||||
#define IDC_GAMEFIX 1058
|
||||
|
@ -127,7 +128,7 @@
|
|||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 140
|
||||
#define _APS_NEXT_RESOURCE_VALUE 141
|
||||
#define _APS_NEXT_COMMAND_VALUE 32771
|
||||
#define _APS_NEXT_CONTROL_VALUE 2070
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
|
|
|
@ -235,6 +235,14 @@ BOOL OnInitCfgDialog(HWND hW) // INIT CONFIG DIALOG
|
|||
ComboBox_AddString(hWC,"4: Full software drawing (FVP)");
|
||||
ComboBox_SetCurSel(hWC,iFrameReadType);
|
||||
|
||||
//----------------------------------------------------// line hack mode
|
||||
|
||||
hWC = GetDlgItem(hW, IDC_LINEHACK);
|
||||
ComboBox_AddString(hWC, "0: Disabled");
|
||||
ComboBox_AddString(hWC, "1: Default (Doom, Hexen, Soul Blade)");
|
||||
ComboBox_AddString(hWC, "2: Aggressive (Dark Forces, Duke Nukem)");
|
||||
ComboBox_SetCurSel(hWC, iLineHackMode);
|
||||
|
||||
//----------------------------------------------------// framerate stuff
|
||||
|
||||
if(iFrameLimit==2)
|
||||
|
@ -306,6 +314,7 @@ void GetSettings(HWND hW)
|
|||
|
||||
iFrameTexType=ComboBox_GetCurSel(GetDlgItem(hW,IDC_FRAMETEX));
|
||||
iFrameReadType=ComboBox_GetCurSel(GetDlgItem(hW,IDC_FRAMEREAD));
|
||||
iLineHackMode = ComboBox_GetCurSel(GetDlgItem(hW,IDC_LINEHACK));
|
||||
|
||||
if(IsDlgButtonChecked(hW,IDC_USELIMIT))
|
||||
bUseFrameLimit=TRUE; else bUseFrameLimit=FALSE;
|
||||
|
@ -504,6 +513,7 @@ void OnCfgDef1(HWND hW)
|
|||
ComboBox_SetCurSel(GetDlgItem(hW,IDC_SUBCACHE),2);
|
||||
ComboBox_SetCurSel(GetDlgItem(hW,IDC_FRAMETEX),1);
|
||||
ComboBox_SetCurSel(GetDlgItem(hW,IDC_FRAMEREAD),0);
|
||||
ComboBox_SetCurSel(GetDlgItem(hW,IDC_LINEHACK), 1);
|
||||
|
||||
CheckDlgButton(hW,IDC_USEMASK,FALSE);
|
||||
CheckDlgButton(hW,IDC_FASTMDEC,TRUE);
|
||||
|
@ -562,6 +572,7 @@ void OnCfgDef2(HWND hW)
|
|||
ComboBox_SetCurSel(GetDlgItem(hW,IDC_SUBCACHE),2);
|
||||
ComboBox_SetCurSel(GetDlgItem(hW,IDC_FRAMETEX),2);
|
||||
ComboBox_SetCurSel(GetDlgItem(hW,IDC_FRAMEREAD),0);
|
||||
ComboBox_SetCurSel(GetDlgItem(hW,IDC_LINEHACK), 1);
|
||||
|
||||
CheckDlgButton(hW,IDC_USEMASK,TRUE);
|
||||
CheckDlgButton(hW,IDC_FASTMDEC,FALSE);
|
||||
|
@ -619,6 +630,7 @@ void ReadConfig(void) // read all config vals
|
|||
iUseScanLines=0;
|
||||
iFrameTexType=0;
|
||||
iFrameReadType=0;
|
||||
iLineHackMode=0;
|
||||
iShowFPS=0;
|
||||
bKeepRatio=FALSE;
|
||||
bForceRatio43=FALSE;
|
||||
|
@ -749,6 +761,9 @@ void ReadConfig(void) // read all config vals
|
|||
if(RegQueryValueEx(myKey,"FrameReadType",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
|
||||
iFrameReadType=(int)temp;
|
||||
size = 4;
|
||||
if (RegQueryValueEx(myKey, "LineHackMode", 0, &type, (LPBYTE)&temp, &size) == ERROR_SUCCESS)
|
||||
iLineHackMode = (int)temp;
|
||||
size = 4;
|
||||
if(RegQueryValueEx(myKey,"FullscreenBlur",0,&type,(LPBYTE)&temp,&size)==ERROR_SUCCESS)
|
||||
iBlurBuffer=(int)temp;
|
||||
size = 4;
|
||||
|
@ -880,6 +895,8 @@ void WriteConfig(void)
|
|||
RegSetValueEx(myKey,"FrameTexType",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
|
||||
temp=iFrameReadType;
|
||||
RegSetValueEx(myKey,"FrameReadType",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
|
||||
temp = iLineHackMode;
|
||||
RegSetValueEx(myKey, "LineHackMode", 0, REG_DWORD, (LPBYTE)&temp, sizeof(temp));
|
||||
temp=bKeepRatio;
|
||||
RegSetValueEx(myKey,"KeepRatio",0,REG_DWORD,(LPBYTE) &temp,sizeof(temp));
|
||||
temp=bForceRatio43;
|
||||
|
|
Loading…
Reference in New Issue