Este projeto consiste na criação de um emulador da arquitetura interpretada CHIP-8, desenvolvido com o objetivo de compreender a emulação de hardware em baixo nível através de programação. O projeto simula o ciclo de instrução de um processador (fetch, decode, execute), o gerenciamento da memória de 4KB, registradores, timers de som e atraso e a interpretação de opcodes. A biblioteca gráfica SDL2 foi integrada para gerenciar o framebuffer, realizar a renderização da matriz de pixels em uma janela e capturar as entradas do teclado.
Compilador C: GCC, Clang ou MSVC (compatível com C99 ou superior).
Biblioteca Gráfica: SDL2 (Simple DirectMedia Layer) devidamente instalada e vinculada ao ambiente.
Ferramenta de Build: Make ou CMake (opcional, dependendo do fluxo de compilação).
Clone este repositório em sua máquina local:
Bash
git clone https://github.com/seu-usuario/Chip8-Emulator_C.git
gcc main.c chip8.c -o chip8 `sdl2-config --cflags --libs`
Execute o emulador passando o caminho de uma ROM .ch8:
./chip8 caminho/para/sua_rom.ch8
.\chip8.exe caminho\para\sua_rom.ch8
Linguagem C (Lógica do processador, manipulação de bits e gerenciamento de memória)
SDL2 (Renderização gráfica e captura de eventos/teclado)
GCC (Compilador)
Documentação Técnica CHIP-8: Cowgod's CHIP-8 Technical Reference v1.0 (Thomas P. Greene)
Guia de Implementação: Building a CHIP-8 Emulator in C++ (Austin Morlan)
Vídeo Explicativo e Conceitos de Emulação: Learn Emulation with CHIP-8! (Canal hexdump)
MIT License