PDA

Ver la versión completa : Voy a decir una burrada



Drumpi
31/08/2006, 07:40
Leyendo otros post sobre el tema de emuladores, creo que se menciona que el problemas con sistemas que usan procesadores similares y/o compatibles con los arm de la gp2x, como pueden ser la ngage o la GBA, se me ocurrio pensar en ¿y si se crease un firmware o un SO que gestione las llamadas del codigo a emular como si fueran propias? es decir, que no necesite traducirlas y trabajase directamente sobre el hardware.
Se me vino la idea de aquel uboot que se desarrollo hace tiempo que te permitia elegir si querias arrancar con el firmware de la nand o de la sd, si se pudiese elegir tambien un "firmware" de emulacion...

Se que es una tonteria mas grande que un cohete de la nasa y un trabajo solo para expertos con muchisimo tiempo libre (condicion que no reuno) pero me interesaria saber por que no funcionaria.
Gracias por su atencion :)

[Ahhh] [Ahhh] [Ahhh] [Ahhh] <--- Mis neuronas

WinterN
31/08/2006, 07:50
Eso que comentas tiene un nombre: virtualización.

Se debatió en su momento, pero ya nos avisó una-i (que es de los que más sabe del tema) que eso no era tan sencillo, ya que, aparte del procesador, el resto del hardware es completamente distinto.

Aunque hay alguien trabajando ya en un recompilador dinámico experimental.

SilentSei
31/08/2006, 15:59
Pues a mi no me parece una burrada lo que has dicho. Lo que s&#237; me parece es demasiado complicado para que un amateur lo lleve a cabo. Aunque nada es imposible.

dj syto
31/08/2006, 16:03
algo de esto he comentao yo en el hilo sobre el emu de ngage.

sea como sea, cosas mas complicadas y dificiles se han visto.

WinterN
31/08/2006, 16:50
La cuestión es que aunque las intrucciones sean las mismas, los datos que manejan, o mejor dicho, las direcciones de memoria, no tienen por que coincidir.

Por poner un ejemplo. Si para pintar un pixel blanco en la coordenada 0,0 de pantalla de una N-gage o GBA fuera poner a la direccion de memoria el valor correspondiente al blanco (FFFFFFh) se accediese a la direccion de memoria C000BBh, podría ser algo así como:

SET C000BBh, FFFFFFh

Para la GP2X podría ser la dirección C00AAAh, en vez de la que se ha puesto antes. Ejecutar esa instrucción en la GP2X tal cual, podría dar lugar a resultados inexperados, ya que la dirección C000BBh en la GP2X podría ser, por ejemplo, la dirección que cambia la velocidad de refresco de la pantalla.