Cómo portar juegos de PC de código libre a WII.

Estoy interesado en aprender como se hace, ya que me interesa mucho, y no me importaría dedicarle unas, o muchas horas a hacer esto. Además, juegos como Halo son de código libre, al igual que UT2004, y si ya pasamos quake 3... habrá que trabajar en WII.

Pido también ayuda, colaboradores, a aquellos que están en la scene de WII, para las ayudas en cuanto a cómo portar los juegos, opiniones, y ayuda a instalar los controles adaptados a la WII.

Me parece que podemos crear nuevos proyectos, enfocados a la Scene de WII, en base a grandes juegos sin grandes adaptaciones.
¿Halo de código abierto? ¿Me he perdido algo?

Si no tienes conocimientos de programación, olvidate porque la cosa no es tan simple. Si no, pues adelante, yo no te puedo ayudar porque no tengo ni idea :p
Dirás Quake o Doom, Halo es tan libre como Angelina Jolie :(
Bueno, veo muy bien que tu pretensión sea acabar con conocimientos sufucientes como para adaptar monstruos como los que has mencionado. El caso es que para aprender, como dices que quieres hacer, vas a tener que bajar el listón muy mucho.

En caso de que localices un proyecto más simple y sencillo de portear posiblemente me vuelque en echar una mano ya que me da bastante coraje quedarme fuera, y no poder contribuir a la scene, por falta de ideas propias y por no atreverme a meter mano a proyectos grandes que realmente son los que más aliciente presentan.

En principio es algo "tan sencillo" como localizal el source y estudiarlo un poco para saber qué hace.
Entonces ir aislando (identificar) las partes que hacen uso de librerías exclusivas con las que no contamos en libogc; a posteriori habrá que codificar funciones o partes de éstas para que hagan lo mismo pero usando las librerías de nuestro devkitppc.
En caso de que sean juegos que tiren de bastante memoria, hay que mirarse que todo vaya a caber en los 52 MB de ram de que se disponen.

Existe una cierta similitud entre OpenGL y GX. Para portar un Quake 3, por ejemplo, hay que andar con ambas librerías bastante empapadas. Conocer a fondo las dos abre el camino para empezar a portar cosas más que decentes en 3d: juegos que previamente se hayan valido de OpenGL.

Si se escoge algo sencillito para ir empezando, se estructura el trabajo y se reparten tareas sí que se puede, poco a poco, ir consiguiendo cositas. Si no, ya me miro yo algo y lo posteo XD

(Ergo... Del UT olvídate por el momento)

EDIT: algo mucho más realista es que empezases escogiendo, por ejemplo, uno de aquí:

http://en.wikipedia.org/wiki/List_of_open_source_games

Y los ejemplos de GX del devkitppc empieza a mirártelos ya.
¿Donde estan los interrogantes del hilo? Entre pensando que lo explicarias, pero al ser pregunta debes de poner interrogantes para no causar confusion.
jevilon escribió:¿Donde estan los interrogantes del hilo? Entre pensando que lo explicarias, pero al ser pregunta debes de poner interrogantes para no causar confusion.


Ídem.

Ya me esperaba yo una miniguía paso, a paso [tomaaa] De mientras pues a seguir trasteando sin ton ni son.

Son las ganas que tenemos de encontrarnos con un "Portear juegos a Wii para Torpes".
"Facil" podría ser una vez el linux de la wii esté más maduro y todas las librerías necesarias funcionen. Eso nuvalo lo sabe bien.
En ese caso solo sería coger el código fuente y recompilar. Eso si, aún así todavía queda el soporte del wiimando como el quake 1 para wii, eso hay trabajarselo más a nivel de fuente, pero con el linux funcionando te ahorras su buen trabajo. Ademas ya hay un buen porron de juegos que portar (y no solo juegos por supuesto).

Ah, y cualquier otra cosa (véase, fuente cerrado) más os vale olvidarse más que nada porque todo (o casi) es x86 y la wii es powerpc y emular un x86 no solo es jodido de por sí, si no que encima la wii apenas tiene potencia para hacer tal cosa.
Joder pues yo empezaría portando el motor del quake3 que hace ya un tiempo que se liberó bajo GPL y se ha mejorado (se le ha incuido hasta HDR..) además de portarse a otras arquitecturas como ARM.. hace no mucho se vió un port para el iphone.
Además creo que es un buen motor para explotar bien el wiimote también, se ha probado ya usando el wiimote en pc y no iba nada mal.
realbrucest escribió:Bueno, veo muy bien que tu pretensión sea acabar con conocimientos sufucientes como para adaptar monstruos como los que has mencionado. El caso es que para aprender, como dices que quieres hacer, vas a tener que bajar el listón muy mucho.

En caso de que localices un proyecto más simple y sencillo de portear posiblemente me vuelque en echar una mano ya que me da bastante coraje quedarme fuera, y no poder contribuir a la scene, por falta de ideas propias y por no atreverme a meter mano a proyectos grandes que realmente son los que más aliciente presentan.

En principio es algo "tan sencillo" como localizal el source y estudiarlo un poco para saber qué hace.
Entonces ir aislando (identificar) las partes que hacen uso de librerías exclusivas con las que no contamos en libogc; a posteriori habrá que codificar funciones o partes de éstas para que hagan lo mismo pero usando las librerías de nuestro devkitppc.
En caso de que sean juegos que tiren de bastante memoria, hay que mirarse que todo vaya a caber en los 52 MB de ram de que se disponen.

Existe una cierta similitud entre OpenGL y GX. Para portar un Quake 3, por ejemplo, hay que andar con ambas librerías bastante empapadas. Conocer a fondo las dos abre el camino para empezar a portar cosas más que decentes en 3d: juegos que previamente se hayan valido de OpenGL.

Si se escoge algo sencillito para ir empezando, se estructura el trabajo y se reparten tareas sí que se puede, poco a poco, ir consiguiendo cositas. Si no, ya me miro yo algo y lo posteo XD

(Ergo... Del UT olvídate por el momento)

EDIT: algo mucho más realista es que empezases escogiendo, por ejemplo, uno de aquí:

http://en.wikipedia.org/wiki/List_of_open_source_games

Y los ejemplos de GX del devkitppc empieza a mirártelos ya.



que wapa la lista esa, mira, hay juegos que usan el motor de UT3 y son libres... solo me falta saber como portar y como adaptar el control
Blue Ion escribió:"Facil" podría ser una vez el linux de la wii esté más maduro y todas las librerías necesarias funcionen. Eso nuvalo lo sabe bien.
En ese caso solo sería coger el código fuente y recompilar. Eso si, aún así todavía queda el soporte del wiimando como el quake 1 para wii, eso hay trabajarselo más a nivel de fuente, pero con el linux funcionando te ahorras su buen trabajo. Ademas ya hay un buen porron de juegos que portar (y no solo juegos por supuesto).

Ah, y cualquier otra cosa (véase, fuente cerrado) más os vale olvidarse más que nada porque todo (o casi) es x86 y la wii es powerpc y emular un x86 no solo es jodido de por sí, si no que encima la wii apenas tiene potencia para hacer tal cosa.


Ese linux consume recursos como un condenado, dijo que para arrancar el firefox tuvo que esperar 5 minutos, difícil rular algo sobre ello por mucho que se depure
@realbrucest: Seria genial que entre todos intentasemos portear un juego a wii, podriamos elegir uno sencillo por ejemplo el SuperTux que puede dar mucho juego luego para cambiar personaje, historia, escenarios y demas. Yo personal mente se de programacion de pc pero nunca me he metido con la wii en tema grafico asi que si nos hechas una mano y vamos haciendo seria genial.

Un Saludo
La verdad es que un port de Abuse con wiimote + nunchuk seria DIOS
A mi me gustaría un port de Pingus, que es juego estilo lemmings, con wiimote estaría muy chulo. La de horas que ddique al lemmings en mis tiempos mozos...
Jbom, estoy de acuerdo con que podemos meterle mano al Supertux. Parece un plataformas sencillito que no debe de dar demasiados problemas, después ya iremos viendo cómo se nos va dando la cosa.

Me bajo ahora el código del subversion y mañana empiezo a echarle un vistazo. En principio me parece una muy buena elección para esto de "aprender a portar".

Imagen

EDIT:

No he podido evitar quedarme un rato trasteando las fuentes del supertux, aparte de ponerme a jugar un par de fases para ver cómo es el juego... Tira bastante de SDL, y no es tan "simple" como me había imaginado; vamos que me he puesto a repasar la lista de la wikipedia y me he quedado un tanto flipado con éste:

Imagen

El código es bastante más simple. Lo más complejo es la parte dedicada a mostrar los vídeos, aunque eso se podría dejar congelado hasta que fuese funcional con un fondo estático. El "pero" que resulta estar escrito en pascal. Tampoco tengo muy claro si ya hay librerías en el libogc para trabajar con los micros del boogie.
Junto con el GuitarFun de Hermes, éste sería otro homebrew que también daría un golpe en la mesa para dejar claro que la scene de wii no es cualquier cosa.

Árbol de los fuentes de ultrastar:

.
|-- Code
|   |-- Main
|   |   |-- TextGL.pas
|   |   |-- UCategoryCovers.pas
|   |   |-- UCovers.pas
|   |   |-- UDraw.pas
|   |   |-- UGraphic.pas
|   |   |-- UIni.pas
|   |   |-- UJoystick.pas
|   |   |-- ULCD.pas
|   |   |-- ULanguage.pas
|   |   |-- ULight.pas
|   |   |-- ULog.pas
|   |   |-- ULyrics.pas
|   |   |-- UMain.pas
|   |   |-- UMusic.pas
|   |   |-- UNet.pas
|   |   |-- UPliki.pas
|   |   |-- UProfiles.pas
|   |   |-- URecord.pas
|   |   |-- UScores.pas
|   |   |-- UScreenEdit.pas
|   |   |-- UScreenEditConvert.pas
|   |   |-- UScreenEditHeader.pas
|   |   |-- UScreenEditSub.pas
|   |   |-- UScreenLevel.pas
|   |   |-- UScreenLoading.pas
|   |   |-- UScreenMain.pas
|   |   |-- UScreenName.pas
|   |   |-- UScreenOpen.pas
|   |   |-- UScreenOptions.pas
|   |   |-- UScreenOptionsGame.pas
|   |   |-- UScreenOptionsGraphics.pas
|   |   |-- UScreenOptionsLyrics.pas
|   |   |-- UScreenOptionsNetwork.pas
|   |   |-- UScreenOptionsRecord.pas
|   |   |-- UScreenOptionsSound.pas
|   |   |-- UScreenOptionsThemes.pas
|   |   |-- UScreenScore.pas
|   |   |-- UScreenSing.pas
|   |   |-- UScreenSong.pas
|   |   |-- UScreenTop5.pas
|   |   |-- UScreenWelcome.pas
|   |   |-- USkins.pas
|   |   |-- USongs.pas
|   |   |-- UTags.pas
|   |   |-- UTexture.pas
|   |   |-- UThemes.pas
|   |   `-- UTime.pas
|   |-- Menu
|   |   |-- UDisplay.pas
|   |   |-- UDrawTexture.pas
|   |   |-- UMenu.pas
|   |   |-- UMenuButton.pas
|   |   |-- UMenuInteract.pas
|   |   |-- UMenuSelect.pas
|   |   |-- UMenuSelectSlide.pas
|   |   |-- UMenuStatic.pas
|   |   `-- UMenuText.pas
|   |-- OpenGLMpeg
|   |   `-- USmpeg.pas
|   |-- UltraStar.dpr
|   |-- UltraStar.lpi
|   |-- UltraStar.lpr
|   |-- UltraStar.rc
|   `-- ZLPortIO
|       |-- ddkint.pas
|       `-- zlportio.pas
|-- Fonts
|   |-- Bold
|   |   |-- Bold.dat
|   |   `-- Bold.png
|   |-- Normal
|   |   |-- Normal.dat
|   |   `-- Normal.png
|   |-- Outline 1
|   |   |-- Outline 1.dat
|   |   `-- Outline 1.png
|   `-- Outline 2
|       |-- Outline 2.dat
|       `-- Outline 2.png
|-- Graphics
|   `-- us.ico
|-- Languages
|   |-- Catalan.ini
|   |-- Croatian.ini
|   |-- Czech.ini
|   |-- Dutch.ini
|   |-- English.ini
|   |-- Finnish.ini
|   |-- French.ini
|   |-- Galician.ini
|   |-- German.ini
|   |-- Italian.ini
|   |-- Lithuanian.ini
|   |-- Norwegian.ini
|   |-- Polish.ini
|   |-- Portuguese.ini
|   |-- Slovak.ini
|   |-- Slovenian.ini
|   |-- Spanish.ini
|   |-- Swedish.ini
|   |-- TODO.txt
|   `-- Turkish.ini
`-- listado

12 directories, 93 files
@realbrucest me parece genial, el caso es encontrar algo que nos motive a un port, el supertux lo elegi por que parecia facil a simple vista y podia dar mucho juego por que luego cada uno podriamos cambiar personaje, historia y pantallas para sacar muchos juegos diferentes XD. pero el ultrastar tambien parece buena eleccion. Da el link para descargarlo.
Este es el comando para bajarlo directamente del subversion:

svn co https://ultrastar.svn.sourceforge.net/svnroot/ultrastar ultrastar

y aquí los archivos que me descargó anoche en filefront:

http://files.filefront.com/ultrastar+tr ... einfo.html


Fuera aparte del tema de la entrada de micros, para el resto de funciones de audio posiblemente podamos tirar de las soundlib de hermes. Va a haber que traducir todo el pascal a C++ (cosa que nos obligará a mirar todo el código, que como ya digo, para lo elegante que resulta la aplicación no es ni mucho menos para tanto).
De entre lo que me ha dado lugar a ver, parece que el meollo será adaptar el UDraw.pas que se vale de OpenGL en casi todas las funciones. Aquí habrá que resolver cómo respetar el funcionamiento de éstas para que utilizando GX los resultados sean idénticos.

Tengo el C algo oxidado y la orientación a objetos así-así... pero vamos, que veo este proyecto lo suficientemente interesante como para empezar a volver a hacer memoria ;)
Para el OpenGL mirad aquí: http://wiibrew.org/wiki/Development_Tools/gl2gx

Aunque es una primera alpha, puede ahorrar un montón de trabajo.

Suerte con el proyecto.
Que alguien se anime a ayudar por diosss [buuuaaaa]
PiratePila está baneado por "crearse clones para trollear"
Un ultrastar para Wii sería la caña, yo me podría animar a ayudar.
Redbird escribió:Para el OpenGL mirad aquí: http://wiibrew.org/wiki/Development_Tools/gl2gx.

Creo que fue nuvalo quien estuvo testeando el gl2gx y por lo que contó aún está muy verde.
Creo que va a tocar hacer todo a pelo, lo que implica que el OpenGL se tendrá que convertir a GX de igual forma que todo el pascal tiene que ser reescrito en C con su pertinente orientación a objetos...

Intento ir dividiendo labores aunque sería conveniente que alguien con experiencia en gestión de proyectos de grupo se pronuncie y oriente al resto que está dispuesto a meterse en faena.

Tareas:
- Reescribir el código a C:
... Independientemente podemos dedicarnos a convertir todos los archivos del source. Dependiendo de la complejidad, el tiempo libre y los conocimientos de cada cual vamos eligiendo archivos y notificamos aquí cuando estén listos.
- Las rutinas gráficas y de audio que empleen librerías externas han de ser reescritas para que utilicen librerías a nuestro alcance: sndlib, GX... Quien se vaya encargar ha de conocer ambas herramientas: originales y "nuevas".
- Reconocer la entrada de señal de audio a través del puerto USB. (Es la parte más jodida porque no veo que esté documentada a día de hoy).

No es precisamente coser y cantar, y menos para meros aficionados, pero parece un reto interesante y tampoco es que tengamos prisa. Simplemente es cuestión de ir echándole webos, porque por una parte considero que este juego es de obligado port a wii, que más tarde o más temprano ha de caer. Y si nos ponemos manos a la obra, cuanto menos, algo habremos aprendido.

Por mi parte y de mientras seguimos intentando concretar, sigo convirtiendo el pascal en C en los archivos menos enrevesados habiendo partido del UMain.pas

Y cuando tengamos algo que nos compile para wii, toque a los autores del original para no ir por libre de espaldas a ellos.

(Esperemos que el tema de los micrófonos no fastidie demasiado...)

Muchas gracias a todos los interesados y, que se anime alguien más: un jefe de proyecto que se pase por el hilo de vez en cuando para orientarnos ya!! xD
Yo solo se programar en pascal y lo tengo bastante oxidado, asi que no puedo ayudar, pero si realmente se están planteando hacer un port de ultrastar (con micros USB supongo) deberían abrir un nuevo hilo y así más gente podría echar una mano o ayudar.
Yo lo veo un proyecto muy interesante, igual que portar un stepmania (ya se está haciendo) y cositas asi. Por cierto, no habría pensado nunca que el ultrastar era un juego "sencillo", pero ya dije que no entiendo de estas cosas.
Un saludo y mucha suerte si se embarcan en este proyecto.
@realbrucest abre tu mismo un nuevo hilo, pones el listado de de archivos que tienes portados o que estas liado con ellos y cada uno que coga el que crea que puede portar. Los ya portados se van subiendo y asi podemos ir probando.

Aun que lo suyo seria seguir un orden para que podamos ir compilando e ir viendo cositas.

Un Saludo.

P.D.: Yo de C controlo algo , pascal medio lo entiendo y estoy metiendome con GX de wii con el documento de hermes.
disculpen pero tengo esta pregunta desde hace mucho tengo un juego que es para linux y ai barias consolas que lo corren como el xbox y el psp estoy ablando del MUGEN asi sera mas posible que ese juego corra en wii y que es nesesario para empesar gracias
22 respuestas