Autor Tema: Sobre modos graficos del C64.  (Leído 20423 veces)

marcos64

  • Commodore Master
  • *****
  • Mensajes: 2970
    • Ver Perfil
    • http://marcos64.orgfree.com/
Sobre modos graficos del C64.
« Respuesta #30 en: Enero 30, 2011, 15:39:11 »
Cita de: "toniman"
Hola chicos, unas preguntillas sobre graficos del C64,
¿Cual es el numero de tiles de fondo que caben en la memoria?
Tanto si son multicolor como en modo multicolor bitmap,

Si una pantalla bitmap ocupa 10 kb, entonces 256 tiles de fondo no serian toda una pantalla, ocuparia menos de 10 kb entonces no? y si es en modo multicolor, que ocupa 7 kb, entonces 256 tiles ocuparian menos :)


Creo que me he perdido, no se a que te refieres. Una pantalla esta formada por 40 x 25 caracteres, es decir 1000 caracteres.

Ahora bien, lo que ocupan es un poco mas 'complicado'. Por un lado si utilizas los caracteres de usuarios pues lo que ocupen, son 256 o 512? (no me acuerdo ahora mismo). Y luego los 1000 caracteres de la pantalla con su correspondiente informacion de color. Es decir 1000 bytes + 1000 bytes (el color en realidad no son bytes sino 4 bits pero creo que a efectos practicos ocupan el byte completo).

Es decir una pantalla de caracteres ocupa unos 2KB mas los 8KB (creo) que ocupan los caracteres de usuario. Lo normal en un juego es que solo tengas un juego de caracteres para todas las pantallas, con lo cual si haces 10 pantallas ocuparian 20KB +8KB. Es como un juego de construccion, por un lado tienes las piezas y con ellas, combinandolas de diferentes formas, obtienes las diferentes pantallas. En relidad siempre se puede hacer que ocupen menos.
http://marcos64.orgfree.com/
Actualizacion 22/4/2018: Actualizada Load'N'Run numero 5 con nuevos TAPs y PRGs.

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 13630
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Sobre modos graficos del C64.
« Respuesta #31 en: Enero 30, 2011, 15:53:26 »
No soy un experto en el tema, pero comento algunas cosas hasta que entre alguno de los expertos :P

En principio yo considero (vamos, que quizas sea algo personal mio) que los tiles son distintos a los caracteres, por ejemplo en modo texto un tile puede estar compuesto por varios caracteres (2x3, 4x3, 2x2) o por 1 (1x1).

En principio un juego de caracteres tiene 256 caracteres redefinibles, pero hay un modo gráfico especial multicolor que son menos.

En pantalla se pueden usar varios juegos de caracteres al mismo tiempo, por ejemplo uno para los escenarios del juego y otro para los marcadores. Esto se logra con una interrupcion vertical del barrido, asi que a partir de cierto punto Y se cambia de juego de caracteres, colores, y asi se puede usar otro juego para otra zona de la pantalla.

Es un tema complicado :D
www.retroinvaders.com | www.commodoreplus.org  | josepzin.blogspot.com

toniman

  • Commodorista
  • ***
  • Mensajes: 92
    • Ver Perfil
Sobre modos graficos del C64.
« Respuesta #32 en: Enero 30, 2011, 16:10:17 »
Si una pantalla hecha en bitmap multicolor que tiene 1000 caracteres, ocupa 10k, si hago un mapa de 256 caracteres en modo bitmap, ocupara 2,5 k no?

Entonces no es mucha memoria la que parece gastar no?
Falken, mandame mi dinero o mi teclado, no vas a quedarte impune por eso, devuelveme lo que es mio y todo arreglado. Sino atente a las consecuencias.

toniman

  • Commodorista
  • ***
  • Mensajes: 92
    • Ver Perfil
Sobre modos graficos del C64.
« Respuesta #33 en: Enero 30, 2011, 16:12:01 »
me refiero a pixeles multicolor, los de 4 colores, pero en el modo bitmap, entonces en vez de 40x25 son 20x25 caracteres?
Falken, mandame mi dinero o mi teclado, no vas a quedarte impune por eso, devuelveme lo que es mio y todo arreglado. Sino atente a las consecuencias.

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 13630
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Sobre modos graficos del C64.
« Respuesta #34 en: Enero 30, 2011, 16:23:18 »
Lo que pasa es que si estas en modo caracteres se supone que vas a utilizarlos para hacer tiles, porque con un juego de caracteres no alcanzas a cubrir una pantalla completa, supongo que harán falta unir varios juegos de caracteres, lo que no tiene sentido ya que al mostrar una pantalla bitmap conviene hacerlo directamente como imagen bitmap y no como caracteres.

