Cuelgo un pequeño código en c para z88dk que he preparado para dar un ejemplo a unos amigüitos programadores con churrera.
El concepto no es nada nuevo y se pueden encontrar varios ejemplos en la red: Se trata de cambiar los colores durante el refresco de pantalla para dar la impresión de tener más que los que soporta el CPC. Tiene limitaciones como que no se pueden hacer todos los cambios de color que se quiera y donde se quiera y que consume recursos porque anda esperando para hacer la sincronización en el cambio pero puede quedar bastante aparente.
#include “cpcrslib.h”
void sincroniza(){
#asm
ld b,0xf5
.vsync
in a,(c)
rra
jr nc,vsync
halt
halt // Una pequeña espera para entrar el primer color en zona visible
#endasm
cpc_SetColour(3,14); // Se cambia el color de la tinta 3
cpc_SetColour(2,0x0d); // Se cambia el color de la tinta 2
cpc_SetColour(1,0x0a); // Se cambia el color de la tinta 1
// Se puede cambiar cualquier tinta, tambien el borde (tinta 0×10) y el fondo (tinta 0)
#asm
halt // Otra espera para alargar el cambio de color
ld b,100
.bucp
nop
djnz bucp
#endasm
cpc_SetColour(3,34); //Segundo color para la misma tinta 3
cpc_SetColour(2,7); // Se cambia el color de la tinta 2
cpc_SetColour(1,0x0c); // Se cambia el color de la tinta 1
}
main(){
cpc_SetModo(1); //Set mode 0 using firmware
cpc_DisableFirmware();
// Incialmente, todito en negro oscuro
cpc_SetColour(0,0×14); // Fondo
cpc_SetColour(0×10,0×14); //borde
cpc_SetColour(1,0×14);
cpc_SetColour(2,0×14);
cpc_SetColour(3,0×14);
// Tintas en los textos:
cpc_SetInkGphStr(0,128);
cpc_SetInkGphStr(2,130);
cpc_SetInkGphStr(1,10);
cpc_PrintGphStrXYM1(“ESTO;ES;UNA:PRUEBA;DE;COLORES<”,20,10);
cpc_PrintGphStrXYM1(“ESTO;ES;UNA:PRUEBA;DE;COLORES<”,20,20);
cpc_PrintGphStrXYM1(“ESTO;ES;UNA:PRUEBA;DE;COLORES<”,20,30);
cpc_PrintGphStrXYM1(“ESTO;ES;UNA:PRUEBA;DE;COLORES<”,20,40);
cpc_PrintGphStrXYM1(“ESTO;ES;UNA:PRUEBA;DE;COLORES<”,20,50);
cpc_PrintGphStrXYM1(“ESTO;ES;UNA:PRUEBA;DE;COLORES<”,20,60);
cpc_PrintGphStrXYM1(“<<<<<<<;CPCRSLIB;2010;<<<<<<<<”,20,180);
while(1){ //bucle principal
sincroniza(); //se ejecutaría todo el rato
}
}
¡Larga vida!
Este año en RetroMadrid se presentó el pack #1 de juegos ESP Soft el cual fue un éxito, se vendieron las 15 que sacamos. Bueno, mejor dicho, que se encargó el amigo David (6128) de sacar ya que él promovió toda la historia, desde convencernos para sacar el pack hasta [...]
Tenía curiosidad por ver cómo estaba hecho el juego Sol Negro de Opera Soft, principalmente en cómo gestiona la pantalla así que me puse a mirar un poco las tripas del mismo con el WinApe que para esto da muchas facilidades. ¿Por qué de mi curiosidad? Pues porque me llamó [...]
Tras un arreón estos últimos días, ya tengo portada la librería para SDCC. Ahora llega la fase de ponerla bonita y testearla profundamente. Afortunadamente no me estoy encontrando muchos errores y, en el proceso de portado, alguna mínima modificación/optimización sí que se ha ganado con lo que alguna mejora habrá. [...]
Eres el más grande, pichurri