A resposta é Blast Processing! O que mais você precisa saber?
Ok, se você quer saber a verdadeira resposta: os gráficos são processados pelo 68000 e renderizados em um chip proprietário chamado Video Display Processor (VDP), o qual envia o quadro resultante (na forma de linhas de varredura) para exibição.
O VDP opera a ~13 MHz e suporta múltiplos modos de resolução dependendo da região: até 320x224 pixels em NTSC e até 320x240 pixels em PAL.
Por trás das múltiplas resoluções de exibição
Tecnicamente falando, o VDP pode acomodar tanto 40 ou 32 colunas de tiles (ladrilhos) por linha de varredura, e o número de linhas de tiles depende da região (28 no NTSC ou 30 no PAL) . No entanto, a maioria dos jogos PAL não se preocupa com os tiles extras permitidos em sistemas PAL (provavelmente porque precisam manter a consistência entre as duas regiões, e o NTSC é o denominador comum), então eles instruem o VDP a renderizar apenas 28 linhas (como fariam em sistemas NTSC). Assim, o VDP não tem opção se não preencher a área não utilizada com uma cor de fundo (também usada durante o overscan).
É possível ver quais jogos em PAL renderizam no modo NTSC verificando o Mode Set Register #2 em um emulador com recursos de depuração (por exemplo, o Exodus). Se o quarto bit contando da direita for 0, então o VDP está sendo executado no modo NTSC .

Para fornecer um modo dois jogadores de forma rápida no Sonic 2 (1992), o jogo ativa o 'modo entrelaçado' para renderizar um nível do modo um jogador usando blocos de 8x16 píxeis no lugar (juntamente com outras mudanças).

Em contrapartida, o modo dois jogadores mais sofisticado de Sonic 3 (1994) usa de tiles de 8x8 píxeis que são diferentes dos encontrados nos níveis do modo de um jogador.
Além disso, há um parâmetro adicional que pode ser definido no VDP para empilhar dois tiles e formar mapas de 8x16, tratando-os como um único tile. Assim, dobrando a resolução vertical. No entanto, isso acaba reduzindo pela metade a taxa de atualização, pois os quadros agora são renderizados com entrelaçamento (um quadro renderiza as linhas de varredura pares, o próximo, as linhas ímpares, e assim por diante), sendo mais limitado em termo de funcionalidade. O modo dois jogadores do Sonic 2 é uma boa representação deste modo .
Por fim, vale ressaltar que o VDP cuida automaticamente da adição de preenchimento para a área de overscan, para que os jogos não precisem se preocupar com quais áreas são seguras para desenhar gráficos (como acontecia com as "zonas perigosas" do NES)
Organizando o conteúdo
Em termos de processamento gráfico, este chip tem dois modos de operação:
- Mode IV: modo de legado que se comporta como seu antecessor.
- Isso não significa que o console rodará jogos do Master System imediatamente, pois é necessário um acessório adicional (o Power Base Converter) para encaixar os cartuchos do console anterior. O conversor também instruirá o chip de E/S a colocar o Z80 no controle.
- Mode V: modo nativo de operação, iremos focar neste.
E quanto aos Modos do 0 ao III? Bem, esses pertencem ao ainda mais antigo SG-1000 e o Mega Drive não tem suporte para eles.
Uma nota interessante: fui informado posteriormente por um ex-desenvolvedor deste sistema que a estrutura de comando do Modo V (usado para controlar o VDP no jogo) herdou o projeto do TMS9918 (o famoso chip de vídeo usado no SG-1000) . Isso facilitou para desenvolvedores third-party usarem o Modo V sem depender da documentação oficial (e dos subsequentes custos de licenciamento).
Memória disponível

