when checking the "market" about 7 years ago, there was no suitable ARM emulator.
suitable = simple C, not bloated, easy to understand API
I used several in fact (even Visual Studio Windows Phone Emulator

). But agree no one was simple and easy configurable.
there were two major candidates - qemu and GBAemu.
Qemu fails always due to the same reason

meanwhile i merged that code as plugin into my scriptable patching system (TriX) which this thread is about.
http://trix:trix@svn.g3gg0.de/svn/default/trunk/nokia/TriX/plugins/TriX_ARMulate/armulate.c
http://trix:trix@svn.g3gg0.de/svn/default/trunk/nokia/TriX/plugins/TriX_ARMulate/opcodes.h
what i want to say: i am not sure if it is the best choice.
What about license for this source in TriX ? If I see correct, it is Thumb code ?
Well, our Emulator is in Java

The point is that we had 2 Chips configuration from begining, so we got a lot of experience with it. You must have the same clock (we say MasterClock) for both chips and all other parts, otherwise you can't get system runing stable. The MasterClock guarantees that everything runs at same tact ratio relative to each other: if one CPU emulation needs more time, another one will be slowed down automatically because of design. After we got this, a box of Pandora opened

So asynchronous solutions with TCPIP connector will be pretty difficult to implement, because of clock synchronisation. Or ?
Next question will be Interrupt Controller and Cache Controller AND eventually MMU unit if your target have one ? I suppose almost each ARM core has one MMU.
P.S. I posted in your forum how to use our TX19A disassembler, for the case you want to poke on MIPS part.
Best regards,
coderat