Proyecto: Doctor Adventures

For all things Churrera. ¿Estás haciendo un juego? ¿quieres proponer un cambio? ¿tienes alguna duda? ¡Cuéntanoslo!

Moderador: na_th_an

errecepe
Mensajes: 17
Registrado: Mar, 25 Ago 2015, 19:54
Contactar:

Proyecto: Doctor Adventures

Mensajepor errecepe » Mié, 26 Ago 2015, 01:32

Buenas,

soy nuevo en este foro, y me presento enseñando un juego diseñado con la churrera empezado hace unos días.
En realidad, fue la típica prueba que empiezas, y le acabas cogiendo 'cariño'... Lo malo, que arrastro sprites y tilesets
de otros proyectos mojonos, y pretendo al menos, rediseñarlos o crearlos de cero.

Tengo prácticamente todo realizado, sólo tengo algún problema para poder meter alguna linea de script más,
ya que, ahora mismo, estoy en un punto en el que un par de SET TILE de más o de menos, provocan que al morir en una partida
y volver a mostrar la pantalla de title.bin, la muestre corrupta y aunque deje jugar, se acaba colgando y necesitas volver a cargar el juego.






Otro problema que tengo, es que si defino en config.h:

#define INITIAL_AMMO 10

a algún valor, me da el siguiente error al compilar:

C:\doctoradventures\dev>zcc +zx -vn doctorad.c -o doctorad.bin -lndos -lsplib2 -zorg=24200
1 archivo(s) copiado(s).
1 archivo(s) copiado(s).
sccz80:"engine.h" L:109 Warning:#17:Expected ';'

Esto ya me ocurría antes de tener los problemas de memoria previamente comentados.


Según vaya modificando el tileset, iré publicando alguna foto.
También estaría bien colgar alguna 'beta', ... todos los consejos son bienvenidos.

Image


saludos, @errecepe
Avatar de Usuario
na_th_an
Mensajes: 26413
Registrado: Vie, 09 Ene 2009, 12:18

Re: Proyecto: Doctor Adventures

Mensajepor na_th_an » Mié, 26 Ago 2015, 08:39

¡Bienvenido!

El error que te da es un fallo que hay en el código de la versión 3.99.3c. En la linea 109 de engine.h falta un ; al final, con ponerl se arregla el fallo.

Veo que estás teniendo problemas de memoria (Si tu bloque principal ocupa más de 36655 bytes - creo que era, ese es tu problema). Aquí tienes varias opciones:

- Usar la versión "WIP" no lanzada oficialmente de la Churrera que puedes encontrar por ejemplo en este hilo: viewtopic.php?p=68004#p68004 . Esta versión aprieta un poco los machos en un par de áreas para liberar alrededor de 200 bytes, y permite además configurar los requerimientos de memoria para ajustarlos al máximo a tu juego. La Churrera reserva una cantidad fija de memoria para los sprites, y esta versión te permite ajustar exactamente la cantidad de memoria que se reserva dependiendo de los sprites que uses en pantalla. Viene todo explicado en el hilo. Quizá esto te salve el juego.
- Intentar obtener más memoria de la que se llevan las pantallas comprimidas. Creo que se menciona en el tutorial: cuanto más complejas sean las pantallas de título, marco y final peor se comprimen y más memoria ocupan. Si eliminas elementos de ellas para que tengan "menos cosas" seguro que liberas bastante memoria.
- Eliminar la música beeper. Puedes sacarte así de la manga un Kb y pico extra para tí. El menú se queda mudo, pero si eres músico y quieres añadir música siempre se puede acomodar en una zona de la memoria alta para que suene justo antes de ejecutarlo, al terminar la carga. En cuanto se ejecute el juego se sobrescribirá y no se podrá volver a oír, pero es mejor que nada (es como funciona Ramiro, por ejemplo, entre otros).
- Reducir el mapa - dependiendo si usas packed o unpacked, puedes ganar 75 o 150 bytes por cada pantalla que recortes.
- Pasar a 128K - las pantallas comprimidas y la música AY van en RAM extra con lo que se te libera bastante memoria para tu juego.
- Comprimir el mapa con las utilidades de A.Villena - algunos chicos del foro lo han usado, pero serían ellos los que tendrían que ayudarte con el paso. Aquí hay instrucciones: viewtopic.php?p=50087#p50087 .
- Portar el juego a MK2 - se hace en un momento y ganas varias cosas: todo está más optimizado con lo que probablemente tu juego cabrá sin cambios, el motor va más fluido con lo que tu juego irá más suave y más rápido, y además tienes como el doble de posibilidades de añadir cosas chulas al juego

Como ves hay muchas cosas que puedes hacer para conseguir la memoria que necesitas.

Personalmente, yo no me lo pensaría y lo portaría a MK2. Es algo que puedes hacer, como digo, en un rato. Quizá sea hora de hacer un minitutorial con el proceso para portar de Churrera a MK2, sería interesante. Veré si encuentro tiempo.

