aboutsummaryrefslogtreecommitdiff
path: root/source/cpuexec.h
diff options
context:
space:
mode:
authorNebuleon Fumika2013-01-26 14:47:59 -0500
committerNebuleon Fumika2013-01-26 14:47:59 -0500
commit2b9a9dc05b5c4abdf5dac5ceba9300734d4f1b65 (patch)
tree33fd86c89c7d02af26a77e146c4008fa9ca5f404 /source/cpuexec.h
parentd57eea6b4fd4d5d642cb730f6291dabfb0c6a633 (diff)
downloadsnes9x2005-2b9a9dc05b5c4abdf5dac5ceba9300734d4f1b65.tar.gz
snes9x2005-2b9a9dc05b5c4abdf5dac5ceba9300734d4f1b65.tar.bz2
snes9x2005-2b9a9dc05b5c4abdf5dac5ceba9300734d4f1b65.zip
Decide whether SuperFX and SA-1 chips are enabled only once per frame. This saves a few million instructions per second. (Inspired by Snes9x-Euphoria)
Diffstat (limited to 'source/cpuexec.h')
-rw-r--r--source/cpuexec.h11
1 files changed, 8 insertions, 3 deletions
diff --git a/source/cpuexec.h b/source/cpuexec.h
index a094220..dab9099 100644
--- a/source/cpuexec.h
+++ b/source/cpuexec.h
@@ -93,9 +93,13 @@
#include "memmap.h"
#include "65c816.h"
-#define DO_HBLANK_CHECK() \
+#define DO_HBLANK_CHECK_SFX() \
if (CPU.Cycles >= CPU.NextEvent) \
- S9xDoHBlankProcessing ();
+ S9xDoHBlankProcessing_SFX ();
+
+#define DO_HBLANK_CHECK_NoSFX() \
+ if (CPU.Cycles >= CPU.NextEvent) \
+ S9xDoHBlankProcessing_NoSFX ();
struct SOpcodes {
#ifdef __WIN32__
@@ -126,7 +130,8 @@ START_EXTERN_C
void S9xMainLoop (void);
void S9xReset (void);
void S9xSoftReset (void);
-void S9xDoHBlankProcessing ();
+void S9xDoHBlankProcessing_SFX ();
+void S9xDoHBlankProcessing_NoSFX ();
void S9xClearIRQ (uint32);
void S9xSetIRQ (uint32);