make PCE core a lot faster, one is supposed to check for the existence of callbacks before calling them

This commit is contained in:
adelikat 2020-04-21 13:27:40 -05:00
parent 217f03f66d
commit a4e1defad3
2 changed files with 17 additions and 5 deletions

View File

@ -60,7 +60,11 @@ namespace BizHawk.Emulation.Cores.Components.H6280
LagIFlag = FlagI;
if (Debug) Logger(State());
MemoryCallbacks.CallMemoryCallbacks(PC, 0, (uint)MemoryCallbackFlags.AccessExecute, "System Bus");
if (MemoryCallbacks.HasExecutes)
{
MemoryCallbacks.CallMemoryCallbacks(PC, 0, (uint)MemoryCallbackFlags.AccessExecute, "System Bus");
}
if (CDL != null && CDL.Active) CDLOpcode();

View File

@ -326,8 +326,13 @@ namespace BizHawk.Emulation.Cores.Components.H6280
{
byte page = MPR[address >> 13];
var result = ReadMemory21((page << 13) | (address & 0x1FFF));
uint flags = (uint)(MemoryCallbackFlags.AccessRead);
MemoryCallbacks.CallMemoryCallbacks(address, result, flags, "System Bus");
if (MemoryCallbacks.HasReads)
{
uint flags = (uint)(MemoryCallbackFlags.AccessRead);
MemoryCallbacks.CallMemoryCallbacks(address, result, flags, "System Bus");
}
return result;
}
@ -335,8 +340,11 @@ namespace BizHawk.Emulation.Cores.Components.H6280
{
byte page = MPR[address >> 13];
WriteMemory21((page << 13) | (address & 0x1FFF), value);
uint flags = (uint)(MemoryCallbackFlags.AccessWrite);
MemoryCallbacks.CallMemoryCallbacks(address, value, flags, "System Bus");
if (MemoryCallbacks.HasWrites)
{
uint flags = (uint)(MemoryCallbackFlags.AccessWrite);
MemoryCallbacks.CallMemoryCallbacks(address, value, flags, "System Bus");
}
}
private ushort ReadWord(ushort address)