diff options
author | Tony Wasserka <NeoBrainX@gmail.com> | 2015-04-04 12:57:31 +0200 |
---|---|---|
committer | Tony Wasserka <NeoBrainX@gmail.com> | 2015-07-13 22:27:20 +0200 |
commit | 902fa4da52737d43e04c2a028658ad9840811a89 (patch) | |
tree | 0a2346b4e08b5865c3369247f5720453b170e0c6 /src/core/hw/lcd.cpp | |
parent | 93d66475d491f0ed0070da0fc3bcc2d9bb066233 (diff) |
Add CiTrace recording support.
This is exposed in the GUI as a new "CiTrace Recording" widget.
Playback is implemented by a standalone 3DS homebrew application (which only runs reliably within Citra currently; on an actual 3DS it will often crash still).
Diffstat (limited to 'src/core/hw/lcd.cpp')
-rw-r--r-- | src/core/hw/lcd.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/core/hw/lcd.cpp b/src/core/hw/lcd.cpp index cdb757a18e..6f93709e32 100644 --- a/src/core/hw/lcd.cpp +++ b/src/core/hw/lcd.cpp @@ -10,6 +10,9 @@ #include "core/hw/hw.h" #include "core/hw/lcd.h" +#include "core/tracer/recorder.h" +#include "video_core/debug_utils/debug_utils.h" + namespace LCD { Regs g_regs; @@ -40,6 +43,13 @@ inline void Write(u32 addr, const T data) { } g_regs[index] = static_cast<u32>(data); + + // Notify tracer about the register write + // This is happening *after* handling the write to make sure we properly catch all memory reads. + if (Pica::g_debug_context && Pica::g_debug_context->recorder) { + // addr + GPU VBase - IO VBase + IO PBase + Pica::g_debug_context->recorder->RegisterWritten<T>(addr + HW::VADDR_LCD - 0x1EC00000 + 0x10100000, data); + } } // Explicitly instantiate template functions because we aren't defining this in the header: |