Ver la versión completa : ¿Cual es el proceso de hacer un emulador?
thamurath
17/01/2006, 14:19
Buenas,
Tengo ciertos conocimientos de programacion para microcontroladores, sobre todo en C, aunque he hecho algunas cosas en C++ y en el ensamblador de algunos RISC, y la verdad es que viendo lo rapido que han ido saliendo emuladores de las distintas consolas para la GP2x siento una gran curiosidad sobre como se hace un emulador. Supongo que la pregunta es demasiado amplia, pero si alguien pudiese darme unas nociones a grandes rasgos o algo de informacion para comenzar e enterarme le estaria infinitamente agradecido.
:samurai: :samurai: :samurai: :samurai: :samurai: :samurai: :samurai:
la mayoria de emus de gp32 y gp2x estan portados de otras versiones de los emuladores para otros sistemas.
osea ke cogen el codigo fuente del emulador original, y cambian partes especificas del codigo para que funcionen en la gp2x.
Aunque no nos iria mal que alguien que sepa hacer emuladores haga un emu de GBA desde 0 pensado para la GP2X. [wei5]
Cuando tenga algo de conocimientos sobre emulacion puede que lo intente.
Aunque no nos iria mal que alguien que sepa hacer emuladores haga un emu de GBA desde 0 pensado para la GP2X. [wei5]
Cuando tenga algo de conocimientos sobre emulacion puede que lo intente.
de gba? menudo malgaste seria. Mejor hacerlo de super, ya que eso seria algo novedoso, o de neogeo, ya puestos.
La gba se puede "emular" bien en una gba y en una ds. Sin embargo la snes no se puede emular bien aun en ningun sistema portatil.
de gba? menudo malgaste seria. Mejor hacerlo de super, ya que eso seria algo novedoso, o de neogeo, ya puestos.
La gba se puede "emular" bien en una gba y en una ds. Sin embargo la snes no se puede emular bien aun en ningun sistema portatil.Los de snes y neogeo los puedes portar directamente de los de PC e ir modificandolos hasta adaptarlo a la GP2X (Tarde o temprano ni te daras cuenta y el emu de Squidge rulara a full con sonido y sin fallos). La gracia de hacer el de GBA desde 0 es que como el set de instrucciones de la GBA es compatible con el de la GP2X se podria aprobechar este hecho para hacer un emu decente. Ademas, no todo el mundo tiene una DS.
Los de snes y neogeo los puedes portar directamente de los de PC e ir modificandolos hasta adaptarlo a la GP2X (Tarde o temprano ni te daras cuenta y el emu de Squidge rulara a full con sonido y sin fallos). La gracia de hacer el de GBA desde 0 es que como el set de instrucciones de la GBA es compatible con el de la GP2X se podria aprobechar este hecho para hacer un emu decente. Ademas, no todo el mundo tiene una DS.
no todo el mundo tiene una ds, pero el ke no tiene una gba hoy dia es porque no kiere.
si, si no digo ke no seria interesante, pero creo que habrian emus mas atractivos a la hora de ser creados de cero que uno de geinvoiadbansesepegerlsedishon.
SilentSei
17/01/2006, 17:32
Pero él hará el emu que le apetezca. Para meterse en realizar un emu (y más si es desde 0 y con ensamblador) lo importante son las ganas que tengas de hacerlo. Sino es posible que se quede sin teminar cuando aparezcan dificultades o no lo refine los suficiente.
A mí también me interesaba mucho aprender cómo se hace un emulador, luego ya lógicamente, aprender a hacerlo para la GP2X... pero primero lo primero :)
Encontré esta web que tiene un planteamiento genial... si no fuera porque se queda al principio del proceso:
http://dsemu.org/tut/
De todos modos, viendo el código fuente de algunos emuladores, con muchísimos ficheros, algunos en ensamblador, otros en C, y todo arrejuntao, me puse un poquito pálido y pensé "bueno, mejor empezar haciendo alguna cosilla fácil en SDL... " [wei5]
Es con esta consola y los programas que se hacen para ella, cuando más me he interesado a la hora de leer el código fuente de otros programas... y como no tengo mucha experiencia en hacer eso, me lío con poco. Por ejemplo me lié hasta con el código fuente del Spout :confused:
De esto he sacado una idea: de nada sirve tener el código fuente disponible, si no viene acompañado por una buena documentación, con esquemas de dependencias, despcripción de cada módulo, etc. Porque yo cuando hago un programa, tengo en la cabeza todo eso, sólo pensando en el nombre de una función sé perfectamente en qué fichero está y en qué línea más o menos... pero ver un código extraño sin tener esos esquemas mentales, se hace un poco pastoso para mi pobre cerebro... :(
Asi que para comprender el código del SNES de NK (globalmente), podéis imaginaros la cara que puse XDDD
Adeu
thamurath
17/01/2006, 18:20
Vale, yo me referia mas bien al proceso a seguir cuando quieres crearlo desde 0, no para portar uno ya hecho, vamos el tema es saber como funciona un emulador, que partes tiene y como conseguir que un juego de otra plataforma funcione correctamente.... vamos algo que ya se que es bastante generico y extenso, pero digamos que lo que queria al menos era una idea inicial sobre la que poder ampliar ...
Puck2099
17/01/2006, 18:39
Así a "grosso modo" supongo que sería algo como aislar cada "chip" de la máquina a emular y escribir un módulo por chip que emule su funcionamiento. Si por ejemplo tenemos un micro con x instrucciones, tendrías que crear una función que emule cada instrucción.
Luego habría que ver como unir estos "chips emulados". Si en la realidad se hace mediante buses, pues podría hacerse con variables globales. Hacer que un programa vaya leyendo de la rom, decodificando cada instrucción, y pasándosela al módulo específico.
Finalmente habría que hacer un interfaz de usuario que mostrara por pantalla los datos almacenados en la memoria gráfica de la máquina emulada, reconozca los botones, etc.
En teoría es todo muy sencillo, pero es un trabajo de chinos, aunque muy bonito :)
Saludos
A ver, existe un tuto de introduccion hecho por "tito" Marat Fazullin" que seguro que os viene bien para empezar. Da conceptos basicos de emulación de un micro, timing, etc...
Su web: http://fms.komkon.org/
Por cierto no se si os dareis cuenta pero es el "papa" de todos los fXXXX, como fmsx, virtual boy, etc...
Y la dire del tuto: http://fms.komkon.org/EMUL8/HOWTO.html
Si quereis mas info y cositas mirar aquí en la sección de docs:
http://personals.ac.upc.edu/vmoya/emulation.html
Ale, a ver si con esto nos ponemos al día,
Un saludo,
HexDump.
SilentSei
17/01/2006, 22:00
Gracias por toda la info. Yo también quiero aprender a programar emus y juegos y cualquier información es buena.
A ver si un día no muy lejano puedo presentar algo y ver vuestros proyectos.
thamurath
17/01/2006, 22:05
Muichas gracias a puk por la vision general del tema y a hexdump por la info y lo enlaces, entre ambos me habeis dado un buen sitio donde empezar
Un saludo
:samurai: :samurai: :samurai: :samurai: :samurai: :samurai: :samurai:
Thamurath, si alguan vez necesitas ayuda avisame e intentare darte algunas guías, como a mi me las dieron ;).
HexDump.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions Inc. All rights reserved.