NES

De ROMHackingWiki

Tabela de conteúdo

Sobre o Nintendo Entertainment System

O Nintendo Entertainment System (NES) foi um dos (senão o) vídeogame responsável por retirar a indústria do Crash de 1983, graças à diversos fatores: além de ter um hardware muito mais potente do que o de seus competidores já defasados (como Amiga e Atari 2600), inaugurando a "Era dos 8-Bits". O NES introduziu diversos conceitos que se tornaram padrão na indústria dos games, como o controle, os jogos licensiados (que deveriam ser aprovados pela Nintendo para serem lançados, diminuindo a saturação de jogos de baixa qualidade no mercado), e durou até ser substituído pelo Super Nintendo Entertainment System (SNES), em 1993, tendo vendido mais de 60 milhões de unidades até lá.

Especificações Técnicas

Case Mod de um NES, com temática Kamikaze
  • Processador Principal: 6502 8-bit modificado (NMOS)
  • Clock: 1.773447MHz (PAL) or 1.7897725MHz (NTSC)
  • Processador Auxiliar: PPU de 8-Bit (Picture Processing Unit)
  • Memória RAM: 16 Kbit (2 Kb)
  • RAM de Vídeo: 16 Kbit (2 Kb)
  • Memória do Programa do Jogo: 128K, 32K, 16K or 8K Bytes, 1 Meg, 256K, or 64K Bits
  • Memória dos Personagens do Jogo: 128K, 32K, 16K or 8K Bytes, 1 Meg, 256K, or 64K Bits
  • Scroll: Horizontal e Vertical
  • Som: Som PSG (2 Ondas Quadradas, 1 Onda Triangular, 1 Ruído Branco)
  • Cores Exibidas: 16
  • Cores Disponíveis: 52
  • Cores de Sprite: 4 das 52 disponíveis
  • Tamanho Mínimo / Máximo do Sprite: 8x8 / 8x16 pixels
  • Máximo de Sprites: 64
  • Máximo de Sprites por Scanline: 8
  • Tamanho Mínimo / Máximo do Cartucho: 128 Kbit / 4 Mbit
  • Saída de Vídeo: 256x240
  • Dimensões: 25,5cm x 8,5cm x 20,2cm ; 1247,9g.

Memória

NESDev

NESDev é um hobby que consiste em programar softwares e jogos para o 6052, que utiliza a linguagem ASM, e que podem ser emulados como qualquer outra ROM de NES. Como o console não é mais comercializado, não há atrito entre os desenvolvedores e a Nintendo. Um tutorial muito bom para quem deseja entrar no mundo de nesdev é o [NerdyNights], uma série de aulas aplicadas pelo bunnyboy.

Programação

D-Pad Hero, um hack NESDev

A totalidade dos homebrews de NES são feitos em ASM. Além do Nes DevKit, ah o DevKit do parodius.com, ambos sendo altamente recomendados para o desenvolvimento de homebrews para o NES.

Um dos maiores problemas na programação caseira de NES é justamente a dificuldade de adaptação com a linguagem ASM, de baixo nível, que requer além de um conhecimento profundo sobre lógica de programação, um extenso conhecimento sobre o funcionamento do console, seus endereços de memória, opcodes, registradores, contadores, mappers e modos de endereçamento. Embora não seja tão intuitivo, entretanto, com a prática se torna fácil a aplicação de tudo isso em seu homebrew.

Kits populares de desenvolvimento:

Documentação

Além do já citado NerdyNights e do RHDN, há muitos sites menores sobre NES e NESDev espalhados pela internet. Um dos melhores acervos sobre programação 6052 é o Obelisk, que contém uma lista compreensiva de opcodes.

Ferramentas

FCEUX 2.2.1 rodando, com o Debugger e Name Table abertos

Após muitos anos de aperfeiçoamento, o NES conta atualmente com uma grande gama de opções quando o assunto é emulação. Um esforço conjunto dos programadores casuais, os orientados ao romhacking, e os orientados ao TAS rendeu o FCEUX 2.2.1, o emulador mais estável e com mais opções da cena no momento. Quanto às ferramentas, não há nenhuma específica para o console. Os Editores Hexadecimais de sempre devem funcionar com ele, o formato de encoding no Editor Gráfico geralmente é 2BPP Planar, mas há exceções.

Links Importantes

Ferramentas pessoais