Este proyecto tiene varias cosas interesantes:
- Se usan sprites que se mueven por basic, pokeando al VIC. La verdad es que me ha sorprendido que el juego NO ES MUCHO MAS lento de esta manera que moviendo tiles. Lo que igual pierdes haciendo pokes, lo ganas por otro lado, ya que no tienes que borrar el personaje en el fotograma anterior
- Al usarse sprites y querer usar la fuente estándar, la pantalla tiene que moverse al banco 2 de la RAM (desde el punto de vista del VIC). Podría haber movido la memoria del basic hacia adelante (HIMEM), pero me parecía más complicado y quería tener todo el programa en un bloque. De esta manera, el menú principal se muestra en $0400. El registro de la pantalla no se toca, ya que la posición de la pantalla pasa a ser $8400 en el banco 2, y las definiciones de los sprites están de $8800 en adelante. En el banco 2 está cableado el charset en las mismas posiciones que en el Banco 0, por lo que este registro del VIC no se toca tampoco.
-Sé que es totalmente ineficiente definir DATAS con la definición de los gráficos para pokear en la RAM (pierdes el doble de espacio), pero es por conservar el espíritu de los listado de la MH. Eso si, el "pokeo" sólo tiene lugar en el arranque, ya que tarda lo suyo. Durante el proceso apago el renderizado de pantalla para que se acelere todo un poco.
-Ya que el menú y la pantalla de juego están en lugares diferentes, intenté evitar su repintado en sucesivas partidas (como evito el pokeo)....pero me dió algo de pereza por culpa de la ColorRAM, que sí es compartida ya que es única.....hice la optimización, pero después me di cuenta de que no se repintaba bien porque se quedaba la ColorRam de la pantalla de juego y se aplicaba al menú....esto se lo dejo de pasatiempo al que quiera divertirse un rato
