Página 2 de 3

Re: Problema al morir

Publicado: Mié, 30 Sep 2015, 11:04
por na_th_an
Tanto en la "d" como en MK2 tienes que abrir el archivo "C" y asegurarte de que estás reservando el número correcto de bloques para los sprites. En los comentarios del principio del archivo viene cómo hacer los cálculos.

Aparte de eso, y que en MK2 hay un porrón de opciones más en config.h (que puedes ignorar si estás portando un churrera) es prácticamente igual, salvo que en MK2 no hace falta convertir nada a mano, sino modificar el make.bat para que lo convierta todo automáticamente por tí (nada de reordenar tiles y montarlos a mano con la fuente, etcétera).

Otra cosa es que si tu juego tiene vista genital es posible que haya algunas cosas que no funcionen del todo bien en MK2 porque hasta la 0.89 no hay ningún juego que use esta perspectiva y seguro que se coló algún gazapo al portar la funcionalidad.

La versión "d" ahorra 150 bytes de uno de los buffers que mueve a un hueco que hay en la splib2 si no estamos en modo 128K, y además "recorta" un poco la pila dejando más espacio (vamos, que tu programa puede ocupar más de 36655). MK2, en general, está reescrita y ocupa bastante menos (además de ser levemente más rápida).

Re: Problema al morir

Publicado: Mié, 30 Sep 2015, 13:18
por karkayu
Colocando la melodía que viene por defecto en la Churrera, el binario se queda en 36648bytes y, claro, ahora va todo perfecto. Voy a tener que rehacer mi melodia del principio.


El juego no es vista cenital, no hay problema en ese sentido. Con la reserva de memoria para sprites te refieres NUMBLOCKS, no? El juego tiene al prota y tres enemigos mas, así que lo he dejado en 40. Aunque ahora que lo pienso, uso plataformas que se mueven. Eso cuenta como otro enemigo, verdad?? Voy a cambiar el valor.

Por cierto, los sprites de prota y enemigos ahora no son blanco puro (antes sí lo eran). Están tomando el color fucsia de los bloques que componen la fase. Imagino que eso lo puedo corregir editando el archivo sprites.h

Un saludo

EDITO: era problema del NUMBLOCKS. Ya está portado con exito a la versión 'd'. El binario se queda en 36510bytes con la música por defecto :)

De todas formas tengo alguna duda en cuanto al numero de bloques para reservar. Si, como he dicho, el juego tiene al prota, 3 enemigos, plataformas móviles y no tiene disparos, la cuenta sería 10*5 = 50, no??
Lo digo porque con valor 50 muestra la pantalla inicial pero ningún sprite. He colocado el valor 60 y parece que todo va fino. Estoy calculando mal, verdad?

Re: Problema al morir

Publicado: Mié, 30 Sep 2015, 14:25
por na_th_an
El número de bloques se refiere al número de sprites que se mueven a la vez en pantalla como máximo, no a los que tengas definidos. En la pantalla, al menos, siempre está el jugador y tres enemigos/plataformas. Se trata de cuatro sprites de 16x16, o de 2x2 caracteres.

Si un sprite mide WxH caracteres, necesita (W+1) * (H+1) bloques, más un bloque de control. Por eso, un sprite de 16x16, que mide 2x2 caracteres, necesita (2+1)*(2+1)+1 = 10 bloques.

De la misma forma, un proyectil de 8x8 mide 1x1 caracteres y necesita (1+1)*(1+1)+1 = 5 bloques.

El número de disparos que puede aparecer como máximo en pantalla se controla con "MAX_BULLETS". Por tanto, el número de bloques para los proyectiles será 5*MAX_BULLETS.

Que yo recuerde, en la Churrera no hay más que esto. Si no usas proyectiles el número de reserva debería ser 4*10 = 40 bloques de 15 bytes cada uno. Si con eso se te cuelga (estando por debajo de la memoria máxima, que tendría que mirar cuanto es en "d") tendría que mirarlo, porque puede que haya metido la gamba.

Re: Problema al morir

Publicado: Mié, 30 Sep 2015, 17:22
por karkayu
$this->bbcode_second_pass_quote('na_th_an', 'E')l número de bloques se refiere al número de sprites que se mueven a la vez en pantalla como máximo, no a los que tengas definidos. En la pantalla, al menos, siempre está el jugador y tres enemigos/plataformas. Se trata de cuatro sprites de 16x16, o de 2x2 caracteres.

Si un sprite mide WxH caracteres, necesita (W+1) * (H+1) bloques, más un bloque de control. Por eso, un sprite de 16x16, que mide 2x2 caracteres, necesita (2+1)*(2+1)+1 = 10 bloques.

De la misma forma, un proyectil de 8x8 mide 1x1 caracteres y necesita (1+1)*(1+1)+1 = 5 bloques.

El número de disparos que puede aparecer como máximo en pantalla se controla con "MAX_BULLETS". Por tanto, el número de bloques para los proyectiles será 5*MAX_BULLETS.

Que yo recuerde, en la Churrera no hay más que esto. Si no usas proyectiles el número de reserva debería ser 4*10 = 40 bloques de 15 bytes cada uno. Si con eso se te cuelga (estando por debajo de la memoria máxima, que tendría que mirar cuanto es en "d") tendría que mirarlo, porque puede que haya metido la gamba.



Como te he comentado, con un valor de 40 ó 50, el juego se cuelga al empezar el juego (la pantalla de titulo va bien). Yo puse 60 (por probar) y va todo fino. El binario se queda en 36510bytes.

Re: Problema al morir

Publicado: Mié, 30 Sep 2015, 23:39
por na_th_an
Asegurate que no tienes activado PLAYER_CAN_FIRE en config.h - Con eso y 3 proyectiles (que es lo que viene por defecto) son necesarios 55 bloques. En la "c" no te da la cara porque siempre se reserva 56.

Re: Problema al morir

Publicado: Jue, 01 Oct 2015, 14:29
por karkayu
AAAAAHGGG!!! Quiero morir!!!
Con la versión 'd' de la churrera y la musica de inicio recortada, el binario ocupa 36526bytes y no da ningún problema.

He cambiado la pantalla de ending poniendo los textos en inglés (lo tengo presentado a la ZXDEV y me obligan a tenerlo en inglés). Pues al hacer este cambio, vuelve a colgarse el juego al morir :cry: :cry:
El archivo ending.bin de la pantalla en ingles ocupa menos que el que tenía en español. De hecho, el binario ahora ocupa 36499bytes, es decir, menos que antes... pero peta!! ¬¬'

¿alguna idea de que puede ser esta vez?

Ains!! Siento ser tan pesado:(

EDITO: Sigo sin saber devolver el blanco puro a los sprites del juego :(

Re: Problema al morir

Publicado: Jue, 01 Oct 2015, 23:40
por na_th_an
Mándame toda la carpeta del proyecto y le echo un ojal.

Re: Problema al morir

Publicado: Vie, 02 Oct 2015, 11:22
por karkayu
$this->bbcode_second_pass_quote('na_th_an', 'M')ándame toda la carpeta del proyecto y le echo un ojal.


here it is!! -- enlace eliminado --

Thank you so much for your help.

Re: Problema al morir

Publicado: Vie, 02 Oct 2015, 12:31
por na_th_an
En cuanto encuentre un ratow

Re: Problema al morir

Publicado: Vie, 02 Oct 2015, 12:41
por karkayu
$this->bbcode_second_pass_quote('na_th_an', 'E')n cuanto encuentre un ratow


Sin prisas, no te preocupes.
¿Lo has descargado ya? Es para quitar el enlace :)