Autor Tema: Sprites desde BASIC  (Leído 28266 veces)

radastan

  • Commodoremaníaco
  • ****
  • Mensajes: 140
  • 8 bits para dominar al Mundo
    • Ver Perfil
    • Bytemaniacos
Sprites desde BASIC
« Respuesta #15 en: Septiembre 07, 2010, 11:58:08 »
Gracias na_th_an, eso buscaba yo. Sólo es para hacer el chorra un poco y ver las limitaciones en los sprites con el C64.

na_th_an

  • Commodorero
  • **
  • Mensajes: 27
    • Ver Perfil
Sprites desde BASIC
« Respuesta #16 en: Septiembre 07, 2010, 17:19:29 »
Lo mejor es usar el "truquillo" que usó Wood en UWOL: Cada sprite en realidad son dos superpuestos: el que hay debajo está en multicolor y define las zonas de color del gráfico, y el que hay arriba está en alta resolución y define la linea externa y los detalles. Fíjate:


Bieno

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 3980
  • PRINT"ADORA A TU COMMODORE"
    • Ver Perfil
    • bieno64
Sprites desde BASIC
« Respuesta #17 en: Septiembre 07, 2010, 17:47:26 »
Este truquillo es muy bueno y lo usan muchos para hacer sprites en HIRES (Alta Resolución)

NicoGalis

  • Commodore Master
  • *****
  • Mensajes: 269
    • Ver Perfil
Sprites desde BASIC
« Respuesta #18 en: Septiembre 08, 2010, 22:03:06 »
Ya por 1984 empesaron algunas compañias a utilizar este truco para darle una mejor calidad y acabado a los sprites en commodore, compañias como Imagine y Ocean explotaron esta tecnica en sus juegos, yo precisamente lo he utilizado para hacer los sprites de un juego de coches...

Carlos

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 652
    • Ver Perfil
Sprites desde BASIC
« Respuesta #19 en: Septiembre 09, 2010, 10:02:49 »
El problema de usar la técnica de sprites multicolor superpuestos con sprites hires son básicamente dos:

- Te quedas más rápido sin sprites disponibles (recordemos que tenemos 8 sprites hardware). Esto implica que si queremos tener varios personajes en pantalla tenemos que tirar con casi toda seguridad de un multiplexor de sprites para poder mostrar más de 8 sprites a la vez.

Otra opción es sólo usar esta técnica en el personaje principal y que los enemigos estén construidos únicamente en multicolor. A mi esto no me acaba de convencer, por ejemplo el Batman de Ocean lo usa y los enemigos 'cantan' demasiado respecto al personaje de Batman, aunque es cierto que otros juegos como el Mayhem in Monsterland lo hace con resultados excelentes.

- Se necesita mucha mas memoria para almacenar las definiciones o patrones de cada fotograma de los sprites, en el ejemplo del UWOL se doblaría la memoria necesaria para el personaje. Esto puede llegar a ser un problema bastante importante, lo digo por propia experiencia...


Eso si, los resultados que se pueden llegar a conseguir con esta técnica son espectaculares  :D

radastan

  • Commodoremaníaco
  • ****
  • Mensajes: 140
  • 8 bits para dominar al Mundo
    • Ver Perfil
    • Bytemaniacos
Sprites desde BASIC
« Respuesta #20 en: Septiembre 09, 2010, 10:09:41 »
Una pregunta de novato... ¿cuál es el tamaño de cada sprite?

Carlos

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 652
    • Ver Perfil
Sprites desde BASIC
« Respuesta #21 en: Septiembre 09, 2010, 10:44:02 »
Cita de: "radastan"
Una pregunta de novato... ¿cuál es el tamaño de cada sprite?


24x21 en modo hires y 12x21 en modo multicolor.

radastan

  • Commodoremaníaco
  • ****
  • Mensajes: 140
  • 8 bits para dominar al Mundo
    • Ver Perfil
    • Bytemaniacos
Sprites desde BASIC
« Respuesta #22 en: Septiembre 09, 2010, 10:47:48 »
Cita de: "Carlos"
Cita de: "radastan"
Una pregunta de novato... ¿cuál es el tamaño de cada sprite?


24x21 en modo hires y 12x21 en modo multicolor.


Que cosa más rara de resolución, sobre todo por el 21 (¡impar!). Desde el punto de vista electrónico no tiene mucho sentido, pero alguna razón tendrá.

¿Alguna particularidad especial? lo digo por si no se pueden poner en línea más de x, superpuestos más de x, etc.

Carlos

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 652
    • Ver Perfil
Sprites desde BASIC
« Respuesta #23 en: Septiembre 09, 2010, 11:04:22 »
Cita de: "radastan"
Cita de: "Carlos"
Cita de: "radastan"
Una pregunta de novato... ¿cuál es el tamaño de cada sprite?


24x21 en modo hires y 12x21 en modo multicolor.


