Bennu Game Development

Foros en Español => Plataformas => Wii (homebrew) => Topic started by: La momia que fuma on May 04, 2011, 08:17:36 PM

Title: Diferente comportamiento de get_id en Wii, help!
Post by: La momia que fuma on May 04, 2011, 08:17:36 PM
En el juego que estoy haciendo para Wii tengo un ataque que son 3 bombas simultaneas que persiguen al enemigo, cada una a uno distinto en el caso de que haya mas de uno ese momento.

Para hacerlo, basicamente le paso un parametro al proceso bomba con un nº, bomba(1), bomba(2) y bomba(3)

En el momento en que la bomba elige enemigo hago:

for(num; num>0; num--)
   i=get_id(type enem);
end


Ya que se supone que en cada llamada a get_id sin que haya un frame de por medio te devuelve un proceso distinto del tipo indicado, de modo que bomba(1) hara una llamada a get_id y bomba(3) llamara 3 veces y se quedara con el 3er enemigo de la lista...

Bueno, pues en Pc funciona perfecto, 3 enemigos en pantalla, suelto las 3 bombas y se van cada una a por uno con una coordinacion y eficiencia dignas del Equipo A...

Pero en Wii no! Mismo código, pero se van todas a por el mismo si o si  :-[

He probado en Wii sin el for, haciendo una llamada simple a ver si sonaba la flauta, pero nada...Ideas?  :-\
Title: Re: Diferente comportamiento de get_id en Wii, help!
Post by: SplinterGU on May 04, 2011, 08:22:31 PM
no me parece que lo que te pasa este relacionado con get_id... el codigo es generico, dudo que haya cambios en la version wii.
Title: Re: Diferente comportamiento de get_id en Wii, help!
Post by: La momia que fuma on May 04, 2011, 10:54:53 PM
Pues por algun motivo el comportamiento es diferente usando el mismo código en Pc y Wii :-\
Title: Re: Diferente comportamiento de get_id en Wii, help!
Post by: FreeYourMind on May 04, 2011, 11:07:57 PM
si fuera un rand lo entenderia, al menos que internamente esa funcion utilice movidas relacionadas con el procesador..
Title: Re: Diferente comportamiento de get_id en Wii, help!
Post by: Drumpi on May 05, 2011, 12:32:11 PM
Yo entendería que sucediese por distinto orden de ejecución de procesos, pero dices que usas un bucle, así que no debería ser por eso. No sé si el cambio de proceso que llama a get_id reinicia su cuenta o no, según cuentas en PC sí es así, así que ni idea, lo siento.
Title: Re: Diferente comportamiento de get_id en Wii, help!
Post by: SplinterGU on May 05, 2011, 02:01:39 PM
a menos que en la version monolitica no implemente los llamados a los callback de reset adecuadamente, no los llame o los llame mas de lo debido.
Title: Re: Diferente comportamiento de get_id en Wii, help!
Post by: josebita on May 06, 2011, 02:38:02 PM
Pásame el código, momia.
Title: Re: Diferente comportamiento de get_id en Wii, help!
Post by: La momia que fuma on May 09, 2011, 10:21:02 AM
Para quien le pueda interesar, Josebita me lo ha resuelto, era porque la variable num era un byte, que dan problemas en wii, cambiandolo a int ya funciona bien  :)
Title: Re: Diferente comportamiento de get_id en Wii, help!
Post by: josebita on May 09, 2011, 11:06:27 AM
Sí, cualquier tipo de dato de tamaño inferior 4 (el tamaño del int) da problemas. El workaround es cambiar los tipos de dato a int.
Eso y el hecho de que los dcbs deben compilarse en la Wii son los dos únicos bugs de endianess que me quedan por resolver y que no tengo claro por dónde coger... A ver si cuando acabe exámenes me puedo poner con ello, pero no sé si seré capaz de arreglarlos.
Title: Re: Diferente comportamiento de get_id en Wii, help!
Post by: FreeYourMind on May 09, 2011, 12:42:32 PM
Curioso, a ver si podemos recolectar todas las diferencias en un txt que acompañe la distro de Wii.
Title: Re: Diferente comportamiento de get_id en Wii, help!
Post by: josebita on May 09, 2011, 01:18:21 PM
Todo esto está comentado en varios sitios, pero es verdad que sería buena idea ponerlo en un fichero que acompañara la release. Me lo apunto para la próxima. ¡Gracias!
Title: Re: Diferente comportamiento de get_id en Wii, help!
Post by: SplinterGU on May 09, 2011, 01:32:22 PM
joseba no recuerdo si probaste el ejemplo de los endian para ver que output daba.
Title: Re: Diferente comportamiento de get_id en Wii, help!
Post by: josebita on May 09, 2011, 02:08:49 PM
Creo que recuerdo haberlo probado pero no recuerdo qué paso... Voy a estar bastante ocupado estos días pero podríamos probar algo que se te ocurra en un momento.
Title: Re: Diferente comportamiento de get_id en Wii, help!
Post by: Drumpi on May 09, 2011, 10:16:11 PM
¿Entonces eso puede estar afectándome también a mi? no recuerdo si he llegado a usar datos tipo byte o word (seguramente dentro de alguna estructura, pero siempre intentando que haya alineamiento a 4). Tendré que mirarlo, pero si no consigo resolverlo en las próximas 24 horas, no podré presentar el juego al concurso, es imposible que en menos de 20 días pueda hacer algo medianamente decente tal como está el proyecto ahora.
Title: Re: Diferente comportamiento de get_id en Wii, help!
Post by: FreeYourMind on May 10, 2011, 12:13:16 AM
Por cierto hablando de diferencias entre ports, pues tambien me estoy llevando una sorpresa, en este caso estoy teniendo un 'Segment Fault' en un determinado punto de mi nuevo juego (en mis ultimos cambios) y sólo en la Caanoo, en PC y WIZ no esta ocurriendo! A ver si mañana pongo un log para saber exactamente en que punto ocurre...
Title: Re: Diferente comportamiento de get_id en Wii, help!
Post by: SplinterGU on May 10, 2011, 01:18:38 AM

