Added cottonvibes vu and frameskip, also removed the annoying dvd read messages :p

git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@5 a6443dda-0b58-4228-96e9-037be469359c
This commit is contained in:
ramapcsx2 2008-08-11 21:22:11 +00:00 committed by Gregory Hainaut
parent 574237d451
commit f80441a4f9
8 changed files with 140 additions and 111 deletions

View File

@ -1214,7 +1214,7 @@ void cdvdWrite04(u8 rt) { // NCOMMAND
#ifdef CDR_LOG
CDR_LOG( "CdRead: %d, nSectors=%d, RetryCnt=%x, Speed=%x(%x), ReadMode=%x(%x) (1074=%x)\n", cdvd.Sector, cdvd.nSectors, cdvd.RetryCnt, cdvd.Speed, cdvd.Param[9], cdvd.ReadMode, cdvd.Param[10], psxHu32(0x1074));
#endif
SysPrintf("CdRead: Reading Sector %d(%d Blocks of Size %d) at Speed=%dx\n", cdvd.Sector, cdvd.nSectors,cdvd.BlockSize,cdvd.Speed);
//SysPrintf("CdRead: Reading Sector %d(%d Blocks of Size %d) at Speed=%dx\n", cdvd.Sector, cdvd.nSectors,cdvd.BlockSize,cdvd.Speed);
cdvd.Readed = 0;
cdvd.PwOff = 2;//cmdcmplt
@ -1242,7 +1242,7 @@ void cdvdWrite04(u8 rt) { // NCOMMAND
case 0: cdvd.ReadMode = CDVD_MODE_2352; cdvd.BlockSize = 2352; break;
}
cdvdReadTimeRcnt(1);
SysPrintf("CdAudioRead: Reading Sector %d(%d Blocks of Size %d) at Speed=%dx\n", cdvd.Sector, cdvd.nSectors,cdvd.BlockSize,cdvd.Speed);
//SysPrintf("CdAudioRead: Reading Sector %d(%d Blocks of Size %d) at Speed=%dx\n", cdvd.Sector, cdvd.nSectors,cdvd.BlockSize,cdvd.Speed);
cdvd.Readed = 0;
cdvd.PwOff = 2;//cmdcmplt
@ -1261,7 +1261,7 @@ void cdvdWrite04(u8 rt) { // NCOMMAND
#ifdef CDR_LOG
CDR_LOG( "DvdRead: %d, nSectors=%d, RetryCnt=%x, Speed=%x(%x), ReadMode=%x(%x) (1074=%x)\n", cdvd.Sector, cdvd.nSectors, cdvd.RetryCnt, cdvd.Speed, cdvd.Param[9], cdvd.ReadMode, cdvd.Param[10], psxHu32(0x1074));
#endif
SysPrintf("DvdRead: Reading Sector %d(%d Blocks of Size %d) at Speed=%dx\n", cdvd.Sector, cdvd.nSectors,cdvd.BlockSize,cdvd.Speed);
//SysPrintf("DvdRead: Reading Sector %d(%d Blocks of Size %d) at Speed=%dx\n", cdvd.Sector, cdvd.nSectors,cdvd.BlockSize,cdvd.Speed);
cdvd.Readed = 0;
cdvd.PwOff = 2;//cmdcmplt
CDVDREAD_INT(1);

View File

@ -234,7 +234,7 @@ extern u32 vu0time;
extern void DummyExecuteVU1Block(void);
static u32 lastWasSkip=0;
//static u32 lastWasSkip=0;
//extern u32 unpacktotal;
#include "VU.h"
@ -273,93 +273,60 @@ void VSync()
break;
case PCSX2_FRAMELIMIT_SKIP:
case PCSX2_FRAMELIMIT_VUSKIP:
case PCSX2_FRAMELIMIT_VUSKIP: //Skips a sequence of consecutive frames after a sequence of rendered frames
{
// the 6 was after trial and error
static u32 uPrevTimes[6] = {0}, uNextFrame = 0, uNumFrames = 0, uTotalTime = 0;
static u32 uLastTime = 0;
static int nConsecutiveSkip = 0, nConsecutiveRender = 0;
static short int changed = 0;
static short int nNoSkipFrames = 0;
u32 uExpectedTime;
u32 uCurTime = timeGetTime();
u32 uDeltaTime = uCurTime - uLastTime;
// This is the least number of consecutive frames we will render w/o skipping
#define noSkipFrames (Config.CustomConsecutiveFrames>0) ? Config.CustomConsecutiveFrames : 2
// This is the number of consecutive frames we will skip
#define yesSkipFrames (Config.CustomConsecutiveSkip>0) ? Config.CustomConsecutiveSkip : 2
static u8 bOkayToSkip = 0;
static u8 bKeepSkipping = 0;
static u64 uLastTime = 0;
if( uLastTime > 0 ) {
// This is some Extra Time to add to our Expected Time to compensate for lack of precision.
#define extraTimeBuffer 0
// If uDeltaTime is less than this value, then we can frameskip. (45 & 54 FPS is 90% of fullspeed for Pal & NTSC respectively, the default is to only skip when slower than 90%)
u64 uExpectedTime = (Config.CustomFrameSkip>0) ? (GetTickFrequency()/Config.CustomFrameSkip + extraTimeBuffer) : ((Config.PsxType&1) ? (GetTickFrequency()/45 + extraTimeBuffer) : (GetTickFrequency()/54 + extraTimeBuffer));
// This is used for the framelimiter; The user can set a custom FPS limit, if none is specified, used default FPS limit (50fps or 60fps).
//u64 uLimiterExpectedTime = (Config.CustomFps>0) ? (GetTickFrequency()/Config.CustomFps + extraTimeBuffer) : ((Config.PsxType&1) ? (GetTickFrequency()/50 + extraTimeBuffer) : (GetTickFrequency()/60 + extraTimeBuffer));
u64 uCurTime = GetCPUTicks();
u64 uDeltaTime = uCurTime - uLastTime;
if( uNumFrames == ARRAYSIZE(uPrevTimes) ) uTotalTime -= uPrevTimes[uNextFrame];
// Don't skip the Very First Frame PCSX2 renders. (This line might not be needed, but was included incase it breaks something.)
if (uDeltaTime == uCurTime) uDeltaTime = 0;
uPrevTimes[uNextFrame] = uDeltaTime;
uNextFrame = (uNextFrame + 1) % ARRAYSIZE(uPrevTimes);
uTotalTime += uDeltaTime;
if( uNumFrames < ARRAYSIZE(uPrevTimes) ) ++uNumFrames;
}
//the +6 accounts for calling FrameLimiter() instead Sleep()
uExpectedTime = (Config.PsxType&1) ? (ARRAYSIZE(uPrevTimes) * 1000 / 50 +6) : (ARRAYSIZE(uPrevTimes) * 1000 / 60 +6);
if( nNoSkipFrames > 0 ) --nNoSkipFrames;
// hmm... this might be more complicated than it needs to be... or not?
if( changed != 0 ) {
if( changed > 0 ) {
++nConsecutiveRender;
--changed;
if( nConsecutiveRender > 20 && uTotalTime + 1 < uExpectedTime ) nNoSkipFrames = ARRAYSIZE(uPrevTimes);
}
else {
++nConsecutiveSkip;
++changed;
}
}
else {
if( nNoSkipFrames == 0 && nConsecutiveRender > 1 && nConsecutiveSkip < 1 &&
(CHECK_MULTIGS? (uTotalTime >= uExpectedTime + uDeltaTime/4 && (uTotalTime >= uExpectedTime + uDeltaTime*3/4 || nConsecutiveSkip==0)) :
(uTotalTime >= uExpectedTime + (uDeltaTime/4))) ) {
if( nConsecutiveSkip == 0 ) {
//first freeze GS regs THEN send dummy packet
if( CHECK_MULTIGS ) GSRingBufSimplePacket(GS_RINGTYPE_FRAMESKIP, 1, 0, 0);
else GSsetFrameSkip(1);
if( CHECK_FRAMELIMIT == PCSX2_FRAMELIMIT_VUSKIP ) {
if (bOkayToSkip == 0) // If we're done rendering our consecutive frames, its okay to skip.
{
if (uDeltaTime > uExpectedTime) // Only skip if running slow.
{
//first freeze GS regs THEN send dummy packet
if( CHECK_MULTIGS ) GSRingBufSimplePacket(GS_RINGTYPE_FRAMESKIP, 1, 0, 0);
else GSsetFrameSkip(1);
if( CHECK_FRAMELIMIT == PCSX2_FRAMELIMIT_VUSKIP )
Cpu->ExecuteVU1Block = DummyExecuteVU1Block;
}
}
changed = -1;
nConsecutiveSkip++;
}
else {
if( nConsecutiveSkip > 1) {
//first set VU1 to enabled THEN unfreeze GS regs
if( CHECK_FRAMELIMIT == PCSX2_FRAMELIMIT_VUSKIP )
Cpu->ExecuteVU1Block = s_prevExecuteVU1Block;
if( CHECK_MULTIGS ) GSRingBufSimplePacket(GS_RINGTYPE_FRAMESKIP, 0, 0, 0);
else GSsetFrameSkip(0);
nConsecutiveRender = 0;
}
changed = 3;
nConsecutiveRender++;
nConsecutiveSkip = 0;
if( nConsecutiveRender > 20 && uTotalTime + 1 < uExpectedTime ) {
nNoSkipFrames = ARRAYSIZE(uPrevTimes);
}
bOkayToSkip = noSkipFrames;
bKeepSkipping = yesSkipFrames;
}
}
uLastTime = uCurTime;
//dont get too fast, instead keep at smooth full fps
else if (bOkayToSkip == noSkipFrames) // If we skipped last frame, unfreeze the GS regs
{
if (bKeepSkipping <= 1) {
//first set VU1 to enabled THEN unfreeze GS regs
if( CHECK_FRAMELIMIT == PCSX2_FRAMELIMIT_VUSKIP )
Cpu->ExecuteVU1Block = s_prevExecuteVU1Block;
if( CHECK_MULTIGS ) GSRingBufSimplePacket(GS_RINGTYPE_FRAMESKIP, 0, 0, 0);
else GSsetFrameSkip(0);
bOkayToSkip--;
}
else {bKeepSkipping--;}
}
else {bOkayToSkip--;}
//Frame Limit so we don't go over the FPS limit
FrameLimiter();
uLastTime = GetCPUTicks();
break;
}
}

View File

@ -930,12 +930,14 @@ void ProcessFKeys(int fkey, int shift)
switch(CHECK_FRAMELIMIT) {
case PCSX2_FRAMELIMIT_NORMAL:
if( GSsetFrameSkip != NULL ) GSsetFrameSkip(0);
if( CHECK_MULTIGS ) GSRingBufSimplePacket(GS_RINGTYPE_FRAMESKIP, 0, 0, 0);
else GSsetFrameSkip(0);
Cpu->ExecuteVU1Block = recExecuteVU1Block;
SysPrintf("Normal - Frame Limit Mode Changed\n");
break;
case PCSX2_FRAMELIMIT_LIMIT:
if( GSsetFrameSkip != NULL ) GSsetFrameSkip(0);
if( CHECK_MULTIGS ) GSRingBufSimplePacket(GS_RINGTYPE_FRAMESKIP, 0, 0, 0);
else GSsetFrameSkip(0);
Cpu->ExecuteVU1Block = recExecuteVU1Block;
SysPrintf("Limit - Frame Limit Mode Changed\n");
break;

View File

@ -90,6 +90,9 @@ typedef struct {
int ThPriority;
int CustomFps;
int Hacks;
int CustomFrameSkip;
int CustomConsecutiveFrames;
int CustomConsecutiveSkip;
} PcsxConfig;
extern PcsxConfig Config;

View File

@ -35,6 +35,9 @@ BOOL CALLBACK CpuDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam)
char cpuspeedc[20];
char features[256];
char cfps[20];
char cFrameskip[20];
char cConsecutiveFrames[20];
char cConsecutiveSkip[20];
u32 newopts;
switch(uMsg) {
@ -59,7 +62,15 @@ BOOL CALLBACK CpuDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam)
Static_SetText(GetDlgItem(hW, IDC_CPU_FL_LIMIT), _("Limit - Force frames to normal speeds if too fast."));
Static_SetText(GetDlgItem(hW, IDC_CPU_FL_SKIP), _("Frame Skip - In order to achieve normal speeds,\nsome frames are skipped (fast).\nFps displayed counts skipped frames too."));
Static_SetText(GetDlgItem(hW, IDC_CPU_FL_SKIPVU), _("VU Skip - Same as 'Frame Skip', but tries to skip more.\nArtifacts might be present, but will be faster."));
Static_SetText(GetDlgItem(hW, IDC_CUSTOM_FPS), _("Custom FPS (0=auto)"));
Static_SetText(GetDlgItem(hW, IDC_CUSTOM_FPS), _("Custom FPS Limit (0=auto):"));
Static_SetText(GetDlgItem(hW, IDC_FRAMESKIP_LABEL1), _("Skip Frames when slower than:\n(See Note 1)"));
Static_SetText(GetDlgItem(hW, IDC_FRAMESKIP_LABEL2), _("Consecutive Frames before skipping:\n(See Note 2)"));
Static_SetText(GetDlgItem(hW, IDC_FRAMESKIP_LABEL3), _("*Note 1: Will only skip when slower than this fps number.\n (0 = Auto) ; (9999 = Forced-Frameskip regardless of speed.)\n (e.g. If set to 45, will only skip when slower than 45fps.)"));
Static_SetText(GetDlgItem(hW, IDC_FRAMESKIP_LABEL4), _("*Note 2: Will render this number of consecutive frames before\n skipping the next frame. (0=default)\n (e.g. If set to 2, will render 2 frames before skipping 1.)"));
Static_SetText(GetDlgItem(hW, IDC_FRAMESKIP_LABEL5), _("Consecutive Frames to skip:\n(See Note 3)"));
Static_SetText(GetDlgItem(hW, IDC_FRAMESKIP_LABEL6), _("*Note 3: Will skip this number of frames before\n rendering the next sequence of frames. (0=default)\n (e.g. If set to 2, will skip 2 consecutive frames whenever its time\n to skip.)"));
Button_SetText(GetDlgItem(hW, IDOK), _("OK"));
Button_SetText(GetDlgItem(hW, IDCANCEL), _("Cancel"));
@ -109,6 +120,15 @@ BOOL CALLBACK CpuDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam)
sprintf(cfps,"%d",Config.CustomFps);
SetDlgItemText(hW, IDC_CUSTOMFPS, cfps);
sprintf(cFrameskip,"%d",Config.CustomFrameSkip);
SetDlgItemText(hW, IDC_CUSTOM_FRAMESKIP, cFrameskip);
sprintf(cConsecutiveFrames,"%d",Config.CustomConsecutiveFrames);
SetDlgItemText(hW, IDC_CUSTOM_CONSECUTIVE_FRAMES, cConsecutiveFrames);
sprintf(cConsecutiveSkip,"%d",Config.CustomConsecutiveSkip);
SetDlgItemText(hW, IDC_CUSTOM_CONSECUTIVE_SKIP, cConsecutiveSkip);
return TRUE;
case WM_COMMAND:
@ -156,6 +176,15 @@ BOOL CALLBACK CpuDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam)
GetDlgItemText(hW, IDC_CUSTOMFPS, cfps, 20);
Config.CustomFps = atoi(cfps);
GetDlgItemText(hW, IDC_CUSTOM_FRAMESKIP, cFrameskip, 20);
Config.CustomFrameSkip = atoi(cFrameskip);
GetDlgItemText(hW, IDC_CUSTOM_CONSECUTIVE_FRAMES, cConsecutiveFrames, 20);
Config.CustomConsecutiveFrames = atoi(cConsecutiveFrames);
GetDlgItemText(hW, IDC_CUSTOM_CONSECUTIVE_SKIP, cConsecutiveSkip, 20);
Config.CustomConsecutiveSkip = atoi(cConsecutiveSkip);
UpdateVSyncRate();
SaveConfig();

View File

@ -69,7 +69,10 @@ int LoadConfig() {
strcpy(Conf->Mcd1, szValue);
GetPrivateProfileString("Interface", "Mcd2", NULL, szValue, 256, szIniFile);
strcpy(Conf->Mcd2, szValue);
Config.CustomFps=GetPrivateProfileInt("Interface", "CustomFps", 0, szIniFile);
Config.CustomFps = GetPrivateProfileInt("Interface", "CustomFps", 0, szIniFile);
Config.CustomFrameSkip = GetPrivateProfileInt("Interface", "CustomFrameskip", 0, szIniFile);
Config.CustomConsecutiveFrames = GetPrivateProfileInt("Interface", "CustomConsecutiveFrames", 0, szIniFile);
Config.CustomConsecutiveSkip = GetPrivateProfileInt("Interface", "CustomConsecutiveSkip", 0, szIniFile);
//plugins
GetPrivateProfileString("Plugins", "GS", NULL, szValue, 256, szIniFile);
strcpy(Conf->GS, szValue);
@ -100,7 +103,7 @@ int LoadConfig() {
varLog = strtoul(szValue, NULL, 16);
#endif
GetPrivateProfileString("Misc", "Hacks", NULL, szValue, 20, szIniFile);
Conf->Hacks = strtoul(szValue, NULL, 16);
Conf->Hacks = strtoul(szValue, NULL, 0);
#ifdef ENABLE_NLS
sprintf(text, "LANGUAGE=%s", Conf->Lang);
@ -146,6 +149,12 @@ void SaveConfig() {
WritePrivateProfileString("Interface","Mcd2",szValue,szIniFile);
sprintf(szValue,"%d",Conf->CustomFps);
WritePrivateProfileString("Interface", "CustomFps", szValue, szIniFile);
sprintf(szValue,"%d",Conf->CustomFrameSkip);
WritePrivateProfileString("Interface", "CustomFrameskip", szValue, szIniFile);
sprintf(szValue,"%d",Conf->CustomConsecutiveFrames);
WritePrivateProfileString("Interface", "CustomConsecutiveFrames", szValue, szIniFile);
sprintf(szValue,"%d",Conf->CustomConsecutiveSkip);
WritePrivateProfileString("Interface", "CustomConsecutiveSkip", szValue, szIniFile);
//plugins
sprintf(szValue,"%s",Conf->GS);
WritePrivateProfileString("Plugins","GS",szValue,szIniFile);

View File

@ -7,7 +7,7 @@
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "mingw\afxres.h"
#include "afxres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
@ -1456,9 +1456,9 @@ BEGIN
CONTROL "CDR log",IDC_IOPCDRLOG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,165,104,43,10
CONTROL "VUMicro log",IDC_VUMICROLOG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,75,110,55,10
CONTROL "RPC services log",IDC_RPCSERVICES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,125,67,10
CONTROL "Log to STDOUT",IDC_STDOUTPUTLOG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,75,140,53,10
CONTROL "Log to STDOUT",IDC_STDOUTPUTLOG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,75,125,68,10
CONTROL "Log",IDC_LOGS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,140,28,10
CONTROL "Symbols log",IDC_SYMLOG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,75,125,68,10
CONTROL "Symbols log",IDC_SYMLOG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,75,140,53,10
CONTROL "Counters log",IDC_IOPCNTLOG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,165,118,55,10
CONTROL "EE Counters log",IDC_EECNTLOG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,165,139,73,11
END
@ -1472,30 +1472,30 @@ BEGIN
SCROLLBAR IDC_DEBUG_SCROLL_IOP,340,7,11,93,SBS_VERT
END
IDD_CPUDLG DIALOGEX 0, 0, 250, 377
IDD_CPUDLG DIALOGEX 0, 0, 563, 321
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
CONTROL "EERec - EE/IOP recompiler (need MMX/SSE)",IDC_CPU_EEREC,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,103,236,18
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,100,265,18
CONTROL "VU0rec - enable recompiler for VU0 unit",IDC_CPU_VU0REC,
"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,15,127,219,18
"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,14,127,219,18
CONTROL "VU1rec - enable recompiler for VU1 unit",IDC_CPU_VU1REC,
"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,15,144,228,18
"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,14,143,214,18
CONTROL "Multi threaded GS mode (MTGS)\n (faster on dual core/HT procs, requires pcsx2 restart)",IDC_CPU_GSMULTI,
"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,7,166,236,30
"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,7,166,231,30
CONTROL "Dual Core Mode (DC) - Much faster but only valid with MTGS",IDC_CPU_MULTI,
"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,7,199,236,26
"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,7,199,232,26
CONTROL "Normal - All frames are rendered as fast as possible.",IDC_CPU_FL_NORMAL,
"Button",BS_AUTORADIOBUTTON | BS_MULTILINE | WS_GROUP,14,236,221,17
CONTROL "Limit - Force frames to normal speeds if too fast.",IDC_CPU_FL_LIMIT,
"Button",BS_AUTORADIOBUTTON | BS_MULTILINE,14,254,222,15
"Button",BS_AUTORADIOBUTTON | BS_MULTILINE | WS_GROUP,309,17,221,17
CONTROL "Limit - Force frames to normal speeds if too fast.\n (You can set a custom FPS limit below.)",IDC_CPU_FL_LIMIT,
"Button",BS_AUTORADIOBUTTON | BS_MULTILINE,309,33,222,15
CONTROL "Frame Skip - In order to achieve normal speeds,\n some frames are skipped (fast).\n Fps displayed counts skipped frames too.",IDC_CPU_FL_SKIP,
"Button",BS_AUTORADIOBUTTON | BS_MULTILINE,15,277,221,35
"Button",BS_AUTORADIOBUTTON | BS_MULTILINE,309,48,221,28
CONTROL "VU Skip - Same as 'Frame Skip', but tries to skip more.\n Artifacts might be present, but will be faster.",IDC_CPU_FL_SKIPVU,
"Button",BS_AUTORADIOBUTTON | BS_MULTILINE,15,314,220,31
DEFPUSHBUTTON "OK",IDOK,59,356,61,14
PUSHBUTTON "Cancel",IDCANCEL,131,356,61,14,NOT WS_TABSTOP
"Button",BS_AUTORADIOBUTTON | BS_MULTILINE,309,75,220,25
DEFPUSHBUTTON "OK",IDOK,210,298,61,14
PUSHBUTTON "Cancel",IDCANCEL,282,298,61,14,NOT WS_TABSTOP
LTEXT "CPU Vendor",IDC_VENDORNAME,12,23,88,8
LTEXT "Family",IDC_FAMILYNAME,12,41,88,8
LTEXT "Cpu Speed",IDC_CPUSPEEDNAME,12,60,88,8
@ -1503,12 +1503,22 @@ BEGIN
LTEXT "",IDC_FAMILYINPUT,112,41,124,8
LTEXT "",IDC_FEATURESINPUT,111,79,124,8
LTEXT "",IDC_CPUSPEEDINPUT,111,61,124,8
GROUPBOX "VU Recompilers - All options are set by default",IDC_CPU_VUGROUP,7,119,236,46
GROUPBOX "Frame Limiting",IDC_FRAMELIMIT,7,225,236,127
GROUPBOX "VU Recompilers - All options are set by default",IDC_CPU_VUGROUP,7,119,265,46
LTEXT "Features",IDC_FEATURESNAME,12,78,88,8
GROUPBOX "",IDC_STATIC,7,7,236,90
LTEXT "Custom FPS (0=auto):",IDC_CUSTOM_FPS,32,270,73,8
EDITTEXT IDC_CUSTOMFPS,115,268,53,13,ES_AUTOHSCROLL | ES_NUMBER
GROUPBOX "",IDC_STATIC,7,7,265,90
LTEXT "Custom FPS Limit (0=auto):",IDC_CUSTOM_FPS,327,113,124,12
EDITTEXT IDC_CUSTOMFPS,456,113,53,13,ES_AUTOHSCROLL | ES_NUMBER
EDITTEXT IDC_CUSTOM_FRAMESKIP,456,130,53,13,ES_AUTOHSCROLL | ES_NUMBER
EDITTEXT IDC_CUSTOM_CONSECUTIVE_FRAMES,456,148,53,13,ES_AUTOHSCROLL | ES_NUMBER
LTEXT "Skip Frames when slower than:\n(See Note 1)",IDC_FRAMESKIP_LABEL1,327,129,106,20
LTEXT "Consecutive Frames before skipping:\n(See Note 2)",IDC_FRAMESKIP_LABEL2,327,149,121,17
GROUPBOX "Frame Limiting",IDC_FRAMELIMIT,301,7,250,280
GROUPBOX "Detailed Settings",IDC_FRAMELIMIT_OPTIONS,310,99,234,185
LTEXT "*Note 1: Will only skip when slower than this fps number.\n (0 = Auto) ; (9999 = Forced-Frameskip regardless of speed.)\n (e.g. If set to 45, will only skip when slower than 45fps.)",IDC_FRAMESKIP_LABEL3,318,189,217,26
LTEXT "*Note 2: Will render this number of consecutive frames before\n skipping the next frame. (0=default)\n (e.g. If set to 2, will render 2 frames before skipping 1.)",IDC_FRAMESKIP_LABEL4,318,216,217,25
EDITTEXT IDC_CUSTOM_CONSECUTIVE_SKIP,456,166,53,13,ES_AUTOHSCROLL | ES_NUMBER
LTEXT "Consecutive Frames to skip:\n(See Note 3)",IDC_FRAMESKIP_LABEL5,327,167,121,17
LTEXT "*Note 3: Will skip this number of frames before\n rendering the next sequence of frames. (0=default)\n (e.g. If set to 2, will skip 2 consecutive frames whenever its time\n to skip.)",IDC_FRAMESKIP_LABEL6,318,244,217,32
END
@ -1539,9 +1549,8 @@ BEGIN
IDD_CPUDLG, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 243
RIGHTMARGIN, 551
TOPMARGIN, 7
BOTTOMMARGIN, 370
END
END
#endif // APSTUDIO_INVOKED

View File

@ -576,22 +576,31 @@
#define IDC_CUSTOM_FPS 1276
#define IDC_DEBUG_STEP_TO_CURSOR 1277
#define IDC_ENABLEBUTTON 1277
#define IDC_CUSTOM_FRAMESKIP 1277
#define IDC_DEBUG_BREAK 1278
#define IDC_ABSHACK 1278
#define IDC_ADDGS 1278
#define IDC_CONVERTEDCODE 1278
#define IDC_CUSTOM_CONSECUTIVE_FRAMES 1278
#define IDC_HACKDESC 1279
#define IDC_CONVERT 1279
#define IDC_EDITPATCH 1279
#define IDC_FRAMESKIP_LABEL1 1279
#define IDC_READY 1280
#define IDC_ADDPATCH 1280
#define IDC_FRAMESKIP_LABEL2 1280
#define IDC_GROUP 1281
#define IDC_ADDRAW 1281
#define IDC_FRAMESKIP_LABEL3 1281
#define IDC_DATA 1282
#define IDC_PNACHWRITER 1282
#define IDC_CUSTOM_CONSECUTIVE_SKIP 1282
#define IDC_PNACHWRITER2 1283
#define IDC_SKIPMPEG 1283
#define IDC_FRAMESKIP_LABEL4 1283
#define IDC_SPIN1 1284
#define IDC_FRAMESKIP_LABEL5 1284
#define IDC_FRAMESKIP_LABEL6 1285
#define IDC_SAVE 1286
#define IDC_CRC 1287
#define IDC_COMMENT 1288
@ -608,6 +617,7 @@
#define IDC_ICON2 1300
#define IDC_CHECK1 1300
#define IDC_SOUNDHACK 1300
#define IDC_FRAMELIMIT_OPTIONS 1303
#define IDC_LOG 1500
#define IDC_CPULOG 1500
#define IDC_MEMLOG 1501