Arquitetura de memória do VDP.
O conteúdo gráfico é distribuído em três regiões de memória :
- 64 KB de VRAM (Video RAM): contém a maioria dos dados gráficos.
- 80 B de VSRAM (Vertical Scroll RAM): o VDP suporta rolagem vertical e horizontal. Os valores de V-scroll são armazenados neste espaço separado, por alguma razão.
- 128 B de CRAM (Colour RAM): armazena quatro entradas de paleta com 16 cores cada (incluindo
transparent), o sistema oferece 512 cores para escolher. Além disso, efeitos de luz e sombra podem ser aplicados a cada paleta para alcançar uma ampla gama de cores por paleta.
Construindo o frame
A próxima seção explica como o VDP desenha cada quadro, para fins de demonstração, o jogo Sonic The Hedgehog é usado como exemplo. Antes de começar, eu recomendo verificar o modus operandi de seu antecessor, já que muitos conceitos serão revisados aqui.
Tiles

Múltiplos tiles comprimidos juntos. Para fins de demonstração, uma paleta padronizada é usada.

Um único tile de 8x8 píxeis.
Assim como a PPU da Nintendo, o VDP é um mecanismo baseado em tiles, e como tal, usa tiles (bitmaps básicos de 8x8) para compor planos gráficos. No caso do VDP, cada tile é codificado com um vetor de 4 bytes de comprimento, onde cada entrada de 4 bits corresponde a um píxel e seu valor corresponde a uma entrada de cor (apontando para uma paleta de cores).
Os cartuchos de jogo armazenam os tiles em sua ROM (encontrada no próprio cartucho), porém eles precisam ser copiados para a memória VRAM para que o VDP possa lê-los . Tradicionalmente, isso só era possível durante intervalos de tempo específicos e era manuseado pela CPU, mas felizmente, o console possuí circuitos especiais para transferir essa tarefa para o VDP (entraremos em detalhes mais adiante).
Tiles são usados para construir um total de quatro planos que, uma vez mesclados, formam o quadro visto na tela. Além disso, para os tiles dos planos que se sobrepõem, o VDP decidirá qual tile será visível com base no tipo de plano e no valor de prioridade do tile.
Plano de fundo

Mapa de plano de fundo alocado.

Mapa de plano de fundo alocado com área selecionada marcada.
O plano de fundo, também conhecido como Plano B, é um tilemap (conjunto de tiles) rolável contendo tiles estáticos .
Esse plano pode ter seis dimensões diferentes: 256x256, 256x512, 256x1024, 512x256, 512x512, 1024x256. Os programadores podem selecionar a dimensão que melhor se adapta ao tipo de rolagem necessária.
Cada tile pode ser virado horizontal e/ou verticalmente e ter uma prioridade definida.
No exemplo mostrado, você nota que a área selecionada para exibição não é um quadrado... Não precisa ser!. O VDP permite configurar valores de rolagem horizontal para todo o quadro, cada linha de varredura individual ou a cada oito píxeis. Isso significa que os desenvolvedores podem moldar a área selecionada como um losango e alterar seus ângulos à medida que o jogador se move para simular efeitos de perspectiva. Truques como este não corrompem o plano, o VDP busca cada linha horizontal (selecionada) e constrói um quadro regular a partir dela.
Primeiro plano

Primeiro plano alocado com área selecionada marcada.
O primeiro plano, também conhecido como Plano A , possui as mesmas propriedades do plano de fundo, exceto que ele tem uma prioridade mais alta, consequentemente, os tiles renderizados aqui estarão inerentemente em cima do plano de fundo.
Além disso, este plano permite se dividir para formar um novo sub-plano: o plano janela. A única diferença é que este plano não se move durante a rolagem.
Em resumo, é possível ver que os novos valores de prioridade e planos separados permitem aos game designers produzirem novos tipos de cenários. Além disso, usando diferentes velocidades de rolagem em cada plano, um efeito de paralaxe pode ser realizado.
Sprites
![]()
Camada de sprite alocada com área selecionada marcada.
Neste plano, tiles são tratados como sprites. Eles são posicionados em um mapa de 512x512 píxeis e apenas uma parte dele (a resolução de saída do VDP) é selecionada para exibição. Isto é conveniente para ocultar sprites indesejados ou preparar outros que serão mostrados no futuro. O VDP também fornece uma antiga função de detecção de colisão.
Os sprites são formados pela combinação de até 4x4 tiles (mapa de 32x32 píxeis) e selecionando até 16 cores (incluindo transparência). Se for necessário um sprite maior, vários sprites podem ser combinados em um.
Pode haver no máximo 20 sprites por linha de varredura e 80 por tela (mais do que isso corromperá toda a camada).
A região na memória VRAM onde os sprites são definidos é chamada de Sprite Attribute Table (Tabela de Atributos de Sprites) e cada entrada contém o índice do tile, as coordenadas da camada (x e y), o valor link (gerencia quais sprites são desenhados primeiro), a prioridade (o sprite com a maior prioridade é o que será exibido em cima dos demais caso haja sobreposição), o índice da paleta de cores e o flip vertical e horizontal.
Resultado

