Me da cosa ya, pero en fin...
Mira, tengo este código:
[code language="bennu"]
function howToPlay()
private
int pngTeclado;
int pngGamepad_OrNone;
int pngWiz_Caanoo;
int fuenteUtilizada;
int idTxtPulsaTecla;
int asdf;
int idTeclado;
int idGamepad_OrNone;
int idWiz_Caanoo;
int idNaveDummy;
int distanciaRecorrida;
int idMusic;
begin
idMusic = load_song("sonidos/musica/rb_select.ogg");
play_song(idMusic, -1);
clear_screen();
start_scroll(0, fileMenuId, 2, 0, 0, 1+2);
fade_on();
write(fntid_score,160,0,1,"How to Play!");
if (os_id == OS_GP2X_WIZ)
pngWiz_Caanoo = load_png("graficos/htp_w");
idWiz_Caanoo = objeto(0, pngWiz_Caanoo, 320 + 160,240,-1);
fuenteUtilizada = fntid_wiz;
elsif (os_id == CONST_OS_CAANOO)
pngWiz_Caanoo = load_png("graficos/htp_c");
idWiz_Caanoo = objeto(0, pngWiz_Caanoo, 320 + 160,240,-1);
fuenteUtilizada = fntid_wiz;
else
pngTeclado = load_png("graficos/htp_k");
idTeclado = objeto(0, pngTeclado, 320 + 160,240 - 120,-1);
if (joy_numjoysticks() > 0)
pngGamepad_OrNone = load_png("graficos/htp_g");
else
pngGamepad_OrNone = load_png("graficos/htp_ng");
end
idGamepad_OrNone = objeto(0, pngGamepad_OrNone, 320 + 160 , 240 + 120,-1);
fuenteUtilizada = 0;
end
//más lógica
end
[/code]
Este if crashea con win32 exception:
[code language="bennu"]
if (joy_numjoysticks() > 0)
pngGamepad_OrNone = load_png("graficos/htp_g");
else
pngGamepad_OrNone = load_png("graficos/htp_nj");
end
[/code]
Y solo cuando pregunto directamente con joy_numjoysticks().
Si en vez de usar eso, guardo previamente el nº de joys en el sistema en una variable ya no crashea:
[code language="bennu"]
variable = joy_numjoysticks();
if (variable > 0)
pngGamepad_OrNone = load_png("graficos/htp_g");
else
pngGamepad_OrNone = load_png("graficos/htp_nj");
end
[/code]
Ahora lo voy a dejar de esta manera, pero no debería crashear de la primera manera, creo :S
Lo que quiero hacer es poner 2 imágenes distintas dependiendo si hay o no joys conectados al pc.
Lo otro que se me ocurre es que tengo un proceso con prioridad 1000 leyendo el estado del joystick... ¿puede ser eso?
tiene que haber otra cosa... las funciones esas de por si no crashean...
esto es el codigo tal cual lo tengo yo? o es una nueva version?
me podes pasar el codigo y el dcb compilado?
probaste con la 189?
Nop, lo he modificado levemente, ya que Futu me paso unos gráficos para el menu.
Te paso el código enseguida y el dcb, es más estoy preparando la descarga para windows.
Y no he probado con la 189.
Ah me faltó decir que ahora noto a VECES un ruido tipo "chicharreo" en las canciones de fondo.
En especial en el el ending.
En unos minutos más tengo todo listo, vas a tener que descargartelo también por que los gráficos no son de 8 bits, asi que tuve que meterlos en un fpg de 16 bits aparte, claro son 2 imagenes nada más pero igual xD
sonido tiene que ver con la mixer, en eso no puedo hacer nada.
con respecto al joys, tene cuidado, porque no podes usar funciones como joy_buttons y cosas asi, si no tenes joys, porque puede dejar el sistema inestable.
si joy_num te dice que no tenes joys conectados, no tenes que usar ninguna funcion de joys...
aunque me suena que el bug que tenes (si no es un pise de memoria por alguna otra cosa, como usar funciones como las que mencione) puede ser un bug del core por alguno de los cambios dentro de los que se hicieron y que provoco el bug anterior
Listo, revisa tus MPs
¡Y ya subí la version windows!
Tenés que descargartela igual :P
Veamos, intenté reproducir nuevamente el crash, pero no pude :S
Ahora me reportan que crashea el juego nada más darle a empezar.
Yo me hice unas funciones para detectar los botones y el estado de la cruz, creo que muy parecida a tu librería. Ya llevaba como el 50% hecho cuando me percaté que había una librería llegar y usar, así que al final seguí con lo mío.
Uhm, normalmente el proceso que lee el estado de las direccionales se crea solo si hay un joy conectado, sin embargo con los botones no soy tan prolijo, simplemente los leo segun la configuración que se establece en las opciones, pero sin preguntar si hay o no joys, solo intenta leer. Claro que nunca antes había tenido problemas con esto.
Intentaré reproducir nuevamente el crash
Quote from: Noivern on January 07, 2011, 04:28:49 PM
Veamos, intenté reproducir nuevamente el crash, pero no pude :S
Ahora me reportan que crashea el juego nada más darle a empezar.
Yo me hice unas funciones para detectar los botones y el estado de la cruz, creo que muy parecida a tu librería. Ya llevaba como el 50% hecho cuando me percaté que había una librería llegar y usar, así que al final seguí con lo mío.
Uhm, normalmente el proceso que lee el estado de las direccionales se crea solo si hay un joy conectado, sin embargo con los botones no soy tan prolijo, simplemente los leo segun la configuración que se establece en las opciones, pero sin preguntar si hay o no joys, solo intenta leer. Claro que nunca antes había tenido problemas con esto.
Intentaré reproducir nuevamente el crash
si haces eso es probable que crashee... en la lib que hice yo, no chequeo joys, porque en caanoo y wiz, los joys estan siempre si o si, ya que son los pad y los botones, ahora en pc tenes que chequear que existan y no llamar a ninguna funcion si no hay joys, tanto los joys como los botones, no podes pedir un boton que no existe porque es probable que crashee.
¿Osea que podría provocar crash al azar?
Por que antes y ahora nunca me dio problemas leer así los botones, solo este evento en particular.
Una duda: ¿sdl detecta cuando se conecta un gamepad en medio de la ejecución?
Se me ocurre que puedo tener una var global donde almacenar la cantidad de joys conectados, preguntando solo al principio de la ejecución del programa. Luego usar esta variable para comprobar cosas en lugar de hacer joy_numjoysticks() siempre. Cosa personal, siempre me equivoco al escribir esa, siempre le pongo getNumJoys() y al final termino irritado corrigiendo el nombre de la función xD
si, eso provoca crash... el azar depende de si justo cuando va a leer lee en algun area con datos de otra cosa o lee en areas no apuntadas...
sdl no detecta cambio de estados de conexion de pad, por lo menos no la version que usamos nosotros, la 1.2, y en las pruebas que yo hice, quizas desinicializando e inicializando nuevamente la lib lo detecte, no lo se.
mira la funcion joy_numjoystick tambien devuelve una variable interna, asi que es casi lo mismo, pero mejor si tienes una variable tu ya con el numero de joys
uhm Ahora me pasa algo muy extraño (pa variar)... Le voy a grabar un video para que sea más gráfico...
Mira mira...
http://www.youtube.com/watch?v=_Oy9uJdG08Q
Ponlo en 720p para que sea más claro.
Esto es en la r201. ¿En la r203 pasará? Que si no lo pones en el hilo del proyecto no me entero que existe ^^U
Perdona por el offtopic, que programa usabas para grabar videos ? Y para pasarlos despues a flv ?
Quote from: FreeYourMind on January 07, 2011, 09:14:41 PM
Perdona por el offtopic, que programa usabas para grabar videos ? Y para pasarlos despues a flv ?
CamStudio para grabar. Tiene el pequeño contra que si tu video pasa las 2 GB no se puede ver, es un bug conocido.
Para transformar a flv (y muchos otros formatos) uso el Super
Ya que estamos, presento un nuevo bug tambien, estoy con la r201, así que no se si es de esta version, pero si no lo es es de las ultimas.
Estaba probando juegos antiguos con el runtime en la WIZ, los que funcionan sin problemas ya compilados con versiones de Bennu ya muy antiguas.
Pero el 'Skull' no me esta funcionando, he puesto los logs y tengo este raro resultado:
stderror1.txt --> Segmentation fault
stdout.txt --> FB_OpenMouse() Using tslib touchscreen0
Yo utilizo el touchscreen con el mouse pero sólo en el menu, y este error me sale al cargar, donde no uso touchscreen. No tengo el src para mirartelo a fondo.
Quote from: FreeYourMind on January 07, 2011, 09:45:01 PM
Ya que estamos, presento un nuevo bug tambien, estoy con la r201, así que no se si es de esta version, pero si no lo es es de las ultimas.
Estaba probando juegos antiguos con el runtime en la WIZ, los que funcionan sin problemas ya compilados con versiones de Bennu ya muy antiguas.
Pero el 'Skull' no me esta funcionando, he puesto los logs y tengo este raro resultado:
stderror1.txt --> Segmentation fault
stdout.txt --> FB_OpenMouse() Using tslib touchscreen0
Yo utilizo el touchscreen con el mouse pero sólo en el menu, y este error me sale al cargar, donde no uso touchscreen. No tengo el src para mirartelo a fondo.
eso no es un error...
el "FB_OpenMouse() Using tslib touchscreen0" es la apertura del driver del mouse, siempre pone ese mensaje...
el segmentation fault, siempre lo dan al salir, no se que es, pero siempre que sale la aplicacion lo da en wiz y/o en caanoo, aun no se que es, pero es en la salida.
Ya, pero error esta ocurriendo porque sale, y si se ejecuta bien no pone logs.
Vengo con otro, bueno no creo que este sea Bug, mas bien que la memoria de Wiz se me esta quedando corta (por suerte Caanoo tiene el doble y no me ocurre), pero al cargar una pantalla, 60% en la wiz se me sale, he puesto el log a ver si me decia que era falta de memoria, en su lugar me encuentro con la palabra 'Killed'. Esto que es ? Significa que no hay memoria ? Seria posible poner logs mas precisos si el problema es falta de memoria ?
Gracias.
Quote from: FreeYourMind on January 07, 2011, 09:45:01 PM
Ya que estamos, presento un nuevo bug tambien, estoy con la r201, así que no se si es de esta version, pero si no lo es es de las ultimas.
Estaba probando juegos antiguos con el runtime en la WIZ, los que funcionan sin problemas ya compilados con versiones de Bennu ya muy antiguas.
Pero el 'Skull' no me esta funcionando, he puesto los logs y tengo este raro resultado:
stderror1.txt --> Segmentation fault
stdout.txt --> FB_OpenMouse() Using tslib touchscreen0
Yo utilizo el touchscreen con el mouse pero sólo en el menu, y este error me sale al cargar, donde no uso touchscreen. No tengo el src para mirartelo a fondo.
porque en modo debug hay informacion extra... estas cosas pasan tambien en C.
cuando te surge un problema asi, necesito una copia exacta de tu proyecto y un log de la salida de compilacion con debug (con y sin informacion de depuracion)
Quote from: FreeYourMind on January 07, 2011, 09:53:44 PM
Ya, pero error esta ocurriendo porque sale, y si se ejecuta bien no pone logs.
Vengo con otro, bueno no creo que este sea Bug, mas bien que la memoria de Wiz se me esta quedando corta (por suerte Caanoo tiene el doble y no me ocurre), pero al cargar una pantalla, 60% en la wiz se me sale, he puesto el log a ver si me decia que era falta de memoria, en su lugar me encuentro con la palabra 'Killed'. Esto que es ? Significa que no hay memoria ? Seria posible poner logs mas precisos si el problema es falta de memoria ?
Gracias.
compila con -g y corre con -d, guarda la salida de la ejecucion (bgdi) a un archivo de texto.
No conocia esa opcion, lo curioso es que en PC casí no se mueve, si en la negrita va moverse a pasos de caracol, para llegar a la pantalla de pete voy a esperar horas :D
Bueno voy a probar a ver que sale.
Gracias.
si, va a llevarse mucho tiempo, pero es la unica forma de ver exacto donde cae.
pero si logras hacer que se caiga, saltando el menu, y saltando todas las cosas que no son importantes, y pones que todo cargue o vaya directo al punto de break, entonces el log y la espera, no seran ni gigantes ni una demora inmensa.
Desisto !!!!
Como va tan lento, todavia no me ha fallado la carga en ese menu, y eso que fallaba 60, 70% de las veces, no voy a estar todo el día jugando a la adivinanza si esta vez falla o no, encima con un log de 300, 400 megas, dificil de ver en el notepad++...
nadie dijo que fuera facil...
uhm, Splinter ¿viste el video?
Por cierto, vi que en la página de descargas dice que esta la r203 para wintendo, pero ninguna de las 2 descargas me va.
vi el video, pero no tengo los fuentes ni nada de lo que te pedi para probarlo.
Te lo envio enseguida, estoy haciendo un "respaldo" del div1 para cierto personaje del foro xD
Yap, a ver.......
Luego de conversar con Splinter via MP, me ha quedado claro por qué sucede el crash en el video.
Ahí estoy forzando el od_id a ser la Caanoo para probar el soporte de 2 gamepads (encima 1 emulado) en mi pc. Siendo informático esto tendría que haberme dado cuenta yo solo (que vergüenza :-[).
Como estoy forzando al motor creer que es otro SO de ahí vienen crasheos extraños.
Cerrar esta weá porfa u.u