Karoshi MSX Community
06 de Julio de 2021, 12:05:23 am *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión
Noticias:
 
   Inicio   Ayuda Buscar Ingresar Registrarse  
Páginas: 1 [2] 3
  Imprimir  
Autor Tema: USO DE VPEEK Y VPOKE  (Leído 16993 veces)
0 Usuarios y 1 Visitante están viendo este tema.
jltursan
Karoshi Forum's Guru
*******
Mensajes: 1516


¿Que es lo que has aprendido hoy?


WWW Email
« Respuesta #15 : 07 de Octubre de 2007, 02:20:02 pm »

Exacto, relacionadas con los sprites sólo tenemos dos tablas: la primera contiene lo que ya has visto, 4 datos X 32 sprites simultaneos que se permiten en el MSX (128 bytes totales de longitud) y la segunda es la de definicion de los sprites, que es donde defines el aspecto que tendrá cada sprite.
Esta última tabla tiene 2K de tamaño y eso determina lo siguiente:

Si se usan sprites de 8x8 (8 bytes de tamaño cada sprite): 2048/8 = 256 sprites diferentes que pueden ser definidos.
Si se usan sprites de 16x16 (32 bytes de tamaño cada sprite): 2048/32 = 64 sprites diferentes que pueden ser definidos.

Como ya te ha dicho Sapphire, el valor que metes en su area de atributos es el número de sprite definido que quieres mostrar. ¡Ojo!, en caso de usar sprites de 16x16, el número de sprites será siempre un múltiplo de cuatro (0,4,8,12,etc.).
En línea

Doom dee doom dee doom
msx dummie
Karoshi Lover
***
Mensajes: 162



Email
« Respuesta #16 : 07 de Octubre de 2007, 04:04:08 pm »

estoy en ello, muchas gracias a todos por vuestra paciencia...
En línea
msx dummie
Karoshi Lover
***
Mensajes: 162



Email
« Respuesta #17 : 26 de Octubre de 2007, 01:47:17 pm »

bueno masters...

Sigo estudiando la estructura del vdp y los distintos modos de pantalla, ayer estuve dandole unas vueltas y me surgen nuevas dudas, asi que aqui van, espero que podais ayudarme:

En Screen 1 es posible utilizar sprites ademas de texto, esto me hace pensar que podria vpokear los caracteres de texto para definir "bloques" para los escenarios, pero ¿para los sprites? existe un lugar en la vram para almacenarlos en screen 1? o es la misma dirección que para screen 2?
me refiero al margen de la asignada al texto.

espero ansioso la respuesta Grin muchisimas gracias a todos!
En línea
jltursan
Karoshi Forum's Guru
*******
Mensajes: 1516


¿Que es lo que has aprendido hoy?


WWW Email
« Respuesta #18 : 26 de Octubre de 2007, 01:54:53 pm »

Pues en principio es la misma; así que vas bien encaminado...  Smiley
En línea

Doom dee doom dee doom
msx dummie
Karoshi Lover
***
Mensajes: 162



Email
« Respuesta #19 : 26 de Octubre de 2007, 04:05:23 pm »

que bien!
entonces si quisiera hacer un "escenario" podria diseñarlo con bloques imagino que ¿con print? ¿asi tal cual?
y despues almacenar mediante BASE los sprites y ¿colocarlos con PUT SPRITE?
¿QUEDAN ESTOS EN UN PLANO SUPERIOR A LOS CARACTERES?

Graaacias!
En línea
cybernoid
Karoshi Maniac
****
Mensajes: 368



WWW
« Respuesta #20 : 26 de Octubre de 2007, 04:17:57 pm »

que bien!
entonces si quisiera hacer un "escenario" podria diseñarlo con bloques imagino que ¿con print? ¿asi tal cual?
y despues almacenar mediante BASE los sprites y ¿colocarlos con PUT SPRITE?
¿QUEDAN ESTOS EN UN PLANO SUPERIOR A LOS CARACTERES?

Graaacias!

