diff options
author | Twinaphex | 2017-01-25 00:22:07 +0100 |
---|---|---|
committer | GitHub | 2017-01-25 00:22:07 +0100 |
commit | 69f17114a277884d1b76f3be458f882b67e39265 (patch) | |
tree | 9ba12ae3cd84b35972e5eceedbd1aeba68d42354 /source/apumem.h | |
parent | 2747667a75d0512aaedfb166b7b92e9f99e14965 (diff) | |
parent | d8b66ac6d0524b3538ad595825651b28329f9033 (diff) | |
download | snes9x2005-69f17114a277884d1b76f3be458f882b67e39265.tar.gz snes9x2005-69f17114a277884d1b76f3be458f882b67e39265.tar.bz2 snes9x2005-69f17114a277884d1b76f3be458f882b67e39265.zip |
Merge pull request #27 from jamsilva/master
Improved sound
Diffstat (limited to 'source/apumem.h')
-rw-r--r-- | source/apumem.h | 40 |
1 files changed, 16 insertions, 24 deletions
diff --git a/source/apumem.h b/source/apumem.h index 74594d6..8a9f09a 100644 --- a/source/apumem.h +++ b/source/apumem.h @@ -67,32 +67,24 @@ INLINE uint8_t S9xAPUGetByte(uint32_t Address) { Address &= 0xffff; - if (Address <= 0xff && Address >= 0xf0) - { - if (Address >= 0xf4 && Address <= 0xf7) - { -#ifdef SPC700_SHUTDOWN - IAPU.WaitAddress2 = IAPU.WaitAddress1; - IAPU.WaitAddress1 = IAPU.PC; -#endif - return (IAPU.RAM [Address]); - } - else if (Address == 0xf3) - return (S9xGetAPUDSP()); - if (Address >= 0xfd) - { + if (Address == 0xf3) + return S9xGetAPUDSP(); + + bool zero = (Address >= 0xfd && Address <= 0xff); + uint8_t t = IAPU.RAM [Address]; + #ifdef SPC700_SHUTDOWN - IAPU.WaitAddress2 = IAPU.WaitAddress1; - IAPU.WaitAddress1 = IAPU.PC; -#endif - uint8_t t = IAPU.RAM [Address]; - IAPU.RAM [Address] = 0; - return (t); - } - return (IAPU.RAM [Address]); + if (zero || (Address >= 0xf4 && Address <= 0xf7)) + { + IAPU.WaitAddress2 = IAPU.WaitAddress1; + IAPU.WaitAddress1 = IAPU.PC; } - else - return (IAPU.RAM [Address]); +#endif + + if(zero) + IAPU.RAM [Address] = 0; + + return t; } INLINE void S9xAPUSetByte(uint8_t byte, uint32_t Address) |