Coleção de exemplos, experimentos e pequenos projetos em Assembly para Nintendo Entertainment System (NES).
Este repositório reúne códigos criados durante meus estudos de programação para o NES. A ideia é documentar o processo de aprendizado, registrar experimentos e servir como referência para consultas futuras.
O foco não é criar jogos completos, mas compreender os fundamentos da arquitetura do console, incluindo:
- CPU 6502 e suas variantes
- Estrutura de ROMs NES
- Memória e registradores
- PPU (Picture Processing Unit)
- Sprites e backgrounds
- Controle de entrada
- NMI e VBlank
- Colisão e lógica de jogo
- Técnicas básicas de desenvolvimento para o hardware original
Os exemplos foram criados com fins educacionais.
Sempre que possível, o código prioriza clareza e didática em vez de micro-otimizações. Em muitos casos, existem soluções mais eficientes, mas a intenção é tornar o raciocínio fácil de acompanhar para quem está aprendendo.
Cada diretório contém um exemplo independente.
Exemplos previstos:
- Hello World
- Inicialização do NES
- Paletas e cores
- Backgrounds
- Sprites
- Leitura do controle
- Movimentação
- Colisão
- Sistema de vidas e HP
- Game Over
- Scroll de tela
- Sons e música
- Mini projetos
Os exemplos podem utilizar:
- ca65 / cc65
- Mesen
- FCEUX
- Hardware original (quando aplicável)
Sou estudante de desenvolvimento para NES e este material representa minha jornada de aprendizado. Erros, simplificações e abordagens não ideais podem existir.
Caso encontre algum problema ou tenha sugestões, fique à vontade para abrir uma issue ou enviar uma contribuição.
Algumas fontes utilizadas durante os estudos:
- NESDev Wiki
- Nerdy Nights
- Documentação do 6502
- Fóruns da comunidade NESDev
- Projetos open source da comunidade homebrew
Este projeto está disponível sob a licença MIT.