The recent release of the most powerful NES emulator has brought some new features useful for romhacking.
First, the built-in Hex Editor
got a new feature called "Highlight Activity", which helps monitoring memory changes (e.g. when you're comparing two savestates, searching for a certain discrepancy).
Also, remember that annoying quirk of all known NES Debuggers, where you couldn't scroll the disassembly up by whole instruction? That's because 6502 instructions have variable len... ok, forget it.
More importantly, Symbolic Debugging finally works like it should have been working all these years since FCEUXDSP
. Basically, you right-click any address and label it with a name. From this point FCEUX will substitute the address with the name everywhere: in disassembly listings, in trace logs, in Hex Editor window caption. This immensely helps reverse-engineering games.
Usually, when beginning a new hacking project, you stumble upon walls of incomprehensible assembly, and you start searching for certain memory addresses which could lead you to the necessary part of the code. Sometimes it's enough to set a breakpoint onto a visual variable (like sprite coordinates/tiles map/etc), but more often you have to dig through the game, documenting data structures (in a text file) and figuring out the code control flow. Well, now you can forget Notepad and use Symbolic Debugging. Even when you barely understand why e.g. this certain code branches over there, right-click the address and call it something semi-definite, like "GotoHereIfVerticalCoord=1F
", then keep reading and doing the same to the following lines - soon you'll notice you understand the situation better and better. Because you're actually restoring a part of the source code of the game, without diving deeper than necessary, only looking at things relevant to your current needs.
For more info, see updated docs on FCEUX Debugger here
Other debugging tools (Trace Logger, PPU Viewer, Code/Data Logger) were also improved in this new version. Read the whole changelog here
.RHDN Project PageRelevant Link: