Wii...

Started by SplinterGU, December 20, 2008, 11:58:07 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

josebita

#180
Venga, para echarlo a andar:

Necesitais:

  • Los binarios y un ejemplo. Bajároslos de aquí.
  • Una Wii conectada al wifi de casa.
  • El homebrew channel instalado en la Wii. Info aquí, por si no lo teneis.
  • EL programa wiiload. Lo podeis encontrar aquí. Le dais a download y os bajais lo que dice hackmii installer. Trae el programa que instala el homebrew channel y además trae el último wiiload.

Pasos para que funcione:

  • Copiad el archivo de ejemplo (02_mod_say.prg) a la tarjeta SD. En general, dejarlo en la raíz de la tarjeta funciona bien.
  • Debeis compilar ese código en la propia Wii, porque si lo compilarais en el ordenador y luego copiarais el dcb, probablemente no funcionaría. Para ello, desde el ordenador y con el homebrew channel abierto en la wii haceis (en el ordenador, desde el directorio donde esté el fichero bgdc.elf): wiiload bgdc.elf 02_mod_say.prg.
    Si todo va bien, deberíais ver en la Wii el mismo mensaje que aparecería en el ordenador al compilar código.
  • Ahora os vais (en el ordenador) al directorio donde esté el bgdi.elf y haceis: wiiload bgdi.elf 02_mod_say.dcb. Si todo va bien, debería funcionar sin más.

Eso debería ser todo.
De momento al arrancar el bgdc y el bgdi, trabajan por defecto en el directorio raíz de la tarjeta SD, así que si meteis algo en alguna carpeta, debeis referir los directorios a él.

Pues ya está, contadme qué tal :)

Windgate

Quién tuviese una Wii... Gracias Josebita, ¿No estaría bien ese sencillo tutorial en el wiki? :P
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

josebita

Vamos a ver si puedo hacer algo más que "Hello, World!" primero :)

FreeYourMind

Yo tengo la Wii chipeada, pero nunca he ejecutado nada homebrew y la verdad nunca me he leido muy bien los pasos para hacerlo  ::).

SplinterGU

joseba... entonces esta version de wii es statica o conseguiste hacerla modular?
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita

Es estática. No se puede hacer modular. Simplemente no funciona en la wii.

SplinterGU

o sea, que tenemos una version fenix de bennu... :P

bien, bueno, veo que te vas a cargar un trabajo pesado... y con muchos cambios... como pensas mantener las actualizaciones? o ideaste un metodo sin grandes cambios?
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita

#187
No hay grandes cambios. Y los que hay los he dividido en dos: un flag de compilación que activa los cambios para hacer el binario estático (__STATIC__) y otro que activa las características propias de la WII (TARGET_WII, al estilo del resto de plataformas).

El flag "__STATIC_" inutiliza las partes del código que se encargan de cargar de librerías mediante compilación condicional, aunque no estoy seguro de no haber inutilizado código de más... Pero vamos, que teniendo los Makefiles del Bennu oficial (esos sí que los he hecho nuevos) debería poderse compilar la versión normal sin tener que tocar el código.

El flag "TARGET_WII" de momento lo que hace es inicializar la librería de soporte para fat (que hace falta para poder usar el sistema de archivos de la tarjeta SD) e inicializar la consola, porque si no al hacer un printf no aparece nada. Pero obviamente en el futuro hará más cosas.

Ahora mismo compilo la bgdrtm.a estática con el mod_say como si fuera un objeto más y compilo el bgdi contra él. La idea es compilar cada librería/módulo por separado estáticamente y luego enlazar donde haga falta.

El error que venía teniendo desde hace tiempo era porque no estaba inicializando la tabla de procesos del sistema.

Por supuesto, se me han ocurrido muchos problemas que ésto puede plantear, pero ya iré viendo cómo solucionarlos uno por uno.

Y es mucho trabajo, sí, pero la idea es irlo haciendo con calma.

PD: Ni que decir tiene que el bgdc se compila casi solo...

Drumpi

#188
Entonces es Bennu compilado para la máquina, nada de bennu sobre linux ni nada, genial.
Ánimo con eso, sin prisas, esto podría ser un gran paso (y si se añade el módulo del wiimando (babea))
Lo que no me convence es el sistema del wiiload ¿no hay en wii un formato de scripts? Si no, se me ocurre que se use el mismo sistema de carga automática de Fenix: renombrar el bgdc con el nombre del prg, y que al ejecutarlo busque ese prg para compilarlo, y lo mismo con el bgdi y los dcb.

PD: voy a ir comprando palomitas, el combate josebita vs pixel promete ser épico :D :D :D
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

SplinterGU

el problema sera la distribucion binaria... ya que no habra modulos... estos se cargaran todos de cualquier forma en memoria... y en las consolas la memoria es algo muy critico...

a menos que antes de la ejecucion se incluya un mini linkeo en base a parametros preestablecidos y el ejecutable se linkee automaticamente antes de correr... quizas compilando directo a memoria o a un ramdisk... no se si eso es una locura en wii o es posible...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Drumpi

Bueno, tampoco creo que en la Wii sea tan crítico ¿de cuantos MB estamos hablando? porque me da que 2MB del ejecutable no es un precio demasiado alto a pagar por ejecutar en la Wii, peor es tener sólo 8MB en la GP2X o los de GP32 (que no se cuantos son, y en los que tampoco hay potencia para suplir la carencia de memoria).
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

josebita

#191
@Splinter: Realmente la idea es bastante más simple. Voy a ir metiendo módulos dentro y veré cuánta memoria queda.
Pero será interesante ver qué podemos hacer con esos 88MB de RAM :)

@Drumpi: Para nada el sistema actual es el definitivo. Mejorará y no es dificil hacerlo, tenía pensado hacerlo con un nombre por defecto, sí. Pero de momento me voy a ir ocupando de otras cosas que tienen más urgencia.

DCelso

Josebita, yo intenté eso mismo que estás haciendo con bennu para wii, pero vi que se necesitaría mucho tiempo para tener la versión completa de bennu puesto que había muchas dependencias que me daban error, entre ellas la dcryt , la sdl y sdl image. Así que ánimo, ardo en deseos de poder probar un juego bennu en wii, yo si que puedo probar esta versión que has hecho pero para ver un simple hola pues la verdad es que no me entran muchas ganas :D, pero lo haré para ver si hay algún problema y comentártelo.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

josebita

SDL y compañía ya están portadas. La libdes ya la he portado y no da problemas de compilación (veremos qué tal funciona).
Las librerías que Bennu necesita están todas.

DCelso

Vaya fiasco, con el método wiiload va, he creado los dcb desde la wii, y los he ejecutado bien. Pero cuando intenté hacerlos ejecutar desde homebrechannel como si de un programa más se tratase no anda :(.
Yo puse dentro de apps/01_core/boot.dcb y boot.dol y no funciona.
Adjunto dcbs y estructura homebrewc
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/