Autor Tema: BennuGD PSP  (Leído 76055 veces)

DCelso

  • Hero Member
  • *****
  • Mensajes: 3708
  • Karma: 181
Re: BennuGD PSP
« Respuesta #225 en: Marzo 05, 2011, 10:58:59 pm »
¿pero dices de modificar algun fichero c de bennu para ello?

Dos pruebas mas

Esta funciona perfectamente, la ejecuté unas 10 veces
Código: [Seleccionar]
import "mod_say"
import "mod_video"
private
int a = 12345678h;
byte * p;
begin
p = &a;
set_mode(320,280,16);
say(p[0]);
say(p[1]);
say(p[2]);
say(p[3]);
frame;
frame;
frame;
frame;
frame;
end

Esta cuelga la psp
Código: [Seleccionar]
import "mod_say"
import "mod_video"
private
int a = 12345678h;
byte * p;
begin
p = &a;
set_mode(320,280,16);
say(p[0]);
say(p[1]);
say(p[2]);
say(p[3]);
frame;
frame;
frame;
frame;
frame;
frame;
frame;
frame;
frame;
frame;
end
la ejecuté 5 veces, de las cuales 4 colgaron la psp y una no.
Monstruos Diabólicos

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

SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12920
  • Karma: 378
Re: BennuGD PSP
« Respuesta #226 en: Marzo 07, 2011, 05:27:08 pm »
Dcelso, los load_wav te funcionan? a mi en dingux, revienta al hacer load_wav.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

DCelso

  • Hero Member
  • *****
  • Mensajes: 3708
  • Karma: 181
Re: BennuGD PSP
« Respuesta #227 en: Marzo 07, 2011, 05:44:34 pm »
pues a mi sí que me van, depende del wav (al igual que el song) revienta la psp o no, pero el problema es que es aleatoriamente, si fuera siempre en el mismo sitio podría pensar que es algun dato fuera de rango pero como es aleatoriamente tiene que ser algo de gestion de prioridades que varíe dependiendo de la ejecución.
De todas formas el load_wav me funciona siempre bien en todos los wavs, es al hacer play_wav cuando me revienta. Así que dudo que sea el mismo problema.
Yo ya dudo de todo lo que le hice a la psp, quizás sea la gestión monolítica que le hice lo que hace que reviente aleatoriamente, como uso punteros a tutiplen y encima en vectores estáticos fijo que la lio sin querer en algún momento, así que estaba esperando tu versión monolítica que seguro que es más estable para ver si es problema de esto o no :D. La cosa es que en linux la versión monolítica mía va perfect, pero claro son infinitos más recuros de los que dispongo que en la psp :D.
Monstruos Diabólicos

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

SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12920
  • Karma: 378
Re: BennuGD PSP
« Respuesta #228 en: Marzo 07, 2011, 06:06:31 pm »
olvidate de las prioridades, no tiene absolutamente nada que ver... las prioridades en bennugd son solamente el orden dentro de una lista...

si te crashea con un simple while frame, me parece que las prioridades no tienen nada que ver.

para mi tiene que ver con los LOC_*, PUB_*, etc... que en la version monolitica no deberian usarse como se usa en la version modular.

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

DCelso

  • Hero Member
  • *****
  • Mensajes: 3708
  • Karma: 181
Re: BennuGD PSP
« Respuesta #229 en: Marzo 07, 2011, 06:42:44 pm »
pues tienes que estar muy muy cerca de la tecla, mira mis dos úlitimos tests
este se bloquea en al mostrar frame8, a veces si, a veces no.
Código: [Seleccionar]
import "mod_say"
import "mod_video"
private
int a = 12345678h;
begin
set_mode(320,280,16);
x=1;
say("frame"+x++);
frame;
say("frame"+x++);
frame;
say("frame"+x++);
frame;
say("frame"+x++);
frame;
say("frame"+x++);
frame;
say("frame"+x++);
frame;
say("frame"+x++);
frame;
say("frame"+x++);
frame;
say("frame"+x++);
frame;
say("frame"+x++);
frame;
say("frame"+x++);
end
Y simplemnte quitando la sección private, ya no se crashea nunca, almenos lo ejecuté 11 veces sin colgarse.
Código: [Seleccionar]
import "mod_say"
import "mod_video"
begin
set_mode(320,280,16);
x=1;
say("frame"+x++);
frame;
say("frame"+x++);
frame;
say("frame"+x++);
frame;
say("frame"+x++);
frame;
say("frame"+x++);
frame;
say("frame"+x++);
frame;
say("frame"+x++);
frame;
say("frame"+x++);
frame;
say("frame"+x++);
frame;
say("frame"+x++);
frame;
say("frame"+x++);
end
Monstruos Diabólicos

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

SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12920
  • Karma: 378
Re: BennuGD PSP
« Respuesta #230 en: Marzo 07, 2011, 07:15:05 pm »
te recomiendo analices el codigo en la parte de las prioridades, asi entenderas que lo que dices no tiene nada que ver.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

DCelso

  • Hero Member
  • *****
  • Mensajes: 3708
  • Karma: 181
Re: BennuGD PSP
« Respuesta #231 en: Marzo 07, 2011, 07:33:08 pm »
ok, asias por la recomendación, eso haré.
Siguiente test sin problemas en psp.
Código: [Seleccionar]
import "mod_say"
import "mod_video"
local
int a = 12345678h;
begin
set_mode(320,280,16);
x=1;
say("frame"+x++);
frame;
say("frame"+x++);
frame;
say("frame"+x++);
frame;
say("frame"+x++);
frame;
say("frame"+x++);
frame;
say("frame"+x++);
frame;
say("frame"+x++);
frame;
say("frame"+x++);
frame;
say("frame"+x++);
frame;
say("frame"+x++);
frame;
say("frame"+x++);
end