Si no quieres portar a MK2, yo probaría las soluciones en el orden que te las he dado.

¡Suerte!
Como diría Rorshach: "Urm..."
Gocho
Mensajes: 123
Registrado: Mar, 19 Nov 2013, 10:32

Re: Proyecto: Doctor Adventures

Mensajepor Gocho » Mié, 26 Ago 2015, 09:51

Lo del tuto de churrera a MK2 sería ideal...
errecepe
Mensajes: 17
Registrado: Mar, 25 Ago 2015, 19:54
Contactar:

Re: Proyecto: Doctor Adventures

Mensajepor errecepe » Mié, 26 Ago 2015, 19:37

$this->bbcode_second_pass_quote('na_th_an', '
')El error que te da es un fallo que hay en el código de la versión 3.99.3c. En la linea 109 de engine.h falta un ; al final, con ponerl se arregla el fallo.


ostia.. pues no me había dado por mirar que fuera precisamente de lo que se quejaba.. no me lo esperaba ! :D
El ; que faltaba es exactamente en la 104. Ahora va perfecto.

$this->bbcode_second_pass_quote('na_th_an', '
')Veo que estás teniendo problemas de memoria (Si tu bloque principal ocupa más de 36655 bytes - creo que era, ese es tu problema). Aquí tienes varias opciones:

- Usar la versión "WIP" no lanzada oficialmente de la Churrera que puedes encontrar por ejemplo en este hilo: viewtopic.php?p=68004#p68004 . Esta versión aprieta un poco los machos en un par de áreas para liberar alrededor de 200 bytes, y permite además configurar los requerimientos de memoria para ajustarlos al máximo a tu juego. La Churrera reserva una cantidad fija de memoria para los sprites, y esta versión te permite ajustar exactamente la cantidad de memoria que se reserva dependiendo de los sprites que uses en pantalla. Viene todo explicado en el hilo. Quizá esto te salve el juego.
- Intentar obtener más memoria de la que se llevan las pantallas comprimidas. Creo que se menciona en el tutorial: cuanto más complejas sean las pantallas de título, marco y final peor se comprimen y más memoria ocupan. Si eliminas elementos de ellas para que tengan "menos cosas" seguro que liberas bastante memoria.
- Eliminar la música beeper. Puedes sacarte así de la manga un Kb y pico extra para tí. El menú se queda mudo, pero si eres músico y quieres añadir música siempre se puede acomodar en una zona de la memoria alta para que suene justo antes de ejecutarlo, al terminar la carga. En cuanto se ejecute el juego se sobrescribirá y no se podrá volver a oír, pero es mejor que nada (es como funciona Ramiro, por ejemplo, entre otros).
- Reducir el mapa - dependiendo si usas packed o unpacked, puedes ganar 75 o 150 bytes por cada pantalla que recortes.
- Pasar a 128K - las pantallas comprimidas y la música AY van en RAM extra con lo que se te libera bastante memoria para tu juego.
- Comprimir el mapa con las utilidades de A.Villena - algunos chicos del foro lo han usado, pero serían ellos los que tendrían que ayudarte con el paso. Aquí hay instrucciones: viewtopic.php?p=50087#p50087 .
- Portar el juego a MK2 - se hace en un momento y ganas varias cosas: todo está más optimizado con lo que probablemente tu juego cabrá sin cambios, el motor va más fluido con lo que tu juego irá más suave y más rápido, y además tienes como el doble de posibilidades de añadir cosas chulas al juego


- lo de la version WIP suena bien. Si no implica sacrificar nada a cambio, me pondré ahora mismo a ello.
Era una de las cosas que me preocupaba, no tenía claro si tenía en cuenta cuantos sprites me estaba usando (en work.png uso unos 24 tiles, quedando luego tileset.png medio vacio)
- lo de las pantallas, ya tube que reducir drásticamente la pantalla de final (la de title pesa 2010 bytes)
- lo del beeper ¿ es sencillo ? En la primera versión que probé de la churrera, no había musica al iniciar el juego. En la que bajé después (más nueva) si que la hay, y la verdad... no he sabido desactivarla.
- reducir el mapa, te refieres en cantidad, o alto/ancho en tiles ? No sabia que se pudieran 'packear' o no tambien las pantallas.
- Lo de los 128K en principio no lo contemplo. Mi idea es que funcione sobre 48kb.
- Portarlo a MK2, pues.. me tira un poco para atrás, porque me conozco, y como me complique mucho el tema, soy capaz de no acabarlo. Si la base es similar a la churrera, pues no descarto que el siguiente juego que realize, lo haga en MK2


Siento las preguntas de nab, pero es que sólo llevo un par de semanas con el tema, y bueno, que tampoco dispongo de todo el tiempo que me gustaría...

Muchas gracias por las respuestas ! :adore:

saludos, @errecepe