Wii...

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

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

SplinterGU

OS_ID no es una constante de compilacion, es una variable de runtime... creo que eso responde todo lo que planteas...

igual no tiene sentido mucho lo que dices... muchos juegos se pueden portar de una plataforma a otra con solo poner el runtime... todo depende del juego, pero se puede...

la idea de bennu/fenix es que el dcb sea portable...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

panreyes

Quote from: SplinterGU on April 19, 2010, 12:20:28 AM
la idea de bennu/fenix es que el dcb sea portable...
Cierto, pero no es el objetivo principal. A mí, mientras se pueda conseguir un dcb compatible compilando el mismo código que en otras plataformas, me contento :)

Y de todas formas, por ejemplo en la Wii, siempre está el tema de la modificación de los recursos en un port. En este caso todos los wavs y ogg se tienen que pasar a 32khz

SplinterGU

"dcb compatible" a eso me refiero... no lo vas a poder conseguir...

nada, como quieran... solo aviso...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

BoMbErLiNk

Habies probado sound_freq=32000; en lugar de cambiar los sonidos en si a 32khz ?

Quizas haya suerte y cuele  :D, desde luego si reproduces un ogg como wav va a hacer la reconversión correctamente, pero también va a ocupar lo que un wav sin compresión en memoria..

josebita

#514
Vamos por partes:

Quote from: BoMbErLiNk on April 19, 2010, 12:46:27 PM
Habies probado sound_freq=32000; en lugar de cambiar los sonidos en si a 32khz ?

Quizas haya suerte y cuele  :D, desde luego si reproduces un ogg como wav va a hacer la reconversión correctamente, pero también va a ocupar lo que un wav sin compresión en memoria..
Eso no va a funcionar. Ahora mismo, sound_freq ya es 32000 en la Wii. Hablé con el autor de la SDL para Wii y me dijo que lo de los 32KHz era una limitación del port; para que funcione SDL_Mixer debe hacer resampling de frecuencias y no lo hace aún.

Quote from: SplinterGU on April 18, 2010, 09:52:47 PM
ya veo porque los dcb generados en pc no funcionan en wii... esto es porque los id de los opcodes son dinamicos, se generan en tiempo de compilacion, y en el dcb se guarda la referencia a que libreria y que simbolo pertenece a que id... por ende al eliminar todo esto en la version de la wii, ya no hay compatibilidad entre los dcb...

yo creo que habria que cambiar el sistema actual de wii y hacerlo mas compatible con la filosofia bennu... para que el dcb sea compatible...
No sé muy bien cómo hacer eso en la Wii. Aunque pudiera generar los opcodes dinámicamente en la Wii, ¿eso no implicaría que el usuario debería cargar los módulos en un orden predefinido?.

Quote from: SplinterGU on April 18, 2010, 10:09:29 PM
[...]
lo mismo veo que se han cambiado todos los GLO*/LOC* en los modulos quitando 1 parametro, eso tambien es otro problema, porque implica un monton de cambios en los fuentes cuando solo se podia corregir tocando el dlvaracc.h, incluso usando esto para corregir el tema anterior...
[...]
Tienes toda la razón del mundo. Eso estaba en mi lista de cosas pendientes y ahora mismo lo acabo de arreglar.
El código ha compilado, y por el par de juegos que he probado, funciona como hasta ahora.

Quote from: SplinterGU on April 18, 2010, 10:09:29 PM
despues no he visto aun cambios de logica o codigo, mas alla de esto y de la parte del arrange.h (que le faltan parentesis en la expresion #if para wii), y esto es bueno, porque indica que todo el codigo actual de bennu es portable.
No hay más cambios que los que hayas podido ver y un poco de código específico para la Wii. En realidad lo que me ha llevado tanto tiempo no es hacer cambios, sino averiguar cómo quería hacer funcionar las cosas.
Algunas decisiones que tomé en su momento -como ésta- eran más por desconocimiento que por otra cosa.

Y lo de los paréntesis... No veo dónde faltan. Si te refieres al código ensamblador que metí, yo diría que está bien... El resto del fichero debería ser casi igual que el oficial.

Quote from: SplinterGU on April 18, 2010, 10:09:29 PM
el trabajo que hiciste (josebita) esta muy bien, pero creo que hay que aprovechar la experiencia y reescribir el port...
Sigo insistiendo en que no es necesario rehacer el port. Los cambios de mi código tampoco son tantos como para no poder deshacerlos con una tarde dedicada a ello siempre y cuando sepa qué quiero hacer (me ha llevado cosa de 20 minutos deshacer el cambio a los LOC*/GLO*/RESOLXY para que el código vuelva a ser como el oficial).
Ya digo que la mayoría de esos cambios incompatibles vienen de decisiones que tomé cuando tenía muy poco conocimiento de cómo funciona Bennu por dentro y no tanto de limitaciones de la plataforma o de hacer un Bennu estático. Más aún cuando ya ves que la absoluta mayoría del código es código de Bennu y lo poco que modifico yo son casi todo declaraciones de funciones.

Pero es que además no tengo ningún problema en que tomes tú (splinter) las riendas del port y lo conviertas en oficial en cuanto consigas/si acaso consigues una Wii... Yo ya he aprendido mucho y seguro que tú serías capaz de hacer las cosas mucho mejor.
Y aún en caso de que no la consiguieras, seguro que podemos hacer converger los códigos y lo único que yo pusiera más allá del código Bennu oficial fueran un par de extensiones y algo de código nativo Wii.

Bueno, he escrito mucho, a ver si me he explicado :)

SplinterGU

bien, primero quiero decirte que no esta mal lo que estas haciendo y tampoco quiero tomar las riendas del port...

