aboutsummaryrefslogtreecommitdiff
path: root/source/cpuops.cpp
AgeCommit message (Collapse)Author
2013-01-08Permanently remove NO_OPEN_BUS hacks. It was a premature optimisation.Nebuleon Fumika
2013-01-04Move all CPU cycle calculations into cpuops.cpp.Nebuleon Fumika
2013-01-04Move some CPU cycle calculation from address resolution to the opcodes. This ↵Nebuleon Fumika
is to eventually move it from the resolved-address ops as well, reducing the number of memory stores.
2012-12-27Make cleanly without -DCPU_SHUTDOWN.Nebuleon Fumika
2012-12-26Merge Registers structures into their respective CPUs to avoid additional ↵Nebuleon Fumika
memory addresses being loaded every opcode.
2012-12-24End the use of global variables for CPU emulation. This creates fewer memory ↵Nebuleon Fumika
store instructions in many SNES, SA1 and APU opcodes. Fix the APU half-carry bug, which may be audible. globals.cpp: Get rid of A1, A2, A3, A4, W1, W2, W3, W4, Int8, Int16, Int32, Work8, Work16, Work32, Ans8, Ans16, Ans32.
2012-12-23Various optimisations in the CPU emulation.Nebuleon Fumika
Run the opcode as a tail call from the address calculation. This cuts on the needed return instructions. Pass the opcode address as a parameter; this keeps it in a register most of the time and avoids memory stores.
2012-12-20Remove the SNES Open Bus behaviour by default. Also simplify translation again.Nebuleon Fumika
SNES Open Bus is a quirk of the memory subsystem that allow reads of invalid addresses to return the last byte read from memory. However, it is seldom needed by a game, and it costs 1 to 3 MIPS instructions per SNES instruction to emulate. If you need SNES Open Bus, you can remove -DNO_OPEN_BUS from the Makefile.
2011-03-05first commitKitty Draper