Si, puedes hacerlo con PRINT y si, quedan los Sprites en un plano superior Smiley
En línea
jltursan
Karoshi Forum's Guru
*******
Mensajes: 1516


¿Que es lo que has aprendido hoy?


WWW Email
« Respuesta #21 : 26 de Octubre de 2007, 06:08:29 pm »

Aja, tal que así. Por cierto, no acabo de pillarte eso del BASE, supongo que te referirás a que con el BASE obtendrás la dirección en la que comienza la definición de sprites y luego VPOKEarás los datos de cada uno. Si es así, también es correcto...
En línea

Doom dee doom dee doom
msx dummie
Karoshi Lover
***
Mensajes: 162



Email
« Respuesta #22 : 26 de Octubre de 2007, 07:15:12 pm »

madre  mia! entonces Screen 1 es una maravilla no?

bueno...  con respecto al color, se supone que permite un color frontal y uno de fondo por cada 8 bites, me imagino que esto será horizontalmente, ya que en el polka por ejemplo te permite color frontal y de fondo por cada linea horizontal de 8 bites, por lo que en un mismo caracter existen mas de un color frontal y uno de fondo...

¿esto es muy complicado de hacer? que cada caracter tenga mas de dos colores, me refiero. ¿cual seria la manera?

y luego cuando tienes digamos el escenario montado...

¿mediante que comandos o rutinas se dice por donde y por donde no va a poder pasar nuestro personaje?

gracias, un saludo!
En línea
SapphiRe_MSX
Visitante
« Respuesta #23 : 26 de Octubre de 2007, 07:20:01 pm »

bueno...  con respecto al color, se supone que permite un color frontal y uno de fondo por cada 8 bites, me imagino que esto será horizontalmente, ya que en el polka por ejemplo te permite color frontal y de fondo por cada linea horizontal de 8 bites, por lo que en un mismo caracter existen mas de un color frontal y uno de fondo...

¿esto es muy complicado de hacer? que cada caracter tenga mas de dos colores, me refiero. ¿cual seria la manera?

Usar Screen 2. En Screen 1 es imposible y el modo mixto no funciona en todos los MSX1 por lo que si no vas a hacer nada específico de MSX2 olvídalo.

Saludos
--
SapphiRe
En línea
msx dummie
Karoshi Lover
***
Mensajes: 162



Email
« Respuesta #24 : 26 de Octubre de 2007, 07:59:28 pm »

que olvide lo de mas de un color o que me olvide de screen 1?

que es el modo mixto?
En línea
Dioniso
Visitante
« Respuesta #25 : 26 de Octubre de 2007, 08:55:22 pm »

que olvide lo de mas de un color o que me olvide de screen 1?

que es el modo mixto?

Primera pregunta:

A ver, SCREEN 1 sólo permite 2 colores por 8 bytes (y no bites, como decías antes), es decir, por cada bloque ("tile" en inglés) de 64 bites; aunque, realmente, los dos colores de cada carácter se agrupan en 8... Que si das color de carácter blanco y fondo azul al carácter "A", eso quiere decir que se lo darás a "A", "B", "C", D", etc... Los grupos van de 8 en 8; que si cambias el color del uno de los caracteres de 64 a 72 (64+8) todos cambiarán. Recuerda: de 8 en 8; 8, 16, 24, 32, 40, 48, 56, 64, ...

xxxxxxxx 8 bites = byte
xxxxxxxx 8 bites = byte
xxxxxxxx 8 bites = byte
xxxxxxxx 8 bites = byte
xxxxxxxx 8 bites = byte
xxxxxxxx 8 bites = byte
xxxxxxxx 8 bites = byte
xxxxxxxx 8 bites = byte

En SCREEN 1, todo ese grupo de "x"s (8 bytes = 1 tile) tendría dos colores únicamente.

En SCREEN 2 cada línea de "x" tendría dos colores; por lo que podrías tener "16" colores (y digo 16 entre comillas porque realmente son 15, ya que el cero hace de transparente) en ese grupo (o "tile") de 64 "x".

Segunda pregunta:

