Ver la versión completa : hacer port para gp2x ¿por donde empiezo?
bueno comentar que no tengo ni idea de programar pero tengo muchisimo tiempo libre y nada interesante en que gastarlo asi que he pensado en portar el divi dead ya que nadie se anima a hacerlo
¿es posible que pueda hacerlo o ni lo intento?
uso windows xp y la gp2x es una f200 de las primeras y le tengo puesto el open2x
GameMaster
08/09/2010, 01:53
Para quien no tiene idea de programar no quieres hacer poco...
Para portar algo lo mas importante es ver si comparten libs, o si lo que no es compartido si se puede hacer usando libs similares o que permitan hacer lo mismo.
Para poder portar algo necesitas el código fuente del programa. No es algo que los autores den así por que sí porque entonces la gente podría modificar el programa o portarlo a otras plataformas sin su permiso :)
Quizá se me escapa algo, pero no he visto que Divi-Dead tenga el código fuente disponible así que no se puede portar a Gp2x de ninguna manera. Parece que hay una versión para Dreamcast. ¿Has probado si funciona en el emulador de Dreamcast? :rolleyes:
de el divi dead original no hay pero el fundador de tales traslation lo reescribio desde cero cambiando algunas cosas y ese codigo fuente si esta liberado , junto con el de los port de dream . psp , linux , mac , flash etc
no se programar pero algo como lo de el codigo fuente si lo se xd
http://foro.tales-tra.com/viewtopic.php?f=73&t=1647
(http://foro.tales-tra.com/viewtopic.php?f=73&t=1647)
Hola.
Me gustaría saber como piensas hacer un port, si no sabes programar.
Saludos.
la cosa es que pregunto si es posible o no que lo haga ya que no se la dificultad que puede tener esto y si , no se programar pero ya que quiero aprender ¿que mejor que con algo que me interesa?
la cosa es que pregunto si es posible o no que lo haga ya que no se la dificultad que puede tener esto y si , no se programar pero ya que quiero aprender ¿que mejor que con algo que me interesa?
Hola.
Por lo que parece esta hecho en C, un lenguaje universal y portable a casi todas partes. Si empiezas aprendiendo C, después sigues con Linux Avanzado, y después te miras el SDK de la consola, las posibilidades de que lo portes son bastante elevadas.
Saludos.
Claro que lo puedes hacer si tienes muchas ganas y tiempo libre. Pero tienes que estar dispuesto a aprender mucho y echarle cientos de horas durante meses o años.
Portar es como traducir un libro, y para traducir tienes que dominar totalmente los lenguajes (y sistemas) de origen y de destino. Esto va por niveles y no puedes pasar al siguiente nivel sin pasar por el anterior. Más o menos es así: Aprender a programar, hacer aplicaciones, hacer videojuegos, aprender Linux, estudiar distintos sistemas, hacer ports.
Suerte
GameMaster
09/09/2010, 00:04
Ya me gustaria ser como los perros, estos nacen sabiendo nadar!
(menos los que tiro la tia esta)
http://www.marea-roja.com.ar/wp/wp-content/uploads/2009/09/perro-nadador.jpg
vale que asta dentro de mucho tiempo por mi parte no se vera esto XD , pero no me desanimo , ya me he bajado el visual C++ y estoy viendo tutoriales y por lo menos de momento en principio no se ve demasiado complicado , lo veo mas cansino que otra cosa ( me voy a artar a escribir xd) , de tiempo libre pues desde hace tiempo tengo las 24 horas libres los 7 dias de la semana el unico problema "serio" que tengo de momento es que me distraigo con mucha facilidad :(
GameMaster
09/09/2010, 01:33
Hombre, ya somos dos distraidos, y es que por mi casa no pasan tias :)
Nada, que si lo haces en una semana, te contrato para hacer un cohete para viajar a la luna.
Lo que vas a necesitar es mucho ánimo, porque la cosa puede ser complicada. No en el sentido de que sea difícil, sino en que es posible que te canses antes ^^U
Nah, lo primero es lo primero: unas nociones de C, aprender a usar toolchains, saber manejar las librerías y al tajo. Si el programa usa SDL ya tienes la mitad del trabajo hecho.
tengo una duda aunque ahora no me sirve de mucho pero tengo que preguntar , hace tiempo creo recordar que vi por aqui que si se compila dinamicamente con el sdk oficial serian compatibles con wiz ¿ estoy bien encaminado ? bueno , la duda es que si tirase del segundo procesador (en caso de tener que usarlo) seria compatible igualmente? , en principio supongo que no ya que seria muy especifico ¿no?
Yo te animaría a empezar con algo muy sencillito, hay juegecillos porhay con código que no ocupan mas que pocos cientos de líneas de código...
Empieza con alguno de estos, no se si es el caso de divi-dead, lo importante es que: no usen librerías raras, usen sdl y que sean jugables a 320x240 a partir de ahí lo basico es conseguir compilarlos, reescalar los graficos a la resolucion de gp2x para que no casque y mapear los controles.
Cuando llegues aquí habrás aprendido un montón sobre C, compilación, toolchains, SDKs, librerías, etc...
tengo una duda aunque ahora no me sirve de mucho pero tengo que preguntar , hace tiempo creo recordar que vi por aqui que si se compila dinamicamente con el sdk oficial serian compatibles con wiz ¿ estoy bien encaminado ? bueno , la duda es que si tirase del segundo procesador (en caso de tener que usarlo) seria compatible igualmente? , en principio supongo que no ya que seria muy especifico ¿no?
Si se usa el SDK oficial, sí, porque se compila dinámicamente contra las librerías SDL y eso facilita enormemente el port. Si se le suma que las CPUs de ambas consolas tienen un bytecode compatible, pues eso.
Ahora, si se usa el segundo procesador, ya no hay tu tia, porque obviamente, la Wiz no tiene segunda CPU.
Si has entendido todo esto, ya estás listo para dar el segundo paso :lol:
PD: me gustaría saber, a groso modo, cómo se cargan los programas de la segunda CPU y qué hay que hacer para comunicarlos (si existe alguna librería, hay que tirar de sockets, mensajes, memoria compartida...).
Nathrezim
09/09/2010, 09:59
PD: me gustaría saber, a groso modo, cómo se cargan los programas de la segunda CPU y qué hay que hacer para comunicarlos (si existe alguna librería, hay que tirar de sockets, mensajes, memoria compartida...).
En la minilib de Franxis venían ejemplos de como cargar código en el segundo core, reservar la memoria compartida (el segundo core no tiene acceso a memoria) y como sincronizar la ejecución de ambos cores.
vale que asta dentro de mucho tiempo por mi parte no se vera esto XD , pero no me desanimo , ya me he bajado el visual C++ y estoy viendo tutoriales y por lo menos de momento en principio no se ve demasiado complicado , lo veo mas cansino que otra cosa ( me voy a artar a escribir xd) , de tiempo libre pues desde hace tiempo tengo las 24 horas libres los 7 dias de la semana el unico problema "serio" que tengo de momento es que me distraigo con mucha facilidad :(
Te recomiendo que duermas cada día ...
PD: me gustaría saber, a groso modo, cómo se cargan los programas de la segunda CPU y qué hay que hacer para comunicarlos (si existe alguna librería, hay que tirar de sockets, mensajes, memoria compartida...).
Por lo que se, se escribe el programa en ensamblador (no suele ser muy largo) y se llama a una función para que se ejecute en el segundo procesador. Queda como en "segundo plano". Lo que he visto que usa la segunda cpu son players de música y una librería de 3d.
Creo que la minilib (http://www.gp32spain.com/foros/downloads.php?do=file&id=292) de Rlyeh tiene funciones para ello, pero hay una específica que es la Dualcpu (http://www.gp32spain.com/foros/downloads.php?do=file&id=100). También está la ogg940 que permite música OGG en segundo plano.
Sé que hay ejemplos hechos, pero no quería ponerme a leer código, era una mera curiosidad despue´s de ver con la facilidad que se trata el tema en el DSP del OMAP3, porque con una librería de "drivers", se puede acceder al DSP desde la CPU usando una serie de funciones: una de inicialización, otra para que cargue el ejecutable, otra para el manejo de memoria compartida, otra para crear colas de mensajes... Todo muy muy sencillo, como si fuera soft, con todo el control de recursos integrados, y manejando las lineas HW.
¿Pero la segunda CPU se debe guardar el código ensamblador? ¿no vale con copiar el binario compilado desde C a una posición de memoria? No me extraña su fracaso.
La razón es que la segunda cpu no tiene MMU y no puede acceder a la memoria de la cpu a la vez que la principal. No son dos núcleos totalmente autónomos. No sé exactamente, pero es algo parecido. Por eso hay que generar un código bastante "artesanal", que sólo se puede conseguir en ensamblador.
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions Inc. All rights reserved.