como se hace poner tiles en screen 4? alguien me ayuda!!!

Door Jose E. Robayo

Supporter (13)

afbeelding van Jose E. Robayo

11-03-2016, 08:33

Podriais poner un pequeño ejemplo de como se mapean y se colocan en pantalla los famosos tiles, estoy buscando por ahi y he intentado hacerlo pero no doy con la tecla... si algun alma caritativa puede poner un ejemplo de como se cambiaria por ejemplo la A.

Mil gracias!!!

Aangemeld of registreer om reacties te plaatsen

Van Josb

Master (196)

afbeelding van Josb

11-03-2016, 08:52

10 screen1
20 width32
30 screen4
40 poke&hfcaf,1
50 ' ahora redefinir set caracteres como en screen1

Y para cambiar la A

60 fori=65*8 to 65*8+7
70 vpoke i,255
80 next

Van Jose E. Robayo

Supporter (13)

afbeelding van Jose E. Robayo

11-03-2016, 09:57

Gracias por la rapidez... pero...

Puff... lo he probado y no hace nada, se queda ahi... y no muestra nada, he puesto un print"A" pero nada de nada, pensaba que se habia colgado, pero he escrito sin ver nada screen 0 y ha vuelto...

A ver si entiendo el codigo, la parte de cambiar la A esta claro, accedes a la posicion de memoria de la letra a y reescribes con todo relleno, o sea, que creas un cuadrito

En la primera parte de pones en screen 1 luego pasas a screen 4, y me imagino que con el poke haces creer que esta otra vez en screen 1 supongo, no se a donde apunta esa direccion.

y para visualizar la letra, he probado con locate pero tampoco sale y ni cambiando el color...

Me cuesta entender esto de los accesos a memoria...

Van Josb

Master (196)

afbeelding van Josb

11-03-2016, 11:32

Crees bien, el poke es para engañar al interprete basic. Es una de las muchas variables internas del BASIC que utiliza para su propio funcionamiento.

Y no hace nada (o parece que no hace nada) porque no tiene color, haz color 2,1,1 por ejemplo, a ver si te funciona, si no tendrías que dar color con vpokes a partir de la dirección 8192+65*8 (creo recordar pq estoy hablando de memoria) y luego prueba con print "A".

Van Jose E. Robayo

Supporter (13)

afbeelding van Jose E. Robayo

11-03-2016, 15:58

Ya lo he probado... realmente sale, pero los colores son ahora el martirio... no consigo colorearlos como quiero Crying

Van Josb

Master (196)

afbeelding van Josb

11-03-2016, 17:06

Para que todo te funcione bien en Screen 4 debes hacer lo siguiente:

Primero: copia tu juego de caracteres (el patron) una vez a partir de la dirección 0 de la VRAM, otra vez a partir de la dirección 256*8, y una ultima vez a partir de la dirección 2*256*8.

Segundo: copia los colores asignados a los caracteres, una vez a partir de la dirección 8192, otra vez a partir de la dirección 8192+256*8, y una ultima vez a partir de la dirección 8192+2*256*8

Y ya puedes utiizar Screen 4 en modo texto. Haciendo un programa en BASIC puedes utilizar los prints para imprimir los titles. Este es el modo más sencillo para hacerlo si no quieres complicarte la vida con el ensamblador y los registros de la VDP.

Para configurar los colores tienes que tener en cuenta que por cada caracter se puede asignar un total de 2 colores por cada línea, por lo que para cada caracter tendrás que hacer 8 vpokes para asignarles el color. Por ejemplo para la A se puede asignar diferentes colores a cada línea(en el primer banco) con el siguiente código:

vpoke 8192+65*8,&H12
vpoke 8192+65*8+1,&HFA
vpoke 8192+65*8+1,&H22
...
vpoke 8192*65+7,&H54

para los otros dos bancos solo hay que cambiar la dirección 8192 por la dirección que corresponda.

si te fijas los valores introducidos en hexadecimal van correspondiendo al color de fondo y tinta del caracter conjuntamente.

Lo ideal de este método es que una vez que tengas el set de caracteres a tu gusto (junto con sprites, etc, etc) lo puedes grabar con BSAVE"SET.GRF",0,16*1024,s (que te graba los 16 kb de la VRAM que equivalen a la VRAM del MSX1) y luego solo tienes que hacer BLOAD"SET.GRF",S para poder utilizar el subsodicho set directamente o en modo texto engañando al BASIC.

Van Jose E. Robayo

Supporter (13)

afbeelding van Jose E. Robayo

12-03-2016, 09:43

Ostras Siii... ahora ya sale algo... muchiiiisimas gracias, sin tu ayuda me habria vuelto loco porque no lo entendia. Gracias de nuevo.

Van Josb

Master (196)

afbeelding van Josb

12-03-2016, 13:11

de nada y bienvenido Smile

Van mohai

Paladin (841)

afbeelding van mohai

16-03-2016, 20:03

Para que te hagas una idea, en los modos gráficos, como screen 4 o 2, se pueden usar los tiles o caracteres y podrás redefinirlos como lo harías en screen 0 o 1.
Para ello tienes que escribir en la RAM de vídeo con los vpokes, como ya sabes.
La diferencia es que en los modos gráficos no hay ningún carácter predefinido y el comando print no funciona (al menos el print a secas).
Cuando inicias screen 2 o 4, la RAM de video se borra. La pantalla está vacía. Lo que quiere decir que los colores están con el valor del color de fondo todos y los gráficos de los tiles están a 0.
Para definir los tiles lo puedes hacer de 2 maneras: dibujando con commandos gráficos, tipo line, pset, etc o escribiendo directamente a VRAM en la zona de gráficos y en la zona de colores.
La segunda forma forma es similar a como lo harías en ensamblador.
Para no perderte, lo mejor es que tengas a mano una chuleta con el mapa de pantalla para el screen que uses.