feed



O que são Mappers?


icon_mappers.gifO que raios são Mappers? Por que todos os “Rom-Hackers” falam em Mappers?
Por que meu emulador reclama de um Mapper não suportado? Veja agora uma interessante explicação sobre o assunto.

Por João Luís

NES Mappers

Amiguitos, funciona assim (vou ser rápido porque realmente there’s no chance to survive, make up your time, all your base are to belong us, não há tempo para nada aqui em Brandenburg):

Quando o Famicom/NES foi projetado, lá no longínquo ano de 82/83, sua capacidade máxima para jogos seria de 40kbyte. Na verdade, o NES só consegue processar 32kbytes de código (incluindo músicas) e 8kbytes de imagens (tiles). O cartucho possui 2 chips pra armazenar isso, um CHR e um PRG. CHR tem as imagens, no máximo ele pode possuir 8k, e o PRG tem o código, que não pode ultrapassar 32k (na verdade, são dois bancos de 16k). Na realidade, o PRG varia (dependendo do jogo) entre 16k e 32k. Jogos antigos como Donkey Kong e Popeye usam 16k de PRG + 8k de CHR. E jogos complexos como Super Mario Bros. usam 32k de PRG (o dobro de DK, porém, são dois bancos de 16k) + 8k de CHR.

O NES, só lê isso, só processa isso. A capacidade dele é LIMITADA a isso. O NES jamais processará mais do que 32k de PRG (código), nem mais de 8k de CHR (gráficos).

Mas aí lá no fundo da sala caboclo levanta a mão e grita: “Aew tio! Mas como tem jogos gigantes com vários Mbits? Como pode isso ser verdade?”

Muito bem, é aí que entram os famigerados Mappers. O processo, exemplificando de modo grosseiro, é o seguinte: quando o cara tá programando o jogo, ele vai criar vários BANCOS de acesso de 16 ou 32k (16+16), e quando tem muito gráfico pra colocar no jogo, e vai criar dezenas de bancos de 8k de gráficos.

Peguemos como exemplo o jogo Super Mario Bros. 3: ele usa 16 bancos de 16k para o código, e 16 bancos de 8k para os gráficos, totalizando assim 256k de código e 128k de gráficos. Tanto que sua ROM compilada (PRG + CHR) tem 384kbytes (essa que a gente roda no emulador).

O segredo é exatamente esse que vocês estão pensando: para fazermos o NES processar essa ROM enorme, ele precisa ficar ALTERNANDO os bancos de memória, em cada um desses bancos temos várias fases prontas, a engine provavelmente é carregada pra RAM no início (porque eles não vão repetir a engine em cada um desses bancos né). Você meio que “engana” o NES, é como se ficasse trocando de cartucho para continuar o jogo (mesmo esquema de jogos de PSX com vários CDs).

Tá legal, mas se ele só consegue carregar 40k de informações, como vai processar a trocar de bancos? É aí que entra o CHIP MAPEADOR. É um pequeno chip na placa do jogo encarregado de trocar os bancos de memória na hora certa. Por exemplo, se eu tivesse uma produtora de jogos de NES, e quisesse fazer um jogo com de 512k, eu teria que criar um mapeador que fizesse esse trabalho pra mim. Assim nasceu os Mappers. Diversas empresas faziam os seus para trabalhar com seus jogos, por isso tem uma pancada de Mappers aí, da Konami, da Bandai, etc. Os da Nintendo são os da família MMC. Por que jogos piratas usam mappers obscuros? Oras, justamente porque a Nintendo não iria distribuir o código fonte de seus mappera para os pirateiros, daí eles se viravam e criavam os próprios. Se eu, por exemplo, me aprofundar em assembly 6502 e depois estudar a arquitetura do NES, poderei fazer meu próprio mapper, é só bolar um método de troca de bancos.

Chegando ao ponto do tópico: você não pode trocar o mapper, obviamente porque o jogo ficaria “louco”, você ia mapear tudo errado. É a mesma coisa que você ir pra São Paulo e eu te dar um MAPA do Rio de Janeiro. O que ia acontecer? Claro que você ia ficar perdido, porque o mapa ia te dar as indicações todas erradas.

Tirando Leite de Pedra

O NES provavelmente foi o mais bem explorado videogame que já existiu. Lembram daquele velho ditado: “A necessidade fez a cobra andar”, foi feito sob medida para os desenvolvedores do console, o verdadeiro tirar leite de pedra.

Tem umas coisas que me fascinam MUITO, vou citar um exemplo banal aqui, Super Mario Bros. 3. Lembram daquelas pessoas que, quando uma coisa fazia sucesso demais (um artista ou um desenho animado, etc), aquilo era “coisa do demônio”? Que os caras fizeram pacto com o diabo para fazer sucesso e ganhar dinheiro? Se for verdade, SMB3 é o que carrega mais energias negativas, HAHA!

O jogo foi lançado em uma época remota, em 1988, onde a maioria dos jogos para consoles caseiros eram tecnincamente um lixo (salvo exceções aí). Não creio que tenha sido um joguinho feito só para melhorar o que já estava bom, não foi só pra capitalizar em cima da franquia, eu acho que foi feito pra HUMILHAR mesmo a concorrência. Pisar em cima de tudo.

Já viram os gráficos daquilo? A variedade de fases? De mundos? De possibilidades? Viram a física do jogo? As composições? 1988? 8-btis? Eu só vim a jogar isso lá pra década de 90, imagino qual foi o delírio dos japas ao verem isso em ‘88.

Outra coisa era o mapeador avançadíssimo para o ano, ele não apenas mapeava as coisas e jogava para console processar, dentro do cartucho tem um chip de memória RAM, porque o Nes tem míseros 2K de Ram principal, enquanto o chip que vem no cartucho tem mais 8K (de SRAM), ou seja, 4 vezes mais que o console. Isso aí era pra descomprimir os gráficos e armazenar nessa Ram dedicada, uma parte do processamento era aplicada nisso. Só faltou mesmo os caras meterem um processador auxiliar dentro dos cartuchos.

8 Mbits no NES… Acreditem!

O maior jogo de Famicom, oficialmente, é o Metal Slader Glory de Famicom, é de 8 Mbits (1 Mbyte). Só que no caso dele é mais porque tem dezenas de telas com imagens complexas, tipo as animações de Ninja Gaiden, aí já viu né, gráfico gasta espaço pra cacete. O jogo em si não tem nada demais, é um adventure de texto normal.

Agora, jogos piratas daqueles “9999999 in 1″ tem bem maiores que isso, já vi alguns de até 24 Mbits.



Adicionado à Base de Dados em Quinta-feira, 1 de Maio de 2008 por Cospefogo