diff --git a/zsnes/src/gui/gui.asm b/zsnes/src/gui/gui.asm index 52cfcb0d..1b086821 100644 --- a/zsnes/src/gui/gui.asm +++ b/zsnes/src/gui/gui.asm @@ -169,6 +169,9 @@ EXTSYM DeInitModemC EXTSYM ipxgetchar,ipxsendchar,TCPIPStoreByte EXTSYM TCPIPGetByte EXTSYM ModemSendChar +%ifdef __WIN32__ +EXTSYM CheckPriority +%endif NEWSYM GuiAsmStart @@ -3210,6 +3213,11 @@ DisplayBoxes: cmp al,4 jne .noguioption call DisplayGUIOption +%ifdef __WIN32__ + pushad + call CheckPriority + popad +%endif jmp .finstuff .noguioption cmp al,5 diff --git a/zsnes/src/makefile.win b/zsnes/src/makefile.win index c3c89a09..8ab676d4 100644 --- a/zsnes/src/makefile.win +++ b/zsnes/src/makefile.win @@ -69,9 +69,9 @@ MAINOBJ=cfgload.obj endmem.obj fixsin.obj init.obj ui.obj vcache.obj water.obj OBJS=${CHIPSOBJ} ${CPUOBJ} ${WINOBJ} ${GUIOBJ} ${VIDEOBJ} ${ZIPOBJ} ${MAINOBJ} ${WINDOSOBJ} LIBS= -CFLAGS=/c +CFLAGS=/c /D__WIN32__ ASM=nasm -ASMFLAGS=-f win32 +ASMFLAGS=-f win32 -D__WIN32__ CC=cl .SUFFIXES: .c .cpp .asm diff --git a/zsnes/src/win/winlink.cpp b/zsnes/src/win/winlink.cpp index 8fc6c489..a67f1b49 100644 --- a/zsnes/src/win/winlink.cpp +++ b/zsnes/src/win/winlink.cpp @@ -191,6 +191,12 @@ extern int CurKeyReadPos; extern int KeyBuffer[16]; } +extern "C" void CheckPriority ( void ) +{ + if (HighPriority == 1) SetPriorityClass(GetCurrentProcess(), HIGH_PRIORITY_CLASS); + else SetPriorityClass(GetCurrentProcess(), NORMAL_PRIORITY_CLASS); +} + BOOL InputRead(void) { static PrevZ=0; @@ -439,7 +445,6 @@ LRESULT CALLBACK Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) return TRUE; } - int RegisterWinClass ( void ) { WNDCLASS wcl; @@ -456,7 +461,7 @@ int RegisterWinClass ( void ) wcl.lpszMenuName = NULL; wcl.lpszClassName = "ZSNESWIN"; - if (HighPriority == 1) SetPriorityClass(GetCurrentProcess(), HIGH_PRIORITY_CLASS); + CheckPriority(); if (RegisterClass(&wcl) == 0) return FALSE;