Juego fIREWHIP corriendo en bennu

Started by l1nk3rn3l, September 09, 2010, 03:03:11 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

josebita

He tomado la versión para el concurso de gp32spain que, según tengo entendido era en la que anduviste trabajando tú. Me da la impresión de que va bastante bien, aunque yo le añadiría un salvado automático.

SplinterGU

fijate en el hilo que posteaste, en gp32spain, ahi subi una version corregida, a ver si te falta algun fix.

el unico que quedaba era el bug ese de que no aparecia el jugador una vez que moria, se podia meter un parche simple para corregirlo (un return o un reseteo de variables), no se si eso hiciste vos, pero ese parche no era lo mejor, porque pueden quedar casos donde se necesite hacer la logica o que algunos objetos luego queden desubicados, o queden vivos fuera del mapa, creo que algo de eso pasaba.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita

#17
Vale, muchas gracias.
Voy a estudiar ahora, pero cuando saque un rato me leeré el thread entero de gp32spain (ayer me dió el ansia a altas horas de la madrugada...) y veré qué corregiste y qué tengo que cambiar.

De momento he hecho un primer empaquetado de prueba del juego en mi PPA, al que luego iré actualizando el código para corregir bugs y quizás meter un pequeño soporte multilenguaje y salvado de partidas entre niveles.

[Edit] Lo que he hecho es lo que comenté: cambiar el orden de las líneas para poner el despertar=0; antes de la llamada al prota_tocado(), que es el que se encarga de hacer despertar=1; después. Me pareció lógico y me imagino que se arregló por temas de prioridades.

SplinterGU

Quote from: josebita on December 28, 2010, 06:11:09 PM
Vale, muchas gracias.
Voy a estudiar ahora, pero cuando saque un rato me leeré el thread entero de gp32spain (ayer me dió el ansia a altas horas de la madrugada...) y veré qué corregiste y qué tengo que cambiar.

De momento he hecho un primer empaquetado de prueba del juego en mi PPA, al que luego iré actualizando el código para corregir bugs y quizás meter un pequeño soporte multilenguaje y salvado de partidas entre niveles.

[Edit] Lo que he hecho es lo que comenté: cambiar el orden de las líneas para poner el despertar=0; antes de la llamada al prota_tocado(), que es el que se encarga de hacer despertar=1; después. Me pareció lógico y me imagino que se arregló por temas de prioridades.

si solo tocaste eso, te faltan unos cuantos cambios...

ahora si, esa era la solucion que te comente, pero no es prolija, porque reubica cosas, y no me acuerdo ahora que otra cosa hace... todo deberia funcionar bien, si los procesos se dispararan con las prioridades correctas.

yo tambien lo logre pasar de ese punto con ese fix que mencionas, porque es muy evidente, pero al analizar el codigo, vi algunos problemas que podrian pasar, por ende no deje el fix, porque no me parecio correcto.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita

#19
Splinter, te refieres a este post, ¿verdad?.
Yo me bajé el código de la siguiente web:
http://caanoo.net/juegos/firewhip-ya-disponible-en-caanoo/

[Edito] La versión que he usado yo usa un montón de cosas que tiene pinta que has hecho tú: usar jkeys.lib, p.ej.

SplinterGU

Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita

#21
Ya veo, muchas gracias.

[Edit] Sí, el código que me has pasado y el que estoy usadno son el mismo, salvo por los cambios que le hice ayer. Intentaré arreglar el bug de una forma decente.
¿Alguien más lo ha probado?. Es que me da la impresión de que hay otra cosa mal: cuando el personaje está cayendo de un salto, el scroll va "a tirones". Yo diría que no ocurre cuando está subiendo durante el salto ni durante el desplazamiento lateral normal...

josebita

Splinter, en realidad sí que entra en el bucle. Yo diría que tiene más bien que ver con las signal y algún cambio de funcionamiento en ellas entre la versión de fenix en la que se escribió este código y la versión de bennu actual.

Yo diría que el problema viene de que se duerme al proceso padre sin que en realidad haga falta y por el cambio de funcionamiento en el signal, se llega a la condición
[code language="bennu"]while(despertar==0) frame(10); end[/code]
cuando el proceso prota_tocado() ya ha finalizado y por tanto no se puede salir de ella nunca (porque prota_tocado() ya no va a poner despertar=1).
La solución, en ese caso, pasaría por eliminar las signal(father, s_sleep) y signal(father, s_wakeup) del proceso prota_tocado().

Me da la impresión de que es así porque, entre otras cosas, mirando el código parece que el funcionamiento cuando te dan un toque lo escribieron primero con signal y luego lo quisieron cambiar al while(despertar==0) pero se olvidaron de quitar los signal. Por esas casualidades de la vida, en Fenix funcionaba, pero con el cambio de paradigma del signal, en bennu no.

En resumen, que si al código que me has enlazado le quitas los signal(father, s_*) del proceso prota_tocado(), todo parece funcionar como debe.

SplinterGU

en mi prueba no entraba en el bucle, lo debugue y no entraba en el caso en que yo probe, quizas a vos te moria al chocar con otro enemigo diferente.

pero bueno, creo que tu analisis es correcto, yo la verdad no me meti tanto ya que fue un rapido port para que funcione, como siempre no tengo mucho tiempo.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita

El tema es que me da la impresión de que no entre en el bucle a la primera, hay que hacer unas pocas iteraciones del LOOP para que entre (van cambiando los valores; ni siquiera he hecho un debugeo serio, sólo he puesto unos cuantos "say"s).

Tú que conoces mejor aquel foro, ¿Hay algún sitio donde pueda enviar esto para que corrijan el bug en la versión para Caanoo?, o ¿es mejor que lo empaquete yo a base de la versión que me bajé y lo pongo como nuevo hilo?

SplinterGU

por lo que dijeron hoy el autor no puede hacer trabajos referentes a juegos, no creo que lo toque... aunque puede que esa norma sea solo para juegos comerciales... la verdad no lo se...

yo diria que lo corrijas vos y lo modifiques a tu antojo, creo que es libre.

cualquier cosa mandale un pm o un mail al autor.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita

Bien. Era por que la gente que tiene una caanoo pueda jugar al juego sin bugs, más que por el autor, pero le avisaré de todas formas.

SplinterGU

Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita

He cogido el paquete de openhandhelds y le he cambiado el prg, el dcb y el runtime, así que debería funcionar en la caanoo y ya sin el bug ese.
¿Alguien se anima a probarlo?

http://www.megaupload.com/?d=KBMEF6MJ

blostec