import "mod_say";

private
    int lala = 12345678h;
    byte * p;
    int * p1;
begin
    p = &lala;

    p1 = p[0]; say(p1);
    p1 = p[1]; say(p1);
    p1 = p[2]; say(p1);
    p1 = p[3]; say(p1);

end


alguien puede probar esto en wii? no se si se puede capturar la salida del say, pero como sea, necesito saber que salida da esto.
Title: Re: Diferente comportamiento de get_id en Wii, help!
Post by: josebita on May 10, 2011, 07:15:05 AM
Yo no creo que pueda hoy, a ver si mañana. Si alguien quiere probarlo antes, la salida del say debería ir a un fichero de texto en el mismo directorio, aunque no es seguro... Gracias por echarle un ojo.
Title: Re: Diferente comportamiento de get_id en Wii, help!
Post by: Drumpi on May 10, 2011, 06:10:27 PM
A mi me sale 34, 56 y 78, con una ristra de ceros delante (5 o 6 ceros, no me da tiempo a contarlos), en plan consola de comandos.
Sí, sólo tres números, he buscado a ver si había números ocultos en la parte superior de la pantalla, pero no he visto nada más.

Por otro lado, mi pseudo-juego no tiene ningún problema con los datos byte (sólo los usaba en un array), así que el problema viene por otro lado :(
Title: Re: Diferente comportamiento de get_id en Wii, help!
Post by: SplinterGU on May 10, 2011, 06:38:16 PM
y el 12?
Title: Re: Diferente comportamiento de get_id en Wii, help!
Post by: Drumpi on May 11, 2011, 06:35:00 PM
Lo dicho, ni idea, a mi no me sale, no se si a alguien más le ha pasado. Es como si el primer say no hiciese la salida. Mañana si quieres hago la prueba añadiendo un say extra inicial, a ver si así se ve el primer dato.
Al menos sabemos que el resto se ve bien.