Que cosa más rara de resolución, sobre todo por el 21 (¡impar!). Desde el punto de vista electrónico no tiene mucho sentido, pero alguna razón tendrá.

¿Alguna particularidad especial? lo digo por si no se pueden poner en línea más de x, superpuestos más de x, etc.


Cada patrón o definición de sprite (es decir, la imagen mostrada en pantalla asociada a cada sprite) ocupa 64 bytes: 24x21=504 pixels / 8 (pixels/byte) = 63 bytes, el byte 64 realmente no vale para nada y sólo está por un tema de convertir el tamaño de la definición del sprite en una potencia de 2.

En cuanto a las limitaciones que preguntas, por cada línea de pantalla (rasterline) sólo puede haber un máximo de 8 sprites, si no coinciden en líneas y usando un multiplexor se pueden llegar a alcanzar muchos mas (hasta 16 o 20 fácilmente).

radastan

  • Commodoremaníaco
  • ****
  • Mensajes: 140
  • 8 bits para dominar al Mundo
    • Ver Perfil
    • Bytemaniacos
Sprites desde BASIC
« Respuesta #24 en: Septiembre 09, 2010, 11:11:09 »
¿En qué consiste la multiplexación de sprites? ¿cómo se hace?

Carlos

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 652
    • Ver Perfil
Sprites desde BASIC
« Respuesta #25 en: Septiembre 09, 2010, 11:48:36 »
Cita de: "radastan"
¿En qué consiste la multiplexación de sprites? ¿cómo se hace?


De modo sencillo.. básicamente consiste en reutilizar los 8 sprites hardware disponibles engañando al VIC (chip gráfico).

Por ejemplo, sabiendo que la pantalla la genera el haz de electrones de izquierda a derecha y de arriba a abajo y que el VIC muestra los sprites en las posiciones de pantalla que le indican ciertos registros, consistiría en modificar el registro del VIC que apunta al patrón o definición del sprite una vez que ya haya mostrado completamente el anterior en pantalla, esto se hace mediante la programación de las interrupciones raster. De este modo con un mismo sprite hardware podemos mostrar 2 (o más) sprites en pantalla, si esto lo hacemos para los restantes 7 ya podríamos mostrar hasta 16 sprites a la vez.

Esto tiene mucha mas chicha de la que parece ya que es necesario un algoritmo de ordenación antes de mostrarlos, asegurarte que no se solapan en ninguna rasterline, ... espero que haya quedado minimamente claro  :)

NicoGalis

  • Commodore Master
  • *****
  • Mensajes: 269
    • Ver Perfil
Sprites desde BASIC
« Respuesta #26 en: Septiembre 09, 2010, 16:43:27 »
Jo jo jo! Radas te vas a poner al día sobre todas la técnicas de commodore en menos que canta un gallo, es bueno saber todas estas cosas si quieres hacer juegos mas ambiciosos, yo soy totalmente partidario de utilizar los sprites en alta, y coincido contigo  Carlos en que no me gusta el resultado que da utilizar esta técnica solo en los protagonistas, juegos como Navy Seals o Target Renegade tiene unos sprites espectaculares, otro caso que me llama la atención es la del Bubble Bobble, esta multiplexado o son sprites por software?

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 13715
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Sprites desde BASIC
« Respuesta #27 en: Septiembre 09, 2010, 17:39:07 »
Para portar los juegos mojonos, que casi siempre usan pocos sprites (de hecho si usan la FourSpriter son sólo 4) entonces es mas que suficiente los 8 de C64, incluso usando un sprite doble para el protagonista y demás.
www.retroinvaders.com | www.commodoreplus.org  | josepzin.blogspot.com

na_th_an

  • Commodorero
  • **
  • Mensajes: 27
    • Ver Perfil
Sprites desde BASIC
« Respuesta #28 en: Septiembre 09, 2010, 17:55:09 »
Por ahora, el único juego que usa fourspriter es el que venía de ejemplo con la biblioteca, el "Kurashiku Nihondo Monsuta Shiro 3" :D

Casi todos los demás de todos modos, usan 4 sólo (excepto Zombie Calavera Prologue, que tiene además 3 proyectiles - de todos modos, en este juego sólo necesitaríamos un sprite por móvil, ya que como son sombras chinescas, con uno en alta nos vale), así que el port usando 2 sprites por cada muñecajo sin tener que hacer encajes de bolillos siempre es posible.

NicoGalis

  • Commodore Master
  • *****
  • Mensajes: 269
    • Ver Perfil
Sprites desde BASIC
« Respuesta #29 en: Octubre 05, 2010, 19:43:50 »
Me he acordado que tengo algunos sprites dibujados de hace algún tiempo con  esta técnica y la verdad es que se pueden conseguir unos sprites de lujo para los juegos, lo malos es la memoria y el numero de sprites que utilizas.



Uploaded with ImageShack.us