En SCREEN1 redefines todos los caracteres una sola vez, es decir, tienes 256 caracteres (tiles) y los redefines una vez para toda la pantalla. Si escribes "Megaron"  Grin en la primera línea de la pantalla o en la última, las letras tendrán siempre los mismos gráficos.

En SCREEN 2 la pantalla se "divide" en tres tercios. Tienes que redefinir los caracteres 3 veces y los colores tres veces, una por cada carácter; vamos, una putada de mal gaste de tiempo (ciclos?, hercios?, t-states?, etc...)

De hecho, si tienes en cuenta que hay 256 caracteres en una pantalla de 32 caracteres por línea en SCREEN 2 (en SCREEN 2 el máximo es un "WIDTH 32") verás que tienes 8 líneas de 32 caracteres (32 x 8 = 256). Vamos, que 32 caracteres horizontalmente serán 32 (caracteres) x 8 (bites/pixels) = 256, lo que sería el eje X). Y, como hemos dicho, 8 caracteres verticalmente; 8 (caracteres) x 8 (bites/pixels) = 64. Es decir, un tercio de la ordenada Y (3 x 64 = 192).

Como puedes ver, SCREEN 2 tiene "3 veces" más trabajo que SCREEN 1,pero el modo mixto (por fin!!!!!!!! la respuesta a la pregunta!!!!!!!) permite redefinir los caracteres una sola vez, como SCREEN 1 y utilizarlos en toda la pantalla. Para ello ... Pero en fin, que de la MSXdev hay algunos, como el Gniffel, T-Virus, etc ...

Espero que programes cosas y que todo vaya "pa'lante".
En línea
msx dummie
Karoshi Lover
***
Mensajes: 162



Email
« Respuesta #26 : 27 de Octubre de 2007, 01:48:48 pm »

oye muchisimas grácias por la información y felicidades por el T-VIRUS, está muy chulo  Smiley.
lo que pasa que Sapphire comentaba que el modo mixto no funciona bien ¿no es asi?
un saludo!
En línea
Dioniso
Visitante
« Respuesta #27 : 27 de Octubre de 2007, 03:43:33 pm »

oye muchisimas grácias por la información y felicidades por el T-VIRUS, está muy chulo  Smiley.
lo que pasa que Sapphire comentaba que el modo mixto no funciona bien ¿no es asi?
un saludo!

Bueno, pues gracias... El T-Virus fue mi segundo juego en ensamblador, por lo que es un poco caca.

Sobre el modo mixto... pues sí, no es compatible en todos los MSX, tan sólo en un 99% (o un 99,9%  Grin ).

Ahora, que si lo puedes utilizar o no: Claro que sí. Hay quien dice que no se debería porque no guardaría una total compatibilidad con todos los modelos MSX y hay otros, como yo, que lo usarían sin dudarlo. El que tiene uno de esos modelos incompatibles seguramente tenga más modelos MSX que sí son compatibles con el modo mixto. Por cierto, cualquier MSX2 o superior sí es compatible con dicho modo.
En línea
msx dummie
Karoshi Lover
***
Mensajes: 162



Email
« Respuesta #28 : 27 de Octubre de 2007, 05:14:21 pm »

y es posible utilizar ese modo mixto en basic?
porque la verdad, si es compatible al 99,9% Wink yo también soy de la opinión de utilizarlo...

podrias decirme como funciona por favor? creo que ademas tú que ya has hecho un juego así, me podrias ser de mucha ayuda para comprenderlo...

ya me dices, te lo agradeceria mucho, un saludo!
En línea
Dioniso
Visitante
« Respuesta #29 : 27 de Octubre de 2007, 08:09:36 pm »

y es posible utilizar ese modo mixto en basic?
porque la verdad, si es compatible al 99,9% Wink yo también soy de la opinión de utilizarlo...

Pues, en ese caso te remito al tema en cuestión: Aquí

Lee todos los mensajes para comprender mejor de qué va el tema y descárgate el archivo del primer mensaje.

Ya nos contarás...
En línea
Páginas: 1 [2] 3
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.21 | SMF © 2013, Simple Machines XHTML 1.0 válido! CSS válido!