All XBEs are statically linked, meaning that there are no DLLs or libs to intercept. Code from high-level libraries such as the XDK's XTL/XGraphics libs are integrated directly into the title's code, and the XBE has nothing between it and the kernel / hardware.
If you want to emulate an XBE, you have to do two things: A) intercept calls to the kernel, and replace them with supplemental routines, and

intercept accesses to memory-mapped hardware (such as the GPU) that the XBE messes with directly. Doing the first is called high-level emulation (HLE) and is fairly straightforward, although certainly not trivial. Doing the second is called virtualization, and is goddamned painful.
If you want to modify an existing XBE, you'll have to disassemble it, make sense of it the hard way, and modify it at the asm level.
This post has been edited by delphaeus: Sep 18 2003, 01:32 PM