MAME is an excellent tool for understanding the inner workings of arcade game code. You'll need to get a hold of a version of MAME with debug options. MAME's debugging tools allow you to do all sorts of neat things.
Set breakpoints at the beginning of routines that you are trying to understand. Make note of when the breakpoint happens because
knowing when a routine runs can be very helpful in understanding what the routine does. Does the routine run when the player dies?
When an enemy is killed? When the game starts up?
Watch Your Step
Step through the game using the STEP feature. You'll be able to follow the flow much more closely and you'll be able to watch variables get updated as each line of code gets executed.
Keep an Watchful Eye
Watch windows allow you to watch the contents of memory. Watching variables change can help
you identify timers and counters. Keeping track of when variables change can help you find key routines. When does
the player's score get updated? When is an extra life awarded?
MAME is also a great way to test out hacks relatively quickly and with considerably less effort then burning EPROMs and installing them in your game. Do all your testing with MAME first. You can field test on the actual game once you've worked out all the major bugs.
Thanks to everyone for turning me on to the Cheat Feature.
I've just tried it out for the first time. M.A.M.E.'s Cheat Engine feature allows you to explore memory address and tweak them during gameplay. Download the latest cheat files and you'll find that quite often the important addresses and variables that you're looking for have already been identified.