Otra cosa, cuando estas en modo multicolor tienes menos resolucion pero la memoria ocupada (y caracteres) es la misma.
www.retroinvaders.com | www.commodoreplus.org  | josepzin.blogspot.com

toniman

  • Commodorista
  • ***
  • Mensajes: 92
    • Ver Perfil
Sobre modos graficos del C64.
« Respuesta #35 en: Enero 30, 2011, 16:38:33 »
Pero creo que no me has entendido cuando digo de usar 256 caracteres para hacer un mapa, es para ahorrar memoria, los juegos de la gameboy de blanco y negro y de la nes, tienen 256 caracteres para los mapeados, me refiero a eso, a usarlo de la misma manera, pero en modo bitmap, mas colores, mas bonito, pero sin necesidad de gastar toda una imagen entera, con un trozo me vale :)
Falken, mandame mi dinero o mi teclado, no vas a quedarte impune por eso, devuelveme lo que es mio y todo arreglado. Sino atente a las consecuencias.

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 13630
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Sobre modos graficos del C64.
« Respuesta #36 en: Enero 30, 2011, 16:42:12 »
Cita de: "toniman"
Pero creo que no me has entendido cuando digo de usar 256 caracteres para hacer un mapa, es para ahorrar memoria, los juegos de la gameboy de blanco y negro y de la nes, tienen 256 caracteres para los mapeados, me refiero a eso, a usarlo de la misma manera, pero en modo bitmap, mas colores, mas bonito, pero sin necesidad de gastar toda una imagen entera, con un trozo me vale :)


Yo creo que puedes plantearlo de la misma manera, ya que aunque estes en modo bitmap se pueden pintar como si fueran caracteres (bueno, alo parecido...). Pero reconozco que aqui voy medio justo y no estoy 100% seguro como va el modo gráfico.

No sé como va Marcos con este tema, sino le doy un toque a Woodmaster para que se pase por aquí, él hizo el Nanako en modo bitmap.
www.retroinvaders.com | www.commodoreplus.org  | josepzin.blogspot.com

marcos64

  • Commodore Master
  • *****
  • Mensajes: 2970
    • Ver Perfil
    • http://marcos64.orgfree.com/
Sobre modos graficos del C64.
« Respuesta #37 en: Enero 30, 2011, 16:44:00 »
Simplificando, o al menos intentandolo.

En modo bitmap tienes o bien 320x200 'monocromo' o 160x200 'multicolor' (con sus diferentes variaciones).

En modo caracteres son siempre 40X25, pero en modo 'multicolor' los caracteres tienen una resolucion de 4x8 en vez de 8x8 del modo 'monocromo'.

La memoria ocupada es simpre la misma, es evidente porque aunque 'no haya nada' en pantalla siempre hay 'algo'. Otra cosa es que si quieres hacer una pantalla que ocupa los 256 caracteres pues almacenada en memoria ocupe esos 256bytes+256bytes+2KB. De todas formas no tiene ninguna utilidad hacerlo asi, mejor directamente en bitmap. Otra cosa es que quieras hacer una demo tecnica o un experimento, pero en la practica no tiene ninguna utilidad. Una vez en pantalla ocupara los 1000bytes+1000bytes+2KB. O sea que si he entendido bien tu pregunta: si, ocupan 2,5KB almacenados en memoria.
http://marcos64.orgfree.com/
Actualizacion 22/4/2018: Actualizada Load'N'Run numero 5 con nuevos TAPs y PRGs.

toniman

  • Commodorista
  • ***
  • Mensajes: 92
    • Ver Perfil
Sobre modos graficos del C64.
« Respuesta #38 en: Enero 30, 2011, 16:48:42 »
Lo que quiero es hacer un mapeado que sea como dos pantallas de largo, pero no quiero gastar 20 kb en ello(las dos pantallas completas), asi que usando solo 256 caracteres para montar un mapeado, me ahorrare bastante.
Asi seria un juego bonito, usando el modo bitmap, pero reduciendo el numero de caracteres en los graficos.

