User Tag List

Página 8 de 8 PrimerPrimer ... 45678
Resultados 106 al 111 de 111

Tema: Programando en MSDOS con VGA

  1. #106

    Fecha de ingreso
    Oct 2012
    Mensajes
    207
    Mencionado
    1 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    4
    Agradecer Thanks Received 
    115
    Thanked in
    Agradecido 39 veces en [ARG:2 UNDEFINED] posts
    Más pruebas extrañas en MS_DOS, en este caso quise comprobar si el modo texto se podria utilizar como un modo "map/tile" de consolas. Estos modos utilizan una parte de la memoria de video para guardar caracteres o tiles, y otra parte para guardar un mapa de como dibujarlos en pantalla.

    En el caso de la VGA, el modo texto puede guardar unos 512 caracteres de 8x8 pixeles (dos colores cada uno), pero solo he conseguido que acceda a 256 caracteres. Puede mostrar mapas compuestos de 80x50 tiles (con caracteres de 8x8 pixeles), en resoluciones de 720x400 (dejando separaciones entre los tiles), o 640x400 (sin separaciones, este modo no funciona en monitores modernos).

    Los caracteres se cargan desde imagenes png, modificando unos puertos de la VGA, que están pensados para cambiar la fuente del texto, pero también sirven para esto .

    Además podemos utilizar el scroll por hardware y actualizar una columna o una fila de tiles fuera de la parte visible, en un proceso muy rápido que a penas utiliza CPU. Sólamente tenemos que actualizar 80+50 => 130 x 2 = 260 bytes, ya que cada celda corresponde a dos bytes, un byte para el caracter y otro para definir los dos colores (16 colores para el fondo, 16 para el "texto").

    Este modo VGA solo tiene un sprite rectangular que parpadea y solo se puede poner en posiciones multiplos de 8 (o sea, el cursor). Dibujar sprites "de verdad "se puede lograr reservando unos cuantos caracteres para guardar y actualizar gráficos, pero en las pruebas que he hecho, el proceso es muy lento, o se ve muy mal, haciendo que este modo sea poco práctico para hacer juegos bonitos.



    Parece ser que la tarjeta EGA no es compatible con este modo de caracteres 8x8, aunque debería funcionar igual.

    No he subido aun el código fuente a ningún sitio, porque está muy desordenado, he comprobado que funciona en vga real, y no necesita a penas cpu para mostrar el mapa, (los sprites ya son otra historia).
    Última edición por mills332; 21/06/2021 a las 13:06

  2. Los siguientes 4 usuarios agradecen a mills332 este post:

    DarkDijkstra (21/06/2021), JoJo_ReloadeD (22/06/2021), romeroca (21/06/2021), swapd0 (21/06/2021)

  3. #107

    Fecha de ingreso
    Nov 2005
    Ubicación
    Excartagenero
    Mensajes
    20,735
    Mencionado
    230 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    4,389
    Agradecer Thanks Received 
    3,848
    Thanked in
    Agradecido 2,593 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    1
    Mola!!

    Por lo que entiendo estas usando caracteres redefinidos?? o sea que es modo texto, verdad?

    Aunque sin sprites no hay gloria :P

  4. #108

    Fecha de ingreso
    Oct 2012
    Mensajes
    207
    Mencionado
    1 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    4
    Agradecer Thanks Received 
    115
    Thanked in
    Agradecido 39 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por josepzin Ver mensaje
    Mola!!

    Por lo que entiendo estas usando caracteres redefinidos?? o sea que es modo texto, verdad?

    Aunque sin sprites no hay gloria :P
    Si, mira al principio como se ven los caracteres de texto, y luego se ve el cursor negro por la parte de arriba del mapa

    Pero es que las limitaciones de colores y lo complejo de los sprites hacen que merezca mas la pena el modo grafico, incluso para los 8088.


    En cuanto pasas encima de algo, a penas se ve a mario, y ademas se mueve en saltos de 8 en 8 pixeles. Moverlo pixel a pixel requiere mucha ram, o mucha cpu, porque necesita 16 celdas en el caso de este ejemplo. Y si ademas hago operaciones para que se fusionen los graficos de fondo con el sprite, para que quede mejor, ya añades un monton de cosas mas, no se, lo veo mucho mas lento que el modo grafico, pero habria que probarlo.
    Nombre:  game_000.png
Visitas: 388
Tamaño: 192.7 KB
    Última edición por mills332; 21/06/2021 a las 14:44

  5. Los siguientes 2 usuarios agradecen a mills332 este post:

    josepzin (21/06/2021), tSuKiYoMi (22/06/2021)

  6. #109

    Fecha de ingreso
    Nov 2005
    Ubicación
    Excartagenero
    Mensajes
    20,735
    Mencionado
    230 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    4,389
    Agradecer Thanks Received 
    3,848
    Thanked in
    Agradecido 2,593 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    1
    Si, claro, se entiende! cuando usas caracteres redefinidos no hay otra opción que los sprites se superpongan asi y hagan color clash. A menos que tengas un C64 y uses los sprites por hardware :P

  7. #110

    Fecha de ingreso
    Oct 2007
    Ubicación
    Madrid
    Mensajes
    3,004
    Mencionado
    88 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    223
    Agradecer Thanks Received 
    662
    Thanked in
    Agradecido 350 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por mills332 Ver mensaje
    Si, mira al principio como se ven los caracteres de texto, y luego se ve el cursor negro por la parte de arriba del mapa

    Pero es que las limitaciones de colores y lo complejo de los sprites hacen que merezca mas la pena el modo grafico, incluso para los 8088.


    En cuanto pasas encima de algo, a penas se ve a mario, y ademas se mueve en saltos de 8 en 8 pixeles. Moverlo pixel a pixel requiere mucha ram, o mucha cpu, porque necesita 16 celdas en el caso de este ejemplo. Y si ademas hago operaciones para que se fusionen los graficos de fondo con el sprite, para que quede mejor, ya añades un monton de cosas mas, no se, lo veo mucho mas lento que el modo grafico, pero habria que probarlo.
    Necesita pre-desplazar los gráficos, para ahorrar memoria puede guardar sólo los predesplazamientos de 2 en 2 píxeles.
    Y también necesitará optimizar el código para cada pre-desplazamiento, vamos sprites compilados.

    Se está metiendo en una fiesta muy gorda xD

    Creo que los gráficos pre-desplazados hay que dejarlos para las máquinas que de verdad los necesitaban para obtener un buen rendimiento,

  8. #111

    Fecha de ingreso
    Sep 2006
    Ubicación
    Malaga
    Mensajes
    6,114
    Mencionado
    37 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    1,010
    Agradecer Thanks Received 
    1,057
    Thanked in
    Agradecido 743 veces en [ARG:2 UNDEFINED] posts
    Hay muchos juegos para Atari xe/xl que van asi, modo texto y los sprites van por software redefiniendo caracteres, aunque no necesitas tener los tiles pre-rotados porque tienes scroll por hardware.
    Última edición por swapd0; 21/06/2021 a las 19:17
    No es lo mismo tener diez años de experiencia, que tener un año de experiencia diez veces.

Página 8 de 8 PrimerPrimer ... 45678

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •