From e48f24d2662d3813bb7af8780188a991732eb4b5 Mon Sep 17 00:00:00 2001 From: zeromus Date: Sat, 17 Nov 2012 01:31:34 +0000 Subject: [PATCH] quick fix for 6502 trace log --- BizHawk.Emulation/CPUs/MOS 6502X/Execute.cs | 3 +++ BizHawk.Emulation/Consoles/Nintendo/NES/Core.cs | 11 +++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/BizHawk.Emulation/CPUs/MOS 6502X/Execute.cs b/BizHawk.Emulation/CPUs/MOS 6502X/Execute.cs index 0dbc752c81..ce09b4f1aa 100644 --- a/BizHawk.Emulation/CPUs/MOS 6502X/Execute.cs +++ b/BizHawk.Emulation/CPUs/MOS 6502X/Execute.cs @@ -548,10 +548,13 @@ namespace BizHawk.Emulation.CPUs.M6502 bool booltemp; int tempint; int lo, hi; + public Action FetchCallback; void Fetch1() { { + if (FetchCallback != null) + FetchCallback(); my_iflag = FlagI; FlagI = iflag_pending; if (!branch_irq_hack) diff --git a/BizHawk.Emulation/Consoles/Nintendo/NES/Core.cs b/BizHawk.Emulation/Consoles/Nintendo/NES/Core.cs index 56c09a081c..40da6a4736 100644 --- a/BizHawk.Emulation/Consoles/Nintendo/NES/Core.cs +++ b/BizHawk.Emulation/Consoles/Nintendo/NES/Core.cs @@ -122,6 +122,13 @@ namespace BizHawk.Emulation.Consoles.Nintendo //cpu = new MOS6502X_CPP((h) => DisposeList.Add(h)); //cpu = new MOS6502XDouble((h) => DisposeList.Add(h)); cpu.SetCallbacks(ReadMemory, ReadMemory, PeekMemory, WriteMemory, (h) => DisposeList.Add(h)); + cpu.FetchCallback = () => + { + if (CoreInputComm.Tracer.Enabled) + { + CoreInputComm.Tracer.Put(cpu.TraceState()); + } + }; cpu.BCD_Enabled = false; ppu = new PPU(this); ram = new byte[0x800]; @@ -283,10 +290,6 @@ namespace BizHawk.Emulation.Consoles.Nintendo else { cpu.IRQ = _irq_apu || board.IRQSignal; - if (CoreInputComm.Tracer.Enabled) - { - CoreInputComm.Tracer.Put(cpu.TraceState()); - } cpu.ExecuteOne(); }