Re: FASE (Fucking Awesome Spectrum Engine)
Publicado: Mié, 18 Jun 2014, 12:34
Gracias nath, acabo de probarla pero me parpadea y la de antonio se veía bien
$this->bbcode_second_pass_code('', '
void draw_fast_str () {
unsigned char *address;
unsigned char i;
unsigned char c;
unsigned char * s = g_string;
//whiteout_everything ();
address = (unsigned char *) (22528 + g_str_x + (g_str_y << 5)) | *shadow << 8;
ncx [0] = g_str_x;
ncy [0] = g_str_y;
while ((*s) != 0) {
c = (*s);
ncn [0] = c - 32;
draw_char ();
*address = g_color;
address ++;
s++;
}
}
')
La versión que he adaptado a partir de showscore de antonio...
$this->bbcode_second_pass_code('', '
void show_str()
{
unsigned char * s = g_string;
while (*s) {
_print_char( g_str_x++, g_str_y, *s++);
}
}
void _print_char(unsigned char x, unsigned char y, char chr)
{
unsigned int scr, dst;
char count;
scr= 0x3c00 + chr * 8;
// no fona para mayores de 8
dst= (y * 0x20 ) + x + 0x4000 | *shadow << 8;
for ( count= 0; count < 8; count++ )
{
zxmem[dst] = zxmem[scr++] ^ 0xff;
dst+= 0x100;
}
}')
$this->bbcode_second_pass_code('', '
void draw_fast_str () {
unsigned char *address;
unsigned char i;
unsigned char c;
unsigned char * s = g_string;
//whiteout_everything ();
address = (unsigned char *) (22528 + g_str_x + (g_str_y << 5)) | *shadow << 8;
ncx [0] = g_str_x;
ncy [0] = g_str_y;
while ((*s) != 0) {
c = (*s);
ncn [0] = c - 32;
draw_char ();
*address = g_color;
address ++;
s++;
}
}
')
La versión que he adaptado a partir de showscore de antonio...
$this->bbcode_second_pass_code('', '
void show_str()
{
unsigned char * s = g_string;
while (*s) {
_print_char( g_str_x++, g_str_y, *s++);
}
}
void _print_char(unsigned char x, unsigned char y, char chr)
{
unsigned int scr, dst;
char count;
scr= 0x3c00 + chr * 8;
// no fona para mayores de 8
dst= (y * 0x20 ) + x + 0x4000 | *shadow << 8;
for ( count= 0; count < 8; count++ )
{
zxmem[dst] = zxmem[scr++] ^ 0xff;
dst+= 0x100;
}
}')