PDA

Ver la versión completa : Duda sobre recursos de la GP32 y nuevo Runtime



Samuso
21/09/2005, 17:38
Hola de nuevo, me he encontrado nuevamente con un problemilla en mi casi terminado juego (primera versión claro :D). ;)

Está hecho en Fenix.

En el PC va muy bien la secuencia de pantallas: Logo -> Menú -> Intro -> Juego -> GameOver (todas con musiquilla).

Pero en la GP32 me pasa algo muy raro, salen las 3 primeras pantallas bien, pero al pasar de la Intro, aparece la pantalla en negro (la que correspondería al juego) y suena la musiquilla.
Además, al pulsar cualquier tecla (o el stick), se reinicia la consola. :(

¿Podría ser por falta de recursos?
Aunque yo hago un let_me_alone() antes de comenzar con el juego en si, lo que me asegura en teoría que no queda nada en memoria. ¿?

¿Otra cosilla, qué mejoras ofrece el nuevo Runtime de Fenix?
Supongo que el uso del nuevo Runtime conlleva un nuevo compilador FXC.
¿Es todo compatible entre el que yo uso (0.84 creo que es) y el nuevo?

MUchas gracias. ;)


Saludos.

Darumo
21/09/2005, 18:48
el comando let_me_alone() creo que solo sirve para eliminar los procesos fuera del principal pero NO elimina los graficos ni musicas cargados, vaya que te has dejado todo ello en la ram y has procedido a cargar lo que ya era el juego, personalmente creo que hay posibilidad de que se te haya quedado sin ram si estas usando archivos medianamente grandes.

Sobre las otras preguntas no te puedo decir nada, apenas he rozado un poco de Fenix, supongo que estara mas optimizado o con menos fallos, traera algunos comandos nuevos y supongo que tambien algun cambio que te oblige a cambiar alguna linea de tu juego pues podria ser.

Samuso
21/09/2005, 20:06
Gracias por la respuesta, pero tengo otra duda. ;)

Los gráficos se muestran dentro de un proceso (foto) que es un loop mostrando la imagen, por lo que se debería matar con el let_me_alone().

¿Sabeis otra forma de poner un gráfico en pantalla y luego poder eliminarlo?

Por otra parte, ¿de cuanta RAM disponemos en la GP32?

Gracias de nuevo. ;)

Saludos.

chemaris
21/09/2005, 20:13
en cuanto a la ram, preparate a comerte la cabeza, la gp32 tiene 8mb donde tienes que meter todo y se queda corta y tienes que hacer autenticas pirulas, lo mejor es hacer muchos fpgs e ir cargando y descargando segun se necesiten, cosa que es un autentico lio en juegos grandes

para borrar una imagen esta la funcion clear_screen, pero solo vale para los graficos de fondo, para los demas has de matar el proceso

Samuso
21/09/2005, 20:36
Es un juego pequeño en cuanto a gráficos, creo que con 8 Megas tengo de sobra. ;)

El fpg me ocupa 500 Ks y la música unos 400 Ks en total.

¿Sabeis otra forma de poner los gráficos en pantalla diferente a la que yo uso?
¿Otra función o truquillo?

Dados los tamaños de mi fpg y sonidos, ¿Sabeis a qué puede deberse entonces mi pantalla negra y reinicio? (en 8M caben de sobra)

Gracias.

Saludos.

chemaris
21/09/2005, 20:49
los 500k son comprimidos o sin comprimir???, cuidado que engaña mucho, un fpg comprimido de unos 200k puede ocupar mas de 2MB en memoria

chipan
21/09/2005, 21:41
Eso sin contar el tamaño del ejecutable, el runtime y el loader de fenix...

Samuso
21/09/2005, 21:50
Pos no lo se, la verdad.

Yo no aplico ninguna compresión de manera explícita, el FPG lo he creado con el FPGEdit.
No se si este programa hace la compresión de la que hablais. ¿?

En cualquier caso, ¿tiene pinta de falta de recursos según vuestra experiencia?
¿o podría ser de otra cosa?

¿Está bien usar un proceso con un loop para mostrar una imagen en pantalla?
(Lo uso muchías veces, puesto que es un tablero con 64 fichas y cada ficha es una imagen que pongo de esta forma).

Gracias nuevamente. ;)

Saludos.

chipan
21/09/2005, 22:02
ufff, 64 procesos, mal te veo... no es por importunar pero para mi que el problema es que la consola se queda tonta por meter tantos procesos a la vez, prueba a hacerlo con 4 procesos (por ejemplo) solo para ver si es eso. Mira para mi juego, el "Magic Defender"; pese a mostrar casi cien fichas en pantalla, todas estan dentro de un mismo proceso que redibuja su gráfico dinámicamente basandose en los valores de una matriz (no se puede ser mas claro :quepalmo: ).

Darumo
21/09/2005, 22:38
hombre los graficos de fondo del juego no lo estaras poniendo como un proceso, ¿no? o ¿estas haciendo esa burrada?

Sobre las 64 piezas, supongo que se podra optimizar un poco pero sera mucho mas complicado todo el proceso, por que si no necesitas animacion o desplazamiento suave de las piezas, podrias hacer asi, pegar fondo, leer tabla donde estan los datos de las piezas y pegar las piezas en su lugar sobre el fondo, todo ello con la instrucion Put_map (si es que se sigue llamando igual), a la siguiente actualizacion de las piezas bastara con hacer de nuevo el proceso empezando por pegar el fondo nuevamente, solo necesitarias unos pocos procesos si te lo curras bien, el unico proceso aparte del principal que estaria todo el rato funcionando seria el del puntero o lo que uses para elegir las piezas y tendrias uno que se encarge de redibujar el fondo y piezas cada vez que lo llames (poner fondo, leer la tabla, dibujar todas las piezas, hacer un frame y salir)

Samuso
21/09/2005, 23:28
Probaré varias de esas propuestas. ;)

Pensad que yo no sabía (ni se XD) nada de Fenix y todo lo he hecho en base a un juego que venía como ejemplo (el Plaf), en el que se usaba un proceso por imagen.

Gracias y Saludos.