<li>When you hover the mouse cursor over the left pane in the debugger, at the bottom of Debugger window you can see the ROM file address of the data loaded there.</li>
<li>Right-click in that pane, it will bring up the Hex Editor at that address so you can immediately begin editing RAm or ROM data.</li>
<li>Left-click in that pane brings up the inline assembler (only if you point at ROM address)</li>
<li>Middle-click on a byte will bring up the <aclass="rvts18"href="GameGenieEncoderDecoder.html">Game Genie Encoder</a> at that address, so you can easily make Game Genie codes.</li>
<li>"Break on bad opcode" feature; this can help you figure out where your game is crashing.</li>
<li>Debugging data like Breakpoints or Address Bookmarks are automatically saved in .DEB files and restored when games are closed / opened.</li>
<li>Ability to give Breakpoints a brief description/name.</li>
<li>All debugging information for addresses < $8000 into the name list file romname.nes.ram.nl.</li>
<li>Added a feature to NL files to support arrays.</li>
<li>Range options for freezing / unfreezing addresses.</li>
<li>Dump RAM to file option.</li>
<li>Dump PPU memory to file option.</li>
<li>Cycles and Instructions counters can be used for profiling, writing synchronized code and making breakpoints based on the counter value.</li>
<li>When you need to quickly advance emulation to a given line of code, doubleclick on the line in Disassembly window, the "Add Execute breakpoint here" dialog will appear, click "OK" and then make "Run", soon Debugger will break at this line and you can "Delete" the breakpoint.</li>
<li>Stack window displays actual data from current Stack Pointer up to 0x1FF</li>
<li>"Scanline" shows current scanline number: -1 it means Prerender time, 240 is Idle scanline, 0-239 are visible scanlines, 241-260/310 are VBlank scanlines</li>
<li>After the Debugger snaps (either by hitting a breakpoint or when you press any "Step ..." button), you can unpause emulator by pressing Run button or using Pause hotkey. Also you can use Frame Advance key to unpause the emulator for only one frame.</li>
<p>The most important feature (at least for me) that was introduced in FCEUXD SP is symbolic debugging. With this new feature it's possible to rename addresses in the disassembly window (like $C022) to easily understandable names (like AddHealthpoints). It's also possible to add comments to lines in the disassembly window.</p>
<p>To be able to use this feature it's necessary to create so called name list files (*.(bank).nl/*.ram.nl, Ex: NES Test Cart (PD).nes.0.nl, NES Test Cart (PD).nes.ram.nl) which contain all names and comments you wish to display in the disassembly window. These files are plain ASCII files of the following format (example follows):</p>
<p>Every line contains two # characters which separate the three parts of one line: The first part (starting with a $ character) is the address to be renamed. Optionally you can add a "/number" part which marks the offsets as a beginning of an array of the given size (the size must be specified in hex form). The second (optional) part is the new name of that address. Whenever the line of that address is shown in the disassembly window an extra line saying "Name: NewName" is shown above it. Instructions referencing this address, for example JSR $C000 are also changed to JSR NewName1 (in that example). The third (optional) part is the comment that's also added above the disassembly line the comment refers to. It works exactly like the additional name line, only the prefix of that line is different. Comment lines start with "Comment: " rather than with "Name: ". Multi-lines comments are possible. Lines starting with a \ character are just appended to the comment of the preceding line. Multi-line comments are also shown in multiple lines in the disassembly window.</p>
<p>The debugger has an Inline Assembler designed by Parasyte. To activate it, left-click in the left pane of the debugger, beside the assembly display. To use it, type in some code and press Enter to add it to the patch list. If you make a mistake, press "Undo". Once the patch is set up the way you want it, press "Apply". Be aware that this cannot be undone unless you reload the ROM. Parasyte implemented this feature before I had the Hex Editor working, otherwise I would have implemented a way to undo it from there. Press "Save" to write to the ROM file on disk; note that this will also save any changes you may have done in the Hex Editor.</p>
<p><br/></p>
<p><br/></p>
<p><br/></p>
<pclass="rvps2"><spanclass="rvts13">Created with the Personal Edition of HelpNDoc: </span><aclass="rvts14"href="http://www.helpndoc.com/create-epub-ebooks">Full featured EBook editor</a></p>