Quadro transmitido para a TV (formato NTSC), o VDP automaticamente cobre o quadro com uma área de overscan que a maioria das TVs CRT escondem.
Enquanto o quadro está sendo desenhado, o sistema chamará sequencialmente diferentes rotinas de interrupção, dependendo de onde o feixe do CRT está apontando. Como você provavelmente já viu em consoles anteriores, isso permite que a CPU trabalhe no próximo quadro (ou altere o quadro atual).
Convencionalmente, existem dois tipos de interrupções, chamadas: H-Blank (a cada linha horizontal) e V-Blank (a cada quadro).
O H-Blank é chamado várias vezes, mas é limitado a executar rotinas curtas. Além disso, somente memórias CRAM e VSRAM são acessíveis, então os jogos só podem atualizar suas paletas de cores ou rolar verticalmente suas camadas.
O V-Blank permite rotinas mais longas com a desvantagem de ser chamado apenas 50 ou 60 vezes por segundo (dependendo da região do console), mas consegue acessar toda a memória.
Observe que a área de overscan no exemplo exibe alguns pontos coloridos aleatórios no canto inferior direito. Isso é popularmente conhecido como CRAM dots e acontece porque a CPU está atualizando as paletas na memória CRAM ao mesmo tempo que o VDP está enviando as linhas restantes do feixe (no exemplo, isso acontece durante o overscan). Este conflito faz com que o VDP use qualquer valor que a CPU esteja escrevendo naquele momento (ao contrário do local necessário no CRAM), então a imagem acaba corrompida. No entanto, como neste caso o jogo só atualiza a memória CRAM durante o overscan, essa anomalia passa despercebida nos televisores CRTs tradicionais. Outros jogos tentam atualizar as paletas no meio do quadro para obter mais cores, com o custo de ter que equilibrar a aparição de CRAM dots.
Uma unidade de transferência dedicada
Até agora, discutimos o que a CPU pode fazer para atualizar quadros, mas e quanto ao VDP? Ele fornece algo mais especializado? Bem, sim, este chip apresenta um Direct Memory Access (Acesso direto à memoria, ou DMA) que permite mover dados entre locais de memória a uma taxa mais rápida e sem a intervenção da CPU.
O DMA pode ser ativado durante o H-Blank, o V-Blank ou o estado ativo (fora de qualquer interrupção), e pode ser usado para escrever nas memórias VRAM, CRAM e/ou VSRAM . Além disso, durante as transferências da memória RAM da CPU usando o DMA, o barramento da CPU é bloqueado, então é essencial um bom planejamento para alcançar um desempenho adequado.
O uso excepcional desses recursos pode fornecer gráficos de alta resolução, rolagem de paralaxe fluida e altas taxas de quadros. Ademais, seu jogo também pode ser apresentado em comerciais de TV com muitos slogans de Blast Processing! por toda parte.
Saída de vídeo
A primeira revisão deste console (comumente referida como Model 1) possui a mesma porta de saída de vídeo do Master System. Os subsequentes Modelo 2 e Modelo 3 mudaram para uma porta mini-DIN. É importante lembrar que isso se refere às revisões Norte-Americanas, já que os modelos da TecToy usam denominações diferentes.

