diff options
author | Nebuleon Fumika | 2013-01-26 14:47:59 -0500 |
---|---|---|
committer | Nebuleon Fumika | 2013-01-26 14:47:59 -0500 |
commit | 2b9a9dc05b5c4abdf5dac5ceba9300734d4f1b65 (patch) | |
tree | 33fd86c89c7d02af26a77e146c4008fa9ca5f404 /source/cpuexec.h | |
parent | d57eea6b4fd4d5d642cb730f6291dabfb0c6a633 (diff) | |
download | snes9x2005-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.h | 11 |
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); |