MSXInício
Capítulo 19Disponível

Entrando no MSX 2: bitmap em SCREEN 5, 7 e 8

O MSX 2 substitui a tabela de tiles por um bitmap contínuo de 16 ou 256 cores. O CrossScript herda todos os comandos que você já conhece — e abre a porta para telas em alta resolução.

1. Um novo VDP: o V9938

O MSX 2 troca o VDP TMS9918 do MSX 1 pelo V9938, que traz três novidades essenciais:

  • Modos bitmap de verdade: cada pixel é uma cor, sem restrição de "duas cores por linha".
  • Blitter (VDP Command Processor): copia, preenche e move retângulos de VRAM sem gastar CPU.
  • Páginas de VRAM: você desenha numa página escondida e mostra outra — a base do page flipping (capítulo 20).

O CrossScript ativa tudo isso apenas com o USES e o SCREEN corretos.

2. Os três modos bitmap que você usa

ModoResoluçãoCoresUso típico
SCREEN 5256×21216 (por pixel)Jogos, cenários, HUD colorido
SCREEN 7512×21216 (por pixel)Telas de menu em alta res
SCREEN 8256×212256 fixasImagens fotorrealistas

Modos 6, 10, 11 e 12 existem mas não são o foco deste volume.

USES SCREEN 5
SCREEN 5
COLOR 15, 4, 4   ' texto branco, fundo azul, borda azul
CLS

ATENÇÃO

SCREEN 5 usa 32 KB de VRAM por página

Uma tela SCREEN 5 completa (256×212) ocupa cerca de 27 KB. O V9938 tem 128 KB de VRAM, então cabem 4 páginas — mas embutir uma imagem inteira dentro do cartucho estoura os 64 KB do formato "Normal". Para telas grandes, use PAGELOAD com o compactador LZB (capítulo 21) e ative a Mapper (capítulo 26).

3. Desenhando pixel a pixel: PSET e LINE

PSET x, y, cor acende um pixel; LINE x1, y1, x2, y2, cor desenha uma linha reta. As duas escrevem direto na VRAM via blitter.

DIGITE E VEJA

Programa 19.1 — Estrelas aleatórias

USES SCREEN 5, RANDOM, PAINT
SCREEN 5
COLOR 15, 1, 1
CLS

DIM i AS WORD
FOR i = 1 TO 200
  PSET RND(256) - 1, RND(212) - 1, RND(15)
NEXT i

INPUT$(1)

4. Tiles coloridos em SCREEN 5

O SCREEN 5 é bitmap: não existe tabela de nomes de tiles como no SCREEN 1. Mesmo assim, o CrossScript mantém TILECREATE / TILE para você — internamente, um cache oculto guarda os padrões e o blitter copia cada bloco 8×8 para a tela. Você desenha em coordenadas de tile (coluna 0..31, linha 0..25) exatamente como no MSX 1.

A grande diferença é a cor: cada pixel do tile pode ter uma das 16 cores da paleta, e a cor 0 pode ser tratada como transparente.

TILECOLOR 0, 15, 1        ' branco sobre preto (frente=15, fundo=1)
TILETRANSPARENT ON        ' cor 0 = recorte (útil para árvores, herói etc.)
TILECREATE 5, $18,$3C,$7E,$FF,$FF,$7E,$3C,$18
TILE 10, 12, 5

Para o exemplo completo de cenário com montanhas e árvores recortadas, veja o Programa 14.1 no capítulo 14.

4.1 Tamanho do texto: BPRINT SIZE

Em SCREEN 5 o texto do BPRINT usa a fonte 8×8. Para deixá-lo maior, use BPRINT SIZE n — cada pixel da fonte passa a ocupar n×n pixels na tela. Os valores válidos são 1 a 7 (1 = tamanho normal, padrão).

USES SCREEN 5, BPRINT
SCREEN 5
CLS

BPRINT SIZE 3
BPRINT 2, 2, "MSX BRASIL", 15, 4   ' letras 24x24

BPRINT SIZE 1
BPRINT 2, 20, "placar: 0000", 15, 4

O comando é um estado: vale para todos os BPRINT seguintes até você mudá-lo. As coordenadas continuam em células de 8×8, e é sua responsabilidade deixar espaço para o texto ampliado (uma letra em SIZE 3 ocupa 3 colunas e 3 linhas).

5. Trazendo imagens do PC: o Graphics Studio

A IDE traz o Graphics Studio (aba Arquivo → Nova imagem ou botão direito no projeto). Ele importa PNG/JPG, converte para a paleta MSX 2 e exporta como um asset PAGELOAD compactado. Antes de importar, o painel de ajustes permite:

  • Fit mode — como enquadrar (Fit, Fill, Stretch, Center).
  • Resampling quality — bicúbico multi-etapa para downscale suave.
  • Ajustes de imagem — brilho, contraste, saturação, gama e nitidez.
  • Modo de cores — paleta fixa (16 cores para SCREEN 5) ou paleta customizada por quantização.

O botão Exportar como PAGELOAD gera um snippet pronto (com MEMORY AUTO, MAPPER e o header CSX5/CSX6) que você cola no seu programa. A IDE escolhe o codec de menor tamanho — RLE ou LZB — automaticamente.

DICA

O nome do asset é o rótulo do PAGELOAD

Ao exportar, dê um nome curto (ex.: titulo, fase1). Esse rótulo é o que você passa para PAGELOAD: PAGELOAD titulo.

6. Snippet mínimo em SCREEN 5

USES SCREEN 5, TILES
SCREEN 5
COLOR 15, 4, 4
CLS

' ... desenhe / carregue / anime aqui ...

Fim: GOTO Fim

O Fim: GOTO Fim é o loop infinito de fechamento — sem ele o programa "sai" da rotina principal e a tela some.

7. Resumo do capítulo

  • MSX 2 usa o V9938 com blitter, páginas e modos bitmap.
  • SCREEN 5 (16 cores) é o modo canônico para jogos MSX 2.
  • PSET e LINE escrevem pixels diretamente via blitter.
  • TILECREATE/TILE continuam funcionando (via cache oculto) com cor real e transparência opcional.
  • Use o Graphics Studio para importar imagens do PC — ele já gera o PAGELOAD compactado.
  • Uma tela cheia ocupa ~27 KB; para embutir no cartucho use LZB + Mapper (capítulos 21 e 26).
Comunidade

Discussão · Entrando no MSX 2: bitmap em SCREEN 5, 7 e 8

Curta, marque como lido e comente o que achou deste capítulo.

0 comentários
Entre para participar
Crie uma conta ou faça login para curtir, marcar como lido e comentar.

Carregando comentários…