Osea con local no pasa, parece problema de la private, voy a ver public, que se parece más a private :D. Realizado,
ups, no puedo poner public si no es dentro de un proceso, en cambio private sí, voy a crear el proceso main. Realizado
tambíen la jiere la variable public, es decir, private y public hacen cosas raras en psp.
« última modificación: Marzo 07, 2011, 07:40:01 pm por DCelso »
Monstruos Diabólicos

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

SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12920
  • Karma: 378
Re: BennuGD PSP
« Respuesta #232 en: Marzo 07, 2011, 07:40:23 pm »
DCelso, no hagas mas pruebas... o sea, no tiene sentido tirar pruebas a diestra y siniestra si con un while frame solo se cae.

vas a tener que hacer esa prueba con while frame, y meter log en varios lugares del codigo, hasta encontrar donde cae.

log = printf + fflush.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

DCelso

  • Hero Member
  • *****
  • Mensajes: 3708
  • Karma: 181
Re: BennuGD PSP
« Respuesta #233 en: Marzo 07, 2011, 07:43:21 pm »
ok, me parece muy correcto :D. pero tb me parece que mi prueba del simple frame tenía la variable private puesta, voy a ver si un simple while frame no casca.
Monstruos Diabólicos

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

SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12920
  • Karma: 378
Re: BennuGD PSP
« Respuesta #234 en: Marzo 07, 2011, 08:05:59 pm »
lo que digo es que no tiene nada que ver las variables, porque una prueba sin variables ya demostraste que cae... entonces para que seguir probando con ejemplos mas complejos si ya tenes el ejemplo mas simple que podrias probar? ya tenes el ejemplo, empeza a debuguear a ver donde casca... y luego se ve si tiene o no sentido que casque ahi o es por algun pise de memoria o lo que sea.

incluso puede ser algun mecanismo de signal que lleva psp, y no te estas enterando.

lo que digo, es que evidentemente te va a cascar en cualquier cosa compleja que hagas si ya un simple while casca.

puede tambien ser que se estan escuchando demas eventos de SDL de los que se limpian y en algun momento la queue se llena y casca.

la verdad que no se, es dificil sin la maquina, hay un monton de cosas que yo puedo testear y darme cuenta gracias a mi experiencia... pero es dificil hacerlo a traves de otros... mas cuando se desconoce internamente lo que se esta analizando.
« última modificación: Marzo 07, 2011, 08:09:14 pm por SplinterGU »
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

DCelso

  • Hero Member
  • *****
  • Mensajes: 3708
  • Karma: 181
Re: BennuGD PSP
« Respuesta #235 en: Marzo 07, 2011, 08:45:57 pm »
jajaja, pues muucha razón que tienes. pues el ejemplo más simple es el siguiente:
Código: [Seleccionar]
Process main()
begin
set_mode(320,280,16);
say(x++);
while (1)
frame;
end
end
este casca de lo lindo, pero en cambio poniendo el say dentro del while no casca
Código: [Seleccionar]
Process main()
begin
set_mode(320,280,16);
while (1)
say(x++);
frame;
end
end
Voy a quitar el set mode y el say y ejecutarlo sin ningún módulo, si casca eso, pues debugear frame pa ver donde se casca exactamente. Tiene justísimo lo que tu dices, un acceso a memoria indebido en algún momento, algo no inicializado o desinicializado.
Monstruos Diabólicos

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

DCelso

  • Hero Member
  • *****
  • Mensajes: 3708
  • Karma: 181
Re: BennuGD PSP
« Respuesta #236 en: Marzo 07, 2011, 08:47:59 pm »
Lo raro es que la versión monolítica en PC vaya bien, porque si no lo fuera sería culpa de ella, cachis.
Y otra cosa rara es que juegos complejos vayan bien, como el vigoroth sin sonido, el tetris, o mi piedra-papel-tijera-lagarto-spock, o el wiz de prg que tiene sonido y todo y no casca.
Monstruos Diabólicos

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

DCelso

  • Hero Member
  • *****
  • Mensajes: 3708
  • Karma: 181
Re: BennuGD PSP
« Respuesta #237 en: Marzo 07, 2011, 09:13:16 pm »
creo que ya se por donde empezar a depurar.
Código: [Seleccionar]
import "mod_joy"
Process main()
begin
loop
if (get_joy_button(0,0))
break;
end
frame;
end
end
Este código no casca ni pa atrás.
Este otro sí
Código: [Seleccionar]
import "mod_joy"
import "mod_video"
Process main()
begin
set_mode(320,480,16);
loop
if (get_joy_button(0,0))
break;
end
frame;
end
end
Así es lo mínimo que he encotrado que casque, puedo depurar los procesos de inicialización de mod_video y las funciones set_mode y frame
¿como lo ves?
Monstruos Diabólicos

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

DCelso

  • Hero Member
  • *****
  • Mensajes: 3708
  • Karma: 181
Re: BennuGD PSP
« Respuesta #238 en: Marzo 07, 2011, 09:14:06 pm »
nota, el get_joy lo puedo quitar, pero está para que si va bien poder salir del juego rápidamente :D
Monstruos Diabólicos

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

DCelso

  • Hero Member
  • *****
  • Mensajes: 3708
  • Karma: 181
Re: BennuGD PSP
« Respuesta #239 en: Marzo 07, 2011, 10:36:58 pm »
ostras tu, en fenix para psp, van bien los bucles, no casa ningún ejemplo de aquí, en cambio el del sonido sí que casca igual.
Monstruos Diabólicos

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