Título: Modo Mixto (1 solo banco en SC2/SC4) Publicado por: TessMSX en 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 (http://aorante.blogspot.com.es/2016/04/mapas-de-memoria-del-tms9918.html) 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 (http://bifi.msxnet.org/msxnet/tech/tms9918a.txt) 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 (http://karoshi.auic.es/files/tutoriales/3bancos.png) Cada banco se usa para colorear el tercio correspondiente de pantalla. Modo "1 banco" de Patrones y Colores (http://karoshi.auic.es/files/tutoriales/1bancos.png) 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 :) 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" ::qbiqsbeam:: ::qbiqsglow:: ::qbiqsray:: Título: Re:Modo de 1 solo banco en SC2/SC4 Publicado por: theNestruo en 04 de Abril de 2018, 08:53:21 am Dos hilos antiguos al respecto del modo mixto:
El modo mixto ese ... (necesitamos ayuda) (http://karoshi.auic.es/index.php/topic,566.0.html) y Sabéis como funciona exactamente el Modo Mixto? (Para poder emularlo) (http://karoshi.auic.es/index.php/topic,1445.0.html) Título: Re:Modo de 1 solo banco en SC2/SC4 Publicado por: TessMSX en 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!
|