Wii...

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

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Mr Matsusaka

No se si se ha hablado de esto pero, me peta cuando termina de reproducir un play_song, sin importar si le metes repeticiones o no.

josebita

Quote from: Mr Matsusaka on April 27, 2010, 09:23:25 PM
No se si se ha hablado de esto pero, me peta cuando termina de reproducir un play_song, sin importar si le metes repeticiones o no.
Ponme código que pueda compilar y donde ocurra el error, por favor, o de lo contrario no podré ayudarte; a mí me funciona.

Splinter: te adjunto los ficheros que me mandó mi hermano con el compilador parcheado para sacar código con el endianess nativo en cada máquina. Échales un ojo a ver si te ayudan, porque ya digo que funcionan (aunque el endianess del dcb depende de la máquina donde se compile, claro).

panreyes

Mr Matsusaka (ex-neolook xD), te falla la codificación del ogg. Si le pones un bitrate de 96 y a 32khz seguro que funciona. Y esto no hablo del código fuente, sino del formato del ogg.

Si buscas por el tema hay un buen script convertidor de oggs y wavs (que yo ya he incorporado en mis exportadores, gracias josebita!) que te lo hace automático.

Mr Matsusaka

Quote from: PiXeL on April 27, 2010, 10:20:33 PM
Mr Matsusaka (ex-neolook xD), te falla la codificación del ogg. Si le pones un bitrate de 96 y a 32khz seguro que funciona. Y esto no hablo del código fuente, sino del formato del ogg.

Si buscas por el tema hay un buen script convertidor de oggs y wavs (que yo ya he incorporado en mis exportadores, gracias josebita!) que te lo hace automático.

Ahh, lo probe, pero bajando el bitrate a 64. Es que a 96 ocupa un cojon! ;D
Ya con los wav el proyecto ocupa el doble ahora... xd

josebita

En cuanto al script: No sólo vale para el port, me parece que es una herramienta muy útil (y fíjate si es una chorrada de 20 líneas que escribí por vagancia) para la gente que no sabe cómo pasar las músicas de sus juegos de mp3/wma a ogg.

SplinterGU

Quote from: josebita on April 27, 2010, 10:01:20 PM
Quote from: Mr Matsusaka on April 27, 2010, 09:23:25 PM
No se si se ha hablado de esto pero, me peta cuando termina de reproducir un play_song, sin importar si le metes repeticiones o no.
Ponme código que pueda compilar y donde ocurra el error, por favor, o de lo contrario no podré ayudarte; a mí me funciona.

Splinter: te adjunto los ficheros que me mandó mi hermano con el compilador parcheado para sacar código con el endianess nativo en cada máquina. Échales un ojo a ver si te ayudan, porque ya digo que funcionan (aunque el endianess del dcb depende de la máquina donde se compile, claro).

bueno, el dcb generado deberia ser el mismo... si cambia, entonces esta mal o incompleto el cambio...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita

Con los ficheros que te he pasado, el dcb generado no es el mismo que sin ellos porque en el fichero c_code.c cuando se guarda la info de:
res.type.varspace->vars[nvar].type    (línea 787)
res.type                                         (línea 797)
right.type.varspace->vars[nvar].type  (línea 2873)
se guardan con la función dcb_settype_endian a la que se le indica que no debe hacer ARRANGE_DWORD de esas variables.

Después el fichero dcbr.c en la línea 296 lee las variables globales y luego las locales (como decías en un mensaje anterior) sin tener en cuenta endianess. Por tanto, en runtime asume que esa parte de memoria ha de estar en endianess nativo de la CPU.
Yo diría que con el código tal y como está ahora en Bennu, al hacer el dcb_settype, se hace un swap del contenido de las globales que luego no se deshace al leer el dcb, dando lugar al error.

SplinterGU

#592
ya veo, en el c_code.c no deberia hacer arrange de nada... solo hay que hacer arrange cuando se almacena el dcb... por ende puede haber alguno demas...

por otro lado, no es tan facil esto, veo que hay muchos mas cambios que hacer, como por ejemplo... todos los valores constantes o de PUSH en el dcb... como por ejemplo...

                    codeblock_add( code, MN_PUSH, res.type.varspace->count );

hay que hacer ahi tambien el correspondiente ARRANGE... no se si se esta haciendo, creo que no...

o incluso los bytecodes...

te puedo pedir un favor? podrias pasarme un dcb y su prg compilados en wii?

si, esto es un lindo lio... le falta bastante trabajo para que quede realmente portable sin importar el byteorder...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita

Quote from: SplinterGU on April 27, 2010, 11:17:05 PM
ya veo, en el c_code.c no deberia hacer arrange de nada... solo hay que hacer arrange cuando se almacena el dcb... por ende puede haber alguno demas...
No acabo de entender.
Con el código parcheado, el arrange no se hace en el c_code.c sino que en las mismas llamadas que hace Bennu a dcb_settype se le especifica que esas variables en particular las guarde en el dcb en formato nativo de la máquina, no necesariamente en little-endian.
Es la función dcb_settype_endian en dcbw.c la que sigue haciendo el almacenamiento y arrange (si se le pide) del dcb.

SplinterGU

no vi el parche, vi el codigo original...

pero igual dista mucho de ser portable todavia, lee mi edicion del mensaje...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita

Quote from: SplinterGU on April 27, 2010, 11:17:05 PM
[...]
te puedo pedir un favor? podrias pasarme un dcb y su prg compilados en wii?
[...]
Hoy ya no, pero mañana te lo mando sin falta. ¿Algún código en especial?. Pensaba en mandarte el ejemplo de save que fallaba. ¿Te viene bien?.

PD: Si alguien puede compilarlo y mandárselo con el bennugd-a5 (no con el último que subí sino con el anterior) me haría un favor.

SplinterGU

si, viene bien... gracias.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

BoMbErLiNk

#597
Yo también recibo code dump cuando acaba de reproducirse un ogg, usando el BAT para convertir a 32khz 96kbps.

La cosa es que nunca me ha ido bien, en formato 44khz no daba code dump pero al terminar la canción habia un is_playing_song esperando para lanzar otro play_song, pero nunca se daba el caso.

LOAD y SAVE ya me van bien, me lee bien strings, chars, etc y no se cuelga al guardar  :)

josebita

#598
Me alegro por lo del load y save, aunque ya digo que la solución es sólo parcial.

Y por favor, enviadme un ejemplo de código que se rompa y que yo pueda probar (es decir, lo más pequeño posible pero que compile; con los ogg y todo): Si es algo que yo pueda arreglar, beneficiará a todos. Ya os digo que si no puedo reproducir el bug me va a costar arreglarlo.

PD: La próxima alpha traerá soporte para obtener la resolución nativa de la Wii (para poner la resolución a "algo"x480, con el "algo" correcto si el usuario ha puesto su Wii en modo panorámico) y los módulos sólo funcionarán si se hace import de ellos, más al estilo de Bennu. Esto último quizás no esté acabado cuando lo saque, pero espero que sea cierto para unos buenos cuantos módulos.

BoMbErLiNk

Ok, cuando acabe de hacer unas cosillas te monto un test por cada bug conocido que hay actualmente, para que puedas reproducirlos y te pongo una lista actualizada de bugs que quedan.

Ya he añadido los movimientos del mando  :D
http://www.bombergames.net/sorr/wii.wmv