Buenas, voy a enseñaros una cosita que empecé como herramienta auxiliar para un proyecto de juego que tengo entre manos, y que creo que puede ser útil para facilitar el desarrollo de nuevos juegos, o incluso para que gente que nunca se haya se haya atrevido aún se anime porque sólo con tener una imagen del mapeado, en pocos segundos, conseguiremos una rom (Y el fuente en ASM) funcional con un scroll de dicha imagen que sirva como esqueleto para seguir con un montón de dificultades ya superadas. Está pensado para MSX1, Screen 2 y movimiento de 8x8 píxeles.
Costa de dos partes, una es una aplicación escrita en Java (Como no
) que toma de entrada una imagen y parámetros acerca del tamaño y posición del scroll y da como salida cuatro archivos:
- El banco de patrones
- El banco de colores
- El mapa de nombres
- Configuracion para asm
Lo más interesante que creo que tiene, es que es capaz de sacar provecho de que los distintos tercios de la pantalla pueden tener juegos de caracteres distintos, es decir analiza los tiles que forman toda la imagen, y teniendo en cuenta el tamaño y posición de la ventana respecto a los tercios, se encarga de hacer la ¿Mejor? distribución posible, teniendo en cuenta los que se repiten en dos o tres tercios y los que sólo aparecen en uno de ellos. Por ejemplo, si queremos hacer un scroll puramente horizontal a pantalla completa (Suponiendo que no haya marcos, contadores, etc), pues permitirá hasta 256 caracteres distintos por línea. Si por ejemplo el scroll fuera una ventana de 32*9 caracteres situados en 0,0. De la líneas 0 a 7 podría asignar 256 caracteres correspondientes al 1er tercio, y en la línea 8 otros 256. Para el caso de scroll verticales, obviamente se le puede sacar mucho menos provecho a esto, pero casi siempre alguno más sale que poniendo los bancos iguales.
Otra ventaja es que el grafista puede ir puliendo la imagen por su cuenta y probando si cumple las condiciones, y un momento ensamblarlo con el trabajo del programador y ver el resultado.
La segunda parte, es un archivo .ASM que todavía estoy puliendo y comentando, y un .BAT a modo de MAKE que ensambla todo. Os dejo un par de ejemplos de la salida, sólo hay que elegir la imagen, el tamaño de la ventana, y su posición y salen cosas así:
Se mueve con los cursores a velocidad normal, y dejando la barra pulsada va más rápido. Todo entra en un frame, así que no hay problemas de velocidad, además sólo hay que decir la coordenada superior izquierda y la rutina se encarga de todo y posicionaría al siguiente frame. Así que también se podría utilizar para juegos sin scroll de varias pantallas, colocándolas todas en la misma imagen y reposicionando según necesidad.
Las limitaciones, pues por ejemplo el tamaño del mapa. Ahora mismo el motor en sí ocupa poco más de 1KBs, los patrones y los colores se comprimen con BITBUSTER, y el mapa va descomprimido y ocupará ancho*alto píxeles, por ejemplo en la demo del Golvelius serían 144x144=20736, y a pesar de eso la rom ocupa 24KB. El límite por ahora para no complicar mucho las cosas es de crear ROMs de hasta 32KB. Si se van a poner mapeados extensos y no se quiere usar un megarom, siempre se podrá comprimir e ir descomprimiendo a ram.
¿Que os parece? ¿Alguna pregunta? ¿Alguien se animaría a utilizarla?
¡Espero que en breve pueda poner alguna beta disponible!