Autor Tema: Cargando bitmaps en Basic.  (Leído 4070 veces)

Dr.Fred

  • Commodoremaníaco
  • ****
  • Mensajes: 144
    • Ver Perfil
Cargando bitmaps en Basic.
« en: Mayo 16, 2010, 18:13:41 »
Hola.
Intento cargar un Bitmap creado con el GangEd, que recomendó Carlos, a través de Basic, pero no lo consigo.

Os explico los pasos que estoy siguiendo, a ver si alguien em puede echar una mano.

- Importo una imagen cualquiera con el GangEd.

- La salvo como "multicolor bitmap mode", y como "bitmap data $2000-$3FFF" que intuyo que será la dirección de memoria donde lo va a alojar. Esto me crea un .prg.

- Arranco en VICE ese .prg para que me importe los datos a la memoria y luego creo el siguiente programa para poner en modo bitmap y mostrarlo.

[code]
3   POKE 53272, PEEK(53272) OR 8 <---Dirección que apunta donde me ha guardado el bitmap.
4   POKE 53265, PEEK(53265) OR 32 <--- iniciar modo bitmap
5   POKE 53270, PEEK(53270) OR 16 <--- poner modo bitmap multicolor
[/quote]

He probado a quitar la linea 5 que activa el modo multicolor, y me muestra esto:




Cuando la imagen que debería mostrar es esta:



Por lo que algo me está fallando, pero creo que estoy cerca y no tengo ni idea de que puede ser.

¿Alguien me puede echar una mano?

The_WOZ

  • Commodorista
  • ***
  • Mensajes: 94
    • Ver Perfil
Cargando bitmaps en Basic.
« Respuesta #1 en: Mayo 17, 2010, 05:24:32 »
Hola Dr.Fred, lo que te esta pasando es que solo has exportado los datos del bitmap, te faltan la matriz de video (videomem $0400-$07E7) y la RAM de color (colormem $D800-DBE7).

Tienes que exportar las tres partes y luego cargarlas por separado en tu programa BASIC, pero ten en cuenta que la RAM de color no se puede cargar directamente. Tienes que cargarla a una dirección distinta y luego copiar los 1000bytes correspondientes hacia la RAM de color que comienza en 55296 ($D800).

Otro detalle es que al cargar la matriz de video vas a perder lo que tengas en la pantalla de texto BASIC. Y cualquier print que hagas mientras estes en modo grafico va a destruir la información de color de la imagen.


Espero esto te sirva de ayuda.

Saludos.

Carlos

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 639
    • Ver Perfil
Cargando bitmaps en Basic.
« Respuesta #2 en: Mayo 17, 2010, 09:20:28 »
The_WOZ te lo ha explicado perfectamente. Además de la información del bitmap que son 8k, necesitas cargar la RAM de pantalla y la RAM de color. Al igual que si quisieras crear una imagen mediante caracteres también deberías de cargar además del propio juego de caracteres (2k), la memoria de pantalla y la de color.

En cualquier caso... tu no estabas trabajando en C?  :o

Dr.Fred

  • Commodoremaníaco
  • ****
  • Mensajes: 144
    • Ver Perfil
Cargando bitmaps en Basic.
« Respuesta #3 en: Mayo 18, 2010, 23:52:11 »
Bueno Carlos, voy haciendo chapucillas con todo, según voy viendo.   :D

Muchas gracias a los dos. Creo que ya lo he entendido. A ver si tengo algo de tiempo mañana para hacer alguna prueba.

Saludos!

Dr.Fred

  • Commodoremaníaco
  • ****
  • Mensajes: 144
    • Ver Perfil
Cargando bitmaps en Basic.
« Respuesta #4 en: Mayo 18, 2010, 23:59:29 »
...bueno. Una pequeña duda tonta más. ¿De qué me valdría salvarlo en formato Koala o Doodle?
No entiendo muy bien... son solamente editores, ¿no?

Carlos

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 639
    • Ver Perfil
Cargando bitmaps en Basic.
« Respuesta #5 en: Mayo 19, 2010, 09:42:23 »
Yo te diría que te centraras más en C y poco a poco ir experimentando algunas cosas con ensamblador, tiene muchas más posibilidades que el BASIC y no cogerás malos vicios.

Sobre la otra pregunta, del Doodle no tengo ni idea. El Koala Paint, además de un editor, es un formato gráfico y es prácticamente un formato 'raw' sino recuerdo mal tenía un par de bytes de cabecera, después 8k de bitmap y posteriormente 1000 bytes de la memoria de pantalla y otros 1000 de la de color y poco más por lo que era fácil de interpretar y mostrar por pantalla.

Dr.Fred

  • Commodoremaníaco
  • ****
  • Mensajes: 144
    • Ver Perfil
Cargando bitmaps en Basic.
« Respuesta #6 en: Mayo 22, 2010, 08:47:00 »
Ya he conseguido cargarlo. Muchas gracias por la ayuda!