Soporta el charpad el modo multicolor bitmap?
Falken, mandame mi dinero o mi teclado, no vas a quedarte impune por eso, devuelveme lo que es mio y todo arreglado. Sino atente a las consecuencias.

marcos64

  • Commodore Master
  • *****
  • Mensajes: 2970
    • Ver Perfil
    • http://marcos64.orgfree.com/
Sobre modos graficos del C64.
« Respuesta #39 en: Enero 30, 2011, 16:55:20 »
Si defines un juego de caracteres son 2KB. Si con ese juego de caracteres haces 2 pantallas sumale unos 2KB por pantalla, o sea 6KB en total. Ahora en este caso no usarias el modo bitmap, aunque a efectos visuales no notarias diferencia.

Si, los caracteres tienen los mismos modos que el bitmap. Por eso apenas se usa el bitmap en C64.
http://marcos64.orgfree.com/
Actualizacion 22/4/2018: Actualizada Load'N'Run numero 5 con nuevos TAPs y PRGs.

toniman

  • Commodorista
  • ***
  • Mensajes: 92
    • Ver Perfil
Sobre modos graficos del C64.
« Respuesta #40 en: Enero 30, 2011, 17:16:40 »
Entonces puedo usar un color de fondo general y los otros tres colores pueden ir cambiando segun el caracter, verdad?

No me mola mucho el modo ese que tiene 3 colores para todo y solo se puede cambiar uno por caracter :)
Falken, mandame mi dinero o mi teclado, no vas a quedarte impune por eso, devuelveme lo que es mio y todo arreglado. Sino atente a las consecuencias.

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 13630
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Sobre modos graficos del C64.
« Respuesta #41 en: Enero 30, 2011, 17:27:35 »
Cita de: "toniman"
Entonces puedo usar un color de fondo general y los otros tres colores pueden ir cambiando segun el caracter, verdad?

No me mola mucho el modo ese que tiene 3 colores para todo y solo se puede cambiar uno por caracter :)


El modo texto tiene esa limitacion... por cada caracter puedes tener 4 colores:
2 generales
1 de fondo
1 del caracter

Con esto se pueden hacer muchas cosas, pero la limitacion de esos 2 colores generales están...

Lo que decía antes, es que poniendo interrupciones se pueden burlar estas limitaciones, dividiendo la pantalla en franjas horizontales. Se suele usar para los marcadores o en juegos de scroll lateral.

En cambio en modo bitmap esa limitación no está, me imagino que por eso te interesa el modo bitmap.

Le doy un toque a Woodmaster para que se pase tambien.
www.retroinvaders.com | www.commodoreplus.org  | josepzin.blogspot.com

marcos64

  • Commodore Master
  • *****
  • Mensajes: 2970
    • Ver Perfil
    • http://marcos64.orgfree.com/
Sobre modos graficos del C64.
« Respuesta #42 en: Enero 30, 2011, 19:03:19 »
Tambien puedes usar el modo extendido, pero te limita a 64 caracteres disponibles. Te pego lo que dice la guia del programador para evitar cometer un error.

EXTENDED BACKGROUND COLOR MODE

Extended background color mode gives you control over the background
color of each individual character, as well as over the foreground color.
For example, in this mode you could display a blue character with a
yellow background on a white screen.
There are 4 registers available for extended background color mode.
Each of the registers can be set to any of the 16 colors.
Color memory is used to hold the foreground color in extended back-
ground mode. It is used the same as in standard character mode.
Extended character mode places a limit on the number of different
characters you can display, however. When extended color mode is on,
only the first 64 characters in the character ROM (or the first 64
characters in your programmable character set) can be used. This is
because two of the bits of the character code are used to select the
background color.
It might work something like this:
The character code (the number you would POKE to the screen) of the
letter "A" is a 1. When extended color mode is on, if you POKED a 1 to
the screen, an "A" would appear. If you POKED a 65 to the screen
normally, you would expect the character with character code (CHR$)
129 to appear, which is a reversed "A." This does NOT happen in
extended color mode. Instead you get the same unreversed "A" as
before, but on a different background color. The following chart gives the codes:


