Filetable for the game; files labeled "nindec" use a type of compression found in all of Culture Brain's N64 titles. The decompression algo works like so:
out = bytearray()
out_sz = int.from_bytes(data[0:4], 'little')
src = iter(data[4:])
cmd = 0x10000
cmd = 0x100 | next(src)
if cmd & 0x80:
p = next(src)
l = (p>>4)&7
l = 2
for i in range(l):
# Amusingly, they overshoot sizes and cut at the final size.
# Simply allowing the decompression and resizing should be okay though.
Dont' have a compressor handy but this is pretty simple LZ; it shouldn't be terribly difficult to do yourself.
Seriously hope you don't need to move anything around, because if you do it will present a bit of a nightmare tracking all the instances in both the tables and ASM.
Non-graphical text appears to use a sort of scripting, not unlike Super Robot Taisen 64. Pain in the butt; usually N64 games are nice enough to use a standard codepage like shiftJIS or EUC JP but a couple companies were obnoxious and simply put chars in the order they appeared in the font.
As far as debuggers there's Nemu64 and MAME. Nemu isn't as accurate as MAME is but runs much, much faster and has a more intuitive UI for the debugger. For most basic usage Nemu + glide64 should be more than sufficient.
To debug with MAME you'll need to use the command line to start the game:
mame n64 -debug -cart [filename]
It starts paused; there should be a reference someplace on how to use it. My PC is unable to run MAME so can't offer much help.
Just fair warning there is no 100% accurate emulator.
Most complete checksum calculator is implemented here:http://www.mediafire.com/view/wwy88kc9h1d8dew/N64.py
-though since the game is a 6102 title any checksum calculator can be used. If you change anything falling between 0x1000 and 0x101000 you will need to recalculate the checksum.
For some background on the system:http://n64dev.org/
In particular, the CPU manual has a complete opcode and COP0/COP1 register reference.