What you're looking for is a disassembler. It disassembles processor code into something (somewhat more) humanly-readable. The one you'll need is dependant on the processor used in that system.
Some emulators have a debugger with this feature built-in. You can browse the code, set breakpoints to stop it at certain points, and trace what's executing when.
For the NES you'd want to look at
FCEUX.
Unsure about SNES, but there's plenty of people here who can give you recommendations.
Pickings for N64 are rather sparse. The old standby is
Nemu64. I've heard there's some arms of Mupen that have some decent capability, and if your specs are high enough there's the debug arm of MESS, but despite its age nothing matches Nemu for general-purpose work.
Even with a good debugger though it takes time, practice, and a bit of reading to know what you're looking at. Code works on data, and there's always some rhyme or reason to how data is structured.