+------------------------+---------------------------+
|     CHARACTER CODE     | BACKGROUND COLOR REGISTER |
+------------------------+---------------------------+
|  RANGE   BIT 7   BIT 6 |  NUMBER       ADDRESS     |
+------------------------+---------------------------+
|   0- 63   0       0    |    0       53281 ($D021)  |
|  64-127   0       1    |    1       53282 ($D022)  |
| 128-191   1       0    |    2       53283 ($D023)  |
| 192-255   1       1    |    3       53284 ($D024)  |
+------------------------+---------------------------+


Extended color mode is turned ON by setting bit 6 of the VIC-II regis-
ter to a 1 at location 53265 ($D011 in HEX). The following POKE does it:

POKE 53265,PEEK(53265)OR 64
http://marcos64.orgfree.com/
Actualizacion 22/4/2018: Actualizada Load'N'Run numero 5 con nuevos TAPs y PRGs.

Carlos

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 652
    • Ver Perfil
Sobre modos graficos del C64.
« Respuesta #43 en: Enero 30, 2011, 20:55:05 »
La verdad que la conversación se ha líado un rato y al final hasta me costaba seguirla...  :lol:

Por resumir toni, que creo que tienes algún error de concepto:

El C64 tiene dos tipos de modo gráfico: el modo bitmap y el modo char (carácter).

En modo bitmap NO hay tiles, definimos cada pixel de forma individual y podemos usar los 16 colores posibles en pantalla a la vez por eso se llama modo bitmap  :wink: es como un bmp pero con ciertas limitaciones. Dentro del modo bitmap existen 2 tipos:

- Modo bitmap hires: resolución [320x200], cada sección de 8x8 pixels tiene un color entre los 16 posibles + el color del fondo. OJO: color de fondo de esa sección de 8x8 no color del fondo general como en modo char.
- Modo bitmap multicolor: resolución [160x200], cada sección de 8x8 pixels tienen 4 colores (1 especifico + 2 generales + 1 de fondo).

El modo bitmap ocupa 8K, más los datos de la memoria de pantalla (1K) y la memoria de color (1K).


En modo char, definimos cada caracter o 'tile' (8x8 pixels) de forma individual y después componemos el mapa de pantalla con ellos. Existen tres tipos diferentes dentro del modo char:

- Modo char estándar (hires): resolución [320x200], cada tile de 8x8 tiene un color a elegir + color de fondo (compartido por todos los tiles al contrario que en modo bitmap). Podemos definir 256 caracteres (tiles) diferentes.

- Modo char multicolor: resolución[depende  :wink: ], podemos mezclar tiles en hires con tiles multicolor. Los caracteres en hires tienen un color a elegir entre los 8 primeros de la paleta + color de fondo (compartido con todos los tiles) y los caracteres multicolor tienen un color a elegir entre los 8 primeros + 2 colores compartidos entre todos los tiles multicolor + color del fondo (compartidos con todos los tiles). Podemos definir 256 caracteres diferentes.

- Modo extended background: resolucion[320x200], es como el modo char estándar pero podemos tener hasta 4 colores de fondo diferentes en vez de 1 sólo compartido por todos. Sólo podemos definir 64 caracteres.

En modo char (da igual el modo) cada juego de caracteres ocupa 2K, mas los datos de memoria de pantalla (1K) y los datos de memoria de color (1K).

Espero no haberme equivocado en nada...

toniman

  • Commodorista
  • ***
  • Mensajes: 92
    • Ver Perfil
Sobre modos graficos del C64.
« Respuesta #44 en: Enero 31, 2011, 00:23:32 »
gracias Marcos y Carlos, es que yo lo que pensaba hacer, en un juego donde el fondo es como dos pantallas de ancho, hacer un set de tiles en una imagen de 160x100, por ejemplo, y usarlos para hacer un mapeado, asi pensaba que no me ocupaba tanto, pero ya vero que habria que montar un mapa luego por software y que puede ser lento.

Mejor usar el modo char, el que tiene 2 colores comunes y luego otros dos que se pueden cambiar.

Por cierto, en los colores, el de fondo y el otro color comun, se podian elegir de cualquiera de los 16 colores, no? entonces los otros dos colores se pueden elefir de los 8 primeros colores de la paleta, creo recordar, los char de alta resolucion se le puede poner un color en cada caracter, eligiendolo de los 8 primeros colores tambien¿Me equivoco?
Falken, mandame mi dinero o mi teclado, no vas a quedarte impune por eso, devuelveme lo que es mio y todo arreglado. Sino atente a las consecuencias.