Karoshi MSX Community
05 de Julio de 2021, 10:45:27 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]
  Imprimir  
Autor Tema: Modo Mixto (1 solo banco en SC2/SC4)  (Leído 1978 veces)
0 Usuarios y 1 Visitante están viendo este tema.
TessMSX
Administrator
Karoshi Forum's God
********
Mensajes: un montón


« : 02 de Abril de 2018, 09:40:09 pm »

Por defecto, cuando trabajamos en modo SC2/SC4, la VRAM esta segmentada para hospedar los Tileset de Patrones de 3 bancos (Bank0 en 0000h, Bank1 en 0800h y Bank2 en 1000h) y sus correspondientes colores en otros 3 bancos (Bank0 en 2000h, Bank1 en 2800h y Bank3 en 3000h).

Podeis echarle un ojo a esta segmentacion de VRAM en diferentes modos en el blog de Aorante

Sin embargo, si el juego es sencillo o se ha economizado en la cantidad de Patrones y estos solo ocupan un Banco (Bank0), se puede activar un modo por el cual podemos usar esos Patrones/Colores para dibujar en toda la pantalla. Del siguiente documento sacamos el siguiente extracto donde lo comenta.

Citar
Control register #4 which sets the PG address of the PG has a different function in mode 2. Only bit 2, PG13, sets the address of the PG (so it's either address 0 or 2000h). Bits 0 and 1 are an AND mask over the character number. The character number is 0 - 767 (2FFh) and these two bits are ANDed over the two highest bits of this value (2FFh is 10 bits, so over bit 8 and 9). So in effect, if bit 0 of control register #4 is set, the second array of 256 patterns in the PG is used for the middle 8 rows of characters, otherwise the first 256 patterns. If bit 1 is set, the third array of patterns is used in the PG, otherwise the first.

The relation PN -> CT is the same as PN -> GT. Each byte in the CT sets the colour of one pixel line of a character.  The high four bits set the foreground colour, the low the background colour. If either of these is 0, it is transparent and the colour of the backdrop (BD) is used.

Also control register #3 has a different meaning. Only bit 7 (CT13) sets the CT address. Somewhat like control register #4 for the PG, bits 6 - 0 are an AND mask over the top 7 bits of the character number. The TC in control register #7 is not used in this mode.

Un ejemplo con el Magical Tree.

Modo normal, tres bancos de Patrones y Colores

Cada banco se usa para colorear el tercio correspondiente de pantalla.

Modo "1 banco" de Patrones y Colores

Un solo banco de patrones y colores es suficiente para dibujar en toda la pantalla.

Los "pros" son obvios, nos ahorramos la transferencia de los Patrones y Colores de 2 bancos (Bank1 y Bank2) con lo que ganamos en rapidez a la hora de escribir en VRAM y nos permite usar esos bancos para hacer copia de los Bancos ocultos al visible (de VRAM a VRAM). En contra tenemos la limitación de la cantidad de Patrones (y colores) que podremos emplear en hacer el juego.

Para poder activar este modo hay que tocar dos registros, tal y como nos decia el documento de arriba, configurando los bits del Registro #3 con 10011111 (o 9Fh) y los del Registro #4 con 00000000.

Ejemplo en ensamblador:

Código:
;seleccion de un solo bank de tiles

    ld      b,0             ;en B 00 para dejar solo el bank0 de tiles
    ld      c,4             ;en C se mete el numero de registro que queremos escribir
    call    WRTVDP     ;escribe en VDP

;seleccion de un solo bank de color

    ld      b,10011111b     ;en B 9F para dejar solo el bank0 de color
    ld      c,3                    ;en C se mete el numero de registro que queremos escribir
    call    WRTVDP            ;escribe en VDP

Y eso es todo Smiley Si encontrais algun error o queréis colaborar para extender este mini-tuto, comentad en este hilo.

Ojo; en algunos modelos con VDP clon (Toshiba) es posible que esta configuración no funcione.

PD: Gracias a SapphiRe @z80st_software por descubrirme este "modo"  Beam - Qbiqs Glow - Qbiqs Ray - Qbiqs
« Última modificación: 20 de Abril de 2018, 10:44:26 pm por TessMSX » En línea
theNestruo
Karoshi Lover
***
Mensajes: 236


Email
« Respuesta #1 : 04 de Abril de 2018, 08:53:21 am »

Dos hilos antiguos al respecto del modo mixto:
El modo mixto ese ... (necesitamos ayuda)
y Sabéis como funciona exactamente el Modo Mixto? (Para poder emularlo)
En línea

theNestruo."Old BASIC programmers never die; they GOSUB but never RETURN."
TessMSX
Administrator
Karoshi Forum's God
********
Mensajes: un montón


« Respuesta #2 : 05 de Abril de 2018, 10:49:01 pm »

Que bien me hubiera venido saber que se llama "Modo Mixto" en su momento para ahorrarme tiempo en experimentos sobre algo que ya está documentado... Gracias theNestruo por hacer referencia a estos dos hilos!
En línea
Páginas: [1]
  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!