Sometimes reading about emulation and even developing my own emulators is inevitable not to come across the subject.
Basically there are two types of emulation, the through interpretation or dynamic recompilation, the interpretation basically interprets the operation and performs. But what about recompilation? Basically I think it should be something like turning the game code into a code for the native platform. There are several emulators that run on different types of processors, so how will the emulator turn it into something native? Ex: (I imagine something running on an android, android has a whole SDK and various types of processor architectures (arm, etc.).
So how does an emulator recompile the rom?