aboutsummaryrefslogtreecommitdiff
path: root/source/apumem.h
diff options
context:
space:
mode:
authorTwinaphex2017-01-25 00:22:07 +0100
committerGitHub2017-01-25 00:22:07 +0100
commit69f17114a277884d1b76f3be458f882b67e39265 (patch)
tree9ba12ae3cd84b35972e5eceedbd1aeba68d42354 /source/apumem.h
parent2747667a75d0512aaedfb166b7b92e9f99e14965 (diff)
parentd8b66ac6d0524b3538ad595825651b28329f9033 (diff)
downloadsnes9x2005-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.h40
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)