Basically, you've gotta know the architectures of each machine inside-out if you want to make a decent go of it. You are creating something that will take the inputs and outputs of one platform, interpreting them, translating them, and bunging them them to the 'real' platform to deal with.
Not easy! :blink: