The debugging capabilities of Mesen are split across a number of different tools, including the debugger itself:
APU Viewer: Displays every detail of the APU’s current state for each channel.
Assembler: Allows you to edit a game’s code or run custom code on-the-fly.
Debugger: View the code, add breakpoints, labels, watch values, and much more.
Event Viewer: Visualize the timing of a variety of events (register read/writes, nmi, irq, etc.).
Memory Tools: Contains a hex editor and performance profiler.
Performance Profiler: Profiles the CPU’s execution to help find bottlenecks in code.
PPU Viewer: Displays information on the nametables, sprites, CHR banks and palette. Contains a CHR graphic editor and a palette editor.
Script Window: Allows the execution of Lua scripts, which can communicate with the emulation via an API.
Text Hooker: Converts text shown on the screen into a text string (useful when trying to translate games.)
Trace Logger: View or log to a file the execution trace of the CPU and PPU.
Additionally, some other smaller features are available from the main debugger window. e.g: