Added alternative timer
This commit is contained in:
@@ -1 +1 @@
|
||||
/Fezsnesw.exe chips\dsp1proc.obj dos\sw.obj dos\gppro.obj dos\vesa12.obj dos\zsipx.obj dos\modemrtn.obj dos\joy.obj dos\debug.obj dos\vesa2.obj dos\initvid.obj cfgload.obj endmem.obj fixsin.obj init.obj ui.obj vcache.obj water.obj video\procvid.obj win\copyvwin.obj win\winintrf.obj win\winlink.obj win\zloaderw.obj win\ztcp.obj win\zfilew.obj win\zipxw.obj video\makev16b.obj video\makev16t.obj video\makevid.obj video\mode716.obj video\mode716b.obj video\mode716d.obj video\mode716e.obj video\mode716t.obj video\mode7.obj video\mode7ext.obj video\mv16tms.obj video\newg162.obj video\newgfx16.obj video\newgfx2.obj video\newgfx.obj video\m716text.obj video\2xsaiw.obj gui\gui.obj gui\menu.obj cpu\addrni.obj cpu\dma.obj cpu\dsp.obj cpu\dspproc.obj cpu\execute.obj cpu\irq.obj cpu\memory.obj cpu\spc700.obj cpu\stable.obj cpu\table.obj cpu\tableb.obj cpu\tablec.obj chips\dsp1emu.obj chips\fxemu2.obj chips\fxemu2b.obj chips\fxemu2c.obj chips\fxtable.obj chips\sa1proc.obj chips\sa1regs.obj chips\sfxproc.obj zip\unzip.obj zip\zzip.obj zip\zpng.obj obj\libpng.lib zlib.lib wsock32.lib user32.lib gdi32.lib shell32.lib ddraw.lib dsound.lib dinput8.lib d3dx.lib /link /section:.text,erw
|
||||
/Fezsnesw.exe chips\dsp1proc.obj dos\sw.obj dos\gppro.obj dos\vesa12.obj dos\zsipx.obj dos\modemrtn.obj dos\joy.obj dos\debug.obj dos\vesa2.obj dos\initvid.obj cfgload.obj endmem.obj fixsin.obj init.obj ui.obj vcache.obj water.obj video\procvid.obj win\copyvwin.obj win\winintrf.obj win\winlink.obj win\zloaderw.obj win\ztcp.obj win\zfilew.obj win\zipxw.obj video\makev16b.obj video\makev16t.obj video\makevid.obj video\mode716.obj video\mode716b.obj video\mode716d.obj video\mode716e.obj video\mode716t.obj video\mode7.obj video\mode7ext.obj video\mv16tms.obj video\newg162.obj video\newgfx16.obj video\newgfx2.obj video\newgfx.obj video\m716text.obj video\2xsaiw.obj gui\gui.obj gui\menu.obj cpu\addrni.obj cpu\dma.obj cpu\dsp.obj cpu\dspproc.obj cpu\execute.obj cpu\irq.obj cpu\memory.obj cpu\spc700.obj cpu\stable.obj cpu\table.obj cpu\tableb.obj cpu\tablec.obj chips\dsp1emu.obj chips\fxemu2.obj chips\fxemu2b.obj chips\fxemu2c.obj chips\fxtable.obj chips\sa1proc.obj chips\sa1regs.obj chips\sfxproc.obj zip\unzip.obj zip\zzip.obj zip\zpng.obj obj\libpng.lib zlib.lib wsock32.lib user32.lib gdi32.lib shell32.lib winmm.lib ddraw.lib dsound.lib dinput8.lib d3dx.lib /link /section:.text,erw
|
||||
|
||||
@@ -24,6 +24,7 @@ extern "C" {
|
||||
#include <ddraw.h>
|
||||
#include <initguid.h>
|
||||
#include <mmsystem.h>
|
||||
#include <time.h>
|
||||
}
|
||||
#include <math.h>
|
||||
#include <dsound.h>
|
||||
@@ -128,6 +129,8 @@ DWORD MouseButton;
|
||||
|
||||
_int64 start, end, freq, update_ticks_pc, start2, end2, update_ticks_pc2;
|
||||
|
||||
BYTE AlternateTimer=0;
|
||||
|
||||
extern "C"
|
||||
{
|
||||
void drawscreenwin(void);
|
||||
@@ -1219,8 +1222,18 @@ void Start60HZ(void)
|
||||
{
|
||||
update_ticks_pc = UPDATE_TICKS_GAME * freq / 1000;
|
||||
}
|
||||
|
||||
if (AlternateTimer == 0)
|
||||
{
|
||||
QueryPerformanceCounter((LARGE_INTEGER*)&start);
|
||||
QueryPerformanceCounter((LARGE_INTEGER*)&start2);
|
||||
}
|
||||
else
|
||||
{
|
||||
start = timeGetTime();
|
||||
start2 = timeGetTime();
|
||||
}
|
||||
|
||||
T36HZEnabled=0;
|
||||
T60HZEnabled=1;
|
||||
}
|
||||
@@ -1234,8 +1247,18 @@ void Start36HZ(void)
|
||||
{
|
||||
update_ticks_pc2 = UPDATE_TICKS_UDP * freq / 1000;
|
||||
update_ticks_pc = UPDATE_TICKS_GUI * freq / 1000;
|
||||
|
||||
if (AlternateTimer == 0)
|
||||
{
|
||||
QueryPerformanceCounter((LARGE_INTEGER*)&start);
|
||||
QueryPerformanceCounter((LARGE_INTEGER*)&start2);
|
||||
}
|
||||
else
|
||||
{
|
||||
start = timeGetTime();
|
||||
start2 = timeGetTime();
|
||||
}
|
||||
|
||||
T60HZEnabled=0;
|
||||
T36HZEnabled=1;
|
||||
}
|
||||
@@ -1431,7 +1454,16 @@ void initwinvideo(void)
|
||||
else
|
||||
{
|
||||
FirstVid=0;
|
||||
|
||||
if (AlternateTimer == 0)
|
||||
{
|
||||
if (!QueryPerformanceFrequency((LARGE_INTEGER*)&freq)) return;
|
||||
}
|
||||
else
|
||||
{
|
||||
freq = CLOCKS_PER_SEC;
|
||||
}
|
||||
|
||||
// hInst=GetModuleHandle(0);
|
||||
if ( !RegisterWinClass() ); // { return; }
|
||||
X=(GetSystemMetrics( SM_CXSCREEN ) - WindowWidth) / 2;
|
||||
@@ -1499,7 +1531,9 @@ extern int CounterB;
|
||||
|
||||
void CheckTimers(void)
|
||||
{
|
||||
QueryPerformanceCounter((LARGE_INTEGER*)&end2);
|
||||
if (AlternateTimer == 0) QueryPerformanceCounter((LARGE_INTEGER*)&end2);
|
||||
else end2 = timeGetTime();
|
||||
|
||||
while ((end2 - start2) >= update_ticks_pc2)
|
||||
{
|
||||
if (CounterA>0) CounterA--;
|
||||
@@ -1515,7 +1549,8 @@ void CheckTimers(void)
|
||||
|
||||
if(T60HZEnabled)
|
||||
{
|
||||
QueryPerformanceCounter((LARGE_INTEGER*)&end);
|
||||
if (AlternateTimer == 0) QueryPerformanceCounter((LARGE_INTEGER*)&end);
|
||||
else end = timeGetTime();
|
||||
|
||||
while ((end - start) >= update_ticks_pc)
|
||||
{
|
||||
@@ -1530,7 +1565,8 @@ void CheckTimers(void)
|
||||
|
||||
if(T36HZEnabled)
|
||||
{
|
||||
QueryPerformanceCounter((LARGE_INTEGER*)&end);
|
||||
if (AlternateTimer == 0) QueryPerformanceCounter((LARGE_INTEGER*)&end);
|
||||
else end = timeGetTime();
|
||||
|
||||
while ((end - start) >= update_ticks_pc)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user