Este libro, aunque tiene una pequeña introducción al Assembly y al C64, va directo al desarrollo de un juego en ASM. Este lo dejo para más adelante, dado que quiero repasar bien lo básico con respecto al C64.
Aquí voy escribiendo mis cositas y es también para referencia rápida.
El plan es ir publicando cosas sueltas, que me parecen interesantes mientras voy construyendo una librería propia en ASM, para mis desarrollos en el C64.
También iré haciendo cositas del ZX Spectrum, en medio, para no perder la costumbre.
Rememorando libros que tengo por ahí de programación en BASIC para Commodore 64 me acordé de un ejemplo que vi en el que se "pinta" un globo.
Usando caracteres en BASIC y luego mediante un algoritmo, se convierte el globo en un Sprite y se pinta en pantalla.
El ejemplo es muy bueno, dado que usa los conceptos básicos del uso de un Sprite y se usa un pequeño algoritmo para pasar ese dibujo en caracteres a pantalla.
En la segunda imagen, se ve que hay tres bucles anidados, para ir leyendo los caracteres contenidos en el DATA e ir calculando el valor para el Sprite.
Es un truco muy chulo, pero sumamente lento. Está muy bien, para aprender pero nada más.
Además, va imprimiendo en pantlla el valor entero (de o a 253) de cada cálculo del Sprite.
Os dejo una imagen de disco D64 para poder cargar el código fuente en un emulador en este enlace.
Solo recordar que hay tres entradas, cubriendo el tema de los Sprites, junto con una herramienta de desarrollo en este mismo blog, por si interesa profundizar en el tema.
Hace un tiempo recomendé el entorno de desarrollo para Commodore 64, el CBM .prog Studio.
Aunque tiene carencias básicas con respecto a lo que estoy acostumbrado para el ZX Spectrum (BasinC), como por ejemplo, la imposibilidad de depurar código BASIC, es un entorno bastante completo y que tiene una organización estructural muy buena para el desarrollo de proyectos para el Commodore 64.
Voy a aprovechar que quiero refrescar los conceptos básicos del manejo de Sprites desde el BASIC del Commodore 64, para darle visibilidad a esta herramienta de desarrollo.
Si lo que queremos es desarrollar en ensamblador, la situación es distinta. Para código ensamblador el entorno sí que permite depuración y está mucho más avanzado.
Aprovecharé entonces, el repaso que vamos a hacer de los Sprites en BASIC, para utilizar determinada funcionalidad del entorno CBM .prog Studio y así darlo a conocer.
Lo primero que tenemos que hacer es descargarlo e instalarlo.
Además, si no tenemos el emulador VICE funcionando, nos haremos con él y lo instalaremos también.
Con ambas cosas ya instaladas, lo primero es configurar el CBM .prog Studio para decirle en que directorio por defecto nos creará los proyectos y donde reside el emulador VICE.
En el menú "Tools, Options" podemos definir el valor del directorio por defecto para nuestros proyectos.
Luego nos vamos a "Emulator Control" y le damos el directorio donde tenemos instalado el emulador VICE.
No hace falta tener un proyecto ya abierto para hacer esta configuración, la podemos hacer sin ninguno abierto.
Ahora, procedemos a crear un nuevo proyecto.
El entorno tiene plantillas de proyecto para proyectos tipo BASIC y tipo ensamblador.
Nos vamos a "File" y a "New basic Project".
Nos mostrará una ventana emergente, donde podemos personalizar.
Esta es la pinta que tendrá nuestro entorno:
Ya estamos listos para comenzar con nuestro código.
Una cosa MUY importante que tenemos que hacer, si no queremos recibir petardazos continuamente, es modificar las propiedades del proyecto para decirle cual es el programa principal.
Por defecto lo trata de "adivinar", dado que puede haber código BASIC y ensamblador mezclado, pero esto está dando problemas, si sólo tenemos BASIC.
Así que a "Project", Properties y le decimos que solo compile nuestro programa principal.
Vamos a usar "El Editor de Pantallas" para crearnos una pantalla chula como comienzo del programa.
Botón de la derecha en "Screen Designs" y añadimos uno nuevo.
Luego con doble click abrimos el editor.
Este editor nos deja trabajar tanto con los dos set de caracteres por defecto como con los que hallamos creado nosotros.
Yo me he hecho una pantalla tal que así:
Las posibilidades las podéis explorar, yo he usado lo más básico para hacer un marco con un título.
En el menú "File" podemos exportar a código BASIC, lo que nos abrirá la ventana de "Preview". De ahí podemos copiar y pegar en nuestro código.
Luego de pegado, lo apañamos lo re - numeramos y lo que nos parezca.
En el siguiente capítulo editaremos un sprite y lo cargaremos en pantalla, para lo cual refrescaremos los conceptos básicos para manejar Sprites desde C64 BASIC.
El proyecto completo lo puedes descargar de este enlace.
Me puse como objetivo encontrar un entorno de programación gráfico al estilo de BasinC para ZX Spectrum.
La idea es tener una GUI (Graphical User Inerface) con todas las herramientas necesarias para la programación BASIC del Commodore 64 en nuestro PC. No solamente código fuente, sino herramientas gráficas y de sprites, manuales y otro tipo de complementos que nos permitan hacer todo desde un mismo sitio.