ppmeis escribió:manicminer1976 escribió:Una cosa que no llego a entender, desde mi ignorancia en el tema: ¿por qué es necesario que una máquina sea mucho más potente para que emule a un sistema inferior?
Eso suele pasar en los emuladores de PC, ya que las instrucciones de un sistema están diseñadas para funcionar en un hardware concreto. El emulador lo que hace es adaptar esas instrucciones al lenguaje y hardware de PC, lo que lleva un delay y requiere de un hardware más potente y mucha optimización para que vaya como en el hardware real.
La ventaja de portar entre sus plataformas es que ellos tienen el diseño y el código de esas instrucciones y lo tienen más fácil para adaptarlo. Los de PC es todo por ingeniería inversa o prueba y error.
Vamos, que lo pueden hacer cuando quieran. Al menos los títulos de Nintendo.
Saludos.
Tienes razón en lo referente a los emuladores de PC y a que la necesidad de utilizar en muchos casos ingeniería inversa para adivinar el comportamiento del hardware de las consolas, añade mucho trabajo adicional para los desarrolladores del emulador. Pero no creo que ese aspecto sea demasiado relevante en lo que se refiere a la necesidad de un hardware más potente para emular la máquina original.
En el caso de Nintendo, ellos deben contar con todas las especificaciones completas de cada componente de sus consolas antiguas, así que esa parte del desarrollo (ingeniería inversa para averiguar cómo funciona la consola) se la ahorran. Pero eso no cambia el hecho de que para que un juego de Wii U (por ejemplo) funcionase tal cual en Switch, Switch tendría que ser lo suficientemente potente para ejecutar el propio juego y un programa emulando de forma exacta el comportamiento de cada componente interno de Wii U que no es igual en Switch (y si partimos de la base de que usan arquitecturas completamente distintas, cabe suponer que serán prácticamente todos), todo a la vez.
Desde luego que no soy experto en emulación, pero hasta donde yo sé, emular algo por software para que corra a la misma velocidad que el hardware original, siempre requiere bastante más potencia.
Voy a intentar un símil menos técnico, también en respuesta a la pregunta de
@manicminer1976 :
Como Wii y Wii U utilizaban el mismo idioma (era la misma arquitectura base), Wii U podía entenderse directamente con los juegos de Wii. Aunque Wii U fuese más nueva y sofisticada, entendía el lenguaje de Wii (pues formaba parte del suyo propio) y por eso podía funcionar como una Wii (con el mismo menú y todo), ejecutando sus juegos por hardware.
Wii U y Switch usan un idioma completamente distinto, así que Switch necesitaría tener un intérprete para entenderse con los juegos de Wii U. Evidentemente, cualquier conversación utilizando un intérprete va a ser mucho más lenta que otra entre dos personas que hablen el mismo idioma, así que para que esa conversación interpretada (emulación por software) se produzca a la misma velocidad que la otra (emulación por hardware), necesitarás que los participantes en la conversación interpretada piensen y hablen mucho más rápido que los de la otra, es decir: necesitarás bastante más potencia de procesamiento.
La ventaja de partida que tiene Nintendo respecto a quienes programan emuladores para PC, es que ya tiene diccionarios completos de los dos lenguajes, y eso quizás ayude a que su intérprete pueda ser algo más eficiente, pero la necesidad de mayor potencia dudo que varíe demasiado.