Descrição do conceito VDP
- Vdp
- "Vídeo exibidor P rocessor"
- Chip de controlador de vídeo que lida com gráficos de blocos, aviões de rolagem e sprites Genesis. Na verdade não é um processador.
- VRAM
- "Vídeo RAM "
- RAM (RAM) usada pelo VDP
- Contém blocos (imagens de 8x8 pixels)
- Os dois principais tipos de consoles
- Consoles NTSC
- Sega Genesis, 60 máquinas Hertz, distribuídas principalmente nos EUA
- Permissões
- Modo H 40 - 320x224 pixels ( 40 x28 blocos). O modo de resolução mais comum
- H modo 32 - 256x224 pixels ( 32 x28 blocos). Modo de resolução menos popular
- Nosso estúdio Mega Cat lança jogos NTSC , portanto, usa essas permissões!
- Consoles PAL
- Sega Mega Drive, 50 carros Hertz vendidos em todo o mundo
- Permissão
- Modo H 40 - pixels de 320x240 (blocos de 40 x30). O modo de resolução mais comum
- Modo H 32 - 256x240 pixels ( 32 x30 blocos). Modo de resolução menos popular
Esquerda: NTSC Modelo 2 Sega Genesis, direita: PAL Modelo 2 Mega Drive (Europeu) 3 gráficos de avião
2 planos de rolagemO plano B é o plano de fundo. Exibe gráficos de blocos usando mapas de blocos.
O plano A é o plano em primeiro plano. Exibe gráficos de blocos usando mapas de blocos. Subplano de janela - um subplano para o Plano A, cujos gráficos não rolam com o restante do plano.
Cada linha de blocos é renderizada coluna por coluna. Os ladrilhos em cada plano podem ter prioridade: alto ou baixo.
Ladrilhos para sprite renderizados no formato regular (ladrilhos 4x4)1 avião de spriteDesenha gráficos de mosaico de sprite.
Dentro do console, os sprites são renderizados na ordem inversa, ou seja, cada coluna de bloco é renderizada linha por linha.
Os sprites estão localizados no espaço virtual de 512x512 pixels, onde as coordenadas (128.128) coincidem com o canto superior esquerdo da tela da TV.
O Genesis pode exibir simultaneamente até 80 sprites de hardware na tela; o Genesis pode exibir cerca de 20 sprites em uma linha raster. Com um número maior de problemas, há problemas com sprites transbordantes e eles deixam de ser exibidos.
Para sprites de hardware, os tamanhos são limitados (wxh), onde w é a largura, h é a altura, assumindo valores de 1 a 4 peças.
Sprites maiores que sprites de hardware podem ser obtidos com alguns sprites.
Como nos aviões, os ladrilhos para sprites podem ter prioridade baixa ou alta. Sprites de baixa prioridade são exibidos em blocos de alta prioridade de outras camadas. (De fato, tudo é um pouco mais complicado, mas, em geral, o conceito é o seguinte).
Os ladrilhos para sprite dentro do console são renderizados no formato sprite (movidos e com tamanho 4x4)Representação visual da prioridade das camadas planasFonte: Manual do Software GenesisVDP CRAM ("
RAM colorida" - "RAM colorida")
4 linhas de paletas, cada uma com 16 cores
Cada cor tem uma profundidade de
4bpp (4 bits por pixel)
A primeira cor é a cor transparente dos gráficos do bloco
As linhas da paleta podem renderizar em cores ligeiramente mais claras ou mais escuras quando o
realce ou a
sombra estão ativados.
Planos de fundo
O Sega Genesis possui dois planos de mapas de blocos: o plano de fundo ("Plano B") e o plano de primeiro plano ("Plano A"). Dependendo do tipo de máquina (NTSC ou PAL) e do modo de vídeo usado (H40 ou H32), uma placa de tela cheia terá 32 ou 40 peças de largura e 28 ou 30 peças de altura. Cada bloco consiste em uma imagem de 8x8 pixels e cada pixel corresponde a um índice de cores (0 a 15). A rigor, um plano de janela é um subplano do Plano A; seus gráficos não rolam com o restante do plano A. Os aviões podem ser usados de muitas maneiras diferentes, por exemplo, para camadas de primeiro plano e segundo plano em tela cheia ou para a técnica pela qual muitos jogos do Sega Genesis:
rolagem de paralaxe são famosos. Rolando linhas individuais de ladrilhos em planos com velocidades diferentes, você pode criar a ilusão de profundidade. Ladrilhos em placas de ladrilhos diferentes podem ter um parâmetro de prioridade: alto ou baixo. Este parâmetro determina onde os sprites (que também têm alta ou baixa prioridade) devem ser exibidos, embaixo do bloco ou acima dele.
VSRAM (
RAM de vídeo
S - rolagem de memória de vídeo)As camadas Plano A e Plano B podem ter mapas de blocos de planos de rolagem de tamanho (wxh), onde w é a largura dos blocos, h é a altura dos blocos. Cada um dos tamanhos pode ser igual apenas a 32, 64 ou 128 blocos. Esses planos de rolagem "rolam dentro / fora" da resolução da tela ativa (o tamanho é determinado pelo tipo de máquina e pelo modo H32 / H40). Planos de rolagem de 128x64 / 64x128 e 128x128 não são permitidos. Por padrão, as partes VRAM nos endereços VRAM padrão 0xC000 e 0xE000 são exibidas como "lixeiras", mas na verdade cada pixel nessas "lixeiras" codifica um mapa de ladrilhos VSRAM de maneira compacta. O usuário nunca deve gravar blocos reais nesses “blocos de lixo”; caso contrário, ocorrerão bugs / falhas gráficas estranhas, desacelerações ou blocos de lixo começarão a aparecer em planos de rolagem. Os aviões podem usar 1 de 3 modos de rolagem: por linha raster, por lado a lado ou por bloco (seções de lado a lado 2x2). Cada plano pode rolar simultaneamente na horizontal e na vertical.
Cor
Os mosaicos podem usar apenas 1 de 4 linhas de paletas por vez. Cada linha da paleta contém 16 cores. A primeira cor é reservada para uma cor transparente, que é recomendada para ser rosa (255,0.255) (RGB). Para manter a integridade do estilo no jogo, 1 ou 2 paletas podem ser selecionadas para elementos individuais. Por exemplo, a linha da paleta 1 pode ser usada para o personagem de um jogador e a linha da paleta 2 pode ser usada para elementos da interface do usuário. Você pode usar várias paletas para desenhar inimigos, planos de fundo e outros elementos variáveis.

Para otimizar o uso das cores, essa paleta usa duas paletas, uma para cada camada do plano do mapa de blocos. As duas primeiras imagens são camadas separadas (plano B e plano A) e a terceira é uma imagem em tela cheia finalizada na qual os dois planos são combinados. Como cada bloco pode usar cores indexadas de apenas uma linha da paleta ao mesmo tempo, o uso de um esquema de imagem com dois planos permite garantir o número de cores que não está disponível para uma imagem com um plano.
Existem duas técnicas populares para trabalhar com paletas - a
alteração cíclica das paletas (ciclagem da paleta) e os
efeitos raster (efeitos raster) . Alterando a cor de certos elementos em uma linha separada da paleta, a cada poucos quadros, você pode implementar efeitos como cascata, iluminação pulsante e assim por diante.
Um exemplo do efeito da mudança cíclica de paletas para cintilar listras Berserk na Liga de Futebol Zumbi
Os efeitos de varredura substituem todas ou algumas das cores em uma linha da paleta após uma linha de varredura específica. Não consideraremos essa técnica em detalhes, mas, em essência, ela consiste em substituir parte de todas as cores CRAM após passar pelo feixe de elétrons da televisão de uma determinada linha de varredura horizontal. Essa técnica é útil para implementar mudanças de paleta para objetos debaixo d'água. Em particular, é usado para cores subaquáticas do nível Labirinth Zone em
Sonic the Hedgehog .
Sprites
Sprite coloca Ashley de Coffee CrisisSprites no Sega Genesis são definidos como imagens com um tamanho (
w x
h ), onde
w é a largura dos ladrilhos e
h é a altura dos ladrilhos, que podem assumir valores de 1 a 4 ladrilhos. Cada sprite pode usar apenas uma linha da paleta de cada vez. Sprites de hardware podem ter um tamanho máximo de blocos 4x4. O Sega Genesis pode lidar com até 80 sprites de tela, 20 sprites por linha raster, no entanto, para evitar freios, é melhor não atingir esse limite. Para contornar a limitação no tamanho dos sprites de hardware, muitos jogos usam vários sprites, coletando deles um personagem / objeto. O princípio da criação de pixel art clássico é escolher uma resolução suficientemente grande para fornecer os detalhes e legibilidade necessários da imagem, mas pequena o suficiente para que possa ser facilmente animada. Todos os gráficos de bloco Sega Genesis sempre devem ser divididos por 8 pixels para se ajustarem aos tamanhos dos blocos. Os sprites podem ser invertidos horizontalmente ("hflip") e / ou verticalmente ("vflip") e também possuem uma bandeira de prioridade alta ou baixa. Este parâmetro determina se o sprite deve ser exibido abaixo ou acima dos blocos de outros planos (que também possuem um parâmetro de prioridade alta ou baixa). Sprites de hardware também podem ter um valor de link; Cada sprite deve ter seu próprio valor de link exclusivo. Entre outras coisas, isso afeta a renderização: sprites com valores baixos de link são desenhados sobre sprites com valores altos de link.
Animação
Jogador de futebol blindado Minotauro da Liga de Futebol ZumbiNa maioria dos jogos, os gráficos são animados, em vez de serem simples sprites estáticos. Alterando gradualmente os quadros dos sprites, você pode criar a ilusão de movimento e usá-lo para exibir caminhadas, ataques etc. Os designers de jogos da Sega Genesis precisavam lembrar o número de sprites e peças de cada animação para que muitos não desacelerassem o jogo. A criação de animações de sprites geralmente se transforma em um compromisso entre buscar um número baixo de sprites e criar um movimento atraente; Isto é especialmente verdade para animações no Sega Genesis.
Hoje, entre os desenvolvedores de hackers do Sonic the Hedgehog ROM, é comum uma técnica chamada "Cálculos dinâmicos dos padrões de vendas" (DPLC). Consiste no carregamento dinâmico de blocos para sprites no VRAM em tempo real, em vez de armazenar todos os blocos para quadros de sprites no VRAM ao mesmo tempo. Muitas vezes, sprites detalhados (por exemplo, os sprites do protagonista) ocupam muitos blocos no VRAM usados para quadros de sprites. Se você carregar na memória de vídeo apenas os blocos necessários para o quadro de sprite renderizado atual, poderá salvar a VRAM limitada e ocupá-lo com diferentes gráficos de bloco. Infelizmente, os blocos usados para DPLC devem ser descompactados na ROM para que o carregamento no VRAM seja rápido e não torne o jogo mais lento. (Descompactar gráficos compactados consome recursos da CPU e ocupa muitos ciclos.) As funções do mecanismo de sprite SGDK (no arquivo de cabeçalho <sprite_eng.h>) geralmente usam técnicas DPLC para cortar blocos não utilizados.

Ferramentas recomendadas para depuração e gráficos
Encontrar um bom software para criar gráficos retrô, dividir pixel art em blocos e reduzir o número de cores para 4bpp pode ser um desafio. Abaixo está uma lista de softwares recomendados para a criação de gráficos retro, bem como emuladores especializados que permitem ao usuário examinar o conteúdo da VRAM e dos aviões.
Software gráfico:- RetroGraphicsToolkit
- Uma ótima ferramenta para dividir gráficos em blocos, criando mapas de blocos otimizados e reduzindo as cores da imagem
- Trabalhe na Truecolor, software livre, código aberto
- Script em Lua
- Kit de ferramentas gráficas de várias plataformas
- Sega Genesis, Sega Master System, Equipamento de jogo
- NES
- Links de informação
- Irfanview
- Aplicativo geral para visualização / edição de imagens, possui plugins e amplo suporte para muitos tipos de arquivos de imagem
- Ele pode editar, exportar e importar paletas, além de aumentar / diminuir o número de cores da imagem e mostrar esse número. Útil para preparar arquivos gráficos para trabalhar com o mecanismo SGDK rescomp
- Software livre e de código aberto
- Possui um plugin PNG para alterar a profundidade de cores , preservando a ordem das cores na paleta
- Links de informação
- Pcxpal
- Software útil que permite converter entre vários formatos de paleta diferentes.
- Útil para converter de / para paletas Megadrive .bin e formato de paleta Irfanview JASC
- Formatos de importação
- Imagens BMP, GIF, PCX
- Preservação de emuladores Genesis: GGD, GS *, MSD
- Arquivos de paleta Jasc, Megadrive, MS RIFF, Tile Layer Pro
- Formatos de exportação
- Paletas Jasc, Megadrive e Tile Layer Pro
- Links de informação
Emuladores especializados recomendados para depuração de VDP- Tutorial sobre o uso de páginas de depuração no emulador Gens e seus derivados (Gens v2.11 +)
- Regravação Gens v11a
- Uma versão modificada do famoso emulador Gens escrito por Stef
- Tem a capacidade de alternar camadas e substituir camadas de sprite
- Página de visualização padrão do depurador Gens VDP
- Gravar vídeo em AVI
- Links de informação
- Gens kmod
- Uma versão modificada do emulador Gens com janelas avançadas de depurador. Escrito por KanedaFR de Spritesmind
- Veja VRAM em tempo real
- Veja sprites em tempo real
- Ver aviões em tempo real
- Ver registros VDP em tempo real
- Switch de camada
- Links de informação
- Emulador de êxodo
- Um simulador de loop preciso para depuração e desenvolvimento. Criado por Nemesis, conhecido por hackers ROM por Sonic e Spritesmind. Real Rolls-Royce Emulation Genesis.
- Pode ser útil para atrasos na depuração que ocorrem apenas em equipamentos reais.
- Ele pode criar uma carga bastante séria no sistema , e é necessária uma máquina muito poderosa para trabalhar com uma taxa de quadros conveniente
- Exibir VDP VRAM, CRAM
- Exibir sprites
- Exibir registros VDP
- Links de informação
Jogos para SEGA GENESIS que valem a pena explorar
Existem muitos jogos bonitos para o Sega Genesis, dos quais você pode aprender uma variedade de técnicas e efeitos especiais. Incluindo:
- Streets of Rage Series
- Sonic the Hedgehog Series
- Efeitos raster da paleta de água
- Prioridade de sprite / tile (especialmente loops e um sistema de fragmentos de duas camadas no Sonic 2 e Sonic 3 / Knuckles)
- Motor de jogo de alto desempenho, rápido e de alta qualidade
- Sprite DPLC
- Design de nível excelente e estilos gráficos (especialmente em Sonic 3 / Knuckles)
- Efeitos da alteração da paleta cíclica
- Efeitos de paralaxe
- As aventuras de batman e robin
- Um monte de efeitos gráficos complexos
- Linhagens de Castlevania
- Aladdin
- Earthworm Jim Series
- Phantasy Star Series
- Zona vermelha
- Vídeo preto e branco suave de 1 bit na tela inicial
- Simulação de software de rotação de sprites e mapas de blocos!
- Gráficos isométricos / vista superior
- Panorama Cotton (Jap) , Street Racer
- Gráficos remanescentes do SNES Mode 7, rolagem de linha muito sofisticada e efeitos gráficos
- Dirigir com Duro e Dirigir com Raça
- 3D, renderização de software dos gráficos de polígono
- Tolerância zero e além da tolerância zero (não liberado)
- Software raycaster parecido com DOOM
- Toy story
- Efeitos da paleta raster que permitem exceder o número de cores CRAM em imagens de proteção de tela estáticas
- DOOM Raycaster em primeira pessoa
- Efeitos de paralaxe para geometria de nível 1 com Woody
- Star Cruiser (Jap)
- 3D, renderização de software dos gráficos de polígono
- Contra: Hard Corps
- O robô mini-chefe gigante no primeiro nível é um cartão de peças com rotação simulada de cartões / sprites
- Um enorme RPG caseiro chamado Pier Solar
- Ótimos gráficos
- Alguns anos criados por uma equipe de fãs, gurus e desenvolvedores de cervejas caseiras Genesis
- Cartucho enorme de 64 MB
Observe como os jogos diferentes usam as limitações de hardware do Genesis e como alguns jogos extraem o máximo de ferro. Em Streets of Rage e Batman, excelentemente mostrado os locais urbanos difíceis. Nos jogos do Sonic, existem cores contrastantes e muito brilhantes que permitem reconhecer o ambiente, apesar da alta velocidade do Sonic. Aladdin e Earthworm Jim têm animações suaves e divertidas que enfatizam o personagem do personagem.
Referências e leituras adicionais