ahora vamos a las respuestas...

1) la idea seria, que cuando se hace un import en el codigo, el port tome esa info y active esas funciones, si bien todas estan incluidas en el binario, no todas van a ser activadas con la compilacion... entonces, como dije, cada import activa un grupo de funciones... posiblemente para el port, necesites incluir algun dato simbolico que sirva de referencia al modulo que pertenece, quizas puedas aprovechar las macros GLO/LOC para eso... en ese momento (compilacion) se generan los ids dinamicamente... esta informacion se guarda en el dcb.
luego, el bgdi levanta la info y asigna a cada id de opcode la funcion que corresponde.
basicamente ese es el cambio.

2) perfecto que hayas corregido lo del GLO/LOC, eso ahora permitira que tengas actualizada tu version con la version oficial (salvo pequeños cambios propios del port)

con estas cosas, creo que estamos mas cerca de converger todo y tener un bennu que se pueda compilar tanto dinamica como estaticamente.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita

Quote from: SplinterGU on April 19, 2010, 06:41:29 PM
bien, primero quiero decirte que no esta mal lo que estas haciendo y tampoco quiero tomar las riendas del port...
[...]
No hay problema; habeis comentado muchas cosas y he querido responder a todas. Por eso me ha quedado un post tan largo :)

En cuanto a tu primer punto, realmente desconozco como funciona esa parte de Bennu, pero la miraré con más cuidado cuando tenga algo de tiempo.

En cuanto a la segunda... aún quiero hacer más cambios para dejar el código más parecido al oficial (declarar funciones/ctes/locales+variables de forma similar a como se hace con las librerías). Pero eso no me debería llevar demasido tiempo.
Supongo que eso me permitirá dejar los prototipos de las funciones como vienen de Bennu (les he tenido que quitar el static porque si no, el enlazador no las encuentra). Que también es acercar el código a la versión oficial.

Bueno, para la gente a la que no le interesen estas cosas y sólo quiera sacar a sus juegos para la Wii: puede que relativamente pronto anuncie una cosa muy chula que tengo en mente y sólo quizás sea posible :)

La momia que fuma

Yo la verdad es que me pierdo con vuestras discusiones de las entretelas de Bennu :P, pero me interesa "muy mucho" el port....el caso es que no consigo hacer nada, ni siquiera me van los ports del garnatron o el pixdash, me salta un error.

Es porque no tengo la wii conectada a internet? Al final no había una version "offline"? Necesito meter en la SD una carpeta con el runtime, de forma similar a como se hace en Wiz? Perdonad si pregunto cosas que ya se contestaron, pero es que me lío xD

Quotepuede que relativamente pronto anuncie una cosa muy chula que tengo en mente y sólo quizás sea posible :)

Yo ya estoy oficialmente hypeado xD

josebita

En teoría, deberías poder bajarte el garnatron versión Wii de la web de proyectos de Bennu (aquí) y descomprimirlo en la raíz de la tarjeta SD.
Con eso, el Homebrew Channel (lo tienes instalado, ¿verdad?) debería reconocerte el juego y arrancarlo. Yo aún no lo he probado, pero no deberías necesitar nada más.

La momia que fuma

Si, es justo lo que hice, pero tanto el garnatron como el pixdash en sus correspondientes versiones preparadas para Wii me fallan...:(

Se puede compilar en wii sin tenerla conectada? (No tengo wifi y no la puedo conectar)

josebita

Y ya no hace falta conectar la Wii al wifi para compilar ni para ejecutar nada.

josebita

No he encontrado la versión del pixdash para wii, pero el garnatron me ha ido sin mayor problema... ¿Puedes ser un poco más específico con el problema? ¿Por qué no te va?, ¿qué te dice la consola?.

La momia que fuma

Vaya, pensaba que el pixdash de wii estaba subida en la web de proyectos, pero no está, ahora tampoco lo encuentro yo xD, ya nos iluminará Pixel...

En todo caso me salia el mismo fallo que con el Garnatron:


josebita

¡Flipante!

¿Tienes algún modelo de Wii raro? ¿Tienes enchufado algún dispositivo a la Wii?.
¿La Wii la tienes en modo panorámico o en modo 4:3?.
Comenta todo lo que se te ocurra de cómo la tienes puesta. ¿Qué versión del Homebrew channel usas? ¿Usas chip o tienes la Wii hackeada por software?. ¿IOS modificada?...


En otro orden de cosas, he modificado los scripts de transcodificación de la música (tanto el BAT como el SH) para que no haga falta lanzarlos desde la consola. Ahora se pueden lanzar directamente con un doble click. No he probado el BAT, así que agradecería que alguien me confirmara que funciona bien :)
¡Ah! Y he añadido una página al wiki explicando cómo integrar la aplicación con el Homebrew Channel (icono descripción...):
http://code.google.com/p/bennugd-wii/wiki/CreatingHomebrewChannelEntry

La momia que fuma

Wii de primerisima hornada....esta en panorámico....y le tengo conectado un disco duro para cargar <ejem> copías de seguridad...(No se me ocurrio probar a quitarlo a ver si por casualidad era de eso). También le tengo conectada una VGA Box para poder conectarla a mi tele por VGA, pero vamos, solo es para alimentación del chisme, no creo que tenga que ver en principio...no lleva chip, solo el hombrew channel.

Ahora mismo tengo que dejar el ordenador a toda prisa, mañana te digo versión de HB Channel (De firmware estoy con la 3.algo, creo recordar) y esas cosas...

La versión del HB Channel sea probablemente viejuna, ahora que lo pienso, igual viene de ahi, a saber...