La emulación consiste básicamente en la traducción de las instrucciones de la máquina a emular a la máquina en la que se va a reproducir. Una máquina tiene un procesador (o mejor dicho, varios) que tienen un juego de instrucciones. Cuando un juego es compilado para esa máquina lo que hace es almacenar qué instrucciones le va a mandar a la máquina.
La traducción en sí no es muy dificil. De hecho es bastante fácil si se tiene la documentación de la máquina a emular. El problema reside en que la máquina destino puede tener un juego de instrucciones totalmente distinto, por lo que traducir una instrucción que en la máquina original use un solo ciclo, en la de destino puede requerir varios ciclos. Por poner un ejemplo, en PS2 tienes un bus de 128bits. En un ordenador con 64, tienes que dividir el valor en dos partes, operar cada parte por separado, y luego juntarlo. Con lo cual estás multiplicando un proceso que la máquina original hace de una sentada. Si ya hablamos de sistemas operativos de 32 bit, ríete.
Más aún si hablamos de emulación en compatibles. Porque una máquina fija como es la x1 tiene una arquitectura definida y es la misma siempre. Sin embargo en compatibles, no sabes que clase de procesador o arquitectura tienes. Normalmente es el sistema operativo el que se encarga de abstraer todos estos procesos de forma que un ejecutable va a funcionar en cualquier máquina. Pero también eso implica que las instrucciones pasan por varios ciclos adicionales. Windows ayuda a los programadores a no tener que pararse a pensar en las características de la máquina en la que se ejecuta, pero también implica que la eficiencia de las instrucciones va a ser inferior.
Y por otro lado, quienes trabajan en emuladores de PC no trabajan directamente sobre la máquina como si lo hacen las API de consola. Lo cual implica pasos intermedios y recursos adicionales. A eso hay que añadirle el proceso de desarrollo, en cuya primera iteración no suele ser tan eficiente como en las posteriores.
Con todo esto, resulta que al final emular una máquina en otra es un proceso mucho más lento y que requiere de muchísima más máquina que la original. También es cierto que cuanto más parecida sea una arquitectura y menos intermediarios tenga (como el SO) requerirá menos recursos adicionales.
Así que la cuestión no es si se peude emular una 360. Es ver qué máquina sería capaz de emular eso. También hay que tener en cuenta que si una máquina no se emula en su totalidad, no se puede jugar. Y luego hay que tener en cuenta que muchos desarrolladores abusan de la arquitectura de la máquina original para atajar u optimizar, haciendo que queden muchos cabos sueltos que derivan en que muchos juegos no funcionen completamente y haya que solucionarlos caso por caso. Cuando las máquinas eran más cerradas, como la megadrive, era más fácil emularla. A día de hoy, cada vez los procesadores son más complejos y las arquitecturas más propensas a diversos tipos de abuso que hace que sea un infierno emularlas.