Re: Fourspriter 2.0
Publicado: Mar, 30 Nov 2010, 10:47
Hey, a cabo de ver el 7Up. Con ese me vale de sobra!! Gracias!.
¿Por ahí no había un tutorial? Juraría que sí...
Respecto al fourspriter, recuerdo un truco de radastan que decía que los INC de registros de 16 bits son 2 T-States más lentos que los INC de 8 bits. Estos últimos duran 4 T-States.
Dado que se usa 32 veces por sprite, estaríamos ahorrándonos 32 x 2 = 64 T-States. Creo que es bastante. Entonces habría que alinear los gráficos, aunque se podría desperdiciar memoria. El ensamblador zxbasm ya admite ALIGN.
Si sólo imprimiéramos un sprite, con hacer ALIGN 32, a lo sumo desperdiciaríamos 31 bytes. Como usamos 4 para el fourspriter, sería ALIGN 128 (o sea, 32 * 4). De esa forma nos aseguramos que haciendo inc e siempre estamos sobre el gráfico. El problema es que estaríamos desperdiciando en el peor caso, hasta 127 bytes. Esto se podría solucionar de dos formas:
$this->bbcode_list('1') Haciendo que el compilador escupa por pantalla un mapa de memoria (el ensamblador). De esa forma el programador podría reordenar la declaración de las variables y ahorrar memoria. Intentando que lo haga el compilador (es un problema duro, llamado de mochila). El problemilla aquí es que el compilador no sabe nada de memoria ni de direcciones, sino el ensamblador. Tendría que haber alguna forma de obtener las direcciones de memoria para hacer una reordenación. El punto 1 lo estoy trabajando, de todas maneras.
¿Por ahí no había un tutorial? Juraría que sí...
Respecto al fourspriter, recuerdo un truco de radastan que decía que los INC de registros de 16 bits son 2 T-States más lentos que los INC de 8 bits. Estos últimos duran 4 T-States.
Dado que se usa 32 veces por sprite, estaríamos ahorrándonos 32 x 2 = 64 T-States. Creo que es bastante. Entonces habría que alinear los gráficos, aunque se podría desperdiciar memoria. El ensamblador zxbasm ya admite ALIGN.
Si sólo imprimiéramos un sprite, con hacer ALIGN 32, a lo sumo desperdiciaríamos 31 bytes. Como usamos 4 para el fourspriter, sería ALIGN 128 (o sea, 32 * 4). De esa forma nos aseguramos que haciendo inc e siempre estamos sobre el gráfico. El problema es que estaríamos desperdiciando en el peor caso, hasta 127 bytes. Esto se podría solucionar de dos formas:
$this->bbcode_list('1')